Merge "Focusing on item highlighted coming from search result" into main
diff --git a/.gitignore b/.gitignore
index 1062418..75db548 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
 .idea/
+*.code-workspace
 *.iml
diff --git a/Android.bp b/Android.bp
index 8c50ed5..2699c38 100644
--- a/Android.bp
+++ b/Android.bp
@@ -43,13 +43,10 @@
     ],
 }
 
-
-// Build the Settings APK
 android_library {
     name: "Settings-core",
     platform_apis: true,
     defaults: [
-        "SettingsLibDefaults",
         "SettingsLib-search-defaults",
         "SpaPrivilegedLib-defaults",
     ],
@@ -65,64 +62,58 @@
         "res-product",
     ],
     static_libs: [
-        "androidx-constraintlayout_constraintlayout",
-        "androidx.slice_slice-builders",
-        "androidx.slice_slice-core",
-        "androidx.slice_slice-view",
-        "androidx.core_core",
-        "androidx.appcompat_appcompat",
-        "androidx.cardview_cardview",
-        "androidx.compose.runtime_runtime-livedata",
-        "androidx.activity_activity-ktx",
+        // External dependencies
         "androidx.navigation_navigation-fragment-ktx",
-        "androidx.navigation_navigation-ui-ktx",
-        "androidx.preference_preference",
-        "androidx.recyclerview_recyclerview",
-        "androidx.window_window",
         "androidx.window_window-java",
-        "com.google.android.material_material",
-        "setupcompat",
-        "setupdesign",
-        "androidx.lifecycle_lifecycle-runtime",
-        "androidx.lifecycle_lifecycle-runtime-ktx",
-        "androidx.lifecycle_lifecycle-viewmodel",
         "gson",
         "guava",
-        "jsr305",
+
+        // Android internal dependencies
+        "BiometricsSharedLib",
+        "SystemUIUnfoldLib",
+        "WifiTrackerLib",
+        "android.hardware.dumpstate-V1-java",
+        "android.hardware.dumpstate-V1.0-java",
+        "android.hardware.dumpstate-V1.1-java",
+        "android.nfc.flags-aconfig-java",
+        "android.view.accessibility.flags-aconfig-java",
+        "com_android_server_accessibility_flags_lib",
         "net-utils-framework-common",
+        "notification_flags_lib",
+        "securebox",
+
+        // Settings dependencies
+        "FingerprintManagerInteractor",
+        "MediaDrmSettingsFlagsLib",
+        "Settings-change-ids",
+        "SettingsLib",
+        "SettingsLibActivityEmbedding",
+        "aconfig_settings_flags_lib",
+        "accessibility_settings_flags_lib",
         "app-usage-event-protos-lite",
         "battery-event-protos-lite",
         "battery-usage-slot-protos-lite",
+        "contextualcards",
+        "factory_reset_flags_lib",
+        "fuelgauge-log-protos-lite",
+        "fuelgauge-usage-state-protos-lite",
         "power-anomaly-event-protos-lite",
         "settings-contextual-card-protos-lite",
         "settings-log-bridge-protos-lite",
-        "settings-telephony-protos-lite",
-        "fuelgauge-log-protos-lite",
-        "fuelgauge-usage-state-protos-lite",
-        "contextualcards",
-        "securebox",
         "settings-logtags",
+        "settings-telephony-protos-lite",
         "statslog-settings",
-        "zxing-core-1.7",
-        "android.hardware.dumpstate-V1.0-java",
-        "android.hardware.dumpstate-V1.1-java",
-        "android.hardware.dumpstate-V1-java",
-        "lottie",
-        "BiometricsSharedLib",
-        "WifiTrackerLib",
-        "SettingsLibActivityEmbedding",
-        "Settings-change-ids",
-        "androidx.room_room-runtime",
-        "SystemUIUnfoldLib",
-        "aconfig_settings_flags_lib",
-        "factory_reset_flags_lib",
-        "android.content.pm.flags-aconfig-java",
-        "FingerprintManagerInteractor",
     ],
 
-    plugins: [
-        "androidx.room_room-compiler-plugin",
-    ],
+    plugins: ["androidx.room_room-compiler-plugin"],
+
+    // TODO: b/307330031 - Re-enable the nullaway plugin when the issue is fixed.
+    // errorprone: {
+    //     extra_check_modules: ["//external/nullaway:nullaway_plugin"],
+    //     javacflags: [
+    //         "-XepOpt:NullAway:AnnotatedPackages=com.android.settings",
+    //     ],
+    // },
 
     libs: [
         "telephony-common",
@@ -136,6 +127,7 @@
     system_ext_specific: true,
 }
 
+// Build the Settings APK
 android_app {
     name: "Settings",
     defaults: [
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 31f4768..75c6fbb 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -11,6 +11,16 @@
         android:name="com.android.settings.BATTERY_DATA"
         android:protectionLevel="signature|privileged"/>
 
+    <!-- Permission for using the Biometric Settings Provider. -->
+    <permission
+        android:name="com.android.settings.USE_BIOMETRIC_PROVIDER"
+        android:protectionLevel="signature|privileged"/>
+
+    <!-- Permissions for acting as the factory reset preparation application. -->
+    <permission
+        android:name="com.android.settings.permissions.PREPARE_FACTORY_RESET"
+        android:protectionLevel="signature|privileged"/>
+
     <uses-permission android:name="android.permission.REQUEST_NETWORK_SCORES" />
     <uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE" />
     <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
@@ -3080,23 +3090,6 @@
             </intent-filter>
         </activity>
 
-        <!-- NFC settings -->
-        <activity
-            android:name="Settings$AndroidBeamSettingsActivity"
-            android:exported="true"
-            android:label="@string/android_beam_settings_title">
-            <intent-filter android:priority="1">
-                <action android:name="android.settings.NFCSHARING_SETTINGS" />
-                <category android:name="android.intent.category.DEFAULT" />
-            </intent-filter>
-            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
-                android:value="com.android.settings.nfc.AndroidBeam" />
-            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
-                       android:value="@string/menu_key_connected_devices"/>
-            <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
-                android:value="true" />
-        </activity>
-
         <activity
             android:name="Settings$WifiDisplaySettingsActivity"
             android:label="@string/wifi_display_settings_title"
@@ -3198,6 +3191,7 @@
                 <action android:name="android.intent.action.BOOT_COMPLETED"/>
                 <action android:name="com.google.android.setupwizard.SETUP_WIZARD_FINISHED"/>
                 <action android:name="com.android.settings.battery.action.PERIODIC_JOB_RECHECK"/>
+                <action android:name="android.intent.action.TIME_SET"/>
             </intent-filter>
         </receiver>
 
@@ -4949,6 +4943,16 @@
         </activity>
 
         <activity
+            android:name="com.android.settings.connecteddevice.audiosharing.audiostreams.qrcode.QrCodeScanModeActivity"
+            android:permission="android.permission.BLUETOOTH_CONNECT"
+            android:exported="false">
+            <intent-filter>
+                <action android:name="android.settings.BLUETOOTH_LE_AUDIO_QR_CODE_SCANNER"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+            </intent-filter>
+        </activity>
+
+        <activity
             android:name=".spa.SpaActivity"
             android:configChanges="orientation|screenLayout|screenSize|smallestScreenSize"
             android:knownActivityEmbeddingCerts="@array/config_known_host_certs"
@@ -4970,6 +4974,26 @@
                 android:value="@string/menu_key_security"/>
         </activity>
 
+         <provider
+            android:name=".biometrics.BiometricSettingsProvider"
+            android:authorities="${applicationId}.biometrics.provider"
+            android:exported="true"
+            android:permission="com.android.settings.USE_BIOMETRIC_PROVIDER">
+            <intent-filter>
+                <action android:name="com.android.settings.biometrics.BIOMETRIC_SETTINGS_PROVIDER" />
+            </intent-filter>
+        </provider>
+
+        <activity
+            android:name=".privatespace.PrivateSpaceSetupActivity"
+            android:theme="@style/GlifV3Theme.Light"
+            android:exported="false" />
+
+        <activity android:name=".privatespace.PrivateSpaceAuthenticationActivity"
+                  android:theme="@*android:style/Theme.DeviceDefault.Settings.Dialog.NoActionBar"
+                  android:exported="false"/>
+        <activity android:name=".privatespace.PrivateProfileContextHelperActivity" android:exported="false"/>
+
         <activity-alias android:name="UsageStatsActivity"
                         android:exported="true"
                         android:label="@string/testing_usage_stats"
diff --git a/OWNERS b/OWNERS
index c98be3e..6698752 100644
--- a/OWNERS
+++ b/OWNERS
@@ -1,25 +1,29 @@
+# Bug component: 27091
 # Use this reviewer by default.
 android-settings-core-eng+gerrit@google.com
 
-# People who can approve changes for submission
+# Android Settings Core
 cantol@google.com
-chaohuiw@google.com
+cechkahn@google.com
 chiujason@google.com
 dswliu@google.com
 edgarwang@google.com
-hanxu@google.com
+jiannan@google.com
 millchen@google.com
-songchenxi@google.com
-songferngwang@google.com
 sunnyshao@google.com
+yantingyang@google.com
+
+# Android Settings extended
+chaohuiw@google.com
+songferngwang@google.com
 tomhsu@google.com
 wengsu@google.com
-yantingyang@google.com
 ykhung@google.com
 
 # Emergency only
-wangqi@google.com
-yanglu@google.com
+cipson@google.com
+hanxu@google.com
+yangfan@google.com
 
 # Exempt resource files (because they are in a flat directory and too hard to manage via OWNERS)
 per-file res*/**=*
diff --git a/aconfig/Android.bp b/aconfig/Android.bp
index 51d977a..de6d0af 100644
--- a/aconfig/Android.bp
+++ b/aconfig/Android.bp
@@ -6,11 +6,7 @@
     name: "aconfig_settings_flags",
     package: "com.android.settings.flags",
     srcs: [
-        "settings_accessibility_flag_declarations.aconfig",
-        "settings_connecteddevice_flag_declarations.aconfig",
-        "settings_globalintl_flag_declarations.aconfig",
-        "settings_apn_flag_declarations.aconfig",
-        "settings_onboarding_experience_flag_declarations.aconfig",
+        "*.aconfig",
     ],
 }
 
@@ -28,4 +24,26 @@
 java_aconfig_library {
     name: "factory_reset_flags_lib",
     aconfig_declarations: "factory_reset_flags",
-}
\ No newline at end of file
+}
+
+aconfig_declarations {
+    name: "media_drm_flags",
+    package: "com.android.settings.media_drm",
+    srcs: ["media_drm/*.aconfig"],
+}
+
+java_aconfig_library {
+    name: "MediaDrmSettingsFlagsLib",
+    aconfig_declarations: "media_drm_flags",
+}
+
+aconfig_declarations {
+    name: "accessibility_flags",
+    package: "com.android.settings.accessibility",
+    srcs: ["accessibility/*.aconfig"],
+}
+
+java_aconfig_library {
+    name: "accessibility_settings_flags_lib",
+    aconfig_declarations: "accessibility_flags",
+}
diff --git a/aconfig/OWNERS b/aconfig/OWNERS
new file mode 100644
index 0000000..c26a190
--- /dev/null
+++ b/aconfig/OWNERS
@@ -0,0 +1,3 @@
+per-file settings_accessibility_flag_declarations.aconfig = file:/src/com/android/settings/accessibility/OWNERS
+per-file settings_biometrics_integration_declarations.aconfig = file:platform/vendor/unbundled_google/packages/SettingsGoogle:/future/biometrics/OWNERS
+
diff --git a/aconfig/accessibility/OWNERS b/aconfig/accessibility/OWNERS
new file mode 100644
index 0000000..7a76c21
--- /dev/null
+++ b/aconfig/accessibility/OWNERS
@@ -0,0 +1 @@
+include /src/com/android/settings/accessibility/OWNERS
diff --git a/aconfig/accessibility/accessibility_flags.aconfig b/aconfig/accessibility/accessibility_flags.aconfig
new file mode 100644
index 0000000..7f1f909
--- /dev/null
+++ b/aconfig/accessibility/accessibility_flags.aconfig
@@ -0,0 +1,10 @@
+package: "com.android.settings.accessibility"
+
+# NOTE: Keep alphabetized to help limit merge conflicts from multiple simultaneous editors.
+
+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."
+  bug: "294560581"
+}
\ No newline at end of file
diff --git a/aconfig/media_drm/settings_mediadrm_flag_declarations.aconfig b/aconfig/media_drm/settings_mediadrm_flag_declarations.aconfig
new file mode 100644
index 0000000..06d75f1
--- /dev/null
+++ b/aconfig/media_drm/settings_mediadrm_flag_declarations.aconfig
@@ -0,0 +1,8 @@
+package: "com.android.settings.media_drm"
+
+flag {
+    name: "force_l3_enabled"
+    namespace: "media_drm"
+    description: "Feature flag of forcing L3"
+    bug: "301669353"
+}
\ No newline at end of file
diff --git a/aconfig/settings_accessibility_flag_declarations.aconfig b/aconfig/settings_accessibility_flag_declarations.aconfig
deleted file mode 100644
index 9a24399..0000000
--- a/aconfig/settings_accessibility_flag_declarations.aconfig
+++ /dev/null
@@ -1,8 +0,0 @@
-package: "com.android.settings.flags"
-
-flag {
-  name: "separate_accessibility_vibration_settings_fragments"
-  namespace: "accessibility"
-  description: "Splits VibrationSettings into two fragments, one per XML resource"
-  bug: "289967175"
-}
diff --git a/aconfig/settings_accessibility_flag_declarations_legacy.aconfig b/aconfig/settings_accessibility_flag_declarations_legacy.aconfig
new file mode 100644
index 0000000..acdce96
--- /dev/null
+++ b/aconfig/settings_accessibility_flag_declarations_legacy.aconfig
@@ -0,0 +1,38 @@
+package: "com.android.settings.flags"
+
+# NOTE: Don't add new accessibility flags here, since the package name doesn't follow
+# the best practice for setting's feature flag go/settings-trunk-stable
+
+# NOTE: Keep alphabetized to help limit merge conflicts from multiple simultaneous editors.
+
+# NOTE: All Settings flags share the same Flags class, so prefix our
+# flags with 'accessibility' to prevent naming collision.
+
+flag {
+  name: "accessibility_customize_text_reading_preview"
+  namespace: "accessibility"
+  description: "Pulls the accessibility text-reading preview pages from a config."
+  bug: "307481249"
+}
+
+flag {
+  name: "accessibility_show_app_info_button"
+  namespace: "accessibility"
+  description: "Shows an 'app info' button on non-framework a11y Service and Activity pages."
+  bug: "277378550"
+}
+
+flag {
+    name: "separate_accessibility_vibration_settings_fragments"
+    namespace: "accessibility"
+    description: "Splits VibrationSettings into two fragments, one per XML resource"
+    bug: "289967175"
+}
+
+flag {
+    name: "new_hearing_device_pairing_page"
+    namespace: "accessibility"
+    description: "New hearing device pairing page with deny list method"
+    bug: "307473972"
+}
+
diff --git a/aconfig/settings_biometrics_framework_flag_declarations.aconfig b/aconfig/settings_biometrics_framework_flag_declarations.aconfig
new file mode 100644
index 0000000..810f2de
--- /dev/null
+++ b/aconfig/settings_biometrics_framework_flag_declarations.aconfig
@@ -0,0 +1,8 @@
+package: "com.android.settings.flags"
+
+flag {
+  name: "biometric_settings_provider"
+  namespace: "biometrics_framework"
+  description: "This flag enables or disables the BiometricSettingsProvider"
+  bug: "303595205"
+}
diff --git a/aconfig/settings_biometrics_integration_declarations.aconfig b/aconfig/settings_biometrics_integration_declarations.aconfig
new file mode 100644
index 0000000..bc437f2
--- /dev/null
+++ b/aconfig/settings_biometrics_integration_declarations.aconfig
@@ -0,0 +1,16 @@
+package: "com.android.settings.flags"
+
+flag {
+  name: "sfps_enroll_refinement"
+  namespace: "biometrics_integration"
+  description: "This flag controls whether the sfps pause enrollment feature should be enabled"
+  bug: "288155127"
+}
+
+flag {
+  name: "udfps_enroll_calibration"
+  namespace: "biometrics_integration"
+  description: "This flag controls whether the fps enroll calibration feature should be enabled"
+  bug: "301226085"
+}
+
diff --git a/aconfig/settings_connecteddevice_flag_declarations.aconfig b/aconfig/settings_connecteddevice_flag_declarations.aconfig
index eda2de6..07aaecc 100644
--- a/aconfig/settings_connecteddevice_flag_declarations.aconfig
+++ b/aconfig/settings_connecteddevice_flag_declarations.aconfig
@@ -6,3 +6,17 @@
   description: "Gates whether to enable subsequent pair Settings integration."
   bug: "299405720"
 }
+
+flag {
+  name: "enable_le_audio_sharing"
+  namespace: "pixel_cross_device_control"
+  description: "Gates whether to enable LE audio sharing"
+  bug: "305620450"
+}
+
+flag {
+  name: "enable_le_audio_qr_code_private_broadcast_sharing"
+  namespace: "pixel_cross_device_control"
+  description: "Gates whether to enable LE audio private broadcast sharing via QR code"
+  bug: "308368124"
+}
diff --git a/aconfig/settings_development_flag_declarations.aconfig b/aconfig/settings_development_flag_declarations.aconfig
new file mode 100644
index 0000000..c23a38f
--- /dev/null
+++ b/aconfig/settings_development_flag_declarations.aconfig
@@ -0,0 +1,13 @@
+package: "com.android.settings.flags"
+
+# NOTE: Keep alphabetized to help limit merge conflicts from multiple simultaneous editors.
+
+# NOTE: All Settings flags share the same Flags class, so prefix our
+# flags with 'development' to prevent naming collision.
+
+flag {
+  name: "development_hdr_sdr_ratio"
+  namespace: "core_graphics"
+  description: "Shows hdr/sdr dev opton on the development options page from aconfig"
+  bug: "291863102"
+}
diff --git a/aconfig/settings_apn_flag_declarations.aconfig b/aconfig/settings_experience_flag_declarations.aconfig
similarity index 79%
rename from aconfig/settings_apn_flag_declarations.aconfig
rename to aconfig/settings_experience_flag_declarations.aconfig
index bca3183..7642734 100644
--- a/aconfig/settings_apn_flag_declarations.aconfig
+++ b/aconfig/settings_experience_flag_declarations.aconfig
@@ -2,7 +2,7 @@
 
 flag {
     name: "new_apn_page_enabled"
-    namespace: "settings_apn"
+    namespace: "settings_experience"
     description: "Change to the new APN page."
     bug: "298906796"
-}
\ No newline at end of file
+}
diff --git a/aconfig/settings_flag_declarations.aconfig b/aconfig/settings_flag_declarations.aconfig
new file mode 100644
index 0000000..c4c33b0
--- /dev/null
+++ b/aconfig/settings_flag_declarations.aconfig
@@ -0,0 +1,8 @@
+package: "com.android.settings.flags"
+
+flag {
+    name: "show_factory_reset_cancel_button"
+    namespace: "android_settings"
+    description: "This flag controls whether to show a Cancel button when factory reset"
+    bug: "300634367"
+}
diff --git a/aconfig/settings_globalintl_flag_declarations.aconfig b/aconfig/settings_globalintl_flag_declarations.aconfig
index 3740dd3..68662d0 100644
--- a/aconfig/settings_globalintl_flag_declarations.aconfig
+++ b/aconfig/settings_globalintl_flag_declarations.aconfig
@@ -2,14 +2,14 @@
 
 flag {
     name: "terms_of_address_enabled"
-    namespace: "settings_globalintl"
+    namespace: "globalintl"
     description: "Feature flag for Terms of Address"
     bug: "297798866"
 }
 
 flag {
     name: "locale_notification_enabled"
-    namespace: "settings_globalintl"
+    namespace: "globalintl"
     description: "Feature flag for locale notification"
-    bug: "248514263"
+    bug: "301380610"
 }
diff --git a/aconfig/settings_notification_flag_declarations.aconfig b/aconfig/settings_notification_flag_declarations.aconfig
new file mode 100644
index 0000000..f2bf1c8
--- /dev/null
+++ b/aconfig/settings_notification_flag_declarations.aconfig
@@ -0,0 +1,9 @@
+package: "com.android.settings.flags"
+
+flag {
+  name: "dedupe_dnd_settings_channels"
+  namespace: "systemui"
+  description: "Controls adding group names to channel names in the DND>Apps settings page"
+  bug: "294333850"
+}
+
diff --git a/aconfig/settings_panel_flag_declarations.aconfig b/aconfig/settings_panel_flag_declarations.aconfig
new file mode 100644
index 0000000..10eb655
--- /dev/null
+++ b/aconfig/settings_panel_flag_declarations.aconfig
@@ -0,0 +1,8 @@
+package: "com.android.settings.flags"
+
+flag {
+  name: "enable_volume_plus_quick_settings"
+  namespace: "pixel_cross_device_control"
+  description: "Gates whether to enable VolumePlus quick settings panel."
+  bug: "309052662"
+}
diff --git a/aconfig/settings_telephony_flag_declarations.aconfig b/aconfig/settings_telephony_flag_declarations.aconfig
new file mode 100644
index 0000000..68e313b
--- /dev/null
+++ b/aconfig/settings_telephony_flag_declarations.aconfig
@@ -0,0 +1,8 @@
+package: "com.android.settings.flags"
+
+flag {
+    name: "remove_key_hide_enable_2g"
+    namespace: "cellular_security"
+    description: "Stop honoring CarrierConfigManager.KEY_HIDE_ENABLE_2G. Allow 2G toggle cannot be hidden from users by carriers."
+    bug: "300248708"
+}
diff --git a/aconfig/settings_voice_activation_apps_flag_declarations.aconfig b/aconfig/settings_voice_activation_apps_flag_declarations.aconfig
new file mode 100644
index 0000000..d98bc52
--- /dev/null
+++ b/aconfig/settings_voice_activation_apps_flag_declarations.aconfig
@@ -0,0 +1,8 @@
+package: "com.android.settings.flags"
+
+flag {
+  name: "enable_voice_activation_apps_in_settings"
+  namespace: "permissions"
+  description: "Enable voice activation apps in Settings"
+  bug: "303727896"
+}
\ No newline at end of file
diff --git a/color-check-baseline.xml b/color-check-baseline.xml
index 7a5e80d..5a0e98e 100644
--- a/color-check-baseline.xml
+++ b/color-check-baseline.xml
@@ -2,18 +2,6 @@
 <issues format="4">
 
     <issue
-        id="LintError"
-        severity="Error"
-        message="No `.class` files were found in project &quot;.&quot;, so none of the classfile based checks could be run. Does the project need to be built first?"
-        category="Lint"
-        priority="10"
-        summary="Lint Failure"
-        explanation="This issue type represents a problem running lint itself. Examples include failure to find bytecode for source files (which means certain detectors could not be run), parsing errors in lint configuration files, etc.&#xA;These errors are not errors in your own code, but they are shown to make it clear that some checks were not completed.">
-        <location
-            file="."/>
-    </issue>
-
-    <issue
         id="HardCodedColor"
         severity="Error"
         message="Avoid using hardcoded color"
@@ -661,12 +649,12 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="        android:color=&quot;@color/notification_importance_button_unselected&quot;/>"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="            android:textColor=&quot;@color/power_anomaly_primary_button_text_color&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
-            file="res/drawable/button_border_unselected.xml"
-            line="21"
-            column="9"/>
+            file="res/layout/battery_tips_card.xml"
+            line="57"
+            column="13"/>
     </issue>
 
     <issue
@@ -677,12 +665,12 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="        android:color=&quot;@color/notification_importance_button_unselected&quot;/>"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="            android:textColor=&quot;@color/power_anomaly_primary_button_text_color&quot;"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
-            file="res/drawable/button_border_unselected.xml"
-            line="21"
-            column="9"/>
+            file="res/layout/battery_tips_card.xml"
+            line="57"
+            column="13"/>
     </issue>
 
     <issue
@@ -693,8 +681,8 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;switchbar_switch_track_tint&quot;>#82000000&lt;/color>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="    &lt;color name=&quot;homepage_accessibility_background&quot;>#783BE5&lt;/color>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values-night/colors.xml"
             line="19"
@@ -709,6 +697,22 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+        errorLine1="    &lt;color name=&quot;homepage_support_background&quot;>#3F5FBD&lt;/color>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values-night/colors.xml"
+            line="20"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="HardCodedColor"
+        severity="Error"
+        message="Avoid using hardcoded color"
+        category="Correctness"
+        priority="4"
+        summary="Using hardcoded color"
+        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
         errorLine1="    &lt;color name=&quot;setup_wizard_wifi_color_dark&quot;>#89ffffff&lt;/color>"
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -725,22 +729,6 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;homepage_accessibility_background&quot;>#783BE5&lt;/color>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-night/colors.xml"
-            line="21"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="HardCodedColor"
-        severity="Error"
-        message="Avoid using hardcoded color"
-        category="Correctness"
-        priority="4"
-        summary="Using hardcoded color"
-        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
         errorLine1="    &lt;color name=&quot;setup_wizard_wifi_color_light&quot;>#89000000&lt;/color>"
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -757,11 +745,11 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;homepage_support_background&quot;>#3F5FBD&lt;/color>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="    &lt;color name=&quot;notification_importance_button_unselected&quot;>#5F6368&lt;/color>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values-night/colors.xml"
-            line="22"
+            line="23"
             column="5"/>
     </issue>
 
@@ -805,22 +793,6 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;notification_importance_button_unselected&quot;>#5F6368&lt;/color>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-night/colors.xml"
-            line="25"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="HardCodedColor"
-        severity="Error"
-        message="Avoid using hardcoded color"
-        category="Correctness"
-        priority="4"
-        summary="Using hardcoded color"
-        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
         errorLine1="    &lt;color name=&quot;icon_accent&quot;>#ffabffec&lt;/color>"
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -917,6 +889,22 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+        errorLine1="    &lt;color name=&quot;settings_dialog_colorError&quot;>#f28b82&lt;/color> &lt;!-- Red 300 -->"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values-night/colors.xml"
+            line="38"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="HardCodedColor"
+        severity="Error"
+        message="Avoid using hardcoded color"
+        category="Correctness"
+        priority="4"
+        summary="Using hardcoded color"
+        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
         errorLine1="    &lt;color name=&quot;timestamp_text_outgoing&quot;>#99323232&lt;/color>"
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -949,10 +937,10 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;settings_dialog_colorError&quot;>#f28b82&lt;/color> &lt;!-- Red 300 -->"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="    &lt;color name=&quot;message_bubble_incoming&quot;>#52534D&lt;/color>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
-            file="res/values-night/colors.xml"
+            file="res/values/colors.xml"
             line="40"
             column="5"/>
     </issue>
@@ -965,11 +953,11 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;message_bubble_incoming&quot;>#52534D&lt;/color>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="    &lt;color name=&quot;biometric_enroll_intro_color_bar&quot;>#5bb974&lt;/color>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
-            file="res/values/colors.xml"
-            line="40"
+            file="res/values-night/colors.xml"
+            line="41"
             column="5"/>
     </issue>
 
@@ -997,6 +985,22 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+        errorLine1="    &lt;color name=&quot;biometric_enroll_intro_color_icon&quot;>#669df6&lt;/color>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values-night/colors.xml"
+            line="42"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="HardCodedColor"
+        severity="Error"
+        message="Avoid using hardcoded color"
+        category="Correctness"
+        priority="4"
+        summary="Using hardcoded color"
+        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
         errorLine1="    &lt;color name=&quot;message_icon_background_incoming&quot;>#E6F451&lt;/color>"
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -1013,8 +1017,8 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;biometric_enroll_intro_color_bar&quot;>#5bb974&lt;/color>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="    &lt;color name=&quot;biometric_enroll_intro_color_outline&quot;>#5e5e5e&lt;/color>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values-night/colors.xml"
             line="43"
@@ -1045,8 +1049,8 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;biometric_enroll_intro_color_icon&quot;>#669df6&lt;/color>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="    &lt;color name=&quot;fingerprint_enrollment_finish_color_outline&quot;>#669df6&lt;/color>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values-night/colors.xml"
             line="44"
@@ -1077,38 +1081,6 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;biometric_enroll_intro_color_outline&quot;>#5e5e5e&lt;/color>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-night/colors.xml"
-            line="45"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="HardCodedColor"
-        severity="Error"
-        message="Avoid using hardcoded color"
-        category="Correctness"
-        priority="4"
-        summary="Using hardcoded color"
-        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;fingerprint_enrollment_finish_color_outline&quot;>#669df6&lt;/color>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-night/colors.xml"
-            line="46"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="HardCodedColor"
-        severity="Error"
-        message="Avoid using hardcoded color"
-        category="Correctness"
-        priority="4"
-        summary="Using hardcoded color"
-        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
         errorLine1="    &lt;color name=&quot;usage_graph_dots&quot;>#B0BEC5&lt;/color>"
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -1129,6 +1101,38 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values-night/colors.xml"
+            line="47"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="HardCodedColor"
+        severity="Error"
+        message="Avoid using hardcoded color"
+        category="Correctness"
+        priority="4"
+        summary="Using hardcoded color"
+        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+        errorLine1="    &lt;color name=&quot;sfps_enrollment_fp_error_color&quot;>#fad2cf&lt;/color> &lt;!-- Red 100 -->"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values-night/colors.xml"
+            line="48"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="HardCodedColor"
+        severity="Error"
+        message="Avoid using hardcoded color"
+        category="Correctness"
+        priority="4"
+        summary="Using hardcoded color"
+        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+        errorLine1="    &lt;color name=&quot;sfps_enrollment_progress_bar_bg_color&quot;>#3C4043&lt;/color> &lt;!-- Gray 800 -->"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values-night/colors.xml"
             line="49"
             column="5"/>
     </issue>
@@ -1157,8 +1161,8 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;sfps_enrollment_fp_error_color&quot;>#fad2cf&lt;/color> &lt;!-- Red 100 -->"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="    &lt;color name=&quot;sfps_enrollment_progress_bar_fill_color&quot;>#669df6&lt;/color> &lt;!-- Blue 400 -->"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values-night/colors.xml"
             line="50"
@@ -1173,8 +1177,8 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;sfps_enrollment_progress_bar_bg_color&quot;>#3C4043&lt;/color> &lt;!-- Gray 800 -->"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="    &lt;color name=&quot;sfps_enrollment_progress_bar_error_color&quot;>#ee675c&lt;/color> &lt;!-- Red 400 -->"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values-night/colors.xml"
             line="51"
@@ -1189,22 +1193,6 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;sfps_enrollment_progress_bar_fill_color&quot;>#669df6&lt;/color> &lt;!-- Blue 400 -->"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-night/colors.xml"
-            line="52"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="HardCodedColor"
-        severity="Error"
-        message="Avoid using hardcoded color"
-        category="Correctness"
-        priority="4"
-        summary="Using hardcoded color"
-        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
         errorLine1="    &lt;color name=&quot;shortcut_background&quot;>#fff5f5f5&lt;/color>"
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -1221,22 +1209,6 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;sfps_enrollment_progress_bar_error_color&quot;>#ee675c&lt;/color> &lt;!-- Red 400 -->"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-night/colors.xml"
-            line="53"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="HardCodedColor"
-        severity="Error"
-        message="Avoid using hardcoded color"
-        category="Correctness"
-        priority="4"
-        summary="Using hardcoded color"
-        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
         errorLine1="    &lt;color name=&quot;homepage_network_background&quot;>#2196F3&lt;/color>"
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -1317,6 +1289,22 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+        errorLine1="    &lt;color name=&quot;power_anomaly_app_warning_hint_color&quot;>#FDD663&lt;/color>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values-night/colors.xml"
+            line="60"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="HardCodedColor"
+        severity="Error"
+        message="Avoid using hardcoded color"
+        category="Correctness"
+        priority="4"
+        summary="Using hardcoded color"
+        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
         errorLine1="    &lt;color name=&quot;homepage_sound_background&quot;>#01B1AF&lt;/color>"
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -1333,6 +1321,22 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+        errorLine1="    &lt;color name=&quot;power_anomaly_primary_button_text_color&quot;>#2E3300&lt;/color>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values-night/colors.xml"
+            line="61"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="HardCodedColor"
+        severity="Error"
+        message="Avoid using hardcoded color"
+        category="Correctness"
+        priority="4"
+        summary="Using hardcoded color"
+        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
         errorLine1="    &lt;color name=&quot;homepage_storage_background&quot;>#C14CE6&lt;/color>"
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -1365,22 +1369,6 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;udfps_enroll_icon&quot;>#7DA7F1&lt;/color>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-night/colors.xml"
-            line="63"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="HardCodedColor"
-        severity="Error"
-        message="Avoid using hardcoded color"
-        category="Correctness"
-        priority="4"
-        summary="Using hardcoded color"
-        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
         errorLine1="    &lt;color name=&quot;homepage_accounts_background&quot;>#F15B8D&lt;/color>"
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -1397,8 +1385,8 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;udfps_moving_target_fill&quot;>#475670&lt;/color>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="    &lt;color name=&quot;udfps_enroll_icon&quot;>#7DA7F1&lt;/color>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values-night/colors.xml"
             line="64"
@@ -1429,10 +1417,10 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;homepage_system_background&quot;>#9E9E9E&lt;/color>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="    &lt;color name=&quot;udfps_moving_target_fill&quot;>#475670&lt;/color>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
-            file="res/values/colors.xml"
+            file="res/values-night/colors.xml"
             line="65"
             column="5"/>
     </issue>
@@ -1445,11 +1433,11 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;udfps_moving_target_fill_error&quot;>#80475670&lt;/color>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="    &lt;color name=&quot;homepage_system_background&quot;>#9E9E9E&lt;/color>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
-            file="res/values-night/colors.xml"
-            line="66"
+            file="res/values/colors.xml"
+            line="65"
             column="5"/>
     </issue>
 
@@ -1477,8 +1465,8 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;udfps_enroll_progress&quot;>#7DA7F1&lt;/color>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="    &lt;color name=&quot;udfps_moving_target_fill_error&quot;>#80475670&lt;/color>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values-night/colors.xml"
             line="67"
@@ -1509,8 +1497,8 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;udfps_enroll_progress_help&quot;>#607DA7F1&lt;/color>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="    &lt;color name=&quot;udfps_enroll_progress&quot;>#7DA7F1&lt;/color>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values-night/colors.xml"
             line="68"
@@ -1541,8 +1529,8 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;udfps_enroll_progress_help_with_talkback&quot;>#FFEE675C&lt;/color>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="    &lt;color name=&quot;udfps_enroll_progress_help&quot;>#607DA7F1&lt;/color>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values-night/colors.xml"
             line="69"
@@ -1573,43 +1561,27 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+        errorLine1="    &lt;color name=&quot;udfps_enroll_progress_help_with_talkback&quot;>#FFEE675C&lt;/color>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values-night/colors.xml"
+            line="70"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="HardCodedColor"
+        severity="Error"
+        message="Avoid using hardcoded color"
+        category="Correctness"
+        priority="4"
+        summary="Using hardcoded color"
+        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
         errorLine1="    &lt;color name=&quot;screen_flash_color_button_outer_circle_stroke_color&quot;>#FFFFFF&lt;/color>"
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values-night/colors.xml"
-            line="73"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="HardCodedColor"
-        severity="Error"
-        message="Avoid using hardcoded color"
-        category="Correctness"
-        priority="4"
-        summary="Using hardcoded color"
-        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;switch_bar_state_disabled_color&quot;>#1FE3E3E3&lt;/color>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values-night/colors.xml"
-            line="76"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="HardCodedColor"
-        severity="Error"
-        message="Avoid using hardcoded color"
-        category="Correctness"
-        priority="4"
-        summary="Using hardcoded color"
-        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;switchbar_switch_track_tint&quot;>#BFFFFFFF&lt;/color>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/colors.xml"
-            line="76"
+            line="74"
             column="5"/>
     </issue>
 
@@ -1625,7 +1597,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="79"
+            line="75"
             column="5"/>
     </issue>
 
@@ -1641,7 +1613,23 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="80"
+            line="76"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="HardCodedColor"
+        severity="Error"
+        message="Avoid using hardcoded color"
+        category="Correctness"
+        priority="4"
+        summary="Using hardcoded color"
+        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+        errorLine1="    &lt;color name=&quot;switch_bar_state_disabled_color&quot;>#1FE3E3E3&lt;/color>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values-night/colors.xml"
+            line="77"
             column="5"/>
     </issue>
 
@@ -1657,7 +1645,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="83"
+            line="79"
             column="5"/>
     </issue>
 
@@ -1673,7 +1661,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="84"
+            line="80"
             column="5"/>
     </issue>
 
@@ -1689,7 +1677,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="85"
+            line="81"
             column="5"/>
     </issue>
 
@@ -1705,7 +1693,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="86"
+            line="82"
             column="5"/>
     </issue>
 
@@ -1721,7 +1709,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="87"
+            line="83"
             column="5"/>
     </issue>
 
@@ -1737,7 +1725,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="90"
+            line="86"
             column="5"/>
     </issue>
 
@@ -1753,7 +1741,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="91"
+            line="87"
             column="5"/>
     </issue>
 
@@ -1769,7 +1757,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="92"
+            line="88"
             column="5"/>
     </issue>
 
@@ -1785,7 +1773,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="95"
+            line="91"
             column="5"/>
     </issue>
 
@@ -1801,7 +1789,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="103"
+            line="99"
             column="5"/>
     </issue>
 
@@ -1817,7 +1805,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="105"
+            line="101"
             column="5"/>
     </issue>
 
@@ -1833,7 +1821,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="109"
+            line="105"
             column="5"/>
     </issue>
 
@@ -1849,7 +1837,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="110"
+            line="106"
             column="5"/>
     </issue>
 
@@ -1865,7 +1853,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="111"
+            line="107"
             column="5"/>
     </issue>
 
@@ -1881,7 +1869,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="112"
+            line="108"
             column="5"/>
     </issue>
 
@@ -1897,7 +1885,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="113"
+            line="109"
             column="5"/>
     </issue>
 
@@ -1913,7 +1901,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="114"
+            line="110"
             column="5"/>
     </issue>
 
@@ -1929,7 +1917,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="115"
+            line="111"
             column="5"/>
     </issue>
 
@@ -1945,7 +1933,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="116"
+            line="112"
             column="5"/>
     </issue>
 
@@ -1961,7 +1949,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="119"
+            line="115"
             column="5"/>
     </issue>
 
@@ -1977,7 +1965,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="120"
+            line="116"
             column="5"/>
     </issue>
 
@@ -1993,7 +1981,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="121"
+            line="117"
             column="5"/>
     </issue>
 
@@ -2009,7 +1997,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="122"
+            line="118"
             column="5"/>
     </issue>
 
@@ -2025,7 +2013,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="123"
+            line="119"
             column="5"/>
     </issue>
 
@@ -2041,7 +2029,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="124"
+            line="120"
             column="5"/>
     </issue>
 
@@ -2057,7 +2045,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="125"
+            line="121"
             column="5"/>
     </issue>
 
@@ -2073,7 +2061,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="126"
+            line="122"
             column="5"/>
     </issue>
 
@@ -2089,7 +2077,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="129"
+            line="125"
             column="5"/>
     </issue>
 
@@ -2105,7 +2093,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="130"
+            line="126"
             column="5"/>
     </issue>
 
@@ -2121,7 +2109,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="131"
+            line="127"
             column="5"/>
     </issue>
 
@@ -2137,7 +2125,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="132"
+            line="128"
             column="5"/>
     </issue>
 
@@ -2153,7 +2141,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="133"
+            line="129"
             column="5"/>
     </issue>
 
@@ -2169,7 +2157,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="134"
+            line="130"
             column="5"/>
     </issue>
 
@@ -2185,7 +2173,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="137"
+            line="133"
             column="5"/>
     </issue>
 
@@ -2201,7 +2189,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="138"
+            line="134"
             column="5"/>
     </issue>
 
@@ -2217,7 +2205,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="139"
+            line="135"
             column="5"/>
     </issue>
 
@@ -2233,7 +2221,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="140"
+            line="136"
             column="5"/>
     </issue>
 
@@ -2249,7 +2237,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="141"
+            line="137"
             column="5"/>
     </issue>
 
@@ -2265,7 +2253,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="142"
+            line="138"
             column="5"/>
     </issue>
 
@@ -2281,7 +2269,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="145"
+            line="141"
             column="5"/>
     </issue>
 
@@ -2297,7 +2285,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="146"
+            line="142"
             column="5"/>
     </issue>
 
@@ -2313,7 +2301,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="147"
+            line="143"
             column="5"/>
     </issue>
 
@@ -2329,7 +2317,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="148"
+            line="144"
             column="5"/>
     </issue>
 
@@ -2345,7 +2333,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="150"
+            line="146"
             column="5"/>
     </issue>
 
@@ -2361,7 +2349,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="152"
+            line="148"
             column="5"/>
     </issue>
 
@@ -2377,7 +2365,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="155"
+            line="151"
             column="5"/>
     </issue>
 
@@ -2393,7 +2381,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="158"
+            line="154"
             column="5"/>
     </issue>
 
@@ -2409,7 +2397,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="159"
+            line="155"
             column="5"/>
     </issue>
 
@@ -2425,7 +2413,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="160"
+            line="156"
             column="5"/>
     </issue>
 
@@ -2441,7 +2429,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="161"
+            line="157"
             column="5"/>
     </issue>
 
@@ -2457,7 +2445,39 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="162"
+            line="158"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="HardCodedColor"
+        severity="Error"
+        message="Avoid using hardcoded color"
+        category="Correctness"
+        priority="4"
+        summary="Using hardcoded color"
+        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+        errorLine1="    &lt;color name=&quot;power_anomaly_app_warning_hint_color&quot;>#D56E0C&lt;/color>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="173"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="HardCodedColor"
+        severity="Error"
+        message="Avoid using hardcoded color"
+        category="Correctness"
+        priority="4"
+        summary="Using hardcoded color"
+        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+        errorLine1="    &lt;color name=&quot;power_anomaly_primary_button_text_color&quot;>#FFFFFF&lt;/color>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="174"
             column="5"/>
     </issue>
 
@@ -4581,12 +4601,12 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="            android:tint=&quot;#4F8438&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="                android:tint=&quot;#4F8438&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/layout/locale_dialog.xml"
-            line="36"
-            column="13"/>
+            line="45"
+            column="17"/>
     </issue>
 
     <issue
@@ -6105,7 +6125,7 @@
         errorLine2="                                          ^">
         <location
             file="res/values/styles.xml"
-            line="930"
+            line="944"
             column="43"/>
     </issue>
 
@@ -6121,7 +6141,7 @@
         errorLine2="                                          ^">
         <location
             file="res/values/styles.xml"
-            line="930"
+            line="944"
             column="43"/>
     </issue>
 
@@ -6137,7 +6157,7 @@
         errorLine2="                                                ^">
         <location
             file="res/values/styles.xml"
-            line="931"
+            line="945"
             column="49"/>
     </issue>
 
@@ -6153,7 +6173,7 @@
         errorLine2="                                                ^">
         <location
             file="res/values/styles.xml"
-            line="931"
+            line="945"
             column="49"/>
     </issue>
 
@@ -6169,7 +6189,7 @@
         errorLine2="                                                     ^">
         <location
             file="res/values/styles.xml"
-            line="932"
+            line="946"
             column="54"/>
     </issue>
 
@@ -6185,7 +6205,7 @@
         errorLine2="                                                     ^">
         <location
             file="res/values/styles.xml"
-            line="932"
+            line="946"
             column="54"/>
     </issue>
 
@@ -6201,7 +6221,7 @@
         errorLine2="                                              ^">
         <location
             file="res/values/styles.xml"
-            line="933"
+            line="947"
             column="47"/>
     </issue>
 
@@ -6217,7 +6237,7 @@
         errorLine2="                                              ^">
         <location
             file="res/values/styles.xml"
-            line="933"
+            line="947"
             column="47"/>
     </issue>
 
@@ -6233,7 +6253,7 @@
         errorLine2="                                                  ^">
         <location
             file="res/values/styles.xml"
-            line="934"
+            line="948"
             column="51"/>
     </issue>
 
@@ -6249,7 +6269,7 @@
         errorLine2="                                                  ^">
         <location
             file="res/values/styles.xml"
-            line="934"
+            line="948"
             column="51"/>
     </issue>
 
@@ -6265,7 +6285,7 @@
         errorLine2="                                                              ^">
         <location
             file="res/values/styles.xml"
-            line="935"
+            line="949"
             column="63"/>
     </issue>
 
@@ -6281,7 +6301,7 @@
         errorLine2="                                                              ^">
         <location
             file="res/values/styles.xml"
-            line="935"
+            line="949"
             column="63"/>
     </issue>
 
@@ -6357,43 +6377,11 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="        &lt;item name=&quot;android:trackTint&quot;>@color/switchbar_switch_track_tint&lt;/item>"
-        errorLine2="                                       ^">
-        <location
-            file="res/values/themes.xml"
-            line="115"
-            column="40"/>
-    </issue>
-
-    <issue
-        id="HardCodedColor"
-        severity="Error"
-        message="Avoid using hardcoded color"
-        category="Correctness"
-        priority="4"
-        summary="Using hardcoded color"
-        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="        &lt;item name=&quot;android:trackTint&quot;>@color/switchbar_switch_track_tint&lt;/item>"
-        errorLine2="                                       ^">
-        <location
-            file="res/values/themes.xml"
-            line="115"
-            column="40"/>
-    </issue>
-
-    <issue
-        id="HardCodedColor"
-        severity="Error"
-        message="Avoid using hardcoded color"
-        category="Correctness"
-        priority="4"
-        summary="Using hardcoded color"
-        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
         errorLine1="        &lt;item name=&quot;android:colorError&quot;>@color/settings_dialog_colorError&lt;/item>"
         errorLine2="                                        ^">
         <location
             file="res/values/themes.xml"
-            line="127"
+            line="119"
             column="41"/>
     </issue>
 
@@ -6409,7 +6397,7 @@
         errorLine2="                                        ^">
         <location
             file="res/values/themes.xml"
-            line="127"
+            line="119"
             column="41"/>
     </issue>
 
@@ -6425,7 +6413,7 @@
         errorLine2="                                            ^">
         <location
             file="res/values/themes.xml"
-            line="174"
+            line="168"
             column="45"/>
     </issue>
 
@@ -6441,7 +6429,7 @@
         errorLine2="                                                ^">
         <location
             file="res/values/themes.xml"
-            line="175"
+            line="169"
             column="49"/>
     </issue>
 
@@ -6457,7 +6445,7 @@
         errorLine2="                                            ^">
         <location
             file="res/values/themes.xml"
-            line="183"
+            line="177"
             column="45"/>
     </issue>
 
@@ -6473,7 +6461,7 @@
         errorLine2="                                                ^">
         <location
             file="res/values/themes.xml"
-            line="184"
+            line="178"
             column="49"/>
     </issue>
 
diff --git a/protos/fuelgauge_log.proto b/protos/fuelgauge_log.proto
index e75ca48..36126a5 100644
--- a/protos/fuelgauge_log.proto
+++ b/protos/fuelgauge_log.proto
@@ -43,6 +43,7 @@
     RECHECK_JOB = 3;
     FETCH_USAGE_DATA = 4;
     INSERT_USAGE_DATA = 5;
+    TIME_UPDATED = 6;
   }
 
   optional int64 timestamp = 1;
diff --git a/res-product/values-de/strings.xml b/res-product/values-de/strings.xml
index d8c5bc9..408ebcc 100644
--- a/res-product/values-de/strings.xml
+++ b/res-product/values-de/strings.xml
@@ -356,10 +356,7 @@
     <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Wenn du das Tablet drehst"</string>
     <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Hier kannst du anpassen, wie Farben auf deinem Smartphone dargestellt werden"</string>
     <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Hier kannst du anpassen, wie Farben auf deinem Tablet dargestellt werden"</string>
-    <!-- no translation found for spatial_audio_speaker (7148176677982615792) -->
-    <skip />
-    <!-- no translation found for spatial_audio_speaker (5452617980485166854) -->
-    <skip />
-    <!-- no translation found for spatial_audio_speaker (6204289590128303795) -->
-    <skip />
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Smartphone-Lautsprecher"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Tablet-Lautsprecher"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Gerätelautsprecher"</string>
 </resources>
diff --git a/res-product/values-es-rUS/strings.xml b/res-product/values-es-rUS/strings.xml
index 00e7331..2a4ad45 100644
--- a/res-product/values-es-rUS/strings.xml
+++ b/res-product/values-es-rUS/strings.xml
@@ -357,6 +357,6 @@
     <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Ajusta cómo se muestran los colores en tu teléfono"</string>
     <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Ajusta cómo se muestran los colores en tu tablet"</string>
     <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Altavoces del teléfono"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Altavoces de la tablet"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Bocinas de la tablet"</string>
     <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Altavoces del dispositivo"</string>
 </resources>
diff --git a/res-product/values-fr-rCA/strings.xml b/res-product/values-fr-rCA/strings.xml
index 31a479c..9b9a2f7 100644
--- a/res-product/values-fr-rCA/strings.xml
+++ b/res-product/values-fr-rCA/strings.xml
@@ -356,10 +356,7 @@
     <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Lorsque vous orientez votre tablette entre les modes portrait et paysage"</string>
     <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Ajustez l\'affichage des couleurs sur votre téléphone"</string>
     <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Ajustez l\'affichage des couleurs sur votre tablette"</string>
-    <!-- no translation found for spatial_audio_speaker (7148176677982615792) -->
-    <skip />
-    <!-- no translation found for spatial_audio_speaker (5452617980485166854) -->
-    <skip />
-    <!-- no translation found for spatial_audio_speaker (6204289590128303795) -->
-    <skip />
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Haut-parleurs du téléphone"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Haut-parleurs de la tablette"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Haut-parleurs de l\'appareil"</string>
 </resources>
diff --git a/res-product/values-or/strings.xml b/res-product/values-or/strings.xml
index 3dd82b0..e6c3659 100644
--- a/res-product/values-or/strings.xml
+++ b/res-product/values-or/strings.xml
@@ -265,7 +265,7 @@
     <string name="bluetooth_tethering_subtext" product="default" msgid="3638886236597805392">"ବ୍ଲୁଟୁଥ ମାଧ୍ୟମରେ ଫୋନର ଇଣ୍ଟରନେଟ କନେକ୍ସନ ସେୟାର କରନ୍ତୁ"</string>
     <string name="ethernet_tethering_subtext" product="default" msgid="8652438909365718644">"ଇଥରନେଟ ମାଧ୍ୟମରେ ଫୋନର ଇଣ୍ଟରନେଟ କନେକ୍ସନ ସେୟାର କରନ୍ତୁ"</string>
     <string name="ethernet_tethering_subtext" product="tablet" msgid="2227710549796706455">"ଇଥରନେଟ ମାଧ୍ୟମରେ ଟାବଲେଟର ଇଣ୍ଟରନେଟ କନେକ୍ସନ ସେୟାର କରନ୍ତୁ"</string>
-    <string name="about_settings" product="tablet" msgid="1471390492111370330">"ଟାବଲେଟ୍‌ ବିଷୟରେ"</string>
+    <string name="about_settings" product="tablet" msgid="1471390492111370330">"ଟାବଲେଟ ବିଷୟରେ"</string>
     <string name="about_settings" product="default" msgid="2621311564780208250">"ଫୋନ ବିଷୟରେ"</string>
     <string name="about_settings" product="device" msgid="7595574154492383452">"ଡିଭାଇସ୍ ବିଷୟରେ"</string>
     <string name="about_settings" product="emulator" msgid="1099246296173401003">"ଅନୁକରଣ କରାଯାଇଥିବା ଡିଭାଇସ୍‌ ବିଷୟରେ"</string>
diff --git a/res-product/values-pt-rBR/strings.xml b/res-product/values-pt-rBR/strings.xml
index 269d9f6..1cafcee 100644
--- a/res-product/values-pt-rBR/strings.xml
+++ b/res-product/values-pt-rBR/strings.xml
@@ -324,15 +324,15 @@
     <string name="ambient_display_pickup_title" product="default" msgid="6753194901596847876">"Levantar o smartphone para ativar a tela"</string>
     <string name="ambient_display_pickup_title" product="tablet" msgid="1166999144900082897">"Levantar para ativar o tablet"</string>
     <string name="ambient_display_pickup_title" product="device" msgid="2091669267677915975">"Levantar para verificar o dispositivo"</string>
-    <string name="ambient_display_pickup_summary" product="default" msgid="135853288202686097">"Para ver a hora, as notificações e outras informações, pegue o smartphone."</string>
-    <string name="ambient_display_pickup_summary" product="tablet" msgid="1638055271563107384">"Para ver a hora, as notificações e outras informações, pegue o tablet."</string>
-    <string name="ambient_display_pickup_summary" product="device" msgid="964509644539692482">"Para ver a hora, as notificações e outras informações, pegue o dispositivo."</string>
+    <string name="ambient_display_pickup_summary" product="default" msgid="135853288202686097">"Para acessar a hora, as notificações e outras informações, pegue o smartphone."</string>
+    <string name="ambient_display_pickup_summary" product="tablet" msgid="1638055271563107384">"Para acessar a hora, as notificações e outras informações, pegue o tablet."</string>
+    <string name="ambient_display_pickup_summary" product="device" msgid="964509644539692482">"Para acessar a hora, as notificações e outras informações, pegue o dispositivo."</string>
     <string name="ambient_display_tap_screen_title" product="default" msgid="4098147293617084955">"Tocar na tela para ativar o smartphone"</string>
     <string name="ambient_display_tap_screen_title" product="tablet" msgid="7748346447393988408">"Tocar para ativar o tablet"</string>
     <string name="ambient_display_tap_screen_title" product="device" msgid="5710618387229771616">"Tocar para verificar o dispositivo"</string>
-    <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="9220919404923939167">"Para ver suas notificações, deslize o dedo indicador para baixo no sensor de impressão digital localizado na parte traseira do smartphone."</string>
-    <string name="fingerprint_swipe_for_notifications_summary" product="tablet" msgid="8352977484297938140">"Para ver suas notificações, deslize o dedo indicador para baixo no sensor de impressão digital localizado na parte traseira do tablet."</string>
-    <string name="fingerprint_swipe_for_notifications_summary" product="device" msgid="3599811593791756084">"Para ver suas notificações, deslize o dedo indicador para baixo no sensor de impressão digital localizado na parte traseira do dispositivo."</string>
+    <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="9220919404923939167">"Para acessar suas notificações, deslize o dedo indicador para baixo no sensor de impressão digital localizado na parte traseira do smartphone."</string>
+    <string name="fingerprint_swipe_for_notifications_summary" product="tablet" msgid="8352977484297938140">"Para acessar suas notificações, deslize o dedo indicador para baixo no sensor de impressão digital localizado na parte traseira do tablet."</string>
+    <string name="fingerprint_swipe_for_notifications_summary" product="device" msgid="3599811593791756084">"Para acessar suas notificações, deslize o dedo indicador para baixo no sensor de impressão digital localizado na parte traseira do dispositivo."</string>
     <string name="no_5g_in_dsds_text" product="default" msgid="5094072105248383976">"Ao usar dois chips, este smartphone será limitado ao 4G. "<annotation id="url">"Saiba mais"</annotation></string>
     <string name="no_5g_in_dsds_text" product="tablet" msgid="9078652902370178468">"Ao usar dois chips, este tablet será limitado ao 4G. "<annotation id="url">"Saiba mais"</annotation></string>
     <string name="no_5g_in_dsds_text" product="device" msgid="2081735896122371350">"Ao usar dois chips, este dispositivo será limitado ao 4G. "<annotation id="url">"Saiba mais"</annotation></string>
diff --git a/res-product/values-pt/strings.xml b/res-product/values-pt/strings.xml
index 269d9f6..1cafcee 100644
--- a/res-product/values-pt/strings.xml
+++ b/res-product/values-pt/strings.xml
@@ -324,15 +324,15 @@
     <string name="ambient_display_pickup_title" product="default" msgid="6753194901596847876">"Levantar o smartphone para ativar a tela"</string>
     <string name="ambient_display_pickup_title" product="tablet" msgid="1166999144900082897">"Levantar para ativar o tablet"</string>
     <string name="ambient_display_pickup_title" product="device" msgid="2091669267677915975">"Levantar para verificar o dispositivo"</string>
-    <string name="ambient_display_pickup_summary" product="default" msgid="135853288202686097">"Para ver a hora, as notificações e outras informações, pegue o smartphone."</string>
-    <string name="ambient_display_pickup_summary" product="tablet" msgid="1638055271563107384">"Para ver a hora, as notificações e outras informações, pegue o tablet."</string>
-    <string name="ambient_display_pickup_summary" product="device" msgid="964509644539692482">"Para ver a hora, as notificações e outras informações, pegue o dispositivo."</string>
+    <string name="ambient_display_pickup_summary" product="default" msgid="135853288202686097">"Para acessar a hora, as notificações e outras informações, pegue o smartphone."</string>
+    <string name="ambient_display_pickup_summary" product="tablet" msgid="1638055271563107384">"Para acessar a hora, as notificações e outras informações, pegue o tablet."</string>
+    <string name="ambient_display_pickup_summary" product="device" msgid="964509644539692482">"Para acessar a hora, as notificações e outras informações, pegue o dispositivo."</string>
     <string name="ambient_display_tap_screen_title" product="default" msgid="4098147293617084955">"Tocar na tela para ativar o smartphone"</string>
     <string name="ambient_display_tap_screen_title" product="tablet" msgid="7748346447393988408">"Tocar para ativar o tablet"</string>
     <string name="ambient_display_tap_screen_title" product="device" msgid="5710618387229771616">"Tocar para verificar o dispositivo"</string>
-    <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="9220919404923939167">"Para ver suas notificações, deslize o dedo indicador para baixo no sensor de impressão digital localizado na parte traseira do smartphone."</string>
-    <string name="fingerprint_swipe_for_notifications_summary" product="tablet" msgid="8352977484297938140">"Para ver suas notificações, deslize o dedo indicador para baixo no sensor de impressão digital localizado na parte traseira do tablet."</string>
-    <string name="fingerprint_swipe_for_notifications_summary" product="device" msgid="3599811593791756084">"Para ver suas notificações, deslize o dedo indicador para baixo no sensor de impressão digital localizado na parte traseira do dispositivo."</string>
+    <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="9220919404923939167">"Para acessar suas notificações, deslize o dedo indicador para baixo no sensor de impressão digital localizado na parte traseira do smartphone."</string>
+    <string name="fingerprint_swipe_for_notifications_summary" product="tablet" msgid="8352977484297938140">"Para acessar suas notificações, deslize o dedo indicador para baixo no sensor de impressão digital localizado na parte traseira do tablet."</string>
+    <string name="fingerprint_swipe_for_notifications_summary" product="device" msgid="3599811593791756084">"Para acessar suas notificações, deslize o dedo indicador para baixo no sensor de impressão digital localizado na parte traseira do dispositivo."</string>
     <string name="no_5g_in_dsds_text" product="default" msgid="5094072105248383976">"Ao usar dois chips, este smartphone será limitado ao 4G. "<annotation id="url">"Saiba mais"</annotation></string>
     <string name="no_5g_in_dsds_text" product="tablet" msgid="9078652902370178468">"Ao usar dois chips, este tablet será limitado ao 4G. "<annotation id="url">"Saiba mais"</annotation></string>
     <string name="no_5g_in_dsds_text" product="device" msgid="2081735896122371350">"Ao usar dois chips, este dispositivo será limitado ao 4G. "<annotation id="url">"Saiba mais"</annotation></string>
diff --git a/res/color/color_battery_anomaly_yellow_selector.xml b/res/color/color_battery_anomaly_app_warning_selector.xml
similarity index 90%
rename from res/color/color_battery_anomaly_yellow_selector.xml
rename to res/color/color_battery_anomaly_app_warning_selector.xml
index 0dd79c2..4ad78e6 100644
--- a/res/color/color_battery_anomaly_yellow_selector.xml
+++ b/res/color/color_battery_anomaly_app_warning_selector.xml
@@ -14,5 +14,5 @@
      limitations under the License.
 -->
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:color="@color/palette_list_color_yellow"/>
+    <item android:color="@color/power_anomaly_app_warning_hint_color"/>
 </selector>
diff --git a/res/drawable-night/content_protection_preference_illustration.xml b/res/drawable-night/content_protection_preference_illustration.xml
new file mode 100644
index 0000000..ebc7423
--- /dev/null
+++ b/res/drawable-night/content_protection_preference_illustration.xml
@@ -0,0 +1,95 @@
+<?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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt"
+    android:viewportWidth="412"
+    android:viewportHeight="300"
+    android:width="412dp"
+    android:height="300dp">
+    <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="#000000" />
+    <path
+        android:pathData="M99.9008 50.3984C99.9132 46.1588 101.603 42.0963 104.601 39.0984C107.599 36.1005 111.661 34.4108 115.901 34.3984H299.601C303.84 34.4109 307.903 36.1005 310.901 39.0984C313.899 42.0963 315.588 46.1588 315.601 50.3984V299.598H319.601V237.998C319.601 237.998 319.601 234.102 319.601 233.998C319.601 233.998 319.598 231.058 319.601 229.998V198.098C319.598 197.039 319.601 194.098 319.601 194.098V190.098V158.198V154.198C319.601 154.198 319.598 151.258 319.601 150.198V142.198C319.598 141.139 319.601 138.198 319.601 138.198C319.601 135.602 319.601 134.198 319.601 134.198V50.3984C319.602 47.7718 319.085 45.1707 318.08 42.7439C317.075 40.3171 315.602 38.112 313.745 36.2547C311.887 34.3974 309.682 32.9242 307.255 31.9194C304.828 30.9145 302.227 30.3977 299.601 30.3984H115.801C113.174 30.3977 110.573 30.9145 108.146 31.9194C105.719 32.9242 103.514 34.3974 101.657 36.2547C99.7997 38.112 98.3265 40.3171 97.3217 42.7439C96.3169 45.1707 95.8001 47.7718 95.8008 50.3984V299.598H99.8008L99.9008 50.3984Z"
+        android:fillColor="#80868B" />
+    <path
+        android:pathData="M187.295 139.133C190.34 137.043 193.361 135.44 196.358 134.323C199.354 133.207 202.568 132.649 206 132.649C209.432 132.649 212.658 133.207 215.679 134.323C218.7 135.44 221.733 137.043 224.778 139.133C226.904 136.568 228.415 133.979 229.309 131.367C230.203 128.754 230.65 125.999 230.65 123.102C230.65 116.214 228.294 110.455 223.581 105.823C218.869 101.192 213.008 98.8766 206 98.8766C198.992 98.8766 193.131 101.192 188.419 105.823C183.706 110.455 181.35 116.214 181.35 123.102C181.35 125.999 181.809 128.754 182.727 131.367C183.646 133.979 185.168 136.568 187.295 139.133ZM205.987 125.239C203.192 125.239 200.84 124.297 198.931 122.411C197.022 120.526 196.068 118.211 196.068 115.465C196.068 112.718 197.027 110.407 198.945 108.531C200.863 106.655 203.219 105.717 206.013 105.717C208.808 105.717 211.16 106.659 213.069 108.544C214.978 110.429 215.932 112.745 215.932 115.491C215.932 118.237 214.973 120.548 213.055 122.425C211.137 124.301 208.781 125.239 205.987 125.239ZM206.034 151.602C202.048 151.602 198.291 150.853 194.763 149.357C191.234 147.861 188.153 145.818 185.519 143.23C182.885 140.641 180.806 137.618 179.284 134.162C177.761 130.706 177 127.012 177 123.083C177 119.153 177.761 115.466 179.284 112.022C180.806 108.578 182.885 105.562 185.519 102.973C188.153 100.385 191.229 98.3422 194.746 96.8459C198.263 95.3497 202.02 94.6016 206.019 94.6016C210.018 94.6016 213.77 95.3497 217.274 96.8459C220.778 98.3422 223.847 100.385 226.481 102.973C229.115 105.562 231.194 108.579 232.716 112.024C234.239 115.47 235 119.151 235 123.068C235 126.985 234.239 130.678 232.716 134.145C231.194 137.613 229.115 140.641 226.481 143.23C223.847 145.818 220.777 147.861 217.271 149.357C213.766 150.853 210.02 151.602 206.034 151.602Z"
+        android:fillColor="#CE4237" />
+    <path
+        android:pathData="M179 161.602H193V168.602H179V161.602Z"
+        android:fillColor="#FAD2CF" />
+    <path
+        android:pathData="M198 161.602H233V168.602H198V161.602Z"
+        android:fillColor="#CE4237" />
+    <path
+        android:pathData="M179 178.602H193V185.602H179V178.602Z"
+        android:fillColor="#FAD2CF" />
+    <path
+        android:pathData="M198 178.602H233V185.602H198V178.602Z"
+        android:fillColor="#CE4237" />
+    <path
+        android:pathData="M190 196.602H222V208.602H190V196.602Z"
+        android:fillColor="#FAD2CF" />
+    <path
+        android:pathData="M328.122 273.468L260.34 209.633L265.206 204.5L332.988 268.335L328.122 273.468Z"
+        android:fillType="evenOdd"
+        android:fillColor="#D2E3FC"
+        android:strokeColor="#D2E3FC"
+        android:strokeWidth="4"
+        android:strokeMiterLimit="10" />
+    <path
+        android:pathData="M332.506 289.4L275.852 236.043L292.078 218.93L348.732 272.287L332.506 289.4Z"
+        android:fillType="evenOdd"
+        android:fillColor="#5F6368" />
+    <path
+        android:pathData="M197.901 78.1597C157.127 82.8442 127.883 119.586 132.583 160.225C137.283 200.864 174.147 230.01 214.922 225.326C255.696 220.641 284.94 183.9 280.24 143.261C275.54 102.622 238.676 73.4752 197.901 78.1597ZM125.543 161.033C120.395 116.519 152.427 76.2741 197.09 71.1429C241.753 66.0116 282.132 97.9372 287.28 142.452C292.428 186.966 260.396 227.211 215.733 232.342C171.07 237.474 130.691 205.548 125.543 161.033Z"
+        android:fillType="evenOdd"
+        android:fillColor="#E8F0FE"
+        android:strokeColor="#E8F0FE"
+        android:strokeWidth="4"
+        android:strokeMiterLimit="10" />
+    <path
+        android:pathData="M304.503 154.91C327.804 154.91 346.693 136.068 346.693 112.826C346.693 89.5837 327.804 70.7422 304.503 70.7422C281.202 70.7422 262.312 89.5837 262.312 112.826C262.312 136.068 281.202 154.91 304.503 154.91Z"
+        android:fillColor="#000000" />
+    <path
+        android:pathData="M262.922 112.994C262.922 90.0243 281.615 71.5239 304.5 71.5239C327.385 71.5239 346.078 90.0243 346.078 112.994C346.078 135.966 327.536 154.464 304.5 154.464C281.464 154.464 262.922 135.966 262.922 112.994ZM269.639 112.842C269.639 131.957 285.342 147.617 304.5 147.617C323.656 147.617 339.361 132.112 339.361 112.842C339.361 93.7262 323.658 78.0663 304.5 78.0663C285.342 78.0663 269.639 93.7262 269.639 112.842Z"
+        android:fillColor="#669DF6"
+        android:strokeColor="#000000"
+        android:strokeWidth="1.84466" />
+    <path
+        android:pathData="M28.3587 77.319C31.3183 77.319 33.7175 74.9199 33.7175 71.9603C33.7175 69.0008 31.3183 66.6016 28.3587 66.6016C25.3992 66.6016 23 69.0008 23 71.9603C23 74.9199 25.3992 77.319 28.3587 77.319Z"
+        android:fillColor="#3C4043" />
+    <path
+        android:pathData="M73.455 148.202L66.4212 142.11C65.2517 141.166 63.437 141.804 63.1422 143.301L61.447 152.355C61.1523 153.853 62.6155 155.069 64.0854 154.657L72.8087 151.553C74.2785 151.142 74.63 149.288 73.455 148.202L66.4212 142.11C65.2517 141.166 63.437 141.804 63.1422 143.301L61.447 152.355C61.1523 153.853 62.6155 155.069 64.0854 154.657L72.8087 151.553C74.2785 151.142 74.63 149.288 73.455 148.202Z"
+        android:fillColor="#3C4043" />
+    <path
+        android:pathData="M355.172 221.081L361.415 214.181C362.385 213.032 361.786 211.204 360.295 210.877L351.28 208.986C349.789 208.658 348.542 210.095 348.922 211.573L351.835 220.362C352.215 221.84 354.061 222.232 355.172 221.081L361.415 214.181C362.385 213.032 361.786 211.204 360.295 210.877L351.28 208.986C349.789 208.658 348.542 210.095 348.922 211.573L351.835 220.362C352.215 221.84 354.061 222.232 355.172 221.081Z"
+        android:fillColor="#3C4043" />
+    <path
+        android:pathData="M375.237 77.1385C372.737 78.5385 369.537 77.5385 368.237 75.0385L365.637 70.2385C364.237 67.7385 365.237 64.5385 367.737 63.2385C370.237 61.8385 373.437 62.8385 374.737 65.3385L377.337 70.1385C378.637 72.6385 377.737 75.7385 375.237 77.1385Z"
+        android:fillColor="#3C4043" />
+    <path
+        android:pathData="M43.8011 251.431C42.1248 249.107 42.7529 245.814 45.0882 244.237L49.56 241.106C51.8838 239.43 55.177 240.058 56.754 242.393C58.4302 244.717 57.8021 248.01 55.4668 249.587L50.9951 252.718C48.6598 254.295 45.4773 253.755 43.8011 251.431Z"
+        android:fillColor="#3C4043" />
+    <path
+        android:pathData="M326.336 96.4466C326.336 94.6064 325.189 92.9795 323.456 92.3394L306.496 86.2053C305.536 85.8586 304.496 85.8586 303.536 86.2053L286.55 92.3394C284.817 92.9795 283.67 94.6064 283.67 96.4466V108.128C283.723 110.128 283.857 112.049 284.123 114.049C285.377 122.53 290.176 132.158 303.323 138.879C304.363 139.412 305.616 139.412 306.656 138.879C319.803 132.131 324.602 122.53 325.856 114.049C326.122 112.075 326.282 110.128 326.309 108.128V96.4466H326.336Z"
+        android:fillColor="#2F59D9" />
+    <path
+        android:pathData="M302.467 109.557C302.467 109.557 302.334 109.45 302.281 109.424C301.934 109.21 301.907 109.21 302.467 109.557Z"
+        android:fillColor="#000000" />
+    <path
+        android:pathData="M323.448 92.3394L306.489 86.2053C305.529 85.8586 304.489 85.8586 303.529 86.2053L302.862 86.4454C301.609 86.9521 300.062 87.8055 298.729 89.2991C296.942 91.2993 295.822 94.073 295.822 97.6468C295.822 97.7001 295.822 97.7268 295.822 97.7801C295.822 98.3402 295.902 101.301 297.662 104.474C299.156 107.141 301.102 108.661 302.275 109.462C303.315 110.128 307.422 112.742 308.969 113.942C311.235 115.729 312.915 117.116 314.169 119.49C316.435 123.703 315.635 127.944 315.529 128.557C314.649 133.011 311.742 135.705 310.089 136.958C320.648 130.398 324.728 121.756 325.875 114.076C326.142 112.102 326.302 110.155 326.328 108.155V96.4466C326.328 94.6064 325.182 92.9795 323.448 92.3394Z"
+        android:fillColor="#6792F8" />
+</vector>
diff --git a/res/drawable/content_protection_preference_illustration.xml b/res/drawable/content_protection_preference_illustration.xml
new file mode 100644
index 0000000..1083c1f
--- /dev/null
+++ b/res/drawable/content_protection_preference_illustration.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt"
+    android:viewportWidth="412"
+    android:viewportHeight="300"
+    android:width="412dp"
+    android:height="300dp">
+    <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="#FFFFFF" />
+    <path
+        android:pathData="M99.9008 50.3984C99.9132 46.1588 101.603 42.0963 104.601 39.0984C107.599 36.1005 111.661 34.4108 115.901 34.3984H299.601C303.84 34.4109 307.903 36.1005 310.901 39.0984C313.899 42.0963 315.588 46.1588 315.601 50.3984V299.598H319.601V237.998C319.601 237.998 319.601 234.102 319.601 233.998C319.601 233.998 319.598 231.058 319.601 229.998V198.098C319.598 197.039 319.601 194.098 319.601 194.098V190.098V158.198V154.198C319.601 154.198 319.598 151.258 319.601 150.198V142.198C319.598 141.139 319.601 138.198 319.601 138.198C319.601 135.602 319.601 134.198 319.601 134.198V50.3984C319.602 47.7718 319.085 45.1707 318.08 42.7439C317.075 40.3171 315.602 38.112 313.745 36.2547C311.887 34.3974 309.682 32.9242 307.255 31.9194C304.828 30.9145 302.227 30.3977 299.601 30.3984H115.801C113.174 30.3977 110.573 30.9145 108.146 31.9194C105.719 32.9242 103.514 34.3974 101.657 36.2547C99.7997 38.112 98.3265 40.3171 97.3217 42.7439C96.3169 45.1707 95.8001 47.7718 95.8008 50.3984V299.598H99.8008L99.9008 50.3984Z"
+        android:fillColor="#DADCE0" />
+    <path
+        android:pathData="M187.295 139.133C190.34 137.043 193.361 135.44 196.358 134.323C199.354 133.207 202.568 132.649 206 132.649C209.432 132.649 212.658 133.207 215.679 134.323C218.7 135.44 221.733 137.043 224.778 139.133C226.904 136.568 228.415 133.979 229.309 131.367C230.203 128.754 230.65 125.999 230.65 123.102C230.65 116.214 228.294 110.455 223.581 105.823C218.869 101.192 213.008 98.8766 206 98.8766C198.992 98.8766 193.131 101.192 188.419 105.823C183.706 110.455 181.35 116.214 181.35 123.102C181.35 125.999 181.809 128.754 182.727 131.367C183.646 133.979 185.168 136.568 187.295 139.133ZM205.987 125.239C203.192 125.239 200.84 124.297 198.931 122.411C197.022 120.526 196.068 118.211 196.068 115.465C196.068 112.718 197.027 110.407 198.945 108.531C200.863 106.655 203.219 105.717 206.013 105.717C208.808 105.717 211.16 106.659 213.069 108.544C214.978 110.429 215.932 112.745 215.932 115.491C215.932 118.237 214.973 120.548 213.055 122.425C211.137 124.301 208.781 125.239 205.987 125.239ZM206.034 151.602C202.048 151.602 198.291 150.853 194.763 149.357C191.234 147.861 188.153 145.818 185.519 143.23C182.885 140.641 180.806 137.618 179.284 134.162C177.761 130.706 177 127.012 177 123.083C177 119.153 177.761 115.466 179.284 112.022C180.806 108.578 182.885 105.562 185.519 102.973C188.153 100.385 191.229 98.3422 194.746 96.8459C198.263 95.3497 202.02 94.6016 206.019 94.6016C210.018 94.6016 213.77 95.3497 217.274 96.8459C220.778 98.3422 223.847 100.385 226.481 102.973C229.115 105.562 231.194 108.579 232.716 112.024C234.239 115.47 235 119.151 235 123.068C235 126.985 234.239 130.678 232.716 134.145C231.194 137.613 229.115 140.641 226.481 143.23C223.847 145.818 220.777 147.861 217.271 149.357C213.766 150.853 210.02 151.602 206.034 151.602Z"
+        android:fillColor="#D93025" />
+    <path
+        android:pathData="M179 161.602H193V168.602H179V161.602Z"
+        android:fillColor="#EE675C" />
+    <path
+        android:pathData="M198 161.602H233V168.602H198V161.602Z"
+        android:fillColor="#D93025" />
+    <path
+        android:pathData="M179 178.602H193V185.602H179V178.602Z"
+        android:fillColor="#EE675C" />
+    <path
+        android:pathData="M198 178.602H233V185.602H198V178.602Z"
+        android:fillColor="#D93025" />
+    <path
+        android:pathData="M190 196.602H222V208.602H190V196.602Z"
+        android:fillColor="#EE675C" />
+    <path
+        android:pathData="M328.122 273.468L260.34 209.633L265.206 204.5L332.988 268.335L328.122 273.468Z"
+        android:fillType="evenOdd"
+        android:fillColor="#8AB4F8"
+        android:strokeColor="#8AB4F8"
+        android:strokeWidth="4"
+        android:strokeMiterLimit="10" />
+    <path
+        android:pathData="M332.506 289.4L275.852 236.043L292.078 218.93L348.732 272.287L332.506 289.4Z"
+        android:fillType="evenOdd"
+        android:fillColor="#BDC1C6" />
+    <path
+        android:pathData="M197.901 78.1597C157.127 82.8442 127.883 119.586 132.583 160.225C137.283 200.864 174.147 230.01 214.922 225.326C255.696 220.641 284.94 183.9 280.24 143.261C275.54 102.622 238.676 73.4752 197.901 78.1597ZM125.543 161.033C120.395 116.519 152.427 76.2741 197.09 71.1429C241.753 66.0116 282.132 97.9372 287.28 142.452C292.428 186.966 260.396 227.211 215.733 232.342C171.07 237.474 130.691 205.548 125.543 161.033Z"
+        android:fillType="evenOdd"
+        android:fillColor="#8AB4F8"
+        android:strokeColor="#8AB4F8"
+        android:strokeWidth="4"
+        android:strokeMiterLimit="10" />
+    <path
+        android:pathData="M28.3587 77.319C31.3183 77.319 33.7175 74.9199 33.7175 71.9603C33.7175 69.0008 31.3183 66.6016 28.3587 66.6016C25.3992 66.6016 23 69.0008 23 71.9603C23 74.9199 25.3992 77.319 28.3587 77.319Z"
+        android:fillColor="#E8EAED" />
+    <path
+        android:pathData="M73.455 148.202L66.4212 142.11C65.2517 141.166 63.437 141.804 63.1422 143.301L61.447 152.355C61.1523 153.853 62.6155 155.069 64.0854 154.657L72.8087 151.553C74.2785 151.142 74.63 149.288 73.455 148.202L66.4212 142.11C65.2517 141.166 63.437 141.804 63.1422 143.301L61.447 152.355C61.1523 153.853 62.6155 155.069 64.0854 154.657L72.8087 151.553C74.2785 151.142 74.63 149.288 73.455 148.202Z"
+        android:fillColor="#E8EAED" />
+    <path
+        android:pathData="M355.172 221.081L361.415 214.181C362.385 213.032 361.786 211.204 360.295 210.877L351.28 208.986C349.789 208.658 348.542 210.095 348.922 211.573L351.835 220.362C352.215 221.84 354.061 222.232 355.172 221.081L361.415 214.181C362.385 213.032 361.786 211.204 360.295 210.877L351.28 208.986C349.789 208.658 348.542 210.095 348.922 211.573L351.835 220.362C352.215 221.84 354.061 222.232 355.172 221.081Z"
+        android:fillColor="#E8EAED" />
+    <path
+        android:pathData="M375.237 77.1385C372.737 78.5385 369.537 77.5385 368.237 75.0385L365.637 70.2385C364.237 67.7385 365.237 64.5385 367.737 63.2385C370.237 61.8385 373.437 62.8385 374.737 65.3385L377.337 70.1385C378.637 72.6385 377.737 75.7385 375.237 77.1385Z"
+        android:fillColor="#E8EAED" />
+    <path
+        android:pathData="M43.8011 251.431C42.1248 249.107 42.7529 245.814 45.0882 244.237L49.56 241.106C51.8838 239.43 55.177 240.058 56.754 242.393C58.4302 244.717 57.8021 248.01 55.4668 249.587L50.9951 252.718C48.6598 254.295 45.4773 253.755 43.8011 251.431Z"
+        android:fillColor="#E8EAED" />
+    <path
+        android:pathData="M304.503 154.91C327.804 154.91 346.693 136.068 346.693 112.826C346.693 89.5837 327.804 70.7422 304.503 70.7422C281.202 70.7422 262.312 89.5837 262.312 112.826C262.312 136.068 281.202 154.91 304.503 154.91Z"
+        android:fillColor="#FFFFFF" />
+    <path
+        android:pathData="M262.922 112.994C262.922 90.0243 281.615 71.5239 304.5 71.5239C327.385 71.5239 346.078 90.0243 346.078 112.994C346.078 135.966 327.536 154.464 304.5 154.464C281.464 154.464 262.922 135.966 262.922 112.994ZM269.639 112.842C269.639 131.957 285.342 147.617 304.5 147.617C323.656 147.617 339.361 132.112 339.361 112.842C339.361 93.7262 323.658 78.0663 304.5 78.0663C285.342 78.0663 269.639 93.7262 269.639 112.842Z"
+        android:fillColor="#1A73E8"
+        android:strokeColor="#FFFFFF"
+        android:strokeWidth="1.84466" />
+    <path
+        android:pathData="M326.331 96.8293C326.331 94.9891 325.184 93.3623 323.451 92.7222L306.491 86.5882C305.531 86.2414 304.491 86.2414 303.531 86.5882L286.544 92.7222C284.811 93.3623 283.664 94.9891 283.664 96.8293V108.511C283.717 110.511 283.851 112.431 284.117 114.431C285.371 122.912 290.171 132.54 303.317 139.261C304.357 139.794 305.611 139.794 306.651 139.261C319.797 132.513 324.597 122.912 325.851 114.431C326.117 112.458 326.277 110.511 326.304 108.511V96.8293H326.331Z"
+        android:fillColor="#224FB4" />
+    <path
+        android:pathData="M302.469 109.955C302.469 109.955 302.336 109.849 302.283 109.822C301.936 109.609 301.909 109.609 302.469 109.955Z"
+        android:fillColor="#000000" />
+    <path
+        android:pathData="M323.451 92.7222L306.491 86.5882C305.531 86.2414 304.491 86.2414 303.531 86.5882L302.864 86.8282C301.611 87.3349 300.064 88.1883 298.731 89.6818C296.944 91.6821 295.824 94.4557 295.824 98.0294C295.824 98.0828 295.824 98.1095 295.824 98.1628C295.824 98.7229 295.904 101.683 297.664 104.857C299.158 107.524 301.104 109.044 302.278 109.844C303.318 110.511 307.424 113.124 308.971 114.325C311.238 116.111 312.918 117.498 314.171 119.872C316.438 124.086 315.638 128.326 315.531 128.94C314.651 133.393 311.744 136.087 310.091 137.341C320.651 130.78 324.731 122.139 325.878 114.458C326.144 112.484 326.304 110.538 326.331 108.537V96.8293C326.331 94.9891 325.184 93.3623 323.451 92.7222Z"
+        android:fillColor="#578BFF" />
+</vector>
diff --git a/res/drawable/counter_1_24dp.xml b/res/drawable/counter_1_24dp.xml
new file mode 100644
index 0000000..4fcf1af
--- /dev/null
+++ b/res/drawable/counter_1_24dp.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="960"
+    android:viewportHeight="960"
+    android:tint="?attr/colorControlNormal">
+  <path
+      android:fillColor="?android:attr/colorAccent"
+      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,346 707,253Q614,160 480,160Q346,160 253,253Q160,346 160,480Q160,614 253,707Q346,800 480,800ZM480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480ZM460,680L540,680L540,280L380,280L380,360L460,360L460,680Z"/>
+</vector>
diff --git a/res/drawable/counter_2_24dp.xml b/res/drawable/counter_2_24dp.xml
new file mode 100644
index 0000000..27d63cb
--- /dev/null
+++ b/res/drawable/counter_2_24dp.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="960"
+    android:viewportHeight="960"
+    android:tint="?attr/colorControlNormal">
+  <path
+      android:fillColor="?android:attr/colorAccent"
+      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,346 707,253Q614,160 480,160Q346,160 253,253Q160,346 160,480Q160,614 253,707Q346,800 480,800ZM480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480ZM360,680L600,680L600,600L440,600L440,520Q440,520 440,520Q440,520 440,520L520,520Q553,520 576.5,496.5Q600,473 600,440L600,360Q600,327 576.5,303.5Q553,280 520,280L360,280L360,360L520,360Q520,360 520,360Q520,360 520,360L520,440Q520,440 520,440Q520,440 520,440L440,440Q407,440 383.5,463.5Q360,487 360,520L360,680Z"/>
+</vector>
diff --git a/res/drawable/counter_3_24dp.xml b/res/drawable/counter_3_24dp.xml
new file mode 100644
index 0000000..5795f84
--- /dev/null
+++ b/res/drawable/counter_3_24dp.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="960"
+    android:viewportHeight="960"
+    android:tint="?attr/colorControlNormal">
+  <path
+      android:fillColor="?android:attr/colorAccent"
+      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,346 707,253Q614,160 480,160Q346,160 253,253Q160,346 160,480Q160,614 253,707Q346,800 480,800ZM480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480ZM360,680L520,680Q553,680 576.5,656.5Q600,633 600,600L600,540Q600,514 583,497Q566,480 540,480Q566,480 583,463Q600,446 600,420L600,360Q600,327 576.5,303.5Q553,280 520,280L360,280L360,360L520,360Q520,360 520,360Q520,360 520,360L520,440Q520,440 520,440Q520,440 520,440L440,440L440,520L520,520Q520,520 520,520Q520,520 520,520L520,600Q520,600 520,600Q520,600 520,600L360,600L360,680Z"/>
+</vector>
diff --git a/res/drawable/ic_audio_calls_and_alarms.xml b/res/drawable/ic_audio_calls_and_alarms.xml
new file mode 100644
index 0000000..5da27c6
--- /dev/null
+++ b/res/drawable/ic_audio_calls_and_alarms.xml
@@ -0,0 +1,32 @@
+<!--
+  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:pathData="M3,15V9H7L12,4V20L7,15H3ZM10,15.17V8.83L7.83,11H5V13H7.83L10,15.17Z"
+        android:fillType="evenOdd"
+        android:fillColor="?android:attr/colorPrimary"/>
+    <path
+        android:pathData="M16.5,12C16.5,10.23 15.48,8.71 14,7.97V16.02C15.48,15.29 16.5,13.77 16.5,12Z"
+        android:fillColor="?android:attr/colorPrimary"/>
+    <path
+        android:pathData="M14,3.23V5.29C16.89,6.15 19,8.83 19,12C19,15.17 16.89,17.85 14,18.71V20.77C18.01,19.86 21,16.28 21,12C21,7.72 18.01,4.14 14,3.23Z"
+        android:fillColor="?android:attr/colorPrimary"/>
+</vector>
diff --git a/res/drawable/ic_battery_tips_lightbulb.xml b/res/drawable/ic_battery_tips_lightbulb.xml
index 6fffefc..19b6ab8 100644
--- a/res/drawable/ic_battery_tips_lightbulb.xml
+++ b/res/drawable/ic_battery_tips_lightbulb.xml
@@ -17,9 +17,9 @@
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
     android:width="32dp"
     android:height="32dp"
-    android:viewportWidth="24"
-    android:viewportHeight="24">
+    android:viewportWidth="960"
+    android:viewportHeight="960">
     <path
         android:fillColor="@color/color_accent_selector"
-        android:pathData="M7,20h4c0,1.1 -0.9,2 -2,2S7,21.1 7,20zM5,19h8v-2H5V19zM16.5,9.5c0,3.82 -2.66,5.86 -3.77,6.5H5.27C4.16,15.36 1.5,13.32 1.5,9.5C1.5,5.36 4.86,2 9,2S16.5,5.36 16.5,9.5zM14.5,9.5C14.5,6.47 12.03,4 9,4S3.5,6.47 3.5,9.5c0,2.47 1.49,3.89 2.35,4.5h6.3C13.01,13.39 14.5,11.97 14.5,9.5zM21.37,7.37L20,8l1.37,0.63L22,10l0.63,-1.37L24,8l-1.37,-0.63L22,6L21.37,7.37zM19,6l0.94,-2.06L22,3l-2.06,-0.94L19,0l-0.94,2.06L16,3l2.06,0.94L19,6z"/>
+        android:pathData="M176,680Q114,643 77,580Q40,517 40,440Q40,323 121.5,241.5Q203,160 320,160Q437,160 518.5,241.5Q600,323 600,440Q600,517 563,580Q526,643 464,680L176,680ZM200,600L440,600Q478,571 499,529.5Q520,488 520,440Q520,357 461.5,298.5Q403,240 320,240Q237,240 178.5,298.5Q120,357 120,440Q120,488 141,529.5Q162,571 200,600ZM176,800L176,720L464,720L464,800L176,800ZM320,920Q287,920 263.5,896.5Q240,873 240,840L400,840Q400,873 376.5,896.5Q353,920 320,920ZM740,401Q740,326 687,273Q634,220 559,220Q634,220 687,167.5Q740,115 740,40Q740,115 792.5,167.5Q845,220 920,220Q845,220 792.5,273Q740,326 740,401ZM320,600Q320,600 320,600Q320,600 320,600Q320,600 320,600Q320,600 320,600Q320,600 320,600Q320,600 320,600Q320,600 320,600Q320,600 320,600L320,600Z"/>
 </vector>
\ No newline at end of file
diff --git a/res/drawable/ic_battery_tips_warning_icon.xml b/res/drawable/ic_battery_tips_warning_icon.xml
index c5df8a8..0dcfa6d 100644
--- a/res/drawable/ic_battery_tips_warning_icon.xml
+++ b/res/drawable/ic_battery_tips_warning_icon.xml
@@ -17,9 +17,9 @@
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
     android:width="32dp"
     android:height="32dp"
-    android:viewportWidth="24"
-    android:viewportHeight="24">
+    android:viewportWidth="960"
+    android:viewportHeight="960">
     <path
-        android:fillColor="@color/color_battery_anomaly_yellow_selector"
-        android:pathData="M1,21h22L12,2 1,21zM13,18h-2v-2h2v2zM13,14h-2v-4h2v4z"/>
+        android:fillColor="@color/color_battery_anomaly_app_warning_selector"
+        android:pathData="M40,840L480,80L920,840L40,840ZM178,760L782,760L480,240L178,760ZM480,720Q497,720 508.5,708.5Q520,697 520,680Q520,663 508.5,651.5Q497,640 480,640Q463,640 451.5,651.5Q440,663 440,680Q440,697 451.5,708.5Q463,720 480,720ZM440,600L520,600L520,400L440,400L440,600ZM480,500L480,500L480,500L480,500Z"/>
 </vector>
\ No newline at end of file
diff --git a/res/drawable/ic_battery_uninstalled.xml b/res/drawable/ic_battery_uninstalled.xml
new file mode 100644
index 0000000..2d8ea86
--- /dev/null
+++ b/res/drawable/ic_battery_uninstalled.xml
@@ -0,0 +1,33 @@
+<!--
+  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="24.0dp"
+    android:height="24.0dp"
+    android:tint="@color/battery_usage_system_icon_color"
+    android:viewportWidth="24.0"
+    android:viewportHeight="24.0">
+
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M15,4V3H9v1H4v2h1v13c0,1.1 0.9,2 2,2h10c1.1,0 2,-0.9 2,-2V6h1V4H15zM17,19H7V6h10V19z" />
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M9,8h2v9h-2z" />
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M13,8h2v9h-2z" />
+</vector>
diff --git a/res/drawable/ic_bt_audio_sharing.xml b/res/drawable/ic_bt_audio_sharing.xml
new file mode 100644
index 0000000..6186773
--- /dev/null
+++ b/res/drawable/ic_bt_audio_sharing.xml
@@ -0,0 +1,87 @@
+<!--
+  ~ 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:autoMirrored="true"
+        android:height="24dp"
+        android:width="24dp"
+        android:viewportHeight="24"
+        android:viewportWidth="24"
+        android:tint="?android:attr/colorControlNormal">
+    <path
+        android:fillColor="#000000"
+        android:pathData="M16.984,24H7.279L12.131,15.508L16.984,24ZM10.481,22.144H13.781L12.131,19.257L10.481,22.144Z"/>
+    <path
+        android:fillColor="#000000"
+        android:pathData="M12.131,14.295C13.471,14.295 14.558,13.209 14.558,11.869C14.558,10.529 13.471,9.442 12.131,9.442C10.791,9.442 9.705,10.529 9.705,11.869C9.705,13.209 10.791,14.295 12.131,14.295Z"/>
+    <path
+        android:fillColor="#000000"
+        android:pathData="M4.573,21.368C4.052,20.943 3.967,20.179 4.379,19.657C4.804,19.136 5.568,19.051 6.09,19.463C6.611,19.876 6.696,20.64 6.284,21.174C6.041,21.465 5.689,21.623 5.338,21.623C5.071,21.623 4.804,21.538 4.573,21.368Z"/>
+    <path
+        android:fillColor="#000000"
+        android:pathData="M17.991,21.162C17.579,20.628 17.663,19.876 18.185,19.451C18.707,19.039 19.471,19.124 19.896,19.646C20.308,20.167 20.223,20.931 19.702,21.344C19.471,21.526 19.204,21.611 18.949,21.611C18.586,21.611 18.234,21.453 17.991,21.162Z"/>
+    <path
+        android:fillColor="#000000"
+        android:pathData="M1.213,17.145C0.91,16.551 1.165,15.823 1.771,15.532C2.378,15.241 3.093,15.495 3.397,16.09C3.688,16.697 3.433,17.424 2.827,17.715C2.657,17.8 2.475,17.837 2.305,17.837C1.844,17.837 1.419,17.582 1.213,17.145Z"/>
+    <path
+        android:fillColor="#000000"
+        android:pathData="M21.449,17.691C20.842,17.4 20.588,16.684 20.879,16.077C21.17,15.471 21.898,15.216 22.504,15.507C23.099,15.798 23.354,16.526 23.062,17.133C22.856,17.557 22.419,17.812 21.971,17.812C21.789,17.812 21.619,17.776 21.449,17.691Z"/>
+    <path
+        android:fillColor="#000000"
+        android:pathData="M0,11.892C0,11.225 0.546,10.679 1.213,10.679C1.88,10.679 2.426,11.212 2.426,11.892C2.426,12.559 1.88,13.105 1.213,13.105C0.546,13.105 0,12.559 0,11.892Z"/>
+    <path
+        android:fillColor="#000000"
+        android:pathData="M21.837,11.869C21.837,11.857 21.837,11.845 21.837,11.833C21.824,11.153 22.37,10.62 23.05,10.607C23.717,10.607 24.251,11.153 24.263,11.821C24.263,11.833 24.263,11.845 24.263,11.845C24.263,11.857 24.263,11.869 24.263,11.869C24.263,12.536 23.717,13.082 23.05,13.082C22.382,13.082 21.837,12.536 21.837,11.869Z"/>
+    <path
+        android:fillColor="#000000"
+        android:pathData="M1.759,8.242C1.152,7.963 0.898,7.235 1.189,6.628C1.48,6.022 2.196,5.767 2.802,6.058C3.409,6.349 3.664,7.077 3.372,7.684C3.166,8.108 2.729,8.363 2.281,8.363C2.099,8.363 1.929,8.327 1.759,8.242Z"/>
+    <path
+        android:fillColor="#000000"
+        android:pathData="M20.866,7.622C20.563,7.028 20.818,6.3 21.424,6.009C22.019,5.706 22.747,5.96 23.038,6.567C23.038,6.567 23.038,6.567 23.05,6.567C23.341,7.161 23.087,7.889 22.48,8.181C22.31,8.265 22.128,8.302 21.958,8.302C21.509,8.302 21.073,8.059 20.866,7.622Z"/>
+    <path
+        android:fillColor="#000000"
+        android:pathData="M4.355,4.104C3.931,3.582 4.016,2.818 4.537,2.406C5.071,1.981 5.823,2.066 6.248,2.588C6.672,3.109 6.588,3.874 6.066,4.298C5.835,4.48 5.569,4.565 5.302,4.565C4.95,4.565 4.598,4.407 4.355,4.104Z"/>
+    <path
+        android:fillColor="#000000"
+        android:pathData="M18.161,4.262C17.627,3.838 17.542,3.073 17.955,2.552C18.379,2.03 19.132,1.945 19.666,2.358C20.187,2.77 20.272,3.534 19.86,4.068C19.617,4.359 19.265,4.517 18.913,4.517C18.646,4.517 18.379,4.432 18.161,4.262Z"/>
+    <path
+        android:fillColor="#000000"
+        android:pathData="M8.492,1.497C8.334,0.854 8.747,0.199 9.402,0.041C10.057,-0.105 10.7,0.308 10.858,0.963C11.003,1.606 10.591,2.261 9.948,2.407C9.851,2.431 9.754,2.443 9.669,2.443C9.123,2.443 8.613,2.067 8.492,1.497Z"/>
+    <path
+        android:fillColor="#000000"
+        android:pathData="M14.267,2.395C13.599,2.249 13.199,1.606 13.345,0.951C13.49,0.296 14.133,-0.116 14.788,0.029C15.443,0.175 15.856,0.83 15.71,1.485C15.589,2.043 15.08,2.431 14.534,2.431C14.437,2.431 14.352,2.419 14.267,2.395Z"/>
+    <path
+        android:fillColor="#000000"
+        android:pathData="M7,17.037C6.527,16.564 6.527,15.8 7,15.326C7.473,14.841 8.237,14.841 8.71,15.314C9.196,15.787 9.196,16.552 8.723,17.025C8.48,17.267 8.177,17.389 7.861,17.389C7.546,17.389 7.242,17.267 7,17.037Z"/>
+    <path
+        android:fillColor="#000000"
+        android:pathData="M15.565,17.012C15.092,16.539 15.092,15.762 15.565,15.289C16.038,14.816 16.814,14.816 17.288,15.289C17.761,15.762 17.761,16.539 17.288,17.012C17.045,17.243 16.742,17.364 16.426,17.364C16.111,17.364 15.807,17.243 15.565,17.012Z"/>
+    <path
+        android:fillColor="#000000"
+        android:pathData="M4.853,11.917C4.853,11.237 5.386,10.691 6.054,10.691C6.721,10.691 7.279,11.225 7.279,11.892C7.279,12.56 6.745,13.106 6.078,13.118C5.398,13.118 4.853,12.584 4.853,11.917Z"/>
+    <path
+        android:fillColor="#000000"
+        android:pathData="M16.984,11.868C16.984,11.856 16.984,11.844 16.984,11.832C16.984,11.832 16.984,11.82 16.984,11.807C16.972,11.14 17.506,10.582 18.185,10.582C18.852,10.57 19.398,11.116 19.41,11.783C19.41,11.795 19.41,11.82 19.41,11.832C19.41,11.844 19.41,11.856 19.41,11.868C19.41,12.535 18.865,13.081 18.197,13.081C17.53,13.081 16.984,12.535 16.984,11.868Z"/>
+    <path
+        android:fillColor="#000000"
+        android:pathData="M6.952,8.471C6.478,7.997 6.478,7.233 6.952,6.76C6.952,6.76 6.952,6.76 6.939,6.76C7.413,6.275 8.189,6.275 8.662,6.748C9.135,7.221 9.147,7.985 8.674,8.458C8.432,8.701 8.116,8.822 7.813,8.822C7.497,8.822 7.194,8.701 6.952,8.471Z"/>
+    <path
+        android:fillColor="#000000"
+        android:pathData="M15.529,8.399C15.043,7.938 15.043,7.161 15.504,6.688C15.977,6.203 16.742,6.203 17.227,6.664C17.7,7.137 17.712,7.901 17.239,8.387C17.009,8.629 16.693,8.751 16.378,8.751C16.075,8.751 15.759,8.629 15.529,8.399Z"/>
+    <path
+        android:fillColor="#000000"
+        android:pathData="M10.87,5.815C10.858,5.148 11.392,4.59 12.071,4.59C12.738,4.578 13.284,5.124 13.284,5.791C13.296,6.458 12.762,7.016 12.083,7.016C11.416,7.016 10.87,6.483 10.87,5.815Z"/>
+</vector>
diff --git a/res/drawable/ic_calls_sms.xml b/res/drawable/ic_calls_sms.xml
deleted file mode 100644
index 2033e8f..0000000
--- a/res/drawable/ic_calls_sms.xml
+++ /dev/null
@@ -1,29 +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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="24dp"
-    android:height="24dp"
-    android:viewportWidth="24"
-    android:viewportHeight="24"
-    android:tint="?android:attr/colorControlNormal"
-    >
-
-    <path
-        android:pathData="M 0 0 H 24 V 24 H 0 V 0 Z" />
-    <path
-        android:fillColor="#FF000000"
-        android:pathData="M20.17,14.85l-3.26-0.65c-0.33-0.07-0.67,0.04-0.9,0.27l-2.62,2.62c-2.75-1.49-5.01-3.75-6.5-6.5l2.62-2.62 c0.24-0.24,0.34-0.58,0.27-0.9L9.13,3.82c-0.09-0.47-0.5-0.8-0.98-0.8H4c-0.56,0-1.03,0.47-1,1.03c0.17,2.91,1.04,5.63,2.43,8.01 c1.57,2.69,3.81,4.93,6.5,6.5c2.38,1.39,5.1,2.26,8.01,2.43c0.56,0.03,1.03-0.44,1.03-1v-4.15C20.97,15.36,20.64,14.95,20.17,14.85 L20.17,14.85z M12,3v10l3-3h6V3H12z M19,8h-5V5h5V8z" />
-</vector>
diff --git a/res/drawable/ic_error_red.xml b/res/drawable/ic_error_red.xml
new file mode 100644
index 0000000..d17c85b
--- /dev/null
+++ b/res/drawable/ic_error_red.xml
@@ -0,0 +1,26 @@
+<!--
+  ~ 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="24dp"
+        android:height="24dp"
+        android:viewportWidth="960"
+        android:viewportHeight="960"
+        android:tint="?android:attr/colorError">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M480,680Q497,680 508.5,668.5Q520,657 520,640Q520,623 508.5,611.5Q497,600 480,600Q463,600 451.5,611.5Q440,623 440,640Q440,657 451.5,668.5Q463,680 480,680ZM440,520L520,520L520,280L440,280L440,520ZM480,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,346 707,253Q614,160 480,160Q346,160 253,253Q160,346 160,480Q160,614 253,707Q346,800 480,800ZM480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Z"/>
+</vector>
diff --git a/res/drawable/ic_privatespace_done.xml b/res/drawable/ic_privatespace_done.xml
new file mode 100644
index 0000000..aa0d5e6
--- /dev/null
+++ b/res/drawable/ic_privatespace_done.xml
@@ -0,0 +1,19 @@
+<!--
+  ~ 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="48dp" android:height="48dp" android:viewportWidth="960" android:viewportHeight="960" android:tint="?attr/colorControlNormal">
+    <path android:fillColor="@android:color/white" android:pathData="M378,714L154,490L197,447L378,628L762,244L805,287L378,714Z"/>
+</vector>
diff --git a/res/drawable/ic_privatespace_icon.xml b/res/drawable/ic_privatespace_icon.xml
new file mode 100644
index 0000000..b651f52
--- /dev/null
+++ b/res/drawable/ic_privatespace_icon.xml
@@ -0,0 +1,27 @@
+<!--
+  ~ 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="24dp"
+        android:height="24dp"
+        android:viewportWidth="960"
+        android:viewportHeight="960"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M420,600L540,600L517,471Q537,461 548.5,442Q560,423 560,400Q560,367 536.5,343.5Q513,320 480,320Q447,320 423.5,343.5Q400,367 400,400Q400,423 411.5,442Q423,461 443,471L420,600ZM480,880Q341,845 250.5,720.5Q160,596 160,444L160,200L480,80L800,200L800,444Q800,596 709.5,720.5Q619,845 480,880ZM480,796Q584,763 652,664Q720,565 720,444L720,255L480,165L240,255L240,444Q240,565 308,664Q376,763 480,796ZM480,480Q480,480 480,480Q480,480 480,480L480,480L480,480L480,480L480,480Q480,480 480,480Q480,480 480,480Z"/>
+</vector>
+
diff --git a/res/drawable/ic_settings_force_stop.xml b/res/drawable/ic_settings_force_stop.xml
index eda6079..4385b3e 100644
--- a/res/drawable/ic_settings_force_stop.xml
+++ b/res/drawable/ic_settings_force_stop.xml
@@ -1,5 +1,5 @@
 <!--
-  Copyright (C) 2018 The Android Open Source Project
+  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.
@@ -17,15 +17,9 @@
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
     android:width="24dp"
     android:height="24dp"
-    android:viewportWidth="24"
-    android:viewportHeight="24">
+    android:viewportWidth="960"
+    android:viewportHeight="960">
   <path
       android:fillColor="#FF000000"
-      android:pathData="M12,5.99L19.53,19H4.47L12,5.99M12,2L1,21h22L12,2L12,2z"/>
-  <path
-      android:fillColor="#FF000000"
-      android:pathData="M13,16l-2,0l0,2l2,0l0,-2z"/>
-  <path
-      android:fillColor="#FF000000"
-      android:pathData="M13,10l-2,0l0,4l2,0l0,-4z"/>
+      android:pathData="M480,680Q497,680 508.5,668.5Q520,657 520,640Q520,623 508.5,611.5Q497,600 480,600Q463,600 451.5,611.5Q440,623 440,640Q440,657 451.5,668.5Q463,680 480,680ZM440,520L520,520L520,280L440,280L440,520ZM330,840L120,630L120,330L330,120L630,120L840,330L840,630L630,840L330,840ZM364,760L596,760L760,596L760,364L596,200L364,200L200,364L200,596L364,760ZM480,480L480,480L480,480L480,480L480,480L480,480L480,480L480,480L480,480Z" />
 </vector>
diff --git a/res/drawable/ic_warning_circle_red.xml b/res/drawable/ic_warning_circle_red.xml
new file mode 100644
index 0000000..4decf3a
--- /dev/null
+++ b/res/drawable/ic_warning_circle_red.xml
@@ -0,0 +1,20 @@
+<!--
+  ~ 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 android:height="24dp" android:viewportHeight="40"
+        android:viewportWidth="40" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
+    <path android:fillColor="#F2B8B5" android:pathData="M20,30C20.567,30 21.033,29.817 21.4,29.45C21.8,29.05 22,28.567 22,28C22,27.433 21.8,26.967 21.4,26.6C21.033,26.2 20.567,26 20,26C19.433,26 18.95,26.2 18.55,26.6C18.183,26.967 18,27.433 18,28C18,28.567 18.183,29.05 18.55,29.45C18.95,29.817 19.433,30 20,30ZM18,22H22V10H18V22ZM20,40C17.233,40 14.633,39.483 12.2,38.45C9.767,37.383 7.65,35.95 5.85,34.15C4.05,32.35 2.617,30.233 1.55,27.8C0.517,25.367 0,22.767 0,20C0,17.233 0.517,14.633 1.55,12.2C2.617,9.767 4.05,7.65 5.85,5.85C7.65,4.05 9.767,2.633 12.2,1.6C14.633,0.533 17.233,-0 20,-0C22.767,-0 25.367,0.533 27.8,1.6C30.233,2.633 32.35,4.05 34.15,5.85C35.95,7.65 37.367,9.767 38.4,12.2C39.467,14.633 40,17.233 40,20C40,22.767 39.467,25.367 38.4,27.8C37.367,30.233 35.95,32.35 34.15,34.15C32.35,35.95 30.233,37.383 27.8,38.45C25.367,39.483 22.767,40 20,40ZM20,36C24.467,36 28.25,34.45 31.35,31.35C34.45,28.25 36,24.467 36,20C36,15.533 34.45,11.75 31.35,8.65C28.25,5.55 24.467,4 20,4C15.533,4 11.75,5.55 8.65,8.65C5.55,11.75 4,15.533 4,20C4,24.467 5.55,28.25 8.65,31.35C11.75,34.45 15.533,36 20,36Z"/>
+</vector>
diff --git a/res/drawable/privatespace_lock_placeholder.xml b/res/drawable/privatespace_lock_placeholder.xml
new file mode 100644
index 0000000..815ffd7
--- /dev/null
+++ b/res/drawable/privatespace_lock_placeholder.xml
@@ -0,0 +1,78 @@
+<!--
+  ~ 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="380dp"
+        android:height="276dp"
+        android:viewportWidth="380"
+        android:viewportHeight="276">
+    <path
+        android:pathData="M354.34,276H25.66C11.56,276 0,264.2 0,249.8V26.24C0,11.8 11.56,0 25.66,0H354.44C368.44,0 380,11.8 380,26.2V249.9C380,264.2 368.44,276 354.34,276Z"
+        android:fillColor="#000000"/>
+    <path
+        android:pathData="M190,37.72C185.34,37.71 180.72,38.64 176.42,40.45C170.09,43.12 164.69,47.58 160.89,53.3C157.1,59.01 155.09,65.72 155.1,72.57V90.07H155.29V111.34H161.68V72.57C161.67,67.12 163.23,61.79 166.18,57.2L166.04,57.11C166.1,57.01 166.16,56.92 166.23,56.82C169.33,52.16 173.74,48.5 178.91,46.33C185.11,43.73 192.03,43.39 198.45,45.38C204.88,47.37 210.39,51.55 214.02,57.2L214.01,57.2C216.96,61.79 218.52,67.12 218.51,72.57V111.34H224.9V72.57C224.92,65.9 223,59.37 219.4,53.76L215.27,56.4L219.39,53.76C216.24,48.83 211.89,44.78 206.76,41.98C201.62,39.17 195.86,37.71 190,37.72Z"
+        android:fillColor="#669DF6"
+        android:fillType="evenOdd"/>
+    <path
+        android:pathData="M250.08,227.69H129.92C126.53,227.69 123.28,226.35 120.88,223.96C118.48,221.56 117.14,218.32 117.14,214.93V122.24C117.14,118.86 118.48,115.61 120.88,113.22C123.28,110.83 126.53,109.48 129.92,109.48H250.08C253.47,109.48 256.72,110.83 259.12,113.22C261.52,115.61 262.86,118.86 262.86,122.24V214.93C262.86,218.32 261.52,221.56 259.12,223.96C256.72,226.35 253.47,227.69 250.08,227.69ZM129.92,113.13C127.5,113.13 125.18,114.09 123.46,115.8C121.75,117.5 120.79,119.82 120.79,122.24V214.93C120.79,217.35 121.75,219.67 123.46,221.38C125.18,223.09 127.5,224.05 129.92,224.05H250.08C252.5,224.05 254.82,223.09 256.54,221.38C258.25,219.67 259.21,217.35 259.21,214.93V122.24C259.21,119.82 258.25,117.5 256.54,115.8C254.82,114.09 252.5,113.13 250.08,113.13H129.92Z"
+        android:fillColor="#80868B"/>
+    <path
+        android:pathData="M281.77,245.93C303.27,245.93 320.69,228.59 320.69,207.21C320.69,185.83 303.27,168.49 281.77,168.49C260.28,168.49 242.86,185.83 242.86,207.21C242.86,228.59 260.28,245.93 281.77,245.93Z"
+        android:fillColor="#000000"/>
+    <path
+        android:pathData="M281.77,168.36C260.2,168.36 242.57,185.76 242.57,207.37C242.57,228.97 260.06,246.37 281.77,246.37C303.49,246.37 320.97,228.97 320.97,207.37C320.97,185.76 303.35,168.36 281.77,168.36ZM281.77,238.37C264.57,238.37 250.47,224.34 250.47,207.22C250.47,190.11 264.57,176.08 281.77,176.08C298.98,176.08 313.08,190.11 313.08,207.22C313.08,224.48 298.98,238.37 281.77,238.37Z"
+        android:fillColor="#669DF6"/>
+    <path
+        android:pathData="M281.77,170.07C261.13,170.07 244.27,186.71 244.27,207.37C244.27,228.02 260.99,244.66 281.77,244.66C302.55,244.66 319.27,228.02 319.27,207.37C319.27,186.71 302.42,170.07 281.77,170.07ZM281.77,240.07C263.64,240.07 248.77,225.29 248.77,207.22C248.77,189.16 263.64,174.38 281.77,174.38C299.91,174.38 314.78,189.16 314.78,207.22C314.78,225.43 299.9,240.07 281.77,240.07ZM242.57,207.37C242.57,185.76 260.2,168.36 281.77,168.36C303.35,168.36 320.97,185.76 320.97,207.37C320.97,228.97 303.49,246.37 281.77,246.37C260.06,246.37 242.57,228.97 242.57,207.37ZM250.47,207.22C250.47,224.34 264.57,238.37 281.77,238.37C298.98,238.37 313.08,224.48 313.08,207.22C313.08,190.11 298.98,176.08 281.77,176.08C264.57,176.08 250.47,190.11 250.47,207.22Z"
+        android:fillColor="#000000"
+        android:fillType="evenOdd"/>
+    <path
+        android:pathData="M301.48,193.25C301.48,191.56 300.44,190.07 298.85,189.48L283.36,183.85C282.49,183.54 281.54,183.54 280.66,183.85L265.14,189.48C263.56,190.07 262.52,191.56 262.52,193.25V203.97C262.56,205.8 262.68,207.57 262.93,209.4C264.07,217.18 268.46,226.02 280.46,232.19C281.41,232.68 282.56,232.68 283.51,232.19C295.52,225.99 299.9,217.18 301.05,209.4C301.29,207.59 301.43,205.8 301.46,203.97V193.25H301.48Z"
+        android:fillColor="#000000"/>
+    <path
+        android:pathData="M291.62,222.69C291.74,222.13 292.45,218.26 290.38,214.37C289.21,212.19 287.7,210.92 285.63,209.28C284.21,208.18 280.46,205.76 279.52,205.17C279.56,205.19 279.64,205.27 279.68,205.29C279.17,204.97 279.2,204.97 279.52,205.17C278.47,204.46 276.67,203.04 275.3,200.59C273.67,197.68 273.62,194.96 273.62,194.45C273.62,194.4 273.62,194.38 273.62,194.33C273.62,191.05 274.64,188.5 276.27,186.67C277.49,185.3 278.88,184.51 280.05,184.05L265.14,189.48C263.56,190.04 262.52,191.56 262.52,193.25V203.97C262.56,205.8 262.68,207.57 262.93,209.4C264.07,217.18 268.46,226.02 280.46,232.18C281.41,232.68 282.56,232.68 283.51,232.18C284.63,231.62 285.65,231.01 286.63,230.4C288.14,229.27 290.79,226.78 291.6,222.69H291.62Z"
+        android:fillColor="#3957E2"/>
+    <path
+        android:pathData="M279.69,205.29C279.69,205.29 279.57,205.19 279.52,205.17C279.2,204.97 279.17,204.97 279.69,205.29Z"
+        android:fillColor="#000000"/>
+    <path
+        android:pathData="M298.85,189.48L283.36,183.85C282.48,183.54 281.54,183.54 280.66,183.85L280.05,184.07C278.9,184.54 277.49,185.32 276.27,186.69C274.64,188.53 273.62,191.07 273.62,194.35C273.62,194.4 273.62,194.43 273.62,194.48C273.62,194.99 273.69,197.71 275.3,200.62C276.66,203.06 278.44,204.46 279.51,205.19C280.46,205.8 284.21,208.2 285.63,209.3C287.7,210.94 289.23,212.22 290.38,214.4C292.45,218.26 291.72,222.15 291.62,222.71C290.82,226.8 288.16,229.27 286.65,230.42C296.3,224.4 300.02,216.48 301.07,209.43C301.31,207.62 301.46,205.83 301.48,203.99V193.25C301.48,191.56 300.43,190.07 298.85,189.48Z"
+        android:fillColor="#698FF7"/>
+    <path
+        android:pathData="M157.35,137.23C157.97,136.58 158.83,136.2 159.73,136.17C160.63,136.14 161.5,136.47 162.16,137.08L162.31,137.22L163.18,138.14C163.57,138.57 164.07,138.88 164.62,139.06C165.17,139.24 165.76,139.26 166.32,139.15L167.53,138.91C168.42,138.74 169.34,138.93 170.09,139.44C170.84,139.95 171.36,140.73 171.54,141.61C171.54,141.68 171.55,141.74 171.59,141.8L171.73,143.06C171.8,143.62 172.01,144.17 172.35,144.63C172.69,145.09 173.14,145.46 173.66,145.7L174.77,146.27C175.58,146.66 176.21,147.36 176.52,148.2C176.83,149.05 176.79,149.98 176.41,150.8C176.37,150.84 176.37,150.94 176.32,150.99L175.74,152.05C175.45,152.55 175.3,153.11 175.3,153.69C175.3,154.26 175.46,154.82 175.74,155.32L176.32,156.43C176.74,157.22 176.84,158.16 176.58,159.02C176.32,159.89 175.73,160.62 174.94,161.06C174.89,161.1 174.8,161.1 174.75,161.15L173.63,161.68C173.11,161.92 172.66,162.29 172.32,162.76C171.99,163.22 171.77,163.76 171.71,164.33L171.56,165.59C171.44,166.48 170.97,167.28 170.26,167.84C169.54,168.38 168.64,168.63 167.74,168.53C167.68,168.54 167.61,168.52 167.55,168.48L166.38,168.24C165.82,168.15 165.23,168.19 164.69,168.36C164.14,168.54 163.64,168.85 163.24,169.25L162.39,170.13C161.76,170.78 160.91,171.16 160.01,171.19C159.11,171.22 158.23,170.89 157.57,170.28L157.43,170.14L156.55,169.22C156.16,168.8 155.66,168.49 155.1,168.31C154.54,168.14 153.95,168.12 153.39,168.25L152.18,168.49C151.29,168.66 150.37,168.47 149.62,167.96C148.87,167.46 148.35,166.67 148.17,165.79C148.18,165.72 148.16,165.65 148.12,165.6L147.98,164.34C147.91,163.77 147.7,163.23 147.36,162.77C147.02,162.3 146.57,161.93 146.05,161.69L144.94,161.16C144.53,160.97 144.16,160.7 143.85,160.37C143.55,160.03 143.32,159.64 143.16,159.21C143.01,158.78 142.94,158.33 142.96,157.88C142.99,157.43 143.1,156.99 143.3,156.58C143.34,156.53 143.34,156.44 143.39,156.39L143.97,155.28C144.26,154.78 144.4,154.22 144.4,153.65C144.4,153.07 144.26,152.51 143.97,152.01L143.39,150.9C142.97,150.1 142.88,149.17 143.13,148.3C143.39,147.44 143.98,146.71 144.77,146.28C144.82,146.23 144.91,146.23 144.96,146.18L146.08,145.65C146.6,145.41 147.05,145.04 147.39,144.57C147.72,144.11 147.94,143.57 148,143L148.15,141.75C148.27,140.86 148.74,140.05 149.46,139.5C150.17,138.95 151.07,138.7 151.97,138.81C152.04,138.8 152.1,138.82 152.16,138.86L153.37,139.1C153.93,139.19 154.51,139.15 155.06,138.97C155.6,138.8 156.1,138.49 156.5,138.09L157.35,137.24L157.35,137.23Z"
+        android:fillColor="#EE675C"/>
+    <path
+        android:pathData="M165.34,152.63L157.4,148.13C156.85,147.86 156.31,147.99 156.04,148.54C155.9,148.68 155.9,148.81 155.9,149.09V158.08C155.9,158.63 156.31,159.04 156.85,159.04C156.99,159.04 157.27,159.04 157.4,158.9L165.2,154.4C165.75,154.13 165.89,153.58 165.61,153.04C165.61,152.9 165.47,152.77 165.34,152.63Z"
+        android:fillColor="#ffffff"/>
+    <path
+        android:pathData="M236.54,176.53L226.88,171.29C226.21,170.97 225.55,171.13 225.22,171.77C225.05,171.93 225.05,172.09 225.05,172.4V182.89C225.05,183.53 225.55,184.01 226.21,184.01C226.39,184.01 226.72,184.01 226.88,183.85L236.37,178.6C237.04,178.28 237.21,177.65 236.87,177.01C236.87,176.85 236.7,176.7 236.54,176.53Z"
+        android:fillColor="#3C4043"/>
+    <path
+        android:pathData="M148.49,207.01C143.41,207.01 139.27,202.88 139.27,197.81C139.27,192.74 143.41,188.61 148.49,188.61C153.58,188.61 157.72,192.74 157.72,197.81C157.72,202.88 153.58,207.01 148.49,207.01Z"
+        android:fillColor="#3C4043"/>
+    <path
+        android:pathData="M224.65,129.5L213.61,128.09C212.49,127.95 211.34,128.11 210.3,128.56C209.26,129 208.34,129.71 207.66,130.61L200.9,139.5C200.21,140.4 199.78,141.48 199.63,142.61C199.49,143.74 199.65,144.89 200.09,145.93L204.37,156.22C204.81,157.27 205.52,158.18 206.42,158.87C207.33,159.55 208.4,159.99 209.52,160.13L220.56,161.52C221.69,161.67 222.83,161.51 223.88,161.07C224.93,160.63 225.84,159.92 226.53,159.01L233.26,150.14C233.95,149.23 234.39,148.16 234.53,147.03C234.67,145.9 234.52,144.75 234.08,143.7L229.79,133.42C229.35,132.37 228.65,131.45 227.74,130.76C226.84,130.07 225.77,129.64 224.65,129.5Z"
+        android:fillColor="#FCC934"/>
+    <path
+        android:pathData="M210.34,150.41L223.25,151.73L224.57,138.86L211.66,137.54L210.34,150.41ZM210.15,152.25C209.65,152.2 209.23,151.98 208.9,151.58C208.58,151.18 208.45,150.73 208.5,150.23L209.82,137.35C209.87,136.85 210.09,136.43 210.49,136.11C210.89,135.78 211.34,135.65 211.85,135.7L224.76,137.02C225.26,137.07 225.68,137.29 226.01,137.69C226.33,138.09 226.46,138.54 226.41,139.04L225.09,151.92C225.04,152.43 224.82,152.84 224.42,153.16C224.02,153.49 223.57,153.62 223.06,153.57L210.15,152.25ZM211.45,148.67L222.51,149.8L219.53,144.85L216.38,148.24L214.59,145.27L211.45,148.67L211.45,148.67ZM211.66,137.54L210.34,150.41L211.66,137.54Z"
+        android:fillColor="#ffffff"/>
+    <path
+        android:pathData="M178.53,187.68C174.35,181.53 179.88,173.46 187.15,175.11L188.35,175.38C190.56,175.88 192.89,175.44 194.77,174.17L195.79,173.48C201.96,169.32 210.05,174.84 208.4,182.08L208.13,183.28C207.62,185.49 208.06,187.81 209.34,189.69L210.02,190.7C214.2,196.85 208.67,204.93 201.41,203.28L200.21,203.01C197.99,202.5 195.66,202.94 193.78,204.21L192.76,204.9C186.6,209.07 178.5,203.55 180.15,196.3L180.43,195.1C180.93,192.9 180.5,190.57 179.22,188.7L178.53,187.68L178.53,187.68Z"
+        android:fillColor="#5BB974"/>
+    <path
+        android:pathData="M189.5,195.21C190.11,194.34 190.86,193.6 191.77,192.99C192.68,192.39 193.71,191.98 194.85,191.76C196,191.55 197.1,191.55 198.17,191.78C199.24,192.01 200.21,192.42 201.1,193.01L199.08,182.41L187.48,184.61L189.5,195.21ZM194.54,190.11C195.33,189.96 195.97,189.54 196.42,188.87C196.88,188.2 197.04,187.46 196.88,186.67C196.73,185.88 196.32,185.24 195.65,184.79C194.98,184.34 194.23,184.18 193.43,184.33C192.64,184.48 192,184.89 191.55,185.57C191.09,186.24 190.93,186.97 191.09,187.77C191.24,188.56 191.65,189.2 192.33,189.65C192.99,190.1 193.74,190.26 194.54,190.11ZM189.99,197.8C189.54,197.89 189.12,197.8 188.73,197.54C188.34,197.28 188.11,196.92 188.02,196.47L185.82,184.92C185.74,184.46 185.83,184.04 186.09,183.66C186.35,183.27 186.71,183.04 187.16,182.95L198.76,180.76C199.22,180.67 199.64,180.76 200.02,181.02C200.41,181.28 200.65,181.63 200.73,182.09L202.93,193.64C203.02,194.1 202.93,194.51 202.67,194.9C202.4,195.29 202.05,195.52 201.59,195.6L189.99,197.8ZM189.68,196.15L201.28,193.96L201.1,193C200.21,192.41 199.24,192.01 198.17,191.77C197.1,191.55 195.99,191.54 194.85,191.76C193.7,191.97 192.68,192.38 191.77,192.99C190.86,193.59 190.1,194.33 189.5,195.2L189.68,196.15ZM189.5,195.21L187.48,184.61L199.08,182.41L201.1,193.01C200.21,192.42 199.24,192.01 198.17,191.78C197.1,191.55 196,191.55 194.85,191.76C193.71,191.98 192.68,192.39 191.77,192.99C190.86,193.6 190.11,194.34 189.5,195.21Z"
+        android:fillColor="#ffffff"/>
+</vector>
diff --git a/res/drawable/privatespace_placeholder_image.xml b/res/drawable/privatespace_placeholder_image.xml
new file mode 100644
index 0000000..cde503a
--- /dev/null
+++ b/res/drawable/privatespace_placeholder_image.xml
@@ -0,0 +1,143 @@
+<?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="364dp"
+        android:height="265dp"
+        android:viewportWidth="364"
+        android:viewportHeight="265">
+    <group>
+        <clip-path
+            android:pathData="M0,0h364v265h-364z"/>
+        <path
+            android:pathData="M339.42,265H24.58C11.07,265 0,253.67 0,239.84V25.19C0,11.33 11.07,0 24.58,0H339.52C352.93,0 364,11.33 364,25.16V239.94C364,253.67 352.93,265 339.42,265Z"
+            android:fillColor="#000000"/>
+        <path
+            android:pathData="M247.65,93.87V85.83C247.65,84.73 246.73,83.82 245.61,83.82V41.94C245.61,36.42 241.02,32 235.5,32H142.1C136.49,32 132,36.52 132,41.94V233.67C132,239.2 136.59,243.62 142.1,243.62H235.5C241.12,243.62 245.61,239.1 245.61,233.67V135.85C246.73,135.85 247.65,134.95 247.65,133.84V113.86C247.65,112.75 246.73,111.85 245.61,111.85V95.88C246.84,95.88 247.65,94.97 247.65,93.87ZM243.67,233.67C243.67,238.09 240,241.71 235.5,241.71H142.1C137.61,241.71 133.94,238.09 133.94,233.67V41.94C133.94,37.52 137.61,33.91 142.1,33.91H235.5C240,33.91 243.67,37.52 243.67,41.94V233.67Z"
+            android:fillColor="#DADCE0"/>
+        <path
+            android:pathData="M151.68,46.76L225.5,46.76A7.38,7.38 0,0 1,232.89 54.15L232.89,54.15A7.38,7.38 0,0 1,225.5 61.53L151.68,61.53A7.38,7.38 0,0 1,144.3 54.15L144.3,54.15A7.38,7.38 0,0 1,151.68 46.76z"
+            android:fillColor="#444746"/>
+        <path
+            android:pathData="M147.42,187.02L228.54,187.02A8.04,8.04 0,0 1,236.58 195.06L236.58,226.97A8.04,8.04 0,0 1,228.54 235L147.42,235A8.04,8.04 0,0 1,139.38 226.97L139.38,195.06A8.04,8.04 0,0 1,147.42 187.02z"
+            android:fillColor="#1F1F1F"/>
+        <path
+            android:pathData="M154.15,77.52m-7.38,0a7.38,7.38 0,1 1,14.76 0a7.38,7.38 0,1 1,-14.76 0"
+            android:fillColor="#D9D9D9"
+            android:fillAlpha="0.4"/>
+        <path
+            android:pathData="M177.52,77.52m-7.38,0a7.38,7.38 0,1 1,14.76 0a7.38,7.38 0,1 1,-14.76 0"
+            android:fillColor="#D9D9D9"
+            android:fillAlpha="0.4"/>
+        <path
+            android:pathData="M200.9,77.52m-7.38,0a7.38,7.38 0,1 1,14.76 0a7.38,7.38 0,1 1,-14.76 0"
+            android:fillColor="#D9D9D9"
+            android:fillAlpha="0.4"/>
+        <path
+            android:pathData="M224.27,77.52m-7.38,0a7.38,7.38 0,1 1,14.76 0a7.38,7.38 0,1 1,-14.76 0"
+            android:fillColor="#D9D9D9"
+            android:fillAlpha="0.4"/>
+        <path
+            android:pathData="M154.15,99.67m-7.38,0a7.38,7.38 0,1 1,14.76 0a7.38,7.38 0,1 1,-14.76 0"
+            android:fillColor="#D9D9D9"
+            android:fillAlpha="0.4"/>
+        <path
+            android:pathData="M154.15,121.81m-7.38,0a7.38,7.38 0,1 1,14.76 0a7.38,7.38 0,1 1,-14.76 0"
+            android:fillColor="#D9D9D9"
+            android:fillAlpha="0.4"/>
+        <path
+            android:pathData="M154.15,143.96m-7.38,0a7.38,7.38 0,1 1,14.76 0a7.38,7.38 0,1 1,-14.76 0"
+            android:fillColor="#D9D9D9"
+            android:fillAlpha="0.4"/>
+        <path
+            android:pathData="M154.15,166.11m-7.38,0a7.38,7.38 0,1 1,14.76 0a7.38,7.38 0,1 1,-14.76 0"
+            android:fillColor="#D9D9D9"
+            android:fillAlpha="0.4"/>
+        <path
+            android:pathData="M177.52,99.67m-7.38,0a7.38,7.38 0,1 1,14.76 0a7.38,7.38 0,1 1,-14.76 0"
+            android:fillColor="#D9D9D9"
+            android:fillAlpha="0.4"/>
+        <path
+            android:pathData="M177.52,121.81m-7.38,0a7.38,7.38 0,1 1,14.76 0a7.38,7.38 0,1 1,-14.76 0"
+            android:fillColor="#D9D9D9"
+            android:fillAlpha="0.4"/>
+        <path
+            android:pathData="M177.52,143.96m-7.38,0a7.38,7.38 0,1 1,14.76 0a7.38,7.38 0,1 1,-14.76 0"
+            android:fillColor="#D9D9D9"
+            android:fillAlpha="0.4"/>
+        <path
+            android:pathData="M177.52,166.11m-7.38,0a7.38,7.38 0,1 1,14.76 0a7.38,7.38 0,1 1,-14.76 0"
+            android:fillColor="#D9D9D9"
+            android:fillAlpha="0.4"/>
+        <path
+            android:pathData="M200.9,99.67m-7.38,0a7.38,7.38 0,1 1,14.76 0a7.38,7.38 0,1 1,-14.76 0"
+            android:fillColor="#D9D9D9"
+            android:fillAlpha="0.4"/>
+        <path
+            android:pathData="M200.9,121.81m-7.38,0a7.38,7.38 0,1 1,14.76 0a7.38,7.38 0,1 1,-14.76 0"
+            android:fillColor="#D9D9D9"
+            android:fillAlpha="0.4"/>
+        <path
+            android:pathData="M200.9,143.96m-7.38,0a7.38,7.38 0,1 1,14.76 0a7.38,7.38 0,1 1,-14.76 0"
+            android:fillColor="#D9D9D9"
+            android:fillAlpha="0.4"/>
+        <path
+            android:pathData="M200.9,166.11m-7.38,0a7.38,7.38 0,1 1,14.76 0a7.38,7.38 0,1 1,-14.76 0"
+            android:fillColor="#D9D9D9"
+            android:fillAlpha="0.4"/>
+        <path
+            android:pathData="M224.27,99.67m-7.38,0a7.38,7.38 0,1 1,14.76 0a7.38,7.38 0,1 1,-14.76 0"
+            android:fillColor="#D9D9D9"
+            android:fillAlpha="0.4"/>
+        <path
+            android:pathData="M224.27,121.81m-7.38,0a7.38,7.38 0,1 1,14.76 0a7.38,7.38 0,1 1,-14.76 0"
+            android:fillColor="#D9D9D9"
+            android:fillAlpha="0.4"/>
+        <path
+            android:pathData="M224.27,143.96m-7.38,0a7.38,7.38 0,1 1,14.76 0a7.38,7.38 0,1 1,-14.76 0"
+            android:fillColor="#D9D9D9"
+            android:fillAlpha="0.4"/>
+        <path
+            android:pathData="M224.27,166.11m-7.38,0a7.38,7.38 0,1 1,14.76 0a7.38,7.38 0,1 1,-14.76 0"
+            android:fillColor="#D9D9D9"
+            android:fillAlpha="0.4"/>
+        <path
+            android:pathData="M154.15,199.32m-7.38,0a7.38,7.38 0,1 1,14.76 0a7.38,7.38 0,1 1,-14.76 0"
+            android:fillColor="#0B57D0"/>
+        <path
+            android:pathData="M154.15,220.24m-7.38,0a7.38,7.38 0,1 1,14.76 0a7.38,7.38 0,1 1,-14.76 0"
+            android:fillColor="#0B57D0"/>
+        <path
+            android:pathData="M177.52,199.32m-7.38,0a7.38,7.38 0,1 1,14.76 0a7.38,7.38 0,1 1,-14.76 0"
+            android:fillColor="#0B57D0"/>
+        <path
+            android:pathData="M177.52,220.24m-7.38,0a7.38,7.38 0,1 1,14.76 0a7.38,7.38 0,1 1,-14.76 0"
+            android:fillColor="#0B57D0"/>
+        <path
+            android:pathData="M200.9,199.32m-7.38,0a7.38,7.38 0,1 1,14.76 0a7.38,7.38 0,1 1,-14.76 0"
+            android:fillColor="#0B57D0"/>
+        <path
+            android:pathData="M200.9,220.24m-7.38,0a7.38,7.38 0,1 1,14.76 0a7.38,7.38 0,1 1,-14.76 0"
+            android:fillColor="#0B57D0"/>
+        <path
+            android:pathData="M224.27,199.32m-7.38,0a7.38,7.38 0,1 1,14.76 0a7.38,7.38 0,1 1,-14.76 0"
+            android:fillColor="#0B57D0"/>
+        <path
+            android:pathData="M224.27,220.24m-7.38,0a7.38,7.38 0,1 1,14.76 0a7.38,7.38 0,1 1,-14.76 0"
+            android:fillColor="#0B57D0"/>
+    </group>
+</vector>
diff --git a/res/drawable/privatespace_setup_flow_placeholder.xml b/res/drawable/privatespace_setup_flow_placeholder.xml
new file mode 100644
index 0000000..a4ff125
--- /dev/null
+++ b/res/drawable/privatespace_setup_flow_placeholder.xml
@@ -0,0 +1,48 @@
+<!--
+  ~ 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 android:height="265dp" android:viewportHeight="266"
+        android:viewportWidth="364" android:width="362.6316dp" xmlns:android="http://schemas.android.com/apk/res/android">
+    <group>
+        <clip-path android:pathData="M0,0.5h364v265h-364z"/>
+        <path android:fillColor="#000000" android:pathData="M339.42,265.5H24.58C11.07,265.5 0,254.17 0,240.34V25.69C0,11.83 11.07,0.5 24.58,0.5H339.52C352.93,0.5 364,11.83 364,25.66V240.44C364,254.17 352.93,265.5 339.42,265.5Z"/>
+        <path android:fillColor="#80868B" android:pathData="M242.66,86.8V78.4C242.66,77.85 242.44,77.31 242.05,76.92C241.66,76.52 241.12,76.3 240.57,76.3V32.2C240.57,29.42 239.46,26.75 237.49,24.78C235.52,22.81 232.85,21.7 230.06,21.7H133.41C130.62,21.7 127.95,22.81 125.98,24.78C124.01,26.75 122.9,29.42 122.9,32.2V233.8C122.9,236.58 124.01,239.25 125.98,241.22C127.95,243.19 130.62,244.3 133.41,244.3H230.06C232.85,244.3 235.52,243.19 237.49,241.22C239.46,239.25 240.57,236.58 240.57,233.8V130.9C241.12,130.9 241.65,130.68 242.05,130.29C242.44,129.89 242.66,129.36 242.66,128.8V107.8C242.66,107.24 242.44,106.71 242.05,106.32C241.66,105.92 241.12,105.7 240.57,105.7V88.91C240.84,88.91 241.12,88.86 241.37,88.75C241.63,88.64 241.86,88.49 242.05,88.29C242.25,88.1 242.4,87.86 242.5,87.61C242.61,87.35 242.66,87.08 242.66,86.8ZM238.46,233.8C238.46,236.02 237.58,238.16 236,239.74C234.43,241.31 232.29,242.2 230.06,242.2H133.41C131.18,242.2 129.04,241.31 127.47,239.74C125.89,238.16 125.01,236.02 125.01,233.8V32.2C125.01,29.98 125.89,27.84 127.47,26.27C129.04,24.69 131.18,23.8 133.41,23.8H230.06C232.29,23.8 234.43,24.69 236,26.27C237.58,27.84 238.46,29.98 238.46,32.2V233.8Z"/>
+        <path android:fillColor="#669DF6" android:pathData="M234.93,233.8C234.93,235.09 234.42,236.33 233.5,237.24C232.59,238.15 231.35,238.66 230.06,238.66H133.41C132.12,238.66 130.88,238.15 129.97,237.24C129.05,236.33 128.54,235.09 128.54,233.8V129.24H125.01V233.8C125.01,236.02 125.89,238.16 127.47,239.74C129.04,241.31 131.18,242.2 133.41,242.2H230.06C232.29,242.2 234.43,241.31 236,239.74C237.58,238.16 238.46,236.02 238.46,233.8V190.74H234.93V233.8Z"/>
+        <path android:fillColor="#A142F4" android:pathData="M230.06,23.8H133.41C131.18,23.8 129.04,24.69 127.47,26.26C125.89,27.84 125.01,29.97 125.01,32.2V129.24H128.54V32.2C128.54,30.91 129.05,29.67 129.97,28.76C130.88,27.85 132.12,27.34 133.41,27.34H230.06C231.35,27.34 232.59,27.85 233.5,28.76C234.42,29.67 234.93,30.91 234.93,32.2V190.74H238.46V32.2C238.46,29.97 237.58,27.84 236,26.26C234.43,24.69 232.29,23.8 230.06,23.8Z"/>
+        <path android:fillColor="#5BB974" android:pathData="M214.09,181.98H205.99C204.24,181.98 202.53,182.5 201.08,183.47C199.63,184.45 198.51,185.83 197.85,187.45C197.2,189.07 197.04,190.84 197.39,192.55C197.75,194.26 198.61,195.82 199.86,197.04L205.38,202.56L208.4,199.54H214.09C216.42,199.54 218.65,198.62 220.3,196.97C221.95,195.32 222.87,193.09 222.87,190.76C222.87,188.43 221.95,186.2 220.3,184.55C218.65,182.91 216.42,181.98 214.09,181.98Z"/>
+        <path android:fillColor="#000000" android:pathData="M204.83,192.48C205.78,192.48 206.54,191.71 206.54,190.76C206.54,189.82 205.78,189.05 204.83,189.05C203.88,189.05 203.12,189.82 203.12,190.76C203.12,191.71 203.88,192.48 204.83,192.48Z"/>
+        <path android:fillColor="#000000" android:pathData="M210.04,192.48C210.99,192.48 211.76,191.71 211.76,190.76C211.76,189.82 210.99,189.05 210.04,189.05C209.1,189.05 208.33,189.82 208.33,190.76C208.33,191.71 209.1,192.48 210.04,192.48Z"/>
+        <path android:fillColor="#000000" android:pathData="M215.25,192.48C216.19,192.48 216.96,191.71 216.96,190.76C216.96,189.82 216.19,189.05 215.25,189.05C214.3,189.05 213.53,189.82 213.53,190.76C213.53,191.71 214.3,192.48 215.25,192.48Z"/>
+        <path android:fillColor="#FCC934" android:pathData="M165.98,61.94H155.68C155.38,61.94 155.08,62 154.79,62.12C154.51,62.24 154.26,62.41 154.04,62.62C153.83,62.84 153.66,63.09 153.54,63.37C153.43,63.65 153.37,63.95 153.37,64.26V85.11C153.37,85.41 153.43,85.71 153.54,85.99C153.66,86.27 153.83,86.53 154.04,86.74C154.26,86.96 154.51,87.13 154.79,87.24C155.08,87.36 155.38,87.42 155.68,87.42H170C170.61,87.41 171.19,87.16 171.62,86.73C172.04,86.3 172.28,85.71 172.28,85.11V68.32L165.98,61.94Z"/>
+        <path android:fillColor="#000000" android:pathData="M168.63,72.01H157.05V74.33H168.63V72.01Z"/>
+        <path android:fillColor="#000000" android:pathData="M168.63,76.64H157.05V78.96H168.63V76.64Z"/>
+        <path android:fillColor="#000000" android:pathData="M168.63,81.28H157.05V83.6H168.63V81.28Z"/>
+        <path android:fillColor="#FEEFC3" android:pathData="M165.98,61.94V66.43C165.98,66.67 166.03,66.92 166.12,67.14C166.21,67.37 166.35,67.57 166.52,67.74C166.69,67.92 166.9,68.05 167.12,68.15C167.35,68.24 167.59,68.29 167.83,68.29H172.28L165.98,61.94Z"/>
+        <path android:fillColor="#FAD2CF" android:pathData="M206.01,53.5L201.44,61.45C201.29,61.7 201.21,61.99 201.22,62.28C201.22,62.58 201.29,62.86 201.44,63.12C201.59,63.37 201.8,63.58 202.05,63.73C202.31,63.87 202.59,63.95 202.89,63.95H212.04C212.33,63.95 212.62,63.87 212.87,63.73C213.13,63.58 213.34,63.37 213.49,63.12C213.63,62.86 213.71,62.58 213.71,62.28C213.71,61.99 213.63,61.7 213.48,61.45L208.9,53.5C208.76,53.25 208.54,53.04 208.29,52.89C208.04,52.74 207.75,52.67 207.46,52.67C207.16,52.67 206.88,52.74 206.62,52.89C206.37,53.04 206.16,53.25 206.01,53.5Z"/>
+        <path android:fillColor="#3C4043" android:pathData="M201.8,218.33L209.86,210.27C209.96,210.16 210.09,210.08 210.23,210.02C210.37,209.96 210.52,209.93 210.67,209.93C210.82,209.93 210.97,209.96 211.11,210.02C211.25,210.08 211.37,210.16 211.48,210.27L211.76,210.55C213.05,211.84 213.77,213.58 213.77,215.39C213.77,217.21 213.05,218.95 211.76,220.23C210.48,221.52 208.74,222.24 206.92,222.24C205.1,222.24 203.36,221.52 202.08,220.23L201.8,219.95C201.58,219.74 201.46,219.45 201.46,219.14C201.46,218.84 201.58,218.54 201.8,218.33Z"/>
+        <path android:fillColor="#3C4043" android:pathData="M200.11,90.52C202.66,90.52 204.73,88.45 204.73,85.9C204.73,83.35 202.66,81.28 200.11,81.28C197.56,81.28 195.49,83.35 195.49,85.9C195.49,88.45 197.56,90.52 200.11,90.52Z"/>
+        <path android:fillColor="#A142F4" android:pathData="M203.2,134.48C203.2,128.79 200.94,123.34 196.92,119.31C192.89,115.29 187.43,113.03 181.74,113.03V117.32C184.94,117.31 188.08,118.2 190.79,119.88C193.51,121.57 195.71,123.98 197.13,126.84C198.55,129.7 199.14,132.91 198.83,136.09C198.53,139.27 197.34,142.3 195.39,144.85C192.33,141.12 184.88,139.85 181.74,139.85V155.97C184.56,155.96 187.36,155.41 189.96,154.33C192.57,153.25 194.93,151.66 196.93,149.67C198.92,147.68 200.5,145.31 201.58,142.7C202.65,140.1 203.21,137.3 203.2,134.48Z"/>
+        <path android:fillColor="#A142F4" android:pathData="M189.26,129.12C189.26,128.14 189.07,127.16 188.7,126.25C188.32,125.33 187.77,124.51 187.07,123.81C186.37,123.11 185.54,122.56 184.63,122.18C183.72,121.81 182.74,121.61 181.75,121.61V136.63C182.74,136.63 183.72,136.44 184.63,136.06C185.54,135.69 186.37,135.13 187.07,134.44C187.77,133.74 188.32,132.91 188.7,132C189.07,131.09 189.26,130.11 189.26,129.12Z"/>
+        <path android:fillColor="#3C4043" android:pathData="M159.53,166.93H151.85C148.29,166.93 145.41,169.81 145.41,173.37C145.41,176.93 148.29,179.81 151.85,179.81H159.53C163.09,179.81 165.97,176.93 165.97,173.37C165.97,169.81 163.09,166.93 159.53,166.93Z"/>
+        <path android:fillColor="#FAD2CF" android:pathData="M164.93,198.9V197.48H163.16V198.89H152.85V197.48H151.08V198.9C150.56,198.9 150.07,199.11 149.71,199.48C149.35,199.84 149.15,200.34 149.15,200.85V214.61C149.15,214.87 149.2,215.13 149.3,215.36C149.4,215.6 149.54,215.82 149.72,216C149.9,216.19 150.12,216.33 150.36,216.43C150.6,216.53 150.85,216.58 151.11,216.58H164.88C165.4,216.58 165.9,216.37 166.27,216C166.64,215.63 166.85,215.13 166.85,214.61V200.85C166.85,200.34 166.64,199.85 166.29,199.48C165.93,199.12 165.44,198.91 164.93,198.9Z"/>
+        <path android:fillColor="#000000" android:pathData="M164.27,202.78H151.76C151.39,202.78 151.1,203.08 151.1,203.45V213.99C151.1,214.36 151.39,214.65 151.76,214.65H164.27C164.63,214.65 164.93,214.36 164.93,213.99V203.45C164.93,203.08 164.63,202.78 164.27,202.78Z"/>
+        <path android:fillColor="#EE675C" android:pathData="M156.79,205.13H152.85V207.73H156.79V205.13Z"/>
+        <path android:fillColor="#669DF6" android:pathData="M168.62,117.83C168.03,117.83 167.45,117.95 166.9,118.18C166.35,118.4 165.85,118.73 165.44,119.15C165.02,119.57 164.69,120.07 164.47,120.62C164.24,121.17 164.13,121.75 164.14,122.35V147.17C164.13,147.76 164.25,148.35 164.48,148.9C164.7,149.44 165.04,149.94 165.46,150.36C165.88,150.78 166.37,151.11 166.92,151.34C167.47,151.56 168.06,151.68 168.65,151.67H175.97V117.83H168.62Z"/>
+        <path android:fillColor="#80868B" android:pathData="M182.95,259.5C182.95,260.32 182.63,261.11 182.05,261.69C181.47,262.27 180.68,262.59 179.86,262.59C179.04,262.59 178.26,262.27 177.68,261.69C177.1,261.11 176.77,260.32 176.77,259.5V12.75C176.77,11.93 177.1,11.15 177.68,10.57C178.26,9.99 179.04,9.66 179.86,9.66C180.68,9.66 181.47,9.99 182.05,10.57C182.63,11.15 182.95,11.93 182.95,12.75"/>
+        <path android:fillColor="#000000" android:pathData="M179.86,10.99C180.33,10.99 180.78,11.17 181.11,11.5C181.44,11.83 181.63,12.28 181.63,12.75V259.5C181.63,259.97 181.44,260.42 181.11,260.75C180.78,261.08 180.33,261.27 179.86,261.27C179.39,261.27 178.94,261.08 178.61,260.75C178.28,260.42 178.1,259.97 178.1,259.5V12.75C178.1,12.28 178.28,11.83 178.61,11.5C178.94,11.17 179.39,10.99 179.86,10.99ZM179.86,8.34C178.69,8.34 177.57,8.8 176.74,9.63C175.91,10.46 175.44,11.58 175.44,12.75V259.5C175.44,260.67 175.91,261.8 176.74,262.63C177.57,263.45 178.69,263.92 179.86,263.92C181.03,263.92 182.16,263.45 182.99,262.63C183.81,261.8 184.28,260.67 184.28,259.5V12.75C184.28,11.58 183.81,10.46 182.99,9.63C182.16,8.8 181.03,8.34 179.86,8.34Z"/>
+        <path android:fillColor="#ffffff" android:pathData="M70.76,140V124.25H72.63V140H70.76ZM75.78,140V124.25H77.65V140H75.78ZM80.42,140V124.25H82.29V140H80.42ZM89.13,140.35C87.75,140.35 86.71,139.95 86.01,139.15C85.32,138.34 84.97,137.24 84.97,135.85V128.78H86.84V135.56C86.84,136.67 87.1,137.47 87.61,137.96C88.13,138.43 88.76,138.66 89.53,138.66C90.19,138.66 90.76,138.49 91.24,138.15C91.73,137.8 92.1,137.36 92.36,136.81C92.63,136.27 92.76,135.71 92.76,135.12V128.78H94.63V140H92.85V138.38H92.76C92.57,138.73 92.28,139.06 91.9,139.37C91.54,139.66 91.11,139.89 90.63,140.07C90.16,140.26 89.66,140.35 89.13,140.35ZM101.2,140.35C100.36,140.35 99.62,140.22 98.98,139.96C98.35,139.68 97.82,139.31 97.39,138.86C96.98,138.39 96.68,137.88 96.47,137.34L98.14,136.59C98.44,137.27 98.86,137.79 99.42,138.15C99.98,138.52 100.61,138.71 101.33,138.71C102.02,138.71 102.59,138.57 103.05,138.29C103.52,138.01 103.75,137.6 103.75,137.05C103.75,136.72 103.66,136.44 103.47,136.22C103.28,135.98 103,135.79 102.63,135.63C102.26,135.46 101.82,135.32 101.29,135.18L99.92,134.83C99.4,134.69 98.9,134.48 98.43,134.22C97.96,133.95 97.58,133.62 97.28,133.21C97.01,132.78 96.87,132.27 96.87,131.66C96.87,130.99 97.06,130.41 97.46,129.93C97.86,129.44 98.38,129.08 99.02,128.83C99.67,128.56 100.36,128.43 101.09,128.43C101.74,128.43 102.34,128.53 102.89,128.72C103.47,128.89 103.96,129.16 104.39,129.53C104.82,129.88 105.14,130.32 105.36,130.85L103.73,131.6C103.45,131.04 103.08,130.65 102.61,130.43C102.14,130.21 101.62,130.1 101.05,130.1C100.43,130.1 99.9,130.24 99.44,130.52C98.99,130.79 98.76,131.15 98.76,131.62C98.76,132.09 98.94,132.44 99.31,132.68C99.69,132.91 100.15,133.1 100.69,133.25L102.32,133.67C103.42,133.95 104.25,134.36 104.81,134.92C105.37,135.46 105.64,136.13 105.64,136.92C105.64,137.63 105.45,138.24 105.05,138.75C104.65,139.26 104.12,139.66 103.44,139.94C102.77,140.22 102.02,140.35 101.2,140.35ZM106.81,128.78H108.76V125.61H110.63V128.78H113.38V130.48H110.63V136.59C110.63,137.18 110.75,137.63 110.99,137.96C111.24,138.28 111.64,138.44 112.19,138.44C112.44,138.44 112.67,138.4 112.88,138.33C113.08,138.26 113.27,138.17 113.43,138.07V139.89C113.24,139.98 113.02,140.05 112.79,140.09C112.57,140.15 112.27,140.18 111.89,140.18C110.95,140.18 110.19,139.91 109.62,139.37C109.05,138.81 108.76,138.04 108.76,137.05V130.48H106.81V128.78ZM115.61,140V128.78H117.39V130.59H117.48C117.63,130.16 117.87,129.79 118.21,129.49C118.56,129.16 118.96,128.91 119.39,128.74C119.85,128.55 120.3,128.45 120.74,128.45C121.07,128.45 121.34,128.48 121.53,128.52C121.72,128.55 121.89,128.6 122.06,128.67V130.7C121.82,130.58 121.57,130.49 121.29,130.43C121.02,130.37 120.75,130.35 120.47,130.35C119.93,130.35 119.43,130.5 118.98,130.81C118.52,131.12 118.15,131.53 117.88,132.04C117.61,132.55 117.48,133.12 117.48,133.73V140H115.61ZM127.02,140.35C126.18,140.35 125.45,140.19 124.82,139.87C124.19,139.55 123.69,139.11 123.32,138.55C122.97,137.98 122.79,137.33 122.79,136.62C122.79,135.79 123.01,135.1 123.43,134.55C123.86,133.98 124.43,133.55 125.15,133.27C125.87,132.98 126.66,132.83 127.52,132.83C128.02,132.83 128.48,132.88 128.91,132.96C129.33,133.04 129.7,133.13 130.01,133.25C130.33,133.35 130.57,133.45 130.74,133.56V132.88C130.74,132.02 130.43,131.35 129.83,130.85C129.23,130.35 128.5,130.1 127.63,130.1C127.02,130.1 126.44,130.24 125.89,130.52C125.37,130.79 124.95,131.16 124.64,131.64L123.23,130.59C123.53,130.15 123.89,129.77 124.33,129.44C124.77,129.12 125.27,128.87 125.83,128.7C126.4,128.52 127,128.43 127.63,128.43C129.16,128.43 130.35,128.83 131.22,129.64C132.08,130.45 132.52,131.53 132.52,132.9V140H130.74V138.4H130.65C130.46,138.72 130.18,139.04 129.83,139.34C129.48,139.64 129.06,139.88 128.58,140.07C128.11,140.26 127.59,140.35 127.02,140.35ZM127.19,138.71C127.84,138.71 128.43,138.54 128.95,138.22C129.5,137.9 129.93,137.47 130.25,136.92C130.57,136.38 130.74,135.79 130.74,135.14C130.4,134.91 129.97,134.72 129.46,134.57C128.96,134.42 128.41,134.35 127.81,134.35C126.74,134.35 125.95,134.57 125.46,135.01C124.96,135.45 124.71,135.99 124.71,136.64C124.71,137.25 124.94,137.75 125.41,138.13C125.88,138.51 126.47,138.71 127.19,138.71ZM134.13,128.78H136.09V125.61H137.96V128.78H140.71V130.48H137.96V136.59C137.96,137.18 138.08,137.63 138.31,137.96C138.56,138.28 138.97,138.44 139.52,138.44C139.77,138.44 140,138.4 140.21,138.33C140.41,138.26 140.59,138.17 140.76,138.07V139.89C140.57,139.98 140.35,140.05 140.12,140.09C139.9,140.15 139.6,140.18 139.22,140.18C138.28,140.18 137.52,139.91 136.95,139.37C136.38,138.81 136.09,138.04 136.09,137.05V130.48H134.13V128.78ZM143.22,140V128.78H145.09V140H143.22ZM144.15,126.71C143.78,126.71 143.46,126.58 143.2,126.32C142.94,126.06 142.8,125.74 142.8,125.37C142.8,124.99 142.94,124.68 143.2,124.43C143.46,124.16 143.78,124.03 144.15,124.03C144.53,124.03 144.84,124.16 145.09,124.43C145.36,124.68 145.49,124.99 145.49,125.37C145.49,125.74 145.36,126.06 145.09,126.32C144.84,126.58 144.53,126.71 144.15,126.71ZM153.07,140.35C151.94,140.35 150.95,140.09 150.08,139.56C149.21,139.04 148.53,138.32 148.03,137.43C147.55,136.52 147.31,135.51 147.31,134.39C147.31,133.28 147.55,132.27 148.03,131.38C148.53,130.47 149.21,129.75 150.08,129.22C150.95,128.7 151.94,128.43 153.07,128.43C154.2,128.43 155.2,128.7 156.06,129.24C156.93,129.77 157.6,130.49 158.09,131.4C158.59,132.3 158.84,133.29 158.84,134.39C158.84,135.51 158.59,136.52 158.09,137.43C157.6,138.32 156.93,139.04 156.06,139.56C155.2,140.09 154.2,140.35 153.07,140.35ZM153.07,138.66C153.75,138.66 154.38,138.49 154.96,138.15C155.57,137.82 156.05,137.33 156.42,136.7C156.78,136.06 156.97,135.29 156.97,134.39C156.97,133.5 156.78,132.74 156.42,132.1C156.05,131.46 155.57,130.97 154.96,130.63C154.38,130.29 153.75,130.13 153.07,130.13C152.4,130.13 151.76,130.29 151.16,130.63C150.56,130.97 150.07,131.46 149.71,132.1C149.34,132.74 149.16,133.5 149.16,134.39C149.16,135.29 149.34,136.06 149.71,136.7C150.07,137.33 150.56,137.82 151.16,138.15C151.76,138.49 152.4,138.66 153.07,138.66ZM160.79,140V128.78H162.57V130.43H162.66C162.96,129.89 163.43,129.42 164.09,129.02C164.77,128.63 165.5,128.43 166.29,128.43C167.67,128.43 168.71,128.83 169.39,129.64C170.1,130.43 170.45,131.49 170.45,132.81V140H168.58V133.1C168.58,132.01 168.32,131.25 167.79,130.81C167.27,130.35 166.61,130.13 165.79,130.13C165.17,130.13 164.63,130.3 164.16,130.65C163.69,130.99 163.32,131.43 163.06,131.97C162.79,132.52 162.66,133.09 162.66,133.69V140H160.79ZM178.61,140V124.25H183.91C184.79,124.25 185.61,124.45 186.36,124.85C187.1,125.24 187.7,125.79 188.14,126.5C188.59,127.18 188.82,127.99 188.82,128.91C188.82,129.82 188.59,130.63 188.14,131.34C187.7,132.04 187.1,132.59 186.36,132.99C185.61,133.38 184.79,133.58 183.91,133.58H180.48V140H178.61ZM180.48,131.8H183.96C184.57,131.8 185.1,131.66 185.54,131.38C185.98,131.09 186.32,130.72 186.55,130.28C186.8,129.84 186.93,129.38 186.93,128.91C186.93,128.45 186.8,127.99 186.55,127.55C186.32,127.11 185.98,126.75 185.54,126.47C185.1,126.18 184.57,126.03 183.96,126.03H180.48V131.8ZM191.02,140V124.25H192.89V140H191.02ZM199.14,140.35C198.3,140.35 197.57,140.19 196.94,139.87C196.31,139.55 195.81,139.11 195.44,138.55C195.09,137.98 194.92,137.33 194.92,136.62C194.92,135.79 195.13,135.1 195.55,134.55C195.98,133.98 196.55,133.55 197.27,133.27C197.99,132.98 198.78,132.83 199.65,132.83C200.15,132.83 200.61,132.88 201.03,132.96C201.46,133.04 201.82,133.13 202.13,133.25C202.46,133.35 202.7,133.45 202.86,133.56V132.88C202.86,132.02 202.56,131.35 201.96,130.85C201.35,130.35 200.62,130.1 199.76,130.1C199.14,130.1 198.56,130.24 198.02,130.52C197.49,130.79 197.07,131.16 196.76,131.64L195.36,130.59C195.65,130.15 196.02,129.77 196.46,129.44C196.9,129.12 197.4,128.87 197.95,128.7C198.52,128.52 199.13,128.43 199.76,128.43C201.28,128.43 202.48,128.83 203.34,129.64C204.21,130.45 204.64,131.53 204.64,132.9V140H202.86V138.4H202.77C202.58,138.72 202.31,139.04 201.96,139.34C201.6,139.64 201.19,139.88 200.7,140.07C200.23,140.26 199.71,140.35 199.14,140.35ZM199.32,138.71C199.96,138.71 200.55,138.54 201.08,138.22C201.62,137.9 202.05,137.47 202.37,136.92C202.7,136.38 202.86,135.79 202.86,135.14C202.52,134.91 202.1,134.72 201.58,134.57C201.08,134.42 200.53,134.35 199.93,134.35C198.86,134.35 198.08,134.57 197.58,135.01C197.08,135.45 196.83,135.99 196.83,136.64C196.83,137.25 197.07,137.75 197.53,138.13C198,138.51 198.6,138.71 199.32,138.71ZM212.22,140.35C211.12,140.35 210.13,140.1 209.27,139.59C208.42,139.06 207.75,138.35 207.27,137.45C206.78,136.54 206.54,135.52 206.54,134.39C206.54,133.25 206.78,132.23 207.27,131.34C207.75,130.44 208.42,129.74 209.27,129.22C210.13,128.7 211.12,128.43 212.22,128.43C213.48,128.43 214.51,128.72 215.32,129.31C216.14,129.88 216.72,130.62 217.06,131.53L215.36,132.24C215.08,131.55 214.66,131.03 214.11,130.68C213.57,130.31 212.9,130.13 212.13,130.13C211.47,130.13 210.85,130.3 210.28,130.65C209.72,131.01 209.27,131.5 208.92,132.15C208.56,132.78 208.39,133.53 208.39,134.39C208.39,135.24 208.56,135.99 208.92,136.64C209.27,137.28 209.72,137.78 210.28,138.13C210.85,138.49 211.47,138.66 212.13,138.66C212.92,138.66 213.6,138.48 214.17,138.11C214.75,137.74 215.17,137.22 215.45,136.55L217.12,137.25C216.76,138.12 216.16,138.85 215.34,139.45C214.52,140.05 213.48,140.35 212.22,140.35ZM224.03,140.35C222.95,140.35 221.98,140.1 221.13,139.59C220.29,139.07 219.63,138.37 219.15,137.47C218.68,136.58 218.44,135.56 218.44,134.41C218.44,133.34 218.66,132.35 219.1,131.45C219.56,130.54 220.19,129.81 220.99,129.27C221.82,128.71 222.78,128.43 223.88,128.43C224.99,128.43 225.94,128.68 226.74,129.18C227.54,129.66 228.16,130.34 228.58,131.2C229.02,132.07 229.24,133.06 229.24,134.17C229.24,134.28 229.24,134.38 229.22,134.48C229.22,134.58 229.21,134.67 229.2,134.74H220.31C220.36,135.55 220.54,136.23 220.86,136.79C221.23,137.42 221.7,137.89 222.27,138.2C222.86,138.51 223.47,138.66 224.1,138.66C224.92,138.66 225.59,138.47 226.12,138.09C226.66,137.69 227.1,137.21 227.42,136.64L229,137.41C228.56,138.26 227.93,138.96 227.11,139.52C226.29,140.08 225.26,140.35 224.03,140.35ZM220.42,133.21H227.26C227.25,132.9 227.18,132.57 227.04,132.21C226.93,131.85 226.73,131.51 226.45,131.2C226.19,130.88 225.84,130.62 225.42,130.43C225.01,130.23 224.49,130.13 223.88,130.13C223.14,130.13 222.51,130.32 221.96,130.7C221.43,131.06 221.03,131.57 220.75,132.21C220.61,132.52 220.5,132.85 220.42,133.21ZM231.43,140V124.25H233.3V128.89L233.21,130.43H233.3C233.6,129.88 234.07,129.41 234.73,129.02C235.41,128.63 236.15,128.43 236.96,128.43C237.91,128.43 238.69,128.62 239.31,129C239.93,129.38 240.39,129.9 240.7,130.57C241,131.21 241.16,131.96 241.16,132.81V140H239.29V133.1C239.29,132.38 239.15,131.8 238.89,131.38C238.64,130.94 238.3,130.62 237.88,130.43C237.47,130.23 237.01,130.13 236.51,130.13C235.9,130.13 235.35,130.3 234.87,130.65C234.38,131.01 234,131.46 233.72,132.02C233.44,132.57 233.3,133.15 233.3,133.76V140H231.43ZM249.02,140.35C247.89,140.35 246.89,140.09 246.03,139.56C245.16,139.04 244.48,138.32 243.98,137.43C243.5,136.52 243.26,135.51 243.26,134.39C243.26,133.28 243.5,132.27 243.98,131.38C244.48,130.47 245.16,129.75 246.03,129.22C246.89,128.7 247.89,128.43 249.02,128.43C250.15,128.43 251.15,128.7 252.01,129.24C252.88,129.77 253.55,130.49 254.04,131.4C254.54,132.3 254.79,133.29 254.79,134.39C254.79,135.51 254.54,136.52 254.04,137.43C253.55,138.32 252.88,139.04 252.01,139.56C251.15,140.09 250.15,140.35 249.02,140.35ZM249.02,138.66C249.7,138.66 250.33,138.49 250.91,138.15C251.51,137.82 252,137.33 252.37,136.7C252.73,136.06 252.91,135.29 252.91,134.39C252.91,133.5 252.73,132.74 252.37,132.1C252,131.46 251.51,130.97 250.91,130.63C250.33,130.29 249.7,130.13 249.02,130.13C248.35,130.13 247.71,130.29 247.11,130.63C246.51,130.97 246.02,131.46 245.65,132.1C245.29,132.74 245.1,133.5 245.1,134.39C245.1,135.29 245.29,136.06 245.65,136.7C246.02,137.33 246.51,137.82 247.11,138.15C247.71,138.49 248.35,138.66 249.02,138.66ZM256.85,140V124.25H258.72V140H256.85ZM266.16,140.35C265.14,140.35 264.23,140.1 263.41,139.59C262.6,139.07 261.96,138.37 261.49,137.47C261.02,136.58 260.79,135.55 260.79,134.39C260.79,133.23 261.02,132.21 261.49,131.31C261.96,130.42 262.6,129.71 263.41,129.2C264.23,128.69 265.14,128.43 266.16,128.43C266.76,128.43 267.31,128.53 267.81,128.72C268.3,128.91 268.74,129.16 269.1,129.46C269.48,129.77 269.78,130.1 269.98,130.46H270.07L269.98,128.89V124.25H271.85V140H270.07V138.35H269.98C269.78,138.69 269.48,139.01 269.1,139.32C268.74,139.63 268.3,139.88 267.81,140.07C267.31,140.26 266.76,140.35 266.16,140.35ZM266.35,138.66C267,138.66 267.6,138.49 268.16,138.15C268.73,137.8 269.19,137.31 269.54,136.68C269.9,136.04 270.07,135.27 270.07,134.39C270.07,133.51 269.9,132.76 269.54,132.13C269.19,131.48 268.73,130.99 268.16,130.65C267.6,130.3 267,130.13 266.35,130.13C265.71,130.13 265.1,130.3 264.53,130.65C263.97,130.99 263.52,131.48 263.16,132.13C262.81,132.76 262.64,133.51 262.64,134.39C262.64,135.26 262.81,136.01 263.16,136.66C263.52,137.3 263.97,137.8 264.53,138.15C265.1,138.49 265.71,138.66 266.35,138.66ZM279.5,140.35C278.42,140.35 277.45,140.1 276.6,139.59C275.76,139.07 275.1,138.37 274.62,137.47C274.15,136.58 273.92,135.56 273.92,134.41C273.92,133.34 274.14,132.35 274.58,131.45C275.03,130.54 275.66,129.81 276.47,129.27C277.29,128.71 278.25,128.43 279.35,128.43C280.46,128.43 281.42,128.68 282.21,129.18C283.02,129.66 283.63,130.34 284.06,131.2C284.5,132.07 284.72,133.06 284.72,134.17C284.72,134.28 284.71,134.38 284.7,134.48C284.7,134.58 284.69,134.67 284.67,134.74H275.79C275.83,135.55 276.01,136.23 276.33,136.79C276.7,137.42 277.17,137.89 277.74,138.2C278.33,138.51 278.94,138.66 279.57,138.66C280.39,138.66 281.07,138.47 281.59,138.09C282.14,137.69 282.57,137.21 282.89,136.64L284.48,137.41C284.04,138.26 283.4,138.96 282.58,139.52C281.76,140.08 280.73,140.35 279.5,140.35ZM275.89,133.21H282.74C282.72,132.9 282.65,132.57 282.52,132.21C282.4,131.85 282.2,131.51 281.92,131.2C281.66,130.88 281.31,130.62 280.89,130.43C280.48,130.23 279.96,130.13 279.35,130.13C278.62,130.13 277.98,130.32 277.43,130.7C276.91,131.06 276.5,131.57 276.23,132.21C276.08,132.52 275.97,132.85 275.89,133.21ZM286.91,140V128.78H288.69V130.59H288.78C288.92,130.16 289.16,129.79 289.5,129.49C289.85,129.16 290.25,128.91 290.69,128.74C291.14,128.55 291.59,128.45 292.03,128.45C292.37,128.45 292.63,128.48 292.82,128.52C293.01,128.55 293.19,128.6 293.35,128.67V130.7C293.12,130.58 292.86,130.49 292.58,130.43C292.32,130.37 292.05,130.35 291.77,130.35C291.23,130.35 290.73,130.5 290.27,130.81C289.82,131.12 289.45,131.53 289.17,132.04C288.91,132.55 288.78,133.12 288.78,133.73V140H286.91Z"/>
+    </group>
+</vector>
diff --git a/res/layout-v34/settingslib_main_switch_bar.xml b/res/layout-v34/settingslib_main_switch_bar.xml
new file mode 100644
index 0000000..3a44d2a
--- /dev/null
+++ b/res/layout-v34/settingslib_main_switch_bar.xml
@@ -0,0 +1,63 @@
+<?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.
+  -->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_height="wrap_content"
+    android:layout_width="match_parent"
+    android:minHeight="?android:attr/listPreferredItemHeight"
+    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+    android:paddingTop="@dimen/settingslib_switchbar_margin"
+    android:paddingBottom="@dimen/settingslib_switchbar_margin"
+    android:orientation="vertical">
+
+    <LinearLayout
+        android:id="@+id/frame"
+        android:minHeight="@dimen/settingslib_min_switch_bar_height"
+        android:layout_height="wrap_content"
+        android:layout_width="match_parent"
+        android:paddingStart="@dimen/settingslib_switchbar_padding_left"
+        android:paddingEnd="@dimen/settingslib_switchbar_padding_right"
+        android:background="@drawable/settingslib_switch_bar_bg">
+
+        <TextView
+            android:id="@+id/switch_text"
+            android:layout_height="wrap_content"
+            android:layout_width="0dp"
+            android:layout_weight="1"
+            android:layout_marginEnd="@dimen/settingslib_switch_title_margin"
+            android:layout_marginVertical="@dimen/settingslib_switch_title_margin"
+            android:layout_gravity="center_vertical"
+            android:ellipsize="end"
+            android:textAppearance="?android:attr/textAppearanceListItem"
+            android:hyphenationFrequency="normalFast"
+            android:lineBreakWordStyle="phrase"
+            style="@style/MainSwitchText.Settingslib" />
+
+        <com.google.android.material.materialswitch.MaterialSwitch
+            android:id="@android:id/switch_widget"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_vertical"
+            android:background="@null"
+            android:clickable="false"
+            android:focusable="false"
+            android:theme="@style/Theme.Material3.DynamicColors.DayNight" />
+    </LinearLayout>
+
+</LinearLayout>
diff --git a/res/layout/accessibility_edit_shortcut_magnification.xml b/res/layout/accessibility_edit_shortcut_magnification.xml
index 725c4c7..0f30a01 100644
--- a/res/layout/accessibility_edit_shortcut_magnification.xml
+++ b/res/layout/accessibility_edit_shortcut_magnification.xml
@@ -46,6 +46,14 @@
                 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"
diff --git a/res/layout/accessibility_shortcut_secondary_action.xml b/res/layout/accessibility_shortcut_secondary_action.xml
index b3b81fe..80defdb 100644
--- a/res/layout/accessibility_shortcut_secondary_action.xml
+++ b/res/layout/accessibility_shortcut_secondary_action.xml
@@ -93,7 +93,7 @@
         android:layout_width="wrap_content"
         android:layout_height="match_parent"
         android:gravity="end|center_vertical"
-        android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+        android:paddingHorizontal="?android:attr/listPreferredItemPaddingEnd"
         android:minWidth="58dp"
         android:orientation="vertical" />
 
diff --git a/res/layout/accessibility_text_reading_preview.xml b/res/layout/accessibility_text_reading_preview.xml
index 4b70bb4..f76bb1c 100644
--- a/res/layout/accessibility_text_reading_preview.xml
+++ b/res/layout/accessibility_text_reading_preview.xml
@@ -19,8 +19,8 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:paddingVertical="@dimen/settingslib_illustration_padding"
-    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
-    android:paddingStart="?android:attr/listPreferredItemPaddingStart">
+    android:paddingEnd="@dimen/text_reading_preview_padding_end"
+    android:paddingStart="@dimen/text_reading_preview_padding_start">
 
     <LinearLayout
         android:layout_width="match_parent"
@@ -28,7 +28,8 @@
         android:background="@drawable/accessibility_text_reading_preview"
         android:clipChildren="true"
         android:orientation="vertical"
-        android:padding="18dp">
+        android:paddingVertical="@dimen/text_reading_preview_background_padding_vertical"
+        android:paddingHorizontal="@dimen/text_reading_preview_background_padding_horizontal">
 
         <TextView
             android:id="@+id/preview_label"
diff --git a/res/layout/audio_sharing_device_item.xml b/res/layout/audio_sharing_device_item.xml
new file mode 100644
index 0000000..f8e7454
--- /dev/null
+++ b/res/layout/audio_sharing_device_item.xml
@@ -0,0 +1,32 @@
+<?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.
+  -->
+
+<FrameLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content">
+
+    <Button
+        android:id="@+id/device_button"
+        android:overScrollMode="never"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:textAlignment="center"
+        android:text=""/>
+
+</FrameLayout>
\ No newline at end of file
diff --git a/res/layout/battery_tips_card.xml b/res/layout/battery_tips_card.xml
index c9a00bc..1a121ba 100644
--- a/res/layout/battery_tips_card.xml
+++ b/res/layout/battery_tips_card.xml
@@ -4,109 +4,58 @@
     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:paddingStart="?android:attr/listPreferredItemPaddingStart"
-    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
+    android:padding="20dp">
 
-    <LinearLayout
-        android:id="@+id/tips_card"
+    <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:background="@drawable/battery_tips_all_rounded_bg_ripple"
-        android:orientation="vertical"
-        android:padding="24dp">
-
-        <ImageView
-            android:id="@+id/icon"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="center_vertical|start"
-            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="?android:attr/textAppearanceLarge"
-            android:textColor="?android:attr/textColorPrimary" />
-
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="horizontal"
-            android:layout_marginTop="8dp"
-            android:gravity="end">
-
-            <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:paddingHorizontal="16dp"
-                android:layout_marginEnd="8dp"
-                android:text="@string/battery_tips_card_dismiss_button"
-                android:textAppearance="?android:attr/textAppearanceSmall"
-                android:textColor="?android:attr/textColorPrimary" />
-
-            <com.google.android.material.button.MaterialButton
-                android:id="@+id/main_button"
-                style="@style/Widget.Material3.Button.OutlinedButton"
-                android:paddingHorizontal="16dp"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="end|center_vertical"
-                android:text="@string/battery_tips_card_action_button"
-                android:textAppearance="?android:attr/textAppearanceSmall"
-                android:textColor="?android:attr/textColorPrimary"
-                app:strokeColor="@color/color_accent_selector"
-                app:strokeWidth="1dp" />
-        </LinearLayout>
-    </LinearLayout>
-
-    <Space
-        android:layout_width="0dp"
-        android:layout_height="1dp"/>
+        android:layout_marginTop="8dp"
+        android:textAlignment="viewStart"
+        android:textAppearance="@style/TextAppearance.Material3.TitleMedium"
+        android:textColor="?android:attr/textColorPrimary" />
 
     <LinearLayout
-        android:id="@+id/feedback_card"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:background="@drawable/battery_tips_half_rounded_bottom_bg"
-        android:gravity="center_vertical|start"
-        android:orientation="horizontal"
-        android:paddingHorizontal="24dp"
-        android:paddingVertical="16dp"
-        android:visibility="gone">
+        android:layout_marginTop="8dp"
+        android:gravity="end"
+        android:orientation="horizontal">
 
-        <TextView
-            android:layout_width="0dp"
-            android:layout_height="wrap_content"
-            android:layout_marginStart="0dp"
-            android:layout_marginEnd="20dp"
-            android:layout_weight="1"
-            android:text="@string/battery_tips_card_feedback_info"
-            android:textAlignment="viewStart"
-            android:textColor="?android:attr/textColorPrimary"
-            android:textStyle="bold"/>
-
-        <ImageButton
-            android:id="@+id/thumb_up"
-            style="@style/Banner.Dismiss.SettingsLib"
+        <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="center_vertical|end"
-            android:layout_marginEnd="20dp"
-            android:src="@drawable/ic_battery_tips_thumb_up" />
+            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" />
 
-        <ImageButton
-            android:id="@+id/thumb_down"
-            style="@style/Banner.Dismiss.SettingsLib"
+        <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="center_vertical|end"
-            android:src="@drawable/ic_battery_tips_thumb_down" />
+            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/power_anomaly_primary_button_text_color"
+            app:backgroundTint="@color/color_accent_selector" />
     </LinearLayout>
 </LinearLayout>
\ No newline at end of file
diff --git a/res/layout/content_protection_preference_fragment.xml b/res/layout/content_protection_preference_fragment.xml
new file mode 100644
index 0000000..8bf6582
--- /dev/null
+++ b/res/layout/content_protection_preference_fragment.xml
@@ -0,0 +1,49 @@
+<?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.
+-->
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res-auto"
+    android:key="content_protection_preference_subpage"
+    android:title="@string/content_protection_preference_title">
+
+    <com.android.settingslib.widget.TopIntroPreference
+        android:key="content_protection_preference_top_intro"
+        android:title="@string/content_protection_preference_subpage_summary"
+        settings:searchable="false"/>
+
+    <com.android.settings.widget.SettingsMainSwitchPreference
+        android:key="content_protection_preference_user_consent_switch"
+        android:title="@string/content_protection_preference_user_consent_switch_title"
+        settings:controller=
+              "com.android.settings.security.ContentProtectionTogglePreferenceController"/>
+
+    <com.android.settingslib.widget.IllustrationPreference
+        android:key="content_protection_preference_subpage_illustration"
+        android:selectable="false"
+        settings:lottie_rawRes="@drawable/content_protection_preference_illustration"
+        settings:searchable="false" />
+
+    <com.android.settingslib.RestrictedSwitchPreference
+        android:key="content_protection_preference_user_consent_work_profile_switch"
+        android:title="@string/content_protection_preference_user_consent_work_profile_switch_title"
+        settings:restrictedSwitchSummary="@string/summary_placeholder"
+        settings:controller="com.android.settings.security.ContentProtectionWorkSwitchController"/>
+
+    <com.android.settingslib.widget.FooterPreference
+        android:key="content_protection_preference_subpage_footer"
+        android:title="@string/content_protection_preference_subpage_info" />
+</PreferenceScreen>
diff --git a/res/layout/dialog_audio_sharing.xml b/res/layout/dialog_audio_sharing.xml
new file mode 100644
index 0000000..5f26f74
--- /dev/null
+++ b/res/layout/dialog_audio_sharing.xml
@@ -0,0 +1,49 @@
+<?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.
+  -->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:padding="24dp"
+    android:orientation="vertical">
+
+    <TextView
+        style="@style/DeviceAudioSharingText"
+        android:id="@+id/share_audio_subtitle1"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:textAlignment="center"
+        android:layout_gravity="center"/>
+
+    <TextView
+        style="@style/DeviceAudioSharingText"
+        android:id="@+id/share_audio_subtitle2"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:textAlignment="center"
+        android:layout_gravity="center"/>
+
+    <com.android.internal.widget.RecyclerView
+        android:visibility="visible"
+        android:id="@+id/btn_list"
+        android:nestedScrollingEnabled="false"
+        android:overScrollMode="never"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"/>
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/dialog_audio_sharing_disconnect.xml b/res/layout/dialog_audio_sharing_disconnect.xml
new file mode 100644
index 0000000..09bac40
--- /dev/null
+++ b/res/layout/dialog_audio_sharing_disconnect.xml
@@ -0,0 +1,47 @@
+<?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.
+  -->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:padding="24dp"
+    android:orientation="vertical">
+
+    <TextView
+        android:id="@+id/share_audio_disconnect_description"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:textAlignment="center"
+        android:layout_gravity="center"/>
+
+    <com.android.internal.widget.RecyclerView
+        android:visibility="visible"
+        android:id="@+id/device_btn_list"
+        android:nestedScrollingEnabled="false"
+        android:overScrollMode="never"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"/>
+
+    <Button
+        android:id="@+id/cancel_btn"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:text="@string/cancel"/>
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/dialog_audio_sharing_join.xml b/res/layout/dialog_audio_sharing_join.xml
new file mode 100644
index 0000000..42d964a
--- /dev/null
+++ b/res/layout/dialog_audio_sharing_join.xml
@@ -0,0 +1,53 @@
+<?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.
+  -->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:padding="24dp"
+    android:orientation="vertical">
+
+    <TextView
+        android:id="@+id/share_audio_subtitle1"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:textAlignment="center"
+        android:layout_gravity="center"/>
+
+    <TextView
+        android:id="@+id/share_audio_subtitle2"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:textAlignment="center"
+        android:layout_gravity="center"/>
+
+    <Button
+        android:id="@+id/share_btn"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:text=""/>
+
+    <Button
+        android:id="@+id/cancel_btn"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:text="@string/cancel"/>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/dialog_eid_status.xml b/res/layout/dialog_eid_status.xml
index 77d6494..3297dac 100644
--- a/res/layout/dialog_eid_status.xml
+++ b/res/layout/dialog_eid_status.xml
@@ -27,8 +27,7 @@
         style="@style/device_info_dialog_value"
         android:id="@+id/esim_id_value"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:textIsSelectable="true" />
+        android:layout_height="wrap_content" />
 
     <ImageView
         android:id="@+id/esim_id_qrcode"
diff --git a/res/layout/face_enroll_accessibility_toggle.xml b/res/layout/face_enroll_accessibility_toggle.xml
index a56655d..f2987db 100644
--- a/res/layout/face_enroll_accessibility_toggle.xml
+++ b/res/layout/face_enroll_accessibility_toggle.xml
@@ -16,70 +16,53 @@
 
 <RelativeLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
     android:orientation="vertical"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     style="?attr/face_layout_theme">
 
-    <!-- Top divider -->
-    <View
-        android:layout_alignParentTop="true"
-        android:layout_width="match_parent"
-        android:layout_height="1dp"
-        android:background="?android:attr/listDivider" />
-
     <!-- Title -->
     <com.google.android.setupdesign.view.RichTextView
         android:id="@+id/title"
-        android:paddingHorizontal="8dp"
-        android:paddingTop="8dp"
-        android:paddingBottom="4dp"
+        android:layout_marginBottom="4dp"
         android:gravity="start"
         android:layout_alignParentStart="true"
         android:layout_toStartOf="@+id/toggle"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:textColor="?android:attr/textColorPrimary"
-        android:textSize="@dimen/sud_description_text_size"
+        android:textSize="22sp"
+        android:letterSpacing="0"
+        android:minHeight="28dp"
+        android:fontFamily="@string/sudFontSecondary"
         />
 
     <!-- Subtitle -->
     <TextView
         android:id="@+id/subtitle"
-        android:paddingHorizontal="8dp"
-        android:paddingBottom="8dp"
         android:layout_alignParentStart="true"
         android:layout_toStartOf="@+id/toggle"
         android:layout_below="@+id/title"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="@string/security_settings_face_enroll_introduction_accessibility_expanded"
-        android:textColor="?android:attr/textColorSecondary"/>
-
-    <!-- Vertical divider -->
-    <View
-        android:layout_centerVertical="true"
-        android:layout_alignTop="@+id/toggle"
-        android:layout_alignBottom="@+id/toggle"
-        android:layout_toStartOf="@+id/toggle"
-        android:layout_width="1dp"
-        android:layout_height="wrap_content"
-        android:background="?android:attr/listDivider" />
+        android:textSize="14sp"
+        android:letterSpacing="0"
+        android:minHeight="20dp"
+        android:fontFamily="@string/sudFontSecondaryText"
+        android:textColor="?androidprv:attr/materialColorOnSurfaceVariant"/>
 
     <!-- Toggle -->
-    <Switch
+    <com.google.android.material.materialswitch.MaterialSwitch
         android:layout_alignParentEnd="true"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
+        android:layout_marginStart="16dp"
+        android:theme="@style/Theme.Material3.DynamicColors.DayNight"
+        android:background="@null"
         android:id="@+id/toggle"
         android:layout_centerVertical="true"
         android:checked="true"/>
 
-    <!-- Bottom divider -->
-    <View
-        android:layout_below="@+id/subtitle"
-        android:layout_width="match_parent"
-        android:layout_height="1dp"
-        android:background="?android:attr/listDivider" />
-
 </RelativeLayout>
diff --git a/res/layout/fingerprint_v2_enroll_introduction.xml b/res/layout/fingerprint_v2_enroll_introduction.xml
index e9dd08a..cf39206 100644
--- a/res/layout/fingerprint_v2_enroll_introduction.xml
+++ b/res/layout/fingerprint_v2_enroll_introduction.xml
@@ -16,199 +16,211 @@
   -->
 
 <com.google.android.setupdesign.GlifLayout
-xmlns:android="http://schemas.android.com/apk/res/android"
-xmlns:app="http://schemas.android.com/apk/res-auto"
-style="?attr/fingerprint_layout_theme"
-android:id="@+id/setup_wizard_layout"
-android:layout_width="match_parent"
-android:layout_height="match_parent">
-
-<LinearLayout
-    style="@style/SudContentFrame"
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/setup_wizard_layout"
+    style="?attr/fingerprint_layout_theme"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:clipChildren="false"
-    android:clipToPadding="false"
-    android:orientation="vertical">
+    android:layout_height="match_parent">
 
-    <com.google.android.setupdesign.view.RichTextView
-        android:id="@+id/error_text"
-        style="@style/SudDescription.Glif"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content" />
-
-    <FrameLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content">
-
-        <ImageView
-            style="@style/SudContentIllustration"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:contentDescription="@null"
-            android:src="@drawable/fingerprint_enroll_introduction" />
-
-    </FrameLayout>
-
-    <!-- Contains the extra information text at the bottom -->
     <LinearLayout
+        style="@style/SudContentFrame"
+        android:id="@+id/enroll_intro_content_view"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
+        android:clipChildren="false"
+        android:clipToPadding="false"
         android:orientation="vertical">
 
-        <!-- How it works -->
-        <TextView
+        <com.google.android.setupdesign.view.RichTextView
+            android:id="@+id/error_text"
+            style="@style/SudDescription.Glif"
             android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            style="@style/BiometricEnrollIntroTitle"
-            android:text="@string/security_settings_fingerprint_v2_enroll_introduction_footer_title_2" />
+            android:layout_height="wrap_content" />
 
+        <FrameLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content">
+
+            <ImageView
+                style="@style/SudContentIllustration"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:contentDescription="@null"
+                android:src="@drawable/fingerprint_enroll_introduction" />
+
+        </FrameLayout>
+
+        <!-- Contains the extra information text at the bottom -->
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:orientation="horizontal">
+            android:orientation="vertical">
 
-            <ImageView
-                android:id="@+id/icon_fingerprint"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:contentDescription="@null"
-                android:src="@drawable/ic_fingerprint_24dp"/>
-            <Space
-                android:layout_width="16dp"
-                android:layout_height="wrap_content"/>
+            <!-- How it works -->
             <TextView
-                android:id="@+id/footer_message_2"
+                style="@style/BiometricEnrollIntroTitle"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                style="@style/BiometricEnrollIntroMessage" />
-        </LinearLayout>
+                android:text="@string/security_settings_fingerprint_v2_enroll_introduction_footer_title_2" />
 
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="horizontal">
-
-            <ImageView
-                android:id="@+id/icon_device_locked"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:contentDescription="@null"
-                android:src="@drawable/ic_lock_24dp"/>
-            <Space
-                android:layout_width="16dp"
-                android:layout_height="wrap_content"/>
-            <TextView
-                android:id="@+id/footer_message_3"
+            <LinearLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                style="@style/BiometricEnrollIntroMessage" />
-        </LinearLayout>
+                android:orientation="horizontal">
 
-        <!-- You're in control -->
-        <TextView
-            android:id="@+id/footer_title_1"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            style="@style/BiometricEnrollIntroTitle" />
+                <ImageView
+                    android:id="@+id/icon_fingerprint"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:contentDescription="@null"
+                    android:src="@drawable/ic_fingerprint_24dp" />
 
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="horizontal">
+                <Space
+                    android:layout_width="16dp"
+                    android:layout_height="wrap_content" />
 
-            <ImageView
-                android:id="@+id/icon_trash_can"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:contentDescription="@null"
-                android:src="@drawable/ic_trash_can"/>
-            <Space
-                android:layout_width="16dp"
-                android:layout_height="wrap_content"/>
-            <TextView
-                android:id="@+id/footer_message_4"
+                <TextView
+                    android:id="@+id/footer_message_2"
+                    style="@style/BiometricEnrollIntroMessage"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content" />
+            </LinearLayout>
+
+            <LinearLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                style="@style/BiometricEnrollIntroMessage" />
-        </LinearLayout>
+                android:orientation="horizontal">
 
-        <!-- Keep in mind -->
-        <TextView
-            android:id="@+id/footer_title_2"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            style="@style/BiometricEnrollIntroTitle"
-            android:text="@string/security_settings_face_enroll_introduction_info_title"/>
+                <ImageView
+                    android:id="@+id/icon_device_locked"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:contentDescription="@null"
+                    android:src="@drawable/ic_lock_24dp" />
 
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="horizontal">
+                <Space
+                    android:layout_width="16dp"
+                    android:layout_height="wrap_content" />
 
-            <ImageView
-                android:id="@+id/icon_info"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:contentDescription="@null"
-                android:src="@drawable/ic_info_outline_24dp"/>
-            <Space
-                android:layout_width="16dp"
-                android:layout_height="wrap_content"/>
+                <TextView
+                    android:id="@+id/footer_message_3"
+                    style="@style/BiometricEnrollIntroMessage"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content" />
+            </LinearLayout>
+
+            <!-- You're in control -->
             <TextView
-                android:id="@+id/footer_message_5"
+                android:id="@+id/footer_title_1"
+                style="@style/BiometricEnrollIntroTitle"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content" />
+
+            <LinearLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                style="@style/BiometricEnrollIntroMessage" />
-        </LinearLayout>
+                android:orientation="horizontal">
 
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="horizontal">
+                <ImageView
+                    android:id="@+id/icon_trash_can"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:contentDescription="@null"
+                    android:src="@drawable/ic_trash_can" />
 
-            <ImageView
-                android:id="@+id/icon_shield"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:contentDescription="@null"
-                android:src="@drawable/ic_guarantee"/>
-            <Space
-                android:layout_width="16dp"
-                android:layout_height="wrap_content"/>
+                <Space
+                    android:layout_width="16dp"
+                    android:layout_height="wrap_content" />
+
+                <TextView
+                    android:id="@+id/footer_message_4"
+                    style="@style/BiometricEnrollIntroMessage"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content" />
+            </LinearLayout>
+
+            <!-- Keep in mind -->
             <TextView
-                android:id="@+id/footer_message_6"
+                android:id="@+id/footer_title_2"
+                style="@style/BiometricEnrollIntroTitle"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                style="@style/BiometricEnrollIntroMessage" />
-        </LinearLayout>
+                android:text="@string/security_settings_face_enroll_introduction_info_title" />
 
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="horizontal">
-
-            <ImageView
-                android:id="@+id/icon_link"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:contentDescription="@null"
-                android:src="@drawable/ic_link_24dp"/>
-            <Space
-                android:layout_width="16dp"
-                android:layout_height="wrap_content"/>
-            <TextView
-                android:id="@+id/footer_learn_more"
-                android:linksClickable="true"
+            <LinearLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                style="@style/BiometricEnrollIntroMessage"
-                android:paddingBottom="0dp"
-                android:text="@string/security_settings_fingerprint_v2_enroll_introduction_message_learn_more" />
+                android:orientation="horizontal">
+
+                <ImageView
+                    android:id="@+id/icon_info"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:contentDescription="@null"
+                    android:src="@drawable/ic_info_outline_24dp" />
+
+                <Space
+                    android:layout_width="16dp"
+                    android:layout_height="wrap_content" />
+
+                <TextView
+                    android:id="@+id/footer_message_5"
+                    style="@style/BiometricEnrollIntroMessage"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content" />
+            </LinearLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="horizontal">
+
+                <ImageView
+                    android:id="@+id/icon_shield"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:contentDescription="@null"
+                    android:src="@drawable/ic_guarantee" />
+
+                <Space
+                    android:layout_width="16dp"
+                    android:layout_height="wrap_content" />
+
+                <TextView
+                    android:id="@+id/footer_message_6"
+                    style="@style/BiometricEnrollIntroMessage"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content" />
+            </LinearLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="horizontal">
+
+                <ImageView
+                    android:id="@+id/icon_link"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:contentDescription="@null"
+                    android:src="@drawable/ic_link_24dp" />
+
+                <Space
+                    android:layout_width="16dp"
+                    android:layout_height="wrap_content" />
+
+                <TextView
+                    android:id="@+id/footer_learn_more"
+                    style="@style/BiometricEnrollIntroMessage"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:linksClickable="true"
+                    android:paddingBottom="0dp"
+                    android:text="@string/security_settings_fingerprint_v2_enroll_introduction_message_learn_more" />
+            </LinearLayout>
+
         </LinearLayout>
 
     </LinearLayout>
 
-</LinearLayout>
-
 </com.google.android.setupdesign.GlifLayout>
\ No newline at end of file
diff --git a/res/layout/fingerprint_v2_rfps_enroll_enrolling.xml b/res/layout/fingerprint_v2_rfps_enroll_enrolling.xml
new file mode 100644
index 0000000..0b087d2
--- /dev/null
+++ b/res/layout/fingerprint_v2_rfps_enroll_enrolling.xml
@@ -0,0 +1,75 @@
+<?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.
+  -->
+
+<com.google.android.setupdesign.GlifLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    style="?attr/fingerprint_layout_theme"
+    android:id="@+id/setup_wizard_layout"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    >
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    style="@style/SudContentFrame"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:clipChildren="false"
+    android:clipToPadding="false"
+    android:orientation="vertical">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="1"
+        android:gravity="center"
+        android:orientation="vertical">
+
+        <com.google.android.setupdesign.view.FillContentLayout
+            android:layout_width="@dimen/fingerprint_progress_bar_max_size"
+            android:layout_height="@dimen/fingerprint_progress_bar_max_size"
+            android:layout_marginVertical="24dp"
+            android:paddingTop="0dp"
+            android:paddingBottom="0dp">
+
+            <com.android.settings.biometrics.fingerprint2.ui.enrollment.modules.enrolling.rfps.ui.widget.RFPSProgressBar
+                xmlns:android="http://schemas.android.com/apk/res/android"
+                android:id="@+id/fingerprint_progress_bar"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:background="@drawable/fp_illustration"
+                android:minHeight="@dimen/fingerprint_progress_bar_min_size"
+                android:progress="0" />
+
+        </com.google.android.setupdesign.view.FillContentLayout>
+
+        <TextView
+            android:id="@+id/text"
+            style="@style/TextAppearance.ErrorText"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_horizontal|bottom"
+            android:accessibilityLiveRegion="polite"
+            android:gravity="center"
+            android:visibility="invisible" />
+
+    </LinearLayout>
+
+</LinearLayout>
+
+</com.google.android.setupdesign.GlifLayout>
\ No newline at end of file
diff --git a/res/layout/preference_compose.xml b/res/layout/preference_compose.xml
new file mode 100644
index 0000000..14cb2d7
--- /dev/null
+++ b/res/layout/preference_compose.xml
@@ -0,0 +1,21 @@
+<?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.compose.ui.platform.ComposeView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content" />
diff --git a/res/layout/preference_icon_credman.xml b/res/layout/preference_icon_credman.xml
new file mode 100644
index 0000000..3db0c3b
--- /dev/null
+++ b/res/layout/preference_icon_credman.xml
@@ -0,0 +1,98 @@
+<?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.
+  -->
+
+<!-- Based off preference_material_settings.xml except that ripple on only on the left side. -->
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:minHeight="?android:attr/listPreferredItemHeightSmall"
+    android:gravity="center_vertical"
+    android:background="@android:color/transparent"
+    android:clipToPadding="false">
+
+    <LinearLayout
+        android:layout_width="0dp"
+        android:layout_height="match_parent"
+        android:layout_weight="1"
+        android:background="?android:attr/selectableItemBackground"
+        android:gravity="start|center_vertical"
+        android:clipToPadding="false"
+        android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+        android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
+
+        <LinearLayout
+            android:id="@+id/icon_frame"
+            android:layout_width="48dp"
+            android:layout_height="40dp"
+            android:gravity="start|center_vertical"
+            android:minWidth="56dp"
+            android:orientation="horizontal"
+            android:clipToPadding="false"
+            android:paddingTop="4dp"
+            android:paddingBottom="4dp">
+            <androidx.preference.internal.PreferenceImageView
+                android:id="@android:id/icon"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                settings:maxWidth="32dp"
+                settings:maxHeight="32dp" />
+        </LinearLayout>
+
+        <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:singleLine="true"
+                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:maxLines="10" />
+
+        </RelativeLayout>
+
+    </LinearLayout>
+
+    <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:paddingEnd="16dp"
+        android:minWidth="61dp"
+        android:gravity="center"
+        android:orientation="vertical" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/preference_widget_primary_switch.xml b/res/layout/preference_widget_primary_switch.xml
deleted file mode 100644
index 53c06b5..0000000
--- a/res/layout/preference_widget_primary_switch.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  Copyright (C) 2017 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-  -->
-
-<Switch
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/switchWidget"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:minWidth="@dimen/two_target_min_width"
-    android:gravity="center_vertical"
-    android:clickable="false" />
diff --git a/res/layout/preference_widget_qrcode.xml b/res/layout/preference_widget_qrcode.xml
new file mode 100644
index 0000000..7994fe1
--- /dev/null
+++ b/res/layout/preference_widget_qrcode.xml
@@ -0,0 +1,25 @@
+<?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.
+  -->
+
+<ImageButton xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/button_icon"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:minWidth="@dimen/two_target_min_width"
+    android:minHeight="@dimen/min_tap_target_size"
+    android:layout_gravity="center"
+    android:background="?android:attr/selectableItemBackground"/>
\ No newline at end of file
diff --git a/res/layout/preference_widget_switch_compat.xml b/res/layout/preference_widget_switch_compat.xml
new file mode 100644
index 0000000..e833171
--- /dev/null
+++ b/res/layout/preference_widget_switch_compat.xml
@@ -0,0 +1,26 @@
+<?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.
+  -->
+
+<com.google.android.material.materialswitch.MaterialSwitch
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/switchWidget"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:background="@null"
+    android:clickable="false"
+    android:focusable="false"
+    android:theme="@style/Theme.Material3.DynamicColors.DayNight" />
diff --git a/res/layout/preference_widget_sync_toggle.xml b/res/layout/preference_widget_sync_toggle.xml
index c12b9f6..ae1e6f3 100644
--- a/res/layout/preference_widget_sync_toggle.xml
+++ b/res/layout/preference_widget_sync_toggle.xml
@@ -38,11 +38,5 @@
         android:layout_marginEnd="8dip"
         android:contentDescription="@string/sync_active" />
 
-    <Switch
-        android:id="@android:id/switch_widget"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center_vertical"
-        android:focusable="false"
-        android:clickable="false" />
+    <include layout="@layout/preference_widget_switch_compat" />
 </LinearLayout>
diff --git a/res/layout/privatespace_account_login_error.xml b/res/layout/privatespace_account_login_error.xml
new file mode 100644
index 0000000..a38dd50
--- /dev/null
+++ b/res/layout/privatespace_account_login_error.xml
@@ -0,0 +1,28 @@
+<?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.
+  -->
+
+<com.google.android.setupdesign.GlifLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:id="@+id/ps_error_page_layout"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:filterTouchesWhenObscured="true"
+    app:sucHeaderText="@string/privatespace_retry_signin_title"
+    app:sudDescriptionText="@string/privatespace_retry_summary"
+    android:icon="@drawable/ic_error_red">
+</com.google.android.setupdesign.GlifLayout>
diff --git a/res/layout/privatespace_advancing_screen.xml b/res/layout/privatespace_advancing_screen.xml
new file mode 100644
index 0000000..5b69593
--- /dev/null
+++ b/res/layout/privatespace_advancing_screen.xml
@@ -0,0 +1,46 @@
+<!--
+  ~ 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.
+  -->
+
+<com.google.android.setupdesign.GlifLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:id="@+id/privatesapce_autoadvance_screen"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:icon="@drawable/ic_privatespace_icon">
+    <LinearLayout style="@style/SudContentFrame"
+                  android:layout_width="match_parent"
+                  android:layout_height="match_parent"
+                  android:orientation="vertical">
+        <ImageView
+            android:id="@+id/placeholder_image"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:layout_weight="1"
+            android:contentDescription="@null"
+            android:src="@drawable/privatespace_setup_flow_placeholder"/>
+
+        <TextView
+            android:id="@+id/createMessage"
+            style="@style/PrivateSpaceSetupTextFontStyle"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textSize="14sp"
+            android:text="@string/privatespace_setting_up_text"
+            android:layout_marginBottom="24dp"/>
+
+    </LinearLayout>
+</com.google.android.setupdesign.GlifLayout>
diff --git a/res/layout/privatespace_creation_error.xml b/res/layout/privatespace_creation_error.xml
new file mode 100644
index 0000000..af11f3a
--- /dev/null
+++ b/res/layout/privatespace_creation_error.xml
@@ -0,0 +1,27 @@
+<!--
+  ~ 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.
+  -->
+
+<com.google.android.setupdesign.GlifLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:id="@+id/privatespace_setup_error"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:filterTouchesWhenObscured="true"
+    app:sucHeaderText="@string/privatespace_error_screen_title"
+    app:sudDescriptionText="@string/privatespace_error_screen_summary"
+    android:icon="@drawable/ic_warning_circle_red">
+</com.google.android.setupdesign.GlifLayout>
diff --git a/res/layout/privatespace_education_screen.xml b/res/layout/privatespace_education_screen.xml
new file mode 100644
index 0000000..adb65c9
--- /dev/null
+++ b/res/layout/privatespace_education_screen.xml
@@ -0,0 +1,101 @@
+<!--
+  ~ 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.
+  -->
+
+<com.google.android.setupdesign.GlifLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:id="@+id/ps_education_screen"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:filterTouchesWhenObscured="true"
+    app:sucHeaderText="@string/privatespace_setup_title"
+    app:sudDescriptionText="@string/privatespace_hide_apps_summary"
+    android:icon="@drawable/ic_privatespace_icon">
+    <ScrollView
+        android:id="@+id/main_clear_scrollview"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+    <LinearLayout
+        android:id="@+id/sud_layout_icon_container"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical">
+        <ImageView
+            android:id="@+id/placeholder_image"
+            style="@style/SudContentIllustration"
+            android:layout_width="match_parent"
+            android:layout_marginLeft="24dp"
+            android:layout_marginRight="24dp"
+            android:layout_height="wrap_content"
+            android:src="@drawable/privatespace_placeholder_image"/>
+        <TextView
+            style="@style/PrivateSpaceSetupSubHeaderStyle"
+            android:text="@string/privatespace_how_title"/>
+        <RelativeLayout
+            style="@style/PrivateSpaceSetupBulletPointLayoutStyle"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content">
+            <ImageView
+                android:id="@+id/appsIcon"
+                style="@style/PrivateSpaceBulletPointIconStyle"
+                android:src="@drawable/ic_apps" />
+            <TextView
+                style="@style/PrivateSpaceBulletPointTextFontStyle"
+                android:layout_toRightOf="@+id/appsIcon"
+                android:text="@string/privatespace_access_bottom_text"/>
+        </RelativeLayout>
+        <RelativeLayout
+            style="@style/PrivateSpaceSetupBulletPointLayoutStyle">
+            <ImageView
+                android:id="@+id/lockIcon"
+                style="@style/PrivateSpaceBulletPointIconStyle"
+                android:src="@drawable/ic_lock_closed" />
+            <TextView
+                style="@style/PrivateSpaceBulletPointTextFontStyle"
+                android:layout_toRightOf="@+id/lockIcon"
+                android:text="@string/privatespace_protected_lock_text"/>
+        </RelativeLayout>
+        <RelativeLayout
+            style="@style/PrivateSpaceSetupBulletPointLayoutStyle">
+            <ImageView
+                android:id="@+id/bellIcon"
+                style="@style/PrivateSpaceBulletPointIconStyle"
+                android:src="@drawable/ic_notifications" />
+            <TextView
+                style="@style/PrivateSpaceBulletPointTextFontStyle"
+                android:layout_toRightOf="@+id/bellIcon"
+                android:text="@string/privatespace_hidden_notifications_text"/>
+        </RelativeLayout>
+        <Space
+            android:layout_width="wrap_content"
+            android:layout_height="16dp"/>
+        <RelativeLayout
+            style="@style/PrivateSpaceSetupBulletPointLayoutStyle">
+            <ImageView
+                android:id="@+id/infoIcon"
+                style="@style/PrivateSpaceBulletPointIconStyle"
+                android:layout_width="18dp"
+                android:layout_height="18dp"
+                android:src="@drawable/ic_info_outline_24dp" />
+            <TextView
+                style="@style/PrivateSpaceBulletPointTextFontStyle"
+                android:textSize = "14sp"
+                android:layout_toRightOf="@+id/infoIcon"
+                android:text="@string/privatespace_apps_permission_text"/>
+        </RelativeLayout>
+    </LinearLayout>
+    </ScrollView>
+</com.google.android.setupdesign.GlifLayout>
diff --git a/res/layout/privatespace_setlock_screen.xml b/res/layout/privatespace_setlock_screen.xml
new file mode 100644
index 0000000..5caf4ae
--- /dev/null
+++ b/res/layout/privatespace_setlock_screen.xml
@@ -0,0 +1,43 @@
+<!--
+  ~ 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.
+  -->
+
+<com.google.android.setupdesign.GlifLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:id="@+id/ps_fragment_lock"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:filterTouchesWhenObscured="true"
+    app:sucHeaderText="@string/privatespace_lockscreen_title"
+    app:sudDescriptionText="@string/privatespace_lockscreen_summary"
+    android:icon="@drawable/ic_lock">
+    <com.google.android.setupdesign.view.FillContentLayout
+        style="@style/SudContentFrame"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:maxWidth="@dimen/animation_max_size"
+        android:maxHeight="@dimen/animation_max_size">
+
+        <ImageView
+            android:id="@+id/privatespace_lock_image"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:scaleType="fitCenter"
+            android:contentDescription="@null"
+            android:src="@drawable/privatespace_lock_placeholder"/>
+
+    </com.google.android.setupdesign.view.FillContentLayout>
+</com.google.android.setupdesign.GlifLayout>
\ No newline at end of file
diff --git a/res/layout/privatespace_setup_root.xml b/res/layout/privatespace_setup_root.xml
new file mode 100644
index 0000000..79d63ad
--- /dev/null
+++ b/res/layout/privatespace_setup_root.xml
@@ -0,0 +1,33 @@
+<?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.
+  -->
+
+<FrameLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:ignore="MergeRootFrame">
+
+    <androidx.fragment.app.FragmentContainerView
+        android:id="@+id/ps_nav_host_fragment"
+        android:name="androidx.navigation.fragment.NavHostFragment"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        app:defaultNavHost="true" />
+
+</FrameLayout>
\ No newline at end of file
diff --git a/res/layout/privatespace_setup_success.xml b/res/layout/privatespace_setup_success.xml
new file mode 100644
index 0000000..00b6fec
--- /dev/null
+++ b/res/layout/privatespace_setup_success.xml
@@ -0,0 +1,27 @@
+<!--
+  ~ 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.
+  -->
+
+<com.google.android.setupdesign.GlifLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:id="@+id/privatespace_setup_success"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:filterTouchesWhenObscured="true"
+    app:sucHeaderText="@string/privatespace_success_title"
+    app:sudDescriptionText="@string/privatespace_access_text"
+    android:icon="@drawable/ic_privatespace_done">
+</com.google.android.setupdesign.GlifLayout>
diff --git a/res/layout/switch_bar.xml b/res/layout/switch_bar.xml
deleted file mode 100644
index 3bdfbd4..0000000
--- a/res/layout/switch_bar.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2014, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge xmlns:android="http://schemas.android.com/apk/res/android">
-
-    <TextView
-        android:id="@+id/switch_text"
-        android:layout_height="wrap_content"
-        android:layout_width="0dp"
-        android:layout_weight="1"
-        android:layout_gravity="center_vertical"
-        android:maxLines="2"
-        android:ellipsize="end"
-        android:textAppearance="@style/TextAppearance.Switch"
-        android:textColor="?android:attr/textColorPrimaryInverse"
-        android:textAlignment="viewStart"/>
-
-    <ImageView
-        android:id="@+id/restricted_icon"
-        android:layout_width="@dimen/restricted_icon_size"
-        android:layout_height="@dimen/restricted_icon_size"
-        android:tint="?android:attr/colorAccent"
-        android:theme="@android:style/Theme.Material"
-        android:layout_gravity="center_vertical"
-        android:layout_marginEnd="@dimen/restricted_icon_margin_end"
-        android:visibility="gone" />
-
-    <com.android.settings.widget.ToggleSwitch
-        android:id="@+id/switch_widget"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center_vertical"
-        android:theme="@style/Widget.SwitchBar.Switch"/>
-
-</merge>
-
diff --git a/res/layout/vpn_dialog.xml b/res/layout/vpn_dialog.xml
index 892a176..062772e 100644
--- a/res/layout/vpn_dialog.xml
+++ b/res/layout/vpn_dialog.xml
@@ -66,25 +66,6 @@
                 <EditText style="@style/vpn_value"
                         android:id="@+id/server"/>
 
-                <CheckBox style="@style/vpn_value"
-                        android:id="@+id/mppe"
-                        android:text="@string/vpn_mppe"
-                        android:visibility="gone"/>
-
-                <LinearLayout android:id="@+id/l2tp"
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        android:orientation="vertical"
-                        android:visibility="gone">
-                    <TextView style="@style/vpn_label"
-                            android:text="@string/vpn_l2tp_secret"
-                            android:labelFor="@+id/l2tp_secret"/>
-                    <EditText style="@style/vpn_value"
-                            android:id="@+id/l2tp_secret"
-                            android:password="true"
-                            android:hint="@string/vpn_not_used"/>
-                </LinearLayout>
-
                 <LinearLayout android:id="@+id/options_ipsec_identity"
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
@@ -154,31 +135,6 @@
                     android:layout_height="wrap_content"
                     android:orientation="vertical"
                     android:visibility="gone">
-                <LinearLayout android:id="@+id/network_options"
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        android:orientation="vertical">
-                    <TextView style="@style/vpn_label"
-                            android:text="@string/vpn_search_domains"
-                            android:labelFor="@+id/search_domains"/>
-                    <EditText style="@style/vpn_value"
-                            android:id="@+id/search_domains"
-                            android:hint="@string/vpn_not_used"/>
-
-                    <TextView style="@style/vpn_label"
-                            android:text="@string/vpn_dns_servers"
-                            android:labelFor="@+id/dns_servers"/>
-                    <EditText style="@style/vpn_value"
-                            android:id="@+id/dns_servers"
-                            android:hint="@string/vpn_not_used"/>
-
-                    <TextView style="@style/vpn_label"
-                            android:text="@string/vpn_routes"
-                            android:labelFor="@+id/routes"/>
-                    <EditText style="@style/vpn_value"
-                            android:id="@+id/routes"
-                            android:hint="@string/vpn_not_used"/>
-                </LinearLayout>
 
                 <TextView android:id="@+id/vpn_proxy_settings_title"
                           style="@style/vpn_label"
diff --git a/res/navigation/privatespace_main_context_nav.xml b/res/navigation/privatespace_main_context_nav.xml
new file mode 100644
index 0000000..ffc63ec
--- /dev/null
+++ b/res/navigation/privatespace_main_context_nav.xml
@@ -0,0 +1,63 @@
+<?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.
+  -->
+
+<navigation xmlns:android="http://schemas.android.com/apk/res/android"
+            xmlns:app="http://schemas.android.com/apk/res-auto"
+            android:id="@+id/privatespace_main_context_nav"
+            app:startDestination="@id/ps_education_fragment">
+    <fragment android:id="@+id/ps_education_fragment"
+              android:name="com.android.settings.privatespace.PrivateSpaceEducation"
+              android:label="fragment_ps_education">
+        <action
+            android:id="@+id/action_education_to_auto_advance"
+            app:destination="@id/ps_auto_advance_fragment"/>
+    </fragment>
+    <fragment android:id="@+id/ps_auto_advance_fragment"
+              android:name="com.android.settings.privatespace.AutoAdvanceSetupFragment"
+              android:label="fragment_ps_auto_advance">
+        <action
+            android:id="@+id/action_advance_profile_error"
+            app:destination="@id/ps_profile_error_fragment"/>
+        <action
+            android:id="@+id/action_advance_login_error"
+            app:destination="@id/ps_account_error_fragment"/>
+    </fragment>
+    <fragment android:id="@+id/ps_profile_error_fragment"
+              android:name="com.android.settings.privatespace.PrivateProfileCreationError"
+              android:label="fragment_ps_error">
+        <action
+            android:id="@+id/action_retry_profile_creation"
+            app:destination="@id/ps_auto_advance_fragment"/>
+    </fragment>
+    <fragment android:id="@+id/ps_profile_success_fragment"
+              android:name="com.android.settings.privatespace.SetupSuccessFragment"
+              android:label="fragment_ps_success"/>
+    <fragment android:id="@+id/ps_account_error_fragment"
+              android:name="com.android.settings.privatespace.PrivateSpaceAccountLoginError"
+              android:label="fragment_account_error">
+        <action
+            android:id="@+id/action_advance_login_error"
+            app:destination="@id/ps_account_error_fragment"/>
+    </fragment>
+    <fragment android:id="@+id/ps_profile_lock_fragment"
+              android:name="com.android.settings.privatespace.PrivateSpaceSetLockFragment"
+              android:label="fragment_ps_lock"/>
+    <action android:id="@+id/action_success_fragment"
+            app:destination="@id/ps_profile_success_fragment"/>
+    <action android:id="@+id/action_set_lock_fragment"
+            app:destination="@id/ps_profile_lock_fragment"/>
+</navigation>
diff --git a/res/raw/lottie_privatespace_hide_placeholder.json b/res/raw/lottie_privatespace_hide_placeholder.json
new file mode 100644
index 0000000..9822b49
--- /dev/null
+++ b/res/raw/lottie_privatespace_hide_placeholder.json
@@ -0,0 +1 @@
+{"v":"5.5.2","fr":1,"ip":0,"op":12,"w":760,"h":554,"nm":"@forresto/movie-to-lottie","ddd":0,"assets":[{"id":"fr_0","w":760,"h":554,"u":"","p":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAIqAvgDASIAAhEBAxEB/8QAHAABAAIDAQEBAAAAAAAAAAAAAAYHAgMFBAEI/8QAShABAAECAgMKCA0CBQUAAwAAAAECAwQFBgcREhMhNlFSg5GhshQxQWFykrPRFRYXIjJTVFVxgZOxwSNCRWJzw+EkMzSC8EOi8f/EABYBAQEBAAAAAAAAAAAAAAAAAAABAv/EABoRAQEBAAMBAAAAAAAAAAAAAAARARIhQTH/2gAMAwEAAhEDEQA/APyoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPTl2BxOY4ujC4KzXev1z82imP/tkedY2W6t8Lg8NTidJMxptUxw1UW6oppp8011e4FYC068u1eWpimvFxVPLF25V+z54Fq6+0z6933LBVotLwLV19pn17vuPAtXX2mfXu+4gq0Wl4Fq6+0z6933HgWrr7TPr3fcQVaLS8C1dfaZ9e77jwLV19pn17vuIKtFpeBauvtM+vd9x4Fq6+0z6933EFWi0vAtXX2mfXu+48C1dfaZ9e77iCrRaXgWrr7TPr3fceBauvtM+vd9xBVotLwLV19pn17vuPAtXX2mfXu+4gq0Wl4Fq6+0z6933HgWrr7TPr3fcQVaLS8C1dfaZ9e77jwLV19pn17vuIKtFpeBauvtM+vd9x4Fq6+0z6933EFWi0vAtXX2mfXu+48C1dfaZ9e77iCrRaXgWrr7TPr3fceBauvtM+vd9xBVotW1kegWYTFrCY+LVc+Kd/mmf/wB+BxdJdXWOy21Xictu+HYemN1NMU7LlMfh/d+XUQQQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfaY2zsjbMy+O9oJhKcbpdllmuImnfd8mJ8u5iav4BYmBtYTV/orGLxFqLmaYiIiaZ8c1ePcbfJEeX/8Airs5zjHZziqsRmF+q7V/bTt2U0RyUx5ISnW/jq7+klvC7qd6w1mNlO3+6rhmerZ1IOuoxH18RQAAAAAAAAAAAAAAAAAAAAAAABLdC9MsXkWJos4muu/lszsqtVTtmiOWnk/BEgFja0dHsPbotZ7lcU+DYiY32KPo7ao2xXHmn9/xVytrRKuc21X5jg7+yubFF2ijyzGyN3T2/sqVdABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnVhx4y3pfZVIslOrDjxlvS+yqBt1qcdMX6FvuQiaWa1OOmL9C33IRE0fXwbMPZuYi7Fu1TNVUg1iQ4fIqIpicRcqqq5KeCHo+BcJza/WBFhKfgbCc2r1j4GwnNq9YEWEp+BsJzavWPgbCc2r1gRYSn4GwnNq9Y+BsJzavWBFhKfgbCc2r1j4GwnNq9YEWEp+BsJzavWPgbCc2r1gRYSn4GwnNq9Y+BsJzavWBFhKfgbCc2r1j4GwnNq9YEWEp+BsJzavWPgbCc2r1gRYSn4GwnNq9Y+BsJzavWBFhKfgbCc2r1nyrJcJMbIiuJ5YqBFx1Mwyi5hqarlqd8tx4+WHLAABbOrLiTmvSdxUy2dWXErNek7ipgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp1YceMt6X2VSLJTqw48Zb0vsqgbdanHTF+hb7kIil2tTjpi/Qt9yERASjIMLTawkXZj59zh2+byIumeW1RVgMPMeLe4jsB6AAAAAAAAAAAAAAAAAAAAAAJjbGyfEiWc4aMLjaqaOCiqN1THIlqO6TVROKtU+WKP5BxgAWzqx4lZr0ncVMtnVjxKzXpO4qZQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp1YceMt6X2VSLJTqw48Zb0vsqgbdanHTF+hb7kIil2tTjpi/Qt9yERAdzIcfTbjwa9VsiZ20TPi/BwwE7ESw2aYrDxuabm6p5tcbXo+HcVzLPqz7wSURr4dxXMs9U+8+HcVzLPVPvBJRGvh3Fcyz1T7z4dxXMs9U+8ElEa+HcVzLPVPvPh3Fcyz1T7wSURr4dxXMs9U+8+HcVzLPVPvBJRGvh3Fcyz1T7z4dxXMs9U+8ElEa+HcVzLPVPvPh3Fcyz1T7wSURr4dxXMs9U+8+HcVzLPVPvBJRGvh3Fcyz1T7z4dxXMs9U+8ElEa+HcVzLPVPvPh3Fcyz1T7wSURr4dxXMs9U+98qzzFTHBFqnzxTPvBIsRft4e1Ny7VFNMdqH43EVYrE13avLPBHJD5iMRdxFe6vXKq58/kagfAAWzqx4lZr0ncVMtnVjxKzXpO4qZQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp1YceMt6X2VSLJTqw48Zb0vsqgbdanHTF+hb7kIil2tTjpi/Qt9yERAAAGVFNVdUU0RNVU+KIjbMuvZ0azW7Ruows0x/nqimeqZBxh0cdk2YYGndYnDV00c6NlUdcOcAAAD3YDKcdj+HC4euunneKnrngB4R2rujGbW6JqnC7qOSmumZ6trkXbddquaLlNVFceOmqNkwDAAAGyxZu4i7FuxbquVz4qaY2yDWO3Rovm1dMVeDRG3yVXKYn93gx2W4zAz/wBXh67ccsxtjrjgB4wAAAB08HkWY4yiK7GFqmifFNUxTE/ht8bZidHc0w9E114WqqmPHuKoq7I4QcgfZjZOyfG+AAAtnVjxKzXpO4qZbOrHiVmvSdxUygAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTqw48Zb0vsqkWSnVhx4y3pfZVA261OOmL9C33IRFLtanHTF+hb7kIiA+xEzOyOGeR8dHR23TdzvBU1eLfYnq4f4BOtG8itZZh6bl2mKsXXG2qqf7fNDuAD5MRMTExExPklAtMskowVUYzCU7mxXOyqiPFTV5vMnzm6SWqbuRY2muOCLc1fnHD/AKqABI9EMlpzG/VfxMbcNamPm8+rk/BYdFNNFMU0UxTTEbIiI2RDjaHUU29H8NNMfT3VU+ed1LtAOTn+TWc1w1XBFGJpj5lzZw/hPmdYBTVyiq3cqoriYqpnZMT5Jhi7Gl1um3pDi6aOCJmmr85piZccG7CYe5i8TbsWY23LlW5haOT5Xh8rw1NuzTE3Jj59yY4apQvQS3Tczyaqo2zbtVVR+PBH8ysMH1hetW79qq3eoprt1RsmmqNsSzAVnpRk/wVjKd62zhru2aJnycsOLsWFp7RTVktNUx86i7GyfylXsAbEx0NyO3dtRj8XRFcTP9KiY4ODyyh63cvtU2svw1ujgpptUxHUD0AAjel2R28XhbmLw9ERibcTVVsj6ceX81eLnmNsbJ8SoMwt02sdibVEbKaLlVMfhEg84ALZ1Y8Ss16TuKmWzqx4lZr0ncVMoAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU6sOPGW9L7KpFkp1YceMt6X2VQNutTjpi/Qt9yERS7Wpx0xfoW+5CIgN+CxFWFxlnEUcM2q4r2cuyWgBcWGv28Th7d+zVurdyN1TLarPR/P72U1TbmN9w1XjomfF54S6xpXlVyjdXLtdqebVbmZ7NoO8j2muPpw2U1Yemr+tiJ3MRyU+Wf4/Npx+mGDtUVRg6a79ezgmYmmn3oRmGNv4/FVX8TXNdyrqiOSPMDzAAn+gmPpu5dVg6qv6lmZmmOWmZ2/v+6UKfweJu4PEUX8PXNFyidsTCbZbpjhrluKcdRVaueWqmN1TP8wCVMbldNq3VXcqimimNtVU+SHEvaV5Tbo20X67s82i3VE9sQimkGkd7NImzapmzhfLTt4avx9wOZm+L8OzLEYnh2XKtsbeTxR2PGAOpo1joy/N7N6udlqdtFc+af/on8loxO2NseJTSS5BpRdwNunD4umq9h6eCmYn51McnngFhDh29KcpqpiasRVRPNqt1beyHMzTTG1FFVGXW6qq/rK42RH4R5Qa9P8fTNNnA0TtqirfK/NwbIjtlDIZ3rtd+7Vcu1TXcqnbNUzwywgH1Z2i+Ppx2T2OH+raiLdcckx/wrF7MqzG/lmKi9h6vSpnxVRySC2RG8DpfgL1EeE7vD1+WJiao649zZidLcstUTNm5Xfq8kU0TH7g7GZ4y3gMBexN2eCiNsRyz5IVFcqmuuquqdtVUzMzyy6eeZ1iM3uxNz5lmn6FuJ4I8/nlywfAAW1qx4lZr0ncVKt/VNa8I0Ux9nbuYuXKqNuzbs207EB0z0ZvaNY61auXYv2b1M1W7kRuduzxxMeSY2x1qI8AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTqw48Zb0vsqkWSnVhx4y3pfZVA261OOmL9C33IRFLtanHTF+hb7kIiAAAPsRMzsh0sPkWZ4ijd2sHd3P+b5v7g5g9eMy7GYL/ysNctxyzHB1+J5AAAAerB4DFYydmFw9y7s8c008EfmDyjqXsgzSzRuq8Fc2f5dlX7OZVE0zMVRMTHjiQfAAAZUUVXK4ot0zVVPBEUxtmQYjq29Hs1uUbqnBXNnJVMUz1TO14cXhMRhK9xirNy1V/np2bQaAAAAB7cHlWOxsRVhsNcrpn+7ZsjrngbMVkmZYWmar+EuxTHjmmN1EdQOcAAAC5NTnF/E/wCvP7OZru/wXpv9t09TnF/E/wCvP7OZru/wXpv9tRVwCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlOrDjxlvS+yqRZKdWHHjLel9lUDbrU46Yv0LfchEUu1qcdMX6FvuQiIAOho/apv51gqK/ozdiZ8+zh/gE20ZyC1gMPbv4miK8XVG64Y/7fmjz+dIIfQGNyim5RNFymKqZ4JiY2xKvtLcipy6uMThYmMNXOyaeZPuWG5mktqm9kWNprjxW5rj8Y4f4BVYAO/opksZpiarl//wAW1MbrZ/dPIsWzat2LVNu1RTRRTGyKaY2RDkaHW6bej+GmmOGuaqqvPO6mP2iHaAcTSLIrWZ2Kq7dNNGLpjbTXEfS80u2ApmqmaappqiYqidkxPkfHY0ttU2dIMXTRGyJqir85iJntlxwbMPZrxF+3ZtRtuV1RTTHnWhkWTYfKsPEUUxXfmPn3J8c+aOSEN0EtU3M93VUbZt2qq4/Hgj+VjA+NWKw9nFWarWIt03LdXjpqhtAVfpLlM5TjooomarFyN1bqntifPDkLC09tU15PRcmPnUXY2T+MT/wr0BLdDsioxVPhuMo3VqJ2W6J8VU8s+ZElvZZapsZdhbdEbKabdMdgPTERERERERHkgAEV0uyG3dw9zHYOiKL1HzrlNMcFUeWfxQJc0xtjZPDCocfbps47EWqfo0XKqY/KQecAFw6oblNrRrGXLk7KKLs1VTyRFPCiGsvSTC5/jsLRgN1VhsNTVEXKo2bqqrZt2R49nzY8aT6suJWa/wDv3FTyqPgCKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTqw48Zb0vsqkWSnVhx4y3pfZVA261OOmL9C33IRFLtanHTF+hb7kIiA9GX4icJjrGIiNu9VxVs5dkvOAuSxdov2aLtqqKqK43VMx5YZq30d0iu5XG83aJvYWZ2xTt4aPw9yYWNJMqu0RV4VFH+WumYmAdhwdM8bThcmuW4n+pf+ZEeby9n7sMfpZl+HonweasTc8kURsj85n/lBc0zG/mWKqv4mrbPiimPFTHJAPGACwtBMbTeyucLM/1LFU8H+WZ2/vtSVUGAxl7A4mi/hq9zcp6pjknzJ3luluBv24jF7rD3fLtiZpn8JgEkfKqoopmqqYimI2zM+SHJu6R5Vbo3U4umrzURMzPYimkekteY0Th8LFVrDT9Lb9Kv8fMDkZ3i4x2a4nEx9Gur5v4RwR2Q8IA6+i2OpwGc2blydluvbbqnzT/zsWhEqYSrINKqsJapw+PpquWqY2U3KfpRHJPKCejlW9IcqrpiqMZREf5omP4czNNL8LZoqpwETfu+SqqJimOvhkHm1gY2nebGCpnbXNW+VbJ8URGyP3nqQltxV+5ir9d6/VNdyudszLUAtLRnG047J8PVFW2u3TFuuOSY4P8AlVro5Lm1/KcTvtjZVTP06J8VQLWHBwelWW36Im7cmxXPjprpn944GzFaTZXYomYxG+1c23TMzP8AAOlj8VbwWDu4m9PzLdO38fMqO7cqu3a7lf0qpmqfxl1tIM9vZtXFMRveGpnbTRt8c8suMAAC2dWXErNfxudxU8rY1ZcSs1/G53FTyo+AIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU6sOPGW9L7KpFkp1YceMt6X2VQNutTjpi/Qt9yERS7Wpx0xfoW+5CIgAAA9lnLMdfpiqzhMRXTP90W52dYPGN+JwuIw0xGIsXbUz4t3TNO3raAAAAbcPh72Jq3OHs3LtXJRTNU9gNQ9t3K8fapmq5gsRTTHlm3OyHiAAAB9iJmdkRwg+D3UZTmFdMVU4HEzE+Xe5eW9Zu2K9xet126uSumYkGsAAAAejDYPE4n/wAfD3bvoUTOxnicuxmGp3WIwt+3TzqqJiOsHkAAABbOrLiVmv8A79xU8rh1P0xXo5iqK4iqmq9MTExtiY2IxrWyLBZRjsFfy+1FijE01xVbp+jE07OGI8n0uxUQQBFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp1YceMt6X2VSLJTqw48Zb0vsqgbdanHTF+hb7kIil2tTjpi/Qt9yERAB78hs04jOcHarjbTNyJmOWI4dnYCY6MaO28NZoxONtxXiK42xTVHBRH4cqTgDXfs279qbd6im5RV46ao2wrzSrI/gy9TesbfBbk8ET/ZPIsdy9J7FN/IsZTVH0aJrjzTHD/AKsAB29GclnNsVM3JmnDW+GuY8vJELGwuGs4W1FrD26bduPFTTDk6GWabWj9iqmOG5NVVX47Zj9oh3AEe0k0es4+zXewtFNvFxwxs4Ir80+9IQFMzE0zMTGyY4Jh8dbSqzTYz/ABdFEbKZqirZ55iJn93JBssWq792i1apmquuYiIjyysvIciw+WWaaqqYuYqY+dcmPF5o5ER0Gs03c9iqr/8AFbqrj8eCP5WMA8+OwWHx1ibWKtU3KJ5fHH4T5HoAVZpDlVeU46bUzurVXDbr5Y97lrB0+s015RbuzHz7d2Nk+aYnb/CvgEo0SyCnHf8AV4ynbh4nZTRz59yLrcyqxThstw1mmNkUW4j89nCD026KLdEUW6aaKY4IppjZEMp4Y2T4gBD9LdHrcWa8bgaIoqp4blumOCY5YjyIQuaqmKqZpqjbExsmPMqDG2osYy/ajxW7lVPVOwGgAFyanOL+J/15/aHL12/4N03+26mpzi/if9ef2hy9dv8Ag3Tf7bXiKvAZUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnVhx4y3pfZVIslOrDjxlvS+yqBt1qcdMX6FvuQiKXa1OOmL9C33IREB6ctxPgeYYfEeOLdcVTHLG3heYBctuum5bprtzuqKoiqJjywyV5o5pLVl1EYfFU1XMNH0Zjx0f8ACZWM7yy9RFVGOsUxyV1xTPVIOi4emOMpwuS3aNv9S/8A06Y/fsZZhpLl2EomaL0X6/JTanbt/PxIDm+Z380xU3r07I8VNEeKmAeAAFh6DYym9lPg23+pYqmNnmmdsT+/UkipMsx9/LsXTfw9WyqOCYnxVRySn2W6T5fi6Ii7c8Gu+Wm54vynxA7r5MxETMzERDwXs6y21RNVWNw8xyU1xVPVCJaRaUTjLVeFwMVUWKo2VVzwTVHJHJAOJnuLjHZvicRR9CqrZT54iNkdkPAAOzoljKcFndmq5Oyi5E26p5Nvi7dizlMJjo/pXFq1Th8y3UxTsim9HDOzzx/IJsPBRnGW10RVGOw0RPLciJ6pc3M9K8FhqKqcLV4Te8kU8FMT559wPHrAxlNOFsYOJjfKq98qjkiImI/fsQVvxuKvY3E138RXNdyudsz/AA0ALV0dxlONyfD3KZ21U0xRX6UcE+/81VOpkOcXspxO6o+fZr4LlufFMcv4gtMcjBaRZZiqInwmizVPjpuzudn5+Jnis+yzDUTVVjLVfmtVbuZ6ge7GYi3hMLdxF6dlu3TNUqiv3JvXrlyr6VdU1T+cu1pHpBczaYtWom3haZ2xT5ap5Z9zhA+AAuTU5xfxP+vP7Q5eu3/Bum/23U1OcX8T/rz+0OXrt/wbpv8Aba8RV4DKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU6sOPGW9L7KpFkp1YceMt6X2VQNutTjpi/Qt9yERS7Wpx0xfoW+5CIgAAA32cJiL8bbNi7cjloomQaBndtV2qtzdoqoq5Ko2SwAAABlboruVRTbpqqqnyUxtkGI9F3B4mzTur2HvW6eWqiYh5wAAAAB6LeCxV2jdW8Nfrp5abczDTVTNNU01RMVR44kGIAAAA2WbN2/VubNuu5VyUUzMsr2Gv2P+/Zu29vPomn9waQAAAXJqc4v4n/Xn9oczXb/AIN03+26GqO5TZ0Yxt2udlFu5NUz5ohDNYek1nSLG4bwSi5GFw1NUU1XNkTVNWzbOzyeKFREQEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnVhx4y3pfZVIslOrDjxlvS+yqBt1qcdMX6FvuQiKXa1OOmL9C33IREAHuySxTis3wlmuNtFVyN1HLHjkEs0Y0atU2aMXmNEV3K9lVFurxUx545UtiIpiIpiIiPFEQPoNGLwljGWpt4m1Rco5Ko8SutJ8kqynEU1W5mrDXJ+bM+OJ5JWY5OlWHpxGRYqKo4aKd8ieSY4QVaADr6OZPVm2MmmZ3Ni3w3Kv4jzrGwGBw2As73hbNNunliOGfxnyuZoVh6bWQ2q4j516qquqfz2R2Q72wGP5I1pHo3ZxVmvEYG3FvE08M0Uxsiv8uVJ9gCmJjZMxPjfHV0osU4fPsXbojZTNUV7PSiJ/lygZW6KrlymiiJqqqmKYiPLMrG0f0cw+X2qbmJopvYqeGZmNsUeaPei2hFim/ntE1Rt3qiquPx4I/lZADx5lluFzGzNGKtRVPkq/up/CXsAVTnmWXMqx1Vi586ifnUV86HOT/T+xTXldq9s+fbuRET5pjh/aEAASTRXIIzGucRionwWidkU+Ldz7kbW5lGHjC5XhbFMbNxbjb+Pjnt2g34exaw1uLdi3RbojxU0xshlcopuUTRcpiqmeCYmNsSyAQnSvRy3Zs1YzL6NzRTw3LceSOWPchy5blFNy3VRXG2mqNkxywqDF2t4xV6zt273XVRt/CdgNIALa1Y8Ss16TuKmWzqx4lZr0ncVKoAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU6sOPGW9L7KpFkp1YceMt6X2VQNutTjpi/Qt9yERS7Wpx0xfoW+5CIgPXlWJjCZlhsRP0bdyJn8PL2PIAuamqmummqid1TVG2JjyskB0Z0ljBWqcLjt1NiOCiuOGafNs8sJlYzPBX7cV2sXZqpn/ADxt6gexxdL8XGFyS/Ez867G90x+Pj7Nrbj8/wAvwVuaq8RRcr8lFud1M9Xi/NX+eZtezbF75c+bap4LduPFTHvBzAAWNoPi6b2S02I+nYqmmY80zMxP79SRKmyjMr2V4um/Ynb5KqJ8VUciwct0iy/HURsvU2bnlt3Z3M9fikHYfJl5ruY4K1RNV3FWKY89cIjpJpTTftV4bLZq3FW2K7s8G2OSPeDgaQ4unG5zir9udtFVWymeWIjZE9jnADt6H4unCZ5amudlF2JtTP4+LtiFmKZjgngTfR/Su3NmmxmlU03Kfmxd2bYmPOCXjzW8fhLlO6oxViqnli5Dm5ppLgMDRO93IxF3yU252x+c+IHO1gYumjBWMJE/1K693MclMf8AM9iCPVmOMu4/F14i/O2uqfJ4ojkh5QFraP4unG5PhbtM7ZiiKao5Ko4JVS7Ojud3covTwb5h6/p0fzHnBZw52BzrL8ZRE2sTbirmVzuao/KWzE5rgcNRNV7FWafNFW2eqOEHpxN6jD2Ll67Oyiimapn8FQYi5N6/cu1eOuqap/OXf0m0inMo8HwsVUYWJ2zM8E1z5/MjgAALa1Y8Ss16TuKlW1qx4lZr0ncVKoAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU6sOPGW9L7KpFkp1YceMt6X2VQNutTjpi/Qt9yERS7Wpx0xfoW+5CIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAtrVjxKzXpO4qVbWrHiVmvSdxUqgAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTqw48Zb0vsqkWSnVhx4y3pfZVA261OOmL9C33IRFLtanHTF+hb7kIiAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2tWPErNek7ipVtaseJWa9J3FSqACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlOrDjxlvS+yqRZKdWHHjLel9lUDbrU46Yv0LfchEUu1qcdMX6FvuQiIAAAAAAAAAAAAAAAAAAAAAAAAAAAALa1Y8Ss16TuKlW1qx4lZr0ncVKoAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU6sOPGW9L7KpFkp1YceMt6X2VQNutTjpi/Qt9yERS7Wpx0xfoW+5CIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAtrVjxKzXpO4qVbWrHiVmvSdxUqgAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTqw48Zb0vsqkWSnVhx4y3pfZVA261OOmL9C33IRFLtanHTF+hb7kIiAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2tWPErNek7ipVtaseJWa9J3FSqACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlOrDjxlvS+yqRZKdWHHjLel9lUDbrU46Yv0LfchEUu1qcdMX6FvuQiIAAAAAAAAAAAAAAAAAAAAAAAAAAAALa1Y8Ss16TuKlW1qx4lZr0ncVKoAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU6sOPGW9L7KpFkp1YceMt6X2VQNutTjpi/Qt9yERS7Wpx0xfoW+5CIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAtrVjxKzXpO4qVbWrHiVmvSdxUqgAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTqw48Zb0vsqkWSnVhx4y3pfZVA261OOmL9C33IRFLtanHTF+hb7kIiAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2tWPErNek7ipVtaseJWa9J3FSqACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlOrDjxlvS+yqRZKdWHHjLel9lUDbrU46Yv0LfchEUu1qcdMX6FvuQiIAAAAAAAAAAAAAAAAAAAAAAAAAAAALa1Y8Ss16TuKlW1qx4lZr0ncVKoAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU6sOPGW9L7KpFkp1YceMt6X2VQNutTjpi/Qt9yERS7Wpx0xfoW+5CIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAtrVjxKzXpO4qVbWrHiVmvSdxUqgAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTqw48Zb0vsqkWSnVhx4y3pfZVA261OOmL9C33IRFLtanHTF+hb7kIiAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2tWPErNek7ipVtaseJWa9J3FSqACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlGrOqKdN8tmqdkf1I67dUIu9mUY2vLs0wuMt8NVi5Tc2cuyfECSa1qaqdMsTVVGyK7duafPG5iP4lD1q60MrjOcqwWkGWxvlFNr+puY2zvc8MT+UzO38fMqpd+gAgAAAAAAAAAAAAAAAAAAAAAAAAA24axdxWIt2MPbquXrlUU0UUxtmZkFqatdtrQTN7tyNluJu8P4UcP7qmW5pLuNEtXlrKqa6ZxmKpm3Vuf7pnhrn8Iidn5wqNdABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABNdAtMpyP/AKHMIqu5bXPkjbNqZ8cxHljlj/6ZFmmguV59bnH6M42xbivhmiPnW9v5cNP4bOpVD0YPGYnBXd9weIu2LnOt1zTPYCW3dWuf0VbKYwtcctN3g7Yhh8nGkH1WH/Whyo0uz+P8VxU/jVtZfG/P/vXE9ce4HT+TjSD6rD/rQfJxpB9Vh/1ocz435/8AeuJ649x8b8/+9cT1x7gdP5ONIPqsP+tB8nGkH1WH/WhzPjfn/wB64nrj3Hxvz/71xPXHuB0/k40g+qw/60HycaQfVYf9aHM+N+f/AHrieuPcfG/P/vXE9ce4HT+TjSD6rD/rQfJxpB9Vh/1ocz435/8AeuJ649x8b8/+9cT1x7gdP5ONIPqsP+tB8nGkH1WH/WhzPjfn/wB64nrj3Hxvz/71xPXHuB0/k40g+qw/60HycaQfVYf9aHM+N+f/AHrieuPcfG/P/vXE9ce4HT+TjSD6rD/rQfJxpB9Vh/1ocz435/8AeuJ649x8b8/+9cT1x7gdP5ONIPqsP+tB8nGkH1WH/WhzPjfn/wB64nrj3Hxvz/71xPXHuB0/k40g+qw/60HycaQfVYf9aHM+N+f/AHrieuPcfG/P/vXE9ce4HT+TjSD6rD/rQfJxpB9Vh/1ocz435/8AeuJ649x8b8/+9cT1x7gdP5ONIPqsP+tB8nGkH1WH/WhzPjfn/wB64nrj3Hxvz/71xPXHuB0/k40g+qw/60PvycaQfVYf9aHL+N+f/euJ649x8b8/+9cT1x7gd3Casc6u1xGIvYSxR5Zmuap/KIj+UmsYXR7V/YqvX704rNJp+bHBvk+amn+yPPP/AAri/pTnl+3NFzNcXuZ8cU3Jp/Zxq66q6pqrmaqp8czO2ZVHT0jzvFZ9mdeLxc/5aKI8VFPkiHKfXxFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbZsXI/t7WM2q48cdrdVVVuvHPW+VTPLLPJY1b3VydpvdXJ2tm6nlk3U8srSNW4q5O03FXJ2s91PLJup5ZKRhuKuTtNxVydrPdTyybqeWSkYbirk7TcVcnaz3U8sm6nlkpGG4q5O03FXJ2s91PLJup5ZKRhuKuTtfYtVz4o7WW6nllnRVPLPWUjDeLnN7TeLnN7WzdVcs9ZuquWespGveLnN7TeLnN7WzdVcs9ZuquWespGveLnN7TeLnN7WzdVcs9ZuquWespGveLnN7TeLnN7WzdVcs9ZuquWespGveLnN7TeLnN7WzdVcs9ZuquWespGveLnN7TeLnN7WzdVcs9ZuquWespGveLnN7TeLnN7WzdVcs9ZuquWespGveLnN7TeLnN7WzdVcs9ZuquWespGveLnN7TeLnN7WzdVcs9ZuquWespGveLnN7TeLnN7WzdVcs9ZuquWespGveLnN7TeLnN7WzdVcs9ZuquWespGveLnN7TeLnN7WzdVcs9ZuquWespGveLnN7TeLnN7WzdVcs9ZuquWespGveLnN7TeLnN7WzdVcs9ZuquWespGveLnN7TeLnN7WzdVcs9ZuquWespGveLnN7TeLnN7WzdVcs9ZuquWespGveLnN7TeLnN7WzdVcs9ZuquWespGveLnN7TeLnN7WzdVcs9ZuquWespGveLnN7TeLnN7WzdVcs9ZuquWespGveLnN7TeLnN7WzdVcs9ZuquWespGveLnN7TeLnN7WzdVcs9ZuquWespGveLnN7TeLnN7WzdVcs9ZuquWespGveLnN7TeLnN7WzdVcs9ZuquWespGveLnN7TeLnN7WzdVcs9ZuquWespGmu3VRG2qGDfcqnllriZ5VzsjHYbH3bPKbZ5VhHzYbH3bPKbZ5SEIpmZ2R42W83Ob2vlMzuo4ZbN1Vzp6yEY7xc5vbBvFzm9sM91Vzp6zdVc6eshGG8XOb2wbxc5vbDPdVc6es3VXOnrIRhvFzm9sG8XOb2wz3VXOnrN1Vzp6yEYbxc5vbBvFzm9sM91Vzp6zdVc6eshGG8XOb2wbxc5vbDPdVc6es3VXOnrIRhvFzm9sG8XOb2wz3VXOnrN1Vzp6yEYbxc5vbBvFzm9sM91Vzp6zdVc6eshGG8XOb2wbxc5vbDPdVc6es3VXOnrIRhvFzm9sG8XOb2wz3VXOnrN1Vzp6yEYbxc5vbBvFzm9sM91Vzp6zdVc6eshGG8XOb2wbxc5vbDPdVc6etluqudPWQjV4Pc5vbD74Pd5vbDbu6udPWyprq509ZCNMYS9P9nbA9VuqrnT1iEf/9k=","e":1},{"id":"fr_1","w":760,"h":554,"u":"","p":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAIqAvgDASIAAhEBAxEB/8QAHAABAAIDAQEBAAAAAAAAAAAAAAYHAwQFAgEI/8QAShABAAECAwEKCQsDAgYBBQAAAAECAwQFEQcGEhMhMTZRUnKhQWFxg5GSsrPRFBUWFyJUVYGTosEyQrEjwzVFYnN0wuEzNEPw8f/EABkBAQEBAQEBAAAAAAAAAAAAAAABAgQFA//EACERAQEBAAICAgIDAAAAAAAAAAARAQQxAkEDBRIhExRR/9oADAMBAAIRAxEAPwD8qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADZy7A4nMcXbwuCs13r9c6U0Ux3+KPGsbLtm+FwmGjE7pMxptUxx1UW6oopp8tdXwXMorAWlXl+zy1O9qxUVTHhi7cq1/OOJ5+R7OvvP77vwIlVeLQ+R7OvvP77vwPkezr7z++78CFVeLQ+R7OvvP77vwPkezr7z++78CFVeLQ+R7OvvP77vwPkezr7z++78CFVeLQ+R7OvvP77vwPkezr7z++78CFVeLQ+R7OvvP77vwPkezr7z++78CFVeLQ+R7OvvP77vwPkezr7z++78CFVeLQ+R7OvvP77vwPkezr7z++78CFVeLQ+R7OvvP77vwPkezr7z++78CFVeLQ+R7OvvP77vwPkezr7z++78CFVeLQ+R7OvvP77vwPkezr7z++78CFVeLQ+R7OvvP77vwPkezr7z++78CFVeLQ+R7OvvP77vwPkezr7z++78CFVeLUt5HuCzDS3hcfFq5PFE8PNM/vcbdNs6x2W2asTllz5dhqY300xTpcpjyf3fl6CKggCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+xEzMRETMzyRD4724TCU43ddllmuImnheEmJ8O9iav/UFh4C1g9n25WMXibUXM1xMRE08kzVPHvPFTHh//AIq7Os4x2c4ucRmF+q7X/bHJTRHRTHghKtr+Nrv7pbeF308HhrMRFP8A1Vccz6N76EFXf8ABAAAAAAAAAAAAAAAAAAAAAAAAASzcXuxxeRYm3ZxFdd/LZnSq1VOs246aejyck96JgLF2o7n7FFFrPsr3s4bETHCxR/TrVxxXHinw+PTpV0tnchXOcbMMywV+d9Nim7bo18GkRXT6JnuVMugAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTsx58Zb533VaLJTsx58Zb533VYMm1Pnpi+xb9iESS3anz0xfYt+xCJLoAyYezcxF2LdqnfVSgxiQ4fIrcUxOIuVVVdFHFDY+ZcH1a/WBFhKfmXB9Wv1j5lwfVr9YEWEp+ZcH1a/WPmXB9Wv1gRYSn5lwfVr9Y+ZcH1a/WBFhKfmXB9Wv1j5lwfVr9YEWEp+ZcH1a/WPmXB9Wv1gRYSn5lwfVr9Y+ZcH1a/WBFhKfmXB9Wv1j5lwfVr9YEWEp+ZcH1a/WPmXB9Wv1gRYSn5lwfVr9Y+ZcH1a/WBFhKfmXB9Wv1nyrJMJMcUXI8cVAi46uYZRcw1E3LVXCW45eLjhygAAWtst5nZ126/dwqla2y3mdnXbr93CqVABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnZjz4y3zvuq0WSnZjz4y3zvuqwZNqfPTF9i37EIklu1Pnpi+xb9iESXQSjIcNFnBxdmPt3ePyR4EXTLLaoqy/DzHJwcR6IQbIAAAAAAAAAAAAAAACa7ndnuY5rhaMTibtGCsVxrRv6ZqrmOne8XF5ZcfcPgbeY7q8uw9+IqtzcmuqJ5J3tM1afnosXdnj71zMq8JvppsWoj7MTxVTMROs+l6n1nA/t+X76cXM5X8Hj+u0YzzZtmOBw9V7AX6MdTTGs0RRvK/yjWdfTqgkxpOk8q29yuYXsNmdmzFVVVm7VvaqNeLj8KF7ScHawW67F02Kd7Rdim7pHgmqOPv1n83R9p9X48TPy8Hy4XN359/HyRgB4b0hEs4w0YbG1U0RpRVG+pjoS1HN0tUTirVMcsUcfpBxwAWtst5nZ126/dwqla2y3mdnXbr93CqV0AEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKdmPPjLfO+6rRZKdmPPjLfO+6rBk2p89MX2LfsQiSW7U+emL7Fv2IRJdB3Mgx9NuPk16dImdaJnk8jhiCdiJYbNMVh6Yppub6mPBXxtj59xXUs+rPxBJRGvn3FdSz6s/E+fcV1LPqz8QSURr59xXUs+rPxPn3FdSz6s/EElEa+fcV1LPqz8T59xXUs+rPxBJRGvn3FdSz6s/E+fcV1LPqz8QSURr59xXUs+rPxPn3FdSz6s/EElEa+fcV1LPqz8T59xXUs+rPxBJRGvn3FdSz6s/E+fcV1LPqz8QTHJ8fcyvNMNjbMa12K4riNdNemPzXFdsZfutw9GOyvE003t7EV0VcsT0VRyxL82fPuK6ln1Z+L3a3Q421VvrU26KumnWJ/y7uFzvLieV8XNyONnz5NfpDD5fgtzVucyzXGW/sRO9jTw+LwzKpd0ubV53nWJx1UTTTcnSiif7aY4oj0IVe3RY69O+uzRXV01az/LH8+4rqWfVn4vrzvsvPl5mbkxjjcTx+DbiSiNfPuK6ln1Z+L5VnmKmNIi1Hjimfi8x2JDiL9vD2puXat7THeiGMxFWKxNd2ri308UdEPOIxF3EV769XVXPg18DEAAC1tlvM7Ou3X7uFUrW2W8zs67dfu4VSugAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTsx58Zb533VaLJTsx58Zb533VYMm1Pnpi+xb9iESS3anz0xfYt+xCJLoAIA9UU1V1RTRTNVU8UREazLr2NzWa3qIqjCzTE9eqKZ9EzqDjDoY7JswwNO+xOGrpo60aVRH5w54AAAN7AZTjsfGuFw9ddPW5KfTPEDRHau7mM2t0TV8l30R1a6Zn0auRct12q5ouUVUVxxTTVGkwDwAADJYs3cRdi3Yt13Lk8lNMayDGO3RuXzaqjffJojxTcp1/y0MdluMwE6YvD124nkmY1ifzjiBpgAAADp4LIsyxlEV2MLXvJ5KqpimJ9PKyYnc5mmHomuvC1VUx1JirujjByB9mJiZiY0mHwAAFrbLeZ2dduv3cKpWtst5nZ126/dwqldABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnZjz4y3zvuq0WSnZjz4y3zvuqwZNqfPTF9i37EIklu1Pnpi+xb9iESXQfYiZnSOOZfHR3PW6bueYKivjp4WJ9HGgnW5rI7eWYam5dpirGVxrVV1fFDuAD5MRMTExExPLEoFuyySjBV04zCUxTYrnSuiOSmrxeKU+c3dJapu5FjaauSLc1fnHHH+AVUACRbkMlpzK/XfxMa4a1Om969XR5FiUU00UxTRTFNMRpERGkQ42463Tb3PYaaeWvfVT4530u0A5O6DJrOa4Wr7MU4mmPsXI5fJPidYBTVyiq3cqoriaa6ZmJifBMPLsbrrdNvdFjIp4omaavzmmJlxwZsJh7mKxNqxZjW5cqimFo5NleHyvCxbs0xNcx9u5McdUoXuDtU3M8mqqOO3aqqp8usR/MrEAeL1q3ftVW71FNduqNJpqjWJewFZbqMo+asbHBazhrus0a+DphxVh7vbdNWS0VzpvqLsaT5YmFeAJluMyO3dtxj8ZRFcTP8ApUVRxcX90oat/LrdNnL8Nbo/ppt0xHoBsAAjW67I7eLwtzF4aiKcTbjfVaR/XHh/NXq5/LyKgx9umzjsTbo/pouVUx5IkGuAC1tlvM7Ou3X7uFUrW2W8zs67dfu4VSugAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTsx58Zb533VaLJTsx58Zb533VYMm1Pnpi+xb9iESS3anz0xfYt+xCJLoM+BxFWExljEU8c2q4r06dJYBBcWGv28Th7d6zVFVuuN9Esqssgz+/lMzbmnhcNM6zbmdNJ6YlL7G6vKrlETcu12Z6tduZ/wAag7yPbtsfThspqw8THC4j7MR0U+Gf4/NgzDdhg7VExg6K79zwTMb2mPTxoTmGNv4/FVX8TXvrlXoiOiAawAJ9uDx9N3L6sHVVEXLMzVTHTTM6/wCdUpU/g8VeweIov4euaLlE6xMJtlu7HDXKIpx9uqzc8NVEb6mf5gEqebtyi1bquXKopopjWqZ5IhxL26vKaKJqov13Z6tNurXviEU3Qbo72aUzZtU8Dhurrx1eWf4BzM3xfy7MsRidNIuV6x5OSO7RpgDqbmsdGX5xYvXJ0tT9iufFPh/xP5LSiYmImJiYnwwplJcg3UXcBbpw+Lpm9h6eKmY/qpj+YBYQ4dG6rKaqImrEVUT1Zt1ax6IczNN2NqmiqjLrdVdc8XCXI0iPJHhBj2gY+mabGBonWqJ4SvxcWkR3yhb3eu137td29XNdyqdaqp5Zl4AWhuWx9OOyezx/6tqmLdceOOSfzhV7dyrMsRlmKi9hqvFVTPJVHRILaEbwW6/AXqI+Uxcw9fh1pmqPymPgyYrdbllqjW1Xcv1eCmmiY/zoDrZnjLeAwN3E3ZjSiNYjrT4IVJcrm5XVXVOtVUzMz43Tz3OsRm16JufYs0/0WqZ4o8c9MuUAAC1tlvM7Ou3X7uFUrb2RWvlG5jNLM1b2Ll6qjXo1oiEF3Zbmb25rHW7Vy7F+zepmq3cine66csTHTHF6V9CPAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7MefGW+d91WiyU7MefGW+d91WDJtT56YvsW/YhEkt2p89MX2LfsQiS6ACAPsRrOkcrpYfIszxFG+t4O7vZ5N9pTr6dAcwbeMy3GYLjxWHuW45N9NPF6eRqAAAA2sHgMVjJmMLh7l3Tlmmnij8wao6l7IM0s0b6vBXNP+nSr/AA5lVM01TFUTExxTEg+AAA9UUVXK4ot0zVVPFERGsyDyOrb3PZrco31OCuRH/VMUz6Jlo4rCYjCV73E2blqrwb+mY1BgAAAAG9g8qx2NiKsNhbtdM8lWmkemeJ7xWSZjhaN9ewl2KY5ZpjfRHl0BzgAAAXBsY/4Fjv8Ayf8A1hobbv8Akvnv9tv7GP8AgWO/8n/1hobbv+S+e/22vSKuAZUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnZjz4y3zvuq0WSnZjz4y3zvuqwZNqfPTF9i37EIklu1Pnpi+xb9iESXQfXx0Nz9qm/nWCt1/0zdiZjp04/4QTbcxkFrAYejEYiiK8XVGvHH/ANPxR40hAHmuim5RNNymKqZjSaZjWJV9uuyOnLrkYnCxMYa5Ok09Sr4LDczdLZpvZFjaav7bc1x5Y4/4BVYAO9uUyWM0xNVy/r8ltf1af3T0LGs2rdm1Tbs0U0W6Y0immNIhx9xtqm3uew80xGtc1VVeOd9Mf4iHbAcTdFkVnM7FVdumKMZTGtNccW+8Uu2ApqumaK6qaomKonSYnwS8uvustU2d0GMpoiIiaoq/OaYme+XIBkw9mvEX7dm1G+uXKoppjxys/Ismw+VYeIopiu/MfbuzHHM+LohDtwlqm5nsVVctu1VXHl4o/lYoDFisPZxVmq1iLdNy3VyxVDKAq/dJlM5Tjt5TM1WLkb63VPfH5OQsLd7apryai5P9Vu7Gk+WJiVegJbuOyGjE0xjsbRvrWuluieSrTwz4kSW9llmmxl2GtURERRbpjuBsRERERERER4IfQBFN12QW7uHuY3B0RReojfXKaY4q48M+VA1zTETExPHEqhx9qLGNxFqnkouVUx5IkGuAC3djtym1udzG5cnSii/NVU6ckRRCKbSt0mFz/HYWjAb6rDYamrS5VGm/mrTXSJ49PsxypHsu5m5326/dwqpr0gAyoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlOzHnxlvnfdVoslOzHnxlvnfdVgybU+emL7Fv2IRJLdqfPTF9i37EIkug2MvxE4THWMRHHwdcVadOktcQXJYu0X7NF21VFVuuIqpmPDD2rfc7uju5XHA3qZu4XXXexPHT5PgmFjdJlV6jX5VFE9WumYmAdhwN2mNpwuTXLWv+riPsUx4vDPo/y85husy/D0T8nqqxNzwRTExH5zP8ILmmYX8yxVV/E1azPFFMclMdEA0wAWDuExtN7K5wszHCWKp4ummZ119OqTKhwGMvYDFUX8NXvblPomOiU6y3dbgb9ERi9cNd8OsTNM+SYBJHyuqmiiqquYimmNZmfBDk3t0eVWqN9OLpq8VMTM/wCET3RbprmY0Th8LTVaw0/1TP8AVX5eiAcnOsXGOzXE4mP6a6/s+SOKO6IaIA6+5bG04DObNy5OluvW3XPRE/8AzotBTCV5BuqqwlqjD5hTVctU8VNynjqpjonpBPByaN0WVV0b6MZREdExMT/hzc13X4Wzbqpy+Jv3Z4oqmJimP5kGvtAxtPA2MFTOtc1cLX4o44j/ADPoQhlxV+7ir9d6/XNdyudZmWIBaW5nG047J8PVE6126Yt1x0THx5VWujkubYjKcTwljSqirirtzyVQC1hwcFuqy3EURN25Vh6/DTcif8xxMmK3TZXYomYxHC1eCm3TMzP8A6WPxVvBYO7iL06UW6dfL0QqO7XVduV3K51qqmap8sutugz6/m1cU6cFh6Z1ptxPLPTLjAAAtXZdzNzvt1+7hVS1dl3M3O+3X7uFVLvQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7MefGW+d91WiyU7MefGW+d91WDJtT56YvsW/YhEkt2p89MX2LfsQiS6ACADcs5Zjr9O+s4TEV0zyVRbnSfzBpjPicLiMNOmIsXbUzyb+iadfSwAAAAy4fD3sTXvcPZuXauiimap7gYhu3cqx9qiarmCxFNMcszbnSGkAAAD7ETMxERrMg+DeoynMK6d9TgsTNPTwc8bVvWbtiveXrdduvq10zE94MYAAAA2MNgsViv8A7bD3rseGaKJnR6xGX4zDU76/hb9unrVW5iPSDVAAABauy7mbnfbr93CqlvbGqaa8gx9NdMVU1YiYmJjWJjeQjm1fIsFlGOwV/L7VNijFU1763RxUxNOnHEeDXfcniX0iCAIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlOzHnxlvnfdVoslOzHnxlvnfdVgybU+emL7Fv2IRJLdqfPTF9i37EIkugDfyGxTiM5wdqvjpm5EzHTEcencgmO5fc7aw1i3isbbivE1Rvqaao4qI8nSk4Ax37Nu/aqt3qKblurlpqjWJV5uryOMrvU3sPEzhbk6Rr/ZPQsdy909inEZFjKav7aJrjy08f8AqwAHb3MZLObYqZuTNOGtaTXMcs+KFj4XDWcLZi1hrdNu3HJFMORuMs02tz9iqmPtXJqrq8usx/iIdwBHt0m56zj7Nd7DUU28XHHxRpFfinx+NIQFMzE0zMTExMcUxL4626qzTY3QYyiiNKZqiv85iJnvlyQe7Nqu9dotWqZqrrmKaYjwzKy8gyLD5XZpqqppuYqY+1cmOTxR0QiW4axTez2Kqv/xW6q48vFH8rGAa+OwWHx1ibWKtU3KJ5NeWPHE+BsAKr3QZVXlONm1M761VG+t19MfFzFg7vrNNeUW7sx9u3djSfFMTr/CvgEo3I5BRj4nF4ynXD0zpRR15+CLrdyqzThstwtmmNIot0x+enGDYt0U26Iot0000RxRTEaRD1MRMTExrEgCHbrdz1uLFeOwNEUVUcdy3THFMdMQhK5qqYqpmmqImmY0mJ8Kn8baixjL9mOS3cqo9E6AwgAuPY5zfxP8A3/4c3bdyZL57/bdLY5zfxP8A3/4c3bdyZL57/bazpPargGVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp2Y8+Mt877qtFkp2Y8+Mt877qsGTanz0xfYt+xCJJbtT56YvsW/YhEl0G1lmJ+SZhh8R4LdyKp8mvG1RBctuum5bprt1RVRVETTMeGHpXm5vdLVl1EYbFxVcw39sx/VR8YTKxnmWX6N9TjbFMdFdUUz6J0B0XD3Y4ynC5Jdo1/1L/wDp0x/nufcw3TZdhKJ3l6MRc8FNqddfz5ECzjM7+a4ub1+dIjioojkpgGgACw9wuMpvZR8n1/1LFUxp4pnWJ759CSKkyvML+W4unEYerSqOKaZ5Ko6JT7Ld1GX4uiOFuRhrvhpucn5TyA7r5MxETMzERHLMtC9nWWWqJqqx2HmI6tcVT6IRLdHuonGWqsNgIqosVcVdyeKao6I6IBxM+xdOOzfFYij+iqrSnxxEaR3Q0AB2dyWMpwWd2arkxFu5E26pnwa8nfos5TCY7n91dNq1Th8z30xTGlN6OOdPHH8gmw0KM5y2uiKox2GiJ61yIn0S5mabq8DhaKqcLV8pveCKf6Y8s/AGntAxlNOFsYOJ+3VVwlUdERrEd89yDM+NxV7G4mu/iK99crnWZ/iGABau5zGU43J8NcidaqaYorjoqji/+fzVU6mQ5xeynEzVb+3Zr/rtzPL446JBaY5GC3R5ZiqIn5TTZq8NN37Mx+c8TJis+yzDUb6rGWq/Fbq38z6AbuMxFGEwt3EXZ0ot0zVKor9ybt6u5V/VXVNU+WXZ3R7oLmazFq1TNrC0zrFM8tU9M/BwgAAXHsc5v4n/AL/8Obtu5Ml89/tulsc5v4n/AL/8Obtu5Ml89/ttZ0ntVwDKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7MefGW+d91WiyU7MefGW+d91WDJtT56YvsW/YhEkt2p89MX2LfsQiS6ACADPZwmIvxrYsXbkdNFEz/AIBgHu7artVb27RVRV0VRpLwAAAD1boruVRTbpqqqnwUxrIPI2L2DxNmnfXsPet09NdExDXAAAAAGxbwWKuUb+3hr9dHWptzMMNVNVFU01RNNUcsTGgPIAAAAyWbN2/VvbNuu5V0UUzL1fw1+xpw9m5b169Mx/kGEAAAFwbGP+BY7/yf/WGhtu/5L57/AG25seu02dzmZXbmu8ovzVVpGvFFESiG0TdNZ3RY7Dxg6K6cLhqaoomuNKqpq01nTwckL6REQEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnZjz4y3zvuq0WSnZjz4y3zvuqwZNqfPTF9i37EIklu1Pnpi+xb9iESXQBvZHYpxWb4SzXGtFVyN9HTHLKCWbl9zdqixRi8woiu5XG+otVRxUx4NY6UspiKaYimIiI5Ih9AYcXhbGMtTbxNqi7RPgqjkV1unySrKb9NduZqwtyfsTPLTPRKy3J3U4enEZDi4qiNaKeEpnomOP4gq4AHX3OZPXm2LmmZmnD2+O5XH+I8ax8DgcNgbUW8Lapt0+HSOOfLPhcvcXYps5DZriPtXaqq6vTpHdDugTx8qMbpNzVnE2a8RgLcW8TTGs0UxpFf5dKTgKZmNJ0l8dXdRYpw2fYy3RGlM1RVp5Yif5coHq3RVcuU0W6ZqrqmIiI8MrG3P7nMPl9qm5iaKbuLnjmZ44o8UfFF9xGHpv57RVXETwVFVyNenij+VjgNPMstwuY2poxVqmqdOKuOKqnyS3AFUZ5llzKsdVYuTvqJ+1RXp/VDnrA3f2Ka8qtXtPt27kRr4pjj/hX4CSblMgjMqpxOK1jC0TpFMcW/n4I2tvKMPThcrwtmmP6bca+XTj7wbGHsWsPbi3Yt026I5KaY0h6ropuUTTcpiqmeKYmNYl6AQjdZuct2LVWNy+ne0U8dy1HJEdMfBD1y10U3KKqK4iaao0mJ8MKgxdrgMVes668HXVRr5J0BhABauy3mdnXbr93Cqlq7LeZudduv3cKqX0ACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlOzHnxlvnfdVoslOzHnxlvnfdVgybU+emL7Fv2IRJLdqfPTF9i37EIkug28qxMYTMsNiJ/pt3ImfJrx9zUEFzUVRXTFVMxNMxrEx4YfUC3M7powVqnC47fTYp4qLkcc0R0THhhMsPmWCxFG+s4uxVHbjX0A23F3X4unC5HfiZ+3ejg6Y6deXu1Zswz7LsFRM14ii5XHJRbnfTPo5PzV/nubXs2xXCXI3tqniotxPFTHxBzAAWNuGxVN/JabOv27FU0zHimZmJ759CQqmyjMr+V4uL9jj8FVE8lUdCwsu3Q5djbcTw9Nm54aLs72Y8k8kg641buY4KzRvrmLsUx47kIluk3UU37VeFy2Z3lXFXdni1joj4g4G6DFU43OcVfo46Kq9KZ6YiNInuc4Advcfi6cJnlrhJiKLsTamZ8GvJ3xCzFMxxTrCb5BurtzaosZnVNNdPFF7TWJ8vjBLxrUY/B3Kd9RirFVPTFyHMzXdLgMFbqi3dpxF7wUW51j855IBobQMXTRgrGFif9S5Xv5j/AKY1/me5A2zmONvZhi68RiKta6vREdENYBa+QYunG5RhrtMxMxRFNXiqjilVDsbnc7uZReqje8Jh65+3R/MeMFnjnYLO8vxlETaxVuKp/srne1R+UsmJzXAYaiar2Ls0+KKomfRHGDZxN6jDYe5euzpRbpmqZ8SoMRdm9fuXav6q6pqn851d/dNuinM4+T4amqjCxOs68tfl8SOAAAtXZbzNzrt1+7hVS1dlvM3Ou3X7uFVLvQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7MefGW+d91WiyU7MefGW+d91WDJtT56YvsW/YhEkt2p89MX2LfsQiS6ACAAAAAAAAAAAAAAAAAAAAAAAAAAC1dlvM3Ou3X7uFVLV2W8zc67dfu4VUu9AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTsx58Zb533VaLJTsx58Zb533VYMm1Pnpi+xb9iESS3anz0xfYt+xCJLoAIAAAAAAAAAAAAAAAAAAAAAAAAAALV2W8zc67dfu4VUtXZbzNzrt1+7hVS70ACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlOzHnxlvnfdVoslOzHnxlvnfdVgybU+emL7Fv2IRJLdqfPTF9i37EIkugAgAAAAAAAAAAAAAAAAAAAAAAAAAAtXZbzNzrt1+7hVS1dlvM3Ou3X7uFVLvQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7MefGW+d91WiyU7MefGW+d91WDJtT56YvsW/YhEkt2p89MX2LfsQiS6ACAAAAAAAAAAAAAAAAAAAAAAAAAAC1dlvM3Ou3X7uFVLV2W8zc67dfu4VUu9AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTsx58Zb533VaLJTsx58Zb533VYMm1Pnpi+xb9iESS3anz0xfYt+xCJLoAIAAAAAAAAAAAAAAAAAAAAAAAAAALV2W8zc67dfu4VUtXZbzNzrt1+7hVS70ACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlOzHnxlvnfdVoslOzHnxlvnfdVgybU+emL7Fv2IRJLdqfPTF9i37EIkugAgAAAAAAAAAAAAAAAAAAAAAAAAAAtXZbzNzrt1+7hVS1dlvM3Ou3X7uFVLvQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7MefGW+d91WiyU7MefGW+d91WDJtT56YvsW/YhEkt2p89MX2LfsQiS6ACAAAAAAAAAAAAAAAAAAAAAAAAAAC1dlvM3Ou3X7uFVLV2W8zc67dfu4VUu9AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTsx58Zb533VaLJTsx58Zb533VYMm1Pnpi+xb9iESS3anz0xfYt+xCJLoAIAAAAAAAAAAAAAAAAAAAAAAAAAALV2W8zc67dfu4VUtXZbzNzrt1+7hVS70ACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlOzHnxlvnfdVoslOzHnxlvnfdVgybU+emL7Fv2IRJLdqfPTF9i37EIkugAgAAAAAAAAAAAAAAAAAAAAAAAAAAtXZbzNzrt1+7hVS1dlvM3Ou3X7uFVLvQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7MefGW+d91WiyU7MefGW+d91WDJtT56YvsW/YhEkt2p89MX2LfsQiS6ACAAAAAAAAAAAAAAAAAAAAAAAAAAC1dlvM3Ou3X7uFVLV2W8zc67dfu4VUu9AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTsx58Zb533VaLJTsx58Zb533VYMm1Pnpi+xb9iESS3anz0xfYt+xCJLoAIAAAAAAAAAAAAAAAAAAAAAAAAAALV2W8zc67dfu4VUtXZbzNzrt1+7hVS70ACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlGzOqKd2+WTVOka3I9NuqEXbeUY2vLc0wuMtxrVYuU3NOnSeOPz5ASTarRVTuyxM1RpFVu3MeON7EfxKILV2nZXTnOU4PdBln+rRTajhN7HHNueOJ/KZnXy+JVS6YAIAAAAAAAAAAAAAAAAAAAAAAAAAMuGw93FYi3Yw9uq5euVRTRRTGszMgtHZnE2tw2dXq+KjfXZ18luNVUrc3S8HuR2eWsqprpnGYqmbc6f3TPHcnyaTp+cKkUfAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE13Bbs6sjn5FmEVXctrnXi45tTPLMR4Y6Y//AGZFmm4TK8+onH7mcdZtxXxzbj7VvX8uOnyd0KobGDxmJwV3hcHiLti51rVc0z3LUS65s0z6mqaaZwlfjpu8XfDz9W2f9TC/rQ5FO63Pqf8AmuKny16vX0wz/wDFMT6xVdT6t8/6mF/Wg+rfP+phf1ocr6XZ9+KYn1j6XZ9+KYn1ijq/Vvn/AFML+tB9W+f9TC/rQ5X0uz78UxPrH0uz78UxPrFHV+rfP+phf1oPq3z/AKmF/Whyvpdn34pifWPpdn34pifWKOr9W+f9TC/rQfVvn/Uwv60OV9Ls+/FMT6x9Ls+/FMT6xR1fq3z/AKmF/Wg+rfP+phf1ocr6XZ9+KYn1j6XZ9+KYn1ijq/Vvn/Uwv60H1b5/1ML+tDlfS7PvxTE+sfS7PvxTE+sUdX6t8/6mF/Wg+rfP+phf1ocr6XZ9+KYn1j6XZ9+KYn1ijq/Vvn/Uwv60H1b5/wBTC/rQ5X0uz78UxPrH0uz78UxPrFHV+rfP+phf1oPq3z/qYX9aHK+l2ffimJ9Y+l2ffimJ9Yo6v1b5/wBTC/rQfVvn/Uwv60OV9Ls+/FMT6x9Ls+/FMT6xR1fq3z/qYX9aD6t8/wCphf1ocr6XZ9+KYn1j6XZ9+KYn1ijq/Vvn/Uwv60H1b5/1ML+tDlfS7PvxTE+sfS7PvxTE+sUd3B7Mc5u1x8pvYTD0eGd/NU/lER/KT2MNue2fWKr1+98qzSaZiI4uEnxRT/bHjnv5Fb391OeX7c0XM1xe9nlim5NOvoceuqquqaq5mqqeOZmdZk/Q6e6PO8Vn+Z14zGTETP2aLcclFPgiHKBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlmxcjlp73ngq+jvZq6qteWfS8az0yix44Oro7zg6uh7mZ6ZfNZ6SkeN5V0G8q6HvWek1npKR43lXQbyroe9Z6TWekpHjeVdBvKuh71npNZ6SkeN5V0G8q6HvWek1npKR43lXQ+xarnkpetZ6Xu3M8fHJSMfA3Or3nA3Or3s2s9Mms9MlRh4G51e84G51e9m1npk1npkow8Dc6vecDc6vezaz0yaz0yUYeBudXvOBudXvZtZ6ZNZ6ZKMPA3Or3nA3Or3s2s9Mms9MlGHgbnV7zgbnV72bWemTWemSjDwNzq95wNzq97NrPTJrPTJRh4G51e84G51e9m1npk1npkow8Dc6vecDc6vezaz0yaz0yUYeBudXvOBudXvZtZ6ZNZ6ZKMPA3Or3nA3Or3s2s9Mms9MlGHgbnV7zgbnV72bWemTWemSjDwNzq95wNzq97NrPTJrPTJRh4G51e84G51e9m1npk1npkow8Dc6vecDc6vezaz0yaz0yUYeBudXvOBudXvZtZ6ZNZ6ZKMPA3Or3nA3Or3s2s9Mms9MlGHgbnV7zgbnV72bWemTWemSjDwNzq95wNzq97NrPTJrPTJRh4G51e84G51e9m1npk1npkow8Dc6vecDc6vezaz0yaz0yUYeBudXvOBudXvZtZ6ZNZ6ZKMPA3Or3nA3Or3s2s9Mms9MlGHgbnV7zgbnV72bWemTWemSjBVarpjWqNHnSWa7M72OPwsS4lfNJNJfRYV80k0l9CFIpmZ0jle+AudXvfKP6o8rNrPTKaVh4G51e84G51e9m1npk1nplKrDwNzq95wNzq97NrPTJrPTJRh4G51e84G51e9m1npk1npkow8Dc6vecDc6vezaz0yaz0yUYeBudXvOBudXvZtZ6ZNZ6ZKMPA3Or3nA3Or3s2s9Mms9MlGHgbnV7zgbnV72bWemTWemSjDwNzq95wNzq97NrPTJrPTJRh4G51e84G51e9m1npk1npkow8Dc6ve+8Bc6vey6z0yaz0yUYuAudXvg4C51e+GaJnpl91npkowfJ7vU74ffk13qd8M8VT0y+xVPTPpKMMYS9PJR3wNq3VVryz6Qo//2Q==","e":1},{"id":"fr_2","w":760,"h":554,"u":"","p":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAIqAvgDASIAAhEBAxEB/8QAHAABAAIDAQEBAAAAAAAAAAAAAAYHAwQFAQII/8QATxABAAECAwEKCgYHBgMJAQAAAAECAwQFEQYHEhMWITZRUpLRFDFBVHKDkaGysxVTYYGT4SI1VXFzgrEyQkXBw9IjdMIXMzRioqPT8PFE/8QAGwEBAQEBAQEBAQAAAAAAAAAAAAECAwQFBgf/xAAmEQEAAgIABgMAAgMAAAAAAAAAARECAwQSEyExUhRBkQVRMkJx/9oADAMBAAIRAxEAPwD8qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADZy/A4nMcXbwuCs13r9c6U00x7/ALI+1YuW7m+FwmGjE7SZjTZpjlqot1RRTT9k11dyxFisRaVeX7nlqd5Vi4qmPLF25Vr98cj58D3OvOZ7d3uKS1Xi0PA9zrzme3d7jwPc685nt3e4otV4tDwPc685nt3e48D3OvOZ7d3uKLVeLQ8D3OvOZ7d3uPA9zrzme3d7ii1Xi0PA9zrzme3d7jwPc685nt3e4otV4tDwPc685nt3e48D3OvOZ7d3uKLVeLQ8D3OvOZ7d3uPA9zrzme3d7ii1Xi0PA9zrzme3d7jwPc685nt3e4otV4tDwPc685nt3e48D3OvOZ7d3uKLVeLQ8D3OvOZ7d3uPA9zrzme3d7ii1Xi0PA9zrzme3d7jwPc685nt3e4otV4tDwPc685nt3e48D3OvOZ7d3uKLVeLQ8D3OvOZ7d3uPA9zrzme3d7ii1Xi1LeR7BZhpbwuYRauTyRPDzTP/rhxtptzrG5bZqxOWXfDsPTGs0xTpcpj93977vYUWgg9nkeIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9iJmYiImZnkiIeO9sJhKcbtdldmuImnheEmJ8u9iav+kFh4C1g9z7ZSMXibVNzNcTERNPlmqeWKNfJTHl/wDxV2dZxjs5xc4jML9V2v8Au0+KmiOimPJCV7r+Orv7S0YXfTwWGtU6U/8Amq5Zn2b32IIs/wBIAIoAAAAAAAAAAAAAAAAAAAAAAAAlmxe2WLyHE27OIuV38tqnSq1VOs246aej93in3omAsXdQ2fsUUWs+yuKZw2ImOFij+zrVy01x9k+X7dOlXS2dkK/pjcwzLB35302KbtujX7KYrp9kz7lTLIAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7mPPjLfW/KrRZKdzHnxlvrflVgybqfPTGehb+CESS3dT56Yz0LfwQiSz5AGTD2bmIuxbtU76qUGMSHDZFbimJxFyqqrop5IbH0Lg+rX2gRYSn6FwfVr7R9C4Pq19oEWEp+hcH1a+0fQuD6tfaBFhKfoXB9WvtH0Lg+rX2gRYSn6FwfVr7R9C4Pq19oEWEp+hcH1a+0fQuD6tfaBFhKfoXB9WvtH0Lg+rX2gRYSn6FwfVr7R9C4Pq19oEWEp+hcH1a+0fQuD6tfaBFhKfoXB9WvtH0Lg+rX2gRYSn6FwfVr7TyrJMJMaRFyPtioEXHVzDKLmHpm5aqm5bjx8nLDlAAAtXcu5m516Vfy4VUtXcu5m516dfy4VUoAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7mPPjLfW/KrRZKdzHnxlvrflVgybqfPTGehb+CESS3dT56Yz0LfwQiSz5BKMgw0WcJF2Y/wCJc5deiPIi6ZZbVFWAw8x4uDiPZCDdw9m5icRasWad9duVRRRTrprMzpEMbobO84Ms/wCatfHDngAAAAAAAAAAAAAAAAAAAAIlnOGjC42qmiNKKo31MdCWo5tLVE4q1THjijWfaDjgAtXcu5m516dfy4VUtXcu5m516dfy4VUoAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7mPPjLfW/KrRZKdzHnxlvrflVgybqfPTGehb+CESS3dT56Yz0LfwQiSz5B28gx9NuPBr06RM60TPi/c4ggnYiWGzTFYemKabm+pjyVxq2Pp3FdSz2Z7wSURr6dxXUs9me8+ncV1LPZnvBJRGvp3FdSz2Z7z6dxXUs9me8ElEa+ncV1LPZnvPp3FdSz2Z7wSURr6dxXUs9me8+ncV1LPZnvBJRGvp3FdSz2Z7z6dxXUs9me8ElEa+ncV1LPZnvPp3FdSz2Z7wSURr6dxXUs9me8+ncV1LPZnvBJRGvp3FdSz2Z7z6dxXUs9me8ElEa+ncV1LPZnvPp3FdSz2Z7wSURr6dxXUs9me95VnmLmNIi1T9sUz3gkWIv28Pam5dqimmPeh+MxFWKxNd2rk308kdEPMRiLuIr316ua5+3yMIAALV3LuZudenX8uFVLV3LuZudenX8uFVKACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlO5jz4y31vyq0WSncx58Zb635VYMm6nz0xnoW/ghEkt3U+emM9C38EIks+QAQAAAAAAAAAAAAAAAAAAAAAAAAAAWruXczc69Ov5cKqWruXczc69Ov5cKqUAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKdzHnxlvrflVoslO5jz4y31vyqwZN1PnpjPQt/BCJJbup89MZ6Fv4IRJZ8gAgAAAAAAAAAAAAAAAAAAAAAAAAAAtXcu5m516dfy4VUtXcu5m516dfy4VUoAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7mPPjLfW/KrRZKdzHnxlvrflVgybqfPTGehb+CESS3dT56Yz0LfwQiSz5ABAAAAAAAAAAAAAAAAAAAAAAAAAABau5dzNzr06/lwqpbe5FZ8I2YzSzM73hL1VGvRrREILtlsze2ax1uzXei/ZvUzVbuRTvddPHEx0xye1foR4BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASncx58Zb635VaLJTuY8+Mt9b8qsGTdT56Yz0LfwQiSW7qfPTGehb+CESWfIAIAAAAAAAAAAAAAAAAAAAAAAAAAALg3GP1Fjv+Z/6YaG7d/gvrv9Nv7jH6ix3/M/9MNDdu/wX13+m19J9quAZUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASncx58Zb635VaLJTuY8+Mt9b8qsGTdT56Yz0LfwQiSW7qfPTGehb+CESWfIAIAAAAAAAAAAAAAAAAAAAAAAAAAALd3HblNnZ3MblydKKL81VT0RFEIpulbS4XaDHYWjAb6rDYamrS5VTvd/VVprpE8un6MeNJNy3mdnXp1/LhVK/QAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7mPPjLfW/KrRZKdzHnxlvrflVgybqfPTGehb+CESS3dT56Yz0LfwQiSz5ABAAAAAAAAAAAAAAAAAAAAAAAAAABau5dzNzr06/lwqpau5dzNzr06/lwqpQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp3MefGW+t+VWiyU7mPPjLfW/KrBk3U+emM9C38EIklu6nz0xnoW/ghElnyACAAAAAAAAAAAAAAAAAAAAAAAAAAC1ty3mdnXp1/LhVK39xqmmvZ/H010xVTViJiYmNYmN5CN7q+RYLKMdgr+X2qbFGKpr31ujkpiqnTliPJrvvF9i/QggCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlO5jz4y31vyq0WSncx58Zb635VYMm6nz0xnoW/ghEkt3U+emM9C38EIks+QAQAAAAAAAAAAAAAAAAAAAAAAAAAAXHuOc38T/H/yc3du/wAF9f8A6bpbjnN/E/x/8nN3bv8ABfX/AOm1HhFXAMqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTuY8+Mt9b8qtFkp3MefGW+t+VWDJup89MZ6Fv4IRJLd1PnpjPQt/BCJLPkAEAAAAAAAAAAAAAAAAAAAAAAAAAAFx7jnN/E/x/wDJzd27/BfX/wCm6W45zfxP8f8Ayc3du/wX1/8AptR4RVwDKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7mPPjLfW/KrRZKdzHnxlvrflVgybqfPTGehb+CESS3dT56Yz0LfwQiSz5ABAAAAAAAAAAAAAAAAAAAAAAAAAABcG4x+osd/zP/TDQ3bv8F9d/ptzceu02dm8yu3Nd5RfmqrSNZ0iiJQ/dE2ns7R47Dxg6K6cLhqaoom5GlVU1aazp5PFC/SfaJAIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlO5jz4y31vyq0WSncx58Zb635VYMm6nz0xnoW/ghEkt3U+emM9C38EIks+QAQAAAAAAAAAAAAAAAAAAAAAAAAAAWruXczc69Ov5cKqWruXczc69Ov5cKqUAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKdzHnxlvrflVoslO5jz4y31vyqwZN1PnpjPQt/BCJJbup89MZ6Fv4IRJZ8gAgAAAAAAAAAAAAAAAAAAAAAAAAAAtXcu5m516dfy4VUtXcu5m516dfy4VUoAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7mPPjLfW/KrRZKdzHnxlvrflVgybqfPTGehb+CESS3dT56Yz0LfwQiSz5ABAAAAAAAAAAAAAAAAAAAAAAAAAABau5dzNzr06/lwqpau5dzNzr06/lwqpQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp3MefGW+t+VWiyU7mPPjLfW/KrBk3U+emM9C38EIklu6nz0xnoW/ghElnyACAAAAAAAAAAAAAAAAAAAAAAAAAAC1dy7mbnXp1/LhVS1dy7mbnXp1/LhVSgAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTuY8+Mt9b8qtFkp3MefGW+t+VWDv7fZLTjtqcXeqvTROlEaRTr/chHuLNvzqrsfmnG1fODFfyfBDlNTDNo5xZt+dVdj8zizb86q7H5pGIlo5xYo85q7H5nFm35zV2PzT7KNl8xzOzF61RRas1f2a7s6b790csuhxEzLzjB9ur/a7Y8Ntyi8cZmP+MztwiamVY8WKPOaux+ZxYo85q7H5rP4iZn9fg+1V/tOImZ/X4PtVf7Wvib/Sfxnr4e0Kw4sUec1dj8zixR5zV2PzWfxEzP6/B9qr/acRMz+vwfaq/wBp8Tf6T+HXw9oVhxYo85q7H5veLFHnNXY/NZ3ETM/r8H2qv9pxEzP6/B9qr/afE3+k/h18PaFY8WbfnNXY/N5xYo85q7H5rN4jZn5xgu3X/tYcVsVmlizVconD35pjXeW6533viD4m70n8Ovh7QrjixR5zV2PzOLFHnNXY/NI66KrddVFymaaqZ0mJ5JiXXybZ3MM2o4TD0U0WfFFy5O9iZ+zyy4468sp5Yju6TnERcygvFmjzmrsfmcWaPOaux+azuImZ/X4Pt1f7TiJmf1+D7dX+12+Jv9J/GOvr9oVjxZt+c1dj83vFm35zV2PzWZVsNmcROl7BzPRFdX+1HsxwGJy3EzYxlqq3cjljXxTHTE+WGM+H2YReWMxC47ccpqJRTizb85q7H5vOLFHnNXY/NOtmdnMz2mx84TKMPN65TG+rqmd7TRHTVM8kf1lOo3EdpdOXGZRH77tz/wCN5s9uvXNZZRDtGOWXiFF8WLfnNXY/M4sUec1dj810ZruO7UYDCVX7cYLG72JmbeGu1TXp9kVU06/ujlV3XTVRVVTVE01UzpMTGkxJhtwz/wAZiUyxyx8wjnFm3p/4mrsfm84sUec1dj81sbK7me0O0eApxuHtWMJhK41t3cVXNMVx0xERM6fbpp0O7/2IbS+fZP8AjXf/AI0y36sZqcoXkynvEKK4sUec1dj8zixR5zV2PzWXthsLnmylNNzM7FFeFqq3tOIsVb+3r0TyRMffEIu3hnjnF4zbMxlj2lHOLFHnNXY/M4sUec1dj80jeNM3LsbCYSMBs7nWGprmuN7NzfTGnjomNP8A0qeXXsx+qs6/gx8NalCWoAEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASncx58Zb635VaLJTuY8+Mt9b8qsE22r5wYr+T4KXKdXavnBiv5PgpcpqWBny+3Rex+GtXZ0t13aaap+yZjVgP3EIvKmmKaYppiIpiNIiPI9QXJ9uKKMNRazOzdquUxEcLb0nffbMTpyujx3yrq4rsR3v2PD8boy1xWUQ+Ht0bIynslIi3HfKuriuxHecd8q6uK7Ed7t8vR7x+ufR2espSItx3yrq4rsR3nHfKuriuxHefL0e8fp0dnrKUvEX475V1cV2I7zjvlXVxXYjvPl6PeP06Oz1lKHqLcd8q6uK7Ed7DitusDRanwXD4i7c8kVxFMe3Wf6E8XoiL54/VjRsn/WUf3QbNq1n++tRETctU116dbWY/pELKwlq3h8LZtWIiLVFEU06dGimMwxl7MMZcxOJq1u3J1nTxR0RCVbP7ZRg8JRhsxtXLtNuN7Rct6TVp5ImJ/q+Nw/GaI4rLOe0T9vft0bOjGP9LCl4i/HfK+piuxHecd8q6mK7Ed77Py9HvH68HR2espQiW6RZt1ZRYvTEcLReimmfLpMTrHuhkq24yuKZmm3iqp6N5Heh20ufXc7v0TNPBYe3/Yt66/fM9Ly8bxmjo5RzRNu3D6NnPE1S/wDcGwmGsbn9i/Yinh8ReuVXpiOXWKppiJn0YifvWK/Lu5nuhYnY2u7hrticVll+rf12oq0qoq0031Pk8URrE+PSPEtSjdr2YqpiZs5pTPRNmjk9lb+XfyHC7p2zlETMS/WcPtw5KmaWc/OG6bleAndksYare0YfGXsNOJiI0ima5iKp++OX700zfdvye3ha/orAY3EYmY/R4eKbdET9sxMz92n3qKzjNMXm+bYnMcddmvFX69/VVHJy+SI6IiNIj9zp/G8Ltx2c+UVDPE7cJxqO79n0UU26KaKKaaaKYiKaaY0iIjyQ9Ulslu1WbOX2sNtJhMTcxFumKPCcPpVwn21UzMaT0zEzr0QkH/bTsx9Vmf4FP+54t/Cb8c5vGZdsN2E4x3TXbHCYfG7K5tYxlNNVirC3Jq18mlMzE/dMRP3Px0tfdF3Wqs/yy7leR4a9hcJeje3r16Yi5XT1YiJmIifLyzrHIqh9b+L0bNUTOfa3l4rZjnMRi9AfWeNIdmf1XnX8GPhrUouvZn9V51/Bj4a1KEtQAIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlO5jz4y31vyq0WSncx58Zb635VYJttXzgxX8nwUuU6u1fODFfyfBS5TUsPaaaq6oppiaqp5IiI1mW9GT5jMaxhLv3w6uxFmivF4i7VTE126YimejXXX+iZLEWirsRh72Gr3mItV26uiqNHxat13bkUW6aq658VNMazKdbXWaLmS3blUfp2ppqpno1mIn+rn7DWaN7ib00xNzWKYnohJhXCjJsxmNfA7vsad+zdsXJov26rdcf3ao0laaO7bWqKsut3ZpjhKbkRFX2TE8jXKiHWLNy/ci3Zt1XK58VNMay3PobMfM7vsSXYmzRTl129ERwldzezP2REcnvlIkjEVXct12q6qLtFVFdPJNNUaTD3D4e9ibm8w9uu5X0UxqlO3Nqjg8Ld3v/ABNZo1+zxt7Y61RRk9NymnSu5VM1T06TpBXcRScmzGI18Eu+xo10VUVTTXTNNUTpMTGkwtVD9ubNFOIwt6mNK7lNVNU9Ommn9ScaEfwuFv4qqacPZruTHj3sa6NirKMwppmZwd7SOiNU02Zs0Wslw+8piJrjfVT0zq6hGIqmqJpmYmNJjxxLPhcHicXr4NYuXNPHNMaxH3uvtpZot5pbropiJuW4qq08s6zGqWZNZosZXhaLcaRwdNU/bMxrMld6EDuZRmFumaqsJe0jx6U6tFayv9q7NFnOrvB0xTFURVMR0zHKTjStHC4HFYqnfYfD3LlPi31NPJ7WS9leOs25ruYW7FEeOd7rosbDWaMPh7dm3ERRRTERDIcqKobWGy/F4qjf2MPcro60RyNnN7FujP71mine25uxyR5NdNf6rDt0U26KaKIimmmNIiPFEEQqtcRlmNw9ubl7DXaKI8dW95I/e1FrTETGkxrE+OFeRhbUbSeDaa2fCN7vfs33iJika9jLcbftxXZwt2qifFVveSXzicvxmFo3+Iw12ijrTTye1ZsRERERGkR4ofNy3Tdt1UXKYqoqjSYnywvKWqsfV+iLd65RTrpTVMR7XywqQ7M/qvOv4MfDWpRdezP6rzr+DHw1qUJagARQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKdzHnxlvrflVoslO5jz4y31vyqwTbavnBiv5Pgpcp1dq+cGK/k+ClympYSDYzF2sPjb1q7VFM3aYimZ8WseT3psql9xfvRGkXbkR0RVKxIm22GLtWsrrw81RN27MaU68sRExOvuc7YnF2rdV/D3KopuVzFVGv97phF5mZnWZmZnxzIX3RayM7a4u1GEt4WKom9NcVzTHkiInxonGIvRGkXrmnpSxzyzrPLK8wmGxWLt+CXMLNURdiua4iZ8cTEdyTKp8U6xySyeEXtNJvXNPSlIyEl22xVqucPh6KoquUTNVURP9n7J+1vbHYq1XlsYeKoi9bqmZp8sxM66oRPKRMxOsTMT0wl97FrIZtri7V/FWLNqqKpsxVvpjyTOnJ7nAm/emNJu3Jj0pY1nJU+2WxVq/lVq3RVHCWo3tVPljl8bsKqpqmmdaZmJ6Yl9VX71VMxVduTE+SapWJSnY2uxVrE5nTFmqKqbVG8mqJ5JnWZSvIcXaxeWWJtVRNVFEUV0+WmYjRXL2iqqidaKppnpidEvuLVmYiJmZ0iPHKvNpcVbxeb3a7FW+oiIpiqPFOjn13rtcaV3K6o6JqmXwTlarOwGLt43C0XrNUTFUcsR/dnolnrrpt0TVXVFNMRrMzOkQqyiuu3OtFdVM9MToV3btcaV3K6o6JmZWJRu5pi6L2dXsTb5bfCRMfbEf/iwsNiLWKsUXrFcV26o1iYVc+qLldv8A7uuqnXx72dEiVWjeu0WbdVy7VTRRTGs1VTpEK8jGUTn3hkxPB8Pwn273XuaNd25ciN/crq0606vkmRalq5Ret03LVUV0VRrFUTyS+MViLWFsV3r9cU26Y1mZVhRcuW/+7rrp16s6FdddyYmuuqrTrTqvMher4S7XXEab6qZ0+98gwqQ7M/qvOv4MfDWpRdezP6rzr+DHw1qUJagARQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKdzHnxlvrflVoslO5jz4y31vyqwTbavnBiv5Pgpcp1dq+cGK/k+ClympYAEEzyjZzCeBW7mMom7duUxVMb6YinXycjcr2cyuqiYjDzTM/3ouVax7ZdHBTrg7ExyxwdP9GZ0iEVnmmDqwOYXcNM7/ezyT0xPLCXYHZnBW8PTGLoqvXpjWqd/MRE9EaODtRMRtDcnXkjea+yE8Su4417ZvLa7dVNFmbdU+KqmuqZj2yhV/CXLOYV4SZibkV7yJ8k8vIs5AMfMcaa+X/+in+sEwJJhtmsvt2aab1uq9c8tc1TGv3RL3E7NZfcs1U2bdVmvTkriuZ0n90y7QtQKxtYS5czCnBzpFybnBz9k66Sm1nZvLaLdNNdmq5VHjqqrqiZ9ko1hZidrpmJ5JxVXxSnqRBLg4/ZnBXcPVGFomzeiNaZiqZiZ6J1RHLMHVjsfaw0Tvd9PLPREcsrMQPZiY4w2+Xx7/T7eSSYElo2cyymiImxNcx/em5VrPslp5vs3hPA7leDom1dopmqI30zFWnk5UjYcZyYO/r9XV/RaFe5JgJzLH02ZqmmiImquY8cRH/2Exp2cyuKYicNMz0zcq5fej+xMxGa3dZ8dmdO1Sm6RBKLZ/s/hbWCrv4KmbVVuNZp30zFUfe4uz2WRmeMmi5VNNqiN9Xp45+xNc8nTJ8Z/Cq/ojmw3/jMT6Ef1KHb4u5X5r/7lXe4+0mQ2MLg5xWCiaIomN/RMzMaTOmsa8qXOZtNMRkeK1nyR8ULQimzWVUZnfuVX5mLNrTWI8dUz5Eo4u5X5r/7lXe5mws/8LGR9tP+aUpECF7TZJZwNqnE4TWm3NW9qomddOiYR1OtsZ0yaf4lKCpIAMqkOzP6rzr+DHw1qUXXsz+q86/gx8NalCWoAEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASncx58Zb635VaLJTuY8+Mt9b8qsE22r5wYr+T4KXKdXavnBiv5PgpcpqWAZcLhr2Lv02cPRNdyrxRDscVsw08diP5vyIgeZZtHicFh6bFdum9bp5KdZ0mI6NehtXdrr00TFvC26avJM1TOn3OLmWWYrLqqYxNERTV4qqZ1iWPA4O/jr/BYaia69NZ6IjpkuRixF25iL1d27VNVyudZmXcwG0+Jw2HotXbVN6KI0iqZ0nT7XzxXzDpsdqe5zMwy/EZfdijE297vuWmqJ1if3SXI7V/a2/VbmLWHt265/vTVNWn3I5XXVXXVXXMzXVOs1T49Wxl+AxGYXZt4a3vpjlqmZ0iP3upxWzDpsdqe47jJhdqcTasxRes0Xao5N9rvZn973FbVYm7Zqos2aLVU8m/32+mP3OJjsHfwN/gsTbmirxx0THTDLluW4nMaqow1ETTT46qp0iDuNSmuqmuK6apiuJ1iqJ5delI7G1uIptxF7D27lcf3oq3uv3MHFfMOmz257nHxeGu4S/VZxFuaLkeSTuO1mG0+JxOHqs2rVNmKo0qqidZ0+xwrF2uxeou2qppronWJjyN3LcoxeY0zVh6I4OOSa6p0jXobs7L5hETMcDP2b/8luRs2trr0URFzC26qvLMVTGv3NXM9pMTjcPVZot02aKo0q0nWZjo1cfEWbmHvV2r1E0XKZ0mmW9luTYzMLfCWaIi3rpFVc6RP7i5Gng8TdwmIov2Kt7cpnWO5IaNr7sUxFWEomryzFcx/k1a9mMwppmYi1VMeSK+Wfa4t2iq1cqt3KZprpnSaZ8cSdx1s22gxGY2eB3lNq1PLVFM6zV++XPy/GXsBiab+HmIrjkmJ8Ux0S3MBkWNxtmLtuimm3P9ma50337ma7sxmFu3NURarmP7tNXL7zuN2Nrrmka4SiZ9Oe5zM4zzEZnTFuqmm1Zidd5T5Z+2XLmJpmYqiYmOSYmPE62E2ex+Js03aaKKKao1p39WkzBcjUyzML+XYjhcPMcsaVU1eKqHd43XNP8AwdHbnuc/EbOZhYtVXN5RcimNZiirWXGS5gdHOM4xGaVUxdimi1Ty00U+LXpnplz3ZsbN5hetRXNFFvXl0rq0l8YzZ/H4WxVdqooropjWreVazEdJ3kckBBIdmf1XnX8GPhrUouvZn9V51/Bj4a1KEtQAIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlO5jz4y31vyq0WSncx58Zb635VYJttXzgxX8nwUuU6u1fODFfyfBS5TUsJPsNTHhGLq0/SimmIn757oS9AtlsxtZfjK4xH6Nq7ERNXVmPEmX0ngPPcN+LT3tYpLT2spichxEzETNM0zH2fpRH+bn7DUx4PiqtOWaojX7jarN8NcwFWEw9ym7XcmN9NM6xEROvj+5o7JZnZwdd2ziaot0XNJprnxRMdJ9qmrgba0xOU0TMcsXY0n7pdT6SwPnuG/Fp70b2uzXD4mxRhcNXFzSrf1VU+KNPFGvl8ayjobF0UxlVdUR+lVdnWfuh30P2RzaxhrVeFxVcW4mrf0V1eLxcsT0eJJfpLA+e4b8WnvI8EuHt1EeDYWdOXfzGv3N7ZGIjJLUxERM1VTP28rh7W5nYxtdmxhqouU25mqquPFM9ENvZTNsPawXguIuU2q6apmmap0iYn7elPsSpEtu6aYrwVcR+lMVxM/ZGnfKRTmeB89w34tPeh+1WZWswxVujDzvrVmJjfdMz4/u5IWfBCU7OUxTkmEimNNadffLpI5sznGF+j7eGxF2izdtRp+nOkTH73YnM8BETM43Dfddp7yBFdtqYjMrNURy1Wo1np5ZSzK6Yoy3C00xpHBU/0hBtpcwozHMN/Y14K3TvKZmPH9qTZFnWEu4C1RfvW7N23TFFUV1b2J0jSJiZT7HcQPa+mIzq5MRETNFMz7EwrzTAU0zVOMw+kdFyJn2Qgme42nH5ndv24mLfJTTr5Yjyk+CFjUUxRRTRTGlNMaRH2PXKyzPMHisLRVdv27N2I0rpuVRTy/Zr42xdzbAWrc11YyxMR5Ka4qn2QohmdUU8Zb1O9jezdp1j9+mqwFaY/GeE5pcxdNOmte+pieiPF/ROsHnWAxNim54TatTMctFyqKZifvSPJLooDFuiNq95FMbzwrxeT+0l+IzjAWLVVc4qzXp/dt1xVM/dCBxjavpbw2aeXheF3v366GRCyyeVoWM3wF61TXGLs06+SuuKZj7pfGMzrAYaxVcjEWrtURyUW64qmZ+7xNCvsREU4i7TTGkRXMRH3vh7cqmu5VVPjqmZl45yqQ7M/qvOv4MfDWpRdezP6rzr+DHw1qUSWoAEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASncx58Zb635VaLJTuY8+Mt9b8qsE22r5wYr+T4KXKdXavnBiv5PgpcpqWAd3ZLAWcbjLtWIpiui1ETFE+KZnp9iZxhcPEaRYtaehCxFoq8WhOFw8xMTYtTE/+SEJ2rwFnBY+icPTvKLtO+3keKJ18hOI4o6uzOBt47M4ovxrbopm5NPTpMRp707pwmGppiKcPaiI8URRCRFirxaPgtj6i12IRHbHLrGFrs38PRFuLmtNVNMaRr06LyiNifbO5dhrWV2LnBUV3LtMV1VVU6zy+R1PBrH1FrsQRAq4Wj4NY+otdiDwax9Ra7EHKKuFo+DWPqLXYg8GsfUWuxByirdDRaXg1j6i12IPBrH1FrsQvKWq4Wj4NY+otdiHlWEw1VM01YezMT44miE5RV43s9w1vCZtiLFmJi3TMTEdGsROnvS/Z/LMLZy6xcm1Rcu3aIrqrqp1nljXSEpUCFo+DWPqLXYhr43K8Ji7FVu5Zt06xyVU0xE0z0wvKitgqje1THlidE12VyzDxl1GJu2qbl27rOtUa72NdOT2JEWqFC0fBrH1FrsQx38BhL9qbd3D2ppnopiJj90ryorF6zY6x4NjL9jXWLdc0xPTESwsqkOzP6rzr+DHw1qUXXsz+q86/gx8NalCWoAEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASncx58Zb635VaLJTuY8+Mt9b8qsE22r5wYr+T4KXKdXavnBiv5PgpcpqWEn2FqiMRi6dY3000zEffPel6rcNfu4a9TdsVzRcp8Uw6nGTM/rqfw4WJRPkN24qicdhqYn9KLczMfe0+MmZ/XU/hw5WIvXMRequ365ruVTrNUkyO3sXVTTm9cTOk1WZiPtnWJ/yThVdq5XauU3LVU0V0zrFUTpMOrG0eZxERw9M/bwdPcRNCfovt1XTwOEo1/SmqqdPs0hyeMmZ/XU/hw5mMxV7F3pu4m5VXcnk1n/ACWxYeRTE5Pg9J1/4UN5W+AzfG4G1weHvaW9dYpmmJiP3atnjJmf19P4dPcWUn4gHGPM/r6fw6e44x5n9fT+HT3HNAn4gHGTM/r6fw6e44yZn9fT+HT3HMUn4gHGTM/r6fw6e44yZn9fT+HT3HMUn4gHGTM/r6fw6e4naPM5iY4en7qI7jmKfO1MxOfYrSdf7PwwmuTVU15Tg5pmJjgaI5OmI0lW1ddVyua66pqqqnWZnxzLdwObY3AUTbw16Ytzy72YiYj92qRPdVkEzERMzMREcusoBxkzL66n8OGHF55j8VZm1dv/AKFXjimmI19i8yU59yYm5XMeKZmVgbL1015Hht7Ou9iYn7J1lXzby/MsVgN94LdmiKvHTMaxP3SzE91WWIDxkzP66nsQx38/zG9aqt1X9KauSd7TET7WuaEa2b103M1xdVM60zdq0np5WoDMqkOzP6rzr+DHw1qUXXsz+q86/gx8NalElqABFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEn3NKop23yyap0jW5H3zbqhGG3lONry3NMLjLca1WLlNzTp0nlj7/EC1Nq+cGK/k+CHKdzaem3ipwua4Wd/hsXbpmKo6dPL939JcNqWJAEAAAAAAAAHYwmzuNxWHt3rfBRRXG+iKquXT2M3FXMOtY7c9zk2sbi7NEUWsVfoojxU03JiIfX0ljvPcV+LV3g6nFXMOtY7U9xxVzDrWO1Pc5f0njvPcV+LV3n0njvPcV+LV3nYdTirmHWsdqe44q5h1rHanucv6Tx3nuK/Fq7z6Tx3nuK/Fq7zsOpxVzDrWO1Pc4mItV2L9yzciIrt1TTVp0wz/SWO89xX4tXe1apmqZmqZmZ5ZmQAAAAAAAAAAd/ZyuLeUZ5XVOlNNjWf3b2tSy1M+xcZJsRfpqne4rNJ4Oiny8HHjn2TPahVZLUACKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmGxe1dGWWa8tzaiq/lN2deTlqsz0x9n2ffH2zWnIqcdZjE5JjLOMwtXi/S0mPsn7fYppsYPGYnBXeFweIvWLnWtVzTPuW0mFsTs5mceLDxPrKe95xczTzaPxKe9X3G7P9Ij6VxPJ01HG7P8A9q4n2wWUsLi7mvm0fiUd5xdzXzaPxKO9XvG/P/2rifbBxvz/APauJ9sFpSwuLua+bR+JR3nF3NfNo/Eo71e8b8//AGrifbBxvz/9q4n2wWUsLi7mvm0fiUd5xdzXzaPxKO9XvG/P/wBq4n2wcb8//auJ9sFlLC4u5r5tH4lHecXc182j8SjvV7xvz/8AauJ9sHG/P/2rifbBZSwuLua+bR+JR3nF3NfNo/Eo71e8b8//AGrifbBxvz/9q4n2wLSwuLua+bR+JR3nF3NfNo/Eo71e8b8//auJ9sHG/P8A9q4n2wFLC4u5r5tH4lHecXc182j8SjvV7xvz/wDauJ9sHG/P/wBq4n2wFLC4u5r5tH4lHecXc182j8SjvV7xvz/9q4n2wcb8/wD2rifbAUsLi7mvm0fiUd5xdzXzaPxKO9XvG/P/ANq4n2wcb8//AGrifbAUsLi7mvm0fiUd5xdzXzaPxKO9XvG/P/2rifbBxvz/APauJ9sBSwuLua+bR+JR3nF3NfNo/Eo71e8b8/8A2rifbBxvz/8AauJ9sBSwuLua+bR+JR3nF3NfNo/Eo71e8b8//auJ9sHG/P8A9q4n2wFLDp2bzSfHYpj99ynvY8fRlmzlHC53iaL2IiNaMHZnWqqfJr0R/wDeXxK8v7U57ftzRczXF72fHFNyaf6OPVVVXVNVUzNU8szM+MtKdLaLOsTn2ZV4vF6Ryb23bp/s26fJEOWCNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMs2LkeOn3vOCr6Gaqqqap1mfa+dZ6ZZtaYuDq6DeVdD7qmemXms9K2U+N5V0G8q6H3rPSaz0llPjeVdBvKuh96z0ms9JZT43lXQbyrofes9JrPSWU+N5V0G8q6H3rPSaz0llPjeVdD6i1XV4qfe91npfVEz0yWU+OBudX3nA3Or72bWemTWemSymHgbnV95wNzq+9m1npk1npksph4G51fecDc6vvZtZ6ZNZ6ZLKYeBudX3nA3Or72bWemTWemSymHgbnV95wNzq+9m1npk1npksph4G51fecDc6vvZtZ6ZNZ6ZLKYeBudX3nA3Or72bWemTWemSymHgbnV95wNzq+9m1npk1npksph4G51fecDc6vvZtZ6ZNZ6ZLKYeBudX3nA3Or72bWemTWemSymHgbnV95wNzq+9m1npk1npksph4G51fecDc6vvZtZ6ZNZ6ZLKYeBudX3nA3Or72bWemTWemSymHgbnV95wNzq+9m1npk1npksph4G51fecDc6vvZtZ6ZNZ6ZLKYeBudX3nA3Or72bWemTWemSymHgbnV95wNzq+9m1npk1npksph4G51fecDc6vvZtZ6ZNZ6ZLKYeBudX3nA3Or72bWemTWemSymHgbnV95wNzq+9m1npk1npksph4G51fecDc6vvZtZ6ZNZ6ZLKYeBudX3nA3Or72bWemTWemSymHgbnV95wNzq+9m1npk1npksph4G51fecDc6vvZtZ6ZNZ6ZLKYKrddMa1Ro+dJZrszNMcvlYtVR5pJpL3U1Wkt5pJpL3U1KLeRTMzpEPvgbnV97yif04Z9Z6ZSVYeBudX3nA3Or72bWemTWemUsYeBudX3nA3Or72bWemTWemSxh4G51fecDc6vvZtZ6ZNZ6ZLGHgbnV95wNzq+9m1npk1npksYeBudX3nA3Or72bWemTWemSxh4G51fecDc6vvZtZ6ZNZ6ZLGHgbnV95wNzq+9m1npk1npksYeBudX3nA3Or72bWemTWemSxh4G51fecDc6vvZtZ6ZNZ6ZLGHgbnV973gLnV97LrPTJrPTJYxcBc6vvOAudX3sus9MvrWemSxg8Hu9X3w98Gu9T3wzxVPTL6pqnpksa8YS9Pio98DcoqnXxyA//Z","e":1},{"id":"fr_3","w":760,"h":554,"u":"","p":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAIqAvgDASIAAhEBAxEB/8QAHAABAAIDAQEBAAAAAAAAAAAAAAYHAwQFAgEI/8QAURABAAECAwEKCQgIBAMHBQAAAAECAwQFEQYHEhMWITZRUpLRFBUxQVRyg6GzNVNhgZGTsuEiQlVxc4KxwjJFwdIjdMMXNGKio9PwJjNDY/H/xAAbAQEBAQEBAQEBAAAAAAAAAAAAAQIDBAUGB//EACYRAQEAAgEDBQEBAAMBAAAAAAABAhEDEiExBBNBUpEUBTJCUXH/2gAMAwEAAhEDEQA/APyoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANnLsDicxxdvC4KzXev1zpTRTHv8Aoj6Vi5bub4XCYaMTtJmNNqmOWqi3VFFNP0TXV3ArEWlXl+55ane14qKpjzxduVa/XHI8+B7nXpM9u73LpNqvFoeB7nXpM9u73Hge516TPbu9xo2q8Wh4Hudekz27vceB7nXpM9u73GjarxaHge516TPbu9x4Hudekz27vcaNqvFoeB7nXpM9u73Hge516TPbu9xo2q8Wh4Hudekz27vceB7nXpM9u73GjarxaHge516TPbu9x4Hudekz27vcaNqvFoeB7nXpM9u73Hge516TPbu9xo2q8Wh4Hudekz27vceB7nXpM9u73GjarxaHge516TPbu9x4Hudekz27vcaNqvFoeB7nXpM9u73Hge516TPbu9xo2q8Wh4Hudekz27vceB7nXpM9u73GjarxaHge516TPbu9x4Hudekz27vcaNqvFqW8j2CzDS1hcfFq5PJE8PNM/wDncbabc7xuW2asTllzw7D0xrNMU6XKY/d+t9X2GjaCD7PI+IoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+xEzMRETMzyREPjvbCYSnG7XZZZriJp4XhJifPvYmr+0FhYC1g9z7ZWMZibUXM1xMRE0+eap5Yo+imPP/8AxV+dZxjs5xc4jML9V2v9WnyU0R0Ux5oSrdfxtd/aW3hd9PB4azTEU/8Aiq5Zn7N79iCrf/EAEUAAAAAAAAAAAAAAAAAAAAAAAAS3YvbLF5FibdnEV138tqnSq1M6zbjpp6P3eSUSAWLuobP4eii1n2VxTOGxExwsUf4dauWK4+ifP9OnSrpbOyFXjjcwzLB3v0psU3bdGv0UxXT9kz7lTLQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp3MefGW+1+FWiyU7mPPjLfa/CrIMm6nz0xfqW/wQiSW7qfPTF+pb/BCJLfIAyYezcxF2m3apmqqUGMSHDZFbimJxFyqqrop5IhseJcH1a+0CLCU+JcH1a+0eJcH1a+0CLCU+JcH1a+0eJcH1a+0CLCU+JcH1a+0eJcH1a+0CLCU+JcH1a+0eJcH1a+0CLCU+JcH1a+0eJcH1a+0CLCU+JcH1a+0eJcH1a+0CLCU+JcH1a+0eJcH1a+0CLCU+JcH1a+0eJcH1a+0CLCU+JcH1a+0eJcH1a+0CLCU+JcH1a+0+VZJhJjSIuR9MVAi46uYZRcw1M3LVXCW48vJyw5QAALV3LeZudevX8OFVLV3LeZudevX8OFVLfAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7mPPjLfa/CrRZKdzHnxlvtfhVkGTdT56Yv1Lf4IRJLd1Pnpi/Ut/ghElvkEoyDDRZwcXZj9O7y6/R5kXTLLaoqy/DzHzcR9kIN3D2bmJxFqxZp3127VFFFOumszOkQxuhs7zgyz/AJq1+OHPAAAAAAAAAAAAAAAAAAAAARLOcNGGxtVNEaUVRvqY6EtR3aaqJxVqnzxRrP2g4wALV3LeZudevX8OFVLV3LeZudevX8OFVLfAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7mPPjLfa/CrRZKdzHnxlvtfhVkGTdT56Yv1Lf4IRJLd1Pnpi/Ut/ghElvkHbyDH0248GvTpEzrRM+T9ziCCdiJYbNMVh6Yppub6mPNXGrY8e4rqWezPeCSiNePcV1LPZnvPHuK6lnsz3gkojXj3FdSz2Z7zx7iupZ7M94JKI149xXUs9me88e4rqWezPeCSiNePcV1LPZnvPHuK6lnsz3gkojXj3FdSz2Z7zx7iupZ7M94JKI149xXUs9me88e4rqWezPeCSiNePcV1LPZnvPHuK6lnsz3gkojXj3FdSz2Z7zx7iupZ7M94JKI149xXUs9me88e4rqWezPeCSiNePcV1LPZnvfKs8xUxpEWqfpime8EhxF+3h7VVy7VFNMe9EMZiKsVia7tX608kdEPmIxF3EVb69XNc/T5mEAAFq7lvM3OvXr+HCqlq7lvM3OvXr+HCqlvgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKdzHnxlvtfhVoslO5jz4y32vwqyDJup89MX6lv8EIklu6nz0xfqW/wQiS3yACAAAAAAAAAAAAAAAAAAAAAAAAAAC1dy3mbnXr1/DhVS1dy3mbnXr1/DhVS3wACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlO5jz4y32vwq0WSncx58Zb7X4VZBk3U+emL9S3+CESS3dT56Yv1Lf4IRJb5ABAAAAAAAAAAAAAAAAAAAAAAAAAABau5bzNzr16/hwqpau5bzNzr16/hwqpb4ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASncx58Zb7X4VaLJTuY8+Mt9r8KsgybqfPTF+pb/AAQiSW7qfPTF+pb/AAQiS3yACAAAAAAAAAAAAAAAAAAAAAAAAAAC1dy3mbnXr1/DhVS29yKz4Rsxmlmat7wl6qjXo1oiEF2y2ZvbNY63auXYv2L1M1W7kU73XTyxMdMcn2r8CPAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7mPPjLfa/CrRZKdzHnxlvtfhVkGTdT56Yv1Lf4IRJLd1Pnpi/Ut/ghElvkAEAAAAAAAAAAAAAAAAAAAAAAAAAAFwbi/wAhY7/mf7aWhu3f5L7b/pt/cX+Qsd/zP9tLQ3bv8l9t/wBNr4T5VcAyoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlO5jz4y32vwq0WSncx58Zb7X4VZBk3U+emL9S3+CESS3dT56Yv1Lf4IRJb5ABAAAAAAAAAAAAAAAAAAAAAAAAAABbu47cptbO5jcuTpRRfmqqeiIohFN0raXC7QY7C0YDfVYbDU1aXKqd7v6qtNdInl0/RjypHuW8zc69ev4cKqX4QARQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKdzHnxlvtfhVoslO5jz4y32vwqyDJup89MX6lv8EIklu6nz0xfqW/wQiS3yACAAAAAAAAAAAAAAAAAAAAAAAAAAC1dy3mbnXr1/DhVS1dy3mbnXr1/DhVS3wACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlO5jz4y32vwq0WSncx58Zb7X4VZBk3U+emL9S3+CESS3dT56Yv1Lf4IRJb5ABAAAAAAAAAAAAAAAAAAAAAAAAAABau5bzNzr16/hwqpb241TTXs/mFNdMVU1YiYmJjWJjeQjm6vkWCyjHYK/l9qmxRiqa99ap5KYmnTliPN/i8n0L8IggCKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTuY8+Mt9r8KtFkp3MefGW+1+FWQZN1Pnpi/Ut/ghEkt3U+emL9S3+CESW+QAQAAAAAAAAAAAAAAAAAAAAAAAAAAXBuL/IWO/wCZ/tpaG7d/kvtv+m39xf5Cx3/M/wBtLQ3bv8l9t/02vhPlVwDKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7mPPjLfa/CrRZKdzHnxlvtfhVkGTdT56Yv1Lf4IRJLd1Pnpi/Ut/ghElvkAEAAAAAAAAAAAAAAAAAAAAAAAAAAFx7jnN/E/wAf/Rzd27/Jfbf9N0txzm/if4/+jm7t3+S+2/6bXwnyq4BlQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKdzHnxlvtfhVoslO5jz4y32vwqyDJup89MX6lv8EIklu6nz0xfqW/wQiS3yACAAAAAAAAAAAAAAAAAAAAAAAAAAC4Nxf5Cx3/M/20tDdu/yX23/AE25uPXabGzmZXbmu8ovzVVpGs6RREohuibT2do8dhowluunC4amqKZrjSapq01nTzRyQ18J8oiAyoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlO5jz4y32vwq0WSncx58Zb7X4VZBk3U+emL9S3+CESS3dT56Yv1Lf4IRJb5ABAAAAAAAAAAAAAAAAAAAAAAAAAABau5bzNzr16/hwqpau5bzNzr16/hwqpfgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKdzHnxlvtfhVoslO5jz4y32vwqyDJup89MX6lv8EIklu6nz0xfqW/wQiS3yACAAAAAAAAAAAAAAAAAAAAAAAAAAC1dy3mbnXr1/DhVS1dy3mbnXr1/DhVS3wACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlO5jz4y32vwq0WSncx58Zb7X4VZBk3U+emL9S3+CESS3dT56Yv1Lf4IRJb5ABAAAAAAAAAAAAAAAAAAAAAAAAAABau5bzNzr16/hwqpau5bzNzr16/hwqpb4ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASncx58Zb7X4VaLJTuY8+Mt9r8KsgybqfPTF+pb/BCJJbup89MX6lv8EIkt8gAgAAAAAAAAAAAAAAAAAAAAAAAAAAtXct5m5169fw4VUtXct5m5169fw4VUt8AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTuY8+Mt9r8KtFkp3MefGW+1+FWQd/b3JacftTi703ponSiNIp1/UhHuLFHpNXY/NONqvl/FfyfghylrO0c4sUek1dj8zixR6TV2PzSME3Uc4sUelVdj8zixb9Kq7H5p9lOy+ZZnZi9aot2rU/4a7s6RV+7SJlv8Rcz+fwfbq/2u2PpuXKbxxtn/xi82E7Wqy4s2/Squx+ZxZt+lVdj81m8Rcz+fwfbq/2nEXM/n8H26v9rX8nN9L+J7+H2isuLNv0qrsfmcWbfpVXY/NZvEXM/n8H26v9pxFzP5/B9ur/AGn8nN9L+Hv4faKy4s2/Squx+ZxZt+lVdj81m8Rcz+fwfbq/2nEXM/n8H26v9p/JzfS/h7+H2isuLNv0qrsfmcWbfpVXY/NZvEXM/n8H26v9rFidis1s2prpnD3pjl3tuudffEH8nN9L+Hv4faK34sUek1dj8zixR6TV2PzSOuiq3XVRXTNNdM6TExpMS6+TbO5hm1HCYeimizrpFy5OkT+7zy5Y8eWV6ZO7dzkm7UG4sUelVdj8zixR6VV2PzWbxEzP0jB9qv8A2nETM/SMH2q/9rr/ACc30v4z7/H9orLixb9Kq7H5vnFi36VV2PzWbVsLmcRyXsHP0b+r/aj2Y4DE5diZsYy1Nu5HLHRMdMT54Yz9Py4TeWNkXHlwyupUT4s0ek1dj833izR6TV2PzTjZnZzM9psfOEyfDTeuUxvq6pne00R01TPJH+qdxuI7SzET4blEa/8A7bn/ALbzZcuGHbKyOsxyy7yKL4sUek1dj8zixR6VV2PzXTmu45tRgMJVftxgsbvYmZt4W7VNen0RVTTr+6OVXNdNVFU010zTVE6TE8kxJhy8ef8AwspccsfMRzixR6VV2PzOLFv0qrsfmtnZTcy2h2kwNONw9vD4XCV8tu7iq5p4SOmmIiZ0+nTR3P8AsQ2j9Oyf727/AO2l5+LG6yyn6vRnfEUVxYo9Kq7H5nFij0mrsfmsrbDYXPNlKabmZ2KK8LVVvYxFirf29eieSJj64hGG8c8c5vG7ZsuPao5xYo9Jq7H5nFij0mrsfmkY0zuuvsLhIwGzudYamua43s3N9MaeWiY0/wDKp5dezPyVnX8H+2tShfDUAEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASncx58Zb7X4VaLJTuY8+Mt9r8Ksgm21Xy/iv5PwQ5Tq7VfL+K/k/BDlNVgZ8vt0XsfhrV2dLdd2mmqfomY1YDyEReNNMUUxTTERTEaREeZ9QbJ9uKKMNRazOzcquUxpwtvSd99MxMxyujx3yrqYrsR3v2Pp/W8GXHNZSPh8vByTK9koEX475V1MV2I7zjvlXUxXYjvdv6+D7z9Y9nk+tSgRfjvlXUxXYjvOO+VdTFdiO8/r4PvP09nk+tSgRfjvlXUxXYjvOO+VdTFdiO8/r4PvP09nk+tSgRfjvlXUxXYjvYcVt1gaLU+DYfEXLnmiuIpj7dZ/oX1fBJvrn6Tg5L/wBaj+6DZtWtoNbURE3LVNdcR1tZj+kQsnB2beHwlmzYiItUUxTTp0KZzDG3sfjbuJxNUVXLk6zp5I6IhKtntsoweEow2Y2rlym3G9ouW9Jq080TE6fa+N6f1nBPVZZ3tL8vfy8Gd4Zj8xYIi/HfKupiuxHecd8q6mK7Ed77P9fB95+vB7PJ9alKI7pFq3VlFi9VEcJReimmfPpMTrHuj7GSvbjK4p1pt4qqejeR3odtLn17O79EzTwWHt67y3rr9cz0vL631nB7Nm5du3p+Dk65daX/ALg2Ew2H3P7F+xFPD4i9cqvTEcusVTTET/LET9axX5d3M90LE7HV3cPdsTi8svVb+u1FWlVFWmm+p83k01jz6R5FqUbtWzFVMTNjNKZ6Js0ax9lb+Xf6Hpea81yktlfrPT8uHRrelnPzhum5ZgJ3Y7GGne0YfGXsNOJiOSKZrmIqn645frTTN92/J7WFr8VYDG4jEzH6PDxTboifpmJmfq0+tRWcZpi84zXEZjjrm/xV+vf1VRycvmiOiIjSI/c6f5vpeXHk68pqM+p5cbjqXb9nW6KbdFNFumKaKY0ppiNIiOh6Ulsju1WLOX2sNtLhMTcxFumKPCcPpVwmnnqpmY0npmJnXoSD/tp2Y+azL7in/c8fP6Tnxzu8bXbDmwuM7prthhcPjdlM3sYymmqxVhbk1b7zaUzMT9UxE/U/HS190Tdaqz/LLuWZHhr2Fwl+N7eu3piLldPViImYiJ8/LOsciqH1f8vg5OKW59tvJ6rkxyskfQH1nkSHZn5Lzr+D/bWpRdezPyXnX8H+2tShWoAIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlO5jz4y32vwq0WSncx58Zb7X4VZBNtqvl/FfyfghynV2q+X8V/J+CHKarD7TTVXVFNETVVPJERGsy3oyfMZiJjB3frh1dh7NFWLxF2qmJrt0xFMz5tfL/RMlk2irsRh72Gr3mItV26uiqNHi1bru1xRaoqrrnyU0xrMp1tdZouZLduVU612ppmmejWYif6ufsNZomnE3piOE1imJ6INdxwoybMZj/ud37Gnfs3LFyaL1uq3XH6tUaStNHdtrNFWW27s0xwlFyIir6JieRekQ6zZuX7kUWbdVyufJTTGst3xNmPol37Ek2Js0U5fdvRH/EruTTM/RERye+UiSYiq7tuu1cmi7TVRXHlpqjSYesPYvYi5vLFqu5V0UxqlG3Nqjg8Ld3scJrNOvTHlb2x1qijJ6a6Y/TuV1TVPTpOh0qik5PmMRM+B3fsaNdFVFc010zTVHJMTGkwtVD9ubNFOIwt6mIiu5TVTVPTppp/Us0iP4bC38VVNOGtV3Zjy72NdGxVk+YU0zM4O9pHRTqmmzNmi1k2HmimImuN9VPTOrqEi7VTMTTMxVExMckxLPhcHicXM+DWLlzTyzTGsQ6+2lmi3mluuimIm5biatPPOsxqlmT2aLGV4Wi3ERHB0zP0zMazJruiB3MpzC3TNVWEvaR5dKdWitZANq7VFnObsW6YpiqIqmI6ZjlLiNHC4HFYqJqw+HuXKY/Wink+17vZXjrNua7mFu00R5Z3uuixsNZow9i3ZtREUUUxTEMh0iqW1hsvxeKo39jD3K6OtFPI2M3sW6M/vWaI3tubsckebXTX+qw7dFNuimiimKaKY0iI8kQSKrXEZbjMPbm5ew12miPLVveSGotaYiYmJjWJ8yvIwtqNpPBtP+D4Rvd79G+8hZpGvh8sxuItxcs4a7VRPkq3vJLzicvxeFo3+Iw923R1pp5PtWbERERERpEeaHm5RTdt1UXKYqoqjSYnzwvSKrHu9RFF65RHkpqmI+14YVIdmfkvOv4P9talF17M/Jedfwf7a1KFagAigAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7mPPjLfa/CrRZKdzHnxlvtfhVkE22q+X8V/J+CHKdXar5fxX8n4IcpqsJDsZi7VjG3bV2qKZu0xFMz5NY83vTVVLJF+9TGlN25EdEVSsukTXbDF2rWVV4eaom7dmNKYnliImJ19znbE4u1bqv4a5VFNyuYqo1/W+hF6pmqdapmZ6ZDarWRrbXF2owdvCxVE3priqaY80RE+X7USjEXo5IvXNPWljnlnWfKvUiYbFYu14Lcws1RF2K5riJ/WiYjyfYkyqYmYnWOSWScRfn/81zT1pSZCS7b4q1XNjD0VRVcomaqoif8AD9E/S3djsXauZbGHiqIvW6p1pnyzEzrqhPnImYnWJmJ+g33FrIZtri7d/F2LFqqKpsxVvpjzTOnJ7nAm/emJib1yYn/xSxluxPtlsXav5Tat0VRwlqN7VT545fK7CqqappqiaZmJjyTE6PVV+9VExVduTE+aapJkOxtdi7WKzOIs1RVTao3k1R5NdZlK8ixdrF5ZYm1VE1UURRXT54mI0Vy+0V1UTrRVNM9MTobFqzMREzM6RHnV5tLireLze7csTvqKYimKo8k6OfXeu1xpXdrqjomqZeC0WdgMXaxuFovWaomKo5Y6J6JZ66qaKZqrqimmOWZmdIhVlFddE60VVUz9E6Ptd25XGldyuqOiapk6huZpi6L2dXsTb5bfCRMfTEadywsNiLWKsU3rFcV26o1iYVc9UXK7eu8rqp16J0JVWlduUWbdVy7VFFFMazVM6RCu6cbR4+8MmJ4Ph+E+nTXuaNd25cjS5XXVH01TLyW7Ralm5Ret03LVUV0VRrExOsS8YrEWsLYrvX64popjWZlWFF25biYt3KqYnonQuV13JjhK6qtOtOq9Rou18Jdrr0031Uzo8gwqQ7M/Jedfwf7a1KLr2Z+S86/g/wBtalCtQARQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKdzHnxlvtfhVoslO5jz4y32vwqyCbbVfL+K/k/BDlOrtV8v4r+T8EOU1WABBMso2cwk4K3cxlE3btymKpjfTEU6+bkbtezmWVUTEYeqiZ/Wi5VrH2y6OCnXB2JjycHT/AEZnSRFZ5ng6sDmF3DTO+3s8k9MTywl2A2ZwVvD0xiqJu3pjWqd9MRE9EaODtRMRtDcmZ8m81+yE8STuONe2by2u3VTRZqt1T5Kqa6pmPtlCr+Ers4+rCTMTcivg4npnVZyAY+f/AKqq6PCKf6wWCSYXZrL7dmmm9bm9c89c1TGs/uiTE7NZfcs1U2bdVm55qormeX90y7YujasbODuXMwpwfJF2bnBz9E66SmtnZvLaLcU12arlUeWqquqJn7JRvCzE7XTMTGk4qrl/mlPUkHBx2zOCuYeqMLRNm9Ea0zv5mJnonVEcswdWOx9rDRO930/pT0RHlWYgezFUcYbfLHLv9PsksElt7OZZTREVWKq5j9aq5VrP2S0832cwngdyvB0Tau0UzVEb6ZirTzcqRsOM5MHf1+bq/ouoK9yTL/GWPpszVNNERNVcx5YiP/kJlTs7lcREThpn6ZuVcvvR7YmYjNbmvnsz+KlN0xKi2f7PYa1gbmIwVM26rUb6qnfTMTHn8ri7PZZGZ43eXKpptURvqtPLP0Jtnk6ZPjP4VX9Eb2H/AO94n1I/qVXbjZ3K/Rv/AFKu9x9o8hsYXBzisFFVEUTG/omZmNJ5NY15UuczaaYjI8Vr0RH/AJoXSIrs1lVGZ37lV6Ziza01iOSapnze5KOL2V+i/wDqVd7l7Cz/AMLGfvp/1SlJBC9p8ks4GzTicJvqbc1b2qiZ106JhHU62ymIyafpuUoKmQAMqkOzPyXnX8H+2tSi69mfkvOv4P8AbWpQrUAEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASncx58Zb7X4VaLJTuY8+Mt9r8Ksgm21Xy/iv5PwQ5Tq7VfL+K/k/BDlNVgGTC4a7i79NnD0TXcq8kQ7MbL5hMeWxH889xpHnK9osRgsPTZrt03rdMaU6zpMR0atq5tdemiYt4W3TV5pmqZ0+pxsyyzFZfVHhFERTPkqpnWJYsFg7+Ovxaw1G/r01nzREdMm6rHiLteIvV3btW+uVzrMu5l+0+Jw2HptXbVN6KI0pqmdJ0+l54rZh1rHanuczMcvxGX3IoxNG933+GY5Yn90r3g7d/azEV25ptYei3XP601b7T6kbrrqruVV1TM11TrMzPLMtnL8BiMwuzbw1G+mOWqZnSI/fLp8V8w6bHbnuTuMuE2qxNqzTRes0Xao5N/vt7M/vMVtVibtmaLNmi1VPJv99vpj9ziY7BX8Df4LE25oq8sdEx0wy5blmKzGuYw1vWmny1VTpEHcalNdVNyK6apiuJ30VRPLE9KR2NrcRRbiL2Ht3K4/Wid7r9TBxXzDpsdue5x8XhruEv1WcRRNFyPNJ3Hax+0+JxOHqtWrdNmKo0mqJ1nT6OhwrF2uxeou2qppronWJjzN3LcpxeYxNWHojg4nSa6p0jVvTsvmERMxNmfo3/5HcbNra6/FERcwtuqrzzFUxr9TVzPaPEY3D1WKLdNm3VGlWk6zMdGrjYizcw96q1eomi5TOk0y3suybGZhb4SxRTFvXSKq50if3G6NPB4m7hMRRfsVb25TPJ3JFRtddimIrwlE1eeYrmI/o1K9mMwppmY4GqY80V8s/a4t2iq1cqouUzTXTOkxMcsSbo62bZ/iMws8DvKbVqf8UROs1fvlz8BjL2AxNN/D1aVxyTE+SY6JbmAyLG42zF63RTTbn/DNc6a/uZr2zGY27c1RTar0/Vpr5V7jeja65pGuEo19ee5zM4zvEZnRFuqmm3Zidd5Ty6z9MuVVE01TTVExMckxPmdbB7PY/E2abtNFFFFUa07+rSZg3RqZZmF/LcRwuHmOWNKqavJVDuxtdc8+Eo19ee5z8Ts5mFi1Vc3lFyKeWYoq1n7HHTdg6OcZviMzqpi7FNFqnlpop8mvTP0uc7OH2bzC9biuaKLevLpXVpLxjNn8fhbFV2qiiuimNat5VrMR06HejkgIJDsz8l51/B/trUouvZn5Lzr+D/bWpQrUAEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASncx58Zb7X4VaLJTuY8+Mt9r8Ksgm21Xy/iv5PwQ5Tq7VfL+K/k/BDlNVhJ9hqYnEYurT9KKaYifrnuS9AtlsytZfjK4xE721diImrqzHkTKMzwPpuG+9p72sUrT2rpicixEzETNM0zH0fpRH+rn7C0x4PiqtP0t/TGv1PO1WcYa5gasJh7lN2u5Mb6aZ1iIidfL9UNHZLM7ODuXrOIneU3JiYr80THmkom7gba0xOU0TMRrF2NJ+qXU8ZYH03Dfe096ObW5rh8TYowuGri7pVv6qqfJGnmifP5Vo39iqKYyquqIjfVXZ1n6od9D9ks1sYa1cwuJri3E1b+iuryeSNYn7El8ZYH03Dfe095PBXD26iPBsLOnLv5jX6m9sjERklqYjSZqqmfp5XD2tzOxja7NjDVRXTbmZqrjya9ENzZTNsNawfguJuU2q6KpmmqqdImJ+npTfdUpRLbummK8FXp+lMVxM/RGnfKReM8Bp/wB9w33tPeh+1WZWswxVujDzvrVmJjfdMz5fq5IW+EiVbO0xTkuEimNI3uvvdFHNmc4wvi+3h8Rdos3bUafpzpEx06uxOZ4CImfDcNydF2mf9SeBFdt6YjMrNURyzajX7ZSvK6KaMtwtNEaRFqn+iEbS5hbzDMIrs/8A2rdO8pmf1vpSXI86wl3AWrd69RZu26YomK6t7E6cmsTKfKu4ge19MRnVzSIjWmmZ+xMK80wFFM1TjcPMR0XImfshBM9xtOPzO7ftxMW+SmnXyzEecqRY1FMUUU0UxpTTGkR9D65WW55g8VhaKrt+3Zu6aV03Kop5fo1bF3NsvtW5rqxliYjzU1xVP2QohmdUU8ZL1Okb2btOsfv01WArXH4zwnNLmLop0ia4qpieiPJ/ROcHnWBxNim54RatTMctFyqKZiejlSeR0UAi3RG1e83sbzwryeb/ABJhiM4wFi1VXOKs16R/ht1xVM/VCCRjavG3h00/pcLwu9+vXQpFlDQsZvgL1qK6cXZpifNXXFMx9UvGMzrAYaxVcjEWrtUR+jRbriqZn6vIor7EUxTibtNMaRFcxEfW8PtdU13Kq58tUzMvjFVIdmfkvOv4P9talF17M/Jedfwf7a1KJWoAIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlO5jz4y32vwq0WSncx58Zb7X4VZBNtqvl/FfyfghynV2q+X8V/J+CHJarD6O5slgLONxlyvEUxXRaiJiifJMz0/YmnguHiNIsWtPUhZBV4tCcLh5jSbFqYn/wQhO1eBs4HH0Th6Yoou077eR5InXzFxRxR1dmcDbx+ZxRejW3RRNc09OkxGnvTunCYammIpw9mIjyRFEJJsVeLR8GsfMWuxCI7Y5fZwtdm/h6Itxc1pqpp5I1jz6L0iOCe7O5dhreV2Lk2qK7lymK6qqqYmeXzOp4NY+YtdiDpFXC0fBrHzFrsQeDWPmLXYg6RVwtHwax8xa7EHg1j5i12IOkVcLR8GsfMWuxB4NY+YtdiDpNquFo+DWPmLXYh5qwmGqpmmrD2ZifLE0QdIrAb2e4a3g82xFizrFumYmmOjWInT3pfs9leFsZbYuzaoru3aIrqrqp1nljXSEkVAhaPg1j5i12Ia+NyvCYuxVbuWbcaxyVU0xE0z0xK9KK2CqN7VVTPlidE12VyzDxl1vE3LdNy7d1nWqNd7GumkfYmlQoWj4NY+YtdiGK/l+Ev2pt3cPammeimImPrXpRWYzY6x4NjL9jXXg65p16dJYWVSHZn5Lzr+D/bWpRdezPyXnX8H+2tShWoAIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlO5jz4y32vwq0WSncx58Zb7X4VZBNtqvl/FfyfghynV2q+X8V/J+CHKarCT7DVRF/F0zMb6aaZiPrnvS9VuGv3cNepu2K5ouU+SYdTjJmfz1P3cLKifIbtxVE47DUxP6UW5mY+tp8ZMz+ep+7hyr965iL1V2/XNdyrlmqVtHb2LqppzeuJnSarNUR9M6xP+icKrtXK7Vym5aqmiumdYqidJh1Y2jzOI04emfZwkuhP0X26rp4DCUa/pTVVOn0aOTxkzP56n7uHNxeKvYy/N3E3JuXJ88+b9y9QsLIpicnwek6/wDDiG8rjA5vjcDa4PD3tLeuu9mImI/dq2eMmZ/PU/dwSifCA8ZMz+ep+7g4yZn89T93B1Q0nwgPGTM/nqfu4OMmZ/PU/dwdUNJ8IDxkzP56n7uDjJmfz1P3cHVDSfCA8ZMz+ep+7h8naPM5iY4emPpiiO46oaedqZic+xWk6/4fwwmuTVRVlODmmdY4GiPsiIVtXXVcrqrrqmquqdZmZ5ZluYDNsZgbc0Ye9pbnl3sxExH7tUl7qskmYiJmZiIjlmZQHjJmfz1P3cMOLzvMMVZm1dv/AKFXlimmI1+xeqJpzrkxNyuY8kzKwdmK6a8jw29nXSJifonWVetvAZlisBNXgt2aYq8tMxrE/VLMvdVliA8ZMz+ep+7hjv5/mN61Vbqv6U1ck72mIn7WuqJprZxXTczXF1UzrTN2rSenlaZD6zVSHZn5Lzr+D/bWpRdezPyXnX8H+2tSiVqACKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJPuaVRTtvlk1TpGtyPtt1QjDbyjG15bmmFxtuNarFym5p06T5PrBam1Xy/iv5PwQ5TubT028VOGzXCTv8AC4q3TMVR06ef6v6S4bVYAEAAAAAAAAHYwmzuOxWGt36JtRRXGsb6rl0+xm4q5h1rHbnucm1jsXZoii1ir9FEeSmm5MRD34zx3puJ+9q7wdPirmHWsdue44q5h1rHbnucvxnj/TcT97V3njPH+m4n72rvXQ6nFXMOtY7c9xxVzDrWO3Pc5fjPH+m4n72rvPGeP9NxP3tXeaHU4rZh02O3Pc4mItVYe/cs3NIrt1TTVp0wz+Msd6bivvau9qzMzMzVMzM8szPnAAQAAAAAAAAd/Z2qLeT57XVyU02NZ7NallqZ/i4yXYi/TVO9xWaTwdFPn4Pzz9kz2oVWVqACKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmGxe1dGWWasszaiq/lV2ddI5arMz54+j6Prj6ZrGR04614TkuMs4zDVeTSrSqPon6fsU02MHjMTgrvC4PEXrFzrWq5pn3LtNLY4u5p6PH3lPecXM09Hj7yjvV7G1+fxERGa4rSOmo44bQftXE9oNLB4u5p6NH3lHecXc09Gj7yjvV9xvz/wDauJ7Rxvz/APauJ7QaWDxdzT0aPvKO84u5p6NH3lHer7jfn/7VxPaON+f/ALVxPaDSweLuaejR95R3nF3NPRo+8o71fcb8/wD2rie0cb8//auJ7QaWDxdzT0aPvKO84u5p6NH3lHer7jfn/wC1cT2jjfn/AO1cT2g0sHi7mno0feUd5xdzT0aPvKO9X3G/P/2rie0cb8//AGrie0Glg8Xc09Gj7yjvOLuaejR95R3q+435/wDtXE9o435/+1cT2g0sHi7mno0feUd5xdzT0aPvKO9X3G/P/wBq4ntHG/P/ANq4ntBpYPF3NPRo+8o7zi7mno0feUd6vuN+f/tXE9o435/+1cT2g0sHi7mno0feUd5xdzT0aPvKO9X3G/P/ANq4ntHG/P8A9q4ntBpYPF3NPRo+8o7zi7mno0feUd6vuN+f/tXE9o435/8AtXE9oNLB4u5p6NH3lHecXc09Gj7yjvV9xvz/APauJ7Rxvz/9q4ntBpYPF3NPRo+8o733i7mno0feUd6veN+f/tXE9o435/8AtXE9oNLDp2bzOZ5bFNP77lPex4+jLNm6OGzvE0XsREa0YOzOtVU+bXoj/wCcvkV5f2pz2/bmi5muL3s8kxTcmnX7HGqqmuqaqpmap5ZmfLJs06e0WdYnPcyrxeLmI5N7bt0/4bdPmiHLBFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZZsXI8tPvh54Kvo97PVVMzyzP2vGs9Ms7XTHwdXQbyroe5memXzWemVHjeVdBvKuh71npNZ6QeN5V0G8q6HvWek1npB43lXQbyroe9Z6TWekHjeVdBvKuh71npNZ6QeN5V0PsW658ke961npe7czy8sgx8Dc6vvOBudX3s2s9Mms9MiMPA3Or7zgbnV97NrPTJrPTIMPA3Or7zgbnV97NrPTJrPTIMPA3Or7zgbnV97NrPTJrPTIMPA3Or7zgbnV97NrPTJrPTIMPA3Or7zgbnV97NrPTJrPTIMPA3Or7zgbnV97NrPTJrPTIMPA3Or7zgbnV97NrPTJrPTIMPA3Or7zgbnV97NrPTJrPTIMPA3Or7zgbnV97NrPTJrPTIMPA3Or7zgbnV97NrPTJrPTIMPA3Or7zgbnV97NrPTJrPTIMPA3Or7zgbnV97NrPTJrPTIMPA3Or7zgbnV97NrPTJrPTIMPA3Or7zgbnV97NrPTJrPTIMPA3Or7zgbnV97NrPTJrPTIMPA3Or7zgbnV97NrPTJrPTIMPA3Or7zgbnV97NrPTJrPTIMPA3Or7zgbnV97NrPTJrPTIMPA3Or7zgbnV97NrPTJrPTIMPA3Or7zgbnV97NrPTJrPTIMPA3Or7zgbnV97NrPTJrPTIMPA3Or7zgbnV97NrPTJrPTIMPA3Or7zgbnV97NrPTJrPTIMFVuumNao0edJZrszvY5Z8rFqsHzeyb2X3U1VHzeyb2X3U1AimZnSIeuBudX3vlMzvo/ez6z0ylVh4G51fecDc6vvZtZ6ZNZ6ZQYeBudX3nA3Or72bWemTWemQYeBudX3nA3Or72bWemTWemQYeBudX3nA3Or72bWemTWemQYeBudX3nA3Or72bWemTWemQYeBudX3nA3Or72bWemTWemQYeBudX3nA3Or72bWemTWemQYeBudX3nA3Or72bWemTWemQYeBudX3nA3Or72bWemTWemQYeBudX3vvAXOr72TfT0y9b6emQYeAudX3nAXOr72bfT0y+76emQYPB7vV98Pvg93qe+GeKp6ZfYqq6Z+0GCMJenyUe+Bt26qumftAf/2Q==","e":1},{"id":"fr_4","w":760,"h":554,"u":"","p":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAIqAvgDASIAAhEBAxEB/8QAHAABAAIDAQEBAAAAAAAAAAAAAAYHAwQFAgEI/8QAUhABAAECAwEJCwYMBAQGAwAAAAECAwQFEQYHEhMWIVFSktEUFTE2QVNUcqGiszVhgYORsiIyVWNxc4KTo7HC4UJFdNIjNMHDFyQzYtPwJkTx/8QAGwEBAQEBAQEBAQAAAAAAAAAAAAECAwQFBgf/xAAmEQEBAAIBAwUBAQADAQAAAAAAAQIRAxIhMQQTQVKRFAUyQlFx/9oADAMBAAIRAxEAPwD8qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADZy7A4nMcXbwuCs13r9c6U0Ux7fmj51jZbub4XCYaMTtJmNNqmPDRbqiimn9NdXZ9IKwFpV5fueWp3tWKiqY8sXblWv0xyPPce516TPXu9i6TarxaHce516TPXu9h3Hudekz17vYaNqvFodx7nXpM9e72Hce516TPXu9ho2q8Wh3Hudekz17vYdx7nXpM9e72GjarxaHce516TPXu9h3Hudekz17vYaNqvFodx7nXpM9e72Hce516TPXu9ho2q8Wh3Hudekz17vYdx7nXpM9e72GjarxaHce516TPXu9h3Hudekz17vYaNqvFodx7nXpM9e72Hce516TPXu9ho2q8Wh3Hudekz17vYdx7nXpM9e72GjarxaHce516TPXu9h3Hudekz17vYaNqvFodx7nXpM9e72Hce516TPXu9ho2q8Wh3Hudekz17vYdx7nXpM9e72GjarxalvI9gsw0t4XMItXJ5Inh5pn33G2m3OsdltmrE5Zc7uw1MazTFOlymP0f4vo+w0bQQfZ5HxFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH2ImqYiImZnkiIfHe2EwlON2uyuzXETTwvCTE+Cd7E1f0gsPAWcJufbKRjMTai5muJiImPLNU8u818lMeX/8Airs6zjHZzi5xGYX6rtf+GnwU0RzUx5ISrdfx1d/aW3hd9PB4azTEU/8Auq5Zn7N79iCrf/EAEUAAAAAAAAAAAAAAAAAAAAAAAAS3YvbLF5DibdnEV138tqnSq1VOs2456eb9HglEgFi7qOz9iii1n2VxTOGxExwsUfi61csVx80+X59OdXS2NkK+/G5hmWDv/hTYpu26Nfmpiun7Jn2KnWgAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTuY+PGW/W/CrRZKdzHx4y3634VZBk3U/HTF+pb+5CJJbup+OmL9S39yESW+QBkw9m5iLtNu1TNVUoMYkOGyK3FMTiLlVVXNTyRDY7y4Po19YEWEp7y4Po19Y7y4Po19YEWEp7y4Po19Y7y4Po19YEWEp7y4Po19Y7y4Po19YEWEp7y4Po19Y7y4Po19YEWEp7y4Po19Y7y4Po19YEWEp7y4Po19Y7y4Po19YEWEp7y4Po19Y7y4Po19YEWEp7y4Po19Y7y4Po19YEWEp7y4Po19Y7y4Po19YEWEp7y4Po19Z8qyTCTGkcJHzxUCLjq5hlFzDUzctVcJbjw8nLDlAAAtXct8Tc69ev4cKqWruW+JudevX8OFVLfAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7mPjxlv1vwq0WSncx8eMt+t+FWQZN1Px0xfqW/uQiSW7qfjpi/Ut/chElvkEoyDDRZwcXZj8O7y6/N5EXTLLaoqwGHmnwcHEfZCDdw9m5iMRasWad9duVRRRTrprMzpEOxm+yubZTg68VirOGrw9u5Fq7cwuMs4mLVc66U18FXVvZnSfDp4Gns74wZZ/qrX34Ty3nWV8cKsqyrJq8PTmGbWbeMuYrFd0cJTTiIq3tNO8pimJqiJnXWeTTXwgr3DYG/icHi8Va4PgcLTTVd312mmrSqqKY0pmdauWfJE6eVqrInMuEo2uxleCy6Jyu5h4wtujCW6aLdNOKj8HSI/C1jkmZ1mY8My6PeHLsLmuAw2CnB0UbRY6jG4Obtqm/wODpp39NveTpE1VV1Tb3s6azZ05IkFW4LCYjHYyzhcHZuX8Teqii3at061V1T4IiPLLAvrKKZwGc7GZricFcwGNuZ1ODrqx2AsYe5NmqKJ5aKaYiOWZ3tUxFUazpPgcvJsFjKsppxF7J8VXnteOrpzKzh8iw9+q3pTRwdFy1VFMWqJpmqfwYiKpmrWeSNAqbJ8rxecY6nCZfai5emmqud9XTRTTTTGtVVVVUxFMRETMzMxDLnmSY3JL9q3jqbWl6jhLV2xeovWrtOsxrTXRM0zyxMTpPJMJJk9F7j9m1vZbCYaq3riaLWXYquLsX7XLE2KZpn8OZp8G9q1nTkmZ01l2T7OWsLjr1/D5BRg80xGT4m7Tk+YRwvA3aLtFNuumm7+FpVrO9pr1mZiY5YkFNi3MDlWLxU5LezrAW8HtHHdlynDU5ba4fE2KLdM0f8Al5iKZr383IpmadZiJnSd7Gu7jcrouzhcVYyqjjLVlV2vCYTE4O1Rcu3qb9Ea1WaY3tVyLM3JpiadZ0pnSZiNQpYWzkGBxd3F427tBk9FjaCnLqbmDsYfL7NV+5RwulVycNMxTNyKeSNaYne61aTMb5Fd0uizbzbBRTgL+Bxk4SmcVTesW8PVXXvqtK5tW5mLczTvdYnSZ032n4XKEQAAAAAAAAAARLOcNGGxtVNEaUVRvqY5ktR3aaqJxVqnyxRrP2g4wALV3LfE3OvXr+HCqlq7lvibnXr1/DhVS3wACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlO5j48Zb9b8KtFkp3MfHjLfrfhVkGTdT8dMX6lv7kIklu6n46Yv1Lf3IRJb5B28gx9NuO5r06RM60TPg/Q4ggnYiWGzTFYemKabm+pjyVxq2O/uK6Fnqz2gkojXf3FdCz1Z7Tv7iuhZ6s9oJPXXVcrmquqqqqfDNU6zJRXVRvt5VVTvo3s6TprHMjHf3FdCz1Z7Tv7iuhZ6s9oJLHJLo5Zm+Jy+Mw4OKLk47DVYW7N3WZimqaZmY5fD+DHh1Qnv7iuhZ6s9p39xXQs9We0Enm5XVXv5rqmvw76Z5ftfJqqmrfTM77XXXXl1Rnv7iuhZ6s9p39xXQs9We0En4SvhOE39XCa677Xl159XyqZqqmapmZnlmZRnv7iuhZ6s9p39xXQs9We0ElEa7+4roWerPad/cV0LPVntBJRGu/uK6Fnqz2nf3FdCz1Z7QSURrv7iuhZ6s9p39xXQs9We0ElEa7+4roWerPad/cV0LPVntBJRGu/uK6Fnqz2vlWeYqY0iLVPzxTPaCQ4i/bw9qq5dqimmPaiGMxFWKxNd2rk308kc0eR5xGIu4ivfXrlVc/P5GIAAFq7lvibnXr1/DhVS1dy3xNzr16/hwqpb4ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASncx8eMt+t+FWiyU7mPjxlv1vwqyDJup+OmL9S39yESS3dT8dMX6lv7kIkt8gAgAAAAAAAAAAAAAAAAAAAAAAAAAAtXct8Tc69ev4cKqWruW+JudevX8OFVLfAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7mPjxlv1vwq0WSncx8eMt+t+FWQZN1Px0xfqW/uQiSW7qfjpi/Ut/chElvkbGDwtzFXN7bjSI8NU+CHYtZTh6I/Diq5PPM6fybGAsRh8LRTEfhTGtX6WwI0+9uE81709p3twnmventdCzZu36ppsW67lXh0opmZ9j5dtXLNc0XaKqKo8lUaSDQ724TzXvT2ne3Cea96e1uANPvbhPNe9Pad7cJ5r3p7W4A0+9uE81709p3twnmventbgDT724TzXvT2ne3Cea96e1uANPvbhPNe9Pad7cJ5r3p7W4A0+9uE81709p3twnmventbgDT724TzXvT2ne3Cea96e1uANPvbhPNe9Pad7cJ5r3p7W4A0+9uE81709p3twnmventbgDT724TzXvT2ne3Cea96e1uANPvbhPNe9Pa18TlFuqmZsVTRVzTyw6gCJXbdVq5NFyJpqjww8O5ntiKrNN6I/CpnSf0OGirV3LfE3OvXr+HCqlq7lvibnXr1/DhVS3wACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlO5j48Zb9b8KtFkp3MfHjLfrfhVkGTdT8dMX6lv7kIklu6n46Yv1Lf3IRJb5EwZcLRVcxNmi3pv6q4inWNY1meRie7VdVq5RconSqmYqifngRK8zqm9dx1OR37tm9auT3Rh6Kt7wunJNymI9sOdleKvZtNWXY+ub0101TYu1zrXbriJmNJ8Ok6aTDJdw9zMMZGZZNdp4eqrhK7M1xTXbr8umvhjXyt3EWu5ZjM6aMNbzGm3XN7DRdpnTWN7wkRHg8P4rSIi3sNYt12aaqqdZn5552i2rOK4O3FO8108urI2e5bPQ9snctnoe2WHu3837x3b+b94NM3ctnoe2TuWz0PbLD3b+b947t/N+8GmbuWz0PbJ3LZ6Htlh7t/N+8d2/m/eDTN3LZ6Htk7ls9D2yw92/m/eO7fzfvBpm7ls9D2ydy2eh7ZYe7fzfvHdv5v3g0zdy2eh7ZO5bPQ9ssPdv5v3ju3837waZu5bPQ9snctnoe2WHu3837x3b+b94NM3ctnoe2TuWz0PbLD3b+b947t/N+8GmbuWz0PbJ3LZ6Htlh7t/N+8d2/m/eDT7ibFuizVVTTpMaeWedotq9iuEtzRvNNfLq1Qaeb/J136P5wjaSZv8AJ136P5wjaNLV3LfE3OvXr+HCqlt7kVnujZjNLMzvYuXqqNebWiIQXbLZm9s1jrdq5di/ZvUzVbuRTvddPDExzxyfavwI8AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTuY+PGW/W/CrRZKdzHx4y3634VZBk3U/HTF+pb+5CJJbup+OmL9S39yESW+RKMBfjEYWivX8KI0q/S2EXweKuYW5vrc6xPhpnwS7FnNsPXT+HNVueaY1/kI6A0++WE877s9h3ywnnfdnsBuDT75YTzvuz2HfLCed92ewG4NPvlhPO+7PYd8sJ533Z7Abg0++WE877s9h3ywnnfdnsBuDT75YTzvuz2HfLCed92ewG4NPvlhPO+7PYd8sJ533Z7Abg0++WE877s9h3ywnnfdnsBuDT75YTzvuz2HfLCed92ewG4NPvlhPO+7PYd8sJ533Z7Abg0++WE877s9h3ywnnfdnsBuDT75YTzvuz2HfLCed92ewG4NPvlhPO+7PY18Tm9ummYsUzXVzzyQBnt+KbNNmJ/CqnWf0OG93blV25Ndydap8MvCKuDcX+Qsd/qf6aWhu3f5L9d/22/uL/IWO/wBT/TS0N27/ACX67/ttfCfKrgGVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp3MfHjLfrfhVoslO5j48Zb9b8Ksgybqfjpi/Ut/chEkt3U/HTF+pb+5CJLfIAIAAAAAAAAAAAAAAAAAAAAAAAAAALd3HblNnZ3MblydKKL81VTzRFEIpulbS4XaDHYWjAb6rDYamrS5VTvd/VVprpE8unJHhSPct8Tc69ev4cKqX4QARQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKdzHx4y3634VaLJTuY+PGW/W/CrIMm6n46Yv1Lf3IRJLd1Px0xfqW/uQiS3yACAAAAAAAAAAAAAAAAAAAAAAAAAAC1dy3xNzr16/hwqpau5b4m5169fw4VUt8AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTuY+PGW/W/CrRZKdzHx4y3634VZBk3U/HTF+pb+5CJJbup+OmL9S39yESW+QAQAAAAAAAAAAAAAAAAAAAAAAAAAAWruW+JudevX8OFVLe3Gqaa9n8wprpiqmrETExMaxMbyEc3VsiwWUY7BX8vtU2KMVTXvrVH4sVU6csR5Nd94PmX4RBAEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASncx8eMt+t+FWiyU7mPjxlv1vwqyDJup+OmL9S39yESS3dT8dMX6lv7kIkt8gAgAAAAAAAAAAAAAAAAAAAAAAAAAAuDcX+Qsd/qf6aWhu3f5L9d/22/uL/IWO/wBT/TS0N27/ACX67/ttfCfKrgGVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp3MfHjLfrfhVoslO5j48Zb9b8Ksgybqfjpi/Ut/chEkt3U/HTF+pb+5CJLfIAIAAAAAAAAAAAAAAAAAAAAAAAAAALg3F/kLHf6n+mlobt3+S/Xf9tv7i/yFjv8AU/00tDdu/wAl+u/7bXwnyq4BlQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKdzHx4y3634VaLJTuY+PGW/W/CrIMm6n46Yv1Lf3IRJLd1Px0xfqW/uQiS3yACAAAAAAAAAAAAAAAAAAAAAAAAAAC4Nxf5Cx3+p/ppaG7d/kv13/bbm49dps7OZldua7yi/NVWka8kURKIbom09naPHYaMJbrpwuGpqima40mqatNZ08kckNfCfKIgMqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTuY+PGW/W/CrRZKdzHx4y3634VZBk3U/HTF+pb+5CJJbup+OmL9S39yESW+QAQAAAAAAAAAAAAAAAAAAAAAAAAAAWruW+JudevX8OFVLV3LfE3OvXr+HCqlvgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKdzHx4y3634VaLJTuY+PGW/W/CrIMm6n46Yv1Lf3IRJLd1Px0xfqW/uQiS3yACAAAAAAAAAAAAAAAAAAAAAAAAAAC1dy3xNzr16/hwqpau5b4m5169fw4VUt8AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTuY+PGW/W/CrRZKdzHx4y3634VZBk3U/HTF+pb+5CJJbup+OmL9S39yESW+QAQAAAAAAAAAAAAAAAAAAAAAAAAAAWruW+JudevX8OFVLV3LfE3OvXr+HCqlvgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKdzHx4y3634VaLJTuY+PGW/W/CrIMm6n46Yv1Lf3IRJLd1Px0xfqW/uQiS3yACAAAAAAAAAAAAAAAAAAAAAAAAAAC1dy3xNzr16/hwqpau5b4m5169fw4VUt8AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTuY+PGW/W/CrRZKdzHx4y3634VZB39vclpx+1OLvTemidKI0inX/BCPcWKPSaup/dONqvl/FfsfchylrO0c4sUek1dT+5xYo9Jq6n90jBNo5xZt+k1dT+5xZt+lVdT+6fZRsvmOZ2YvWqLdqzP4td2rSKv0aRMt/iLmfn8F16v9rvj6blym8cbZ/wDGLzYTtarLizb9Kq6n9zizb9Kq6n91m8Rcz8/g+vV/tOIuZ+fwfXq/2r/JzfS/ie/h9orLizb9Kq6n9zizb9Kq6n91m8Rcz8/g+vV/tOIuZ+fwfXq/2n8nN9L+Hv4faKy4s2/Squp/c4s2/Squp/dZvEXM/P4Pr1f7TiLmfn8H16v9p/JzfS/h7+H2isuLNv0qrqf3OLNv0qrqf3WbxFzPz+D69X+1ixOxWa2bU10zh70xy723XOvtiD+Tm+l/D38PtFb8WKPSaup/c4sUek1dT+6R10VW66qK6ZpqpnSYmNJiXXybZ3MM2t8Jh6KaLOukXLk6Uz+jncsePLLLpk7t3OSbtQXizR6TV1P7nFmj0mrqf3WbxFzPz+C69X+04i5n5/Bder/a6/yc30v4x7/H9orLixR6TV1P7nFij0mrqf3WZOw2ZxEzF/Bz80V1f7UfzHAYnLsTNjGWpt3I5Y18ExzxPlZz9Pycc3ljZGseXHK6xqKcWLfpVXU/u+cWaPSaup/dOdmdnMz2mx84TJ8NN65TG+rqmYppojnqmeSE8jcQ2k0j/wA7lEfNN25/8by58vHh2zykdZjll4iiuLFHpNXU/ucWKPSaup/ddOa7ju1GAwlV+33Fjd7EzNvDXapr0+aKqadf0Ryq5rpqoqmmuJpqpnSYmNJiTDlw5P8AjZS45Y+YjnFij0mrqf3OLNv0qrqf3WzsruZbQ7SYGnG4a3YwuErjW3dxVc08JHPTERM6fPppLuf+CG0np2Ufvbv/AMbN5+LG6yyn6vRnfEUVxYo9Jq6n9zixR6TV1P7rL2w2FzzZSmm7mdiivC1Vb2nEWKt/b15p5ImPpiEXdMc8c5vG7ZsuPao5xYo9Jq6n9zixR6TV1P7pGNM7rr7C4SMBs7nWGprmuN7NzfTGnhomNPdU8uvZn5Lzv9T/AE1qUL4agAigAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7mPjxlv1vwq0WSncx8eMt+t+FWQTbar5fxX7H3Icp1dqvl/FfsfchymqwM+X26L2Pw1q7Oluu7TTVPzTMasB4CIvGmmKaYppiIpiNIiPJD6g2T7cUUYai1mdm7VcpiI4W3pO++eYmY5XR475V0MV1I7X7H0/reDLjmspHw+X0/JMr2SgRfjvlXQxXUjtOO+VdDFdSO12/r4PvP1j2eT61KBF+O+VdDFdSO0475V0MV1I7T+vg+8/T2eT61KBF+O+VdDFdSO0475V0MV1I7T+vg+8/T2eT61KH1FuO+VdDFdSO1hxW3WBotT3Nh8RcueSK4imn7dZ/kX1fBO/XP0nByX/rUf3QbNq1tBraiIm5aprr06Wsx/KIWThLNvD4SzZsREWqKYpp05lNZjjL2YY27icTVE3Lk6zp4I5ohKdntsoweEow2Y2rl2m3G9ouW9N9p5ImJ0+18b0/rOCeryz8S/L38vByXhmPzFgiL8d8q6GK6kdpx3yroYrqR2vs/18H3n68Hs8n1qUIlukWrdWUWL1URwtF6KaZ+aYnWPZH2Mle3GVxTrTbxVU80UR2odtLnt7Or9EzTwWHt/iW9dfpn53l9b6zgnDlNy7dvT8HJ1y60v/cGwmGsbn9i/Yinh8ReuVXpiOXWKppiJ/ZiJ+lYr8u7mm6FiNja7uHu2JxWWXqt/XairSqirTTfU+Twaax5dI8C1KN2vZiqmJmxmlM802aNY+yt/Lv8AQ9LzXluUlsr9Z6flw6JN6Wc/OG6blmAndjsYad7Rh8Zew04mIjSKZrmIqn6Y5fpTTN92/J7WFr704DG4jEzH4PDRTboifnmJmfo0+lRWcZni83zbE5jjrk14q/Xv66o5OXyRHNERpEfodP8AN9Ny48nXlNRn1PLhcdTu/Z1FFNuimi3TFNFMaRTTGkRHND0pHZHdqsWcvtYbaXCYm5iLdMU904bSrhPnqpmY0nnmJnXmSH/xp2Y81mX7in/c8XP6Tnxzu8bXbDmwuM7prtjhcPjdlM2w+MppqsVYW5NW+8mlMzE/RMRP0Px0tfdE3Wqs/wAsu5XkeGvYXCX43t69emIuV0+WmIiZiIny8s6xyKofW/y+Dk4pbn228nquTHKyYvoD6zyJDsz8l51+p/prUouvZn5Lzr9T/TWpQrUAEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASncx8eMt+t+FWiyU7mPjxlv1vwqyCbbVfL+K/Y+5DlOrtV8v4r9j7kOU1WH2mmquqKaImqqeSIiNZlvRk+YzGsYO79jq7EWaK8XiLtVMTXbpiKZnya+H+SZLJtFXYjD3sNXvMRart1c1UaavFq3Xdrii1RVXXPgppjWZTra6zRcyW7cqp1rtTTNM82sxE/zc/YazRNOJvTH/E1iiJ5oNdxwoybMZj/AJS79jTv2bli5Nu9bqt1x/hqjSVpo7trZoqy63dmmOEpuREVfNMTrC9Ih1mzcv3Ios26rlc/4aY1lud5sx0/5O79iS7E2aKcvu3oiOEruTTM/NERye2UiSYiq7tuu1cmi7RVRXT4aao0mHrD4e9ibm8sW67lfNTGqUbc2qODwt2Kf+JrNOvPHhb2x1qijJ6a6Y/DuV1TVPPpOh0iKTk2YxEzODu8nzNGumqiuaa6ZpqjkmJjSYWqh+3NminEYW9TERXcpqpqnn000/mWaEfw2Fv4qqacParuTHh3sa6NmrJ8wppmZwd7SOanVM9mbNFrJsPNFMRNcb6qeedXUJiKpmJiZiYmJjkmJZ8Lg8Ti5nuazcuaeGaY1iHY20s0W80oropiJuW4mrTyzrMapXk9mixleFot0xEcHTM/PMxrMmhA7mU5hbpmqrCXtI8OlOrRWsgG1VqiznV2LdMUxVEVTEc8xylxGhhcBisVTNWHw9y5THlink+1kvZXjrNua7mFuxRHhne66LGw1mjD4e3ZtREUUUxTEMh0m1UtrDZfi8VRv7GHuV0dKKeT7Wxm9i3Rn96zRG9tzdjkjya6a/zWHbopt0U0UUxTRTGkRHgiCQVriMtxuHtzXew12miPDVveSGotaYiYmJiJifJKvIwtqNpO5t7rZ7o3u9+bfeAsGvYyzG4i3FdnC3aqJ8FW95JfMTl+LwtG/v4e5RR0pp5PtWZERERERpEeR5uUU3bdVFymKqKo0mJ8sL0m1Vj1fpii/cojwU1TEfa8sKkOzPyXnX6n+mtSi69mfkvOv1P9NalCtQARQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKdzHx4y3634VaLJTuY+PGW/W/CrIJttV8v4r9j7kOU6u1Xy/iv2PuQ5TVYSHYzF2rGNu2rtUUzdpiKZnwax5PamqqWSL96mIiLtyIjyRVKy6RNdsMXatZXXh5qibt2adKY8MRExOvsc7YnF2rdV/DXKopuVzFVGs/jfMi8zNUzNUzMz5ZDYtZGttcXajB0YWKom9NcVzTHkiInw/aiXdF6I0i9c09aWOZ1nWfCvUJhsVi7fctzC1VRF2K5riJ/xRMR4PsSZVPLE6xySyTiL0xpN25p60pKJLtvirVc2MPRVFVyiZqq0n8X5p+du7HYu1cy2MPFURet1TrTPhmJnXVCSJmJ1iZieeDfcWshe2mLt38VYs26oqmzFW+mPJM6cnscGb96YmJvXJieeqWMt2J9sti7V/KrVuiqOEtRvaqdeWOXwuwqqmqaaommZiY8sPdV+7VTMVXbkxPkmqSZDr7XYu1isziLNUVRao3kzHg11mUryLF2sXllibVUTVRRFFdPliYjRXL7RXVROtFU0zzxOh1C1ZmIiZmdIjyq82kxVvF5vduWJ31ERFMVR4J0c+u9drjSu7XVHNNUy8Fos7AYu3jcLRes1RMVRyxHknmlnrqpopmquqKaY5ZmZ0iFWUV10TrRVVTPzTo+13blyNK7ldUc01TJ1DczTF0Xs6vYm3y2+EiY+eI07FhYbEWsVYpvWK4rt1RrEwq56ouV2/wASuqnXmnQlFpXblFm3Vcu1RRRTGs1TOkQrqMbR3+7smJ4Ph+E08umvY0q7ty5/6lddXrTMvJbsWpauUXrdNy1VFdFUaxVE8kvGKxFrC2K71+uKbdMazMqwou3LcTFuuqmPmnQuXK7n/qV1VetOq9Rou18Jdrr0031Uzp+l5BhUh2Z+S86/U/01qUXXsz8l51+p/prUoVqACKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTuY+PGW/W/CrRZKdzHx4y3634VZBNtqvl/FfsfchynV2q+X8V+x9yHKarAAgmWUbOYScFbuYyibt25TFUxvpiKdfJyN2vZzLKqJiMPNMz/ii5VrH2y6OCmJwdiY5Y4On+TM6SIrPM8HVgcwu4aZ329nknnieWEuwOzOCt4emMVRN29Ma1TvpiInmjRwdqJiNobkzPg3mv2QniSdxx72zeW126qaLNVuqfBVTXVMx9soTfwly1j6sJyTci5wcT5JnXkWcgGOn/APKap8ndFP8AOCwSTC7M5fbs003rc3rnlrmqY1n9ESYnZrL7lmqmzbqs1+SqK5nl/RMu2Lo2rGzg7lzMKcHyRdm5wc/NOukprZ2by2i3FNdmq5VHhqqrqiZ+yUbwsxO10zExpOKq+9KepIODjtmcFcw9UYWiqzeiNaZ38zEzzTqiOWYOrHY+1hone76fwp5ojllZiB7MVRxht8scu/0+fkksElt7OZZTREVWKq5j/FVcq1n7Jaeb7OYTuO5Xg6JtXaKZqiN9MxVp5OVI2HGcmDv6+bq/kuoK9yTL++WPpszM00RE1VzHhiI/+wmVOzuVxTEThpmeeblXL7Ue2JmIzW5rPhsz96lN0kKi2f7PYa1gbmIwVM267cb6ad9MxVHl8LibPZZGZ42aLlU02qI31Wnhn5k3zydMmxn6qr+SNbDf83ifUj+ZVdzi7lfo38SrtcfaPIbGFwk4rBRVRFExv6JmZjSeTWNeVLnM2mmIyPFaz5Ij3oXSIrs1lNGZX7lV+Ziza01iPDVM+T2JRxeyv0X+JV2uXsLP/CxkfPT/ANUpSQQvafJLOBs04nCa025q3tVEzrpzTCOp1tj8jT89ylBUygAMqkOzPyXnX6n+mtSi69mfkvOv1P8ATWpQrUAEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASncx8eMt+t+FWiyU7mPjxlv1vwqyCbbVfL+K/Y+5DlOrtV8v4r9j7kOU1WAZcLhruLv02cPRNdyrwRDsRstmGkctiP257EHnK9osRgsPTZrt03rdPJTrOkxHNq27m116aJi3haKavJM1TPscbMsrxWXTT3RREU1eCumdYlhwWDv46/wWGo39fhnyREc8rujHfu1371d27VNVyudapl3Mv2nxOGsU2rtqm9FMaU1TOk6fO88Vsw6Vjrz2OZmOX4nL7kUYmje77lpmOWJ/RK9x2721uIqtzTaw9u3XPgqmrfafQjdddVdyquuqZrqnWZnwzPO2cvwGIzC7NvDUb6Y5apmdIj9MunxXzDnsdeexO9GXCbVYm1ZpovWaL1URpv99vZn9JitqsTdszRZs0Wap5N/vt9MfocTHYO/gb/BYmiaKvDHliY54lly3LMVmNcxhqNaafxq6p0iDdGpTXVTciumqYrid9FUeGJ50jsbW4im3EXcPbuVx/iid7r9DBxWzDTw2OvPY4+Lw13CX6rOIomi5Hkk7wdrH7T4nE4eq1at02YqjSaonWdPm5nCsXa7F6i7aqmmuidaZjyN3LcpxeYxNWHojeRyTXVOka8zdnZfMIiZibM/NFf9juNq3tbeiiIuYW3VV5ZiqY1+hq5ntHiMbh6rFFumzbqjSrSdZmObVxsRZuYe9VavUTRcpnSaZb2XZLjMwtzcsUUxb10iqudIn9BujTweJu4TEUX7FW9uUzyJFRtddimN/hKJq8sxXMR/JqV7L5jTTMxFmqY8kV8s/bDi3aKrVyqi5TNNdM6TExpMSd4Otm2f4jMLPA7ym1an8aInWav0y5+X4y9gMTTfw9WlcckxPgmOaW5gMix2Nsxdt0U025/FmudNf0M13ZnMbduaoptV6f4aa+U7jeja65pGuEo18v4c9jmZxneIzOiLdVNNuzE67ynyz88uVVE01TFUTExyTE+R1sJs9j8VZpu00UUU1RrTv6tJmOdd0amWZhfy3EcLh5jljSqmrwVQ7sbXXPLhKOvPY0MRs3mFi1Vc3lFyKeWYoq1n7HGTdg6OcZviMzqpi7FNFqnlpop8GvPPPLnOzY2bzC9aiuaKLevLFNdWkvGM2fx+FsVXaqKK6KY1q3lWsxHPod6OSAgkOzPyXnX6n+mtSi69mfkvOv1P9NalCtQARQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKdzHx4y3634VaLJTuY+PGW/W/CrIJttV8v4r9j7kOU6u1Xy/iv2PuQ5TVYSfYamJxGLq0jfRTTET9M9iXoFstmVrL8ZXGIne2rsRE1dGY8CZRmeAn/APdw372ntax8I09q6YnIsRMxEzTNMx834UR/1c/YWmO58VVp+Fv6Y1+h82qzjD3MFVhMNcou13JjfTTOsRETr4efkhobJZnZwdy9ZxNW8puTExX5ImPJJRN3A21picpomYjWLsaTzckup3ywPpuG/e09qN7XZrh8TYowuGri5pVv6qqfBGnkifL4Vo6GxVERlVdURG+quzrP0Q76H7JZrYw1q5hcVXFuJq39FdXg8EaxM+TwJL3ywPpuG/e09pPA4e3UR3NhZ0jXfzGv0N7ZGIjJLUxGkzVVM/PyuHtbmdjG12bGGqium3M1VVx4NeaG5spm2GtYPuXE102q6apmmqqdImJ5fCm+6pSiW3dNMV4KuI/CmK4mfmjTtlIpzPARH/O4b97T2oftVmVrMMVbow8761ZiYirnmfDp83JC3wkSrZ2mKclwkUxEa06+10Uc2azjC977eHxF2izctRp+HOkVRz6uxOZ4CImZxuG+i7TP/UngRXbimIzKzVEREza5Z5+WUsyumKMtwtNMaRFqn+SD7S5hbzDMN/Y/9KimKKZ6Xl19qS5FnWEu4C1bv3qLN63TFExXVvYnSNNYmT5V3EC2upiM7uTEaa0UzPz8iY15pgKKZqnG4eYjmuRM/ZCCZ7jacfmV2/biYt8lNOvhmI8qVIsaimKKKaKY0ppjSI+Z9crLc8weKwtFV2/bs3dNK6blUU8vzati7m2AtW5rqxliYjyU1xVP2QohmdU08ZL1O9jezdp1j9OmqwFaY/Gd05pdxdNOkVVxVTE80eD+SdYPOsBibFNzum1amY5aLlcUzE/Sk8jooDFuiNrN5vY3ndXg8n4yX4jOMBYtVXJxVmvSPxbdcVTP0QgcY2rvt3dNP4XC8Lvfp10KRZY0LGcYC9aiunF2aYnyV1xTMfRLzjM6wOGsVXIxFq7VEclFuuKpmfo8DQr3EUxTibtNMaRFcxEfS8PtdU111V1eGqZmXxzqpDsz8l51+p/prUouvZn5Lzr9T/TWpRK1ABFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp3MfHjLfrfhVoslO5j48Zb9b8Ksgm21Xy/iv2PuQ5Tq7VfL+K/Y+5DlNVgHc2SwFnG4y5XiaYrotRExRPgmZ5/sTTuXDxGkWLWnqQsm0VeLQnC4eY0mxamJ/9kITtXgbOCx9E4eneUXad9vY8ETr5PmLNDijq7NYG3j8zii/Gtuiia5p59JiNPandOEw1NMRTh7MRHgiKISTYq8Wj3NY8xa6kIjtjl1nC12b+HoptxcmYqpp5I159F6RHBPdncuw1rK7FybVFdy5TFdVVVMTPL5HU7mseYtdSCYirhaPc1jzFrqQdzWPMWupB0irhaPc1jzFrqQdzWPMWupB0irhaPc1jzFrqQdzWPMWupB0m1XC0e5rHmLXUh8qwmGqpmmrD2ZpnwxNEHSKvG9nuGt4PNsRYs6xbpmJpjm1iJ09qX7P5ZhbOW2Lk2qK7t2iK6q6qdZ5Y10hJFQIWj3NY8xa6kNfG5XhMXYqt3LNumZjkqppiJpnniV6UVsFUb2qqmfDE6JpsrlmHjLreJuW6bl27rOtUa72NdNI+xNKhYtHuax5i11IY7+X4S/am3dw9qaZ5qYiY+lelFZDNjbHc2Mv2NdeDrmmJ59JYWVSHZn5Lzr9T/TWpRdezPyXnX6n+mtShWoAIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlO5j48Zb9b8KtFkp3MfHjLfrfhVkE22q+X8V+x9yHKdXar5fxX7H3IcpqsJPsNVEX8XTMxvpppmI+me1L1W4bEXcNepu2K5ouU+CYdTjJmfnqf3dKy6RPkN24qicdhqYn8KLczMfS0+MmZ+ep/dw5WIvXMRequ366q7lXhqktHb2LrppzeuJnSarVUR886xP8A0ThVdq5XauU3LdU0V0zrFUTpMOtG0eZxERw9M/sU9hLoT5F9ua6eBwtGv4U1VTp82jk8ZMz89T+7hzcZir2MvTdxNyblyfLK3IWFkcxOT4PSdf8AhRDeVxgM3xuBtcFh72lvXXezETEfo1bPGTM/PU/u4JkJ8IDxkzPz1P7uDjJmfnqf3cHVDSfCA8ZMz89T+7g4yZn56n93B1Q0nwgPGTM/PU/u4OMmZ+ep/dwdUNJ8IDxkzPz1P7uHydo8zmJjh6Y/RRHYdUNPG1MxOfYrSdfxfuwm2TVU1ZRg5pnWOBoj6YiIlW1yuq5cmuuqaqqp1mZ8My3cBm2MwNubeHvb2ieXezETEfo1SXuqyCZiImZmIiOWZlAeMmZ+ep/dww4vO8wxVmbV2/8A8OrwxTTEa/YvVE051yYm5XMeCZmVg7MV01ZHht7OukTE/NOsq9beAzLFYCau5bs0RV4aZjWJ+iWZe6rLEB4yZn56n93DHfz/ADG9aqt1X9Kao0ne0xE/a11RNNbOK6a81xlVM60zdq0nn5WoDNVIdmfkvOv1P9NalF17M/Jedfqf6a1KJWoAIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAk+5pVFO2+WTVOka3I+23VCMNvKMbXluaYXG241qsXabmnPpPLH0+AFqbVfL+K/Y+5DlO5tPTbxU4bNcJO/wuLt0zFUc+nl+j+UuG1WABAAAAAAAAB2MJs5jsVhrd+ibUUVxrEVVcujNxWzDnsdeexyLWPxdmiKLOKv26I8FNNyYiHvvljvTcV+9q7VHU4rZhz2OvPYcVsw57HXnscvvljvTcV+9q7TvljvTcV+9q7TsOpxWzDnsdeew4rZhz2OvPY5ffLHem4r97V2nfLHem4r97V2nYdTitmHPY689jiYi1Vh79yzc0iuiqaZ054Z++WO9NxX72rtaszMzM1TMzPLMz5QAEAAAAAAAAHf2dqi3k+e11clNNjWerWpZamfYuMl2Iv01TvcVmk8Hbp8vB+WfsmetCqytQARQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEw2L2royy1VlubUTfym7OukctVmZ8sfN830x881pyKnHWe6ckxljGYarwTFXLHzT8/2KabGDxmJwV3hcHiL1i50rVc0z7F2li2OLmaejxP1lPa+cXc09G/iUdqvqdr8/piIjNcVpH/ALn3jhtB+VcT1jsaWBxdzT0b+JR2nF3NPRv4lHar/jhtB+VcT1jjhtB+VcT1jsaWBxdzT0b+JR2nF3NPRv4lHar/AI4bQflXE9Y44bQflXE9Y7GlgcXc09G/iUdpxdzT0b+JR2q/44bQflXE9Y44bQflXE9Y7GlgcXc09G/iUdpxdzT0b+JR2q/44bQflXE9Y44bQflXE9Y7GlgcXc09G/iUdpxdzT0b+JR2q/44bQflXE9Y44bQflXE9Y7GlgcXc09G/iUdpxdzT0b+JR2q/wCOG0H5VxPWOOG0H5VxPWOxpYHF3NPRv4lHacXc09G/iUdqv+OG0H5VxPWOOG0H5VxPWOxpYHF3NPRv4lHacXc09G/iUdqv+OG0H5VxPWOOG0H5VxPWOxpYHF3NPRv4lHacXc09G/iUdqv+OG0H5VxPWOOG0H5VxPWOxpYHF3NPRv4lHacXc09G/iUdqv8AjhtB+VcT1jjhtB+VcT1jsaWBxdzT0b+JR2nF3NPRv4lHar/jhtB+VcT1jjhtB+VcT1jsaWBxdzT0b+JR2vvF3NPRv4lHar7jhtB+VcT1jjhtB+VcT1jsaWFTs3mdU8timn9NyntY8dTlmzlHDZ3iaL2IiNaMHZnWqqfJrzR/95fAry/tTnt+3NFzNcXvZ5Jim5NOv2ONVVNVU1VTM1TyzMzyybNOntFnWJz3Mq8Xi5iOTe27dP4tunyRDlgigAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMs2LkeGn2w88FXze1nqqmZ5Zn7XjWeeWdrpj4OrmN5VzPczPPL5rPPKjxvKuY3lXM96zzms84PG8q5jeVcz3rPOazzg8byrmN5VzPes85rPODxvKuY3lXM96zzms84PG8q5n2LVc+CHrWed7tzPLyyDHwNzo+04G50fazazzyazzyIw8Dc6PtOBudH2s2s88ms88gw8Dc6PtOBudH2s2s88ms88gw8Dc6PtOBudH2s2s88ms88gw8Dc6PtOBudH2s2s88ms88gw8Dc6PtOBudH2s2s88ms88gw8Dc6PtOBudH2s2s88ms88gw8Dc6PtOBudH2s2s88ms88gw8Dc6PtOBudH2s2s88ms88gw8Dc6PtOBudH2s2s88ms88gw8Dc6PtOBudH2s2s88ms88gw8Dc6PtOBudH2s2s88ms88gw8Dc6PtOBudH2s2s88ms88gw8Dc6PtOBudH2s2s88ms88gw8Dc6PtOBudH2s2s88ms88gw8Dc6PtOBudH2s2s88ms88gw8Dc6PtOBudH2s2s88ms88gw8Dc6PtOBudH2s2s88ms88gw8Dc6PtOBudH2s2s88ms88gw8Dc6PtOBudH2s2s88ms88gw8Dc6PtOBudH2s2s88ms88gw8Dc6PtOBudH2s2s88ms88gw8Dc6PtOBudH2s2s88ms88gw8Dc6PtOBudH2s2s88ms88gwVW66Y1qjR50lmuzO9jlnwsWqwfN7JvZfdTVUfN7JvZfdTUCKZmYiIeuBudH2vlMzvo/Sz6zzylVh4G50facDc6PtZtZ55NZ55QYeBudH2nA3Oj7WbWeeTWeeQYeBudH2nA3Oj7WbWeeTWeeQYeBudH2nA3Oj7WbWeeTWeeQYeBudH2nA3Oj7WbWeeTWeeQYeBudH2nA3Oj7WbWeeTWeeQYeBudH2nA3Oj7WbWeeTWeeQYeBudH2nA3Oj7WbWeeTWeeQYeBudH2nA3Oj7WbWeeTWeeQYeBudH2vvAXOj7WTfTzy9b6eeQYeAudH2nAXOj7WbfTzy+76eeQYO57vR9sPvc13oe2GeKp55fYqq55+0GCMJfnwUe2BuW6p55+0F0/9k=","e":1},{"id":"fr_5","w":760,"h":554,"u":"","p":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAIqAvgDASIAAhEBAxEB/8QAHAABAAIDAQEBAAAAAAAAAAAAAAYHAwQFAgEI/8QAUhABAAECAwALCwcKBQEIAwAAAAECAwQFEQYHEhMWIVFSkqHRFBUxNkFTVHKDorM1YXGBkbLhIkJVY3OCk6OxwjJFdMPSIxckJjRiwdPwM0Tx/8QAGwEBAQEBAQEBAQAAAAAAAAAAAAECAwQFBgf/xAAlEQEBAAIBAwUBAQADAAAAAAAAAQIRAxIhMQQTQVKRFAUyQnH/2gAMAwEAAhEDEQA/APyoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANnL8DicxxdvC4KzXev1zpTRTHX80fOsbLdrfC4TDRidkmY02qY46qLdUUU0/TXV2ArAWlXl+15anc1YqKpjyxduVa/XHE89x7XXpM9O72LpNqvFodx7XXpM9O72Hce116TPTu9ho2q8Wh3Htdekz07vYdx7XXpM9O72GjarxaHce116TPTu9h3Htdekz07vYaNqvFodx7XXpM9O72Hce116TPTu9ho2q8Wh3Htdekz07vYdx7XXpM9O72GjarxaHce116TPTu9h3Htdekz07vYaNqvFodx7XXpM9O72Hce116TPTu9ho2q8Wh3Htdekz07vYdx7XXpM9O72GjarxaHce116TPTu9h3Htdekz07vYaNqvFodx7XXpM9O72Hce116TPTu9ho2q8Wh3Htdekz07vYdx7XXpM9O72GjarxaHce116TPTu9h3Htdekz07vYaNqvFqW8j2BZhpawuPi1cniid/mmffcbZNtdY7LbNWJy253dhqY1mmKdLlMfR+d9X2Gl2ggCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+xEzMRETMz4Ih8d7YJhKcbsuyyzXETTvu+TE+XcxNX9oLCwFrCbX2xSMZibUXM1xMREx5ZqnjijXyUx5f8A+KvzrOMdnOLnEZhfqu1/m0/m0RyUx5ISvbfx1d/ZLbwu6ne8NZiIp/8AVVxzP2bn7EEWoAIoAAAAAAAAAAAAAAAAAAAAAAAAluwvZji8ixNuziK67+W1TpVaqnWbcctPJ9HgnrRIBYu2hsfw9FFrPsrimcNiJjfYo/w61ccVx9Pl+fTlV0tnYhX342r8ywd+d1Nim7bo18mkRXT9kz1KmWgAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTtY+PGW+1+FWiyU7WPjxlvtfhVkGTbT8dMX6lv7kIklu2n46Yv1Lf3IRJb5AGTD2bmIu027VM1VSgxiQ4fIrcUxOIuVVVclPFDY7y4Pm19IEWEp7y4Pm19I7y4Pm19IEWEp7y4Pm19I7y4Pm19IEWEp7y4Pm19I7y4Pm19IEWEp7y4Pm19I7y4Pm19IEWEp7y4Pm19I7y4Pm19IEWEp7y4Pm19I7y4Pm19IEWEp7y4Pm19I7y4Pm19IEWEp7y4Pm19I7y4Pm19IEWEp7y4Pm19I7y4Pm19IEWEp7y4Pm19J8qyTCTGkRcj54qBFx1cwyi5hqZuWp3y3Hh4uOHKAABau1b4m5169fw4VUtXat8Tc69ev4cKqW+AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp2sfHjLfa/CrRZKdrHx4y32vwqyDJtp+OmL9S39yESS3bT8dMX6lv7kIkt8glGQYaLWDi7Mf9S5x6/N5EXTLLaoqwGHmPNxH2Qg3cPZuYjEWrFmndXblUUUU66azM6RDsZxsUzbKMJcxWLs4evD27kWbtzC4uziYtVzrpTXvVdW5nin/Fp4Gnsd8YMs/1Vr78J5bzvK+GFWU5Tk1eHpx+bWbeMuYrFd0b5TTiIq3NNO4pimJqiJnXWeLTXwgr3DYG/icHjMVa3vecLTTVd3V2mmrSqqKY3NMzrVxz5InTytVZHfHfKNl2MrwWXROV3MPGFt0YS3TRbppxUfk6RH5WscUzVrMxrrMujOQ5dhc1wGGwc4OijZFjqMbg5vWqb+84Omnd029xMxE1VV1Tb3M6azZ04okFW4LCYjHYuzhcHZuX8Teqii3at061V1T4IiPLLAvrKKZwGc7C81xGCuYDG3c6nB11Y7AWMPcmzVFE8dFNMRHHM7mqYiqNZ0nwOXk2DxlWUU4i9k+Krz2vHV05lZw+RYe/Vb0po3ui5aqimLVE0zVPFERVM1azxRoFTZPlmLzjH04PAW6a71VNVc7uumimmmmJmqqqqqYimmIiZmZmIZc9yTG5JftW8dTZmm9Rvlq7YvUXrV2nWY1promaZ44mOKeKYlI8oou8Ps2o2LYPD1UTOJptZdia4uRiLWsxNiJpmd3M066bmrWdOKddNZhlGx21hcddxGH2P04PNcRk2Ju05NmP/V3m7Tcoi3XTTc/K0q1nc016zMxMccSCmhbmBynF4qclvZ1gLWD2Rx3Zcpw1OW2t/wATYot0zR/3eYima93NcUzNOsxEzpO5jXdxuV0XZwuKsZVROyWrKrteEwmJwVqi5dvU36I1qs0xuarkWZuTTE06zpTOkzEahSwtrIMDi7uLxt3ZBk9FjZBTl1NeDsYfL7NV+5RvulVycNMxTNyKeKNaYnc61REzG6RTbLt2bebYKKcBfwOMnCUziqb1i3h6rle6q0rm1bmYtzNO51idJnTdaflcYRAAAAAAAAAABEs5w0YbG1U0RpRVG6pjkS1Hdk1UTirVPlijWftBxgAWrtW+JudevX8OFVLV2rfE3OvXr+HCqlvgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKdrHx4y32vwq0WSnax8eMt9r8Ksgybafjpi/Ut/chEkt20/HTF+pb+5CJLfIO3kGPptx3NenSJnWiZ8H0OIIJ2Ilhs0xWHpimm5uqY8lcatjv7iuZZ6M9oJKI139xXMs9Ge07+4rmWejPaCT111XKpqrqmqqfDMzrMlFddG63FVVO6jczpOmsciMd/cVzLPRntO/uK5lnoz2gkscU8To5Zm+Jy6Mw3qKLk47DVYW7N3WZimqaZmY4/D+THh1Qnv7iuZZ6M9p39xXMs9Ge0Enm5XNe7qrqmvw7qZ43yaqpq3UzO6111149UZ7+4rmWejPad/cVzLPRntBJ98r3zfJrq3euu6149eXV8qmapmapmZnjmZRnv7iuZZ6M9p39xXMs9Ge0ElEa7+4rmWejPad/cVzLPRntBJRGu/uK5lnoz2nf3Fcyz0Z7QSURrv7iuZZ6M9p39xXMs9Ge0ElEa7+4rmWejPad/cVzLPRntBJRGu/uK5lnoz2vlWeYqY0iLVPzxTPaCQ4i/bw9qbl2qKaY60QxmIqxWJru1fnTxRyQ84jEXcRXur1yqufn8jEAAC1dq3xNzr16/hwqpau1b4m5169fw4VUt8AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTtY+PGW+1+FWiyU7WPjxlvtfhVkGTbT8dMX6lv7kIklu2n46Yv1Lf3IRJb5ABAAAAAAAAAAAAAAAAAAAAAAAAAABau1b4m5169fw4VUtXat8Tc69ev4cKqW+AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp2sfHjLfa/CrRZKdrHx4y32vwqyDJtp+OmL9S39yESS3bT8dMX6lv7kIkt8jYwmFuYq5ubcaRHhqnwQ7FrKcPRH5e6uT886f0bGAsRh8LRREflTGtX0tgRp97cJ5r3p7TvbhPNe9Pa6Fmzdv1bmxaruVeHSimZnqfLtq5Zr3F2iqiuPzaomJBod7cJ5r3p7TvbhPNe9Pa3AGn3twnmventO9uE81709rcAafe3Cea96e0724TzXvT2twBp97cJ5r3p7TvbhPNe9Pa3AGn3twnmventO9uE81709rcAafe3Cea96e0724TzXvT2twBp97cJ5r3p7TvbhPNe9Pa3AGn3twnmventO9uE81709rcAafe3Cea96e0724TzXvT2twBp97cJ5r3p7TvbhPNe9Pa3AGn3twnmventa+Jyi3VTM2Kppq5J44dQBErtuq1cmi5ExVHhh4dzPbEVWab0R+VTOkz8zhoq1dq3xNzr16/hwqpau1b4m5169fw4VUt8AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTtY+PGW+1+FWiyU7WPjxlvtfhVkGTbT8dMX6lv7kIklu2n46Yv1Lf3IRJb5EwZcLRVcxVmi3pu6q4inWNY11Ynu1XVau0XKJ0romKonkmBErzTdXr2OpyO/dsXbNye6MPRVud93PFNymI64c7K8VdzSastx9dV/d0VTYu1/lV264jWOPknTSYZbuHuY/GxmWTXaYv11b5XZ3yKa7dfl8M8ca8jdxVruWqczppwtvMabdW/4aLtM6TMbnfIiJ4p4/8KiIN7DWLddmmqqnWZ18s8rRbVnFb3bijca6eXVEbPctnmdcnctnmdcsPd36v3ju79X7wmmbuWzzOuTuWzzOuWHu79X7x3d+r94NM3ctnmdcnctnmdcsPd36v3ju79X7waZu5bPM65O5bPM65Ye7v1fvHd36v3g0zdy2eZ1ydy2eZ1yw93fq/eO7v1fvBpm7ls8zrk7ls8zrlh7u/V+8d3fq/eDTN3LZ5nXJ3LZ5nXLD3d+r947u/V+8GmbuWzzOuTuWzzOuWHu79X7x3d+r94NM3ctnmdcnctnmdcsPd36v3ju79X7wPuJsW6LNVVNOkxp5Z5Wi2r2K3y3NG4018urVFaeb/J136v6wjaSZv8nXfq/rCNo0tXat8Tc69ev4cKqW3tRWe6NjGaWZncxcvVUa8mtEQguzLYze2NY63ZrvRfsXqZqt3Ip3OunhiY5Y4vtX4EeAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp2sfHjLfa/CrRZKdrHx4y32vwqyDJtp+OmL9S39yESS3bT8dMX6lv7kIkt8iUYC/GIwtFcT+VEaVfS2EXwmKuYW5urc6xPhpnwS7FrNsPXT+XNVueSY1/oI6A0++WE877s9h3ywnnfdnsBuDT75YTzvuz2HfLCed92ewG4NPvlhPO+7PYd8sJ533Z7Abg0++WE877s9h3ywnnfdnsBuDT75YTzvuz2HfLCed92ewG4NPvlhPO+7PYd8sJ533Z7Abg0++WE877s9h3ywnnfdnsBuDT75YTzvuz2HfLCed92ewG4NPvlhPO+7PYd8sJ533Z7Abg0++WE877s9h3ywnnfdnsBuDT75YTzvuz2HfLCed92ewG4NPvlhPO+7PY18Tm9ummYsUzVVyzxQBnt+KbNNmJ/KqnWfocN7u3K7tya7k61T4ZeEVcG0v8AIWO/1P8AbS0Nu7/Jfbf7bf2l/kLHf6n+2lobd3+S+2/22vhPlVwDKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7WPjxlvtfhVoslO1j48Zb7X4VZBk20/HTF+pb+5CJJbtp+OmL9S39yESW+QAQAAAAAAAAAAAAAAAAAAAAAAAAAAW7tO3KbOx3MblydKKL81VTyRFEIptlbJcLsgx2FowG6qw2GpqiLlVO53dVWmukTx6cUeFI9q3xNzr16/hwqpr4QAZUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnax8eMt9r8KtFkp2sfHjLfa/CrIMm2n46Yv1Lf3IRJLdtPx0xfqW/uQiS3yACAAAAAAAAAAAAAAAAAAAAAAAAAAC1dq3xNzr16/hwqpau1b4m5169fw4VUt8AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTtY+PGW+1+FWiyU7WPjxlvtfhVkGTbT8dMX6lv7kIklu2n46Yv1Lf3IRJb5ABAAAAAAAAAAAAAAAAAAAAAAAAAABau1b4m5169fw4VUt/aappr2P5hTXTFVNWI0mJjWJjcQje2vkWCyjHYK/l9qmxRiqa91bo4qYqp044jya7rwfM18IggDKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7WPjxlvtfhVoslO1j48Zb7X4VZBk20/HTF+pb+5CJJbtp+OmL9S39yESW+QAQAAAAAAAAAAAAAAAAAAAAAAAAAAXBtL/IWO/1P9tLQ27v8l9t/tt/aX+Qsd/qf7aWht3f5L7b/ba+E+VXAMqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTtY+PGW+1+FWiyU7WPjxlvtfhVkGTbT8dMX6lv7kIklu2n46Yv1Lf3IRJb5ABAAAAAAAAAAAAAAAAAAAAAAAAAABcG0v8hY7/U/20tDbu/yX23+239pf5Cx3+p/tpaG3d/kvtv8Aba+E+VXAMqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTtY+PGW+1+FWiyU7WPjxlvtfhVkGTbT8dMX6lv7kIklu2n46Yv1Lf3IRJb5ABAAAAAAAAAAAAAAAAAAAAAAAAAABcG0v8hY7/AFP9tLQ27v8AJfbf7bc2nrtNnY5mV25ruKL81VaRrxRRGqH7Ymyezsjx2HjB0V04XDU1RRNyNKqpq01nTyeCGvhPlEgGVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp2sfHjLfa/CrRZKdrHx4y32vwqyDJtp+OmL9S39yESS3bT8dMX6lv7kIkt8gAgAAAAAAAAAAAAAAAAAAAAAAAAAAtXat8Tc69ev4cKqWrtW+JudevX8OFVL8AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTtY+PGW+1+FWiyU7WPjxlvtfhVkGTbT8dMX6lv7kIklu2n46Yv1Lf3IRJb5ABAAAAAAAAAAAAAAAAAAAAAAAAAABau1b4m5169fw4VUtXat8Tc69ev4cKqW+AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp2sfHjLfa/CrRZKdrHx4y32vwqyDJtp+OmL9S39yESS3bT8dMX6lv7kIkt8gAgAAAAAAAAAAAAAAAAAAAAAAAAAAtXat8Tc69ev4cKqWrtW+JudevX8OFVLfAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7WPjxlvtfhVoslO1j48Zb7X4VZBk20/HTF+pb+5CJJbtp+OmL9S39yESW+QAQAAAAAAAAAAAAAAAAAAAAAAAAAAWrtW+JudevX8OFVLV2rfE3OvXr+HCqlvgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKdrHx4y32vwq0WSnax8eMt9r8Ksg7+z3Jacdspxd6b00TpRGkU6/mQj3Bij0mrofinGyr5fxX7n3IcpaztHODFHpNXQ/E4MUek1dD8UjBN1HODFv0qroficGbfpVXQ/FPso2L5lmdmL1qm3atT/hru1aRV9EREy6HATM/SMF06v+Ltj6blym8cbZ/4xebCXVqseDNv0qroficGbfpVXQ/FZ3ATM/SMF06v+JwEzP0jBdOr/i1/Jz/S/ie/h9orHgzb9Kq6H4nBm36VV0PxWdwEzP0jBdOr/icBMz9IwXTq/wCJ/Jz/AEv4e/h9orHgzb9Kq6H4nBm36VV0PxWdwEzP0jBdOr/icBMz9IwXTq/4n8nP9L+Hv4faKx4M2/Squh+JwYt+k19D8VncBMz9IwXTq/4sOJ2FZrZtTXROHvTH5luudZ+2IP5Ob6X8X38PtFb8GbfpVXQ/E4MW/Squh+KSV0VW66qK6ZpqpnSaZjSYl1sm2O5hm1G+Yeimiz4N8uTuaZ+jyy5TjyyvTJ3buck3agvBm36VV0PxODNv0qrofis7gJmfn8F06v8AicBMz8/gunV/xdf5Of6X8c/fw+0VjwYt+k19D8Tgxb9Jr6H4rNnYLmcROl7BzPJu6v8AijuY4DE5diZsYy1Nu5HHx8cTHLE+VnP0/LhN5Y2RrHlxyupUU4MW/Squh+JwZt+k1dD8U52M7HM02TY/uTJ8NN65TG6rqmdzTRHLVM+BO42kNkkxE925RHzTduf/ABvLny8eHbOyOsxyy8RRfBij0mroficGKPSauh+K6c12ndlGX4Sq/ajBY3cxMzbwt2qa9PmiqmnX6I41c1UzRVNNdM01ROkxMaTEmHLhyf8AC7MscsfMRzgzR6TV0PxODFHpNXQ/FbGxXay2Q7JMDTjMNbsYXCV8du7iq5oi5HLEREzp8+mju/8AYhsk9Oyf+Nc/+NMufixusspKswzveRRXBij0mroficGKPSauh+Ky9mGwXPNilNNzM7FFeFqq3MYixVu7evJPFEx9cQi7eGeOc3jds2ZY9qjnBij0mrofi+8GKPSauh+KRDTO66+wXCRgNjudYaK5rjczc3Uxp4aJjT3VPLr2M/Jedfsf7a1KFagAigAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7WPjxlvtfhVoslO1j48Zb7X4VZBNtlXy/iv3PuQ5Tq7Kvl/FfufchymqwM+X26L2Pw1u7Oluu7TTVPzTMasB4PARF5U0xRTFNMRFMRpER5IEGyfZxRRh6LWZ2blVymNN9t6TuvnmJmON0eG+VczFdCO1+x9P63gy45rKR8Pl4OSZXslAi/DfKuZiuhHacN8q5mK6Edrt/XwfefrHs8n1qUCL8N8q5mK6Edpw3yrmYroR2n9fB95+ns8n1qUCL8N8q5mK6Edpw3yrmYroR2n9fB95+ns8n1qUCL8N8q5mK6EdrDitnWBotT3Nh8RcueSK4imn651n+hfV8E79c/ScHJf8ArUf2wbNu1sgmbURFVy1TXXEc7WY/pELJwlm3h8Las2IiLVFMU06cmimcxxt7MMZdxWJq3V25Os6eCOSISrY9syjB4SjDZjauXabcbmi5b0mrTyRMTp9r43p/WcE9Vlne0vivfy8HJ7MnzFgiL8N8q5mK6Edpw3yrmYroR2vs/wBfB95+vB7PJ9alKI7ZFq3VlFi9VEb7ReimmfLpMTrHVH2MlezjK4p1i3iqp5NxHah2yXPr2d4iiZo3rD2/8FvXX65nleX1vrOCcNnVLt29PwcnXLrS/wDaGwmGsbX9i/Yinf8AEXrlV6Yjj3UVTTET+7ET9axX5d2tNsLEbDq7uGvWJxWWX693XairSqirTTdU+TwRGseXSPAtSjbq2MVUxM2M0pnkmzRr1Vv5d/oel5rzXKS2V+s9Py4dGrdLOfnDbNyzATtx2MNO5ow+MvYacTEcUUzXMRVP1xx/TKaZtt35PawtferAY3EYmY/I36KbdET88xMz9Wn1qKzjNMVm+a4nMsdcmvFX693XVHFpPkiOSIjSI+h0/wA303LjydeU1GfU8uFx1O79nUU00UU0UUxTRTGlNNMaREckPSkdiO3VYs5faw2yXCYmu/bpinunD6Vb5p5aqZmNJ5ZiZ15Eh/7adjHmsy/gU/8AJ4+f0nPjnd42u2HNhcZ3TXZjhcPjdiubYfG001WKsLcmrdeTSmZifqmIn6n46WvtibbVWfZZdyvI8NewuEvxub129MRcrp8tMREzERPl451jiVQ+r/l8HJxS3OaleT1XJjlZMX0B9Z5Eh2M/Jedfsf7a1KLr2M/Jedfsf7a1KFagAigAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7WPjxlvtfhVoslO1j48Zb7X4VZBNtlXy/iv3PuQ5Tq7Kvl/Ffufchymqw+001V1RTRE1VTOkREazLejJ8xmNYwd364dXYRZorxeIu1UxNdFMRTM+TXw/0TJZNoq7EYe9hq9xiLVdurkqjR4t267tcUWqKq658FNMazKd7LrNFzJbtyqPy7U0zTPJrMRP9XO2DWaJoxN6YibkTFETyQaVwoybMZjXuS79jTv2bli5NF+3Vbrj82qNJWmj2zazRVltu7NP/UpuREVeXSYniOlENs2bl+5FFm3VcrnwU0xrLc7zZjpr3Hd+xJdhNminL7t6IjfK7k0zPzREcXXKRExFV3bddq5NF2iqiunimmqNJh6w+HvYm5uLFuu5VyUxqlOzm1RveGu7mN81mnX5vC3dh1qijJ6a6adK7ldU1Ty6TpBoRScnzGI1nB3fsaNdNVFU010zTVE6TExpMLVQ/ZzZopxGFvUxpXciqmqeXTTT+pZoR/C4W/iq5pw1mu7MeHcxro2KsnzCmmapwd7SOSnVNNjNqi1k2HmimImuN1VPLLqExFUzExMxVGkx4YlnwuDxOLme5rNy5p4Zpjih2Nmlmi3mlFdFOk3LcTVp5Z1mNUryazRYyvC0W6YiN7pqn55mNZk13EDuZTmFumaqsJe3MeHSnVorWQDZXaos51di3TFMVRFUxHLMcZcRo4bAYrFUzVh8PcuUxxaxTxfa93srx1m3NdzC3aaI8M7nXRY2Gs0YfD27NqIiiimKYhkOk2qltYbL8ZiqN3h8Ncro50Rxfa2c3sW6M/vWaKdzbm7HFHk107VhUUU26KaKKYpppjSIjwRBIqtcRlmNw9ua72Gu00R4atzxQ1FrTETExMaxPkV5GFtRsk7m3Otnujc7n/07rwFiNfD5ZjcRbi5Zw12qifBVueKXzE5fi8LRu8Rh7tujnTTxfasyIiIiIjSI8EPNyim7bqouUxVRVGkxPlhek2qse71MUX7lEeCmqYj7XhhUh2M/Jedfsf7a1KLr2M/Jedfsf7a1KFagAigAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7WPjxlvtfhVoslO1j48Zb7X4VZBNtlXy/iv3PuQ5Tq7Kvl/FfufchymqwkOw3F2rGNu2rtUUzdpiKZnwax5OtNVUskX71MRFN25ER5IqlZdImuzDF2reV14eao327NOlOvHERMTr1OdsJxdq3Vfw1yqKa65iqjX87lhF6pmqdapmZ5ZDYtZGtmuLtdx0YWKom9NcVzTHkiInw/aiUYi9EaReuaetLHM6zrPhOoTDYVi7fctzC1VRF2K5riJ/OiYjwfYkyqYnSdY8LJ3Re00365p60kyEl2b4q1XvGHoqiq5RM1VaT/h+aW7sOxdqvLow8VRF23VMzTPhmJnXWEJImYnWJ0nlNi1kL2aYu1fxdixaqiqbMVbqY8kzpxdTgzfvTGk3rkx60sZbsT7Yti7V/KrVuiqN8tRua6fLHH4XYVVTVNNUTTMxMeWHqq/eqjSq7XMT5JqmSZDsbLsVaxWZ0xZqiqm1RuJqjwa6zKV5Di7WLyyxNqqJqooporp8sTEaK5faK6qJ1oqmmeWJ0OruLVmYiJmZ0iPKrzZLireLze5XYndUREUxVHgnRz6712uNK7tdUck1TLwW7FnYDF2sbhbd+zVExVHHHNnklnrrpopmquqKaY45mZ0iFWUV1251oqqpn5p0fa71yuNK7ldUck1TJ1Gm5mmKovZ1exNrWq3vkTHzxGnYsLDYi1ibFN2xXFduqNYmFXPVFyu3/wDjrqp15s6EotK7cos26rl2qKKKY1mqZ0iFdxjaO/vdkxO9b/vnz7nXsaNy7XciIuV1VfTMy8luxalq5Ret03LVcV0VRrFUTrEvGKxFrC2K71+uKKKY1mZVjRduW4mLddVOvNnR8uV13JjfK6qtOWdV6jRdr3y7XXppuqpnR5BhUh2M/Jedfsf7a1KLr2M/Jedfsf7a1KFagAigAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7WPjxlvtfhVoslO1j48Zb7X4VZBNtlXy/iv3PuQ5Tq7Kvl/FfufchymqwAIJnlGxzCTgrdzGUTdu3KYqmN1MRTr5OJuV7HMsqomIw80zP50XKtY+2XRwUxODsTE6xNun+jM6aRWeZ4OrA5hdw0zutzMbmeWJ44S7A7GcFbw9MYuib16Y1qndTERPJGjg7KJiNkFydeKNxr9kJ4kncce9sby2u3VTRZqt1T4Kqa6pmPtlCb+EuWswqwmsTci5vcT5JnXiWcgGPn/AMU1f6in+sFgkmF2NZfbs0037dV65px1zXMaz9ESYnY1l9yzVTZt1Wa/JVFczpP0TLti6grGzhLlzMKcHxU3Jub3PzTrpKa2djeW0W6aa7NVyqPDVVXVEz9ko3hZidl0zE8U4qrSf3pT1JBwcdsZwVzD1RhaJs3ojWmd3MxM8k6ojlmDqx2PtYaJ3O6njnkiOOVmIHsYmOENvjjj3en2SWCS0bHMspoiJsVVzH503KtZ+yWnm+xzCdx3LmDpm1dopmqI3UzFXzcaRsOM4sHf183V/RdQV7kmA75Y+mxNU00RG6rmPDER/wDYTKnY7lcUxE4eZmPLNyrj60e2ETEZrc18tmfvUpukhUWz/Y/hrWBuYjBRNuq3G6mmapmKo8vhcXY9lsZnjZouVTTat07qrTwz8ya558kYz9lV/RHNg0/97xWvm4/qWK7fB3K9P/K/zKu1x9kmQ2MLg6sVgoqoiiY3dEzMxpPFrGvGlzmbJpiMjxWvJH3oXSIrsZymjMr1yq/MxYtaaxHhqmfJ1JRweyv0X+ZV2uXsFn/pYz6af/dKUkEM2TZJZwNmnE4TWm3NW5qomddOSYRxOtmMx3lq+e5TogqZAAyqQ7GfkvOv2P8AbWpRdexn5Lzr9j/bWpQrUAEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnax8eMt9r8KtFkp2sfHjLfa/CrIJtsq+X8V+59yHKdXZV8v4r9z7kOU1WAZcLhruLv02cPRNdyrwRDsRsWzDTw2I/fnsQecr2R4nA4emzXRTet0xpTrOkxHJryNq5stvzRMW8Lbpq8kzVM6fU4+ZZXisuqjumjSmriiqmdYlhwODv46/FrDUTXXprPkiI5Za3Riv3q8Reru3qpquVzrMz5Xdy/ZPicNYptXbVF6KY0iqZ0nT53ngtmHOsdKexzMxy/EZfdijFW9zuv8NUTrE/RJ3Hbv7LL9VuYs4e3brn86at1p9SN111V3Kq6qpmuqdZmfLLYy7AYjMLs28NRupjjqmZ0iPpl1OC2Yctjpz2HejJhNlWJtWaaL9mi9VHFu91uZn6X3FbK8Tds1UWbNFmqeLd67qY+hxcdg7+Bvb1ibc0Vaax5YmPmZMuyzE5jVVGGo1pp/xVVTpEG6NSmuqmuK6apiuJ3UVa8cSkdjZZiKbcU3sPbuVx+dFW51+pgnYtmEeWxP789jj4vDXcJfqs4iiaLkeSU7wdnMNk+JxOHqtWrVNndRpNUTrOnzOJZu12btF21VNNdM6xPI3MtynF5jTVVh6I3uJ0muqdI15G7OxfMIiZ/6M/NFf4Hejat7Lr8URFzC26qvLMVTGv1NTM9kmIxuHqsUW6bNuuNKtJ1mY5NXHxFm5h71Vq/RNFymdJpnyN7LslxmPtzcsUUxb10iqudIn6DdGng8TdweIov2KtzconilIqdl13cxu8JRNXlmK5hp17GMwppmYi1VMeSK+OfthxrlFdq5VRcpmmumdJifDEm7B1s3z/EZjZmzuKbVmfDFM6zV9MudgMZewGJpv4eYiuOKYnjiY5JbuAyLHY2zF21RRTbn/DNdWmv0M13YzmNuiaoptXJj82irjn7V7jdjZdc0jXCUTPrz2ObnGd4jM6It1U027MTruKfLPzy5VUTTVMVRMTHFMT5HWwex7H4qzTdpooopqjWnd1aTMfQm7RqZZmF/LsRvuHmJ1jSqmrwVQ7sbLrmnHhKNfXnsaGJ2OZhYtVXNxRcinjmKKtZ+xxTdg6WcZviMzqpi7FNFqnjpop8GvLPLLnOzY2N5hetxXNFFvXyV1aS8YzY/j8LYqu1UUV0U8dW4q1mI5dDvRyQEEh2M/Jedfsf7a1KLr2M/Jedfsf7a1KFagAigAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7WPjxlvtfhVoslO1j48Zb7X4VZBNtlXy/iv3PuQ5Tq7Kvl/Ffufchymqwk+wamO6MXVpG6immIn657EvQLYtmVrL8ZXGInc2rsRE1c2Y8H1JlGZYGf/AN3Dfxae1rFK09ldMTkWImYjWmaZj5vyoj/3c/YNTHc+Lq045qpjX6nzZVm+GuYCrCYe5TdruTG6mmdYpiJ18P1NHYnmljBV3bOJqiii5MTTXPgiY5T5VNnA2a0xOU0TMRrF2NJ+qXU75YH03Dfxae1G9l2a4fE2KMLha4u6VbquqnjiOSIny+FakdDYVREZVXVERuqrs6z9UO+h+xLNbGGtV4XFVxbiat3RXV4PJrE8ngSXvlgfTcN/Fp7UngcPZzEdzYWdOPdzGv1N7YjEd5LUxERrVVM/PxuHstzOxja7NjDVRXTbmaqq48EzyQ3NiebYa1gu5cTcptVU1TNNVU6RMT858qlKJbOqKYrwVcR+VMVxM/NGnbKRd88Bp/53Dfxae1D9lWZWswxVqjDzurVmJjdcszprp83FC3wkSrY7TFOS4SKY0/J165dFHNjWcYXvfbw+Iu0Wblri/LnSKo+l2JzPAREzONw3FyXae0ngRXZvTEZlZqiIiZtcc8vHKWZXTFGW4WmmNIi1T/RB9k2YW8wzHd2eO1RTuKZ08PH4UlyLOsJcwFq3fvW7N23TFExXVFMTpGmsJ8juIHsvpiM7uTEaTNFMz8/EmFeaYCimapxuH0jkuRM/ZCCZ5jacfmd2/biYt8VNOvhmI8pfBFjUUxRRTRTGlNMaRHJD65WW55g8VhaKrt+3Zu6aV03Kop4/m1bF3NsvtW5rqxliYjyU1xVP2QohmdU08JL1OkbmbtOscuumqwFaY/Gd05pdxdNOkVVxVTE8keD+idYPOsBibFNzum1amY46LlcUzE/Wk8ldFAItURsr3G5jcd1eDyf4kwxGcYCxaqrnFWa9PzbdcVTP1QgcY6rvr3dNMa77vu5+vXQpFljQsZxgL1qK6cXZpifJXXFMx9UvOMzrA4axVcjEWrtURxUW64qmZ+pRXuIiKcTdppjSIrmIj63h9rqmu5VXV4apmZfGKqQ7GfkvOv2P9talF17GfkvOv2P9talErUAEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnax8eMt9r8KtFkp2sfHjLfa/CrIJtsq+X8V+59yHKdXZV8v4r9z7kOU1WAd3YlgLONxlyvEUxXTaiJiifBMzy/YmcYXDxGkWLWnqQsm0Vc+rQnC4eY0mxamPUhCdleBs4LH0Th6Ypou07rcR4InXyfMWK4o6uxrA28dmcUXo1t0UzXNPLxxGnWndOEw1NMRTh7MRHgiKISTYq8Wj3NY8xa6EIjswy6zhblm/h6ItxcmaaqaeKNeXRbiiNifbHMuw1rK7FybNFdy7TFdVVVMTPH5HU7mseYtdCDpFXC0e5rHmLXQg7mseYtdCDpFXC0e5rHmLXQg7mseYtdCDpFXC0e5rHmLXQg7mseYtdCDpFXC0e5rHmLXQh8qwmGqpmmrD2ZifDE0QdIq8b2e4a3g82xFizxW6ZiYjk1iJ060v2PZZhrOW2Lk2qK7t2iK6q6qdZ4410hNd1QIWj3NY8xa6ENfG5XhMXYqt3LNumZjiqppiJpnlhelFbBVE01TTPknRNdiuWYeMut4m5bouXbus61RruY100j7E0qFC0e5rHmLXQhixGX4TEWpt3cPammeSmImPrXpRWYzY6x3Njb9jXWLdc0xPLpLCyqQ7GfkvOv2P8AbWpRdexn5Lzr9j/bWpQrUAEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnax8eMt9r8KtFkp2sfHjLfa/CrIJtsq+X8V+59yHKdXZV8v4r9z7kOU1WEn2DVRGIxdMzG6mmmYj657UvVbhsRdw16m7Yrmi5T4Jh1OEmZ+ep/hwsqJ8huziqJx2GpifyotzMx9bT4SZn56n+HDlYi/dxF6q7frmu5V4apW3Y7ewuumnN64mdJqtTEfPOsT/wCycKrtXK7Vym5bqmmumdYqidJh1Y2R5nERG/0z+5HYkuhP0X2dV07zhKNfypqqnT5tHJ4SZn56n+HDm4vFXsZem7iLk3K58s+RbkLCyOYnJ8HpOv8A0obyuMDm+NwNqbWHvaW9ddzMRMR9GrZ4SZn56n+HBMhPhAeEmZ+ep/hwcJMz89T/AA4OqGk+EB4SZn56n+HBwkzPz1P8ODqhpPhAeEmZ+ep/hwcJMz89T/Dg6oaT4QHhJmfnqf4cPk7I8zmJjf6Y+iinsOqGnnZRMTn2K0nX/D92E1yaqKspwc0zExvNEfXEaK2rrquV1V11TVVVOszM8cy3cDm2NwNuaMNemm3PHuZiJiPo1SXuqyCZiImZnSI8MygPCTM/PU/w4YcXneYYqzVau3/yKvDFNMRr9i9UTTnXJiblcx4JmZWDsYqpqyPDbmddImJ+adZV628BmWLwG67luzTFXhpmImJ+qWZe6rLEB4SZn56n+HDHfz/Mb1qq3Vf0pq4p3NMRP2tdUTTWzium5muMqpnWmbtWk8vG1AZqpDsZ+S86/Y/21qUXXsZ+S86/Y/21qUStQARQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABJ9rSqKdm+WTVOka3I+ubdUIw28oxteW5phcbbjWqxdpuacuk8cfX4AWpsq+X8V+59yHKdzZPTbxU4bNcJO7wuLtxMVRy6eX6v6S4bVYoAgAAAAAAAA6+E2OY7FYa3ft71FFyN1G6q49PsZuCuYctjpz2OTax2Ls24os4q/bojwU03JiIe++eO9NxP8WrtaV1OCuYc6x0p7DgrmHOsdKexy++WP8ATcV/Fq7Tvlj/AE3Ffxau1OyOpwVzDnWOlPYcFcw51jpT2OX3yx/puK/i1dp3yx/puK/i1dp2HU4K5hzrHTnscXEWa8PfuWbmkV0VTTVpywz98sd6biv4tXa1KpmqZmqZmZ45mfKAAgAAAAAAAA7+x2uLeT57XVxU02NZ6NallqZ9i4yXYPfpqnc4rNJ3u3T5d78s/ZM9KFVlagAigAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJhsL2V0ZZZqyzNqJv5TdnXSOOqzM+WPm+b64+ea05HTjrPdOSYyzjMNV4Jir8qPmn5/sU02MHjMTgru+YPEXrFznWq5pnqXaWLZ4OZp6NH8SntfODuaejfzKe1XsbLs/iIiM1xXFy1anC/P/0riekqaWFwdzT0b+ZT2nB3NPRv5lPar3hfn/6VxPSOF+f/AKVxPSDSwuDuaejfzKe04O5p6N/Mp7Ve8L8//SuJ6Rwvz/8ASuJ6QaWFwdzT0b+ZT2nB3NPRv5lPar3hfn/6VxPSOF+f/pXE9INLC4O5p6N/Mp7Tg7mno38yntV7wvz/APSuJ6Rwvz/9K4npBpYXB3NPRv5lPacHc09G/mU9qveF+f8A6VxPSOF+f/pXE9INLC4O5p6N/Mp7Tg7mno38yntV7wvz/wDSuJ6Rwvz/APSuJ6QaWFwdzT0b+ZT2nB3NPRv5lPar3hfn/wClcT0jhfn/AOlcT0g0sLg7mno38yntODuaejfzKe1XvC/P/wBK4npHC/P/ANK4npBpYXB3NPRv5lPacHc09G/mU9qveF+f/pXE9I4X5/8ApXE9INLC4O5p6N/Mp7Tg7mno38yntV7wvz/9K4npHC/P/wBK4npBpYXB3NPRv5lPacHc09G/mU9qveF+f/pXE9I4X5/+lcT0g0sLg7mno38yntODuaejfzKe1XvC/P8A9K4npHC/P/0riekGlh07G8zmePD00/Tcp7WPH05Zsco33O8RRexERrRg7M61VT5NeSP/ALx+BXl/ZTnt+3NFzNcXuZ8MU3Jp1+xxqqpqqmqqZmqeOZmeOU2unT2RZ1ic+zKvF4uYji3Nu3T/AIbdPkphywRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGWbFyPDT1w871XydbPVVMzOsz9rHrPLKbXTxvdXIbirke5meLjfNZ5ZEeNxVyG4q5HvWeWTWeUXTxuKuQ3FXI96zyms8oPG4q5DcVcj3rPKazyg8birkNxVyPes8prPKDxuKuR9i1XPgjretZ5XuiZ4+ORGPebnN6zebnN62bWeWTWeWQYd5uc3rN5uc3rZtZ5ZNZ5ZBh3m5zes3m5zetm1nlk1nlkGHebnN6zebnN62bWeWTWeWQYd5uc3rN5uc3rZtZ5ZNZ5ZBh3m5zes3m5zetm1nlk1nlkGHebnN6zebnN62bWeWTWeWQYd5uc3rN5uc3rZtZ5ZNZ5ZBh3m5zes3m5zetm1nlk1nlkGHebnN6zebnN62bWeWTWeWQYd5uc3rN5uc3rZtZ5ZNZ5ZBh3m5zes3m5zetm1nlk1nlkGHebnN6zebnN62bWeWTWeWQYd5uc3rN5uc3rZtZ5ZNZ5ZBh3m5zes3m5zetm1nlk1nlkGHebnN6zebnN62bWeWTWeWQYd5uc3rN5uc3rZtZ5ZNZ5ZBh3m5zes3m5zetm1nlk1nlkGHebnN6zebnN62bWeWTWeWQYd5uc3rN5uc3rZtZ5ZNZ5ZBh3m5zes3m5zetm1nlk1nlkGHebnN6zebnN62bWeWTWeWQYd5uc3rN5uc3rZtZ5ZNZ5ZBh3m5zes3m5zetm1nlk1nlkGCq3XTGtUaPOks16ZmmNZ8rFqsHzcybmX3U1VHzcybmX3U1AimZmIjwy9bzc5vW+U/4o+ln1nllKrDvNzm9ZvNzm9bNrPLJrPLKDDvNzm9ZvNzm9bNrPLJrPLIMO83Ob1m83Ob1s2s8sms8sgw7zc5vWbzc5vWzazyyazyyDDvNzm9ZvNzm9bNrPLJrPLIMO83Ob1m83Ob1s2s8sms8sgw7zc5vWbzc5vWzazyyazyyDDvNzm9ZvNzm9bNrPLJrPLIMO83Ob1m83Ob1s2s8sms8sgw7zc5vW+7xc5vWybqeWXrdTyyDDvFzm9ZvFzm9bNup5Zfd1PLIMHc93m9cPvc13mdcM8VTyy+xVPLP2gwRhL8+CjrgbluqeWQXT//Z","e":1},{"id":"fr_6","w":760,"h":554,"u":"","p":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAIqAvgDASIAAhEBAxEB/8QAHAABAAIDAQEBAAAAAAAAAAAAAAYHAQMEBQII/8QAThABAAEBBAIMCQoEBQMEAwAAAAECAwQFEQfRBhITFBU2UVJUoaKzFiExQVNyg5GSIjVVYWNxc6OywjJFdIFCZaSxwyOT4iQ0Q2KC8PH/xAAaAQEBAQEBAQEAAAAAAAAAAAAAAQIDBAYF/8QAJxEBAAICAgEBCQEBAAAAAAAAAAERAgMxQQQSBRQVITIzNFFSoZH/2gAMAwEAAhEDEQA/APyoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOnD7jecRvdndblY121vXOVNFMdf1R9axcN0b3W6XaLzskxGmypjx1UWdUUU0/VNdWoFYi0q8P0eWU7Su9RVMeeLW0qz/ALx4nzvPR10mfjtdS0lqvFobz0ddJn47XUbz0ddJn47XUUWq8WhvPR10mfjtdRvPR10mfjtdRRarxaG89HXSZ+O11G89HXSZ+O11FFqvFobz0ddJn47XUbz0ddJn47XUUWq8WhvPR10mfjtdRvPR10mfjtdRRarxaG89HXSZ+O11G89HXSZ+O11FFqvFobz0ddJn47XUbz0ddJn47XUUWq8WhvPR10mfjtdRvPR10mfjtdRRarxaG89HXSZ+O11G89HXSZ+O11FFqvFobz0ddJn47XUbz0ddJn47XUUWq8WhvPR10mfjtdRvPR10mfjtdRRarxaG89HXSZ+O11G89HXSZ+O11FFqvFqWeB7AsQysrrf4srSfFE7vNM9t42ybR1fcNsarzhtpv67UxnNMU5WlMfd/i/t7iltBAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmImZiIiZmfJEMPe2CXSm+7LsMsa4iad13SYnz7WJq/aCwrhY3TR9sUi+Xmyi0xW8xETHnmqfHFGfmpjz/8A8VfjWMX7Gb3N4xC3qta/8NP+GiOSmPNCVaX79Xb7JbO67adzu1jERT/9qvHM+7a+5BVn9IAIoAAAAAAAAAAAAAAAAAAAAAAAAluwvZje8CvNnY3iuu3w2qcqrKqc5s45aeT7vJPWiQCxdKGx+woossewuKZu14y3WKP4c58cVx9U+f68uVXS2diFfDGi/ErnbztpsKbWzoz+qIrp90z1KmWQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp0Y8eMN9r3VaLJTox48Yb7XuqyBs0p8dL36ln+iESS3Snx0vfqWf6IRJZ5AGy72NpeLWmzsqZqqlBrEhu2BWcUxN4tKqquSnxQ6OBbnza/iBFhKeBbnza/iOBbnza/iBFhKeBbnza/iOBbnza/iBFhKeBbnza/iOBbnza/iBFhKeBbnza/iOBbnza/iBFhKeBbnza/iOBbnza/iBFhKeBbnza/iOBbnza/iBFhKeBbnza/iOBbnza/iBFhKeBbnza/iOBbnza/iBFhKeBbnza/iOBbnza/iBFhKeBbnza/iYqwS6TGURaR9cVAi49XEMItLtTNpZTulnHl8Xjh5QAALV0W8Tca9evu4VUtXRbxNxr16+7hVSzwACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlOjHjxhvte6rRZKdGPHjDfa91WQNmlPjpe/Us/0QiSW6U+Ol79Sz/RCJLPIJRgF2ixucWsx8u08ef1eZF0yw2qKrhd5j0cR7oQdt3sa7xeLOwsadta2lUUUxnlnMzlHlexi+xXFsJulper1ZXau72dpFla2l1vljeYsq58lNe5V1bWfFP8WXkcex3jBhn9VZfrhO7PGsLnZhVhWFYNXd6b/i1jZ3y0vV63xulNN4ira007SmKYmqImc8/Jln5QV9drjb3m53u9WW57jdaaarXbWtNNWVVUUxlTM51eOfNE5edyrI4S3SjZdfK7lh0Thdpd6brZ0XSzpos6ab1Hycoj5WceKZnOZjPOZejOBYbdcWuF2uc3OijZFfqL7c5trKm33G5007emz2k5RNVVdU2e1nLObHLxRIKtuV0vF+vljdbnY2lvebaqKLOys4zqrqnyREeeWhfWEUzcMZ2F4reLlaXC+WmNTc66r9cLC72k2NUUT46KaYiPHM7WqYiqM5ynyPLwa5XyrCKbxa4Peq8drv1dOJWN3wK729VnlTRudFpZVRTFlRNM1T4oiKpmrOfFGQVNg+GXvF79TdLhZxaW001Vztq6aKaaaYmZqqqqmKaaYiJmZmYhtx3BL7glvZWV+pssrajdLK1sLai2srWnOYzpromaZ8cTHinxTCSYRTbRs9xaz2L3S71UZ3iiyw681xaRb2XjibCmaZnb1TTnltas5y8UzOWctwjY7ZXO/WtvdsApueK3jB7zaxg+IU7ruNrTaUU2ddNNp8rKrOdrTXnMzEx44kFOC3LjhN7vU4LbY1cLK57I435aU3anDbLd7zYUWdM0f+nmIpmvbzXFMzTnMRM5TtYz7b9hdFrVdb1YYVR4S1YVa13S6Xm5WVFpa2tNvRGdVjTG1qtIsZtJpiac5ypnKZiMwpYW1sfuN7tb3fbXZBg9Fhsgpw6m0udhd8Psare0o3XKq0m7TMUzaRT4ozpidrnVETMbZFNJdFjZ4tcopuFvcb5N0pm9U21hZ3equvbVZVzY2czFnM07XOJymcttl8rxhEAAAAAAAAAAESxm7Rdr7VTRGVFUbamORLUd2TVRN6sqfPFGc+8HjAAtXRbxNxr16+7hVS1dFvE3GvXr7uFVLPAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU6MePGG+17qtFkp0Y8eMN9r3VZA2aU+Ol79Sz/RCJJbpT46Xv1LP9EIks8g9vAL/AE2cb2tpyiZzomfJ9zxBBOxErtid6u9MU02m2pjzVxm6OHb1zLH4Z1gkojXDt65lj8M6zh29cyx+GdYJPXXVaVTVaVTVVPlmZzmSiuqjbbSqqnbRtZynLOORGOHb1zLH4Z1nDt65lj8M6wSWPFPiejhmL3nDoxDcootJvt2qutrNpnMxTVNMzMePy/Jjy5oTw7euZY/DOs4dvXMsfhnWCTzaVzXt5rqmvy7aZ8bG2qmrbTM7bPPPPx5ozw7euZY/DOs4dvXMsfhnWCT7evdNvtqtvnnts/Hny5sVTNUzNUzMz45mUZ4dvXMsfhnWcO3rmWPwzrBJRGuHb1zLH4Z1nDt65lj8M6wSURrh29cyx+GdZw7euZY/DOsElEa4dvXMsfhnWcO3rmWPwzrBJRGuHb1zLH4Z1nDt65lj8M6wSURrh29cyx+GdbFWOXqYyiLKn64pnWCQ3i3s7vZTaWtUU0x1ohfLxVerzXa1f4p8UckPm8Xi1vFe2trSqufr8zUAAC1dFvE3GvXr7uFVLV0W8Tca9evu4VUs8AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTox48Yb7Xuq0WSnRjx4w32vdVkDZpT46Xv1LP8ARCJJbpT46Xv1LP8ARCJLPIAIAAAAAAAAAAAAAAAAAAAAAAAAAALV0W8Tca9evu4VUtXRbxNxr16+7hVSzwACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlOjHjxhvte6rRZKdGPHjDfa91WQNmlPjpe/Us/0QiSW6U+Ol79Sz/RCJLPI6LpdbS9Wm1s4yiPLVPkh7FlhN3oj5e2tJ+ucv9nRcLCLvdaKIj5UxnV97oEcfBt09F2p1nBt09F2p1u6imquqKaKZqqnyREZzLExMTMTGUwDi4Nunou1Os4Nunou1Ot2AOPg26ei7U6zg26ei7U63YA4+Dbp6LtTrODbp6LtTrdgDj4Nunou1Os4Nunou1Ot2AOPg26ei7U6zg26ei7U63YA4+Dbp6LtTrODbp6LtTrdgDj4Nunou1Os4Nunou1Ot2AOPg26ei7U6zg26ei7U63YA4+Dbp6LtTrODbp6LtTrdgDj4Nunou1Os4Nunou1Ot2AOPg26ei7U63PecIs6qZmwqmmrknxw9QBErWzqsrSaLSJiqPLD4e5jthFVjTbRHyqZyn7nhoq1dFvE3GvXr7uFVLV0W8Tca9evu4VUs8AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTox48Yb7Xuq0WSnRjx4w32vdVkDZpT46Xv1LP9EIklulPjpe/Us/0QiSzyJgAIlkzb0X644ZhddjcYt7Ciqq1inKqqZpz8dXl+7Jy2lva3u7YrY4jNjeba6UfIt4pjbZxXFP8Xnjx+culdd+puVvcbSzoxS6URZxZ11RG6Ux/DNOfiziPFl9TVfq6bhcLxd67SztL/fK4qt9zmJps6YnPa5x4s5ny5cgPCd12sLOuxpqqpzmc/PPK4XVY3rc7OKNpnl58xHTvWx5nXJvWx5nXLTv77PtG/vs+0JTdvWx5nXJvWx5nXLTv77PtG/vs+0FN29bHmdcm9bHmdctO/vs+0b++z7QU3b1seZ1yb1seZ1y07++z7Rv77PtBTdvWx5nXJvWx5nXLTv77PtG/vs+0FN29bHmdcm9bHmdctO/vs+0b++z7QU3b1seZ1yb1seZ1y07++z7Rv77PtBTdvWx5nXJvWx5nXLTv77PtG/vs+0FN29bHmdcm9bHmdctO/fs+0b++z7SqzebCzosaqqacpjLzzyuF1W163SzmjaZZ+fNyoOPF/m61/t/vCNpJi/zda/2/3hG0aWrot4m4169fdwqpbeiKx3xsYxSxmdrFpbVUZ8mdEQguzLYzbbGr9Z2NdtFvYW1M1WdpFO1zy8sTHLHi969CPAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU6MePGG+17qtFkp0Y8eMN9r3VZA2aU+Ol79Sz/RCJJbpT46Xv1LP9EIks8iUXC3i8XWiuJ+VEZVfe6EXul6tLrabaznOJ8tM+SXsWWLXeun5c1Wc8kxn/sI9AcfCV09L2Z1HCV09L2Z1A7Bx8JXT0vZnUcJXT0vZnUDsHHwldPS9mdRwldPS9mdQOwcfCV09L2Z1HCV09L2Z1A7Bx8JXT0vZnUcJXT0vZnUDsHHwldPS9mdRwldPS9mdQOwcfCV09L2Z1HCV09L2Z1A7Bx8JXT0vZnUcJXT0vZnUDsHHwldPS9mdRwldPS9mdQOwcfCV09L2Z1HCV09L2Z1A7Bx8JXT0vZnUcJXT0vZnUDsHHwldPS9mdTnvOL2dNMxYUzVVyzGUAY7bxTY02MT8qqc5+54b7tbSq1tJrtJzqnyy+EVcGhf5iv39T+2HBpu/kvtv+N36F/mK/f1P7YcGm7+S+2/42uk7VcAyoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlOjHjxhvte6rRZKdGPHjDfa91WQNmlPjpe/Us/0QiSW6U+Ol79Sz/RCJLPIAIAAAAAAAAAAAAAAAAAAAAAAAAAALd0O2lNjsdxG0tJyoot5qqnkiKIzRTSVsluuyC/XWi4baq7XamqItKqdrt6qss8onx5eKPKkei3ibjXr193CqmukAGVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp0Y8eMN9r3VaLJTox48Yb7XuqyBs0p8dL36ln+iESS3Snx0vfqWf6IRJZ5ABAAAAAAAAAAAAAAAAAAAAAAAAAABaui3ibjXr193Cqlq6LeJuNevX3cKqWeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp0Y8eMN9r3VaLJTox48Yb7XuqyBs0p8dL36ln+iESS3Snx0vfqWf6IRJZ5ABAAAAAAAAAAAAAAAAAAAAAAAAAABaui3ibjXr193Cqlv6Gqaa9j+IU10xVTVeMpiYziY2kI3pXwK5YRfrlb4fZU2FF6pr21nR4qYqpy8cR5s9t5Pqa6RBAGVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp0Y8eMN9r3VaLJTox48Yb7XuqyBs0p8dL36ln+iESS3Snx0vfqWf6IRJZ5ABAAAAAAAAAAAAAAAAAAAAAAAAAABcGhf5iv39T+2lwabv5L7b/jd+hf5iv39T+2lwabv5L7b/ja6TtVwDKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU6MePGG+17qtFkp0Y8eMN9r3VZA2aU+Ol79Sz/RCJJbpT46Xv1LP9EIks8gAgAAAAAAAAAAAAAAAAAAAAAAAAAAuDQv8xX7+p/bS4NN38l9t/wAbv0L/ADFfv6n9tLg03fyX23/G10nargGVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp0Y8eMN9r3VaLJTox48Yb7XuqyBs0p8dL36ln+iESS3Snx0vfqWf6IRJZ5ABAAAAAAAAAAAAAAAAAAAAAAAAAABcGhf5iv39T+2lwabv5L7b/jdmh61psdjmJWtpntKLeaqsoz8UURmiGkTZPY7I79d4udFdN1u1NUUTaRlVVNWWc5ebyQ10naIgMqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTox48Yb7Xuq0WSnRjx4w32vdVkDZpT46Xv1LP9EIklulPjpe/Us/0QiSzyACAAAAAAAAAAAAAAAAAAAAAAAAAAC1dFvE3GvXr7uFVLV0W8Tca9evu4VUvQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU6MePGG+17qtFkp0Y8eMN9r3VZA2aU+Ol79Sz/RCJJbpT46Xv1LP9EIks8gAgAAAAAAAAAAAAAAAAAAAAAAAAAAtXRbxNxr16+7hVS1dFvE3GvXr7uFVLPAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU6MePGG+17qtFkp0Y8eMN9r3VZA2aU+Ol79Sz/RCJJhpOs67bZxerOypmquqmziIjz/Ihy3HY3TtYqvlpM1cyjyR/dZ5EZE3jAsPiP/b5/wD51azgPDuj9urWUloQJvwHh3R+3VrOA8O6P26taFoQJvwHh3R+3VrOA8O6P26tYWhAm/AeHdH7dWs4Dw7o/bq1haECb8B4d0ft1azgPDuj9urWFoQJvwHh3R+3VrOA8O6P26tYWhAm/AeHdH7dWs4Dw7o/bq1haECb8B4d0ft1azgPDuj9urWFoQJvwHh3R+3VrOA8O6P26tYWhAm/AeHdH7dWs4Dw7o/bq1haECb8B4d0ft1azgPDuj9urWFoQJvwHh3R+3VrOA8O6P26tYWhAm/AeHdH7dWs4Dw7o/bq1haECZW+x+5WlOVnTXZTy01TP+6P4phNvcPlT/1LGf8AHEeT748wWsPRbxNxr16+7hVS1dFvE3GvXr7uFVLPCgCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlOjHjxhvte6rRZKdGPHjDfa91WQJbsjsbGvZRf71TlVXVtbPPk2tMRMe+Jcb6tK5tLSuuqc6qpmqZ+uXyrAAAAAAAAAAAAAAAAAAAAAAAAAAA+bSim0oqorpiqmqMpifO+gHr7A7nvLY3j1l/g29dVMzyTZwp5dmxmqeCMap80WOfZq1KTJ4agARQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKdGPHjDfa91WiyU6MePGG+17qsEgZYZVgAAAAAAAAAAAAAAAAAAAAAAAAAAABIdjPzXjX4P7a1KLr2M/NeNfg/trUoS1AAigAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU6MePGG+17qtFkp0Y8eMN9r3VYJAywyrAAAAAAAAAAAAAAAAAAAAAAAAAAAACQ7GfmvGvwf21qUXXsZ+a8a/B/bWpQlqABFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp0Y8eMN9r3VaLJTox48Yb7XuqwSBlhlWAAAAAAAAAAAGaKZrqimiJqqqnKIjyzIPllNsP2J3O53Om9Y/eNzz/8AjiuKYp+qZ88/d1uijDNieIVRYXS2iztp/h2tpVEzP1bfxS9+Hs7blj6pqL4vt5svJwiaj5oAy9fZHgVvgtvEVzul3r/gtYjLP6p5JeQ8m3Vlqy9OcVLvjnGcXiAObQAAAAAAAAACQ7GfmvGvwf21qUXXsZ+a8a/B/bWpQlqABFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp0Y8eMN9r3VaLJTox48Yb7XuqwSBlhlWAAAAAAAAAAB7uwnesY5Ta321srKixomumbWqKYmrxRHl8/jz/ALPMw7D71iV43C5WU2lplnOWUREcszL1fBDGejUf92nW9GjVsnKM8cZmIc9meMRUzTTstxOrEsZtpptIru9lVNFltZzpyjyzH3z5/ueL5PIkEbD8Z6NR/wB2nWz4IYz0ej/u063ffr8jdsnOcJ/5Lnrz1YYxj6oe/dLaca2BXrfU7e1u1NXy58udEbaJ+/LxK/WVgOD3257FsSuV4s6abxbbptKYqic86IiPH96H3vYxi10u9dta3bOzojOra1xVMRy5RL0eTp27NGGWWM+qLty1bMMdmURPyeMA/Ie0AAAAAAAAABIdjPzXjX4P7a1KLr2M/NeNfg/trUoS1AAigAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU6MePGG+17qtFkp0Y8eMN9r3VYJAywyrAAAAAAAAAACcaMI8eJT5/8ApfuTpBtGP8z9l+9OX13sn8aH4vm/dkHBjmKWOEXCq828TV49rRRHlqq5HgYHszov1/ou16u8WO61bWiumrOM/NE63r2+Tq05RjnNTLhhqzziZxhLjLPxT44GXafnDHai4ZYhl8Hs+qX0WPEADDQAAAAAAACQ7GfmvGvwf21qUXXsZ+a8a/B/bWpQlqABFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp0Y8eMN9r3VaLJTox48Yb7XuqwSBlhlWAAAAAAAAAAE50Y/wAz9l+9OUG0Y/zP2X705fXeyvxofieb92Xi7LcIrxjDIsrCqItrOvb0RPiirxTGXWieAbE8QjE7G1vtlFhY2NcVzM1RM1ZTnlGU9axmXXyfA1+RnGefTOryctWM44gwy9lVFQ4cyouGWIZfB7Pql9FjxAAw0AAAAAAAAkOxn5rxr8H9talF17GfmvGvwf21qUJagARQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKdGPHjDfa91WiyU6MePGG+17qsEgZYZVgAAAAAAAAAB62xzG7bBLzXaWVEWtlaREV2czlnl5JieXy+9I/D//ACz/AFH/AIoMPXp87fpx9OGVQ47PH17JvKE58Pv8s/1H/ieH3+Wf6j/xQYdfinlf1/kOfuer9Jz4ff5b/qP/ABab7s7trW7V2d2uVNja1RlFpNrttr9eWUeNDA+KeT/X+Qvumr9MMg8Ezc3L0ACKAAAAAAAAkOxn5rxr8H9talF17GfmvGvwf21qUJagARQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKdGPHjDfa91WiyU6MePGG+17qsEgZYZVgAAAAAAAAAAAAAAAAAAAAAAAAAAABIdjPzXjX4P7a1KLr2M/NeNfg/trUoS1AAigAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU6MePGG+17qtFkp0Y8eMN9r3VYJAywyrAAAAAAAAAAAAAAAAAAAAAAAAAAAACQ7GfmvGvwf21qUXXsZ+a8a/B/bWpQlqABFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEn0aVRTs3wyapyjO0j+82dUIw68IvteG4pdb7ZxnVYWtNply5T44/v5AWDa0TZ2tdFUZVUzMT975exsgu9nbTZYpcp29zvdMWkVR5pmPJP/wC8rx1YAAAAAAAAAAAAAAAAAAAAAAAAAAAZopqrrimimaqqpyiIjOZkEg2Pf9LA8btq/FZ7jPj+6mqZ/wB1KLi2Z3inY5sIm5baN+X7OiYj6/45+6Iyp/vCnSWoAEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMtg+y6MIoqw7FKJt8KtZ8mWc2Uz54+r6v7x9c44CsMRsd9YFfbG8XeryRNXk+rPl+qclKui53y83K13W53i2sLTnWVc0z1LaTC2J2O4pE5b2z+60p1seD2KdF/Mo1q+jZdj8RERit6/vVmeF+yD6VvPvgtKWD4PYp0X8yjWeD2KdF/Mo1q+8L9kH0reffB4X7IPpW8++Cylg+D2KdF/Mo1ng9inRfzKNavvC/ZB9K3n3weF+yD6VvPvgspYPg9inRfzKNZ4PYp0X8yjWr7wv2QfSt598Hhfsg+lbz74LKWD4PYp0X8yjWeD2KdF/Mo1q+8L9kH0reffB4X7IPpW8++Cylg+D2KdF/Mo1ng9inRfzKNavvC/ZB9K3n3weF+yD6VvPvgspYPg9inRfzKNZ4PYp0X8yjWr7wv2QfSt598Hhfsg+lbz74LKWD4PYp0X8yjWeD2KdF/Mo1q+8L9kH0reffB4X7IPpW8++Cylg+D2KdF/Mo1ng9inRfzKNavvC/ZB9K3n3weF+yD6VvPvgspYPg9inRfzKNZ4PYp0X8yjWr7wv2QfSt598Hhfsg+lbz74LKWD4PYp0X8yjWeD2KdF/Mo1q+8L9kH0reffB4X7IPpW8++Cylg+D2KdF/Mo1ng9inRfzKNavvC/ZB9K3n3weF+yD6VvPvgspYPg9inRfzKNZ4PYp0X8yjWr7wv2QfSt598Hhfsg+lbz74LKWNYbGcStKsq6LOxjlrrif9s3Ve7zguw6ym2vtvF4xDL5FnTlt/7R/hj65+v7lV2+ynHbezmi0xW97WfLFNpNOfueNVVNVU1VTM1T45mZzmSynp7I8bvWPYnXfL5MRM/Jos48lnT5oh5YI0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2zYWkeWnrh87lXydbfNUzPjmfe15zyylrT43OrkNpVyPuZnxeNjOeWRHxtKuQ2lXI+855ZM55RafG0q5DaVcj7znlM55QfG0q5DaVcj7znlM55QfG0q5DaVcj7znlM55QfG0q5GYsq58kdb6znlfdEz4/HIjXuNpzes3G05vW3ZzyyZzyyDTuNpzes3G05vW3ZzyyZzyyDTuNpzes3G05vW3ZzyyZzyyDTuNpzes3G05vW3ZzyyZzyyDTuNpzes3G05vW3ZzyyZzyyDTuNpzes3G05vW3ZzyyZzyyDTuNpzes3G05vW3ZzyyZzyyDTuNpzes3G05vW3ZzyyZzyyDTuNpzes3G05vW3ZzyyZzyyDTuNpzes3G05vW3ZzyyZzyyDTuNpzes3G05vW3ZzyyZzyyDTuNpzes3G05vW3ZzyyZzyyDTuNpzes3G05vW3ZzyyZzyyDTuNpzes3G05vW3ZzyyZzyyDTuNpzes3G05vW3ZzyyZzyyDTuNpzes3G05vW3ZzyyZzyyDTuNpzes3G05vW3ZzyyZzyyDTuNpzes3G05vW3ZzyyZzyyDTuNpzes3G05vW3ZzyyZzyyDTuNpzes3G05vW3ZzyyZzyyDTuNpzes3G05vW3ZzyyZzyyDTuNpzes3G05vW3ZzyyZzyyDTuNpzes3G05vW3ZzyyZzyyDTuNpzes3G05vW3ZzyyZzyyDRVZ10xnVGT5ylutpmaYznztWawMbWTayzmZqjG1k2ss5mYEUzMxEeWX1uNpzetin+KPvb855ZSVadxtOb1m42nN627OeWTOeWUGncbTm9ZuNpzetuznlkznlkGncbTm9ZuNpzetuznlkznlkGncbTm9ZuNpzetuznlkznlkGncbTm9ZuNpzetuznlkznlkGncbTm9ZuNpzetuznlkznlkGncbTm9ZuNpzetuznlkznlkGncbTm9ZuNpzetuznlkznlkGncbTm9ZuNpzetuznlkznlkGncbTm9bO4WnN62zbTyy+ttPLINO4WnN6zcLTm9bdtp5ZZ208sg0b3teb1wzva15nXDfFU8ssxVPLPvBoi6W8+SjrgdlnVPLILT/2Q==","e":1},{"id":"fr_7","w":760,"h":554,"u":"","p":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAIqAvgDASIAAhEBAxEB/8QAHAABAAIDAQEBAAAAAAAAAAAAAAYHAQMEBQII/8QAThABAAEBBAINBwoDBwMEAwAAAAECAwQFEQfRBhITFBU2UVJUkqGisxYhMUFTcoMiNVVhY3Fzk7LCRYGRMmV0pLHBwyNC4iQzQ2KC8PH/xAAaAQEBAQEBAQEAAAAAAAAAAAAAAQIDBAYF/8QAKREBAAICAgEBCAIDAAAAAAAAAAERAgMEMUESBRQVITIzNFFSoXGBkf/aAAwDAQACEQMRAD8A/KgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6cPuN5xG92d1uVjXbW9c5U0Ux2/VH1rGw3RvdLpdovOyTEabKmPPVRZ1RRTT9U11agVgLSrw/R5ZTtar1EzHri1tKs/5x5nzvPR10meva6loVeLQ3no66TPXtdRvPR10meva6iktV4tDeejrpM9e11G89HXSZ69rqKLVeLQ3no66TPXtdRvPR10meva6ii1Xi0N56Oukz17XUbz0ddJnr2uootV4tDeejrpM9e11G89HXSZ69rqKLVeLQ3no66TPXtdRvPR10meva6ii1Xi0N56Oukz17XUbz0ddJnr2uootV4tDeejrpM9e11G89HXSZ69rqKLVeLQ3no66TPXtdRvPR10meva6ii1Xi0N56Oukz17XUbz0ddJnr2uootV4tDeejrpM9e11G89HXSZ69rqKLVeLQ3no66TPXtdRvPR10meva6ii1Xi1LLA9gWIZWV1v+5Wk+id3mme/Dxdk2ju/YbY1XnDbTf12pjOaYpytKY+7/ALv5f0KLQUBFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGYiZmIiJmZ9EQw97YJdKb7suwyxriJp3XdJifXtYmr9oLCuFjdNH2xWL5ebKLTFbzERNPrmqfPtPqpj1//AMVfjWMX7Gb3N4xC3qta/wDtp9FNEclMeqEq0v36u32S0XXbTuV2sYyp/wDtV55n+m1/ogqygAigAAAAAAAAAAAAAAAAAAAAAAACW7C9mN7wK82djeK67fDapyqsqpzmzjlp5Pu9EokAsXShsesKKLLHsL2s3a8zG6xR/Zzq88Vx9/r+vLlV0tnYhXwxowxK5287abCm1s6M/qpiun+kz2KmWQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp0Y8eMN+L4VaLJTox48Yb8XwqwbNKfHS9+5Z/ohEkt0p8dL37ln+iESWewBsu9jaXi1izsqZqqlBrEhu2BWcUxN4tKqquSnzQ6OBbnza+sCLCU8C3Pm19Y4FufNr6wIsJTwLc+bX1jgW582vrAiwlPAtz5tfWOBbnza+sCLCU8C3Pm19Y4FufNr6wIsJTwLc+bX1jgW582vrAiwlPAtz5tfWOBbnza+sCLCU8C3Pm19Y4FufNr6wIsJTwLc+bX1jgW582vrAiwlPAtz5tfWOBbnza+sCLCU8C3Pm19ZirBLpMZRFpH1xUCLj1cQwi0u1M2llVulnHp83nh5QAALV0XcTcb9+vw4VUtXRdxNxv36/DhVSyACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlOjHjxhvxfCrRZKdGPHjDfi+FWDZpT46Xv3LP8ARCJJbpT46Xv3LP8ARCJLPYJRgN2ixucWsx/1LTz5/V6kXTLDaoquF3mPZxH9IQdt3sa7xeLKwsadta2lUUUU55ZzM5RD2cY2KYvhNzrvV6sbvaXeztIsrS0ut7sbzFlXOeVNe5V1bWZynLPLPJw7HuMGGf4qy/XCe2WNYX5XzhWFYNXd6b/i1jZ3y0vV63xulFN4ira007SmKYmYiZz20+bLP05hXt2uNvebne71ZbnuN1ppqtdtaU01ZVVRTGVMznV559UTl63KsicR3SjZdfK7lh8Thdpd4utnRdLOmiimm9R8nKI+VnHmmZzmY9My9GcBw664rcLtcpudFGyK/UX25zbWVNvuNzpp29NntZmImqquqbPazlnNjl5okFW3K6Xi/XuxutzsbS3vNtVFFnZWcZ1V1T6IiPXLQvrCKZuOM7C8VvNytLjfbXGt511X64WF3tJsaoonz0U0xEeeZ2tUxFUZzlPoeXg1yvlWEU3i2we9V47Xfq6cSsbvgV3t6rPKmjc6LSyqimLKiaZqn5MRFUzVnPmjIKmwfDL1i9+oulws4rtqomqdtXTRTTTEZ1VVVVTEUxEeeZmYhux7BL7gd4srK/U2UxbUbpZWthbUW1la05zGdNdEzTPniY80+aYSPCLO18v8Up2L3S7zZTviiyw69Vxaxb2M5xNhTNM/Lna+ja1Zzl5pzyzl2EbHbG6362t7vgEXTFbbB7zbU4NiEbrFjaUWlnFnXTTafKyqzna015zMxl8qJBTYty44TfL1wLbY1cLK57I435aU3anDbLd7zYUWdM0f+nmIpmvbzXFMzTnMRM+faxn237C6LWbrerDCqPKWrCrWu6XS83KyotLW2pt6IzqsaY2tVpFjNpNMTTnOVM5TMRmFLC2sAuN7tb3fbXZBg9Fhsgpw6mu52F3w+xqt7SjdcqrSbtMxTNpFPmjOmJ2udURMxtkT0l0WNni1yim4W9xvm9KZvVNtYWd3qrr21WVc2VnMxZzNO1zicpnLbZfK84REAAAAAAAAABEsYu0Xa+1U0RlRVG2pjkS1Hdk1UTerKn1xRnP9QeMAC1dF3E3G/fr8OFVLV0XcTcb9+vw4VUsgAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTox48Yb8Xwq0WSnRjx4w34vhVg2aU+Ol79yz/AEQiSW6U+Ol79yz/AEQiSz2D3MAv9NnG9racomc6Jn0fc8MQTsRK7YpervEU02m2pj1V+d0cO3rmWPVnWCSiNcO3rmWPVnWcO3rmWPVnWCT111WlU1V1TVVPpmZzmSiuujbbSqqnbRtZynLOORGOHb1zLHqzrOHb1zLHqzrBJXo4Zi95w7hDcootJvt2qutrNrnMxTVNMzMef0/Jj05oTw7euZY9WdZw7euZY9WdYJPNpXNpt5rqmv07aZ87E1VTVtpmdtnnnn580Z4dvXMserOs4dvXMserOsEn3SvdN0murb557bPz58ubFUzVMzVMzM+eZlGeHb1zLHqzrOHb1zLHqzrBJRGuHb1zLHqzrOHb1zLHqzrBJRGuHb1zLHqzrOHb1zLHqzrBJRGuHb1zLHqzrOHb1zLHqzrBJRGuHb1zLHqzrOHb1zLHqzrBJRGuHb1zLHqzrYqxy9TGURZR9cUzrBIrxb2d3sqrS1qimmO1D75eKr1ea7WrzbafNHJD5vF4tbxXtra0qrn6/U1AAAtXRdxNxv36/DhVS1dF3E3G/fr8OFVLIAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU6MePGG/F8KtFkp0Y8eMN+L4VYNmlPjpe/cs/wBEIklulPjpe/cs/wBEIks9gAgAAAAAAAAAAAAAAAAAAAAAAAAAAtXRdxNxv36/DhVS1dF3E3G/fr8OFVLIAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU6MePGG/F8KtFkp0Y8eMN+L4VYNmlPjpe/cs/0QiSW6U+Ol79yz/RCJLPY6LndbS9Wm1s4yiPTVPoh7FjhV3oj5e2tJ5ZnL/R0XCwi73WiiI+VMZ1fe6BHHwbdPZd6dZwbdPZd6dbuopqrqimimaqp9ERGcyxMTEzExlMeqQcXBt09l3p1nBt09l3p1uwBx8G3T2XenWcG3T2XenW7AHHwbdPZd6dZwbdPZd6dbsAcfBt09l3p1nBt09l3p1uwBx8G3T2XenWcG3T2XenW7AHHwbdPZd6dZwbdPZd6dbsAcfBt09l3p1nBt09l3p1uwBx8G3T2XenWcG3T2XenW7AHHwbdPZd6dZwbdPZd6dbsAcfBt09l3p1nBt09l3p1uwBx8G3T2XenW57zhFnVTM2FU0VeqJ88PUARK1s6rK0mi0jKqPTD4e5jthFVjTbRHyqZyn7nhoq1dF3E3G/fr8OFVLV0XcTcb9+vw4VUsgAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTox48Yb8Xwq0WSnRjx4w34vhVg2aU+Ol79yz/RCJJbpT46Xv3LP9EIks9iYACJZaVW9niFxwzDK7K5bvYWdVVpTTlVVM05znV6f5Q0V21re7ri1jiEWN4t7pRnReNrG3ziuKf7UemPPPpa7nXXiFFytrnaWdGJXKmKNzrmI3Sin+zMZ+bOI9TTf64w+5Xi71WtnaX+9VRVbbnMTTZ0xOe1zjzZzP8ATIHiO67WFlXYU1VU5zOfrnlcLqsb1udnFG0zy9eYOnetjzO2TetjzO2Wnf32feN/fZ94Zpu3rY8ztk3rY8ztlp399n3jf32feCm7etjzO2TetjzO2Wnf32feN/fZ94Kbt62PM7ZN62PM7Zad/fZ94399n3gpu3rY8ztk3rY8ztlp399n3jf32feCm7etjzO2TetjzO2Wnf32feN/fZ94Kbt62PM7ZN62PM7Zad/fZ94399n3gpu3rY8ztk3rY8ztlp399n3jf32feCm7etjzO2TetjzO2Wnf32feN/fZ94GbzYWVFhVVTTlMZeueVwuq2vW6Wc0bTLP15uUVx4v83Wv8v9YRtJMX+brX+X+sI2S0tXRdxNxv36/DhVS29EVjvjYxiljM7XdLaqjPL0Z0RCC7MtjNtsav1nZV2sW9jbUzVZ2kU7XPL0xMcseb+pPSI8AigAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU6MePGG/F8KtFkp0Y8eMN+L4VYNmlPjpe/cs/0QiSW6U+Ol79yz/RCJLPYlFwt4vF1oriflRGVX3uhF7perS617aznzT6aZ9EvYssWu9dPy5qs55JjP/QR6A4+E7p7XuzqOE7p7XuzqB2Dj4Tunte7Oo4Tunte7OoHYOPhO6e17s6jhO6e17s6gdg4+E7p7XuzqOE7p7XuzqB2Dj4Tunte7Oo4Tunte7OoHYOPhO6e17s6jhO6e17s6gdg4+E7p7XuzqOE7p7XuzqB2Dj4Tunte7Oo4Tunte7OoHYOPhO6e17s6jhO6e17s6gdg4+E7p7XuzqOE7p7XuzqB2Dj4Tunte7Oo4Tunte7OoHYOPhO6e17s6nPecXs6aZiwpmqrlnzQBjtvFNjTYxPyqpzmPqeG+7W0qtbSa7SZmqfTL4RVwaF/mK/f4n9tLg03fwX43/G79C/zFfv8T+2lwabv4L8b/ja8J5VcAyoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlOjHjxhvxfCrRZKdGPHjDfi+FWDZpT46Xv3LP9EIklulPjpe/cs/0QiSz2ACAAAAAAAAAAAAAAAAAAAAAAAAAAC3dDtpTZbHcRtLScqKLeaqp5IiiM0U0lbJLrsgv11ouG2qu12pqiLSqna7eass8onz5fJj0pHot4m4379fhwqpqekAGVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp0Y8eMN+L4VaLJTox48Yb8XwqwbNKfHS9+5Z/ohEkt0p8dL37ln+iESWewAQAAAAAAAAAAAAAAAAAAAAAAAAAAWrot4m4379fhwqpaui3ibjfv1+HCqlnoAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKdGPHjDfi+FWiyU6MePGG/F8KsGzSnx0vfuWf6IRJLdKfHS9+5Z/ohElnsAEAAAAAAAAAAAAAAAAAAAAAAAAAAFq6LeJuN+/X4cKqW9oappr2P4hTXTFVNV4ymJjOJjaQjmlbArlhF+uVvh9lTYUXqmvbWdHmpiacvPEerPbej6mp6RBAGVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp0Y8eMN+L4VaLJTox48Yb8XwqwbNKfHS9+5Z/ohEkt0p8dL37ln+iESWewAQAAAAAAAAAAAAAAAAAAAAAAAAAAXHoc4v3n8f/AGebpt/gvx/+N6Whzi/efx/9nm6bf4L8f/ja8J5VcAyoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlOjHjxhvxfCrRZKdGPHjDfi+FWDZpT46Xv3LP9EIklulPjpe/cs/0QiSz2ACAAAAAAAAAAAAAAAAAAAAAAAAAAC49DnF+8/j/wCzzdNv8F+P/wAb0tDnF+8/j/7PN02/wX4//G14Tyq4BlQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKdGPHjDfi+FWiyU6MePGG/F8KsGzSnx0vfuWf6IRJLdKfHS9+5Z/ohElnsAEAAAAAAAAAAAAAAAAAAAAAAAAAAFwaF/mK/f4n9tLg03fwX43/ABuzQ9a02OxzErW0z2lFvNVWUZ+aKIzRDSJsmsdkV/u8XOium63amqKJrjKapqyznL1eiGvCeURAZUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnRjx4w34vhVoslOjHjxhvxfCrBs0p8dL37ln+iESS3Snx0vfuWf6IRJZ7ABAAAAAAAAAAAAAAAAAAAAAAAAAABaui7ibjfv1+HCqlq6LuJuN+/X4cKqWegAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp0Y8eMN+L4VaLJTox48Yb8XwqwbNKfHS9+5Z/ohEkt0p8dL37ln+iESWewAQAAAAAAAAAAAAAAAAAAAAAAAAAAWrou4m4379fhwqpaui7ibjfv1+HCqlnoAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKdGPHjDfi+FWiyU6MePGG/F8KsGzSnx0vfuWf6IRJMNJ1nXbbOL1Z2VM1V1U2cREev5EOW47G6coqvlpM1cyj0R/NZ7RGRNowPDsv8A2M//AM6tbPAeHdH79WsotCBN+A8O6P36tZwHh3R+/VrKLQgTfgPDuj9+rWcB4d0fv1ayi0IE34Dw7o/fq1nAeHdH79WsotCBN+A8O6P36tZwHh3R+/VrKLQgTfgPDuj9+rWcB4d0fv1ayi0IE34Dw7o/fq1nAeHdH79WsotCBN+A8O6P36tZwHh3R+/VrKLQgTfgPDuj9+rWcB4d0fv1ayi0IE34Dw7o/fq1nAeHdH79WsotCBN+A8O6P36tZwHh3R+/VrKLQgTfgPDuj9+rWcB4d0fv1ayi0IE34Dw7o/fq1nAeHdH79WsotCBMrbY/crSnKzprsp5aapn/AFR/FMJt7h8uZ3Sxz/txHo++PUlFrD0XcTcb9+vw4VUtXRdxNxv3q/DhVSz0oAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTox48Yb8Xwq0WSnRjx4w34vhVgluySxsatlF/vVOVVdW1s9tyRTTETH9c3Gza11WlrXXVOdVUzVP3y+WpYlkBAAAAAAAAAAAAAAAAAAAAAAAAAfNpRTaUVUV0xVTVGUxPrfQD19glz3jsbx6xjz0bauqmfqmzhTy7NjVU8EY1T6osc+7VqUmS1AAigAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU6MePGG/F8KtFkp0Y8eMN+L4VYJAyxDLUsACAAAAAAAAAAAAAAAAAAAAAAAAAACQ7GfmrG/wAD9talF17GfmrG/wAD9talCWoAEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnRjx4w34vhVoslOjHjxhvxfCrBIIZYhlqWABAAAAAAAAAAAAAAAAAAAAAAAAAABIdjPzVjf4H7a1KLr2M/NWN/gftrUoS1AAigAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU6MePGG/F8KtFkp0Y8eMN+L4VYJBDLEMtSwAIAAAAAAAAAM001V1RTRE1VTOURHpmQYE2w/Ync7nc4vWyC8RZ5//HFcUxH1TPpmfqjtdFGGbE8RqiwultFnaz6NraVRMz9W380vfh7O25Y+qaj/AD5ebLk4RNR80BHr7I8Ct8Ft4iud0u9f9i1iMs/qnkl5DybdWWrL05xUu2GcZxeIA5tgAAAAAAAAAJDsZ+asb/A/bWpRdexn5qxv8D9talCWoAEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnRjx4w34vhVoslOjHjxhvxfCrBIIZYhlqWABAAAAAAAAAe7sJi6xjtNrfbWysrOxomumbWqKYmrzRHp9fnz/k8vDsPvOJXjcbnZTaWmWc+fKIjlmZev5H4z0aj82nW9GjXsnKM8cZmIc9meMR6ZmmjZdidWJYxbTFpFd3sqpostrOdOUeuPvn1vGSDyPxno1H5tOs8j8Z6NR+bTrd9+vkbtk5zhLnry1YYxj6oe/dbaca2B3rfU7e1u1NUbefTnREVRP35eZX8LKwDB75c9i2I3K3s4pvFtum0p20TE50REef74Q++bGMWul3rt7W7Z2dEZ1bWuKpiOXKJejk6duzRhlljPqi/+OWrZhjsyiJ+Txhhl+Q9oAAAAAAAAACQ7GfmrG/wP21qUXXsZ+asb/A/bWpQlqABFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp0Y8eMN+L4VaLJTox48Yb8XwqwSCGWIZalgAQAAAAAAAATnRhEZ4lOXn/6X705QbRj/ABP4X705fXeyfxofi837sg4MbxSxwi4VXm3iavPtaKI9NVU+p4GB7MqL9f6LtervFjutW1s66as4z9US9e3k6tMxjnNTLhhqzziZxjpLjLPzT54lkdp6c47UXDLEMvg9n1S+jx6gAYaAAAAAAAASHYz81Y3+B+2tSi69jPzVjf4H7a1KEtQAIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlOjHjxhvxfCrRZKdGPHjDfi+FWCQQyxDLUsACAAAAAAAACc6Mf4n8L96coNox/ifwv3py+u9k/jR/t+Lzfuy8XZbhFpjGGRZWFURb2de6URPoq80xl2ongGxPEIxOxtb7ZRYWNjXFczNUTNWU55RlPasYdeTwNfJzjPPwxq5OWrGccWRhl7KqKcLuVFwyxDL4PZ9UvoseoAGGgAAAAAAAEh2M/NWN/gftrUouvYz81Y3+B+2tShLUACKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTox48Yb8Xwq0WSnRjx4w34vhVgkEMsQy1LAAgAAAAAAAA9XY5jltgl5rtLOzi1s7SIiuzmcs8vROfqn0/1STy+/u3/Mf+KDD16edv0Y+nXlUOOzj69k3lCc+X392f5j/xPL7+7P8AMf8Aigw6/FOV/L+oc/c9X6Tny+/uz/Mf+LRfNnVta3a0s7tcosbWqMotJtdttfriMo86Gh8U5P8AL+oX3TV+mGQeCZubl6ABFAAAAAAAASHYz81Y3+B+2tSi69jPzVjf4H7a1KEtQAIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlOjHjxhvxfCrRZKdGPHjDfi+FWCQQyxDLUsACAAAAAAAAAAAAAAAAAAAAAAAAAACQ7GfmrG/wP21qUXXsZ+asb/A/bWpQlqABFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp0Y8eMN+L4VaLJTox48Yb8XwqwSCGWIZalgAQAAAAAAAAAAAAAAAAAAAAAAAAAASHYz81Y3+B+2tSi69jPzVjf4H7a1KEtQAIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAk+jSqKdm+GzVOUZ2kfzmzqhGHXhF9rw3FLrfbOM6rC1ptMuXKfR/MFgWlE2dpXRV5qqZmJ++GHsbILvZ2u5Ypcp29zvlMWkVR6pnl//AHleO1LAAgAAAAAAAAAAAAAAAAAAAAAAAAAzTTVXXTTRE1VVTlERGczIJBse/wCngeN21fms9xnz/dTVM/6wpRcWzK8UbHNhE3HbRvy+50TEfX/bn7oj5P8AOFOktQAIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZbB9l0YRRVh2KUTb4Vaz6Ms5spn1x9X1fzj65xOBXfEbHfWBX2xvF3q9ETV6Pqz5fqnJSroud8vNytd1ud4trC051lXNM9i2kwtidjuKR6Ltn8SnWx5PYr0SfzKdavo2X4/ERHCt5/nUeV+P/AEreesWlLB8nsV6JP5lOs8nsV6JP5lOtX3lfj/0reeseV+P/AEreesWUsHyexXok/mU6zyexXok/mU61feV+P/St56x5X4/9K3nrFlLB8nsV6JP5lOs8nsV6JP5lOtX3lfj/ANK3nrHlfj/0reesWUsHyexXok/mU6zyexXok/mU61feV+P/AEreeseV+P8A0reesWUsHyexXok/mU6zyexXok/mU61feV+P/St56x5X4/8ASt56xZSwfJ7FeiT+ZTrPJ7FeiT+ZTrV95X4/9K3nrHlfj/0reesWUsHyexXok/mU6zyexXok/mU61feV+P8A0reeseV+P/St56xZSwfJ7FeiT+ZTrPJ7FeiT+ZTrV95X4/8ASt56x5X4/wDSt56xZSwfJ7FeiT+ZTrPJ7FeiT+ZTrV95X4/9K3nrHlfj/wBK3nrFlLB8nsV6JP5lOs8nsV6JP5lOtX3lfj/0reeseV+P/St56xZSwfJ7FeiT+ZTrPJ7FeiT+ZTrV95X4/wDSt56x5X4/9K3nrFlLB8nsV6JP5lOs8nsV6JP5lOtX3lfj/wBK3nrHlfj/ANK3nrFlLGsNjGI2lWVdnRYxy11xP+mbqvd5wbYdZTbXy3i8YhlO0sqctt/KP+375+v7lV2+ynHbezmi0xW97WfTFNpNOf8AR49VVVdU1VTNVU+eZmc5ktaelsjxu9Y9idd8vk5TPyaLOPRRT6oh5YIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADbNhaR6ae2HzuVfJ2t9VVWfpn+r4znllLGvc6uQ3OrkfdUzyyxnPLIPjaVchtKuR95zyyZzyyD42lXIbSrkfec8smc8sg+NpVyG0q5H3nPLJnPLIPjaVchtKuR95zyyZzyyD42lXIzFlXPojtfWc8svuzmfP55Br3G05vabjac3tbs55ZM55ZBp3G05vabjac3tbs55ZM55ZBp3G05vabjac3tbs55ZM55ZBp3G05vabjac3tbs55ZM55ZBp3G05vabjac3tbs55ZM55ZBp3G05vabjac3tbs55ZM55ZBp3G05vabjac3tbs55ZM55ZBp3G05vabjac3tbs55ZM55ZBp3G05vabjac3tbs55ZM55ZBp3G05vabjac3tbs55ZM55ZBp3G05vabjac3tbs55ZM55ZBp3G05vabjac3tbs55ZM55ZBp3G05vabjac3tbs55ZM55ZBp3G05vabjac3tbs55ZM55ZBp3G05vabjac3tbs55ZM55ZBp3G05vabjac3tbs55ZM55ZBp3G05vabjac3tbs55ZM55ZBp3G05vabjac3tbs55ZM55ZBp3G05vabjac3tbs55ZM55ZBp3G05vabjac3tbs55ZM55ZBp3G05vabjac3tbs55ZM55ZBp3G05vabjac3tbs55ZM55ZBp3G05vabjac3tbs55ZM55ZBp3G05vabjac3tbs55ZM55ZBoqs66YzqjJ85S32szNPnlpWBjKTKWRaGMpMpZChiKZmYiPTL73G05va+af7UOjOeWUGncbTm9puNpze1uznlkznllLGncbTm9puNpze1uznlkznlksadxtOb2m42nN7W7OeWTOeWSxp3G05vabjac3tbs55ZM55ZLGncbTm9puNpze1uznlkznlksadxtOb2m42nN7W7OeWTOeWSxp3G05vabjac3tbs55ZM55ZLGncbTm9puNpze1uznlkznlksadxtOb2m42nN7W7OeWTOeWSxp3G05vazuFpze1tznlkznlksatwtOb2m4WnN7W3OeWX1nPLJY0b3teb2wzve15nbDfFU8ssxVPLJY0RdLefRR2wOyiqc/TID//2Q==","e":1},{"id":"fr_8","w":760,"h":554,"u":"","p":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAIqAvgDASIAAhEBAxEB/8QAHAABAAIDAQEBAAAAAAAAAAAAAAYHAwQFAgEI/8QATRABAAECAwEJCgkLBAICAwAAAAECAwQFEQcGEhMhMTZRUqEVQWFygYORkrPRFBciVXGxssHhFiMyNEJDU1Rjk6I1YnTCRcOk0iQz8f/EABsBAQEAAwEBAQAAAAAAAAAAAAABBAUGAwIH/8QAKBEBAAICAgICAgEFAQEAAAAAAAECAxEEMQUSIUETFFEGFSIyoUKB/9oADAMBAAIRAxEAPwD8qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADZy/A4nMcXbwuCs13r9c6U0Ux2+CPCsbLdm+FwmGjE7pMxptUxx1UW6oopp+mur3ArAWlXl+zy1O9qxUVTHfi7cq18scTz8D2dfzM+vd9y6TarxaHwPZ1/Mz6933HwPZ1/Mz6933GjarxaHwPZ1/Mz6933HwPZ1/Mz6933GjarxaHwPZ1/Mz6933HwPZ1/Mz6933GjarxaHwPZ1/Mz6933HwPZ1/Mz6933GjarxaHwPZ1/Mz6933HwPZ1/Mz6933GjarxaHwPZ1/Mz6933HwPZ1/Mz6933GjarxaHwPZ1/Mz6933HwPZ1/Mz6933GjarxaHwPZ1/Mz6933HwPZ1/Mz6933GjarxaHwPZ1/Mz6933HwPZ1/Mz6933GjarxaHwPZ1/Mz6933HwPZ1/Mz6933GjarxaHwPZ1/Mz6933HwPZ1/Mz6933GjarxaHwPZ1/Mz6933HwPZ1/Mz6933GjarxalvI9wWYaWsLj4tXJ4onh5pn/Nxt02zrG5bZqxOW3Ph2GpjWaYp0uUx9H7Xk9BpdoIAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPsRMzEREzM8kQ+O9uEwlON3XZZZriJp4XhJie/vYmr/qCwsBawmz7cpGMxNqLma4mIiY781TxxRr3qY7//APFX51nGOznFziMwv1Xa/wBmn9miOimO9CVbX8bXf3S28Lvp4LDWYiKf91XHM+je+hBVlABFAAAAAAAAAAAAAAAAAAAAAAAAEt3F7scXkWJt2cRXXfy2qdKrVU6zbjpp6Po5JRIBYu1Dc/YootZ9lcUzhsRMcLFH6Os8cVx9Pf8ADp0q6WzuQr7sbL8ywd+d9Nim7bo15eKIrp9Ez2KmWQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp2Y8+Mt877KtFkp2Y8+Mt877KsgZNqfPTF+Jb+xCJJbtT56YvxLf2IRJZ7AGTD2bmIu027VM1VSgxiQ4fIrcUxOIuVVVdFPFDY7i4Pq1+sCLCU9xcH1a/WO4uD6tfrAiwlPcXB9Wv1juLg+rX6wIsJT3FwfVr9Y7i4Pq1+sCLCU9xcH1a/WO4uD6tfrAiwlPcXB9Wv1juLg+rX6wIsJT3FwfVr9Y7i4Pq1+sCLCU9xcH1a/WO4uD6tfrAiwlPcXB9Wv1juLg+rX6wIsJT3FwfVr9Y7i4Pq1+sCLCU9xcH1a/WfKskwkxpEXI8MVAi46uYZRcw1M3LU8Jbjl4uOHKAABauy3mbnXj1+zhVS1dlvM3OvHr9nCqlnoAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKdmPPjLfO+yrRZKdmPPjLfO+yrIGTanz0xfiW/sQiSW7U+emL8S39iESWewSjIMNFrBxdmPzlzj18HeRdMstqirAYeY/hxHohBsgAAAAAAAAAAAAAAAAAAAAAIlnOGjDY2qmiNKKo31MdCWo7umqicVap78Uaz6QcYAFq7LeZudePX7OFVLV2W8zc68ev2cKqWegAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp2Y8+Mt877KtFkp2Y8+Mt877KsgZNqfPTF+Jb+xCJJbtT56YvxLf2IRJZ7B28gx9NuPg16dImdaJnk+hxBBOxEsNmmKw9MU03N9THerjVsd3cV1LPqz7wSURru7iupZ9Wfed3cV1LPqz7wSURru7iupZ9Wfed3cV1LPqz7wSURru7iupZ9Wfed3cV1LPqz7wSURru7iupZ9Wfed3cV1LPqz7wSURru7iupZ9Wfed3cV1LPqz7wSURru7iupZ9Wfed3cV1LPqz7wSURru7iupZ9Wfed3cV1LPqz7wSURru7iupZ9Wfed3cV1LPqz7wSURru7iupZ9Wfed3cV1LPqz7wSURru7iupZ9Wfe+VZ5ipjSItU+GKZ94JDiL9vD2puXaoppjtRDGYirFYmu7V+1PFHRDziMRdxFe+vXKq58PeYgAAWrst5m5149fs4VUtXZbzNzrx6/ZwqpZ6ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnZjz4y3zvsq0WSnZjz4y3zvsqyBk2p89MX4lv7EIklu1Pnpi/Et/YhElnsAEAeqKaq6opopmqqeKIiNZl17G5rNb1EVRhZpievVFM+iZ1Bxh0Mdk2YYGnfYnDV00daNKojyw54AAAN7AZVjsfGuFw1ddPW5KfTPEDRHau7mc2t0TVOF30R1a6Zn0auRct12q5ouU1UVxxTTVGkwDwAADJYs3cRdi3Yt13Lk8lNMayDGO3RuXzaunffBop8E3KYn62hjstxmAmIxeHrtxPJMxrE+WOIGmAAAAOngsizLGURXYwte8nkqqmKYn08rJidzmaYeia68JVVTHLNExV2Rxg5A+zExMxMaTD4AAC1dlvM3OvHr9nCqlq7LeZudePX7OFVLPQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7MefGW+d9lWiyU7MefGW+d9lWQMm1Pnpi/Et/YhEkt2p89MX4lv7EIks9g+xEzMREazL46O523TdzzBUV/o8LE+jj+5BOtzWR28sw1Ny7TFWMrjWqqf2fBDuAD5MRMTExExPLEoFuyySjBVU4zCU72xXOldEclNXg8Ep85u6S3TdyLG018kW5q8sccfUCqgASLchktOZX6r+JjXDWp03vXq6PoWJRTTRTFNFMU0xGkREaRDjbjrdNG57DTTHHVvqpnpnfS7QDk7oMms5rhao3sU4mmPzdz7p8DrAKauUVW7lVFcTTXTM0zE96YeXY3XW6be6HGRRGkTNNXlmmJlxwZsJh7mKxNqxZjW5cqimFo5NleHyvCxasUxNcx8u5McdUoXuDt0155NVXLbtVVU/TrEffKxAHi9at37VVu9RTXbqjSaao1iXsBWW6jJ+5WNjgtZw13Wbcz3umHFWHu9t01ZLTXP6VF2JifpiYV4Ame4zI7d21GPxlEVxM/mqKo4uL9qUMW/l1umzl+Gt0fo026Yj0A2AARrddkdvF4a5i8NRFOJtxvqtP247/lV6ueVQY+3TZx2Jt0fo0XKqY+iJkGuAC1dlvM3OvHr9nCqlq7LeZudePX7OFVLPQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7MefGW+d9lWiyU7MefGW+d9lWQMm1Pnpi/Et/YhEkt2p89MX4lv7EIks9gz4HEThcZYxFPHNuuK9OnSWAQXFhr9vE4e3es1RVbrjfUyyqyyDP7+UzNuY4XDVTrNuZ008MSl9jdZlVyjW5drsz1a7czPZqDvI9u2x9OGymrDxP53EfJiOinvz93lYMw3Y4O1RMYOiu/c70zG9p7eNCcwxt/H4mq/ia99cq9ER0QDWABPtwePpu5fVg6p/OWZmqmOmmZ1+vX0pSp7B4m9g8RRfw9c0XKJ1iYTbLd2OGuURTj7dVm536qI31M/fAJW83blFq3VcuVRTRTGtUzyRDiXt1eU26Jqov13J6tNurXtiEU3Qbo7+Z0zZtUzZwvfp146vp9wOZm+L+HZniMTyRcr1j6OSOzRpgDqbmsdTl+cWL1ydLU60Vz0RPf+qVpRMTGsTrEqZSXIN1F3AW6bGLom9h6eKmYn5VMffALCHDt7qspqoiasRVRPVqt1a9kOZmu7G1TRNGW26q65/eXI0iPojvgx7QMdTNNjA0TrVE8JX4OLSI7ZQtkvXbl+7XdvVzXcrnWqqeWZYwFoblsfTjsnsaT+ctUxbrjwxyT5YVe3cqzLEZZiovYarwVUzyVR0SC2hG8Fuvy+9RHwmLmHr7+tM1R5Jj3MmK3W5Zao1s13L9XeppomPr0B1szxlvAYG7ibsxpRGsR0z3oVJcrm5cqrqnWqqZmZ8Lp55nWIza7E3dKLNM/It0zxR4Z6ZcoAAFq7LeZudePX7OFVLb2RWfhG5jNLMzvYuXqqNejWiIQXdluZvbmsdbs13ov2L1M1W7kU73XTliY6Y4vSv0I8AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTsx58Zb532VaLJTsx58Zb532VZAybU+emL8S39iESS3anz0xfiW/sQiSz2ACAPsRrOkcrpYfIszxFG+t4O7vemrSn69AcwbeNy7GYL9aw123HWmOL08jUAAABs4PAYrGzMYXD3LunLNNPFHlBrDqXsgzSzRvq8FcmP8AbpV9TmVRNMzFUTExxTEg+AAA9UUVXK4ot01VVTxRFMazIPI6tvc9mtyjfU4K5Ef7pimfRM6tHFYTEYSve4mzctT3t/TpqDAAAAAN3B5VjsbG+w2Fu10z+1ppHpniZMVkuY4Wmar+EuxTHLNMb6I9AOcAAAC4Ni/+hY7/AJP/AFpaG27/AML57/1t/Yv/AKFjv+T/ANaWhtu/8L57/wBb6+k+1XAPlQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKdmPPjLfO+yrRZKdmPPjLfO+yrIGTanz0xfiW/sQiSW7U+emL8S39iESWewfXx0Nz9mm/nWCt18dM3YmY6dOP7kE23L5BawGHoxGJoirGVRrxx/wDr8EeFIQB5ropuUTRXTFVMxpMTGsSr7ddkdOXXKcThY0w1ydJp6lXuWG5m6WzTeyLG01fs25rj6Y4/uBVYAO9uUyWM0xNVy/E/BbX6X+6ehY1m1bs2qbdmimi3TGkU0xpEOPuNtU29z2HmmOOuaqqvDO+mPqiHbAcTdHkVnNLFVy3TTRjKY1prji33gl2wFNV0zRVNNUTFVM6TE96Xl191lqmzuhxlNEaRNUVeWaYme2ZcgGTD2a8Rft2bUb65cqimmPDKz8iybD5Vh4iimKr8x8u7Mccz4OiEO3C2qbme76rlt2qq4+nij71igMWKw9nFWarWIt03LdXLFUMoCr90mUzlOO3lMzVYuRvrdU9seRyFhbvbVNeTUXJ/St3Y0n6YmFegJduOyG3iqPh2No31uJ0t255KvDPgRFb2WWqbGXYa1RyUW6Y7AbERFMRERERHJEPoAim67ILd3D3Mbg6IovURvrlNMcVcd+fpQNc0xExMTGsSqDHWosY3EWqf0aLlVMeSdAYAAW7sduU2dzuY3Lk6UUX5qqnoiKI1RTaVulwu6DHYWjAb6rDYamqIuVU73f1Vaa6RPHpxRypHst5m5149fs4VU+vpAB8qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTsx58Zb532VaLJTsx58Zb532VZAybU+emL8S39iESS3anz0xfiW/sQiSz2DYy/EThMdYxERrwdcVadOk8jXEFyWLtF+zRdtVRVbriKqZjvw9q33Pbo7uVxwN6mb2F113uvHT9HuTCxukyq9RFXwqKJ79NdMxMA7DgbtMbThcmrta/ncR8imPB359H1vOYbrMvw9E/B6qsTc70UxMR5Zn7kFzTML+ZYqq/iatZ5KaY5KY6IBpgAsHcJjab2VzhZmOEsVTpHTTM66+nVJlQYDGXsBiqMRhq97cp9Ex0T4E7y3ddgb9ERi99hrvf1iaqZ+iY+8EkfK6qaKKqq5iKaY1mZ70OTd3R5Vao304umrwUxMzPYie6LdNczGicPhaarWGn9KZ/Sr90A5OdYuMfmuJxMfo11/J+iOKOyGiAOvuWxtOAzqzcuTpbr1t1T0RP46LQUwleQbqqsJapw+YU1XLVPFTcp46qY6J6QTwcmjdFlVdO+jGURHRMTE/U5ma7r8Lat1U5fE37veqmJimPTxyDBtAxtMWbGCpnWuauEr8EckfXPoQhlxWIu4rEV3r9c13K51mZYgFpbmcbTjsnw9UTrXbpi3XHRMcXbyqtdHJc1xGU4nhLGlVFXFXbnkqgFrDg4LdVluIoibtyrD19+mumfrjiZMVunyqxRMxiOFq71NumZmfuB0sfireCwd3EXp0ot06/TPehUd2uq5cruV8dVUzVP0y626DPr+bVxRpwWGpnWm3E66+GXGAABauy3mbnXj1+zhVS1dlvM3OvHr9nCqlnoAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKdmPPjLfO+yrRZKdmPPjLfO+yrIGTanz0xfiW/sQiSW7U+emL8S39iESWewAQAbljLMdfo31nB4iumeSqLc6A0xnxOFxGGnTE2LtqZ5N/TNOvpYAAAAZcPh72Jr3uHs3LtXRRTNU9gMQ3buVY+1RvrmCxFNMcszbnSGkAAAD7ETMxERrMg+DeoynMa6d9TgcTNPTwctW9Zu2K95et126+rXTMT2gxgAAADYw2DxOK/VsPeux00UTL1iMvxmGp32Iwt+3T1qqJiPSDVAAABauy3mbnXj1+zhVS39jVNNe5/MKa6YqpqxGkxMaxMbyEc2r5Fgsox2Cv5fapsUYqmvfW6OKmKqdOOI72u+5PA+vpEDAfKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7MefGW+d9lWiyU7MefGW+d9lWQMm1Pnpi/Et/YhEkt2p89MX4lv7EIks9gDfyGzTiM5wdquNaZuRMx0xHGgmO5fc7aw1ijFY23FeJqjfU01RrFEfR0pOAMd+zbxFqq3ft03LdXLTVGsSrzdXkcZXepvYfWcLcnSNf2J6FjuXunsU4jIcZTVH6NE1x4Jp4/uBVgAO1uYyac2xUzcmacNa0muY5Z8ELHwuGs4WzFrDWqbduOSKYcncXZptbn7FVMfKuzVXVPTOsx9UQ7gCPbpNz1nH2a72Gopt4yOPWOKK/BPh8KQgKZmJiZiYmJjimJfHW3VWabG6DGUURpTNUV+WYiZ7ZckHuzarvXaLVqmaq65immI78ysvIMiw+V2aaqqabmKmPlXJjk8EdEIluGsU3s9iqqNeCt1Vx9PFH3rGAa+OwWHx1ibWKtU3KJ6eWPDE95sAKrz/Kq8px02pmarVUb63X0x73MWDu+s015Rbu6fKt3Y0nwTE6/cr4BKNyOQU4//wDMxlOuHpnSijrzHT4EXW7lVinDZbhbNPJRbpjy6cYNi3RTboii3TTTRHFFNMaRD1MaxpPIAIdut3PWosV43A0RRVR8q5bp5JjpiEJXNVTFVM01RExMaTEqfxtqLGMv2Y5Ldyqj0ToDCAC4Ni/+hY7/AJP/AFpaG27kyXz3/rb+xf8A0LHf8n/rS0Nt3Jkvnv8A1vr6T7VcA+VAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp2Y8+Mt877KtFkp2Y8+Mt877KsgZNqfPTF+Jb+xCJJbtT56YvxLf2IRJZ7Bs5bifgeYYfEcsW7kVTHg142sILlt103LdNduqKqKo1iY78PSvNze6WrLqIw2LpquYb9mY/So98JlYzzLL9EVUY2xTHRXXFE+iQdFw92WMpwuSXaNfzl/83TH19j7mG6bLcJRO8vRiLneptcevl5ECzjM7+aYub1+YiI4qKI5KYBoAAsPcLjKb+UfB9Y4SxVMaeCZ1ifr9CSKjyvH38txdOIw9WlUcUxPJVHRKfZbuoy/F0Rw1z4Nd79Nzk8k8gO8+TMREzM6RHLMtC9nWWWqN9VjsPMf7K4qn0QiW6PdROMtVYXARVRZq4q7k8U1R0RHegHEz3Fxjs3xWIo46Kq9KZ6YiNI7IaAA7O5PGU4LO7NVydLdzW3VPRryduizlMJjuf3WU2rVOHzPfTFMaU3o4508MfeCbDQoznLa6N9TjsNEf7rkRPolzM03V4HC0TGFq+E3u9FP6MfTPuBp7QcZTThbGDpn5dVXCVR0RGsR2z2IMz43FXsbia7+Irmq5XOsz9zAAtXc5jKcbk+GuUzrVTTFFcdFUcU+9VTqZDnF7KMRNVHy7Nf6duZ5fDHhBaY5GC3R5Zi6In4TTZq79N2d7MeXkZMTn2WYeiaq8Zar8FurfzPoBu4zEW8JhbuIuzpRbpmqVQ3rlV29Xcr/Srqmqfpl2t0e6C5msxatUzawtM6xTPLVPTPucIAAFwbF/9Cx3/J/60tDbdyZL57/1t/Yv/oWO/wCT/wBaWhtu5Ml89/6319J9quAfKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7MefGW+d9lWiyU7MefGW+d9lWQMm1Pnpi/Et/YhEkt2p89MX4lv7EIks9gAgAz2cJiL8a2MPeuR00UTP1AwD3dtV2qt7doqoq6Ko0l4AAAB6t267lUU26aqqp71MayDyNi9g8TZp317D3rdPTVRMQ1wAAAABsW8FirlG/t4a/XR1qbczDDVTVRVNNUTTVHLExoDyAAAAMlmzdvVb2zbruVdFFMzL1ew1+xpw9m7a169Ex9YMIAAALg2L/AOhY7/k/9aWhtu/8L57/ANbc2PXabO5zMrtzXeUX5qq0jXiiiNUP2ibp7O6PHYeMHRXThcNTVFE3I0qqmrTWdO9yQ+vpPtEgHyoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlOzHnxlvnfZVoslOzHnxlvnfZVkDJtT56YvxLf2IRJLdqfPTF+Jb+xCJLPYA3skw9OKzfCWa41oquRvo6Y5ZQSvcvubtUWKMXmFEXLlcRVRbqjipjwx35S2mIpiIiIiI5Ih9AYMXhbGMtTaxNqi7RPeqhXe6fJJym/TXamasLcn5Ezy0z0Sstyd1OHpxGQ4uKo46KeEieiY4/eCrgAdfc5k9ebYuaZmaMPb47lcfVHhWPgcDhsDZi3hbVNunv6Rxz9M99y9xVimzkFmuI+Vdqqrqny6R2Q7oCMbpNzVnE2a8RgLcW8TTGs0UxpFfk6UnAUzMaTpPK+OruosU4bPsZbojSnfRVEfTET97lA9W6KrlymiiJqrqmIiI78rG3P7nMPl9qm5iaKbuLnjmZjWKPBHvRbcRh6b+e0VVxrwVFVyI8PFH3rIAaeZZbhcxtTRirVNU96qOKqn6JbgCqM8yy5lWOqsXJ31E/Kor0/Shz1gbv7FNeVWr2ny7dyI18Exx/VCvwEk3KZBGZVTicVrGFonSKY4t/PuRtbeUYenC5XhbNMfo241+nTWe0Gxh7FrD2ot2LdFuiOSmmNIeq6KblE0V0xVTPLExrEvQCEbrNzluxaqxuX072injuWo5Ijpj3IeuW5RTXRVRXETTVExMT34VBi7XAYq9Z114Ouqj0ToDCAC1dlvM3OvHr9nCqlq7LeZudePX7OFVL9AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTsx58Zb532VaLJTsx58Zb532VZAybU+emL8S39iESS3anz0xfiW/sQiSz2DbyrExg8yw2In9G3ciqfo14+xqCC5qaorpiqmYmmY1iY78PqBbmd00YK1ThcdFVViOKi5HHNEdEx34TKxmWCxFG+s4uxVHjxr6Abbi7r8XThcjvxM/LvRwdMdOvL2asuPz/LsFRM14mi5XHJRanfTPo5PKr/Pc2vZtiuEufJt08VFuJ4qY94OaACxdw2Lpv5LFnX5diqaZjwTOsT2z6EiVNlGZX8rxkX7E696qieSqOhYWXbosuxtETw9Nm536Ls72Y8vJIOuNW9mODs0767irFMeG5CJbpN1FN+1Xhctmd5VxV3ZjTWOiPeDgboMVTjc5xV+jjoqq0pnpiI0iexzgB29x+LpwmeWpuTEUXYm1Mz4eTtiFmKZidJ1jlTfc/urtzaosZpVNNdMaRe01ir6fD4QS8a1GPwdyjfUYqxVT0xchzM03S4DBW6ot3acRe71FudY8s8gOftAxVNOCsYWJ/OXK9/Mf7Y/GexBGzmONvZhi68RiKta6u93ojohrALX3P4unG5RhbtM6zvIpq8FUcUqodjc7nd3KL1Ub2bmHrn5dH3x4QWeOdgs6y/GURVaxVuJn9iud7VHklkxOa4DDUTVexdmnTvRVEz6I4wbOJvUYbD3L12dKLdM1TPghUGIuzev3LtX6VdU1T5Z1d/dNuiqzOPg+GiqjCxOs68tf0+BHAAAWrst5m5149fs4VUtXZbzNzrx6/ZwqpZ6ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnZjz4y3zvsq0WSnZjz4y3zvsqyBk2p89MX4lv7EIklu1Pnpi/Et/YhElnsAEAAAAAAAAAAAAAAAAAAAAAAAAAAFq7LeZudePX7OFVLV2W8zc68ev2cKqWegAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp2Y8+Mt877KtFkp2Y8+Mt877KsgZNqfPTF+Jb+xCJJbtT56YvxLf2IRJZ7BtYfA3b0RVpFFPTLJlmGi7XNyuNaaeSOmXYQczuX/W/x/E7l/wBb/H8XTAczuX/W/wAfxO5f9b/H8XTAczuX/W/x/E7l/wBb/H8XTAczuX/W/wAfxO5f9b/H8XTAczuX/W/x/E7l/wBb/H8XTAczuX/W/wAfxO5f9b/H8XTAczuX/W/x/E7l/wBb/H8XTAczuX/W/wAfxO5f9b/H8XTAczuX/W/x/E7l/wBb/H8XTAczuX/W/wAfxO5f9b/H8XTF1JtzO5f9b/H8TuX/AFv8fxdMNSbcucrnTiuxM+Glp4jDXbE/Lp4umORIHmummumaao1ieWEEbGbF2ZsX6qO9yx9DCC1dlvM3OvHr9nCqlq7LeZudePX7OFVLPQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7MefGW+d9lWiyU7MefGW+d9lWQMm1Pnpi/Et/YhEkt2p89MX4lv7EIks9juZZERg6Jjv6z2tpq5b+pW/L9ctpAAAAAAAAAAAAAAAABf+ynZ3gMJlOGzbOsNbxOOxFEXbdu7TvqLNM8cfJnimrTSePkWnTTTRTFNMRTTHFERGkQw5ffs4rAYbEYWYnD3bdNduY5N7Max2Nhv8GKtKRpq8uSbW+QB76h5bHyqmKqZpqiJpnliY11fQ1BtVW1XZ3gMXlOJzbJcNbw2Ow9E3blu1TvaL1Mcc/JjiirTWeLlUA/ZmYYizhcBicRipiLFq3VcuTPJvYjWex+M2p5+KtJi0fbP415tExLl5zHHanvzrH1Oa6ec/ufL9zmNeylq7LeZudePX7OFVLV2W8zc68ev2cKqWegAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp2Y8+Mt877KtFkp2Y8+Mt877KsgZNqfPTF+Jb+xCJJbtT56YvxLf2IRJZ7Hcy39St+X65bTVy39St+X65bSAAAAAAAAAAAAAAAAC0Nmu0+dz2DoyvOrV2/l9E/mrtvjrtR0aTy09seFZ1O1PcfNMTObTTM96cNe1j/B+YRl4uZkx19YeF+PW87fp/40tx3zx/8W9/9D40tx3zx/8AFvf/AEfmAen9wyfxD5/Vo/T/AMaW4754/wDi3v8A6PlW1PcfFMzGbTVMd6MNe1n/AAfmEP7hk/iD9Wi0NpW0+d0ODryvJrV2xgK5/O3bnFXdjo0jkp7Z8CrwYuXNbLO7PamOKRqHMzn9z5fucx085/c+X7nMeT7Wrst5m5149fs4VUtXZbzNzrx6/ZwqpZ6ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnZjz4y3zvsq0WSnZjz4y3zvsqyBk2p89MX4lv7EIklu1Pnpi/Et/YhElnsdzLf1K35frltNXLf1K35frltIPtFFVdcU0RNVUzpER33bwuRa0xVirkxM/s0d7yve5vDRFurEVR8qZ3tPgjvu26XxPiKZ6fmzdfUNVzebbHb0xuTXkWGmPkV3aZ6dYn7nIzDLruCnWr5dueKK4+9LXm7bpu26rdyNaao0mG05Hg+NkpMY41LDxeQy1t/lO4QcZcVZmxiLlqf2apjVicTlxzivNLdw39LResWj7HSy/KbuKpi5XPB2p5JmOOfoYcpw0YrG0UVRrRHyqvohLojSNIbfxHjI5kzfJ/rDC5vLnBHrXuXKjIsLpx13denWPc0sbkldqma8NVNyI5aZjj/FIh0d/CcS1dRXX/ANauvPzxO5lBR1d0OFiziabtEaU3ddY8MOU4zmcWeLmnFP03uDLGakXgbGCwd3GXN7ajijlqnkhrxGs6QmWAw1OFw1Fqnl01qnpl7eN4M83L69RHb45XIjBTf20LWQ2Ip/O3LlVXg0iHjEZDbmmZw92qKuivjh2h139l4etev/ZaT9/Pve0JxFm5h7s27tO9qhjSnPMLF/BVVxH5y38qJ8HfRZynk/H/AKWTUfNZ6bnicn89Nz2PtFFVdcU0RNVUzpER33x39zmGiLdeIqj5UzvafBHfYnF49uTljFX7e2bLGKk3l4wuRa0xOKuTEz+zR3vK2K8iw0x8iu7TPTrE/c6w7TH4PiUrq1dy0NvIZpncTpEswy67gp1q+XbniiuPvaScXbdN23VbuRrTVGkwheKszYxFy1PLTVo5/wAv4uOJrJj/ANZ/42fC5k5v8b9uRnP7ny/c5jp5z+58v3OY0bYLV2W8zc68ev2cKqWrst5m5149fs4VUs9AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTsx58Zb532VaLJTsx58Zb532VZAybU+emL8S39iESS3anz0xfiW/sQiSz2O5lv6lb8v1y2mrlv6lb8v1y2kEqyGqJyy3EctMzE+nV0EYyPHU4W7Nu7Olqvv8ARKTxMTETE6xLvPC8mubjxWO6/DnOfimmWZ+pAamY42jB2ZqqmJuTHyaeltb3rSs2tPxDDrWbTqEdzmqKszvzTyaxHoiGk+11TXXNVU61TOsy+PzfmZYy573r1MuqwUmmOKy625uYjG1xPLNudPTCSIVhL9WGxFF2jlpnk6YTDC4i3irUXLVWsTyx348Euk/p3PT0tinvtqvKY7e0X+mUHm5XTbomu5VFNMcsy6bempcfdNVHA2ae/NUyj7czXF/DMVNccVunipjwNNwPmeRXPyZmnUfDpODinHijb3Yqim9bqq5IqiZ9KboKk+S4+m/Yps3KtL1Eacf7UdLK/p/k0xZZpb/08fJYrXpFo+nTAdo0LDjZinB35nk3k/Uhbu59j6aqJw1mddf05j6nCcf/AFDyaZL1xV+dN54zFNazafsSrIaoqyy3EctMzE+mZ+9FXUyPHRhbs27s6Wq+/wBEtf4jk14/Ji1up+GTzcU5cUxHaTBExMRMTrEj9AiYmNw5qY0IlnVUVZnfmnk1iPREJFmONowdmZmYm5MfJp6URrqmuuaqp1qmdZlzn9Q8ikYoxfe9tp4zFb3m/wBOXnP7ny/c5jp5z+58v3OY49vFq7LeZudePX7OFVLV2W8zc68ev2cKqWegAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp2Y8+Mt877KtFkp2Y8+Mt877KsgZNqfPTF+Jb+xCJJbtT56YvxLf2IRJZ7Hcy39St+X65bTVy39St+X65bSA2cNj8Tho0tXZinqzxw1h6Y8t8U+2OdS+bUreNWjbo15zjKo0iumnw00tC5XXcrmq5VNVU8szLyPbNzORmjWS0zDzx4MdPmsADFewyWL92xXvrNdVFXgYx9Vtak+1Z1KTEWjUulGdYyKdN9RM9O9amJxd/Ez+euVVeDkj0MAyr87k3r62vOnjXj4qzuKxsAYb3CJmJiYmYmO/AETob9nN8ZbpiOEiuI60avOIzPFX6Zpqub2me9TGjSGb+/wAr19fedPD9bDvfrGwBhzMz8y9+gBBs4bH4nDRvbV2Yp6s8cNivOcZVTpFdNPhppc4ZmPncnHX1pedPC3HxWndqw9XK67lc1XKpqqnlmZeQYt72vPtady9q1isahzM5/c+X7nMdPOf3Pl+5zHyq1dlvM3OvHr9nCqlq7LeZudePX7OFVLPQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU7MefGW+d9lWiyU7MefGW+d9lWQMm1Pnpi/Et/YhEkt2p89MX4lv7EIks9juZb+pW/L9ctpq5b+pW/L9ctpBs4DCV4y/Fujijlqq6ISfCYDD4amODtxNXWq45au56zFGA4T9q5VM6+COL3uo7DwvjMcY4z5Y3M9NHz+Xb3/HSdRDzct0XKd7XTTVHRMauLmuUUxRVewsaTHHNHudwbjk8HDya+t6sLFyL4p3WUFGzmdqLGPvW6f0YnWI+nj+9rPz3kYpw5LY5+pdNjv70i38vtMTVVFNMazPFEQkmXZRas0RXiKYuXeieOI97m7nrUXMfvqv2KZqj6eT70nb3wXj8efeXLG4j6a7yHJtj1Snw+U000072IiI6Iho43K8PiaZmmmLdzvVUx9cN8dTk4uHJX0tWNNPXNek+0T8oTiLNeHvVWrkaVUyxu7umtR+ZuxHHOtM/d97hOC8jxI4meccdfTpOLm/Nji09jrZRlfwmOGv6xa70db8HKt0zXcppjlqmITe3RTbt00URpTTGkQyPD8GvLyz7/wCsPLncicNP8e5ebNm1Zp0tW6aI8EPOIwtjEUzF63TV4dOP0sw7aONiinp6xr+Gg/Lfftv5RPNcvqwVyJpnfWqv0Z6PBLRTDNLUXsBepnvUzVH0xxoe4zzPArxckWx/6y3vA5M5q6t3A2cBhK8Zfi3RxRy1VdENZJtz1mKMDwn7VyqZ18EcXvYXA4v7WeMf19sjk5vw45s2sJgMPhqY4O3E1daqNZbFy3Rcp3tdNNUdExq9DvsXEw4aelKxpzd817z7Wlw81ymmKKr2FjSY45o9zgp0h2Z2YsY+9bp4qYq1iOiJ4/vc153x+PDWM2KNfy2vj+Va8/jv8uHnP7ny/c5jp5z+58v3OY5ltlq7LeZudePX7OFVLV2W8zc68ev2cKqWegAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp2Y8+Mt877KtFkp2Y8+Mt877KsgZNqfPTF+Jb+xCJJbtT56YvxLf2IRJZ7Hcy39St+X65bTVy39St+X65bSCTbnrsV4Dg+/bqmNPp43UQ7AYuvB34uUccTxVU9MJPhMfh8TTG8uRFXVq4pdp4Tn0yYow2n/AChoefxrVvN4j4ltDzXXRbp1rqppjpmdHFzXN6Zoqs4WdZniqr9zb8jlYuPSb3lhYsN8tvWsOVmd2L+PvXKeOmatI8nE1gfnfJy/my2yfzLp8VPSkV/h09z12LeYb2qdN/TNMfTy/ck6DU1TTVFVM6TE6xMJJl2b2r1EUYiqLd2O/PFE+5vvA87Hi3hyTrfTXeR49r6yVdUfIqiqnfRMTHTEtHG5pYw1MxTVFy53qaZ+uXVXzUx19rTqGnrS1p1ENHdNdj8zaiePjqn7vvcJkxF6vEXqrtydaqpY3A+T5UcrPN69fTpOJhnDjis9vtuqaLlNUctMxKb266blumuidaao1iUHdbKM0+DRwN/WbXenq/gyfC82nFyzGTqzx5+CctN17hJBjs3rV6nW1cprjwS84jFWMPTM3blNPg14/Q7b8lNe2/hoPW29aY8zuxZwF6qrv0zTH0zxIe381zCrG3IimJptU8kdPhloOM85zqcjJFMc7irfeP49sVZtbuRJtz12K8Bwf7VuqY9PGjLZwGLrwd+LlHHE8VVPTDB8byv1c8ZJ6+2RysP5sc1jtMRq4TH4fE0xvLkRV1ap0lsV10W6da6qaY6ZnR+gY81Mlfak7hzVsdqTqYekOzO7F/H3q6eOJnSPJxOrmub0zRVZws6zPFVX0fQ4LmfPc7HesYKTv+W28dx7Vn8lvhzM5/c+X7nMdPOf3Pl+5zHLNutXZbzNzrx6/Zwqpauy3mbnXj1+zhVSz0ACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlOzHnxlvnfZVoslOzHnxlvnfZVkDJtT56YvxLf2IRJLdqfPTF+Jb+xCJLPY7GU3IqsTR36Z7G8jti7VZuRXRyx2uzh8ZavRHyopq6soNkAABZmZNACAAAAu5TUACKAAALuU1AAigAAC7mE1APkzFMazMRHhaWLx9FETTZmKq+mOSEVq5tciq/TRH7EdrRfZmZmZmdZnjfAWrst5m5149fs4VUtXZbzNzrx6/ZwqpZ6ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnZjz4y3zvsq0WSnZjz4y3zvsqyBk2p89MX4lv7EIklu1Pnpi/Et/YhElnsAEAAAAAAAAAAAAAAAAAAAAAAAAAAFq7LeZudePX7OFVLV2W8zc68ev2cKqWegAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEn2aVRTu3yyap0jW5Hlm3VCMNvKMbXluaYXG241qsXabmnTpPHHl5ASTarRVTuyxM1RpFVu3MeGN7EfdKILV2nZVTnOVYPdBlkcLRTajhN7xzNueOJ8kzOv0+BVSyQAIAAAAAAAAAAAAAAAAAAAAAAAAAMuGsXcViLdjD26rl65VFNFFMazMyC0dmccFuGzq9XxUb67Ov0W41VStzdLwe5HZ5ayqmumcZiqZt1THfmeO5P0aTp5YVGsgAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmu4LdlVkc/Aswiq7ltc68UazameWYjvx0x5fpkWabhMrz6icfuZx1m3TXxzbj5VvXycdP0aeSFUNjB4zE4K7wuDxF6xc61quaZ7F2Jdd2a59RXvaacLcjppu8XbEPHxb7oP4WH/vQ5Ubrs/j/wArivLUflfn/wA64n0m0dX4t90H8LD/AN6D4t90H8LD/wB6HK/K/P8A51xPpPyvz/51xPpNjq/Fvug/hYf+9B8W+6D+Fh/70OV+V+f/ADrifSflfn/zrifSbHV+LfdB/Cw/96D4t90H8LD/AN6HK/K/P/nXE+k/K/P/AJ1xPpNjq/Fvug/hYf8AvQfFvug/hYf+9Dlflfn/AM64n0n5X5/864n0mx1fi33QfwsP/eg+LfdB/Cw/96HK/K/P/nXE+k/K/P8A51xPpNjq/Fvug/hYf+9B8W+6D+Fh/wC9Dlflfn/zrifSflfn/wA64n0mx1fi33QfwsP/AHoPi33QfwsP/ehyvyvz/wCdcT6T8r8/+dcT6TY6vxb7oP4WH/vQfFvug/hYf+9Dlflfn/zrifSflfn/AM64n0mx1fi33QfwsP8A3oPi33QfwsP/AHocr8r8/wDnXE+k/K/P/nXE+k2Or8W+6D+Fh/70Hxb7oP4WH/vQ5X5X5/8AOuJ9J+V+f/OuJ9JsdX4t90H8LD/3oPi33QfwsP8A3ocr8r8/+dcT6T8r8/8AnXE+k2Or8W+6D+Fh/wC9B8W+6D+Fh/70OV+V+f8AzrifSflfn/zrifSbHdwezHObtcfCL2Ew9Hfma5qnyREfek1jDbntn1iq9fvfCs0mnSI4uEnwRT+xHhnt5FcX91Oe37c0XM1xe9nimKbk06+hxqqpqqmqqZmqeOZmdZkHT3R53is/zOvGYydJn5NFuOS3T3ohywRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGWbFyOWnth54Kvo7WeqqZmdZn0ses9MptdPHB1dBvKuh7mZ4uN81npkR43lXQbyroe9Z6ZNZ6RdPG8q6DeVdD3rPSaz0g8byroN5V0Pes9JrPSDxvKug3lXQ96z0ms9IPG8q6H2LVc8kdr1rPS90TPHxyIx8Dc6vacDc6vazaz0yaz0yDDwNzq9pwNzq9rNrPTJrPTIMPA3Or2nA3Or2s2s9Mms9Mgw8Dc6vacDc6vazaz0yaz0yDDwNzq9pwNzq9rNrPTJrPTIMPA3Or2nA3Or2s2s9Mms9Mgw8Dc6vacDc6vazaz0yaz0yDDwNzq9pwNzq9rNrPTJrPTIMPA3Or2nA3Or2s2s9Mms9Mgw8Dc6vacDc6vazaz0yaz0yDDwNzq9pwNzq9rNrPTJrPTIMPA3Or2nA3Or2s2s9Mms9Mgw8Dc6vacDc6vazaz0yaz0yDDwNzq9pwNzq9rNrPTJrPTIMPA3Or2nA3Or2s2s9Mms9Mgw8Dc6vacDc6vazaz0yaz0yDDwNzq9pwNzq9rNrPTJrPTIMPA3Or2nA3Or2s2s9Mms9Mgw8Dc6vacDc6vazaz0yaz0yDDwNzq9pwNzq9rNrPTJrPTIMPA3Or2nA3Or2s2s9Mms9Mgw8Dc6vacDc6vazaz0yaz0yDDwNzq9pwNzq9rNrPTJrPTIMPA3Or2nA3Or2s2s9Mms9MgwVW66Y1qjR50lmvTM0xrPfYtVgfN7JvZfdTVUfN7JvZfdTUCKZmYiOWXrgbnV7Xyn9KPpZ9Z6ZSVYeBudXtOBudXtZtZ6ZNZ6ZQYeBudXtOBudXtZtZ6ZNZ6ZBh4G51e04G51e1m1npk1npkGHgbnV7TgbnV7WbWemTWemQYeBudXtOBudXtZtZ6ZNZ6ZBh4G51e04G51e1m1npk1npkGHgbnV7TgbnV7WbWemTWemQYeBudXtOBudXtZtZ6ZNZ6ZBh4G51e04G51e1m1npk1npkGHgbnV7X3gLnV7WTfT0y9b6emQYeAudXtOAudXtZt9PTL7vp6ZBg+D3er2w+/BrvU7YZ4qnpl9iqemfSDBGEvzyUdsDct1T0yC6f//Z","e":1},{"id":"fr_9","w":760,"h":554,"u":"","p":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAIqAvgDASIAAhEBAxEB/8QAHAABAAIDAQEBAAAAAAAAAAAAAAUGAwQHAgEI/8QATxABAAECAwEJCwcLAgQHAQAAAAECAwQFEQcGEhMhMTZRUqEVQWFygYORkrPB0RQXIlVxsbIWIzI0QlNUY5Oi4UNFYnPCwyQzNXSk0vDx/8QAGwEBAQADAQEBAAAAAAAAAAAAAAEEBQYDAgf/xAAoEQEAAgICAgIBBAMBAQAAAAAAAQIDEQQxBRIhQRMGFCJRFTKhQoH/2gAMAwEAAhEDEQA/APyoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANnL8DicxxdvC4KzXev1zpTRTHb4I8LouW7N8LhMNGJ3SZjTapjjqot1RRTT4Jrq+AOYjqVeX7PLU72rFxVMd+LtyrXyxxPPyPZ1/Ez6934LocvHUPkezr+Jn17vwPkezr+Jn17vwNJty8dQ+R7Ov4mfXu/A+R7Ov4mfXu/A0bcvHUPkezr+Jn17vwPkezr+Jn17vwNG3Lx1D5Hs6/iZ9e78D5Hs6/iZ9e78DRty8dQ+R7Ov4mfXu/A+R7Ov4mfXu/A0bcvHUPkezr+Jn17vwPkezr+Jn17vwNG3Lx1D5Hs6/iZ9e78D5Hs6/iZ9e78DRty8dQ+R7Ov4mfXu/A+R7Ov4mfXu/A0bcvHUPkezr+Jn17vwPkezr+Jn17vwNG3Lx1D5Hs6/iZ9e78D5Hs6/iZ9e78DRty8dQ+R7Ov4mfXu/A+R7Ov4mfXu/A0bcvHUPkezr+Jn17vwPkezr+Jn17vwNG3Lx1S3kW4LMPzeFx8Wrk8UT8ommf70Lum2d47LbNWJy258uw1MazTFOlymPs/a8noNG1FARQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB9iJmYiImZnkiHxPbhMJTjd12WWa4iaeF4SYnv72Jq/6QdCwFnCbPtysYzE2ouZriYiJp781Tx7zwUx3/8A+OX51nGOznFziMwv1Xa/2aeSmiOimO9C1bX8dXf3S0YXfTwWGsxpT/xVccz6N76FFWUAEUAAAAAAAAAAAAAAAAAAAAAAAAW3cXuxxeRYm3ZxFdd/Lap0qtVTrNuOmno+zklUgHRdqG5+xRRaz7K97OGxMxwsUfo6zxxXH29/w6dLnTrO5CvuxsvzLB35302KbtujXwRFdPomexyZZABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWnZjz4y3zvsq1WWnZjz4y3zvsqwZNqfPTF+Jb/BCpLbtT56YvxLf4IVJZ7AGTD2bmIuxbtUzVVKDGLDhsitxTE4i5VVV0U8UNjuLg+rX6wKsLT3FwfVr9Y7i4Pq1+sCrC09xcH1a/WO4uD6tfrAqwtPcXB9Wv1juLg+rX6wKsLT3FwfVr9Y7i4Pq1+sCrC09xcH1a/WO4uD6tfrAqwtPcXB9Wv1juLg+rX6wKsLT3FwfVr9Y7i4Pq1+sCrC09xcH1a/WO4uD6tfrAqwtPcXB9Wv1juLg+rX6wKsLT3FwfVr9Z8qyTCTGkRcjwxUCriVzDKLmGpm5aq4S3HLxccIoAAHVdl3M3O/Hr9nDlTquy7mbnfj1+zhypZABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWnZjz4y3zvsq1WWnZjz4y3zvsqwZNqfPTF+Jb/BCpLbtT56YvxLf4IVJZ7BaMhw0WsHF2Y+nc49fB3lXXLLaoqwGHmP3cR6IQbIAAAAAAAAAAAAAAAAAAAAACpZxhow2NqpojSiqN9THQtqu7pqonFWqe/FGs+kEMADquy7mbnfj1+zhyp1XZdzNzvx6/Zw5UsgAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALTsx58Zb532VarLTsx58Zb532VYMm1Pnpi/Et/ghUlt2p89MX4lv8ABCpLPYJzIMfTbj5NenSJnWiZ5PsQYgvYqWGzTFYeIppub6mO9Xxtju7iupZ9WfiCyitd3cV1LPqz8Tu7iupZ9WfiCyitd3cV1LPqz8Tu7iupZ9WfiCyitd3cV1LPqz8Tu7iupZ9WfiCyitd3cV1LPqz8Tu7iupZ9WfiCyitd3cV1LPqz8Tu7iupZ9WfiCyitd3cV1LPqz8Tu7iupZ9WfiCyitd3cV1LPqz8Tu7iupZ9WfiCyitd3cV1LPqz8Tu7iupZ9WfiCyitd3cV1LPqz8Tu7iupZ9WfiCyitd3cV1LPqz8XyrPMVMaRFqPDFM/EFhxF+3h7U3LtW9pjtVDGYirFYmu7Vxb6eKOiHnEYi7iK99euVVz4e8xAAA6rsu5m5349fs4cqdV2Xczc78ev2cOVLIAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC07MefGW+d9lWqy07MefGW+d9lWDJtT56YvxLf4IVJbdqfPTF+Jb/AAQqSz2ACAPVFNVdUU0UzVVPFERGsyl7G5rNb1EVRhZpievVFM+iZ1BDCQx2TZhgad/icNXTR1o0qiPLCPAAABvYDKcdj41wuHrrp63JT6Z4gaImru5jNrdG+nC76I6tdMz6NURct12q5ouUVUVxxTTVGkwDwAADJYs3cRdi3Yt13Lk8lNMayDGJujcvm1dG++TRHgm5TE/e0MdluMwE6YvD12470zGsT5Y4gaYAAAAk8FkWZYyiK7GFr3k8lVUxTE+nlZMTudzTD0TXXhKqqY79ExV2RxgiB9mJidJ4ph8AAB1XZdzNzvx6/Zw5U6rsu5m5349fs4cqWQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFp2Y8+Mt877KtVlp2Y8+Mt877KsGTanz0xfiW/wQqS27U+emL8S3+CFSWewfYiZmIiNZl8SO563TdzzBUV/o8LE+jj9yC9bmcjt5Zhqbl2mKsZXGtVU/s+CE4APkxExMTETE8UxKhbsskowVVOMwlO9sVzpXRHJTV4PBK/I3dJapu5FjaauSLc1eWOOPuByoAFi3IZLTmV+q/iY1w1qdN716uj7HRKKaaKIpopimmOKIiNIhDbjrdNG57DTTHHXvqp8M76fhCaARO6DJrOa4Wr6MU4mmPzdzv/ZPgSwDjVyiq3cqoriaa6ZmmYnvTDymN11um3uhxcURpEzTV5ZpiZQ4M2Ew9zF4m1YsxrcuVRTDqOTZXh8rwsWrFMTXMfTuTHHVKl7g7dNeeTVVHHbtVVU/brEe+XRAHi9at37VVu9RTXbqjSaao1iXsBzLdRk/crGxwWs4a7rNEz3umEK6Hu9t01ZLRXP6VF2JjyxMOeALluMyK3dtxj8ZRFcTP5qiqOLi/alTXX8ut02cvw1uj9Gm3TEegGwACtbrsjt4vC3MXhqIpxNuN9VpH6cd/wArnrs/LyuQY+3TZx2JtUfo0XKqY+yJBrgA6rsu5m5349fs4cqdV2Xczc78ev2cOVLIAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC07MefGW+d9lWqy07MefGW+d9lWDJtT56YvxLf4IVJbdqfPTF+Jb/BCpLPYM+BxE4XGWL9PHNuuK9OnSWAQdiw1+3icPbvWat9brjfRLK5lkGf38pmbenC4aqdZtzOmnhiVvsbq8quURNy7XZnq125n7tQTyvbtsfThcpqw8T+dxH0Yjop78+7ysGYbscHaomMFRXfud6Zje0x6eNScwxt/H4mq/ia99cq9ER0QDWABftwePpu5fVg6p/OWZmaY6aZnX79fStLj+DxV7B4ii/h65ouUTrEwu2W7scNcoinH26rNzv1URvqZ98AtTzduUWrdVy5VFNFMa1TPehCXt1eU26Jqov13Z6tNuqJ7YhVN0G6O/mdM2bVPA4Xv068dX2z7gRmb4v5dmeIxPeuV60/ZyR2RDTAEpuax1OX5xYvXJ0tT9CueiJ7/wB0upxMTETE6xPfcYWXIN1F3AW6cPi6JvYenipmJ+lT8YB0IQdG6rKKqImrEVUT1ardWvZCMzTdlapoqoy23VVXPFwlyNIj7I74Me0DH0zTYwNE61RPCV+Di0iO2VLe7125fu13b1c13K51qqnlmXgB1Dcrjqcdk9jSfzlqmLdceGOSfLDl7dyrMsRlmKi9hqvBVTPJVHRIOtCt4HdfgL1EfKYuYevv60zVHkmPgyYrdbllqjWzXcv1d6mmiY+/QEtmeMt4DA3cTdmNKKdYjrT3ockuVzcrqrqnWqqZmZ8KTzzOsRm12Ju/Qs0/oW6eSPDPTKKAAB1XZdzNzvx6/Zw5U63sis/KNzGaWZne8Jeqo105NaIhRd2W5m9uax1u1Xdi/ZvUzVbuRTvddOWJjpjWPSs9IrwCKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALTsx58Zb532VarLTsx58Zb532VYMm1Pnpi/Et/ghUlt2p89MX4lv8EKks9gAgD7EazpHKksPkWZ4ijfWsHd3vTVpT9+gIwbeNy7GYL9aw1y3HWmOL08jUAAABtYPAYrGzMYXD3LunLNNPFHlBqiUvZBmlmjfV4K7p/w6VdkIyqJpqmKomJjliQfAAAeqKKrlcU26aqqp4oimNZkHkStvc9mtyjfU4K5Ef8AFMUz6JnVo4rCYjCV73E2blqrvb+mY1+wGAAAAAbuDyrHY2N9hsLdrpnkq00j0zxMmKyTMsLTvr2DuxTHLNMb6I9AI4AAAHYNi/8A6Fjv/c/9NLQ23f7L57/tt/Yv/wChY7/3P/TS0Nt3+y+e/wC2+vpPty4B8qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALTsx58Zb532VarLTsx58Zb532VYMm1Pnpi/Et/ghUlt2p89MX4lv8ABCpLPYPr4kNz9qm/nWCt18dM3YmY6dOP3ILtuXyC1gMPRiMRRFWMrjXjj/y/BHhWEAea6KblE0XKYqpmNJiY1iXPt12R05dcpxOFiYw1ydJp6lXwdDRm6WzTeyLG01d63NcfbHH7gcrABPblMljNMTVcvxPyW1+l/wAU9Do1m1bsWqbdmimi3TGkU0xpEIfcbapt7nsPNMcdc1VVeGd9MfdEJsBCbo8is5nYqrt000YymNaa44t94JTYDjVdM0V1U1RMVROkxPel5S+6y1Ta3QYymiNImqKvLNMTPbKIBkw9mvEX7dm1G+uXKoppjwy6fkeTYfKsPEUUxXfmPp3ZjjmfB0Qp24S1Tcz3fVctu1VXH28Ue90UBixWHs4qzVaxFum5bq5YqhlAcv3SZTOU47eUzNVi5G+t1T2x5EQ6Fu+tU15NRcn9K3djSftif/3kc9AW3cdkNvFU/LcbRvrWulu3PJV4Z8CpOvZZZpsZdhrVH6NNumOwGxERERERERHJEPoAqm67ILd2xcxuDoii9RG+uU0xxVx35+1Q3ZpiJiYmNYlyDHWosY3EWqf0bdyqmPJOgMAAOu7HblNrc7mNy5OlFF+aqp6IiiNVU2lbpMLugx2FowG+qw2GpqiLlVOm/mrTXSJ49OKOVY9lvM3O/Hr9nDlT6+kAHyoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtOzHnxlvnfZVqstOzHnxlvnfZVgybU+emL8S3+CFSW3anz0xfiW/wQqSz2DYy/EThMdYxEazwdcVaR34ieRriDsli7Rfs0XbVUVW64iqmY78Pbm+57dHdyuOBvUzewuuu9146fs+C4WN0mVXqIn5VFE9FdMxMAmEBu0xtOFyau1r+dxH0KY8Hfn3eV5zDdZl+Hon5PVVibneimJiPLM+5Rc0zC/mWKqv4mrWeSmmOSmOiAaYAOg7hMbTeyucLMxwliqdI6aZnXX06rM5DgMZewGKoxGGr3tyn0THRPgXrLd12Bv24jF77DXe/rE1Uz9kwCyPldVNFM1VzEU0xrMz3oRN7dHlVqjfTi6avBREzP3Knui3TXMxonD4Wmq1hp/Smf0q/hAInOsXGOzXE4in9Guv6P2RxR2RDRAEvuWxtOAzmzcuTpar1t1z0RP8AnR1Bxha8g3VVYS1Rh8fTVctU8VNynjqpjonpBfBE0bosqro30YyiPBMTE/cjM13X4Wzbqpy+Jv3Z5KpiYpj3yDBtAxtMWbGCpmJrmrhK/BEcUffPoUhlxWIu4rEV3r9c13K51mZYgHUtzONpx2T4eqJ+nbpi3XHRMfHlctSOTZtiMqxPCWNKqKuKu3PJVAOrCBwW6rLMRRE3blWHr79NyJ++OJkxO6bK7FEzGI4WrvU26ZmZ9wJLH4q3gsHdxF6dKLdOv2+ByO7XVcuVXK51qqmap+2Utugz6/m1cUacFhqZ1ptxPL4ZQwAAOq7LeZud+PX7OHKnVdlvM3O/Hr9nDlSz0ACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtOzHnxlvnfZVqstOzHnxlvnfZVgybU+emL8S3+CFSW3anz0xfiW/wQqSz2ACADcs5Zjr9G+s4PEV0z+1FudJ8oNMZ8RhcRhpiMTYu2pnk39M06+lgAAABlw+HvYmve4ezcu1dFFM1T2AxDdu5Xj7VE13MFiKaY5Zm3OkNIAAAH2ImZiIjWZB8G9RlOYV076nA4maeng5at6zdsV7y9brt19WumYntBjAAAAGxhsFicV+rYe9djpoomYesTl2Mw1O+xGFv26etVRMR6QaoAAAOq7LeZud+PX7OHKnXtjVNNe5/MKa6YqpqxGkxMaxMbyFc2rZFgsox2Cv5fapsUYqmvfW6OKmJp044jva77k8D6npFEAfKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC07MefGW+d9lWqy07MefGW+d9lWDJtT56YvxLf4IVJbdqfPTF+Jb/BCpLPYA38hs04jOcHar46ZuRMx0xHH7kFx3L7nbWFs28VjbcV4mqN9TTVGsUR9nSs4Ax37Nu/aqt37dNy3Vy01RrDnm6vI4yu9Tew+s4W5Oka/sT0OjovdPYpv5FjKao/RomuPBNPH7gcsABNbmMlnNsVVNyZpw1vTfzHLPgh0fC4azhLMWsNbpt245IphE7jLNNrc/Yqpj6Vyaq6vDOsx90QnAFe3SbnrOPs13sNRTbxccesRpFfgnw+FYQHGZiYmYmJiY5Yl8S26qzTYz/GUURpE1RX5ZiJntlEg92bVd67RatUzVXXMU0xHfmXS8gyLD5XZpqqppuYqY+lcmNdPBHRCpbhrNN3Paaqo14K3VXH28Ue90YBr47BYfHWJtYq1Tconk15Y8MT3mwA5XugyqvKcdNqZmq1V9K3X0x8UY6Du+s015RbuzH0rd2NJ8ExOvuc+AWjcjkFOO/8AF4ynXD0zpRR15+Cruu5VYpw2W4WzRGkUW6Y8unGDYt0U26Iot0000RxRTTGkQ9TGsaTyACnbrdz1uLFeNwFEUVUcdy3THFMdMdCkuzVUxVTNNUa0zGkxPfcgxtqLGMv2Y5Ldyqj0ToDAADsmxvm/if8An+5Gbbv9l89/20nsb5v4n/n+5Gbbv9l89/2319J9uXAPlQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABadmPPjLfO+yrVZadmPPjLfO+yrBk2p89MX4lv8EKktu1Pnpi/Et/ghUlnsG1luJ+R5hh8RyxbuRVMdMa8bVEHZbddNy3TXbqiqiqImJjvw9Oebm90tWXURhsXFVzDfszH6VHxhcrGd5ZfoiqjHWIjorriifRIJFB7scZThcku0a/nL/wCbpj7+x9zDdNluEoneXoxFzvU2uPt5FCzjM7+aYub1/SIjioojkpgGgADoe4XGU38o+T6/nLFUxp4JnWJ+/wBCyOR5Xj72W4unEYedKo4pieSqOiV+y3dRl+LoiL1z5Nd79Nzk8k8gJ58mYiJmZ0iOWZaF7OsstUTVVjsPMf8ABXFU+iFS3R7qPllqrC4CKqLFXFXcnimqOiI70AhM9xcY7N8ViKOOiqvSmemIjSOyGgAJncljKcFndmq5Olu5E26p6NeTt0dOcYXHc/urptWqcPme+mKY0pvRGs6eGPeC7DQoznLa6Iqpx2G0nrXIifRKMzTdXgcLRMYWr5Te70U/ox9s/AGntAxlNOFsYOmfzlVXCVR0RGsR9/YozPjcVexuJrv4ivfXK51mfcwAOq7nMZTjcnw1ymdaqaYorjoqjin4+VypKZDnF7KMRNVH07NX6duZ5fDHhB1MRGC3R5Zi6In5TTZq79N2d7MeXkZMVn2WYejfVYy1X4LdW/mfQDdxmIowmFu37s6UW6ZqlyG9cm7euXKv0q6pqn7ZTe6PdBczWYtWqZtYWmdYpmeOqemfggQAAdk2N838T/z/AHIzbd/svnv+2k9jfN/E/wDP9yM23f7L57/tvr6T7cuAfKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC07MefGW+d9lWqy07MefGW+d9lWDJtT56YvxLf4IVJbdqfPTF+Jb/BCpLPYAIAM9nCYi/GtixduR00UTP3AwD3dtV2q97doqoq6Ko0l4AAAB6t0V3Kopt01VVT3qY1kHkbF3B4mzTvr2HvW6emqiYhrgAAAADYt4LFXKN/bw1+unpptzMMNVNVFU01RNNUcsTGgPIAAAAyWbN2/VvbNuu5V0UUzMvV/DX7GnD2btvXr0TH3gwgAAA7BsX/APQsd/7n/ppaG27/AGXz3/bbmx67TZ3OZldua7yi/NVWka8UURqp+0TdPZ3R47Dxg6K6cLhqaoomuNKqpq01nTvckPr6T7VIB8qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALTsx58Zb532VarLTsx58Zb532VYMm1Pnpi/Et/ghUlt2p89MX4lv8EKks9gDeyTD04rN8JZrjWiq5G+jpjllBbNy+5u1RYoxeYURXcriKqLdUcVMdMx35WymIpiIpiIiOSIfQGDF4WxjLU28Taou0T3qo+7oc73T5JVlOIpqtTNWFuT9CZ5aZ6JdLRO6nD04jIcXFUcdFPCRPRMcfxBy4AEvucyevNsXNMzNFi3x3K4+6PC6PgcDhsBZi3hbNNunv6Rxz9s99F7irFNnILNcR9K7VVXV6dPuhOgKxuk3NWcTZrxGAtxbxNMazRTGkV+TpWcBxmY0nSeV8Su6ixThs+xluiNKd9FUR9sRPvRQPVuiq5cpooiaq6piIiO/Lo25/c5h8vtUXcTRTexc8czVGsUeCPiq24jD0389oqrjXgqKrkR4eKPe6QA08yy3C5jamjFWoq6Ko4qqfsluAOU55llzKsdVYrnfUTG+or0/ShHOgbv7FNeVWr2kb+3ciInwTE6/dDn4CyblMgjMqpxOK1jC0TpFPJv5+Ctut5Rh6cLleFs0xpvbca/bprPaDYw9i1h7cW7Fui3RHJTTGkPVdFNyiablMVUzyxMaxL0ApG6vc5bsWqsbl9O9op47lqOSI6Y+Cnuy3KKblFVFca01RpMT34cgxdr5Pi71nl4Ouqj0ToDCADquy7mbnfj1+zhyp1XZdzNzvx6/Zw5Us9AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALTsx58Zb532VarLTsx58Zb532VYMm1Pnpi/Et/ghUlt2p89MX4lv8EKks9g28qxMYTMsNiJ/Rt3IqnTo14+xqCDs1FUV0xVTMTTMaxMd99ULczumjBWqcLj99VYp4qLkcc0R0THQuVjMsFfo31nF2Ko8eNfQDbQu6/F04XI78TP070cHTHTry9mrNmGfZdgqJmvEUXK45KLU76Z9HJ5XPs9za9m2L4S59G3TxW7cclMfEEaADou4bFU38lizr9OxVNMx4JnWJ7Z9CxOTZRmV/K8XF+xOveqonkqjodCy3dDl2NoieHps3O/RdnezHl5JBLjVvZjg7NG+u4qxTT4bkKluk3UU37VeFy2Z3lXFXdni1joj4ggN0GKpxuc4q/Rx0VV6Uz0xEaRPYjgBN7j8XThM8tTXOlF2JtTP28nbEOmOMxxTrC75BurtzaosZpVNNynii9prFX2+Hwgt41qMfg7lG+oxViqnpi5CNzTdLgMFbq4O7TiL3eotzrHlnkBHbQMXTRgbGFifp3K9/MdFMa++exRGzmONvZhi68RiKta6u93ojohrAOr7n8XTjMow12mdZ3kU1eCqOKXKExudzu7lF6qNJuYeufp0e+PCDp4jsFnWXYyiJtYq3FU/sVzvao8ksmKzXAYWiar2LsxEd6KomfRHGDYxN6jDYe5euzpRbpmqZ8DkOIuzev3LtX6VdU1T5Z1T+6bdFVmcfJ8LFVvCxOs68tf2+BXAAAdV2Xczc78ev2cOVOq7LuZud+PX7OHKlnoAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABadmPPjLfO+yrVZadmPPjLfO+yrBk2p89MX4lv8EKktu1Pnpi/Et/ghUlnsAEAAAAAAAAAAAAAAAAAAAAAAAAAAHVdl3M3O/Hr9nDlTquy7mbnfj1+zhypZ6ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWnZjz4y3zvsq1WWnZjz4y3zvsqwZNqfPTF+Jb/BCpLbtT56YvxLf4IVJZ7BtYfA3b0RPFTT0yyZZh4u1zcrjWmnvdMphBGdy/wCd/b/k7l/zv7f8pMBGdy/539v+TuX/ADv7f8pMBGdy/wCd/b/k7l/zv7f8pMBGdy/539v+TuX/ADv7f8pMBGdy/wCd/b/k7l/zv7f8pMBGdy/539v+TuX/ADv7f8pMBGdy/wCd/b/k7l/zv7f8pMBGdy/539v+TuX/ADv7f8pMBGdy/wCd/b/k7l/zv7f8pMBGdy/539v+TuX/ADv7f8pMXUm0Z3L/AJ39v+TuX/O/t/ykw1JtFzlc6cV2Jnw0tPEYa5Yn85HF0xyLA810010zTVGsTywgrYzYuzNi/VR3uWPsYQdV2Xczc78ev2cOVOq7LuZud+PX7OHKlnoAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABadmPPjLfO+yrVZadmPPjLfO+yrBk2p89MX4lv8EKktu1Pnpi/Et/ghUlnsTmWREYOiY7+v3tpq5b+pW/L98tpAAAAAAAAAAAAAAAAB3/ZTs7wGEynDZtnWGt4nH4iiLtu3dp31FmmeOn6M8U1acfHyOp00000xTTEU0xyREaRDDgL9nFYHDYjDTE4e7bprtzHJvZjWOxsN/gxVpSNNXlyTa3yAPfUPPY+VUxVTNNURNM8UxMaxL6GoNuVbVdnWAxeU4nNslw1vDY/D0TduW7VO9pvUxx1fRjiirTWeLlcAfszML9nC4DE4jFTEYe1bquXJnkimImZ7H4zann4q1mLV+2bxrzaJiUXnMRranv8AHH3I1J5z/o+X3Ixr2W6rsu5m5349fs4cqdV2Xczc78ev2cOVLPQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC07MefGW+d9lWqy07MefGW+d9lWDJtT56YvxLf4IVJbdqfPTF+Jb/BCpLPYnMt/Urfl++W01ct/Urfl++W0gAAAAAAAAAAAAAAAA6hs12nzufwdGV51au38vo/8q7b467UdGk8tPbHhdOp2p7j5piZzaaZnvThr3F/Y/MIy8XMyY6+sPC/Hredy/T/zpbjvrj/4t7/6Hzpbjvrj/wCLe/8Ao/MA9P8AIZP6h8/taP0/86W4764/+Le/+j5VtT3HxTMxm01T0Rhr3H/Y/MIn+Qyf1B+1o6htK2nzugwdeV5Lau2Mvrn87ducVd2I72kclPbPgcvBjZc1ss7s9qY4pGoRmc/6Pl9yMSec/wCj5fcjHk+3Vdl3M3O/Hr9nDlTquy7mbnfj1+zhypZ6ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWnZjz4y3zvsq1WWnZjz4y3zvsqwZNqfPTF+Jb/BCpLbtT56YvxLf4IVJZ7E5lv6lb8v3y2mrlv6lb8v3y2kH2iiq5XFFETVVPFEQm8LkWtMTibkxM/s0d7yve5vDRFurE1R9KZ3tPgjvpt0vifEUz0/Nm6+oarm822O3pjRNeRYaafo13YnpmYn3IfMMuu4KdatK7czpFce9bnm7bpu2qrdyNaao0mG05HguNekxjjUsPH5DLW38p3CjjLirM2MRctT+zOmvSxOKy47YrzS3cN/S0XrFoEll+U3cVTFyurg7U8kzHHLDlOGjFY2iiqNaI+lV9kLdEaRpEaQ23iPGRzJm+T/WGFzeXOCPWvcoqMiwunHXd16dY+DSxuSV2qZrw9U3Ij9mY4/8AKxDo7+E4lq6iuv8A61dfIZoncyos8Qld0OFiziabtEaU3eWPCinGczjTxc04p+m9wZozUi8DYwWDu4u5vbUcUctU8kNeI1nSFywGGpwuGot0xx8tU9MvbxvBnm5fXqI7fHK5EYKb+0fayGxFP527cqq8GkQ84jIbc0zOHu1RV0V8cJodd/hOHrXr/wBlpP3+fe9qTiLFzD3Zt3aZpqjtY1pzzCxfwVVcR+ctxvonwd9VnKeT8fPCyaj5rPTc8Tk/npuex9ooquVxRRE1VTxREPif3N4amLdeIqjWqZ3tPgjvsTi8e3Jyxir9vbNljFSby8YXItaYnE3JiZ/Zo73lbFeRYaafo13aZ6ZmJ9yWHaY/B8StdTXctDbyGaZ3E6VLMMuvYKdatK7c8UVx72kvF23Tdt1W641pqjSYUzFWZsYi5an9mdNeloPL+LjiayY/9Z/42fC5k5v437Q+c/6Pl9yMSec/6Pl9yMaJsHVdl3M3O/Hr9nDlTquy7mbnfj1+zhypZ6ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWnZjz4y3zvsq1WWnZjz4y3zvsqwZNqfPTF+Jb/BCpLbtT56YvxLf4IVJZ7E5lv6lb8v3y2mrlv6lb8v3y2kFqyGqJyy3EctMzE+lIKxkmOjC3ard2dLVc8vVlZ4mJiJidYl3nheTXNx4rHdfhznPxTTLM/UgNTMcbRg7MzMxNyY+jT0tre9aVm1p+IYdazadQruc1RVmd+Y6Yj0RDSfa6prqmqqdapnWZfH5vzMsZc9r16mXVYKTTHFZ+ktuamIxtyO/NudPTCyKVhL9WGxFF2jlpnk6Y6FvwuIt4q1Fy1VrE8sd+PA6T9O56elsU99tV5THPtF/pmB5uV026JruVRTTHLMum6alD7pqo4CxT35qmVfbma4v5ZiprjWKKeKmPA03BeZ5Fc/JmadR8Ok4OKceKIs92KopvW6p5IqiZ9K7qKs+S4+m/ZptXJ0vURpx/tQyv0/yKYss0t/6ePksVr0i0fSTAdm0LDjZinB35nk3k/cpadz/H01UThrNWus/TmPuQTj/wBQ8mmS9cVfpvPGYrVrNp+xashqicstxHLTMxPpVVJ5JjqcLdqt3Z0tVzy9WWv8RyK8fkxa3U/DJ5uKcuKYjtZwiYmImJ1iR+gRMTG4c0KlnNUVZnfmOmI9EQsWY42jB2ZmZibkx9GnpVGuqa6pqqnWqZ1mXOfqHkUjFGL73ttPGY7e83+kXnP+j5fcjEnnP+j5fcjHHt46rsu5m5349fs4cqdV2Xczc78ev2cOVLPQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC07MefGW+d9lWqy07MefGW+d9lWDJtT56YvxLf4IVJbdqfPTF+Jb/BCpLPYnMt/Urfl++W01ct/Urfl++W0gNrDY/E4aNLV2Yp6s8cNUemPLfFPtSdS+bUreNWjaRrznGVRpFVNPhiloXLldyuarlU1VTyzMvI9s3M5GaNZLTMPPHgx0+awAMV7DJYv3bFe+s11UVeBjH1W1qT7VnUpMRaNSkozrGRTpNVEz0zS1MTi7+JnW/cqq8HJHoYBlZOdyb19bXnTxrx8VZ3FY2AMN7hEzExMTMTHfgDob9nN8Zbp04SK4jrRq8YjM8Vfpmmq5vaZ71MaNMZv7/levr7zpj/ALbDvfrGwBhzMz8y94jQAitnDY/E4aNLV2Yp6s8cNivOcZVGkVU0+GKUcMzFzuTjr60vOnhbj4rTu1YerlddyuarlU1VTyzMvIMW97Xn2tO5e1axWNQjM5/0fL7kYk85/wBHy+5GPlXVdl3M3O/Hr9nDlTquy7mbnfj1+zhypZ6ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWnZjz4y3zvsq1WWnZjz4y3zvsqwZNqfPTF+Jb/AAQqS27U+emL8S3+CFSWexOZb+pW/L98tpq5b+pW/L98tpBsYDCV4y/FujiiOOqrohaMJgMPhqYi3biautVGsy1tz1mKMBFzT6VyZnXwRxJN2HhfGY4xRmyxuZ620fP5dpv+Ok6iHmu3Rcp3tymmqnomNULmuUUxbqvYWNJjjqo+CcG45PBw8mvrerBxci+Kd1lRRs5naixj71umNIirWI8E8fvaz895GL8OS2Ofp0+O/vSLf2+00zVVFNMTMzOkRCyZdlFqzRFeIpi5dnvTyR8UbuetU3Mw31Ua7ymao+3k96zt74Px+PPvLljcR9Nd5Dk2x6pT4fIpiKdIiIjoiGjjcrw+JpmaaYt3O9VTH3w3x1OTi4clfS1Y009c16z7RPypOIs14e9VbuRpVSxp3dNajWzeiOOdaZ93vQTgfI8SOJnnHHX06Pi5vzY4tPYlsoyv5THDX9Ytd6Ot/hFW6ZruU0xy1TELvaopt26aKY0ppjSIZPh+DXl5f5/6w8+dyJw0/j3LzZsWrNMRat00R4IecRhbGIp0vW6avDpx+lmHbRxsUU9PWNf1poPy337b+VTzXL6sFciaZmq1V+jPR4JaK4Zpai9gL1M96mao+2ONT3GeZ4FeLki2P/WW94PJnNXVu4GxgMJXjL8W6OKI46quiGus+56zFGAi5p9K5Mzr4I4mDwOL+6zxj+vtkcnN+HHNmzhMBh8LTEW7cTV1qo1mWxXRRcp3tymmqOiY1eh3+LiYcNfSlY05u+a959rSg81yimLdV7Cxppx1UfBAr0p2Z2osY+9bpjSIq1iPBPH73Ned8djw1jNjjX9w2vj+Ta8/jv8AKDzn/R8vuRiTzn/R8vuRjmW2dV2Xczc78ev2cOVOq7LuZud+PX7OHKlnoAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABadmPPjLfO+yrVZadmPPjLfO+yrBk2p89MX4lv8EKktu1Pnpi/Et/ghUlnsTmW/qVvy/fLaauW/qVvy/fLaQWfc9eivAcH37dUxp4J40mpuAxdeDvxco445KqemFowmPw+JpiaLkRV1ap0l2vhOfTJhjDef5Q0PP41q3m9Y+JbQ8110W6d9XVTTHTM6IXNc3pm3VZws6zPFVX4PA23I5WPj0m95YWLDfLb1rCKzO7F/H3q6eOJnSJ+ziawPzvk5fzZbZP7l0+Kn46RX+knueuxbx+9qnTf0zTH28vuWdRqappqiqmZiYnWJhZMuze1eoijE1Rbux355J+DfeB52PFvDknW+mu8jx7X1kr9JUfIqpmnfRMTHTEtHG5ph8NTMRVFy53qaZ19Lqr5qY6+1p1DTVpa06iGjumux+Zsxy8dU+73oJkxF6vEXqrlydaqpY3A+U5ccrPN69fTpeJhnDjis9vVureXKao5aZiV2tV03LdNdE601RrEqOlsnzT5NEWb+s2u9VH7P8Ahk+F5tOLlmMnVnjz8E5abr3CyDHZvWr1Otq5TXHgnV5xGKsYemZu3KafBrx+h235Ka9t/DQett60x5ndps4C9VVPLTNMfbPEp7fzXMKsbXFNMTTZp5I6fDLQcZ5znU5OSKY53FW+8fx7Yq+1u5Fm3PXYuYDeftW6pjTwTxqy2MBi68Hfi5RxxyVU9MMHx3K/a54yT19sjlYfzY5rHa5DVwmPw+JpiaLkRV1auKWxXXRbp31dVNMdMzo/QMeamSvtSdw5q1LVnUw9Kdmd2L+PvV08cTOkT4I4vclc1zemaKrOFnWZ4qq/ggXM+e52O9YwUnf9tt47j2rP5LIzOf8AR8vuRiTzn/R8vuRjlm3dV2Xczc78ev2cOVOq7LuZud+PX7OHKlnoAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABadmPPjLfO+yrVZadmPPjLfO+yrBk2p89MX4lv8EKktu1Pnpi/Et/ghUlnsTGU3IqsTb79M9jeV2xdqs3Iro5Y7Uzh8ZavRH0opq6soNkAABZmZNACAAAAu5TUACKAAALuU1AAigAAC7mE1APkzFMazMRHhaWKx9FETTZmKq+nvQitXNrkV36aI/YjtaL7MzMzM8czyvgOq7LuZud+PX7OHKnVdl3M3O/Hr9nDlSz0ACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtOzHnxlvnfZVqstOzHnxlvnfZVgybU+emL8S3+CFSW3anz0xfiW/wQqSz2ACAAAAAAAAAAAAAAAAAAAAAAAAAADquy7mbnfj1+zhyp1XZdzNzvx6/Zw5Us9AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALPs0qindvls1TpGtyPLNuqFYbeUY2vLc0wuNtxrVYu03NOnSeTygsm1WiqndliZqjSKrduY8Mb2I90qg6rtOyunOcqwe6DLI4Wim1HCb3jmbc8cT5Jmdft8DlSyACAAAAAAAAAAAAAAAAAAAAAAAAADLhrF3FYi3Yw9uq5euVRTRRTGszMg6jszibW4bOr1fFRvrs6/ZbjVyl1zdLwe5HZ5aymmuJxmKpm3Vp35njuT9mk73yw5GsoAIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC67gt2VWRz8izCKrmW1zrxRrNqZ5Zjpjpj/8ATYc03CZXn1E4/c1jrNumvjm3H0revk46fs09DlLYweMxOCu8Lg8ResXOtarmmexYFuubNc+pnSn5JXHTTe+MQ8/Nvn/7vD/1YRMbrs/iIjuriZ+2rV9/LDP/AK0xHpj4HwJT5uM//d4f+rB83Gf/ALvD/wBWEV+V+f8A1piPTB+V+f8A1piPTB8CV+bjP/3eH/qwfNxn/wC7w/8AVhFflfn/ANaYj0wflfn/ANaYj0wfAlfm4z/93h/6sHzcZ/8Au8P/AFYRX5X5/wDWmI9MH5X5/wDWmI9MHwJX5uM//d4f+rB83Gf/ALvD/wBWEV+V+f8A1piPTB+V+f8A1piPTB8CV+bjP/3eH/qwfNxn/wC7w/8AVhFflfn/ANaYj0wflfn/ANaYj0wfAlfm4z/93h/6sHzcZ/8Au8P/AFYRX5X5/wDWmI9MH5X5/wDWmI9MHwJX5uM//d4f+rB83Gf/ALvD/wBWEV+V+f8A1piPTB+V+f8A1piPTB8CV+bjP/3eH/qwfNxn/wC7w/8AVhFflfn/ANaYj0wflfn/ANaYj0wfAlfm4z/93h/6sHzcZ/8Au8P/AFYRX5X5/wDWmI9MH5X5/wDWmI9MHwJX5uM//d4f+rB83Gf/ALvD/wBWEV+V+f8A1piPTB+V+f8A1piPTB8CV+bjP/3eH/qwfNxn/wC7w/8AVhFflfn/ANaYj0wflfn/ANaYj0wfAlfm4z/93h/6sHzcZ/8Au8P/AFYRX5X5/wDWmI9MH5X5/wDWmI9MHwJ3B7Mc5u1x8ovYSxR35muap8kRHvWaxhdz2z6xVev3vlWaTTpEcXCT4Kaf2I8M/wCHOL+6nPL9uaLma4vezyxTcmnX0IeqqquqaqpmqqeOZmdZk+ESW6PO8Vn2Z14zFzpM/RotxyUU96IRYIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADLNi5HLT2w88FX0drPVVVrPHPpedZ6ZTYxcHV0HB1dD3VM9Mvms9Mg8byroN5V0Pes9Mms9Mg8byroN5V0Pes9Mms9Mg8byroN5V0Pes9Mms9Mg8byroN5V0Pes9Mms9Mg8byrofYtVzyR2vWs9MvduZ4+OQY+BudXtOBudXtZtZ6ZNZ6ZBh4G51e04G51e1m1npk1npkGHgbnV7TgbnV7WbWemTWemQYeBudXtOBudXtZtZ6ZNZ6ZBh4G51e04G51e1m1npk1npkGHgbnV7TgbnV7WbWemTWemQYeBudXtOBudXtZtZ6ZNZ6ZBh4G51e04G51e1m1npk1npkGHgbnV7TgbnV7WbWemTWemQYeBudXtOBudXtZtZ6ZNZ6ZBh4G51e04G51e1m1npk1npkGHgbnV7TgbnV7WbWemTWemQYeBudXtOBudXtZtZ6ZNZ6ZBh4G51e04G51e1m1npk1npkGHgbnV7TgbnV7WbWemTWemQYeBudXtOBudXtZtZ6ZNZ6ZBh4G51e04G51e1m1npk1npkGHgbnV7TgbnV7WbWemTWemQYeBudXtOBudXtZtZ6ZNZ6ZBh4G51e04G51e1m1npk1npkGHgbnV7TgbnV7WbWemTWemQYeBudXtOBudXtZtZ6ZNZ6ZBh4G51e04G51e1m1npk1npkGHgbnV7TgbnV7WbWemTWemQYKrddMa1Ro86Sz3ZmaeOWFYHzSTSX0XQ+aSaS+hofIpmZiI5Ze+BudXtfKf0o+1n1nplBh4G51e04G51e1m1npk1nplNjDwNzq9pwNzq9rNrPTJrPTJsYeBudXtOBudXtZtZ6ZNZ6ZNjDwNzq9pwNzq9rNrPTJrPTJsYeBudXtOBudXtZtZ6ZNZ6ZNjDwNzq9pwNzq9rNrPTJrPTJsYeBudXtOBudXtZtZ6ZNZ6ZNjDwNzq9pwNzq9rNrPTJrPTJsYeBudXtOBudXtZtZ6ZNZ6ZNjDwNzq9r7wFzq9rLrPTJrPTJsYuAudXtOAudXtZdZ6ZetZ6ZNjB8nu9Xth9+TXep2wzxVPTL7FU9MmxgjCX55KO2BuUVTryyA//9k=","e":1},{"id":"fr_10","w":760,"h":554,"u":"","p":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAIqAvgDASIAAhEBAxEB/8QAHAABAAIDAQEBAAAAAAAAAAAAAAYHAwQFAgEI/8QATxABAAEDAQEJCwYNAgQHAQAAAAECAwQFEQYHEhMhMTZRUhVBYXKBg5GSobPRFCJxsbLBFhcjMjRCU1RVY5Oi4UNFYnPCwyQzNXSk0vDx/8QAGwEBAQADAQEBAAAAAAAAAAAAAAEEBQYDAgf/xAAoEQEAAgICAgIBBAMBAQAAAAAAAQIDEQQxBRIhQRMGFCJRFTKhQoH/2gAMAwEAAhEDEQA/APyoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANnT8HJ1HLt4uFZrvX652U0Ux7fBHhWLpu9vi4mNGTuk1Gm1THLVRbqiimnwTXV8AViLSr0/e8tTwasuKpjvxduVbfLHI8/I97r95n17vwXQq8Wh8j3uv3mfXu/A+R73X7zPr3fgaTarxaHyPe6/eZ9e78D5HvdfvM+vd+Bo2q8Wh8j3uv3mfXu/A+R73X7zPr3fgaNqvFofI97r95n17vwPke91+8z6934GjarxaHyPe6/eZ9e78D5HvdfvM+vd+Bo2q8Wh8j3uv3mfXu/A+R73X7zPr3fgaNqvFofI97r95n17vwPke91+8z6934GjarxaHyPe6/eZ9e78D5HvdfvM+vd+Bo2q8Wh8j3uv3mfXu/A+R73X7zPr3fgaNqvFofI97r95n17vwPke91+8z6934GjarxaHyPe6/eZ9e78D5HvdfvM+vd+Bo2q8Wh8j3uv3mfXu/A+R73X7zPr3fgaNqvFqW9C3Bah+Txc+LVyeSJ+UTTP8Ae4u6be7ztNs1ZOm3Pl2NTG2aYp2XKY+j9byeg0bQUBFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH2ImZiIiZmeaIfHe3CYlObuu0yzXETTxvGTE9/gxNX/AEgsLAs4m99uVjMybUXNVyYiJp781Ty8DwUx3/8A+Kv1rWM7WcucjUL9V2v9WnmpojqpjvQlW+/nV390tGLwp4rGsxsp/wCKrlmfRwfQgqygAigAAAAAAAAAAAAAAAAAAAAAAACW7i92OXoWTbs5Fdd/Tap2VWqp2zbjrp6vo5pRIBYu+juesUUWte0vgzjZMxxsUfm7Z5Yrj6e/4dnWrpbO5CvuxvX6lh354U2Kbtujb4Iiun0TPsVMsgAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTvY9ONN877qtFkp3senGm+d91WDJvp9NMvxLf2IRJLd9Pppl+Jb+xCJLPYAyY9m5kXYt2qZqqlBjEhxtCtxTE5Fyqqrqp5IbHcXD7NfrAiwlPcXD7NfrHcXD7NfrAiwlPcXD7NfrHcXD7NfrAiwlPcXD7NfrHcXD7NfrAiwlPcXD7NfrHcXD7NfrAiwlPcXD7NfrHcXD7NfrAiwlPcXD7NfrHcXD7NfrAiwlPcXD7NfrHcXD7NfrAiwlPcXD7NfrHcXD7NfrAiwlPcXD7NfrHcXD7NfrAiwlPcXD7NfrPlWiYkxsiLkeGKgRcdTUNIuY1M3LU8Zbjn5OWHLAABau9d0N1vx6/dwqpau9d0N1vx6/dwqpZABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnex6cab533VaLJTvY9ONN877qsGTfT6aZfiW/sQiSW76fTTL8S39iESWewSjQcaLWHF2Y+fc5dvg7yLplptUVYGPMfs4j0Qg2QAAAAAAAAAAAAAAAAAAAAAES1jGjGzaqaI2UVRwqY6ktR3dNVE5VqnvxRtn0g4wALV3ruhut+PX7uFVLV3ruhut+PX7uFVLIAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU72PTjTfO+6rRZKd7HpxpvnfdVgyb6fTTL8S39iESS3fT6aZfiW/sQiSz2DuaBn024+TXp2RM7aJnm+hwxBOxEsbVMrHiKabnCpjvV8rY7u5XYs+rPxBJRGu7uV2LPqz8Tu7ldiz6s/EElEa7u5XYs+rPxO7uV2LPqz8QSURru7ldiz6s/E7u5XYs+rPxBJRGu7uV2LPqz8Tu7ldiz6s/EElEa7u5XYs+rPxO7uV2LPqz8QSURru7ldiz6s/E7u5XYs+rPxBJRGu7uV2LPqz8Tu7ldiz6s/EElEa7u5XYs+rPxO7uV2LPqz8QSURru7ldiz6s/E7u5XYs+rPxBJRGu7uV2LPqz8XyrXMqY2RFqPDFM/EEhyL9vHtTcu1cGmPaiGZkVZWTXdq5OFPJHVDzkZF3Ir4V65VXPh7zEAAC1d67obrfj1+7hVS1d67obrfj1+7hVSyACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlO9j0403zvuq0WSnex6cab533VYMm+n00y/Et/YhEkt30+mmX4lv7EIks9gAgD1RTVXVFNFM1VTyRERtmXXsbmtVvURVGLNMT26opn0TO0HGHQztG1DBp4eTjV00dqNlUR5Yc8AAAG9gaTnZ8bcXHrrp7XNT6Z5AaI7V3cxq1ujhTi8KI7NdMz6NrkXLddquaLlFVFcck01RsmAeAAAZLFm7kXYt2Lddy5PNTTG2QYx26Ny+rV0cL5NEeCblMT9bQztNzMCdmXj124nmmY2xPljkBpgAAADp4WhalmURXYxa+BPNVVMUxPp52TJ3O6pj0TXXiVVUx36Jir2Ryg5A+zExMxMbJh8AABau9d0N1vx6/dwqpau9d0N1vx6/dwqpZABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnex6cab533VaLJTvY9ONN877qsGTfT6aZfiW/sQiSW76fTTL8S39iESWewfYiZmIiNsy+Ojuet03dcwqK/zeNifRy/cgnW5nQ7emY1Ny7TFWZXG2qqf1fBDuAD5MRMTExExPPEoFuy0SjCqpzMSng2K52V0RzU1eDwSnzm7pLVN3Qs2mrmi3NXljlj6gVUACRbkNFp1K/VfyYmca1Ozg9urq+hYlFNNFEU0UxTTHJERGyIcbcdbpo3PY00xy18KqfDPCn4Q7QDk7oNGs6ri1fNinJpj8nc7/0T4HWAU1coqt3KqK4mmumZpmJ70w8uxuut0290OXFEbImaavLNMTLjgzYmPcy8m1YsxtuXKophaOjaXj6XixasUxNcx8+5MctUoXuDt0165NVUctu1VVT9O2I++ViAPF61bv2qrd6imu3VGyaao2xL2ArLdRo/crNjits413bNEz3uuHFWHu9t01aLRXP51F2JjyxMK8ATLcZoVu7bjPzKIriZ/JUVRycn60oat/TrdNnT8a3R+bTbpiPQDYABGt12h28vFuZeNRFOTbjhVbI/Pjv7fCr1c/Pzqgz7dNnOybVH5tFyqmPoiQa4ALV3ruhut+PX7uFVLV3ruhut+PX7uFVLIAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU72PTjTfO+6rRZKd7HpxpvnfdVgyb6fTTL8S39iESS3fT6aZfiW/sQiSz2DPg5E4uZYv08s264r2deyWAQXFjX7eTj271mrhW644USyqy0DX7+kzNvZxuNVO2bczs2eGJS+xur0q5RE3LtdmezXbmfq2g7yPbts+nF0mrHifyuR82I6qe/P3eVg1Ddjh2qJjCorv3O9MxwaY9PKhOoZt/Pyar+TXwrlXoiOqAawAJ9uDz6bun1YdU/lLMzNMddMzt+vb6UpU/h5V7DyKL+PXNFyidsTCbaduxxrlFNOfbqs3O/VRHCpn74BKnm7cotW6rlyqKaKY21TPehxL26vSbdE1UX67s9mm3VE+2IRTdBujv6nTNm1TxOL36dvLV9M/cDmavl/LtTyMnvXK9tP0c0eyIaYA6m5rOp0/WLF65Oy1PzK56onv/VK04mJiJidsT31MJLoG6i7gW6bGXRN7Hp5KZifnU/GAWEOHRuq0iqiJqyKqJ7NVurb7IczVN2VqmiqjTbdVVc8nGXI2RH0R3wY98DPpmmxg0TtqieMr8HJsiPbKFvd67cv3a7t6ua7lc7aqp55l4AWhuVzqc7R7GyfylqmLdceGOafLCr27pWpZGmZUXsarwVUzzVR1SC2hG8HdfgXqI+Uxcx6+/tpmqPJMfBkyt1umWqNtmu5fq71NNEx9ewHW1PMt4GDdybsxsop2xHanvQqS5XNyuquqdtVUzMz4XT1zWsjVrsTd+ZZp/Mt080eGeuXKAABau9d0N1vx6/dwqpbe9FZ+UbmNUszPB4y9VRt2c22iIQXdluZvbms63aruxfs3qZqt3Ip4O3ZzxMdcbY9Kz0iPAIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlO9j0403zvuq0WSnex6cab533VYMm+n00y/Et/YhEkt30+mmX4lv7EIks9gAgD7EbZ2Rzulj6FqeRRwrWHd4PXVsp+vYDmDbzdOzML9KxrluO1Mcnp5moAAADaw8DKzZmMXHuXdnPNNPJHlBqjqXtA1SzRwq8K5s/4dlXshzKommqYqiYmOeJB8AAB6ooquVxTbpqqqnkiKY2zIPI61vc9qtyjhU4VyI/4pimfRM7WhlYmRiV8HJs3LVXe4dMxt+gGAAAAAbuHpWdmxwsbFu10zzVbNkemeRkytE1LFp4V7DuxTHPNMcKI9AOcAAAC4N5f/0LO/8Ac/8ATS0N+7/ZfPf9tv7y/wD6Fnf+5/6aWhv3f7L57/tvr6T7VcA+VAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp3senGm+d91WiyU72PTjTfO+6rBk30+mmX4lv7EIklu+n00y/Et/YhElnsH18dDc/apv61hW6+WmbsTMdezl+5BNty+gWsDHoyMiiKsyuNvLH/AJfgjwpCAPNdFNyiaLlMVUzGyYmNsSr7ddodOnXKcnFiYxrk7Jp7FXwWG5m6WzTe0LNpq71ua4+mOX7gVWADvblNFjVMmq5fifktqfnf8U9SxrNq3YtU27NFNFumNkU0xsiHH3G2qbe57HmmOWuaqqvDPCmPqiHbAcTdHoVnU7FVdummjMpjbTXHJwvBLtgKarpmiuqmqJiqJ2TE96Xl191lqm1ugzKaI2RMxV5ZpiZ9suQDJj2a8i/bs2o4Vy5VFNMeGVn6Ho2PpWPEUUxXfmPn3ZjlmfB1Qh24S1Tc13hVc9u1VXH08kfesUBiysezlWarWRbpuW6ueKoZQFX7pNJnSc7gUzNVi5HCt1T7Y8jkLC3fWqa9GouT+dbuxsn6Yn/95FegJbuO0G3lU/Lc2jhWtuy3bnmq8M+BElvaZZpsadjWqPzabdMewGxERTERERERzRD6AIpuu0C3dsXM3Doii9RHCuU0xyVx35+lA1zTETExMbYlUGdaixm5Fqn823cqpjyTsBgABbu87cps7ndRuXJ2UUX5qqnqiKI2opvlbpMXdBnYtGBwqsbGpqiLlVOzhzVs27Inl2ckc6R71vQ3W/Hr93Cqn1PSAD5UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnex6cab533VaLJTvY9ONN877qsGTfT6aZfiW/sQiSW76fTTL8S39iESWewbGn5E4mdYyIjbxdcVbOuInma4guSxdov2aLtqqKrdcRVTMd+HtW+57dHd0uOJvUzexdu3g7eWn6PgmFjdJpV6iJ+VRRPVXTMTAOw4G7TNpxdGrtbfyuR8ymPB359H1vOobrNPx6J+T1VZNzvRTExHlmfuQXVNQv6llVX8mrbM8kUxzUx1QDTABYO4TNpvaXOLMxxliqdkddMzt2+nakyocDMvYGVRkY1fBuU+iY6p8Cdabuuwb9uIy+FjXe/tiaqZ+iYBJHyuqmimaq5iKaY2zM96HJvbo9KtUcKcumrwURMz9SJ7ot01zUaJx8Wmq1jT+dM/nV/CAcnWsuM7VcnIp/Nrr+b9EckeyIaIA6+5bNpwNZs3Lk7LVe23XPVE/wCdi0FMJXoG6qrEtUY+fTVctU8lNynlqpjqnrBPByaN0WlV0cKMyiPBMTE/U5mq7r8Wzbqp0+Jv3Z5qpiYpj75Bg3wM2mLNjCpmJrmrjK4jvRHJH1z6EIZcrIu5WRXev1zXcrnbMyxALS3M5tOdo+PVE/Pt0xbrjqmPjzqtdHRtWyNKyeMsbKqKuSu3PNVALWHBwt1WmZFETduVY9ffpuUz9ccjJk7ptLsUTMZHG1d6m3TMzP3A6WflW8LDu5F6dlFunb9PgVHdrqu3K66+WqqZqn6ZdbdBr1/Vq4o2cVjUztptxPP4ZcYAAFq71vQ3W/Hr93Cqlq71vQ3W/Hr93CqlnoAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKd7HpxpvnfdVoslO9j0403zvuqwZN9Pppl+Jb+xCJJbvp9NMvxLf2IRJZ7ABABuWNMzr9HCs4eRXT2otzsnyg0xnyMXIxpiMmxdtTPNw6Zp2+lgAAABlx8e9k18HHs3LtXVRTNU+wGIbt3Ss+zRwrmFkU0xzzNudkNIAAAH2ImZiIjbMg+Deo0nUK6eFTg5M09fFy1b1m7Yr4F63Xbr7NdMxPtBjAAAAGxjYWTlfo2Peux10UTMPWRp2ZjU8LIxb9untVUTEekGqAAAC1d63obrfj1+7hVS3t5qmmvc/qFNdMVU1ZGyYmNsTHAhHN9bQsLSM7Cv6fapsUZVNfCt0clMVU7OWI723hc3gfU9IggD5UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnex6cab533VaLJTvY9ONN877qsGTfT6aZfiW/sQiSW76fTTL8S39iESWewBv6DZpyNZw7VfLTNyJmOuI5fuQTHcvudtYtm3lZtuK8mqOFTTVG2KI+jrScAY79m3ftVW79um5bq56ao2wrzdXocaXepvY+2cW5OyNv6k9Sx3L3T2Kb+hZlNUfm0TXHgmnl+4FWAA7W5jRZ1bKqm5M041vZw5jnnwQsfFxrOJZi1jW6bduOaKYcncZZptbn7FVMfOuzVXV4Z2zH1RDuAI9uk3PWc+zXexqKbeXHLtiNkV+CfD4UhAUzMTEzExMTHel8dbdVZpsa/mUURsiaor8sxEz7ZckHuzarvXaLVqmaq65immI78ysvQNCx9Ls01VU03MqY+dcmNuzwR1QiW4azTd12mqqNvFW6q4+nkj71jANfOwsfOsTayrVNyiebbzx4YnvNgBVe6DSq9JzptTM1WqvnW6+uPi5iwd31mmvSLd2Y+dbuxsnwTE7fuV8AlG5HQKc7/wAXmU7cemdlFHbn4Iut3SrFONpuLZojZFFumPLs5QbFuim3RFFummmiOSKaY2RD1MbY2TzACHbrdz1uLFebgURRVRy3LdMckx1x1ISuaqmKqZpqjbTMbJie+qDNtRYzL9mOa3cqo9E7AYAAXHvOdH8n/n/c5u/d/svnv+26W850fyf+f9zm793+y+e/7b6jpPtVwD5UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnex6cab533VaLJTvY9ONN877qsGTfT6aZfiW/sQiSW76fTTL8S39iESWewbWm5PyPUMfI54t3IqmOuNvK1RBctuum5bprt1RVRVETEx34elebm90tWnURjZcVXMb9WY/Oo+MJlY1vTL9EVUZ1iI6q64on0SDouHuxzKcXRLtG38pf8AydMfX7H3UN02m4lE8C9F+53qLXLt8vMgWsanf1TLm9f2REclFEc1MA0AAWHuFzKb+kfJ9v5SxVMbPBM7Yn6/Qkio9Lz72m5dN/HnZVHJMTzVR1Sn2m7qNPy6Ii9c+TXe/Tc5vJPMDvPkzERMzOyI55loXta0y1RNVWdjzH/BXFU+iES3R7qPllqrFwIqosVcldyeSao6ojvQDia7lxnavlZFHLRVXspnriI2R7IaAA7O5LMpwtbs1XJ2W7kTbqnq283t2LOUwmO5/dXTatU4+p8KYpjZTeiNs7PDH3gmw0KNZ02uiKqc7G2T2rkRPolzNU3V4OLRMYtXym93op/Nj6Z+ANPfAzKacWxh0z+Uqq4yqOqI2xH1+xBmfNyr2bk138ivhXK52zP3MAC1dzmZTm6PjXKZ21U0xRXHVVHJPx8qqnU0HWL2kZM1URw7Nf59uZ5/DHVILTHIwt0emZdET8pps1d+m7PBmPLzMmVr2mY9HCqzLVfgt1cOZ9AN3MyKMTFu37s7KLdM1SqG9cm7euXKvzq6pqn6ZdvdHuguarMWrVM2sWmdsUzPLVPXPwcEAAFx7znR/J/5/wBzm793+y+e/wC26W850fyf+f8Ac5u/d/svnv8AtvqOk+1XAPlQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKd7HpxpvnfdVoslO9j0403zvuqwZN9Pppl+Jb+xCJJbvp9NMvxLf2IRJZ7ABABns4mRfjbYsXbkddFEz9QMA93bVdqvg3aKqKuqqNkvAAAAPVuiu5VFNumqqqe9TG2QeRsXcPJs08K9j3rdPXVRMQ1wAAAABsW8LKuUcO3jX66eum3Mww1U1UVTTVE01RzxMbAeQAAABks2bt+rg2bddyrqopmZer+NfsbOPs3be3t0TH1gwgAAAuDeX/wDQs7/3P/TS0N+7/ZfPf9tubz12mzuc1K7c28Ci/NVWyNvJFEbUP3xN09ndHnY8YdFdOLjU1RRNcbKqpq2bZ2d7mh9fSfaJAPlQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKd7HpxpvnfdVoslO9j0403zvuqwZN9Pppl+Jb+xCJJbvp9NMvxLf2IRJZ7AG9oePTlaviWa420VXI4Udcc8oJZuX3NWqLFGXqFEV3K44VFuqOSmOuY78pZTEUxEUxERHNEPoDBl4tjMtTbybVF2ie9VH1dSu90+iVaTkU1WpmrFuT8yZ56Z6pWW5W6nHpyNBy4qjlop4yJ6pjl+IKtAB19zmj16tlzTMzRYt8tyuPqjwrHwcHGwLMW8WzTbp7+yOWfpnvuXuKsU2dAs1xHzrtVVdXp2fVDugIxuk3NWcmzXkYFuLeTTG2aKY2RX5OtJwFMzGydk8746u6ixTja9mW6I2U8KKoj6YifvcoHq3RVcuU0URNVdUxERHflY25/c5j6faou5NFN3Lnlmao2xR4I+KLbiMem/rtFVcbeKoquRHh5I+9ZADT1LTcXUbU0ZVqKuqqOSqn6JbgCqdc0y5pWdVYrnhUTHCor2fnQ5ywN39imvSrV7ZHDt3IiJ8ExO36oV+Akm5TQI1KqcnK2xi0Tsinm4c/BG1t6Rj04ul4tmmNnBtxt+nZtn2g2Mexax7cW7Fui3RHNTTGyHquim5RNNymKqZ54mNsS9AIRur3OW7FqrN0+ng0U8ty1HNEdcfBD1y3KKblFVFcbaao2TE9+FQZdr5Pl3rPPxddVHonYDCAC1d67obrfj1+7hVS1d67obrfj1+7hVSz0ACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlO9j0403zvuq0WSnex6cab533VYMm+n00y/Et/YhEkt30+mmX4lv7EIks9g29KyYxNSxsifzbdyKp2dW3l9jUEFzUVRXTFVMxNMxtiY776gW5ndNGFapxc/hVWKeSi5HLNEdUx1JlY1LCv0RVZy7FUePG2PIDbcXdfl04uh34mfn3o4umOvbz+zazahr2nYVEzXkUXK45qLU8KZ9HN5Vfa7q17VsvjLnzbdPJbtxzUx8Qc0AFi7hsqm/osWdvz7FU0zHgmdsT7Z9CRKm0jUr+l5cX7E7e9VRPNVHUsLTd0OnZtETx9Nm536Ls8GY8vNIOuNW9qOHZo4V3KsU0+G5CJbpN1FN+1Xi6bM8CrkruzybY6o+IOBugyqc3Wcq/Ry0VV7KZ64iNkT7HOAHb3H5dOJrlqa52UXYm1M/Tze2IWYpmOSdsJvoG6u3NqixqlU03KeSL2zbFX0+Hwgl41qM/DuUcKjKsVU9cXIc3VN0uBhW6uLu05F7vUW52x5Z5gc7fAy6aMGxixPz7lfDmOqmNv3z7EEbOo5t7UMuvIyKttdXe70R1Q1gFr7n8unM0jGu0ztngRTV4Ko5JVQ7G53W7ukXqo2Tcx65+fR98eEFnjnYWtadmURNrKtxVP6lc8GqPJLJlargYtE1XsuzER3oqiZ9EcoNjJvUY2PcvXZ2UW6ZqmfAqHIuzev3LtX51dU1T5Z2u/um3RVanHyfFiq3ixO2dvPX9PgRwAAFq713Q3W/Hr93Cqlq713Q3W/Hr93CqlnoAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKd7HpxpvnfdVoslO9j0403zvuqwZN9Pppl+Jb+xCJJbvp9NMvxLf2IRJZ7ABAAAAAAAAAAAAAAAAAAAAAAAAAABau9d0N1vx6/dwqpau9d0N1vx6/dwqpZ6ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnex6cab533VaLJTvY9ONN877qsGTfT6aZfiW/sQiSW76fTTL8S39iESWewbWPg3b0RVyU0z35ZNMx4u1zcrjbTT3uuXYQczuX/O/t/wAncv8Anf2/5dMBzO5f87+3/J3L/nf2/wCXTAczuX/O/t/ydy/539v+XTAczuX/ADv7f8ncv+d/b/l0wHM7l/zv7f8AJ3L/AJ39v+XTAczuX/O/t/ydy/539v8Al0wHM7l/zv7f8ncv+d/b/l0wHM7l/wA7+3/J3L/nf2/5dMBzO5f87+3/ACdy/wCd/b/l0wHM7l/zv7f8ncv+d/b/AJdMXUm3M7l/zv7f8ncv+d/b/lOd77cz+E+uxj3aqqMSzTxl+qnn2beSmPDM/euGNX0nQKvkej6bai3b+bVVbmKNs/TsmZ+mWdw/H5OXP8WNyOVTBH8n5knS52cl2Jnw0tPIxrlifnxydccz9J7odzmk7stHyMnTcWjF1azEzHBiKeHPPwatnJMT188exRddEVRVRXTyc0xL45nCycS3rd9YORXPG6o0M2XZ4i/VR3ueJ8DCw3utXeu6G6349fu4VUtXeu6G6349fu4VUs9AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTvY9ONN877qtFkp3senGm+d91WDJvp9NMvxLf2IRJLd9Pppl+Jb+xCJLPY7emREYdEx39s+1ttXTf0K35frltIAAAAAAAAAAAAAAAAL/3qt7vAxNJxtW1rGt5OfkURdt27tPCos0zy0/NnkmrZy8vMtOmmmimKaYimmOaIjZEMOBfs5WBjZGNMTYu26bluY5uDMbY9jYb/BirSkaavLkm1vkAe+oee2lqVMzRRV3omYUxn4t3Cyrli/TMV0zs2z3/AAwvKqmKqZpqjbEufk6VavTHDiiuI5orpidjO4fJjB8SxuRhnLHwgW4ixXYpys29tox+Bs2zzTs5ZnyKAzbtN/NyLtETFNy5VVH0TO1+vb1vG07ByMnKmOJs2qq65mNkRTEbZ9j8eNX5vkfmmJhmeNw/jiYly9Zj51qe/O37nNdPWf8AR8v3OY59tVq713Q3W/Hr93Cqlq713Q3W/Hr93CqlnoAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKd7HpxpvnfdVoslO9j0403zvuqwZN9Pppl+Jb+xCJJbvp9NMvxLf2IRJZ7Hc039Ct+X65bTV039Ct+X65bSAAAAAAAAAAAAAAAAC0N7XfPnc/h0aXrVq7f0+j/yrtvlrtRPe2Tz0+2PCs6nfT3HzTEzq00zPenGvcn9j8wjLx8zJjr6w8L8et53L9P/AI0tx38Y/wDi3v8A6H40tx38Y/8Ai3v/AKPzAPT/ACGT+ofP7Wj9P/jS3Hfxj/4t7/6PlW+nuPimZjVpqnqjGvcv9j8wif5DJ/UH7Wi0N8rfPndDh16Xotq7Y0+ufyt25yV3Y6tkc1PtnwKvBjZc1ss7s9qY4pGoczWf9Hy/c5jp6z/o+X7nMeT7WrvXdDdb8ev3cKqWrvXdDdb8ev3cKqWegAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp3senGm+d91WiyU72PTjTfO+6rBk30+mmX4lv7EIklu+n00y/Et/YhElnsdzTf0K35frltNXTf0K35frltIPtFFVyuKKImqqeSIh28XQttMTlXJiZ/Vo73le9zeNEW6smqPnTPBp8Ed923S+J8RTPT82br6hqubzbY7emNya9Cxpp+bXdieuZifucfUNOu4U7atlduZ2RXH3pc83bdN21VbuRtpqjZMNpyPBca9JjHGpYePyGWtv5TuEHGXKszYyLlqf1Z2beticVlx2xXmlu4b+lovWLQOlp+k3cqmLldXF2p5pmOWWHScaMrNooqjbRHzqvohLojZGyI2Q23iPGRzJm+T/AFhhc3lzgj1r3LlRoWLs5a7u3r2x8Glm6JXapmvHqm5EfqzHL/lIh0d/CcS1dRXX/wBauvkM0TuZQWR1d0OLFnJpu0Rspu88eFynGczjTxc04p+m9wZozUi8DYwsO7mXODajkjnqnmhrxG2dkJlgY1OLjUW6Y5eeqeuXt43gzzcvr1EdvjlciMFN/bn2tBsRT+VuXKqvBsiHnI0G3NMzj3aoq6q+WHaHXf4Th616/wDZaX/IZ972hORYuY92bd2maao9rGlOuYsX8OquI/KW44UT4O+izlPJ+PnhZNR81npuOJyfz03PcD7RRVcriiiJqqnkiIfHf3N41MW68iqNtUzwafBHfYnF49uTljFX7e2bLGKk3l4xdC20xOVcmJn9WjveVsV6FjTT82u7E9czE/c6w7TH4TiUrq1dy0NvIZrTuJ0iWoadewp21bK7c8kVx97STi7bpu26rdcbaao2TCGZVmbGRctT+rOzb1tB5fxccTWTH/rP/Gz4XMnN/G/bj6z/AKPl+5zHT1n/AEfL9zmNE2C1d67obrfj1+7hVS1d67obrfj1+7hVSz0ACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlO9j0403zvuq0WSnex6cab533VYMm+n00y/Et/YhEkt30+mmX4lv7EIks9juab+hW/L9ctpq6b+hW/L9ctpBKtBqidMtxHPTMxPpdBGNEzoxbtVu7Oy1XPP2ZSeJiYiYnbEu88Lya5uPFY7r8Oc5+KaZZn6kBqajm0YdmZmdtyY+bT1tre9aVm1p+IYdazadQjus1RVqd+Y64j0RDSfa6prqmqqdtUztmXx+bcvLGXPe9epl1WCk0xxWXW3NTEZtyO/NudnphJEKxL9WNkUXaOemebrjqS/FyLeVai5aq2xPPHfjwOl/TuenpbFPfbVeUxz7Rf6ZgebldNuia7lUU0xzzLpumpcfdNVHEWKe/NUyj7c1XL+WZU1xtiinkpjwNNwXmeRXPyZmnUfDpODinHiiLPdiqKb1uqeaKomfSm6CpPoufTkWabNydl6iNnL+tDK/T/ACaYss0t/wCnj5LFa9ItH06YDs2hYc2Ypw78zzcCfqQt3dfz6aqJxrNW3bPz5j6nCcf+oeTTJeuKv03njMU1rNp+xKtBqidMtxHPTMxPpRV09EzqcW7VbuzstVzz9mWv8RyK8fkxa3U/DJ5uKcuKYjtJwiYmImJ2xI/QImJjcOaES1mqKtTvzHXEeiISLUc2jDszMzE3Jj5tPWiNdU11TVVO2qZ2zLnP1DyKRijF9722njMdveb/AE5es/6Pl+5zHT1n/R8v3OY49vFq713Q3W/Hr93Cqlq713Q3W/Hr93CqlnoAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKd7HpxpvnfdVoslO9j0403zvuqwZN9Pppl+Jb+xCJJbvp9NMvxLf2IRJZ7Hc039Ct+X65bTV039Ct+X65bSA2sbPycaNlq7MU9meWGqPTHlvin2pOpfNqVvGrRt0a9ZzKo2RVTT4YpaFy5Xcrmq5VNVU88zLyPbNzORmjWS0zDzx4MdPmsADFewyWL92xXwrNdVFXgYx9Vtak+1Z1KTEWjUulGtZkU7JqomeuaWpk5d/JnbfuVVeDmj0MAysnP5N6+trzp414+Ks7isbAGG9wiZiYmJmJjvwB0N+zq+Zbp2cZFcf8AFG14yNTy79M01XODTPepjY0xmxz+VFfX3nTH/bYd79Y2AMOZmfmXvEaAEVs42fk40bLV2Yp7M8sNivWcyqNkVU0+GKXOGZj53Jx19aXnTwtx8Vp3asPVyuu5XNVyqaqp55mXkGLe9rz7WncvatYrGoczWf8AR8v3OY6es/6Pl+5zHyq1d67obrfj1+7hVS1d67obrfj1+7hVSz0ACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlO9j0403zvuq0WSnex6cab533VYMm+n00y/Et/YhEkt30+mmX4lv7EIks9juab+hW/L9ctpq6b+hW/L9ctpBsYGJXmX4t0ckRy1VdUJRiYGPjUxFu3E1dqqNsy1tz1mKMCLmz51yZnb4I5HTdh4XxmOMUZssbmettHz+Xab/jpOoh5rt0XKeDcopqp6pja4uq6RTFuq9ixsmOWqj4O4NxyeDh5NfW9WDi5F8U7rKCjZ1OzFjPvW6Y2RFW2I+nl+9rPz3kYvw5bY5+nT4r+9It/b7TTNVUU0xMzM7IiEk07SLVmiK8imLl2e9PNHxc3c9apuahwqo28Cmao+nm+9J298H4/Hn3lyxuI+mu8hybY9Up8PkUxFOyIiI6oho5ul4+TTM00xbud6qmPrhvjqcnFw5K+lqxpp65r1n2iflCcizXj3qrdyNlVLG7u6a1G2zeiOWdtM/d97hOB8jxI4meccdfTo+Lm/Nji09jraRpfymOOv7Ytd6O1/hyrdM13KaY56piE3tUU27dNFMbKaY2RDJ8Pwa8vL/P/AFh587kThp/HuXmzYtWaYi1bpojwQ85GLYyKdl63TV4dnL6WYdtHGxRT09Y1/Wmg/Lfftv5RPVdPqwrkTTM1WqvzZ6vBLRTDVLUXsC9TPepmqPpjlQ9xfmeBXiZItj/1lveDyZzV1buBsYGJXmX4t0ckRy1VdUNdJ9z1mKMCLmz51yZnb4I5GFwOL+6zxj+vtkcnN+HHNmziYGPi0xFu3E1dqqNsy2K7dFyng3Kaao6pja9Dv8XEw4a+lKxpzd817z7TLh6rpFMW6r2LGzZy1UfBwU6Q7U7MWM+9bpjZEVbYjwTy/e5rzvjseGsZsca/uG18fybXn8d/lw9Z/wBHy/c5jp6z/o+X7nMcy2y1d67obrfj1+7hVS1d67obrfj1+7hVSz0ACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlO9j0403zvuq0WSnex6cab533VYMm+n00y/Et/YhEkt30+mmX4lv7EIks9juab+hW/L9ctpq6b+hW/L9ctpBJ9z16K8Di+/bqmNngnldNDcDLrw78XKOWOaqnrhKMTPx8mmJouRFXZqnZLtfCc+mTDGG8/yhoefxrVvN6x8S2h5rrot08KuqmmOuZ2OLqur0zbqs4s7Znkqr8HgbbkcrHx6Te8sLFhvlt61hytTuxfz71dPLEzsifo5GsD875OX82W2T+5dPip+OkV/p09z12Lefwap2cOmaY+nn+5J0GpqmmqKqZmJidsTCSadq9q9RFGTVFu7Hfnmn4N94HnY8W8OSdb6a7yPHtfWSv06o+RVTNPCiYmOuJaObqmPjUzEVRcud6mmdvpdVfNTHX2tOoaatLWnUQ0d012PyNmOflqn7vvcJkyL1eRequXJ21VSxuB8py45Web16+nS8TDOHHFZ7erdXAuU1Rz0zEptarpuW6a6J201RtiUHdXSNU+TRFm/tm13qo/V/wyfC82nFyzGTqzx5+CctN17hJRjs3rV6nbauU1x/wztecjKsY9MzduU0+Dby+h235Ka9t/DQett60x6ndps4F6qqeemaY+meRD2/quoVZtcU0xNNmnmjr8MtBxnnOdTk5IpjncVb7x/Htir7W7kSfc9eivA4vv26pjZ4J5UYbGBl14d+LlHLHNVT1wwfG8r9rnjJPX2yOVh/NjmsdpkNXEz8fJpiaLkRV2auSWxXXRbp4VdVNMdczsfoGPNTJX2pO4c1alqzqYekO1O7F/PvV08sTOyJ8Ecn3Orqur0zRVZxZ2zPJVX8HBcz57nY71jBSd/wBtt47j2rP5LOZrP+j5fucx09Z/0fL9zmOWbdau9d0N1vx6/dwqpau9d0N1vx6/dwqpZ6ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnex6cab533VaLJTvY9ONN877qsGTfT6aZfiW/sQiSW76fTTL8S39iESWex2NJuRVYm336Z9jeR2xdqs3Iro549rs4+ZavRHzopq7MoNkAABZmZNACAAAAu5TUACKAAALuU1AAigAAC7mE1APkzFMbZmIjwtLKz6KKZpszFVfX3oRWrq1yK79NEfqR7Wi+zMzMzPLM874C1d67obrfj1+7hVS1d67obrfj1+7hVSz0ACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlO9j0403zvuq0WSnex6cab533VYMm+n00y/Et/YhEkt30+mmX4lv7EIks9gAgAAAAAAAAAAAAAAAAAAAAAAAAAAtXeu6G6349fu4VUtXeu6G6349fu4VUs9AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJPvaVRTu302ap2RtuR5Zt1QjDb0jNr03VMXNtxtqsXabmzr2TzeUEk31aKqd2WTNUbIqt25jwxwYj7pRBau+dpdOs6Vh7oNMjjaKbUcZwY2zNueWJ8kzO36fAqpZABAAAAAAAAAAAAAAAAAAAAAAAAABlxrF3KyLdjHt1XL1yqKaKKY2zMyC0d7KJtbhtavV8lHCuzt+i3G1VK3N0vF7kd7y1pNNcTmZVM26tnfmeW5P0bJ4PlhUaygAigAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJruC3ZVaHPyLUIqu6bXO3kjbNqZ55iO/HXH/6ZFqm4TS9eonP3NZ1m3TXyzbj51vb5OWn6NnkhVDYw8zJwrvG4eResXO1armmfYuxLrm9rr1M7KfklcddN74xDz+LfX/2eP8A1YcmN12vxER3VyZ+mra+/hhr/wDFMj0x8D4HU/Fxr/7PH/qwfi41/wDZ4/8AVhyvwv1/+KZHpg/C/X/4pkemD4HV/Fxr/wCzx/6sH4uNf/Z4/wDVhyvwv1/+KZHpg/C/X/4pkemD4HV/Fxr/AOzx/wCrB+LjX/2eP/Vhyvwv1/8AimR6YPwv1/8AimR6YPgdX8XGv/s8f+rB+LjX/wBnj/1Ycr8L9f8A4pkemD8L9f8A4pkemD4HV/Fxr/7PH/qwfi41/wDZ4/8AVhyvwv1/+KZHpg/C/X/4pkemD4HV/Fxr/wCzx/6sH4uNf/Z4/wDVhyvwv1/+KZHpg/C/X/4pkemD4HV/Fxr/AOzx/wCrB+LjX/2eP/Vhyvwv1/8AimR6YPwv1/8AimR6YPgdX8XGv/s8f+rB+LjX/wBnj/1Ycr8L9f8A4pkemD8L9f8A4pkemD4HV/Fxr/7PH/qwfi41/wDZ4/8AVhyvwv1/+KZHpg/C/X/4pkemD4HV/Fxr/wCzx/6sH4uNf/Z4/wDVhyvwv1/+KZHpg/C/X/4pkemD4HV/Fxr/AOzx/wCrB+LjX/2eP/Vhyvwv1/8AimR6YPwv1/8AimR6YPgdX8XGv/s8f+rB+LjX/wBnj/1Ycr8L9f8A4pkemD8L9f8A4pkemD4Hdw97HWbtcfKL2JYo78zXNU+SIj70msYu57e+sVXr975Vqk07Ijk4yfBTT+pHhn28yuL+6nXL9uaLmq5fBnnim5NO30OPVVVXVNVUzVVPLMzO2ZPhHS3R63la9qdeZlzsmfm0W45qKe9EOWCKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyzYuRz0+2Hniq+r2s81VcKeWfS8bZ602MfF1dRxdXU91TPXL5tnrkHjgVdRwKup72z1ybZ65B44FXUcCrqe9s9cm2euQeOBV1HAq6nvbPXJtnrkHjgVdRwKup72z1ybZ65B44FXU+xarnmj2vW2euXqiZ2c8g8cTc7PtOJudn2svCnrk4U9cgxcTc7PtOJudn2svCnrk4U9cgxcTc7PtOJudn2svCnrk4U9cgxcTc7PtOJudn2svCnrk4U9cgxcTc7PtOJudn2svCnrk4U9cgxcTc7PtOJudn2svCnrk4U9cgxcTc7PtOJudn2svCnrk4U9cgxcTc7PtOJudn2svCnrk4U9cgxcTc7PtOJudn2svCnrk4U9cgxcTc7PtOJudn2svCnrk4U9cgxcTc7PtOJudn2svCnrk4U9cgxcTc7PtOJudn2svCnrk4U9cgxcTc7PtOJudn2svCnrk4U9cgxcTc7PtOJudn2svCnrk4U9cgxcTc7PtOJudn2svCnrk4U9cgxcTc7PtOJudn2svCnrk4U9cgxcTc7PtOJudn2svCnrk4U9cgxcTc7PtOJudn2svCnrk4U9cgxcTc7PtOJudn2svCnrk4U9cgxcTc7PtOJudn2svCnrk4U9cgxcTc7PtOJudn2svCnrk4U9cgxcTc7PtOJudn2svCnrk4U9cgxcTc7PtOJudn2svCnrk4U9cgxcTc7PtOJudn2svCnrk4U9cgw1W66Y21Rsedkst2Z4PPLGsD5sk2S+i6HzZJsl9DQ+RTMzERzy98Tc7PtfKPzoZuFPXKSMXE3Oz7TibnZ9rLwp65OFPXKbGLibnZ9pxNzs+1l4U9cnCnrk2MXE3Oz7TibnZ9rLwp65OFPXJsYuJudn2nE3Oz7WXhT1ycKeuTYxcTc7PtOJudn2svCnrk4U9cmxi4m52facTc7PtZeFPXJwp65NjFxNzs+04m52fay8KeuThT1ybGLibnZ9pxNzs+1l4U9cnCnrk2MXE3Oz7TibnZ9rLwp65OFPXJsYuJudn2vvEXOz7WThT1ycKeufSbGPiLnZ9pxFzs+1miZ65fds9cmxg+T3ez7Yffk93se2GeKp65fYqnrk2MEYl+eaj2wNyiqdvPID/2Q==","e":1},{"id":"fr_11","w":760,"h":554,"u":"","p":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAIqAvgDASIAAhEBAxEB/8QAHAABAAIDAQEBAAAAAAAAAAAAAAYHAwQFAgEI/8QASxABAAECAgMKCQwABAUEAwAAAAECAwQFBxFRBhITITE2UnKhsxQVQWGDkZKy0RYXIjJTVFVxgZOxwSNCRcM1YnN0wiQzNPCi4fH/xAAWAQEBAQAAAAAAAAAAAAAAAAAAAQL/xAAZEQEAAwEBAAAAAAAAAAAAAAAAARExIUH/2gAMAwEAAhEDEQA/APyoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANnL8DicxxdvC4KzXev1zqpopjt80edY2W6N8JhMNGJ3SZjTapjjqot1RRTT5prq+AKwFpV5fo8tTvasVEzHli7cq1/rHE8+B6OvvM+3d+C0KvFoeB6OvvM+3d+B4Ho6+8z7d34FJarxaHgejr7zPt3fgeB6OvvM+3d+BRarxaHgejr7zPt3fgeB6OvvM+3d+BRarxaHgejr7zPt3fgeB6OvvM+3d+BRarxaHgejr7zPt3fgeB6OvvM+3d+BRarxaHgejr7zPt3fgeB6OvvM+3d+BRarxaHgejr7zPt3fgeB6OvvM+3d+BRarxaHgejr7zPt3fgeB6OvvM+3d+BRarxaHgejr7zPt3fgeB6OvvM+3d+BRarxaHgejr7zPt3fgeB6OvvM+3d+BRarxaHgejr7zPt3fgeB6OvvM+3d+BRarxaHgejr7zPt3fgeB6OvvM+3d+BRarxalrI9wWYarWFx/BXJ5J4eaZ/8Azhxd02jvHZbZqxOW3PDsNTGuaYp1XKY/L/N+nqKLQUBFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH2ImZiIiZmeSIfHe3CYSnG7rsss1xE08LwkxPl3sTV/wCILCwFnCaPtysYzE2ouZriYiJp8s1Tx7zzUx5f/wCKvzrOMdnOLnEZhfqu1/5aeSmiNlMeSEq0v46u/ulowu+ngsNZjVT/AM1XHM+re+pBVlABFAAAAAAAAAAAAAAAAAAAAAAAAEt3F7scXkWJt2cRXXfy2qdVVqqdc24207Py5JRIBYulDc9YootZ9le9nDYmY4WKPq66uOK4/Py+fVtV0tnchX440YZlg7876bFN23Rr81MV0+qZ7FTLIAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU6MefGW+l7qtFkp0Y8+Mt9L3VYMmlPnpi+pb9yESS3Snz0xfUt+5CJLOgDJh7NzEXYt2qZqqlBjEhw2RW4picRcqqq2U8UNjxLg+jX7QIsJT4lwfRr9o8S4Po1+0CLCU+JcH0a/aPEuD6NftAiwlPiXB9Gv2jxLg+jX7QIsJT4lwfRr9o8S4Po1+0CLCU+JcH0a/aPEuD6NftAiwlPiXB9Gv2jxLg+jX7QIsJT4lwfRr9o8S4Po1+0CLCU+JcH0a/aPEuD6NftAiwlPiXB9Gv2jxLg+jX7QIsJT4lwfRr9p8qyTCTGqIuR54qBFx1cwyi5hqZuWquEtxy8XHDlAAAtXRdzNzvr193Cqlq6LuZud9evu4VUsgAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJTox58Zb6Xuq0WSnRjz4y30vdVgyaU+emL6lv3IRJLdKfPTF9S37kIks6CUZDhos4OLsx/iXOPX5vIi6ZZbVFWAw8x9nEeqEGyAAAAAAAAAAAAAAAAAAAAAAiWcYaMNjaqaI1UVRvqY2Jaju6aqJxVqnyxRrn1g4wALV0Xczc769fdwqpaui7mbnfXr7uFVLIAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU6MefGW+l7qtFkp0Y8+Mt9L3VYMmlPnpi+pb9yESS3Snz0xfUt+5CJLOg7mQY+m3Hg16dUTOuiZ5PycMQTsRLDZpisPEU03N9THkr42x49xXQs+zPxBJRGvHuK6Fn2Z+J49xXQs+zPxBJRGvHuK6Fn2Z+J49xXQs+zPxBJRGvHuK6Fn2Z+J49xXQs+zPxBJRGvHuK6Fn2Z+J49xXQs+zPxBJRGvHuK6Fn2Z+J49xXQs+zPxBJRGvHuK6Fn2Z+J49xXQs+zPxBJRGvHuK6Fn2Z+J49xXQs+zPxBJRGvHuK6Fn2Z+J49xXQs+zPxBJRGvHuK6Fn2Z+J49xXQs+zPxBJRGvHuK6Fn2Z+L5VnmKmNURajzxTPxBIsRft4e1Vcu1RTTHah+MxFWKxNd2ri308UbIecRiLuIr3165VXPn8jEAAC1dF3M3O+vX3cKqWrou5m5316+7hVSyACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlOjHnxlvpe6rRZKdGPPjLfS91WDJpT56YvqW/chEkt0p89MX1LfuQiSzoAIA9UU1V1RTRTNVU8UREa5l17G5rNr1EVRhZpienVFM+qZ1g4w6GOybMMDTv8Thq6aOlGqqI/WHPAAABvYDKcdj414XDV109Lkp9c8QNEdq7uYza3Rvpwu+iOjXTM+rW5Fy3Xarmi5RVRXHFNNUapgHgAAGSxZu4i7FuxbruXJ5KaY1yDGO3RuXzaujfeDRHmm5TE/y0MdluMwE6sXh67cTyTMa4n9Y4gaYAAAA6eCyLMsZRFdjC17yeSqqYpifXysmJ3O5ph6JrrwlVVMeWiYq7I4wcgfZiYnVPFL4AAC1dF3M3O+vX3cKqWrou5m5316+7hVSyACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlOjHnxlvpe6rRZKdGPPjLfS91WDJpT56YvqW/chEkt0p89MX1LfuQiSzoPsRMzERGuZfHR3PW6bueYKiv6vCxPq4/wCkE63M5HbyzDU3LtMVYyuNdVU/5fNDuAD5MRMTExExPFMSgW7LJKMFVTjMJTvbFc6q6I5KZ83mlPnN3SWqbuRY2mrki3NX6xxx/AKqABItyGS05lfqv4mNeGtTq3vTq2fksSimmimKaKYppjiiIjVEONuOt00bnsLNMcde+qnzzvpdoByd0GTWc1wtX0YpxNMf4dzy69k+Z1gFNXKKrdyqiuJprpmYmJ8kvLsbrrdNvdDi4ojVEzTV+s0xMuODNhMPcxeJtWLMa7lyqKYWjk2V4fK8LFqxTE1zH07k8tUoXuDt0155NVUcdu1VVT+euI/uViAPF61bv2qrd6imu3VGqaao1xL2ArLdRk/irGxwWucNd1zbmfJthxVh7vbdNWS0Vz9ai7Ex+sTCvAEy3GZFbu24x+MoiuJn/Coqji4v80oat/LrdNnL8Nbo+rTbpiPUDYABGt12R28XhrmLw1EU4m3G+q1R9ePL+qvVz8vKqDH26bOOxNqj6tFyqmPyiQa4ALV0Xczc769fdwqpaui7mbnfXr7uFVLIAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU6MefGW+l7qtFkp0Y8+Mt9L3VYMmlPnpi+pb9yESS3Snz0xfUt+5CJLOgz4LEThcZYxFPHNuuK9W3VLAILiw1+3icPbvWat9brjfRLKrLIM/v5TM29XC4aqdc25nVq88Sl9jdXlVyiJuXa7M9Gu3M/wAawd5Ht22PpwuU1YeJ/wAXEfRiNlPln+v1YMw3Y4O1RMYKiu/X5JmN7T28aE5hjb+PxNV/E1765V6ojZANYAE+3B4+m7l9WDqnVcszM0xtpmdf860pU/g8TeweIov4euaLlE64mE2y3djhrlEU4+3XZueWqiN9TP8AcAlTzduUWrdVy5VFNFMa6pnyQ4l7dVlNuiaqL9d2ejRbqie2IRTP90d/M6Zs2qZs4Xy06+Or85/oHMzfF+HZliMT5LlWun8uSOyIaYA6m5rHU5fnFi9cnVanXRXOyJ8v8StOJiYiYnXEqYSXIN1F3AW6bGLpm9h44qZifpUx/cAsIcO3uqymqiJqxFVE9Gq3Vr7IczNN2VqmiqjLbdVVc8XCXI1RH5R5QY9IGPpmmxgaJ11RPCV+bi1RHbKFvd67cv3a7t6ua7lc66qp5Zl4AWhuVx1OOyexqn/EtUxbrjzxyT+sKvbuVZliMsxUXsNV5qqZ5Ko2SC2hG8DuvwF6iPCYuYevy66Zqj9Jj4MmK3W5Zao12a7l+ryU00TH86gdbM8ZbwGBu4m7MaqKdcR0p8kKkuVzcrqrqnXVVMzM+d088zrEZtdibuqizT9S1TyR552y5QAALV0Xczc769fdwqpbeiKz4RuYzSzM73hL1VGvVya6IhBd2W5m9uax1u1Xdi/ZvUzVbuRTvderliY2xxetZxEeARQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKdGPPjLfS91WiyU6MefGW+l7qsGTSnz0xfUt+5CJJbpT56YvqW/chElnQAQB9iNc6o5XSw+RZniKN9awd3e7atVP86gcwbeNy7GYL/wCVhrluOlMcXr5GoAAADZweAxWMmYwuHuXdXLNNPFH6g1h1L2QZpZo31eCuav8Al1Vfw5lUTTVMVRMTHFMT5AfAAAeqKKrlcU26aqqp4oimNcyDyOrb3PZrco31OCuRH/NMUz6pnW0cVhMRhK97ibNy1V5N/TMa/wAgYAAAABu4PKsdjY32Gwt2unpatUeueJkxWSZlhad9ewd2KY5ZpjfRHqBzgAAAXBoX/wCBY7/uf/Gloabv9F9N/tt/Qv8A8Cx3/c/+NLQ03f6L6b/ba8T1VwDKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU6MefGW+l7qtFkp0Y8+Mt9L3VYMmlPnpi+pb9yESS3Snz0xfUt+5CJLOg+vjobn7VN/OsFbr46ZuxMxt1cf9IJtuXyC1gMPRiMRRFWMrjXxx/7fmjzpCAPNdFNyiaLlMVUzGqYmNcSr7ddkdOXXKcThYmMNcnVNPQq+Cw3M3S2ab2RY2mryW5rj844/6BVYAO/uUyWM0xNVy/E+C2vreTfTsWLZtW7Fqm3Zopot0xqimmNUQ4+421Tb3PYaaY465qqq8876Y/iIdsBxN0eRWczw9ddummnF0xrprji33ml2wFNV0zRVNNUTFUTqmJ8kvLr7rLVNrdDjKaI1RNUVfrNMTPbLkAyYezXiL9uzajfXLlUU0x55WfkeTYfKsPEUUxXfmPp3ZjjmfNshDtwlqm5nu+q5bdqquPz4o/tYoDFisPZxVmq1iLdNy3VyxVDKAq/dJlM5Tjt5TM1WLkb63VPbH6OQsLd9apryai5P1rd2NU/nE/8A39FegJbuOyG3iqfDcbRvrWvVbtzyVeefMiS3sss02Muw1qj6tNumOwGxERERERERHJEPoAim67ILd2xcxuDoii9RG+uU0xxVx5Z/NA1zTETExPHEqgx1qLGNxFqn6tu5VTH6TqBgABbuh25Ta3O5jcuTqoovzVVOyIojWimkrdJhd0GOwtGA31WGw1NURcqp3u/mrVr1RPHq+jHKkei3mbnfXr7uFVNTiADKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU6MefGW+l7qtFkp0Y8+Mt9L3VYMmlPnpi+pb9yESS3Snz0xfUt+5CJLOg2MvxE4THWMRHHwdcVatsRPI1xBcli7Rfs0XbVUVW64iqmY8sPat9z26O7lccDepm9hdeve6+On8vgmFjdJlV6iJ8KiidldMxMA7DgbtMdThcmrtRP+LiPoUx5vLPq/l5zDdZl+HonweqrE3PJFMTEfrM/0guaZhfzLFVX8TVrnkimOSmNkA0wAWDuExtN7K5wszHCWKp1Rtpmdev160mVBgMZewGKoxGGr3tyn1TGyfMneW7rsDiKIjF77DXfLriaqZ/KY/sEkfK6qaKZqrmIppjXMz5Icm7ujyq1RvpxdNXmpiZmexE90W6a5mNE4fC01WsNP1pn61f57IByc7xcY7NcTiY+rXX9H8o4o7IhogDr7lsbTgM5s3Lk6rVeu3XOyJ/8A3qWgphK8g3VVYS1Rh8fTVctU8VNynjqpjZO0E8HJo3RZVXRvoxlEeaYmJ/hzM13X4Wzbqpy+Jv3Z5KpiYpj+5Bg0gY2ngbGConXXNXCV+aI4o/mfUhDLir93FX671+ua7lc65mWIBaW5nG047J8PVE/Tt0xbrjZMfHlVa6OTZtiMqxPCWNVVFXFXbnkqgFrDg4LdVlmIoibtyrD1+Wm5E/zHEyYndNldiiZjEcLV5KbdMzM/0DpY/FW8Fg7uIvTqot06/wA/MqO7XVduV118dVUzVP5y626DPr+bVxRq4LDUzrptxPL55cYAAFq6LeZud9evu4VUtXRbzNzvr193CqlnAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp0Y8+Mt9L3VaLJTox58Zb6XuqwZNKfPTF9S37kIklulPnpi+pb9yESWdABABuWcsx1+iK7OExFdM8lUW51SDTGfEYXEYaYjE2LtqZ5N/TNOv1sAAAAMuHw97E173D2bl2rZRTNU9gMQ3buVY+1RvrmCxFNMcszbnVDSAAAB9iJmYiI1zIPg3qMpzCunfU4HEzTt4OWres3bFe8vW67dfRrpmJ7QYwAAABsYbBYnFf/Gw967G2iiZesRl2Mw1O+xGFv26elVRMR6waoAAALV0W8zc769fdwqpb2hqmmvc/mFNdMVU1YjVMTGuJjeQjmlbIsFlGOwV/L7VNijFU1763RxUxNOrjiPJr33J5mpxEEAZUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnRjz4y30vdVoslOjHnxlvpe6rBk0p89MX1LfuQiSW6U+emL6lv3IRJZ0Ab+Q2acRnODtV8dM3ImY2xHH/SCY7l9ztrDWKMVjbcV4muN9TTVGuKI/Lak4Ax37Nu/aqt37dNy3Vy01RrhXm6vI4yu9Tew+ucLcnVGv8AyTsWO5e6exTfyLGU1R9Wia48008f9AqwAHb3MZLObYqZuTNOGtaprmOWfNCx8LhrOFsxaw9um3bjkpphyNxlmm1ufsVUx9K5NVdXnnXMfxEO4Aj26Tc9Zx9mu9hqKbeLjj1xGqK/NPn86QgKZmJiZiYmJjliXx1t1Vmmxn+MoojVTNUV/rMRM9suSD3ZtV3rtFq1TNVdcxTTEeWZWXkORYfK7NNVVNNzFTH0rkxyeaNkIluGs03c9pqqjXwVuquPz4o/tYwDXx2Cw+OsTaxVqm5RPJr5Y88T5GwAqvdBlVeU46bUzNVqr6VuvbHxcxYO76zTXlFu7MfSt3Y1T5pidf8ASvgEo3I5BTjv/V4ynXh6Z1UUdOfgi63cqsU4bLcLZojVFFumP11cYNi3RTboii3TTTRHFFNMaoh6mNcap5ABDt1u563FivG4CiKKqOO5bpjimNsbEJXNVTFdM01RrpmNUxPlVBjbUWMZfsxyW7lVHqnUDAAC49DnN/E/9f8ApzdNv+i+n/23S0Oc38T/ANf+nN02/wCi+n/22vE9VcAyoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlOjHnxlvpe6rRZKdGPPjLfS91WDJpT56YvqW/chEkt0p89MX1LfuQiSzoNrLcT4HmGHxHLFu5FUxtjXxtUQXLbrpuW6a7dUVUVRExMeWHpXm5vdLVl1EYbFxVcw3+WY+tR8YTKxneWX6Iqox1iI2V1xRPqkHRcPdjjKcLkl2jX/AIl//Dpj+ex9zDdNluEoneXoxFzyU2uPX+vIgWcZnfzTFzev6oiOKiiOSmAaAALD3C4ym/lHg2v/ABLFUxq80zrif59SSKjyvH38txdOIw8/SjimmeSqNkp9lu6jL8XRHDXPBrvlpucn6TyA7z5MxETMzqiOWZaF7OsstUTVVjsPMf8AJXFU+qES3R7qPDLVWFwEVUWKuKu5PFNUbIjyQDiZ9i4x2b4rEUTroqq1Uz5ojVH8NAAdncljKcFndmq5Oq3cibdU7NfJ26lnKYTHc/urptWqcPme+mKY1U3o451eeP7BNhoUZzltdEVU47Dap6VyIn1S5mabq8DhaJjC1eE3vJFP1Y/OfgDT0gYymnC2MHTP+JVVwlUbIjXEfz2IMz43FXsbia7+Ir31yudcz/TAAtXc5jKcbk+GuUzrqppiiuNlUcU/H9VVOpkOcXsoxM1URv7Nf17czy+ePOC0xyMFujyzF0RPhNNmry03Z3sx+vIyYrPssw9G+qxlqvzW6t/M+oG7jMRRhMLdv3Z1UW6ZqlUN65N29cuVfWrqmqfzl290e6C5msxatUzawtM64pmeOqds/BwQAAXHoc5v4n/r/wBObpt/0X0/+26Whzm/if8Ar/05um3/AEX0/wDtteJ6q4BlQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKdGPPjLfS91WiyU6MefGW+l7qsGTSnz0xfUt+5CJJbpT56YvqW/chElnQAQAZ7OExF+NdixduRtoomf4BgHu7artV727RVRVsqjVLwAAAD1boruVRTbpqqqnyUxrkHkbF3B4mzTvr2HvW6dtVExDXAAAAAGxbwWKuUb+3hr9dO2m3Mww1U1UVTTVE01RyxMageQAAABks2bt6re2bddyrZRTMy9X8NfsauHs3bevp0TH8gwgAAAuDQv/wACx3/c/wDjS0NN3+i+m/225oeu02dzmZXbmveUX5qq1Rr4oojWiGkTdNZ3R47D+B0V04XDU1RRNcaqqpq1a51eTkhrxPURAZUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnRjz4y30vdVoslOjHnxlvpe6rBk0p89MX1LfuQiSW6U+emL6lv3IRJZ0Ab2SWKcVm+Es1xroquRvo2xHHKCWbl9zdqixRi8woiu5XEVUW6o4qY2zHllLKYimIimIiI5Ih9AYMXhbGMtTbxNqi7RPkqj+Niu90+SVZTiKarUzVhbk/QmeWmdkrLcndTh6cRkOLiqOOinhInZMcfxBVwAOvucyevNsXNMzNNijjuVx/EedY+BwOGwFmLeFs026fLqjjn858rl7irFNnILNcR9K7VVXVP66v4h3QEY3SbmrOJs14jAW4t4mmNc0Uxqiv9NqTgKZmNU6p5Xx1d1FinDZ9jLdEaqd9FUR+cRP9uUD1boquXKaKImquqYiIjyysbc/ucw+X2qbmJopvYueOZmNcUeaPii24jD0389oqrjXwVFVyI8/FH9rIAaeZZbhcxtTRirUVT5K44qqfyluAKpzzLLmVY6qxcnfUT9KivV9aHOWBu/sU15Vavao39u5ERPmmJ1/xCvwEk3KZBGZVTicVrjC0Tqink38/BG1uZRh6cLleFs0xq3tuNf56tc9oM+HsWsPbi3Yt0W6I5KaY1Q9V0U3KJpuUxVTPLExriXoBCN1m5yixaqxuX072injuWo5IjbHwQ9ctyim5RVRXGumqNUxPlhUGLteD4u9Z5eDrqo9U6gYQAWrou5m5316+7hVS1dF3M3O+vX3cKqWcABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnRjz4y30vdVoslOjHnxlvpe6rBk0p89MX1LfuQiSW6U+emL6lv3IRJZ0G3lWJjB5lhsRP1bdyKp/LXx9jUEFzUVRXTFVMxNMxriY8r6gW5ndNGCtU4XH76qxTxUXI45ojZMbEysZlgb9G+s4uxVHXjX6gbbi7r8XThcjvxM/TvRwdMbdfL2a2bMM+y7BUTNeIouVxyUWp30z6uT9VfZ7m17NsXwlz6Nunit245KY+IOaACxdw2Kpv5LFmJ+nYqmmY80zMxP8+pIlTZRmV7K8XF+xx+SqieSqNiwst3Q5djaInh6bNzy27s72fXySDrjVvZjg7NG+u4qxTHnuQiW6TdRTftV4XLZneVcVd3k1xsj4g4G6HFU43OcVfo46KqtVM7YiNUT2OcAO3uPxdOEzy1Nc6qLsTamfz5O2IWYpmOKdcJvkG6u3NqixmlU03KeKL2rXFX5+fzgl41qMfg7lG+oxViqnbFyHMzTdLgMFbqi3dpxF7yUW51x+s8gOfpAxdNGBsYWJ+ncr38xspjX/c9iCNnMcbezDF14jEVa66vJ5IjZDWAWvufxdOMyjC3aZ1zvIpq81UcUqodjc7nd3KL1UapuYeufp0f3HnBZ452CzrL8ZRE2sVbiqf8AJXO9qj9JZMVmuAwtE1XsXZjzRVEz6o4wbGJvUYbD3L12dVFumapnzKhxF2b1+5dq+tXVNU/rOt39026KrM48HwsVW8LE6518tf5+ZHAAAWrou5m5316+7hVS1dF3M3O+vX3cKqWcABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnRjz4y30vdVoslOjHnxlvpe6rBk0p89MX1LfuQiSW6U+emL6lv3IRJZ0AEAAAAAAAAAAAAAAAAAAAAAAAAAAFq6LuZud9evu4VUtXRdzNzvr193CqlnAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp0Y8+Mt9L3VaLJTox58Zb6XuqwZNKfPTF9S37kIklulPnpi+pb9yESWdABAAAAAAAAAAAAAAAAAAAAAAAAAABaui7mbnfXr7uFVLV0Xczc769fdwqpZwAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKdGPPjLfS91WiyU6MefGW+l7qsGTSnz0xfUt+5CJJbpT56YvqW/chElnQAQAAAAAAAAAAAAAAAAAAAAAAAAAAWrou5m5316+7hVS1dF3M3O+vX3cKqWcABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnRjz4y30vdVoslOjHnxlvpe6rBk0p89MX1LfuQiSW6U+emL6lv3IRJZ0AEAAAAAAAAAAAAAAAAAAAAAAAAAAFq6LuZud9evu4VUtXRdzNzvr193CqlnAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp0Y8+Mt9L3VaLJTox58Zb6XuqwZNKfPTF9S37kIklulPnpi+pb9yESWdABAAAAAAAAAAAAAAAAAAAAAAAAAABaui7mbnfXr7uFVLV0Xczc769fdwqpZwAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKdGPPjLfS91WiyU6MefGW+l7qsGTSnz0xfUt+5CJJbpT56YvqW/chElnQAQAAAAAAAAAAAAAAAAAAAAAAAAAAWrou5m5316+7hVS1dF3M3O+vX3cKqWcABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnRjz4y30vdVoslOjHnxlvpe6rBk0p89MX1LfuQiSW6U+emL6lv3IRJZ0AEAAAAAAAAAAAAAAAAAAAAAAAAAAFq6LuZud9evu4VUtXRdzNzvr193CqlnAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp0Y8+Mt9L3VaLJTox58Zb6XuqwZNKfPTF9S37kIklulPnpi+pb9yESWdABAAAAAAAAAAAAAAAAAAAAAAAAAABaui7mbnfXr7uFVLV0Xczc769fdwqpZwAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKdGPPjLfS91WiyU6MefGW+l7qsGTSnz0xfUt+5CJJbpT56YvqW/chElnQAQAAAAAAAAAAAAAAAAAAAAAAAAAAWrou5m5316+7hVS1dF3M3O+vX3cKqWcABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASnRjz4y30vdVoslOjHnxlvpe6rBk0p89MX1LfuQiSW6U+emL6lv3IRJZ0AEAAAAAAAAAAAAAAAAAAAAAAAAAAFq6LuZud9evu4VUtXRdzNzvr193CqlnAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEp0Y8+Mt9L3VaLJTox58Zb6XuqwZNKfPTF9S37kIklulPnpi+pb9yESWdABAAAAAAAAAAAAAAAAAAAAAAAAAABaui7mbnfXr7uFVLV0Xczc769fdwqpZwAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABJ9GlUU7t8tmqdUa7kfrNuqEYbeUY2vLc0wuNtxrqsXabmrbqnk/UEk0q0VU7ssTNUaoqt25jzxvYj+pRBauk7K6c5yrB7oMsjhaKbUcJveOZtzxxP6TM6/z8yqlkAEAAAAAAAAAAAAAAAAAAAAAAAAAGXDWLuKxFuxh7dVy9cqimiimNczMgtHRnE2tw2dXq+KjfXZ1/lbjWqlbm6Xg9yOjy1lNNcTjMVTNurV5ZnjuT+URO9/WFRrKACKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmu4LdlVkc+BZhFV3LK518Ua5tTPLMbY2x/8AZkOabhMrz6icfuax1m3TXxzbj6VvX+nHT+Wr1KpbGDxmJwV3hcHiL1i50rVc0z2LYl1zRrn1M6qfBK4203vjEPPzb5/9nh/3YcmN12fxER41xM/nVrfflhn/AOKYj1x8Dg6nzcZ/9nh/3YPm4z/7PD/uw5Xyvz/8UxHrg+V+f/imI9cHB1fm4z/7PD/uwfNxn/2eH/dhyvlfn/4piPXB8r8//FMR64ODq/Nxn/2eH/dg+bjP/s8P+7DlfK/P/wAUxHrg+V+f/imI9cHB1fm4z/7PD/uwfNxn/wBnh/3Ycr5X5/8AimI9cHyvz/8AFMR64ODq/Nxn/wBnh/3YPm4z/wCzw/7sOV8r8/8AxTEeuD5X5/8AimI9cHB1fm4z/wCzw/7sHzcZ/wDZ4f8Adhyvlfn/AOKYj1wfK/P/AMUxHrg4Or83Gf8A2eH/AHYPm4z/AOzw/wC7DlfK/P8A8UxHrg+V+f8A4piPXBwdX5uM/wDs8P8AuwfNxn/2eH/dhyvlfn/4piPXB8r8/wDxTEeuDg6vzcZ/9nh/3YPm4z/7PD/uw5Xyvz/8UxHrg+V+f/imI9cHB1fm4z/7PD/uwfNxn/2eH/dhyvlfn/4piPXB8r8//FMR64ODq/Nxn/2eH/dg+bjP/s8P+7DlfK/P/wAUxHrg+V+f/imI9cHB1fm4z/7PD/uwfNxn/wBnh/3Ycr5X5/8AimI9cHyvz/8AFMR64ODu4PRjnN2uPCL2EsUeWZrmqf0iI/tJrGF3PaPrFV6/e8KzSadURxcJPmpp/wAkeee3kVxf3U55ftzRczXF72eWKa5p1+px6qqq6pqqmaqp45mZ1zJxHS3R53is+zOvGYudUz9Gi3HJRT5IhywRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGWbFyOWnth54KvZ2s81Vb6eOfWx652yljxwdWw4OrY91TO2XzXO2QeN5VsN5Vse9c7ZNc7ZB43lWw3lWx71ztk1ztkHjeVbDeVbHvXO2TXO2QeN5VsN5Vse9c7ZNc7ZB43lWx9i1XPJHa9a52y9UTOrlkHjgbnR7TgbnR7WXfTtk307ZBi4G50e04G50e1l307ZN9O2QYuBudHtOBudHtZd9O2TfTtkGLgbnR7TgbnR7WXfTtk307ZBi4G50e04G50e1l307ZN9O2QYuBudHtOBudHtZd9O2TfTtkGLgbnR7TgbnR7WXfTtk307ZBi4G50e04G50e1l307ZN9O2QYuBudHtOBudHtZd9O2TfTtkGLgbnR7TgbnR7WXfTtk307ZBi4G50e04G50e1l307ZN9O2QYuBudHtOBudHtZd9O2TfTtkGLgbnR7TgbnR7WXfTtk307ZBi4G50e04G50e1l307ZN9O2QYuBudHtOBudHtZd9O2TfTtkGLgbnR7TgbnR7WXfTtk307ZBi4G50e04G50e1l307ZN9O2QYuBudHtOBudHtZd9O2TfTtkGLgbnR7TgbnR7WXfTtk307ZBi4G50e04G50e1l307ZN9O2QYuBudHtOBudHtZd9O2TfTtkGLgbnR7TgbnR7WXfTtk307ZBi4G50e04G50e1l307ZN9O2QYuBudHtOBudHtZd9O2TfTtkGGq3XTGuqNTzqlluzO95ZY1gfNUmqX0Wh81SapfQofIpmZiI5Ze+BudHtfKPrQza52ygxcDc6PacDc6Pay652ya52yDFwNzo9pwNzo9rLrnbJrnbIMXA3Oj2nA3Oj2suudsmudsgxcDc6PacDc6Pay652ya52yDFwNzo9pwNzo9rLrnbJrnbIMXA3Oj2nA3Oj2suudsmudsgxcDc6PacDc6Pay652ya52yDFwNzo9pwNzo9rLrnbJrnbIMXA3Oj2nA3Oj2suudsmudsgxcDc6Pa+8Bc6Paya52y+xVO2UsYuAudHtOAudHtZomdsvuudsljB4Pd6PbD74Pd6HbDPFU7ZfYqnbJYwRhL88lHbA3KKp18sgP/2Q==","e":1}],"layers":[{"ddd":0,"ind":1,"ty":2,"nm":"fr_0.jpg","cl":"jpg","refId":"fr_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[380,277,0],"ix":2},"a":{"a":0,"k":[380,277,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"fr_1.jpg","cl":"jpg","refId":"fr_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[380,277,0],"ix":2},"a":{"a":0,"k":[380,277,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":1,"op":2,"st":1,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"fr_2.jpg","cl":"jpg","refId":"fr_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[380,277,0],"ix":2},"a":{"a":0,"k":[380,277,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":2,"op":3,"st":2,"bm":0},{"ddd":0,"ind":4,"ty":2,"nm":"fr_3.jpg","cl":"jpg","refId":"fr_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[380,277,0],"ix":2},"a":{"a":0,"k":[380,277,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":3,"op":4,"st":3,"bm":0},{"ddd":0,"ind":5,"ty":2,"nm":"fr_4.jpg","cl":"jpg","refId":"fr_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[380,277,0],"ix":2},"a":{"a":0,"k":[380,277,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":4,"op":5,"st":4,"bm":0},{"ddd":0,"ind":6,"ty":2,"nm":"fr_5.jpg","cl":"jpg","refId":"fr_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[380,277,0],"ix":2},"a":{"a":0,"k":[380,277,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":5,"op":6,"st":5,"bm":0},{"ddd":0,"ind":7,"ty":2,"nm":"fr_6.jpg","cl":"jpg","refId":"fr_6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[380,277,0],"ix":2},"a":{"a":0,"k":[380,277,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":6,"op":7,"st":6,"bm":0},{"ddd":0,"ind":8,"ty":2,"nm":"fr_7.jpg","cl":"jpg","refId":"fr_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[380,277,0],"ix":2},"a":{"a":0,"k":[380,277,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":7,"op":8,"st":7,"bm":0},{"ddd":0,"ind":9,"ty":2,"nm":"fr_8.jpg","cl":"jpg","refId":"fr_8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[380,277,0],"ix":2},"a":{"a":0,"k":[380,277,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":8,"op":9,"st":8,"bm":0},{"ddd":0,"ind":10,"ty":2,"nm":"fr_9.jpg","cl":"jpg","refId":"fr_9","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[380,277,0],"ix":2},"a":{"a":0,"k":[380,277,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":9,"op":10,"st":9,"bm":0},{"ddd":0,"ind":11,"ty":2,"nm":"fr_10.jpg","cl":"jpg","refId":"fr_10","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[380,277,0],"ix":2},"a":{"a":0,"k":[380,277,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":10,"op":11,"st":10,"bm":0},{"ddd":0,"ind":12,"ty":2,"nm":"fr_11.jpg","cl":"jpg","refId":"fr_11","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[380,277,0],"ix":2},"a":{"a":0,"k":[380,277,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":11,"op":12,"st":11,"bm":0}],"markers":[]}
\ No newline at end of file
diff --git a/res/values-af/arrays.xml b/res/values-af/arrays.xml
index 581c5d4..12689e0 100644
--- a/res/values-af/arrays.xml
+++ b/res/values-af/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Ná 1 minuut"</item>
     <item msgid="1574040255478150028">"Ná 5 minute"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index b539ed5..0032528 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Deaktiveer Bluetooth LE-oudio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Deaktiveer Bluetooth LE oudio-kenmerk as die toestel LE oudiohardewarevermoëns ondersteun."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Wys LE-oudiowisselaar in Toestelbesonderhede"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Aktiveer Bluetooth LE-oudiotoelaatlys"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Aktiveer Bluetooth LE-oudiotoelaatlyskenmerk."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Omseil Bluetooth LE-oudiotoelaatlys"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Gebruik LE-oudio by verstek, selfs as LE-oudio se randtoestel nie geverifieer is vir voldoening aan toelaatlyskriteria nie."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Mediatoestelle"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Oproeptoestelle"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Ander toestelle"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Gestoorde toestelle"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Word met rekening geassosieer"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Voorheen met rekening gebruik"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth sal aangeskakel word om saam te bind"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Verbindingvoorkeure"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Voorheen gekoppel"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Skryf in teksvelde"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignoreer alle stilusknoppiedrukke"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Stilus"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Oudiodeling"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Deel oudio"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Oproepe en alarms"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Datum en tyd"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Instaanbediener"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Maak skoon"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Laai tans …"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Programme 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 programme en dienste. Jou toestelligging kan steeds aan nooddienste gestuur word wanneer jy \'n noodnommer bel of \'n SMS daarheen stuur."</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Kom meer te wete oor ligginginstellings"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Rekeninge"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Sekuriteit"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Enkripsie en eiebewyse"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Werkprofiel"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Privaat ruimte"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Versteek apps in ’n privaat vouer"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Ontsluit met skermslot"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Wys privaat ruimte"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Versteek as dit gesluit is"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Versteek Privaat Ruimte as dit gesluit is"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Jy kan Privaat Ruimte op jou appslys versteek as jy nie wil hê ander mense moet weet dis op jou toestel nie"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Kry toegang tot Privaat Ruimte wanneer dit versteek is"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Soek na “Privaat Ruimte” in die soekbalk"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Tik op die Privaat Ruimte-teël"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Ontsluit jou Privaat Ruimte"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Af"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Aan"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Stelsel"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Skep privaat ruimte"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Vee privaat ruimte uit"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Privaat ruimte is suksesvol geskep"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Privaat ruimte bestaan reeds"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Kon nie privaat ruimte skep nie"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Privaat ruimte is suksesvol uitgevee"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Kon nie privaat ruimte uitvee nie"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Stel ’n skermslot"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Stel ’n skermslot op dié toestel om Privaat Ruimte te gebruik."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Stel skermslot"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Kanselleer"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Kanselleer"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Stel op"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Stel Privaat Ruimte op"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Versteek privaat apps in ’n veilige ruimte waartoe net jy toegang het"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Hoe dit werk"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Jy kan van die onderkant van jou appslys af toegang tot Privaat Ruimte kry"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Apps in Privaat Ruimte word deur ’n slot beskerm"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Kennisgewings vanaf apps in Privaat Ruimte word versteek as dit gesluit is"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Privaat Ruimte-apps sal nie in toestemmingbestuurder, privaatheidkontroleskerm en ander instellings verskyn wanneer Privaat Ruimte gesluit is nie"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Stel tans Privaat Ruimte op …"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Privaat Ruimte word deur ’n slot beskerm"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Gebruiksinligting vir Privaat Ruimte-apps is versteek wanneer dit gesluit is"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Verkry toegang tot Privaat Ruimte vanaf jou applysinskrywing"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Kon nie Privaat Ruimte opstel nie"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Probeer nou weer, of kom later terug"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Probeer weer"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Wil jy skermslot gebruik om te ontsluit?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Jy kan Privaat Ruimte ontsluit net soos jy jou toestel ontsluit, of ’n ander slot kies"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Gebruik skermslot"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Kies nuwe slot"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Gereed!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Swiep van die onderkant van jou tuisskerm af op, en rollees dan af om toegang tot Privaat Ruimte te kry"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Klaar"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Rollees af om toegang to Privaat Ruimte te kry"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Meld aan om Privaat Ruimte op te stel"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Jy kan tot <xliff:g id="COUNT">%d</xliff:g> vingerafdrukke byvoeg"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Jy het die maksimum aantal vingerafdrukke bygevoeg"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Kan nie nog vingerafdrukke byvoeg nie"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Koppel"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Ontkoppel"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Bind saam en koppel"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Wanneer Bluetooth aangeskakel is, kan jou toestel met ander nabygeleë Bluetooth-toestelle kommunikeer."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Wanneer Bluetooth aangeskakel is, kan jou toestel met ander Bluetooth-toestelle in die omtrek kommunikeer.\n\nOm toestelervaring te verbeter, kan apps en dienste steeds enige tyd na toestelle in die omtrek soek, selfs wanneer Bluetooth af is. Dit kan byvoorbeeld gebruik word om ligginggegronde kenmerke en dienste te verbeter. Jy kan dit in Bluetooth-opsporinginstellings verander."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Verander"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Toestelbesonderhede"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Laat ART toe om greepkode vir ontfoutbare programme te verifieer"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Wys herlaaikoers"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Wys die huidige vertoonskermherlaaikoers"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Wys HDR/SDR-verhouding"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Wys die huidige HDR/SDR-verhouding"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Vereis toestelontsluiting vir NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Hou aan om apps te gebruik wanneer gevou"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Gladde Vertoning"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Verhoog die herlaaikoers vir sommige inhoud outomaties van 60 tot <xliff:g id="ID_1">%1$s</xliff:g> Hz. Verhoog batterygebruik."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Verhoog die herlaaitempo vir sommige inhoud outomaties na <xliff:g id="ID_1">%1$d</xliff:g> Hz. Verhoog batterygebruik."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Dwing na hoogste herlaaikoers"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Hoogste herlaaikoers vir verbeterde raaksensitiwiteit en animasiegehalte. Verhoog batterygebruik."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Skermaandag"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Gemeenskaplike instellings"</string>
     <string name="apn_settings" msgid="4295467389400441299">"Toegangspuntname"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Redigeer toegangspunt"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Voeg toegangspunt by"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Nie gestel nie"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Nie gestel nie"</string>
     <string name="apn_name" msgid="6677695784108157953">"Naam"</string>
@@ -1320,6 +1397,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN is geaktiveer"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN gedeaktiveer"</string>
     <string name="bearer" msgid="3231443241639159358">"Draer"</string>
+    <string name="network_type" msgid="748590707422733595">"Netwerktipe"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Ongespesifiseer"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO-tipe"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO-waarde"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Vee toegangspunt uit"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Gebruik toeganklikheidknoppie om oop te maak"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Hou volumesleutels om oop te maak"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Tripeltik op skerm om oop te maak"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Tweevinger- tripeltik op skerm om oop te maak"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Gebruik gebaar om oop te maak"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Gebruik toeganklikheidsgebaar"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Tik op die toeganklikheidknoppie <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> onderaan jou skerm om hierdie kenmerk te gebruik.\n\nRaak en hou die toeganklikheidknoppie om tussen kenmerke te wissel."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Tik op die toeganklikheidknoppie op jou skerm om hierdie kenmerke te gebruik."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Druk en hou albei volumesleutels om hierdie kenmerk te gebruik."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Tripeltik enige plek op jou skerm om vergroting te begin en te stop."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Tripeltik met twee vingers enige plek op jou skerm om vergroting te begin en te stop."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Swiep met 2 vingers van die onderkant van die skerm af op om hierdie kenmerk te gebruik.\n\nSwiep met 2 vingers op en hou om tussen kenmerke te wissel."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Swiep met 3 vingers van die onderkant van die skerm af op om hierdie kenmerk te gebruik.\n\nSwiep met 3 vingers op en hou om tussen kenmerke te wissel."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Swiep met 2 vingers van die onderkant van die skerm af op om \'n toeganklikheidkenmerk te gebruik.\n\nSwiep met 2 vingers op en hou om tussen kenmerke te wissel."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Hou volumesleutels in"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"hou 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_triple_tap" msgid="6687765191490040899">"Tweevinger- tripeltik op skerm"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"tweevinger- tripeltik op skerm"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"tripeltik op skerm"</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>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Gebruik vibrasie en fisiese terugvoer"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Wekkervibrasie"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Mediavibrasie"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Sleutelbordvibrasie"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Luivibrasie"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Kennisgewingvibrasie"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Raakterugvoer"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> oor"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> tot gelaai"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Skermtyd"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Agtergrondtyd"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Lae battery"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Laat die program toe om in die agtergrond te loop"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Beperk agtergrondaktiwiteit?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"As jy agtergrondaktiwiteit vir \'n program beperk, kan dit verkeerd werk"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Hierdie program is nie gestel om batterykrag te optimeer nie en daarom kan jy dit nie beperk nie.\n\nOm die program te beperk, moet jy eers batterykrag-optimering aanskakel."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Bestuur batterygebruik"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Laat agtergrondgebruik toe"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Aktiveer vir intydse opdaterings, deaktiveer om battery te spaar"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Onbeperk"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Geoptimeer"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Beperk"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"sedert battery laas volgelaai is"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Stelselprogramme"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Gedeïnstalleerde apps"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Ander"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Geskatte tyd oor"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Tot battery volgelaai is"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Total: minder as \'n min."</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Agtergrond: minder as \'n min."</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Skermtyd: minder as een min."</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Minder as ’n minuut"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Totaal: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Agtergrond: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Skermtyd: • <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Mobiele data en wi‑fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Outosinkroniseer persoonlike data"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Outo-sinkroniseer werkdata"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Outosinkroniseer privaat data"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Verander siklus..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Dag van maand om dataverbruiksiklus terug te stel:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Geen programme het gedurende hierdie tydperk data gebruik nie."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"teksgrootte, grootdruk, groot lettertipe, groot teks, swak sig, maak teks groter, teksvergroter, lettertipevergroting"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"altyd-aan-stemmingsaansig, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, merker, leser"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"sleutelbord, tasbare terugvoer, vibreer,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Volume, vibrasie, Moenie Steur Nie"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Mediavolume"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Uitsaaivolume"</string>
@@ -3267,7 +3361,7 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Wys alle kennisgewinginhoud"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Wys sensitiewe inhoud net wanneer dit ontsluit is"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Moet glad nie kennisgewings wys nie"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Hoe wil jy hê moet die sluitskerm lyk?"</string>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Wat wil jy hê moet jou sluitskerm wys?"</string>
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Sluitskerm"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Wys alle werkkennisgewinginhoud"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Versteek sensitiewe werkinhoud"</string>
@@ -3354,6 +3448,17 @@
     <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="6121016426991791557">"Kennisgewingbedaring"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Pas bedaring toe op alle kennisgewings"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Verminder die aantal kennisgewings geleidelik wanneer jy baie agtereenvolgende kennisgewings van dieselfde app af kry"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Pas bedaring toe op gesprekke"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Verminder die aantal kennisgewings geleidelik wanneer jy in ’n kort tydperk baie boodskappe van dieselfde klets af kry"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Moenie kennisgewingbedaring gebruik nie"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Moet nooit die aantal kennisgewings verminder nie, ongeag hoeveel agtereenvolgende kennisgewings daar van dieselfde app af kom"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Vibreer wanneer dit ontsluit is"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Vibreer slegs wanneer skerm ontsluit is"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Pas toe op werkprofiele"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Pas jou persoonlike profiel se kennisgewingbedaringinstellings op jou werkprofiel toe"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR-helperdienste"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Geen geïnstalleerde programme het versoek om as VR-helperdienste te werk nie."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Gee <xliff:g id="SERVICE">%1$s</xliff:g> toegang tot VR-diens?"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Laat toegang toe om alle lêers te bestuur"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Laat hierdie program toe om alle lêers op hierdie toestel of enige gekoppelde bergingvolumes te lees, te wysig en uit te vee. Indien toestemming verleen word, kan die program sonder jou uitdruklike medewete by lêers ingaan."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Kan by alle lêers ingaan"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Apps met stemaktivering"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Laat stemaktivering toe"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Stemaktivering gebruik stemopdrag om goedgekeurde apps handvry aan te skakel. Ingeboude aanpasbare waarneming verseker dat data privaat bly net vir jou.\n\n"<a href="">"Meer oor beskermde aanpasbare waarneming"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Volskermkennisgewings"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Laat volskermkennisgewings van hierdie app af toe"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Laat hierdie app toe om kennisgewings te wys wat die volle skerm beslaan wanneer die toestel gesluit is. Apps kan dit gebruik om wekkers, inkomende oproepe en ander dringende kennisgewings uit te lig."</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> het meer batterykrag as gewoonlik gebruik terwyl dit op die agtergrond was"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> het meer batterykrag gebruik terwyl dit op die voorgrond was"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> het meer batterykrag as gewoonlik gebruik terwyl dit op die voorgrond was"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Hoë batterygebruik"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Hoë batterygebruik op die agtergrond"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Hoë batterygebruik op die voorgrond"</string>
@@ -4005,7 +4115,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"stelselnavigasie, 2-knoppienavigasie, 3-knoppienavigasie, gebaarnavigasie, swiep"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Digitale assistent"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Swiep om assistent op te roep"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Swiep op van \'n onderste hoek af om digitale bystandprogram op te roep."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Hou Tuis vir Assistent"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Druk en hou die tuisknoppie om digitaleasistentprogram op te roep."</string>
     <string name="low_label" msgid="6525629096999711220">"Laag"</string>
@@ -4172,7 +4283,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"data, toegangsleutel, wagwoord"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"outo, vul, outovul, data, toegangsleutel, wagwoord"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Maak seker dat jy hierdie program vertrou&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Outovul&gt;%1$s&lt;/xliff:g&gt; gebruik wat op jou skerm is om te bepaal wat outomaties ingevul kan word."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Gebruik &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; gebruik wat op jou skerm is om te bepaal wat outomaties ingevul kan word. Nuwe wagwoorde, toegangsleutels en ander inligting sal van nou af hier gestoor word."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Gebruik &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Nuwe wagwoorde, toegangsleutels en ander inligting sal van nou af hier gestoor word. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; kan dalk gebruik wat op jou skerm is om te bepaal wat outomaties ingevul kan word."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Wagwoorde, toegangsleutels en datadienste"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Skakel %1$s af?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Skakel hierdie diens af?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Gestoorde inligting soos wagwoorde, toegangsleutels, betaalmetodes en ander inligting sal nie ingevul word wanneer jy aanmeld nie. Kies ’n wagwoord, toegangsleutel of datadiens om jou gestoorde inligting te gebruik."</string>
@@ -4226,10 +4337,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <string name="enable_angle_as_system_driver" msgid="4648827560023949786">"Eksperimenteel: aktiveer ANGLE"</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Waarskuwing: aktiveer ANGLE as verstek-OpenGL ES-drywer. Hierdie kenmerk is eksperimenteel en sal dalk nie met sommige kamera- en videoapps versoenbaar wees nie."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"’n Herselflaai word vereis om die stelsel-OpenGL ES-drywer te verander"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Veranderinge aan programversoenbaarheid"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Wissel veranderinge aan programversoenbaarheid"</string>
@@ -4787,10 +4896,8 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Aspekverhouding"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"Probeer ’n nuwe aspekverhouding om hierdie app in te bekyk as dit nie ontwerp is om op jou <xliff:g id="DEVICE_NAME">%1$s</xliff:g> te pas nie"</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Probeer ’n nuwe aspekverhouding om hierdie app in te bekyk as dit nie ontwerp is om op jou <xliff:g id="DEVICE_NAME">%1$s</xliff:g> te pas nie. Sommige apps sal dalk nie vir sekere aspekverhoudings geoptimeer wees nie."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Probeer ’n nuwe aspekverhouding om ’n app in te bekyk as dit nie ontwerp is om op jou <xliff:g id="DEVICE_NAME">%1$s</xliff:g> te pas nie"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Probeer ’n nuwe aspekverhouding om ’n app in te bekyk as dit nie ontwerp is om op jou <xliff:g id="DEVICE_NAME">%1$s</xliff:g> te pas nie. Sommige apps sal dalk nie vir sekere aspekverhoudings geoptimeer wees nie."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Voorgestelde apps"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Veranderde apps"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Appverstek"</string>
@@ -4860,4 +4967,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Skandeer vir misleidende apps"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Gaan appaktiwiteit na vir uitvissing"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Gebruik skandering vir misleidende apps"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Gebruik skandering vir misleidende werkapps"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-am/arrays.xml b/res/values-am/arrays.xml
index 4bdfd0b..49be0c4 100644
--- a/res/values-am/arrays.xml
+++ b/res/values-am/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"ከ1 ደቂቃ በኋላ"</item>
     <item msgid="1574040255478150028">"ከ5 ደቂቃዎች በኋላ"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index abfaa93..b6d4c67 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"የብሉቱዝ LE ኦዲዮን ያሰናክሉ"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"መሣሪያው የLE ኦዲዮ ሃርድዌር ችሎታዎችን የሚደግፍ ከሆነ የብሉቱዝ ኦዲዮ ባህሪን ያሰናክላል።"</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"በመሣሪያ ዝርዝሮች ውስጥ LE ኦዲዮ መቀያየሪያን አሳይ"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"የብሉቱዝ LE ኦዲዮ የዝርዝር ፈቃድን አንቃ"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"የብሉቱዝ LE ኦዲዮ የዝርዝር ባህሪ ፈቃድን አንቃ።"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"የብሉቱዝ LE ኦዲዮ የተፈቀዱ ዝርዝርን እለፍ"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"LE ኦዲዮ ተቀጥላ የተፈቀዱ ዝርዝር መስፈርቶችን እንደሚያሟላ ባይረጋገጥም እንኳን LE ኦዲዮን በነባሪ መጠቀም።"</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"የማህደረ መረጃ መሣሪያዎች"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"ወደ መሣሪያዎች ደውል"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"ሌሎች መሣሪያዎች"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"የተቀመጡ መሣሪያዎች"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"ከመለያ ጋር የተጎዳኘ"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"ቀደም ብሎ በመለያ ጥቅም ላይ ውሏል"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"ብሉቱዝ ለማጣመር ይበራል"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"የግንኙነት ምርጫዎች"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"ከዚህ ቀደም የተገናኘ"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"በጽሑፍ መስኮች ውስጥ ይፃፉ"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"ሁሉንም የብሮስፌ አዝራር መጫኖችን ችላ ይበሉ"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"ብሮስፌ"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"ኦዲዮ ማጋራት"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"ኦዲዮ ያጋሩ"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"ጥሪዎች እና ማንቂያ ደወሎች"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"ቀን እና ሰዓት"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"ተኪ"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"አጽዳ"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"በመጫን ላይ…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"በአቅራቢያ ያሉ የመሣሪያዎች ፈቃድ ያላቸው መተግበሪያዎች የተገናኙ መሣሪያዎችን አንጻራዊ አቀማመጥ ማወቅ ይችላሉ።"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ለመተግበሪያዎች እና ለአገልግሎቶች የአካባቢ መዳረሻ ጠፍቷል። ወደ የአደጋ ጊዜ ቁጥር ሲደውሉ ወይም የጽሑፍ መልዕክት ሲልኩ የመሣሪያዎ አካባቢ አሁንም ወደ የድንገተኛ ጊዜ አደጋ ምላሽ ሰጪዎች ሊላክ ይችላል።"</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ስለ የአካባቢ ቅንብሮች የበለጠ ይወቁ"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"መለያዎች"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"ደህንነት"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"ምስጠራ እና ምስክርነቶች"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"የሥራ መገለጫ"</string>
     <string name="private_space_title" msgid="7078627930195569767">"የግል ቦታ"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"በግል አቃፊ ውስጥ መተግበሪያዎችን ይደብቁ"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"ማያ ገጽ መቆለፊያን በመጠቀም ክፈት"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"የግል ቦታን አሳይ"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"በሚቆለፍበት ጊዜ ደብቅ"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"በሚቆለፍበት ጊዜ የግል ቦታን ይደብቁ"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"ሌሎች ሰዎች የግል ቦታ መሣሪያዎ ላይ እንደበራ ማወቃቸውን ለማቆም ከመተግበሪያዎ ዝርዝር ሊደብቁት ይችላሉ"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"በሚደበቅበት ጊዜ የግል ቦታን ይድረሱ"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"በፍለጋ አሞሌው ውስጥ «የግል ቦታ» ብለው ይፈልጉ"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"የግል ቦታ ሰቁን መታ ያድርጉ"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"የግል ቦታዎን ይክፈቱ"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"ጠፍቷል"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"በርቷል"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"ሥርዓት"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"የግል ቦታን ፍጠር"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"የግል ቦታን ሰርዝ"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"የግል ቦታ በተሳካ ሁኔታ ተፈጥሯል"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"የግል ቦታ ቀድሞውኑ አለ"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"የግል ቦታ መፈጠር አልቻለም"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"የግል ቦታ በተሳካ ሁኔታ ተሰርዟል"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"የግል ቦታ መሰረዝ አልቻለም"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"ማያ ገፅ መቆለፊያን ያቀናብሩ"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"የግል ቦታን ለመጠቀም በዚህ መሣሪያ ላይ ማያ ገፅ መቆለፊያን ያቀናብሩ።"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"ማያ ገፅ መቆለፊያን አቀናብር"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"ይቅር"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"ይቅር"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"አዋቅር"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"የግል ቦታን ያዋቅሩ"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"የግል መተግበሪያዎችን እርስዎ ብቻ መደረስ የሚችሉበት ደህንነቱ የተጠበቀ ቦታ ውስጥ ይደብቁ"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"እንዴት እንደሚሠራ"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"ከመተግበሪያዎ ዝርዝር የታችኛው ክፍል ላይ የግል ቦታን መድረስ ይችላሉ"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"በግል ቦታ ውስጥ ያሉ መተግበሪያዎች በቁልፍ ጥበቃ ይደረግላቸዋል"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"በሚቆለፍበት ጊዜ የግል ቦታ ውስጥ ካሉ መተግበሪያዎች የሚመጡ ማሳወቂያዎች ይደበቃሉ"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"የግል ቦታ በሚቆለፍበት ጊዜ የግል ቦታ መተግበሪያዎች በፈቃድ አስተዳዳሪ፣ የግላዊነት ዳሽቦርድ እና ሌሎች ቅንብሮች ውስጥ አይታዩም"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"የግል ቦታን በማዋቀር ላይ…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"የግል ቦታ በቁልፍ ይጠበቃል"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"ሲቆለፍ የአጠቃቀም መረጃ ለግል ቦታ መተግበሪያዎች የተደበቀ ነው"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"ከእርስዎ የመተግበሪያዎች ዝርዝር የግል ቦታን ይድረሱ"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"የግል ቦታን ማዋቀር አልተቻለም"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"አሁን እንደገና ይሞክሩ ወይም በኋላ ተመልሰው ይምጡ"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"እንደገና ይሞክሩ"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"ለመክፈት ማያ ገፅ መቆለፊያን ይጠቀሙ?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"የግል ቦታ መሣሪያዎን በሚቆልፉበት ተመሳሳይ መንገድ መክፈት ወይም የተለየ ቁልፍ መምረጥ ይችላሉ"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"ማያ ገፅ መቆለፊያን ይጠቀሙ"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"አዲስ ቁልፍ ይምረጡ"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"ሁሉም ዝግጁ!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"የግል ቦታን ለመድረስ ከመነሻ ማያ ገፅዎ ግርጌ ወደላይ ያንሸራትቱ፣ ከዚያም ወደታች ያሸብልሉ"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"ተከናውኗል"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"የግል ቦታን ለመድረስ ወደ ታች ያሸብልሉ"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"የግል ቦታን ለማዘጋጀት ይግቡ"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"እስከ <xliff:g id="COUNT">%d</xliff:g> የሚደርሱ የጣት አሻራዎችን ማከል ይችላሉ"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"የሚፈቀደውን ከፍተኛ የጣት አሻራ ብዛት አክለዋል"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"ተጨማሪ የጣት አሻራዎችን ማከል አይቻልም"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"አያይዝ"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"አለያይ"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"አጣምር&amp;  አያይዝ"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"ብሉቱዝ ሲበራ መሣሪያዎ ሌልች በአቅራቢያ ካሉ መሣሪያዎች ጋር መገናኘት ይችላል።"</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"ብሉቱዝ ሲበራ መሣሪያዎ ሌልች በአቅራቢያ ካሉ መሣሪያዎች ጋር መገናኘት ይችላል"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"ብሉቱዝ ሲበራ የእርስዎ መሣሪያ በአቅራቢያ ካሉ ሌሎች የብሉቱዝ መሣሪያዎች ጋር መነጋገር ይችላል።\n\nየመሣሪያ ተሞክሮን ለማሻሻል መተግበሪያዎች እና አገልግሎቶች ብሉቱዝ ጠፍቶ ቢሆንም እንኳን አሁንም በማንኛውም ጊዜ በአቅራቢያ ያሉ መሣሪያዎችን መቃኘት ይችላሉ። ይህ ለምሳሌ በአካባቢ ላይ የተመሠረቱ ባህሪያትን እና አገልግሎቶችን ለማሻሻል ጥቅም ላይ መዋል ይችላል። ይህን የብሉቱዝ ቅኝት ቅንብሮች ውስጥ መለወጥ ይችላሉ።"</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"ቀይር"</string>
     <string name="device_details_title" msgid="1155622417516195481">"የመሣሪያ ዝርዝሮች"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"ART ሊታረሙ ለሚችሉ መተግበሪያዎች ባይት ኮድን እንዲያረጋግጥ ይፍቀዱ"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"የዕድሳት ድግምግሞሽ መጠንን አሳይ"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"አሁን ያለውን የማሳያ ዕድሳት ድግምግሞሽ መጠንን አሳይ"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"የ ኤችዲአር/ኤስዲአር ውድር አሳይ"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"የአሁኑን ኤችዲአር/ኤስዲአር ውድር አሳይ"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"ለNFC የመሣሪያ መከፈት ይፈለግ"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1137,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"መተግበሪያዎችን በእጠፍ ላይ መጠቀም ቀጥል"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"ለስላሳ ማሳያ"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"ለአንዳንድ ይዘት የማደሻ ፍጥነቱን በራስ-ሰር ከ60 ወደ <xliff:g id="ID_1">%1$s</xliff:g> ኸርዝ ያሳድገዋል። የባትሪ አጠቃቀምን ይጨምራል።"</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"ለአንዳንድ ይዘት የዕድሳት ፍጥነቱን በራስ-ሰር እስከ <xliff:g id="ID_1">%1$d</xliff:g> ኸርዝ ድረስ ያሳድገዋል። የባትሪ አጠቃቀምን ይጨምራል።"</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"ከፍተኛ የእድሳት ፍጥነትን አስገድድ"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"ለተሻሻለ የንክኪ አጸፋ እና የእነማ ጥራት በጣም ከፍተኛው ዕድሳት ፍጥነት የባትሪ ፍጆታን ይጨምራል።"</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"የማያ ገፅ ትኩረት"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"የጋራ ቅንብሮች"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APNs"</string>
     <string name="apn_edit" msgid="2003683641840248741">"የመዳረሻ ነጥብ አርትዕ"</string>
+    <string name="apn_add" msgid="9069613192201630934">"የመዳረሻ ነጥብ ያክሉ"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"አልተዘጋጀም"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"አልተቀናበረም"</string>
     <string name="apn_name" msgid="6677695784108157953">"ስም"</string>
@@ -1320,6 +1396,8 @@
     <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="network_type" msgid="748590707422733595">"የአውታረ መረብ ዓይነት"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"ያልተገለጸ"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO ዓይነት"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO ዋጋ"</string>
     <string name="menu_delete" msgid="9199740901584348273">"APN ሰርዝ"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"ለመክፈት የተደራሽነት አዝራር ይጠቀሙ"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"ለመክፈት የድምጽ ቁልፎችን ይያዙ"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"ለመክፈት ማያ ገጹን ሦስት ጊዜ መታ ያድርጉ"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"ለመክፈት ማያ ገፅን በሁለት ጣት ሦስት ጊዜ መታ ያድርጉ"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"ለመክፈት የጣት ምልክትን ይጠቀሙ"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"የተደራሽነት እጅ ምልክትን ይጠቀሙ"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"ይህን ባህሪ ለመጠቀም በማያ ገጽዎ ግርጌ ላይ ያለውን የተደራሽነት አዝራሩን <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> መታ ያድርጉ።\n\nባህሪያት መካከል ለመቀያየር የተደራሽነት አዝራሩን ነክተው ይያዙ።"</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"ይህን ባህሪ ለመጠቀም በማያ ገጽዎ ላይ ያለውን የተደራሽነት አዝራር መታ ያድርጉ።"</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"ይህን ባህሪ ለመጠቀም ሁለቱንም የድምጽ ቁልፎች ተጭነው ይያዙ።"</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"ማጉላትን ለመጀመር እና ለማቆም በማያ ገጽዎ ላይ ማንኛውም ቦታ ላይ ሦስት ጊዜ መታ ያድርጉ።"</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"ማጉላት ለመጀመር እና ለማቆም በማያ ገፅዎ ማንኛውም ቦታ ላይ በሁለት ጣቶች ሦስት ጊዜ መታ ያድርጉ።"</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"ይህን ባህሪ ለመጠቀም በ2 ጣቶች ከማያ ገጹ ግርጌ ወደ ላይ ይጥረጉ።\n\nበባሕሪያት መካከል ለመቀያየር በ2 ጣቶች ወደ ላይ ጠርገው ይያዙ።"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"ይህን ባህሪ ለመጠቀም በ3 ጣቶች ከማያ ገጹ ግርጌ ወደ ላይ ይጥረጉ።\n\nበባሕሪያት መካከል ለመቀያየር በ3 ጣቶች ወደ ላይ ጠርገው ይያዙ።"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"የተደራሽነት ባሕሪን ለመጠቀም በ2 ጣቶች ከማያ ገጹ ግርጌ ወደ ላይ ይጥረጉ።\n\nበባሕሪያት መካከል ለመቀያየር በ2 ጣቶች ወደ ላይ ጠርገው ይያዙ።"</string>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"የድምፅ አዝራሮችን ይያዙ"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"የድምጽ አዝራሮችን ይያዙ"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"ሁለቱንም የድምፅ ቁልፎች ተጭነው ይያዙ"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"ማያ ገፅን በሁለት ጣት ሦስት ጊዜ መታ ያድርጉ"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"ማያ ገፅን በሁለት ጣት ሦስት ጊዜ መታ ያድርጉ"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"ማያ ገፅን {0፣ቁጥር፣ኢንቲጀር} ጊዜያት በሁለት ጣቶች በፍጥነት መታ ያድርጉ"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"ማያ ገጽን ሦስቴ መታ ያድርጉ"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"ማያ ገጽን ሦስቴ መታ ያድርጉ"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"ማያ ገጹን በፍጥነት {0,number,integer} ጊዜዎችን መታ ያድርጉ። ይህ አቋራጭ መሣሪያዎን ሊያንቀራፍፈው ይችላል።"</string>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"ንዝረት እና ረቂቅ ንዝረትን ይጠቀሙ"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"የማንቂያ ንዝረት"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"የሚዲያ ንዝረት"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"የቁልፍ ሰሌዳ ንዝረት"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"የጥሪ ንዝረት"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"የማሳወቂያ ንዝረት"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"የንክኪ ግብረመልስ"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> ይቀራል"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"ለመሙላት <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> ይቀረዋል"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"የማያ ገፅ ጊዜ"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"የዳራ ጊዜ"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"ዝቅተኛ ባትሪ"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"መተግበሪያው በበስተጀርባ እንዲሄድ ይፍቀዱለት።"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"የጀርባ እንቅስቃሴ ይገደብ?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"የአንድ መተግበሪያ የጀርባ እንቅስቃሴን ከገደቡ ያልተገባ ባህሪ ሊያሳይ ይችላል"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"ይህ መተግበሪያ ባትሪን ለማላቅ አልተቀናበረም፣ ሊገድቡት አይችሉም።\n\nመተግበሪያውን ለመገደብ፣ የባትሪ ማላቅን በመጀመሪያ ያብሩ።"</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"የባትሪ አጠቃቀምን ያስተዳድሩ"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"የዳራ አጠቃቀምን ይፍቀዱ"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"ለእውነተኛ ጊዜ ዝማኔዎች ያንቁ፣ ባትሪን ለመቆጠብ ያሰናክሉ"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"ያልተገደበ"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"እንዲተባ ተደርጓል"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"ተገድቧል"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"ከመጨረሻው ሙሉ የኃይል ሙሌት በኋላ"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"የሥርዓት መተግበሪያዎች"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"የተራገፉ መተግበሪያዎች"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"ሌሎች"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"የተገመተው ቀሪ ጊዜ"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"ኃይሉ ሙሉ እስኪሞላ ድረስ"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"ጠቅላላ፦ ከአንድ ደቂቃ በታች"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"ዳራ፦ ከአንድ ደቂቃ በታች"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"የማያ ገፅ ጊዜ፦ ከአንድ ደቂቃ ያነሰ"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"ከአንድ ደቂቃ ያነሰ"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"ጠቅላላ፦ <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"ዳራ፦ <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"የማያ ገፅ ጊዜ፦ <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"የተንቀሳቃሽ ስልክ ውሂብ እና Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"የግል ውሂብ ራስ-አመሳስል"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"የስራ ውሂብ ራስ-አመሳስል"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"የግል ውሂብን በራስ-ሰር አስምር"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"ዑደት ለውጥ..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"የውሂብ አጠቃቀም ዑደትን ዳግም ለማስጀመር ከወር ውስጥ፡ ቀን"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"በዚህ ጊዜ ውስጥ ምንም መተግበሪያዎች ውሂብ ጥቅም ላይ አልዋሉም።"</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"የጽሁፍ መጠን፣ ትልቅ ህትመት፣ ትልቅ ቅርጸ-ቁምፊ፣ ትልቅ ጽሁፍ፣ ዝቅተኛ-ዕይታ፣ ጽሁፍን ያተልቁ መጠን፣ ትልቅ ህትመት፣ ትልቅ ቅርጸ-ቁምፊ፣ ትልቅ ጽሁፍ፣ ዝቅተኛ-ዕይታ፣ ጽሁፍን ያተልቁ፣ ቅርጸ-ቁምፊ ማተለቂያ፣ ቅርጸ-ቁምፊ ማተለቅ"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"ሁልጊዜ የበራ የድባብ ማሳያ፣ AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"የኤንኤፍሲ፣ መለያ፣ አንባቢ"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"የቁልፍ ሰሌዳ፣ ረቂቅ ንዝረት፣ ንዝረት፣"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"ድምፅ፣ ንዝረት፣ አትረብሽ"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"የማህደረመረጃ ክፍልፍል"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"ድምፅን Cast አድርግ"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"ሁሉንም የማሳወቂያ ይዘቶችን አሳይ"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"በሚከፈትበት ጊዜ ብቻ አደጋን ሊያስከትል የሚችል ይዘትን አሳይ"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"በጭራሽ ማሳወቂያዎችን አታሳይ"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"ማያ ገፅ መቆለፊያ እንዴት እንዲያሳይ ይፈልጋሉ?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"ማያ ገፅ ቁልፍ"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"ሚስጥራዊነት ያለው የስራ ማሳወቂያ ይዘት አሳይ"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"አደጋ ሊያስከትል የሚችል የሥራ ይዘትን ደብቅ"</string>
@@ -3354,6 +3448,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"ይህ መተግበሪያ የተሻሻሉ ቅንብሮችን አይደግፍም"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"ተጨማሪ ቅንብሮች"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"በዚህ መተግበሪያ ውስጥ ተጨማሪ ቅንብሮች ይገኛሉ"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"የማሳወቂያ ረጋ ማለት"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"ለሁሉም ማሳወቂያዎች ረጋ ማለትን ይተግብሩ"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"ከተመሳሳይ መተግበሪያ በርካታ ተከታታይ ማሳወቂያዎችን ሲያገኙ የማሳወቂያ መጠኑን በጊዜ ሂደት ይቀንሱ"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"ለውይይቶች ረጋ ማለትን ይተግበሩ"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"ከተመሳሳይ ውይይት በአጭር ጊዜ ውስጥ በርካታ መልዕክቶችን ሲያገኙ የማሳወቂያ መጠኑን በቀስታ ይቀንሱ"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"የማሳወቂያ ረጋ ማለትን አይጠቀሙ"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"ከተመሳሳይ መተግበሪያ የሚመጡ ተከታታይ ማሳወቂያዎች መጠን ምንም ቢሆን በጭራሽ የማሳወቂያ መጠንን አይቀንሱ"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"ሲከፈት ንዝረት ይኑረው"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"የማያ ገፅ ሲከፈት ብቻ ንዝረት ይኑረው"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"የሥራ መገለጫዎች ላይ ይተግብሩ"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"የማሳወቂያ ረጋ ማለት ቅንብሮቹን ከግል መገለጫዎ ወደ የሥራ መገለጫዎ ይተግብሩ"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"የምናባዊ ዕውነታ አጋዥ አገልግሎቶች"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"ምንም የተጫኑ መተግበሪያዎች እንደ የምናባዊ ዕውነታ አጋዥ አገልግሎቶች ሆነው እንዲሄዱ አልጠየቁም።"</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"ለ<xliff:g id="SERVICE">%1$s</xliff:g> የምናባዊ ዕውነታ መዳረሻ ይፈቀድለት?"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"ሁሉንም ፋይሎች ለማስተዳደር መዳረሻ ፍቀድ"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"ይህ መተግበሪያ በዚህ መሣሪያ ላይ ወይም በማናቸውም የተገናኙ የማከማቻ መጠኖች ላይ ሁሉንም ፋይሎች እንዲያነብ፣ እንዲያሻሽል እና እንዲሰርዝ ይፍቀዱ። ፈቃድ ከተሰጠ፣ መተግበሪያ ያለ የእርስዎ ግልፅ የሆነ ዕውቀት ፋይሎችን መድረስ ይችላል።"</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"ሁሉንም ፋይሎች መድረስ ይችላል"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"ድምፅ ገቢር ማድረጊያ መተግበሪያዎች"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"ድምፅ ገቢር ማድረግን ፍቀድ"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"የድምጽ ማግበር የጸደቁ መተግበሪያዎችን፣ ከእጅ ነጻ፣ የድምጽ ትዕዛዝን በመጠቀም ያበራል። አብሮገነብ የሚለምደዉ ዳሰሳ ውሂብ ለእርስዎ ብቻ ሚስጥራዊ ሆኖ እንደሚቆይ ያረጋግጣል።\n\n"<a href="">" ስለተጠበቀ የማስማማት ዳሳሽ ተጨማሪ"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"የሙሉ ገጽ ዕይታ ማሳወቂያዎች"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"ከዚህ መተግበሪያ የሙሉ ገጽ ዕይታ ማሳወቂያዎችን ይፍቀዱ"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"ይህ መተግበሪያ መሣሪያው በሚቆለፍበት ጊዜ ሙሉ ገጽ ዕይታውን የሚይዙ ማሳወቂያዎችን እንዲያሳይ ይፍቀዱለት። መተግበሪያዎች ማንቂያዎችን፣ ገቢ ጥሪዎችን ወይም ሌሎች አስቸኳይ ማሳወቂያዎችን ለማድመቅ እነዚህን ሊጠቀሙ ይችላሉ።"</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ዳራው ውስጥ ሳለ ከተለመደው ተጨማሪ ባትሪ ተጠቅሟል"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> የፊት ገፁ ውስጥ ሳለ ተጨማሪ ባትሪ ተጠቅሟል"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> የፊት ገፁ ውስጥ ሳለ ከተለመደው ተጨማሪ ባትሪ ተጠቅሟል"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"ከፍተኛ የባትሪ አጠቃቀም"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"በዳራ ውስጥ ያለ ከፍተኛ የባትሪ አጠቃቀም"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"በፊት ገፁ ውስጥ ያለ ከፍተኛ የባትሪ አጠቃቀም"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"የሥርዓት ዳሰሳ፣ 2 አዝራር ዳሰሳ፣ 3 አዝራር ዳሰሳ፣ የእጅ ውዝውዜ ዳሰሳ፣ በጣት ጠረግ ማድረግ"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"ዲጂታል ረዳት"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"ረዳትን ለመጥራት ያንሸራትቱ"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"የዲጂታል ረዳት መተግበሪያን ለመጥራት ከግርጌው ጥግ ጀምረው ወደ ላይ ያንሸራትቱ።"</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"ዲጂታል ረዳት መተግበሪያን ለመጥራት ከታች ጥግ ወደ ላይ ያንሸራትቱ"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"ረዳትን ለማግኘት መነሻን ይያዙ"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"የዲጂታል ረዳት መተግበሪያን ለመጥራት የመነሻ አዝራሩን ተጭነው ይያዙ።"</string>
     <string name="low_label" msgid="6525629096999711220">"ዝቅተኛ"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"ውሂብ፣ የይለፍ ቁልፍ፣ የይለፍ ቃል"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"ራስ ሰር፣ ሙላ፣ ውሂብ፣ የይለፍ ቁልፍ፣ የይለፍ ቃል"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;ይህን መተግበሪያ የሚያምኑት መሆንዎን ያረጋግጡ&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google ራስ-ሙላ&gt;%1$s&lt;/xliff:g&gt; ምን በራስ መሞላት እንደሚችል ለማወቅ በማያ ገጽዎ ላይ ያለውን ነገር ይጠቀማል።"</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Use &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_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Use &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_picker_title" msgid="8191267620665129205">"የይለፍ ቃላት፣ የይለፍ ቁልፎች እና የውሂብ አገልግሎቶች"</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>
@@ -4226,10 +4336,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <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="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>
@@ -4787,10 +4895,8 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"ምጥጥነ ገፅታ"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"ይህ መተግበሪያ ለእርስዎ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> እንዲሆን ተደርጎ ካልተነደፈ እሱን ለመመልከት አዲስ ምጥጥነ ገፅታን ይሞክሩ"</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"ይህ መተግበሪያ ለእርስዎ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> እንዲሆን ተደርጎ ካልተነደፈ እሱን ለመመልከት አዲስ ምጥጥነ ገፅታን ይሞክሩ። አንዳንድ መተግበሪያዎች ለተወሰኑ ምጥጥነ ገፅታዎች ሊተቡ አይችሉም።"</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"አንድ መተግበሪያ ለእርስዎ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> እንዲሆን ተደርጎ ካልተነደፈ እሱን ለመመልከት አዲስ ምጥጥነ ገፅታን ይሞክሩ"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"አንድ መተግበሪያ ለእርስዎ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> እንዲሆን ተደርጎ ካልተነደፈ እሱን ለመመልከት አዲስ ምጥጥነ ገፅታን ይሞክሩ። አንዳንድ መተግበሪያዎች ለተወሰኑ ምጥጥነ ገፅታዎች ሊተቡ አይችሉም።"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"በአስተያየት የተጠቆሙ መተግበሪያዎች"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"የተለወጡ መተግበሪያዎች"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"የመተግበሪያ ነባሪ"</string>
@@ -4860,4 +4966,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"አታላይ የሆኑ መተግበሪያዎችን በመቃኘት ላይ"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"ማስገርን በተመለከተ የመተግበሪያ እንቅስቃሴን ይፈትሹ"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"ለአሳሳች መተግበሪያዎች መቃኘትን ይጠቀሙ"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"ለሥራ አሳሳች መተግበሪያዎች መቃኘትን ይጠቀሙ"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-ar/arrays.xml b/res/values-ar/arrays.xml
index 966767e..8398b6e 100644
--- a/res/values-ar/arrays.xml
+++ b/res/values-ar/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"بعد دقيقة واحدة"</item>
     <item msgid="1574040255478150028">"بعد 5 دقائق"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index f8d8364..7627077 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"‏إيقاف ميزة Bluetooth LE Audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"‏يؤدي هذا الخيار إلى إيقاف ميزة Bluetooth LE audio إذا كان الجهاز متوافقًا مع إمكانيات جهاز الصوت المنخفض الطاقة."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"‏إظهار خيار تفعيل LE Audio أو إيقافه في تفاصيل الجهاز"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"‏تفعيل القائمة المسموح بها لتطبيق Bluetooth LE Audio"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"‏يسمح هذا الخيار بتفعيل ميزة القائمة المسموح بها لتطبيق Bluetooth LE Audio."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"‏استبعاد القائمة المسموح بها لتطبيق Bluetooth LE Audio"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"‏استخدِم تطبيق LE Audio تلقائيًا حتى إذا لم يتم التأكّد من توافق الجهاز الملحق مع معايير القائمة المسموح بها."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"أجهزة الوسائط"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"أجهزة الاتصال"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"أجهزة أخرى"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"الأجهزة المحفوظة"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"الأجهزة المرتبطة بالحساب"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"الأجهزة التي سبق استخدام الحساب عليها"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"سيتم تفعيل البلوتوث للإقران."</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"إعدادات الاتصال المفضّلة"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"الأجهزة المتصلة سابقًا"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"الكتابة بخط اليد في الحقول النصية"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"تجاهل كل الأزرار التي تم الضغط عليها باستخدام قلم الشاشة"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"قلم الشاشة"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"مشاركة الصوت"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"مشاركة الصوت"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"المكالمات والمنبّهات"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"التاريخ والوقت"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"الخادم الوكيل"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"محو"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"جارٍ التحميل..."</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"يمكن للتطبيقات التي لديها إذن بالوصول إلى الأجهزة المجاورة تحديد الموضع النسبي للأجهزة المتصلة بجهازك."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ميزة وصول التطبيقات والخدمات إلى الموقع الجغرافي غير مفّعلة. قد يستمر إرسال الموقع الجغرافي لجهازك إلى مسؤولي الاستجابة لحالات الطوارئ عند الاتصال برقم طوارئ أو مراسلته نصيًا."</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"مزيد من المعلومات حول إعدادات الموقع الجغرافي"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"الحسابات"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"الأمان"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"التشفير وبيانات الاعتماد"</string>
@@ -401,7 +414,7 @@
     <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>
-    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"إنّ ميزة \"فتح الهاتف من الساعة\" هي طريقة أخرى مناسبة لفتح قفل هذا الهاتف عندما لا يتم التعرّف على وجهك أو إصبعك.\n\nيمكنك استخدام ساعتك لفتح قفل هذا الهاتف عند:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"إنّ ميزة \"فتح الهاتف من الساعة\" هي طريقة أخرى مناسبة لفتح قفل هذا الهاتف، مثلاً عندما لا يتم التعرّف على وجهك أو عندما تكون أصابعك مبتلة.\n\nيمكنك استخدام ساعتك لفتح قفل هذا الهاتف عند:"</string>
     <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"لاحقًا"</string>
     <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"متابعة"</string>
     <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"المزيد"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"الملف الشخصي للعمل"</string>
     <string name="private_space_title" msgid="7078627930195569767">"مساحة خاصة"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"إخفاء التطبيقات في مجلّد خاص"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"فتح القفل باستخدام قفل الشاشة"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"عرض المساحة الخاصة"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"الإخفاء بعد القفل"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"إخفاء المساحة الخاصة إذا كانت مقفلة"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"يمكنك إخفاء المساحة الخاصة من قائمة التطبيقات على جهازك لمنع وصول الآخرين إليها."</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"الوصول إلى المساحة الخاصة بعد إخفائها"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"ابحث عن \"المساحة الخاصة\" في شريط البحث."</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"انقر على مربّع \"المساحة الخاصة\"."</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"افتح قفل المساحة الخاصة."</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"غير مفعَّل"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"مفعَّل"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"النظام"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"إنشاء مساحة خاصة"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"حذف المساحة الخاصة"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"تم إنشاء المساحة الخاصة بنجاح."</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"سبق أن تم إنشاء مساحة خاصة."</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"تعذَّر إنشاء مساحة خاصة."</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"تم حذف المساحة الخاصة بنجاح."</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"تعذَّر حذف المساحة الخاصة."</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"ضبط قفل شاشة"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"لاستخدام \"مساحة خاصة\"، يجب ضبط قفل شاشة على هذا الجهاز."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"ضبط قفل الشاشة"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"إلغاء"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"إلغاء"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"إعداد"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"بدء إعداد المساحة الخاصة"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"يمكنك إخفاء التطبيقات الخاصة في مكان آمن لا يمكن لأحد غيرك الوصول إليه."</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"طريقة العمل"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"يمكنك الوصول إلى المساحة الخاصة من أسفل قائمة التطبيقات."</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"تتم حماية التطبيقات في المساحة الخاصة بقفل."</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"يتم إخفاء الإشعارات الواردة من تطبيقات المساحة الخاصة إذا كانت المساحة مقفلة."</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"لن تظهر تطبيقات المساحة الخاصة في \"إدارة الأذونات\" أو \"لوحة بيانات الخصوصية\" أو الإعدادات الأخرى إذا كانت المساحة الخاصة مقفلة."</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"جارٍ إعداد المساحة الخاصة…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"المساحة الخاصة محمية بقفل"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"معلومات الاستخدام المتعلّقة بتطبيقات المساحة الخاصة لا تظهر عندما تكون المساحة مقفلة"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"الوصول إلى المساحة الخاصة من قائمة التطبيقات"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"تعذُّر إعداد المساحة الخاصة"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"يُرجى إعادة المحاولة الآن أو إعدادها لاحقًا."</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"إعادة المحاولة"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"أتريد استخدام قفل الشاشة لفتح قفل المساحة الخاصة؟"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"يمكنك فتح قفل المساحة الخاصة بالطريقة نفسها المستخدَمة لفتح قفل هاتفك، أو اختيار طريقة أخرى."</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"استخدام قفل الشاشة"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"اختيار قفل جديد"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"اكتملت عملية الإعداد"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"للوصول إلى المساحة الخاصة، مرِّر سريعًا من أسفل الشاشة الرئيسية إلى أعلاها ثم انتقِل للأسفل."</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"تم"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"انتقِل للأسفل للوصول إلى المساحة الخاصة."</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"يجب تسجيل الدخول لإعداد المساحة الخاصة"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"يمكنك إضافة ما يصل إلى <xliff:g id="COUNT">%d</xliff:g> بصمات إصبع"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"لقد أضفت الحد الأقصى لعدد بصمات الإصبع"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"يتعذر إضافة مزيد من بصمات الإصبع"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"اتصال"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"قطع الاتصال"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"الاقتران والاتصال"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"عند تفعيل البلوتوث، يمكن للجهاز الاتصال بأجهزة البلوتوث الأخرى القريبة."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"عندما تكون تقنية البلوتوث مفعّلة، يمكن للجهاز التواصل مع الأجهزة الأخرى المجاورة التي تتضمّن بلوتوث.\n\nولتحسين تجربة استخدام الجهاز، يمكن للتطبيقات والخدمات أيضًا البحث عن الأجهزة المجاورة في أي وقت، حتى عندما تكون تقنية البلوتوث غير مفعّلة. ويمكن استخدام هذا الإجراء لتحسين الميزات والخدمات المستندة إلى الموقع الجغرافي مثلاً. ويمكنك تغيير هذا الإعداد في إعدادات بحث البلوتوث."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"تغيير"</string>
     <string name="device_details_title" msgid="1155622417516195481">"تفاصيل الجهاز"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"‏تمكين ART من التحقُّق من رمز البايت للتطبيقات القابلة للتصحيح"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"إظهار معدّل إعادة التحميل"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"إظهار معدّل إعادة التحميل الحالي للشاشة"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"‏عرض نسبة نطاق HDR أو نطاق SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"‏عرض نسبة نطاق HDR أو نطاق SDR الحالية"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"‏الاتصال القصير المدى (NFC)"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"‏يجب فتح قفل الجهاز لاستخدام تقنية الاتصال القصير المدى (NFC)"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"‏شعاع Android"</string>
@@ -974,9 +1050,9 @@
     <string name="wifi_hotspot_speed_2g_summary" msgid="6930273933810520155">"السرعات الأبطأ: متوافقة مع معظم الأجهزة"</string>
     <string name="wifi_hotspot_speed_5g" msgid="4058116867148848395">"‫5 غيغاهرتز"</string>
     <string name="wifi_hotspot_speed_5g_summary" msgid="562987935924535694">"السرعات العالية: متوافقة مع أجهزة كثرة"</string>
-    <string name="wifi_hotspot_speed_2g_5g" msgid="9192756255938408285">"‫2.4 و5 غيغاهرتز"</string>
+    <string name="wifi_hotspot_speed_2g_5g" msgid="9192756255938408285">"‫٢.٤ و٥ غيغاهرتز"</string>
     <string name="wifi_hotspot_speed_2g_5g_summary" msgid="8104575293617700173">"السرعات العالية: نقطة الاتصال المزدوجة النطاق هذه متوافقة مع معظم الأجهزة."</string>
-    <string name="wifi_hotspot_speed_6g" msgid="3787697484862730500">"‫6 غيغاهرتز"</string>
+    <string name="wifi_hotspot_speed_6g" msgid="3787697484862730500">"‫٦ غيغاهرتز"</string>
     <string name="wifi_hotspot_speed_6g_summary" msgid="8675262219242174548">"السرعات الأعلى: متوافقة مع أجهزة قليلة"</string>
     <string name="wifi_hotspot_speed_summary_unavailable" msgid="7276080644693388756">"لا تتوفّر هذه السرعة في بلدك أو منطقتك."</string>
     <string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"إذا كان معدّل التردد المفضّل لديك غير متاح، قد تستخدم نقطة الاتصال معدّل تردد مختلف. قد تتغير إعدادات أمان نقطة الاتصال في حال تغيير معدّل التردد."</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"مواصلة استخدام التطبيقات أثناء طيّ الهاتف"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"العرض السلس"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"تعمل هذه الميزة على رفع معدل التحديث تلقائيًا من 60 إلى <xliff:g id="ID_1">%1$s</xliff:g> هرتز لبعض أنواع المحتوى. يؤدي هذا إلى زيادة استخدام البطارية."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"تعمل هذه الميزة على رفع معدّل التحديث في الشاشة إلى <xliff:g id="ID_1">%1$d</xliff:g> هرتز لبعض أنواع المحتوى، علمًا بأنّ ذلك يؤدي زيادة استخدام البطارية."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"فرض معدل إعادة التحميل الأقصى"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"أعلى معدل إعادة تحميل لتحسين استجابة اللمس وجودة الصور المتحركة. يؤدي هذا إلى زيادة استخدام البطارية."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"استعراض الشاشة"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"الإعدادات المشتركة"</string>
     <string name="apn_settings" msgid="4295467389400441299">"أسماء نقاط الوصول"</string>
     <string name="apn_edit" msgid="2003683641840248741">"تعديل نقطة الوصول"</string>
+    <string name="apn_add" msgid="9069613192201630934">"إضافة نقطة وصول"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"لم يتم الضبط."</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"لم يتم ضبط أي قيمة."</string>
     <string name="apn_name" msgid="6677695784108157953">"الاسم"</string>
@@ -1320,6 +1397,8 @@
     <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="network_type" msgid="748590707422733595">"نوع الشبكة"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"غير محدَّد"</string>
     <string name="mvno_type" msgid="4734654257494971247">"‏نوع MVNO"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"‏قيمة MVNO"</string>
     <string name="menu_delete" msgid="9199740901584348273">"‏حذف APN"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"الفتح باستخدام زر \"أدوات تسهيل الاستخدام\""</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"اضغط مع الاستمرار على مفتاحَي مستوى الصوت لتفعيل الميزة"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"انقر على الشاشة ثلاث مرات لتفعيل الميزة"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"النقر ثلاث مرّات بإصبعين لفتح الشاشة"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"استخدام إيماءة للفتح"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"استخدام إيماءة تسهيل الاستخدام"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"لاستخدام هذه الميزة، انقر على زر أدوات تمكين الوصول <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> في أسفل الشاشة.\n\nللتبديل بين الميزات، انقر مع الاستمرار على زر أدوات تمكين الوصول."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"لاستخدام هذه الميزة، انقر على زر أدوات تسهيل الاستخدام في شاشتك."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"لاستخدام هذه الميزة، اضغط مع الاستمرار على كلا مفتاحَي مستوى الصوت."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"لبدء استخدام ميزة التكبير أو إيقافها، انقر ثلاث مرات في أي مكان على الشاشة."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"لبدء استخدام ميزة التكبير أو إيقافها، انقر ثلاث مرّات في أي مكان على الشاشة باستخدام إصبعين."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"لاستخدام هذه الميزة، مرِّر سريعًا من أسفل الشاشة للأعلى بإصبعين.\n\nللتبديل بين الميزات، مرِّر سريعًا للأعلى بإصبعين مع تثبيتهما."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"لاستخدام إحدى ميزات إمكانية الوصول، مرّر سريعًا من أسفل الشاشة للأعلى بثلاثة أصابع.\n\nللتبديل بين الميزات، مرّر سريعًا للأعلى بثلاثة أصابع مع تثبيتها."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"لاستخدام إحدى ميزات إمكانية الوصول، مرّر سريعًا من أسفل الشاشة للأعلى بإصبعين.\n\nللتبديل بين الميزات، مرّر سريعًا للأعلى بإصبعين مع تثبيتهما."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"الضغط مع الاستمرار على مفتاحَي التحكم في مستوى الصوت"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"الضغط مع الاستمرار على مفتاحَي التحكّم في مستوى الصوت"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"اضغط مع الاستمرار على مفتاحَي مستوى الصوت."</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"النقر ثلاث مرّات على الشاشة بإصبعين"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"النقر ثلاث مرّات على الشاشة بإصبعين"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"‏انقر سريعًا على الشاشة {0,number,integer} مرّات باستخدام إصبعين."</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"النقر ثلاث مرات على الشاشة"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"النقر ثلاث مرات على الشاشة"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"‏انقر على الشاشة {0,number,integer} مرة. يمكن أن يؤدي استخدام هذا الاختصار إلى إبطاء الجهاز."</string>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"استخدام الاهتزاز واللمس"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"اهتزاز المنبّه"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"اهتزاز الوسائط"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"اهتزاز لوحة المفاتيح"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"الاهتزاز عند الرنين"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"الاهتزاز عند تلقّي إشعارات"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"الاهتزاز عند لمس الشاشة"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"الوقت المتبقي: <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> للشحن"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"مدّة الاستخدام في المقدّمة"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"مدّة الاستخدام في الخلفية"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"طاقة البطارية منخفضة"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"السماح بتشغيل التطبيق في الخلفية"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"هل تريد وضع حد لنشاط التطبيق في الخلفية؟"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"قد يتأثر أداء أحد التطبيقات سلبًا في حالة وضع حد لنشاطه في الخلفية"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"نظرًا لعدم تعيين هذا التطبيق للعمل على تحسين البطارية، فلا يمكنك تقييده.\n\nلتقييد التطبيق، فعِّل ميزة تحسين البطارية أولاً."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"إدارة استخدام البطارية"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"السماح بالاستخدام في الخلفية"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"يمكن تفعيل هذا الإعداد للحصول على المعلومات في الوقت الفعلي، أو إيقافه لتوفير شحن البطارية."</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"الاستخدام غير المحدّد بقيود"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"الاستخدام المحسَّن"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"الاستخدام المحدّد بقيود"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"منذ آخر عملية شحن كاملة"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"تطبيقات النظام"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"التطبيقات التي تم إلغاء تثبيتها"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"غير ذلك"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"الوقت التقديري المتبقي"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"إلى أن يتم الشحن بالكامل"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"مدة الاستخدام الإجمالي: أقل من دقيقة"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"مدة استخدام البطارية في الخلفية: أقل من دقيقة"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"مدّة النظر إلى الشاشة: أقل من دقيقة"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"أقل من دقيقة واحدة"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"مدة الاستخدام الإجمالي: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"مدة استخدام البطارية في الخلفية: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"مدّة النظر إلى الشاشة: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"‏بيانات الجوّال وWi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"مزامنة البيانات الشخصية تلقائيًا"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"مزامنة بيانات العمل تلقائيًا"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"مزامنة البيانات الخاصة تلقائيًا"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"تغيير الدورة الزمنية…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"يوم من الشهر لإعادة تعيين دورة استخدام البيانات:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"لم يستخدم أي تطبيق البيانات خلال هذه الفترة."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"حجم النص، طباعة كبيرة، خط كبير، نص كبير، ضعف في النظر، تكبير النص، أداة تكبير الخط، تكبير الخط"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"‏عرض دائم لشاشة الاستراحة، AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"‏قارئ، علامة، nfc"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"لوحة المفاتيح، تقنية اللمس، الاهتزاز،"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"مستوى الصوت والاهتزاز ووضع\"عدم الإزعاج\""</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"مستوى صوت الوسائط"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"مستوى صوت الإرسال"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"عرض محتوى الإشعارات كاملاً"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"عرض المحتوى الحسّاس عند فتح القفل فقط"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"عدم عرض الإشعارات على الإطلاق"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"كيف تريد عرض شاشة القفل؟"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"شاشة القفل"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"عرض محتوى إشعارات العمل كاملاً"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"إخفاء محتوى العمل الحساس"</string>
@@ -3354,6 +3449,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"لا يتوافق هذا التطبيق مع الإعدادات المحسَّنة."</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"إعدادات إضافية"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"تتوفّر إعدادات إضافية داخل التطبيق."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"فترة توقُّف الإشعارات"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"تطبيق فترة التوقّف على كل الإشعارات"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"يتم تخفيض مستوى صوت الإشعارات تدريجيًا عند تلقّيك إشعارات كثيرة متتالية من التطبيق نفسه."</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"تطبيق فترة التوقّف على المحادثات"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"يتم تخفيض مستوى صوت الإشعارات تدريجيًا عند تلقّيك رسائل كثيرة من المحادثة نفسها خلال فترة زمنية قصيرة."</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"عدم استخدام فترة التوقّف مع الإشعارات"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"لا يتم تخفيض مستوى صوت الإشعارات مطلقًا، بغض النظر عن عدد الإشعارات المتتالية التي تتلقّاها من التطبيق نفسه."</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"الاهتزاز عند فتح القفل"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"يهتز الجهاز فقط عندما تكون الشاشة مفتوحة."</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"التطبيق على ملفات العمل"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"يتم تطبيق إعدادات فترة توقُّف الإشعارات من ملفك الشخصي على ملف العمل."</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"خدمات مساعد الواقع الافتراضي"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"لم تطلب أي تطبيقات مثبَّتة أن يتم تشغيلها كخدمات مساعد واقع افتراضي."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"هل تريد السماح لخدمة \"<xliff:g id="SERVICE">%1$s</xliff:g>\" بالوصول إلى خدمة الواقع الافتراضي؟"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"السماح بالوصول إلى كل الملفات لإدارتها"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"يسمح هذا الإعداد لهذا التطبيق بقراءة كل الملفات وتعديلها وحذفها من هذا الجهاز أو أي وحدات تخزين متصلة. في حال تفعيله، يمكن أن يصل التطبيق إلى الملفات بدون إعلامك بذلك."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"يمكن الوصول إلى كل الملفات"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"التطبيقات التي تستخدم التشغيل بالصوت"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"السماح بميزة التشغيل بالصوت"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"توفِّر ميزة التشغيل بالصوت إمكانية تشغيل التطبيقات المُعتمَدة باستخدام الطلبات الصوتية وبدون لمس الجهاز. يضمن نظام الاستشعار التكيُّفي والمدمَج أن تظل البيانات خاصة بك فقط.\n\n"<a href="">"مزيد من المعلومات حول نظام الاستشعار التكيُّفي المحمي"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"الإشعارات بملء الشاشة"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"السماح بعرض الإشعارات من هذا التطبيق بملء الشاشة"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"يتم السماح لهذا التطبيق بعرض إشعارات بملء الشاشة عندما يكون الجهاز مُقفَلاً. قد تستخدم التطبيقات هذا الإذن لإبراز المنبّهات أو المكالمات الواردة أو غيرها من الإشعارات العاجلة."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"استهلك تطبيق \"<xliff:g id="APP_LABEL">%1$s</xliff:g>\" مقدارًا أكبر من المُعتاد من طاقة البطارية أثناء تشغيله في الخلفية."</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"استهلك تطبيق \"<xliff:g id="APP_LABEL">%1$s</xliff:g>\" مقدارًا أعلى من طاقة البطارية أثناء تشغيله في المقدّمة."</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"استهلك تطبيق \"<xliff:g id="APP_LABEL">%1$s</xliff:g>\" مقدارًا أكبر من المُعتاد من طاقة البطارية أثناء تشغيله في المقدّمة."</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"استهلاك مرتفع للبطارية"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"استهلاك مرتفع للبطارية في الخلفية"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"استهلاك مرتفع للبطارية في المقدّمة"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"التنقل داخل النظام، التنقُّل باستخدام زرّين، التنقُّل باستخدام ثلاثة أزرار، التنقل بالإيماءات، التمرير سريعًا"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"المساعد الرقمي"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"التمرير سريعًا لاستدعاء تطبيق المساعد"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"مرِّر سريعًا من الزاوية السفلية لاستدعاء تطبيق المساعد الرقمي."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"تفعيل \"مساعد\" بالضغط مع الاستمرار على زر \"الشاشة الرئيسية\""</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"اضغط مع الاستمرار على زر الشاشة الرئيسية لاستدعاء تطبيق المساعد الرقمي."</string>
     <string name="low_label" msgid="6525629096999711220">"منخفضة"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"البيانات، مفتاح المرور، كلمة المرور"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"تلقائي، ملء، ملء تلقائي، بيانات، مفتاح مرور، كلمة مرور"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"‏&lt;b&gt;تأكّد من أنك تثق بهذا التطبيق&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; تستخدم البيانات المعروضة على الشاشة لتحديد ما يمكن ملؤه تلقائيًا."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"‏&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_autofill_confirmation_message" msgid="843829628024668466">"‏&lt;b&gt;Use &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_picker_title" msgid="8191267620665129205">"كلمات المرور ومفاتيح المرور وخدمات البيانات"</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>
@@ -4226,10 +4338,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <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="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>
@@ -4794,7 +4904,7 @@
     <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"جرِّب نسبة عرض إلى ارتفاع جديدة لعرض التطبيق في حال لم يكن مصمّمًا ليلائم جهاز <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"جرِّب نسبة عرض إلى ارتفاع جديدة لعرض التطبيق في حال لم يكن مصمّمًا ليلائم جهاز <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. قد لا تتوافق بعض التطبيقات مع نِسب عرض إلى ارتفاع محدَّدة."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"التطبيقات المقترَحة"</string>
-    <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"تطبيقات معدّلة"</string>
+    <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"التطبيقات المعدّلة"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"نسبة العرض إلى الارتفاع التلقائية في التطبيق"</string>
     <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"ملء الشاشة"</string>
     <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"نصف الشاشة"</string>
@@ -4803,7 +4913,7 @@
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
     <string name="user_aspect_ratio_option_a11y" msgid="1235801996029095219">"‫<xliff:g id="NUMERATOR">%1$s</xliff:g> إلى <xliff:g id="DENOMINATOR">%2$s</xliff:g>"</string>
-    <string name="app_aspect_ratio_footer" msgid="4029509301182067475">"سيُعاد تشغيل التطبيق بعد تغيير نسبة العرض إلى الارتفاع. ربما لا تظهر التغييرات غير المحفوظة. وقد لا تتوافق بعض التطبيقات مع نِسب عرض إلى ارتفاع محدَّدة."</string>
+    <string name="app_aspect_ratio_footer" msgid="4029509301182067475">"سيُعاد تشغيل التطبيق بعد تغيير نسبة العرض إلى الارتفاع. قد لا تظهر التغييرات غير المحفوظة، وقد لا تكون بعض التطبيقات متوافقة مع نِسب عرض إلى ارتفاع محدَّدة."</string>
     <string name="aspect_ratio_experimental_title" msgid="9088785421062044831">"نسبة العرض إلى الارتفاع (ميزة تجريبية)"</string>
     <string name="aspect_ratio_experiment_title" msgid="128614319422121040">"نسبة العرض إلى الارتفاع (تجربة)"</string>
     <string name="aspect_ratio_labs_title" msgid="6733893837442759383">"نسبة العرض إلى الارتفاع (ميزة اختبارية)"</string>
@@ -4862,4 +4972,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"الفحص بحثًا عن التطبيقات المخادِعة"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"التحقُّق من النشاط على التطبيقات بحثًا عن محاولات التصيّد الاحتيالي"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"استخدام الفحص بحثًا عن التطبيقات المخادِعة"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"استخدام الفحص بحثًا عن التطبيقات المخادِعة في ملف العمل"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-as/arrays.xml b/res/values-as/arrays.xml
index 702d076..09c4b09 100644
--- a/res/values-as/arrays.xml
+++ b/res/values-as/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"১ মিনিটৰ পাছত"</item>
     <item msgid="1574040255478150028">"৫ মিনিটৰ পাছত"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 5cc8310..bf10aa3 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -25,8 +25,8 @@
     <string name="device_info_default" msgid="1406619232867343310">"অজ্ঞাত"</string>
     <string name="device_info_protected_single_press" msgid="3810785480060743677">"তথ্য দেখুৱাবলৈ টিপক"</string>
     <string name="show_dev_countdown" msgid="2936506773086395069">"{count,plural, =1{আপুনি এতিয়া এগৰাকী বিকাশকৰ্তা হোৱাৰ পৰা # টা পদক্ষেপ দূৰত আছে।}one{আপুনি এতিয়া এগৰাকী বিকাশকৰ্তা হোৱাৰ পৰা # টা পদক্ষেপ দূৰত আছে।}other{আপুনি এতিয়া এগৰাকী বিকাশকৰ্তা হোৱাৰ পৰা # টা পদক্ষেপ দূৰত আছে।}}"</string>
-    <string name="show_dev_on" msgid="2840850085134853754">"এতিয়া আপুনি এজন বিকাশকৰ্তা!"</string>
-    <string name="show_dev_already" msgid="7041756429707644630">"কোনো প্ৰয়োজন নাই, আপুনি ইতিমধ্যে এজন ডেভেলপাৰ।"</string>
+    <string name="show_dev_on" msgid="2840850085134853754">"এতিয়া আপুনি এগৰাকী বিকাশকৰ্তা!"</string>
+    <string name="show_dev_already" msgid="7041756429707644630">"কোনো প্ৰয়োজন নাই, আপুনি ইতিমধ্যে এগৰাকী ডেভেলপাৰ।"</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"অনুগ্ৰহ কৰি প্ৰথমে বিকাশকৰ্তাৰ বিকল্পসমূহ সক্ষম কৰক।"</string>
     <string name="header_category_system" msgid="1665516346845259058">"ছিষ্টেম"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"সেৱাত আছে"</string>
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"ব্লুটুথ LE অডিঅ’ অক্ষম কৰক"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"ডিভাইচটোৱে LE অডিঅ’ হাৰ্ডৱেৰ ক্ষমতাসমূহ সমৰ্থন কৰিলে ই ব্লুটুথ LE অডিঅ’ সুবিধাসমূহ অক্ষম কৰে।"</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"ডিভাইচৰ সবিশেষত LE অডিঅ’ৰ ট’গল দেখুৱাওক"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"ব্লুটুথ LE অডিঅ’ অনুমতি দিয়া সূচীৰ সুবিধাটো অক্ষম কৰক"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"ব্লুটুথ LE অডিঅ’ অনুমতি দিয়া সূচীৰ সুবিধাটো অক্ষম কৰক।"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"ব্লুটুথ LE অডিঅ’ৰ অনুমতি দিয়া সূচী বাইপাছ কৰক"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"LE অডিঅ’ৰ পৰিধীয় ডিভাইচে অনুমতি দিয়া সূচীৰ যোগ্যতাৰ মাপকাঠী মানি চলিছে বুলি সত্যাপন নকৰিলেও ডিফ’ল্ট হিচাপে LE অডিঅ’ ব্যৱহাৰ কৰক।"</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"মিডিয়া ডিভাইচসমূহ"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"কল ডিভাইচসমূহ"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"অন্য ডিভাইচসমূহ"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"ছেভ কৰি থোৱা ডিভাইচসমূহ"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"একাউণ্টৰ সৈতে সম্পৰ্কিত"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"পূৰ্বতে একাউণ্টৰ সৈতে ব্যৱহাৰ কৰা হৈছে"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"পেয়াৰ কৰিবলৈ ব্লুটুথ অন হ’ব"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"সংযোগৰ অগ্ৰাধিকাৰসমূহ"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"আগতে সংযোগ কৰা"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"পাঠৰ ক্ষেত্ৰসমূহত লিখক"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"ষ্টাইলাছ বুটামত দিয়া আটাইবোৰ টিপা উপেক্ষা কৰক"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"ষ্টাইলাছ"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"অডিঅ’ শ্বেয়াৰ কৰা"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"অডিঅ’ শ্বেয়াৰ কৰক"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"কল আৰু এলাৰ্ম"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"তাৰিখ আৰু সময়"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"প্ৰক্সি"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"মচক"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"ল’ড হৈ আছে…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"নিকটৱৰ্তী ডিভাইচৰ সৈতে যোগাযোগ কৰিব পৰাৰ অনুমতি থকা এপ্‌সমূহে সংযুক্ত হৈ থকা ডিভাইচৰ আপেক্ষিক স্থান নিৰ্ধাৰণ কৰিব পাৰে।"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"এপ্‌ আৰু সেৱাৰ বাবে অৱস্থানৰ এক্সেছ অফ কৰা আছে। আপুনি কোনো জৰুৰীকালীন নম্বৰলৈ কল কৰিলে অথবা বাৰ্তা পঠিয়ালে আপোনাৰ ডিভাইচৰ অৱস্থান তথাপি জৰুৰীকালীন পৰিস্থিতিত সঁহাৰি দিয়া লোকলৈ পঠিওৱা হ’ব পাৰে।"</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"অৱস্থানৰ ছেটিঙৰ বিষয়ে অধিক জানক"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"একাউণ্টসমূহ"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"সুৰক্ষা"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"এনক্ৰিপশ্বন আৰু ক্ৰিডেনশ্বিয়েল"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"কৰ্মস্থানৰ প্ৰ’ফাইল"</string>
     <string name="private_space_title" msgid="7078627930195569767">"ব্যক্তিগত স্পে’চ"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"এপ্‌সমূহ এটা ব্যক্তিগত ফ’ল্ডাৰত লুকুৱাওক"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"স্ক্ৰীন লক ব্যৱহাৰ কৰি আনলক কৰক"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"ব্যক্তিগত স্পে’চ দেখুৱাওক"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"লক হৈ থকাৰ সময়ত লুকুৱাওক"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"লক কৰি থোৱা অৱস্থাত ব্যক্তিগত স্পে’চ লুকুৱাওক"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"আপোনাৰ ডিভাইচত ব্যক্তিগত স্পে’চ অন হৈ থকাৰ বিষয়ে অন্য লোকে জনাটো বন্ধ কৰিবলৈ, আপুনি এইটো আপোনাৰ এপৰ সূচীৰ পৰা লুকুৱাব পাৰে"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"লুকুৱাই ৰখা অৱস্থাত ব্যক্তিগত স্পে’চ এক্সেছ কৰক"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"সন্ধানৰ বাৰত \'ব্যক্তিগত স্পে’চ\' সন্ধান কৰক"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"ব্যক্তিগত স্পে’চ টাইলত টিপক"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"ব্যক্তিগত স্পে’চ আনলক কৰক"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"অফ আছে"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"অন আছে"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"ছিষ্টেম"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"ব্যক্তিগত স্পে’চ সৃষ্টি কৰক"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"ব্যক্তিগত স্পে’চ মচক"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"ব্যক্তিগত স্পে’চ সফলতাৰে সৃষ্টি কৰা হৈছে"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"ব্যক্তিগত স্পে’চ পূৰ্বৰে পৰা আছে"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"ব্যক্তিগত স্পে’চ সৃষ্টি কৰিব পৰা নগ’ল"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"ব্যক্তিগত স্পে’চ সফলতাৰে মচা হৈছে"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"ব্যক্তিগত স্পে’চ মচিব পৰা নগ’ল"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"এটা স্ক্ৰীন লক ছেট কৰক"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"ব্যক্তিগত স্পে’চ ব্যৱহাৰ কৰিবলৈ ডিভাইচত স্ক্ৰীন লক ছেট কৰক।"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"স্ক্ৰীন লক ছেট কৰক"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"বাতিল কৰক"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"বাতিল কৰক"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"ছেট আপ কৰক"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"ব্যক্তিগত স্পে’চ ছেট আপ কৰক"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"কেৱল আপুনি এক্সেছ কৰিব পৰা এটা সুৰক্ষিত স্পে\'চত ব্যক্তিগত এপ্ লুকুৱাওক"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"এইটোৱে কেনেকৈ কাম কৰে"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"আপুনি আপোনাৰ এপৰ সূচীখনৰ একেবাৰে তলৰ পৰা ব্যক্তিগত স্পে’চ এক্সেছ কৰিব পাৰে"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"ব্যক্তিগত স্পে’চত থকা এপ্ এটা লকেৰে সুৰক্ষিত কৰা হয়"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"ব্যক্তিগত স্পে’চ লক হৈ থাকিলে তাত থকা এপৰ জাননী লুকুওৱা হয়"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"ব্যক্তিগত স্পে’চ লক হৈ থাকিলে ব্যক্তিগত স্পে’চত থকা এপ্‌সমূহ অনুমতিৰ পৰিচালক, গোপনীয়তাৰ ডেশ্বব’ৰ্ড আৰু অন্য ছেটিঙত প্ৰদৰ্শিত নহ’ব"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"ব্যক্তিগত স্পে’চ ছেট আপ কৰি থকা হৈছে…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"ব্যক্তিগত স্পে’চ এটা লকৰ দ্বাৰা সুৰক্ষিত কৰা হয়"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"ব্যক্তিগত স্পে’চত থকা এপৰ ব্যৱহাৰৰ তথ্য লুকুওৱা হয়, যদিহে এইটো লক হৈ থাকে"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"আপোনাৰ এপৰ সূচীৰ পৰা ব্যক্তিগত স্পে’চ এক্সেছ কৰক"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"ব্যক্তিগত স্পে’চ ছেট আপ কৰিব পৰা নগ’ল"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"এতিয়াই পুনৰ চেষ্টা কৰক অথবা পাছত উভতি আহক"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"পুনৰ চেষ্টা কৰক"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"আনলক কৰিবলৈ স্ক্ৰীন লক ব্যৱহাৰ কৰিবনে?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"আপুনি আপোনাৰ ডিভাইচটো আনলক কৰিবলৈ ব্যৱহাৰ কৰা একেটা পদ্ধতি ব্যৱহাৰ কৰি ব্যক্তিগত স্পে’চ আনলক কৰিব পাৰে অথবা অন্য কোনো লক বাছনি কৰিব পাৰে"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"স্ক্ৰীন লক ব্যৱহাৰ কৰক"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"নতুন লক বাছনি কৰক"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"সকলো সাজু!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"ব্যক্তিগত স্পে’চ এক্সেছ কৰিবলৈ, আপোনাৰ গৃহ স্ক্ৰীনৰ একেবাৰে তলৰ পৰা ওপৰলৈ ছোৱাইপ কৰক, তাৰ পাছত তললৈ স্ক্ৰ’ল কৰক"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"কৰা হ’ল"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"ব্যক্তিগত স্পে’চ এক্সেছ কৰিবলৈ তললৈ স্ক্ৰ’ল কৰক"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"ব্যক্তিগত স্পে’চ ছেট আপ কৰিবলৈ ছাইন ইন কৰক"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"আপুনি <xliff:g id="COUNT">%d</xliff:g> টালৈকে ফিংগাৰপ্ৰিণ্ট যোগ কৰিব পাৰে"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"আপুনি সৰ্বাধিক সংখ্যক ফিংগাৰপ্ৰিণ্টবোৰ যোগ কৰিছে"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"আৰু অধিক ফিংগাৰপ্ৰিণ্ট যোগ কৰিব নোৱাৰি"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"সংযোগ কৰক"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"সংযোগ বিচ্ছিন্ন কৰক"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"পেয়াৰ আৰু সংযোগ কৰক"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"যেতিয়া ব্লুটুথ অন থাকে, তেতিয়া আপোনাৰ ডিভাইচে ওচৰত থকা আন ব্লুটুথ ডিভাইচৰ সৈতে যোগাযোগ কৰিব পাৰে।"</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"যেতিয়া ব্লুটুথ অন থাকে, তেতিয়া আপোনাৰ ডিভাইচে নিকটৱৰ্তী আন ব্লুটুথ ডিভাইচৰ সৈতে যোগাযোগ কৰিব পাৰে"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"ব্লুটুথ অন হৈ থকা অৱস্থাত আপোনাৰ ডিভাইচটোৱে অন্য নিকটৱৰ্তী ব্লুটুথ ডিভাইচৰ সৈতে সংযোগ স্থাপন কৰিব পাৰে।\n\nডিভাইচ ব্যৱহাৰৰ অভিজ্ঞতা উন্নত কৰিবলৈ এপ্‌ আৰু সেৱাসমূহে তথাপি যিকোনো সময়ত, আনকি ব্লুটুথ অফ থকা অৱস্থাতো নিকটৱৰ্তী ডিভাইচৰ সন্ধান কৰিব পাৰে। ইয়াক অৱস্থানভিত্তিক সুবিধা আৰু সেৱা উন্নত কৰা আদিৰ দৰে কাৰ্যৰ বাবে ব্যৱহাৰ কৰিব পাৰি। আপুনি এইটো ব্লুটুথ স্কেনিঙৰ ছেটিঙত সলনি কৰিব পাৰে।"</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"সলনি কৰক"</string>
     <string name="device_details_title" msgid="1155622417516195481">"ডিভাইচৰ বিষয়ে সবিশেষ"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"বাগ সমাধান কৰিব পৰা এপ্‌সমূহৰ বাবে বাইটক’ড সত্যাপন কৰিবলৈ ARTক অনুমতি দিয়ক"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"ৰিফ্ৰেশ্বৰ হাৰ দেখুৱাওক"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"বৰ্তমানৰ ডিছপ্লে’ ৰিফ্ৰেশ্বৰ হাৰ দেখুৱাওক"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"HDR/SDRৰ অনুপাত দেখুৱাওক"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"বর্তমানৰ HDR/SDRৰ অনুপাত দেখুৱাওক"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"NFCৰ বাবে ডিভাইচ আনলক কৰাৰ প্ৰয়োজন"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android বীম"</string>
@@ -1060,9 +1135,9 @@
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"অফ হৈ আছে"</string>
     <string name="display_white_balance_title" msgid="2624544323029364713">"শুভ্ৰতাৰ সমতা দেখুৱাওক"</string>
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
-    <string name="fold_lock_behavior_title" msgid="786228803694268449">"জপাই থোৱা অৱস্থান এপ্ ব্যৱহাৰ কৰি থাকক"</string>
+    <string name="fold_lock_behavior_title" msgid="786228803694268449">"জপাই থোৱা অৱস্থাত এপ্ ব্যৱহাৰ কৰি থাকক"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"মসৃণ ডিছপ্লে’"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"কিছুমান সমলৰ বাবে ৰিফ্ৰেশ্বৰ হাৰ স্বয়ংক্ৰিয়ভাৱে ৬০ৰ পৰা <xliff:g id="ID_1">%1$s</xliff:g> হাৰ্টজলৈ বঢ়ায়। বেটাৰীৰ ব্যৱহাৰ বৃদ্ধি কৰে।"</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"কিছুমান সমলৰ বাবে ৰিফ্ৰেশ্বৰ হাৰ স্বয়ংক্ৰিয়ভাৱে <xliff:g id="ID_1">%1$d</xliff:g> হাৰ্টজলৈ বঢ়ায়। বেটাৰীৰ ব্যৱহাৰ বৃদ্ধি কৰে।"</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"সৰ্বাধিক ৰিফ্ৰেশ্বৰ হাৰ বলপূৰ্বকভাৱে প্ৰয়োগ কৰক"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"স্পৰ্শৰ উন্নত সংবেদনশীলতা আৰু এনিমেশ্বনৰ গুণগত মানৰ বাবে সৰ্বোচ্চ ৰিফ্ৰেশ্বৰ হাৰ। বেটাৰীৰ ব্যৱহাৰ বৃদ্ধি কৰে।"</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"স্ক্ৰীনৰ সতর্কতা"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"সম্প্ৰদায়ৰ সৈতে জড়িত ছেটিং"</string>
     <string name="apn_settings" msgid="4295467389400441299">"এপিএনসমূহ"</string>
     <string name="apn_edit" msgid="2003683641840248741">"এক্সেছ পইণ্ট সম্পাদনা কৰক"</string>
+    <string name="apn_add" msgid="9069613192201630934">"এক্সেছ পইণ্ট যোগ দিয়ক"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"ছেট কৰা হোৱা নাই"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"ছেট কৰা হোৱা নাই"</string>
     <string name="apn_name" msgid="6677695784108157953">"নাম"</string>
@@ -1320,6 +1396,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN সক্ষম হৈছে"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"এপিএন অক্ষম কৰা হৈছে"</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>
     <string name="mvno_match_data" msgid="5213193073684321156">"এমভিএনঔ মান"</string>
     <string name="menu_delete" msgid="9199740901584348273">"এপিএন মচক"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"খুলিবলৈ সাধ্য সুবিধাৰ বুটাম ব্যৱহাৰ কৰক"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"খুলিবলৈ ভলিউম কীসমূহ টিপি ধৰি থাকক"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"খুলিবলৈ স্ক্ৰীনখনত তিনিবাৰ টিপক"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"খুলিবলৈ দুটা আঙুলিৰে স্ক্ৰীনত তিনিবাৰ টিপা"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"খুলিবলৈ ভংগিমা ব্যৱহাৰ কৰক"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"সাধ্য সুবিধাৰ নিৰ্দেশ ব্যৱহাৰ কৰক"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"এই সুবিধাটো ব্যৱহাৰ কৰিবলৈ, আপোনাৰ স্ক্রীনখনৰ একেবাৰে তলৰ অংশত থকা সাধ্য-সুবিধাৰ বুটামটোত <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> টিপক।\n\nসুবিধাসমূহ সালসলনিকৈ ব্যৱহাৰ কৰিবলৈ সাধ্য-সুবিধাৰ বুটামটো স্পৰ্শ কৰি ধৰি ৰাখক।"</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"এই সুবিধাটো ব্যৱহাৰ কৰিবলৈ আপোনাৰ স্ক্ৰীনত থকা সাধ্য-সুবিধাৰ বুটামটোত টিপক।"</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"এই সুবিধাটো ব্যৱহাৰ কৰিবলৈ, দুয়োটা ভলিউম কী টিপি ধৰি ৰাখক।"</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"বিবৰ্ধন আৰম্ভ কৰিবলৈ আৰু বন্ধ কৰিবলৈ আপোনাৰ স্ক্ৰীনখনৰ যিকোনো অংশত তিনিবাৰ টিপক।"</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"বিবৰ্ধন আৰম্ভ কৰিবলৈ আৰু বন্ধ কৰিবলৈ আপোনাৰ স্ক্ৰীনখনৰ যিকোনো অংশত দুটা আঙুলিৰে তিনিবাৰ টিপক।"</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"এই সুবিধাটো ব্যৱহাৰ কৰিবলৈ, স্ক্রীনখনৰ একেবাৰে তলৰ পৰা ওপৰলৈ ২ টা আঙুলিৰে ছোৱাইপ কৰক।\n\nসুবিধাসমূহ সালসলনিকৈ ব্যৱহাৰ কৰিবলৈ ২ টা আঙুলিৰে ওপৰলৈ ছোৱাইপ কৰি ধৰি ৰাখক।"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"এই সুবিধাটো ব্যৱহাৰ কৰিবলৈ, স্ক্রীনখনৰ একেবাৰে তলৰ পৰা ওপৰলৈ ৩ টা আঙুলিৰে ছোৱাইপ কৰক।\n\nসুবিধাসমূহ সালসলনিকৈ ব্যৱহাৰ কৰিবলৈ ৩ টা আঙুলিৰে ওপৰলৈ ছোৱাইপ কৰি ধৰি ৰাখক।"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"কোনো এটা সাধ্য-সুবিধা ব্যৱহাৰ কৰিবলৈ, স্ক্রীনখনৰ একেবাৰে তলৰ পৰা ওপৰলৈ ২ টা আঙুলিৰে ছোৱাইপ কৰক।\n\nসুবিধাসমূহ সালসলনিকৈ ব্যৱহাৰ কৰিবলৈ ২ টা আঙুলিৰে ওপৰলৈ ছোৱাইপ কৰি ধৰি ৰাখক।"</string>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"ভলিউম কীসমূহ ধৰি ৰাখক"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"ভলিউম কীসমূহ হেঁচি ধৰি ৰাখক"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"দুয়োটা ভলিউম কী টিপক আৰু হেঁচি ৰাখক"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"দুটা আঙুলিৰে স্ক্ৰীনত তিনিবাৰ টিপা"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"দুটা আঙুলিৰে স্ক্ৰীনত তিনিবাৰ টিপা"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"দুটা আঙুলিৰে স্ক্ৰীনখনত খৰতকীয়াকৈ {0,number,integer} বাৰ টিপক"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"স্ক্রীনখনত তিনিবাৰ টিপক"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"স্ক্রীনখনত তিনিবাৰ টিপক"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"স্ক্ৰীনখনত ক্ষিপ্ৰতাৰে {0,number,integer} বাৰ টিপক। এই শ্বৰ্টকাটটোৱে আপোনাৰ ডিভাইচটো লেহেমীয়া কৰিব পাৰে"</string>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"কম্পন আৰু হেপ্‌টিক ব্যৱহাৰ কৰক"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"এলাৰ্মৰ কম্পন"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"মিডিয়াৰ কম্পন"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"কীব’ৰ্ডৰ কম্পন"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"ৰিং কম্পন"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"জাননীৰ কম্পন"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"স্পৰ্শৰ প্ৰতিক্ৰিয়া"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> বাকী আছে"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"চাৰ্জ হ\'বলৈ <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g>"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"ডিভাইচত অতিবাহিত কৰা সময়"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"নেপথ্যৰ সময়"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"বেটাৰী কমিছে"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"এই এপ্‌টো নেপথ্যত চলিবলৈ অনুমতি দিয়ক"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"নেপথ্যৰ কাৰ্যকলাপ সীমিত কৰিবনে?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"আপুনি এটা এপৰ নেপথ্য কাৰ্যকলাপ সীমিত কৰিলে ই অস্বাভাৱিক আচৰণ কৰিব পাৰে"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"যিহেতু এই এপ্‌টো বেটাৰী অপ্টিমাইজ কৰিবলৈ ছেট কৰি থোৱা হোৱা নাই, সেয়ে ইয়াক আপুনি সীমিত কৰিব নোৱাৰে।\n\nএপ্‌টো সীমিত কৰিবলৈ প্ৰথমে বেটাৰী অপ্টিমাইজেশ্বন অন কৰক।"</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"বেটাৰীৰ ব্যৱহাৰ পৰিচালনা কৰক"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"নেপথ্যত ব্যৱহাৰ কৰিবলৈ অনুমতি দিয়ক"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"ৰিয়েল-টাইমৰ আপডে’ট পাবলৈ সক্ষম কৰক, বেটাৰী ৰাহি কৰিবলৈ অক্ষম কৰক"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"বাধাহীন"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"অপ্টিমাইজ কৰা"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"সীমিত"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"অন্তিমবাৰ সম্পূৰ্ণৰূপে চাৰ্জ কৰাৰ পৰা"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"ছিষ্টেম এপ্‌"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"আনইনষ্টল কৰা এপ্"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"অন্য"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"বাকী থকা মোটামুটি সময়"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"সম্পূৰ্ণৰূপে চাৰ্জ নোহোৱা পৰ্যন্ত"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"মুঠ: এক মিনিটতকৈ কম"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"নেপথ্য: এক মিনিটতকৈ কম"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"ডিভাইচত অতিবাহিত কৰা সময়: এক মিনিটতকৈ কম"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"এক মিনিটতকৈ কম"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"মুঠ: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"নেপথ্য: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"ডিভাইচত অতিবাহিত কৰা সময়: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"ম’বাইল ডেটা আৰু ৱাই-ফাই"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"ব্যক্তিগত ডেটা স্বয়ং-ছিংক কৰক"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"কৰ্মস্থানৰ ডেটা স্বয়ং-ছিংক কৰক"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"ব্যক্তিগত ডেটা স্বয়ং-ছিংক কৰক"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"চক্ৰ সলনি কৰক…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"ডেটা চক্ৰ ৰিছেট কৰিবলৈ মাহৰ দিনটো:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"এই সময় চোৱাত এটাও এপে ডেটা ব্যৱহাৰ কৰা নাছিল।"</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"পাঠৰ আকাৰ, ডাঙৰ প্ৰিণ্ট, ডাঙৰ ফণ্ট, ডাঙৰ পাঠ, কম দৃষ্টিশক্তি, পাঠৰ আকাৰ ডাঙৰ কৰক, ফণ্ট প্ৰসাৰিত কৰোঁতা, ফণ্টৰ প্ৰসাৰণ"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"এম্বিয়েণ্ট ডিছপ্লে’ সদায় অন কৰি ৰাখক, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, টেগ, ৰীডাৰ"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"কীব’ৰ্ড, হেপ্‌টিক্স, কম্পন কৰক,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"ভলিউম, কম্পন, অসুবিধা নিদিব"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"মিডিয়াৰ ভলিউম"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"ভলিউম কাষ্ট কৰক"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"আটাইবোৰ জাননী দেখুৱাওক"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"সংবেদনশীল সমল কেৱল আনলক থাকিলেহে দেখুৱাব"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"জাননী কেতিয়াও নেদেখুৱাব"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"আপুনি লক স্ক্ৰীন কিদৰে দেখুওৱাটো বিচাৰে?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"লক স্ক্ৰীন"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"কৰ্মস্থানৰ আটাইবোৰ জাননী সমল দেখুৱাওক"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"কৰ্মস্থানৰ সংবেদনশীল সমল লুকুৱাওক"</string>
@@ -3354,6 +3448,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"এই এপ্‌টোৱে উন্নত ছেটিং সমৰ্থন নকৰে"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"অধিক ছেটিং"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"এই এপ্‌টোৰ ভিতৰত অধিক ছেটিং উপলব্ধ"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"জাননী কুলডাউন কৰা"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"আটাইবোৰ জাননীত কুলডাউন প্ৰয়োগ কৰক"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"আপুনি একেটা এপৰ পৰা ক্ৰমাগতভাৱে বহুতো জাননী পালে জাননীৰ ভলিউম পৰ্যায়ক্ৰমে কমাওক"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"বাৰ্তালাপসমূহত কুলডাউন প্ৰয়োগ কৰক"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"আপুনি একেটা চাটৰ পৰা কম সময়ৰ ভিতৰতে বহুতো বাৰ্তা পালে জাননীৰ ভলিউম পৰ্যায়ক্ৰমে কমাওক"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"জাননী কুলডাউন কৰাটো ব্যৱহাৰ নকৰিব"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"একেটা এপৰ পৰা যিমান জাননী ক্ৰমাগতভাৱে পালেও কেতিয়াও জাননীৰ ভলিউম নকমাব"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"আনলক হৈ থকাৰ সময়ত কম্পন কৰক"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"কেৱল স্ক্ৰীনখন আনলক হৈ থাকিলেহে কম্পন কৰক"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"কৰ্মস্থানৰ প্ৰ’ফাইলত প্ৰয়োগ কৰক"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"আপোনাৰ ব্যক্তিগত প্ৰ’ফাইলৰ পৰা আপোনাৰ কৰ্মস্থানৰ প্ৰ’ফাইলত জাননী কুলডাউন কৰাৰ ছেটিং প্ৰয়োগ কৰক"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"ভিআৰ সহায়ক সেৱা"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"ইনষ্টল কৰি থোৱা কোনো এপে ভিআৰ সহায়ক সেৱা হিচাপে চলাবলৈ অনুৰোধ কৰা নাই।"</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"VR সেৱাক <xliff:g id="SERVICE">%1$s</xliff:g>ৰ এক্সেছ দিবনে?"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"আটাইবোৰ ফাইল পৰিচালনা কৰিবলৈ এক্সেছ দিয়ক"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"এই এপ্‌টোক এই ডিভাইচটোত অথবা অন্য যিকোনো সংযুক্ত ষ্ট’ৰেজৰ ভলিউমসমূহত আটাইবোৰ ফাইল পঢ়িবলৈ, সংশোধন কৰিবলৈ আৰু মচিবলৈ অনুমতি দিয়ক। যদি অনুমতি দিয়ে, আপোনাৰ নিশ্চিত জ্ঞানৰ অবিহনে এপে ফাইলবোৰ এক্সেছ কৰিব পাৰে।"</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"আটাইবোৰ ফাইল এক্সেছ কৰিব পাৰে"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"কন্ঠস্বৰ সক্ৰিয়কৰণৰ এপ্"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"কণ্ঠস্বৰ সক্ৰিয়কৰণৰ অনুমতি দিয়ক"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"কন্ঠস্বৰ সক্ৰিয়কৰণে কণ্ঠস্বৰৰ নিৰ্দেশেৰে অনুমোদিত এপ্, হেণ্ডছ্‌-ফ্ৰী অন কৰে। বিল্ট-ইন অভিযোজিত ছেন্সিঙে ডেটা কেৱল আপোনাৰ বাবে ব্যক্তিগত হৈ থকাটো নিশ্চিত কৰে।\n\n"<a href="">"সুৰক্ষিত অভিযোজিত ছেন্সিঙৰ বিষয়ে অধিক"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"সম্পূৰ্ণ স্ক্ৰীনৰ জাননী"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"এই এপ্‌টোৰ পৰা সম্পূৰ্ণ স্ক্ৰীনৰ জাননীৰ অনুমতি দিয়ক"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"এই এপ্‌টোক ডিভাইচ লক হৈ থাকোঁতে পূৰ্ণ স্ক্ৰীনত ওলোৱা জাননীসমূহ দেখুওৱাৰ অনুমতি দিয়ক। এপ্‌সমূহে এইবোৰ এলাৰ্ম, অন্তৰ্গামী কল অথবা অন্য জৰুৰী জাননীসমূহ হাইলাইট কৰিবলৈ ব্যৱহাৰ কৰিব পাৰে।"</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g>এ পৃষ্ঠভূমিত থকাৰ সময়ত সাধাৰণতে কৰাতকৈ অধিক বেটাৰী ব্যৱহাৰ কৰিছে"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g>এ অগ্ৰভূমিত থকাৰ সময়ত অধিক বেটাৰী ব্যৱহাৰ কৰিছে"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g>এ অগ্ৰভূমিত থকাৰ সময়ত সাধাৰণতে কৰাতকৈ অধিক বেটাৰী ব্যৱহাৰ কৰিছে"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"অত্যাধিক বেটাৰীৰ ব্যৱহাৰ"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"পৃষ্ঠভূমিত অত্যাধিক বেটাৰীৰ ব্যৱহাৰ"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"অগ্ৰভূমিত অত্যাধিক বেটাৰীৰ ব্যৱহাৰ"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"ছিষ্টেম নেভিগেশ্বন, ২ টা বুটামেৰে কৰা নেভিগেশ্বন, ৩ টা বুটামেৰে কৰা নেভিগেশ্বন, আঙুলিৰ স্পৰ্শৰ নিৰ্দেশেৰে কৰা নেভিগেশ্বন, ছোৱাইপ"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"ডিজিটেল সহায়ক"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"সহায়ক এপক কামত লগাবলৈ ছোৱাইপ কৰক"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"ডিজিটেল সহায়ক এপক কামত লগাবলৈ তলৰ একোণৰ পৰা ওপৰলৈ ছোৱাইপ কৰক।"</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"ডিজিটেল সহায়ক এপক কামত লগাবলৈ তলৰ এটা কোণৰ পৰা ওপৰলৈ ছোৱাইপ কৰক"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Assistantৰ বাবে গৃহপৃষ্ঠা বুটামটোত টিপি ধৰি থাকক"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"ডিজিটেল সহায়ক এপ্‌টো কামত লগাবলৈ গৃহপৃষ্ঠা বুটামটো দবাই ৰাখক।"</string>
     <string name="low_label" msgid="6525629096999711220">"নিম্ন"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"ডেটা, পাছকী, পাছৱৰ্ড"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"স্বয়ংক্রিয়, পূৰ হোৱা, স্বয়ংক্রিয়ভাৱে পূৰ হোৱাৰ সুবিধা, ডেটা, পাছকী, পাছৱৰ্ড"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;আপুনি এই এপ্‌টোক বিশ্বাস কৰাটো নিশ্চিত কৰক&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; এ স্বয়ংপূৰ্তিৰ বাবে নিৰ্ধাৰণ কৰিবলৈ আপোনাৰ স্ক্ৰীনত দেখা দিয়া বস্তুবোৰ ব্যৱহাৰ কৰে।"</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Use &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_autofill_confirmation_message" msgid="843829628024668466">"&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_picker_title" msgid="8191267620665129205">"পাছৱৰ্ড, পাছকী আৰু ডেটা সেৱা"</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>
@@ -4785,10 +4895,8 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"আকাৰৰ অনুপাত"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"এই এপ্‌টো চাবলৈ এটা আকাৰৰ অনুপাত ব্যৱহাৰ কৰি চাওক যদি এইটো আপোনাৰ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>ৰ সৈতে মিলাকৈ ডিজাইন কৰা হোৱা নাই"</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"এই এপ্‌টো চাবলৈ এটা আকাৰৰ অনুপাত ব্যৱহাৰ কৰি চাওক যদি এইটো আপোনাৰ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>ৰ সৈতে মিলাকৈ ডিজাইন কৰা হোৱা নাই। নিৰ্দিষ্ট কিছুমান আকাৰৰ অনুপাতৰ বাবে কিছুমান এপ্‌ অপ্টিমাইজ কৰা নহ’বও পাৰে।"</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"কোনো এটা এপ্‌ চাবলৈ এটা নতুন আকাৰৰ অনুপাত ব্যৱহাৰ কৰি চাওক যদি সেইটো আপোনাৰ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>ৰ সৈতে মিলাকৈ ডিজাইন কৰা হোৱা নাই"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"কোনো এটা এপ্‌ চাবলৈ এটা নতুন আকাৰৰ অনুপাত ব্যৱহাৰ কৰি চাওক যদি সেইটো আপোনাৰ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>ৰ সৈতে মিলাকৈ ডিজাইন কৰা হোৱা নাই। কিছুমান বিশেষ আকাৰৰ অনুপাতৰ বাবে কিছুমান এপ্‌ অপ্টিমাইজ কৰা নহ’বও পাৰে।"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"পৰামৰ্শিত এপ্‌সমূহ"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"সলনি কৰা এপ্‌"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"এপৰ ডিফ’ল্ট"</string>
@@ -4858,4 +4966,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"প্ৰতাৰণামূলক এপৰ বাবে স্কেন কৰি থকা হৈছে"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"ফিশ্বিঙৰ বাবে এপৰ কাৰ্যকলাপ পৰীক্ষা কৰক"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"প্ৰতাৰণামূলক এপ্‌ বিচাৰি উলিয়াবলৈ স্কেন কৰাৰ সুবিধা ব্যৱহাৰ কৰক"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"কৰ্মস্থানৰ প্ৰতাৰণামূলক এপ্‌ বিচাৰি উলিয়াবলৈ স্কেন কৰাৰ সুবিধা ব্যৱহাৰ কৰক"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-az/arrays.xml b/res/values-az/arrays.xml
index ed6a3f2..a6e001b 100644
--- a/res/values-az/arrays.xml
+++ b/res/values-az/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"1 dəqiqə sonra"</item>
     <item msgid="1574040255478150028">"5 dəqiqə sonra"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index 6963a8a..6acfee8 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Bluetooth LE audionu deaktiv edin"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Cihaz LE audio avadanlıq imkanlarını dəstəkləyirsə, Bluetooth LE audio funksiyasını deaktiv edir."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"LE audio açarı görünsün: Cihaz detalları"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Bluetooth LE audio icazə siyahısını aktivləşdirin"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Bluetooth LE audio icazə siyahısı funksiyasını aktivləşdirin."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Bluetooth LE Audio üzrə icazə verilənlər siyahısına qoşulmayın"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"LE Audio periferik cihazının icazə verilənlər siyahısı üzrə meyarlara cavab verdiyi doğrulanmasa da, defolt olaraq LE Audio istifadə edin."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Media cihazları"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Zəng cihazları"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Digər cihazlar"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Yadda saxlanmış cihazlar"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Hesab ilə əlaqələndirilib"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Əvvəllər hesab ilə istifadə edilib"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth qoşulmaq üçün aktiv ediləcək"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Bağlantı tərcihləri"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Öncə qoşulmuş cihazlar"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Mətn sahələrinə yazın"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Qələmlə düymə basılmalarını nəzərə almayın"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Qələm"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Audio paylaşımı"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Audio paylaşın"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Zəng və zəngli saatlar"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Vaxt və tarix"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proksi"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Təmizlə"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Məkan ayarları haqqında ətraflı məlumat"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Hesablar"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Güvənlik"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Şifrələmə və kimlik bilgiləri"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"İş profili"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Şəxsi yer"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Tətbiqləri şəxsi qovluqda gizlədin"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Ekran kilidi ilə kiliddən çıxarın"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Şəxsi yeri göstərin"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Kilidli olduqda gizlədin"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Kilidli olduqda Private Space-i gizlədin"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Tətbiqlər siyahısında Private Space-i digərlərindən gizlədin"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Gizli olduqda Private Space-ə giriş"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Axtarış panelində \"Private Space\" axtarın"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Private Space mozaikinə toxunun"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Private Space-i kiliddən çıxarın"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Deaktiv"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Aktiv"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Sistem"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Şəxsi yer yaradın"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Şəxsi yeri silin"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Şəxsi yer yaradıldı"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Şəxsi yer mövcuddur"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Şəxsi yer yaradılmadı"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Şəxsi yer silindi"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Şəxsi yer silinmədi"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Ekran kilidi quraşdırın"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Cihazda ekran kilidi quraşdırmaqla Məxfi Yeri istifadə edin."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Ekran kilidi quraşdırın"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Ləğv edin"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Ləğv edin"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Ayarlayın"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Private Space ayarlayın"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Şəxsi tətbiqləri yalnız sizin daxil ola biləcəyiniz təhlükəsiz yerdə gizlədin"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Haqqında"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Tətbiq siyahısının aşağısından Private Space-ə daxil ola bilərsiniz"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Private Space-də tətbiqlər kilid ilə qorunur"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Şəxsi məkan kilidlənəndə tətbiq bildirişləri gizlədilir"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Şəxsi məkan kilidlənəndə Şəxsi məkan tətbiqləri icazə meneceri, məxfilik paneli və digər ayarlarda görünməyəcək"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Şəxsi məkan ayarlanır…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Şəxsi məkan kilid ilə qorunur"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Şəxsi məkan kilidlənəndə tətbiq istifadəsi məlumatları gizlədilir"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Şəxsi məkana tətbiq siyahınızdan daxil olun"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Şəxsi məkanı ayarlamaq olmadı"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Yenidən cəhd edin, yaxud sonra qayıdın"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Yenidən sınayın"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Kilidi açmaq üçün ekran kilidi istifadə edilsin?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Şəxsi məkanı cihaz kilidi ilə kiliddən çıxara və ya fərqli kilid seçə bilərsiniz"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Ekran kilidi istifadə edin"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Yeni kilid seçin"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Hər şey hazırdır!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Şəxsi məkana daxil olmaq üçün əsas ekranın aşağısından yuxarı sürüşdürüb, sonra aşağı sürüşdürün"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Hazırdır"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Şəxsi məkana giriş üçün aşağı sürüşdürün"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Şəxsi Məkanı ayarlamaq üçün daxil olun"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"<xliff:g id="COUNT">%d</xliff:g> ədədə qədər barmaq izi əlavə edə bilərsiniz"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Maksimum sayda barmaq izi əlavə etmisiniz"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Daha artıq barmaq izi əlavə edilə bilməz"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Qoşulsun"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Ayrılın"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"cütləndirin və əlaqə yaradın"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Bluetooth aktiv olan zaman cihazınız yaxınlıqdakı Bluetooth cihazları ilə bağlantı qura bilər."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Bluetooth aktiv olduqda cihaz yaxınlıqdakı digər Bluetooth cihazları ilə bağlantı qura bilər.\n\nCihaz təcrübəsini yaxşılaşdırmaq üçün tətbiq və xidmətlər hətta Bluetooth deaktiv olduqda belə istənilən vaxt yaxınlıqdakı cihazları skan edə bilər. Bu, məsələn, məkan əsaslı funksiya və xidmətləri yaxşılaşdırmaq üçün istifadə oluna bilər. Bunu Bluetooth skanlama ayarlarında dəyişə bilərsiniz."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Dəyişin"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Cihaz məlumatları"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"ART sazlanmaya uyğun tətbiqlərin bayt-kodunu yoxlaya bilsin"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Təzələnmə tezliyi göstərilsin"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Ekranın cari təzələnmə tezliyi göstərilsin"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"HDR/SDR nisbətini göstərin"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Cari HDR/SDR nisbətini göstərin"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"NFC üçün cihaz kilidinin açılması tələb olunsun"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Qatlandıqda tətbiqlərdən istifadəyə davam edin"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Rahat Displey"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Bəzi kontent üçün 60-<xliff:g id="ID_1">%1$s</xliff:g> Hs yeniləmə dərəcəsini avtomatik artırır. Batareya istifadəsini artırır."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Bəzi kontentlər üçün yeniləmə dərəcəsini <xliff:g id="ID_1">%1$d</xliff:g> Hs-ə qədər avtomatik yüksəldir. Batareya istifadəsini artırır."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Pik yeniləmə dərəcəsini məcburi tətbiq edin"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Təzələnmə tezliyini artıraraq sensor həssaslığını və animasiya axıcılığını artırır. Enerji sərfiyyatını artırır."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Ekran həssaslığı"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Kommunal ayarlar"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN-lər"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Giriş nöqtəsinə düzəliş edin"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Giriş nöqtəsi əlavə edin"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Təyin edilməyib"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Ayarlanmayıb"</string>
     <string name="apn_name" msgid="6677695784108157953">"Ad"</string>
@@ -1320,6 +1397,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN aktiv"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN deaktiv"</string>
     <string name="bearer" msgid="3231443241639159358">"Daşıyıcı"</string>
+    <string name="network_type" msgid="748590707422733595">"Şəbəkə növü"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Qeyd olunmayıb"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Mobil virtual şəbəkə operatoru növü"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"Mobil virtual şəbəkə operatoru dəyəri"</string>
     <string name="menu_delete" msgid="9199740901584348273">"APN silin"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Xüsusi imkanlar düyməsini istifadə edin"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Açmaq üçün səs düymələrini basıb saxlayın"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Açmaq üçün ekrana üç dəfə toxunun"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Açmaq üçün ekrana iki barmaqla üç dəfə toxunma"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Açmaq üçün jestdən istifadə edin"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Əlçatımlılıq jestindən istifadə edin"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Bu funksiyanı işlətmək üçün ekranın altındakı xüsusi imkanlar düyməsinə <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> toxunun.\n\nFunksiyadan funksiyaya keçmək üçün xüsusi imkanlar düyməsinə toxunub saxlayın."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Bu funksiyanı işlətmək üçün xüsusi imkanlar düyməsinə toxunun."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Bu funksiyanı istifadə etmək üçün hər iki səs düyməsini basıb saxlayın."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Böyütməni başlatmaq və dayandırmaq üçün ekranda istənilən yerə üç dəfə toxunun."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Böyütməni başlatmaq və dayandırmaq üçün ekrana iki barmaqla üç dəfə toxunun."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Bu funksiyanı istifadə etmək üçün 2 barmaq ilə ekranın aşağısından yuxarıya doğru sürüşdürün.\n\nFunksiyalar arasında keçid etmək üçün 2 barmaq ilə yuxarıya sürüşdürüb saxlayın."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Bu funksiyanı istifadə etmək üçün 3 barmaq ilə ekranın aşağısından yuxarıya doğru sürüşdürün.\n\nFunksiyalar arasında keçid etmək üçün 3 barmaq ilə yuxarıya sürüşdürüb saxlayın."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Əlçatımlılıq funksiyasını istifadə etmək üçün 2 barmaq ilə ekranın aşağısından yuxarıya doğru sürüşdürün.\n\nFunksiyalar arasında keçid etmək üçün 2 barmaq ilə yuxarıya sürüşdürüb saxlayın."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Səs düymələrinə basıb saxlayın"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"səs düymələrinə basıb saxlayın"</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_triple_tap" msgid="6687765191490040899">"İki barmaqla ekrana üç dəfə toxunma"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"iki barmaqla ekrana üç dəfə toxunma"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"ekrana üç 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>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Vibrasiya və taktil əks-əlaqədən istifadə edin"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Siqnal vibrasiyası"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Media vibrasiyası"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Klaviatura vibrasiyası"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Zəng vibrasiyası"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Bildiriş vibrasiyası"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Toxunuş vibrasiyası"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> qalır"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"Şarjın bitməsinə var: <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g>"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Ekran vaxtı"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Arxa fon vaxtı"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Enerji azdır"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Tətbiqin arxa fonda işləməsinə icazə verin"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Arxa fon fəaliyyəti məhdudlaşdırılsın?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Tətbiqin arxa fon fəaliyyətini məhdudlaşdırsanız, o səhv işləyə bilər"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Bu tətbiq üçün enerji qənaəti aktiv deyil.\n\nMəhdudiyyət tətbiq etmək üçün onu aktivləşdirin."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Batareya istifadəsini idarə edin"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Arxa fonda istifadəsinə icazə verin"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Real vaxt yeniləmələri üçün aktivləşdirin. Batareyaya qənaət üçün deaktiv edin."</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Məhdudiyyətsiz"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Optimal"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Məhdud"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"son tam şarjdan sonra"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Sistem tətbiqləri"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Sistemdən silinmiş tətbiqlər"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Digərləri"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Təxmini qalan vaxt"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Tam enerji yığana kimi"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Cəmi: bir dəqiqədən az"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Arxa fon: bir dəqiqədən az"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Ekran vaxtı: bir dəqiqədən az"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Bir dəqiqədən az"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Cəmi: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Arxa fon: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Ekran vaxtı: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Mobil data və Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Şəxsi datanı avtomatik sinxronlaşdırın"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"İş datasını avtomatik sinxronlaşdırın"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Şəxsi datanın avtosinxronu"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Tsikli dəyiş..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Data istifadə dövrünü sıfırlamaq üçün ayın günü:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Bu dövr əzrində heç bir tətbiq data istifadə etməyib."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"mətn ölçüsü, böyük çap, böyük şrift, böyük mətn, zəif görmə, mətni daha böyük et, şrift böyüdücü, şrift böyütmə"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"həmişə aktiv ambient displey, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, teq, oxuyucu"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"klaviatura, taktil funksiyalar, vibrasiya,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Səs, vibrasiya, \"Narahat etməyin\" rejimi"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Media səsi"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Yayım həcmi"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Bütün bildirişlər göstərilsin"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Məxfi məlumatlar kilidsiz ekranda görünsün"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Bildirişlər heç göstərilməsin"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Ekran kilidində necə göstərilməsini istəyirsiniz?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Ekran kilidi"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Bütün iş bildirişləri göstərilsin"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Həssas məlumatı gizlədin"</string>
@@ -3354,6 +3449,17 @@
     <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="6121016426991791557">"Bildiriş səsinin azaldılması"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Bütün bildirişlərin səsini azaldın"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Eyni tətbiqdən ardıcıl bildirişlər aldıqda bildiriş səsini tədricən azaldın"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Söhbətlərin bildiriş səsini azaldın"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Qısa müddətdə eyni söhbətdən çoxlu mesaj aldıqda bildiriş səsini tədricən azaldın"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Bildiriş səsini azaltmayın"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Eyni tətbiqdən gələn ardıcıl bildiriş miqdarından asılı olmayaraq bildiriş səsini azaltmayın"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Kilid açıldıqda vibrasiya"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Yalnız ekran kilidi açıldıqda titrəsin"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"İş profillərinə tətbiq edin"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Bildiriş səsinin azaldılması ayarlarını şəxsi profildən iş profilinə tətbiq edin"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR köməkçi xidmətləri"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Heç bir tətbiq VR köməkçi xidmətləri kimi çalışma sorğusu göndərməyib."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"VR xidmətinə <xliff:g id="SERVICE">%1$s</xliff:g> üçün girişə icazə verilsin?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Bütün faylları idarə etmək üçün giriş icazəsi verin"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Bu tətbiqə bu cihazda və ya qoşulmuş cihazların yaddaşındakı bütün faylları oxumaq, dəyişmək və silmək icazəsi verin. İcazə verilsə, tətbiq xəbəriniz olmadan fayllara daxil ola bilər."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Bütün fayllara daxil ola bilər"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Səslə aktivləşdirmə tətbiqləri"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Səslə aktivləşdirməyə icazə verin"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Səslə aktivləşdirmə təsdiqlənmiş tətbiqləri səsli əmrdən istifadə edərək, səsli idarəetmə vasitəsilə aktiv edir. Daxili qorunan adaptiv sensor datanın yalnız sizin üçün görünməsini təmin edir.\n\n"<a href="">"Qorunan adaptiv sensor haqqında ətraflı məlumat"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Tam ekran bildirişləri"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Bu tətbiqin tam ekran bildirişlərinə icazə verin"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Bu tətbiqə cihaz kilidli olduqda tam ekranı tutan bildirişlər göstərmək icazəsi verin. Bunlar zəngli saat, gələn zəng və ya digər təcili bildirişlər üçündür."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> arxa fonda həmişəkindən çox batareya enerjisi istifadə edib"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ön planda çox batareya enerjisi istifadə edib"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ön planda həmişəkindən çox batareya enerjisi istifadə edib"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Yüksək batareya istifadəsi"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Arxa fonda yüksək batareya istifadəsi"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Ön planda yüksək batareya istifadəsi"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"sistem naviqasiyası, 2 düyməli naviqasiya, 3 düyməli naviqasiya, jest naviqasiyası, sürüşdürmə"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Rəqəmsal assistent"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Assistenti aktiv etmək üçün sürüşdürün"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Rəqəmsal assistent tətbiqini aktiv etmək üçün aşağı küncdən yuxarı sürüşdürün."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Assistent üçün Əsas Səhifə seçimini basıb saxlayın"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Rəqəmsal assistent tətbiqini işə salmaq üçün Əsas ekran düyməsini basıb saxlayın."</string>
     <string name="low_label" msgid="6525629096999711220">"Aşağı"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"data, giriş açarı, parol"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"avto, doldurma, avto doldurma, data, giriş açarı, parol"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Bu tətbiqə inana biləcəyinizi dəqiqləşdirin&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Avtodoldurma&gt;%1$s&lt;/xliff:g&gt; ekranı analiz edərək avtomatik doldurula bilən sahələri tapır."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;İstifadə edin: &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; avtomatik doldurulan məlumatları müəyyənləşdirmək üçün ekrandakı kontentdən istifadə edir. Yeni parol, açar və digər məlumatlar burada saxlanacaq."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;&lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; istifadə edilsin?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Yeni parol, giriş açarı və digər məlumatlar burada yadda saxlanacaq. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; avtomatik doldurulacaq məlumatı müəyyənləşdirmək üçün ekrandakı kontentdən istifadə edə bilər."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Parol, giriş açarı və data xidmətləri"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$s deaktiv edilsin?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Bu xidmət deaktiv edilsin?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Daxil olduqda parol, giriş açarı, ödəniş metodu və s. kimi saxlanmış məlumatlar doldurulmayacaq. Saxlanmış məlumatdan istifadə etmək üçün parol, giriş açarı və ya data xidməti seçin."</string>
@@ -4226,10 +4338,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <string name="enable_angle_as_system_driver" msgid="4648827560023949786">"Təcrübi: ANGLE-ı aktivləşdirin"</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Xəbərdarlıq: ANGLE-ı defolt OpenGL ES drayveri kimi aktivləşdirin. Bu funksiya təcrübidir. Bəzi kamera və video tətbiqləri ilə uyğun olmaya bilər."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"Sistemin OpenGL ES drayverini dəyişmək üçün yenidən başlatma tələb edilir"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Tətbiq uyğunluğu dəyişiklikləri"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Tətbiq uyğunluğu ayarlarına dəyişiklik göstərilsin"</string>
@@ -4858,4 +4968,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Aldadıcı tətbiqlərin skanlanması"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Tətbiq fəaliyyətində fişinqin yoxlanması"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Aldadıcı tətbiqlər üçün skandan istifadə"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Aldadıcı iş tətbiqləri üçün skandan istifadə"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-b+sr+Latn/arrays.xml b/res/values-b+sr+Latn/arrays.xml
index bee9f81..7053b92 100644
--- a/res/values-b+sr+Latn/arrays.xml
+++ b/res/values-b+sr+Latn/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Posle 1 minuta"</item>
     <item msgid="1574040255478150028">"Posle 5 minuta"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 374fbd9..5ef3bb5 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Onemogući Bluetooth LE audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Onemogućava funkciju Bluetooth LE audio ako uređaj podržava mogućnosti LE audio hardvera."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"LE Audio prekidač u detaljima o uređaju"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Omogući Bluetooth LE Audio listu dozvola"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Omogućava funkciju Bluetooth LE Audio listu dozvola."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Zaobiđi Bluetooth LE Audio listu dozvoljenih"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Podrazumevano koristi LE Audio čak i ako nije potvrđeno da LE Audio periferni uređaj zadovoljava kriterijume liste dozvoljenih."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Medijski uređaji"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Uređaji za pozivanje"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Drugi uređaji"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Sačuvani uređaji"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Povezano sa nalogom"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Prethodno korišćeno sa nalogom"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth će se uključiti radi uparivanja"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Podešavanja povezivanja"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Prethodno povezani"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Pišite u poljima za tekst"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignoriši sva pritiskanja dugmeta pomoću pisaljke"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Pisaljka"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Deljenje zvuka"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Deli zvuk"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Pozivi i alarmi"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Datum i vreme"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proksi"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Obriši"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Saznajte više o podešavanjima lokacije"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Nalozi"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Bezbednost"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Šifrovanje i akreditivi"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Poslovni profil"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Privatni prostor"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Sakrij aplikacije u privatnom folderu"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Otključaj pomoću otključavanja ekrana"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Sakrij privatni prostor"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Sakrij kad je zaključan"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Sakrijte privatni prostor kad je zaključan"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Privatni prostor možete da sakrijete sa liste aplikacija"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Pristupite privatnom prostoru kad je sakriven"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Potražite Privatni prostor na traci za pretragu"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Dodirnite pločicu Privatni prostor"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Otključajte privatni prostor"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Isključeno"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Uključeno"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Sistem"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Napravi privatni prostor"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Izbriši privatni prostor"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Privatni prostor je napravljen"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Privatni prostor već postoji"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Pravljenje privatnog prostora nije uspelo"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Privatni prostor je izbrisan"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Brisanje privatnog prostora nije uspelo"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Podesite zaključavanje ekrana"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Za privatni prostor podesite zaključavanje ekrana na uređaju."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Podesi zaključavanje ekrana"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Otkaži"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Otkaži"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Podesi"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Podesite privatni prostor"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Sakrijte privatne aplikacije u bezbednom prostoru kom samo vi možete da pristupite"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Princip rada"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Privatnom prostoru možete da pristupite sa dna liste aplikacija"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Aplikacije u privatnom prostoru su zaključane"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Obaveštenja iz aplikacija privatnog prostora su skrivena kad je on zaključan"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Aplikacije privatnog prostora neće se pojaviti u menadžeru dozvola, na kontrolnoj tabli za privatnost i u drugim podešavanjima kad je privatni prostor zaključan"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Podešava se privatni prostor…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Privatni prostor je zaštićen zaključavanjem"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Informacije o korišćenju za aplikacije iz privatnog prostora su skrivene kada je zaključan"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Pristupajte privatnom prostoru sa liste aplikacija"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Podešavanje privatnog prostora nije uspelo"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Probajte ponovo sada ili se vratite kasnije"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Probaj ponovo"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Želite da otključate pomoću otključavanja ekrana?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Možete da otključavate privatni prostor isto kao što otključavate uređaj ili da odaberete drugačiji tip otključavanja"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Koristi otključavanje ekrana"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Odaberi novi tip zaključavanja"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Gotovo!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Da biste pristupali privatnom prostoru, prevucite nagore od dna početnog ekrana, pa skrolujte nadole"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Gotovo"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Skrolujte nadole da biste pristupali privatnom prostoru"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Prijavite se da biste podesili privatni prostor"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Možete da ih dodate do <xliff:g id="COUNT">%d</xliff:g>"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Dodali ste maksimalan broj otisaka prstiju"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Ne možete da dodate još otisaka prstiju"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Poveži"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Prekini vezu"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Upari i poveži"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Kada je Bluetooth uključen, uređaj može da komunicira sa drugim Bluetooth uređajima u blizini."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Kada je Bluetooth uključen, uređaj može da komunicira sa drugim Bluetooth uređajima u blizini"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Kada je Bluetooth uključen, uređaj može da komunicira sa drugim Bluetooth uređajima u blizini.\n\nRadi boljeg doživljaja uređaja, aplikacije i usluge i dalje mogu da traže uređaje u blizini u bilo kom trenutku, čak i kada je Bluetooth isključen. Ovo može da se koristi, na primer, za poboljšanje funkcija i usluga zasnovanih na lokaciji. To možete da promenite u podešavanjima Bluetooth skeniranja."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Promeni"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Detalji o uređaju"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Dozvoli da ART potvrdi binarni kôd aplikacija iz kojih mogu da se otklone greške"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Prikaži učestalost osvežavanja"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Prikazuje aktuelnu učestalost osvežavanja ekrana"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Prikaži HDR ili SDR razmeru"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Prikazuje aktuelnu HDR ili SDR razmeru"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Traži da se otključa uređaj za korišćenje NFC-a"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1137,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Nastavi sa korišćenjem aplikacija pri preklapanju"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Tečan prikaz"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Automatski podiže učestalost osvežavanja sa 60 na <xliff:g id="ID_1">%1$s</xliff:g> Hz za određeni sadržaj. Povećava potrošnju baterije."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Automatski podiže učestalost osvežavanja do <xliff:g id="ID_1">%1$d</xliff:g> Hz za određeni sadržaj. Povećava potrošnju baterije."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Nametni maksimalnu učestalost osvežavanja"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Najveća učestalost osvežavanja za poboljšan odziv na dodir i kvalitet animacije. Povećava potrošnju baterije."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Pažnja ekrana"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Zajednička podešavanja"</string>
     <string name="apn_settings" msgid="4295467389400441299">"Nazivi pristupnih tačaka"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Izmena pristupne tačke"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Dodajte pristupnu tačku"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Nije podešeno"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Nije podešeno"</string>
     <string name="apn_name" msgid="6677695784108157953">"Naziv"</string>
@@ -1320,6 +1396,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"Naziv pristupne tačke je omogućen"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"Naziv pristupne tačke je onemogućen"</string>
     <string name="bearer" msgid="3231443241639159358">"Nosilac"</string>
+    <string name="network_type" msgid="748590707422733595">"Tip mreže"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Nije navedeno"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Tip MVNO-a"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"Vrednost MVNO-a"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Izbriši naziv pristupne tačke"</string>
@@ -1506,7 +1584,7 @@
     <string name="lockpassword_choose_your_password_header_for_biometrics" msgid="2053366309272487015">"Podesite lozinku da biste koristili lice ili otisak prsta"</string>
     <string name="lockpassword_choose_your_pattern_header_for_biometrics" msgid="4038476475293734905">"Podesite šablon da biste koristili lice ili otisak prsta"</string>
     <string name="lockpassword_choose_your_pin_header_for_biometrics" msgid="9086039918921009380">"Podesite PIN da biste koristili lice ili otisak prsta"</string>
-    <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Zaboravili ste lozinku?"</string>
+    <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Zaboravljena lozinka?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Zaboravili ste šablon?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Zaboravili ste PIN?"</string>
     <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Nacrtajte šablon da biste nastavili"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Otvarajte pomoću dugmeta za pristupačnost"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Zadržite tastere za jačinu zvuka da biste otvorili"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Triput dodirnite ekran da biste otvorili"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Dodirnite ekran tri puta pomoću dva prsta da biste otvorili"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Otvarajte pomoću pokreta"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Koristite pokret za pristupačnost"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Da biste koristili ovu funkciju, dodirnite dugme Pristupačnost <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> u dnu ekrana.\n\nDa biste prelazili sa jedne funkcije na drugu, dodirnite i zadržite dugme Pristupačnost."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Da biste koristili ovu funkciju, dodirnite dugme Pristupačnost na ekranu."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Da biste koristili ovu funkciju, pritisnite i zadržite oba tastera za jačinu zvuka."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Da biste pokrenuli i zaustavili uvećanje, triput dodirnite bilo gde na ekranu."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Da biste pokrenuli i zaustavili uvećanje, dodirnite tri puta bilo gde na ekranu pomoću dva prsta."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Da biste koristili ovu funkciju, 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_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Da biste koristili ovu funkciju, 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_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Da biste koristili funkciju pristupačnosti, 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>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Zadržite tastere za jačinu zvuka"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"zadržite tastere 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_triple_tap" msgid="6687765191490040899">"Dodirnite ekran tri puta pomoću dva prsta"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"dodirnite ekran tri puta pomoću dva prsta"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"dodirnite ekran 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>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Koristi vibriranje i haptiku"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Vibriranje alarma"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Vibriranje medija"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Vibracija tastature"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Vibriranje zvona"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Vibriranje obaveštenja"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Taktilni odziv"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"Još <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"Puni se još <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g>"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Vreme na ekranu"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Vreme u pozadini"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Nizak nivo baterije"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Dozvolite aplikaciji da se pokreće u pozadini"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Želite li da ograničite aktivnosti u pozadini?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Ako ograničite aktivnosti aplikacije u pozadini, možda će se ponašati neočekivano."</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Apl. nije podešena za optimizaciju baterije, pa ne možete da je ograničite. \n\nZa ogr. apl. uključite optimizaciju baterije."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Upravljajte potrošnjom baterije"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Dozvoli korišćenje u pozadini"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Omogućite za ažuriranja u realnom vremenu, onemogućite da biste uštedeli bateriju"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Neograničeno"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Optimizovano"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Ograničeno"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"od poslednjeg potpunog punjenja"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Sistemske aplikacije"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Deinstalirane aplikacije"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Drugo"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Procenjeno preostalo vreme"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Do potpunog punjenja"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Ukupno: manje od minut"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Pozadina: manje od minut"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Vreme ispred ekrana: manje od minuta"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Manje od minuta"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Ukupno: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Pozadina: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Vreme ispred ekrana: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Mobilni podaci i WiFi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Autom. sinhron. lične podatke"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Autom. sinhr. podatke za posao"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Sinhronizuj privatne podatke"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Promena ciklusa..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Dan u mesecu kada se ponovo postavlja ciklus potrošnje podataka:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"U ovom periodu aplikacije nisu koristile podatke."</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"veličina teksta, velika slova, velik font, velik tekst, slabovidost, povećanje teksta, uvećavanje fonta, povećanje fonta"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"zvek uključen ambijentalni prikaz, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, oznaka, čitač"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"tastatura, haptika, vibracija,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Jačina zvuka, vibracija, Ne uznemiravaj"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Jačina zvuka medija"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Jačina zvuka za prebacivanje"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Prikaži sav sadržaj obaveštenja"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Prikaži osetljiv sadržaj samo kada je otključan"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Ne prikazuj uopšte obaveštenja"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Kako želite da se prikazuje sadržaj na zaključanom ekranu?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Zaključan ekran"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Prikazuj sav sadržaj obaveštenja o poslovnom profilu"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Sakrij osetljiv sadržaj poslovnog profila"</string>
@@ -3354,6 +3448,17 @@
     <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="6121016426991791557">"Mirovanje za obaveštenja"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Primeni mirovanje na sva obaveštenja"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Postepeno smanjuje jačinu zvuka obaveštenja kada dobijete mnogo uzastopnih obaveštenja iz iste aplikacije"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Primeni mirovanje na sve konverzacije"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Postepeno smanjuje jačinu zvuka obaveštenja kada dobijete mnogo poruka iz istog ćaskanja u kratkom periodu"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Ne koristi mirovanje za obaveštenja"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Nikada ne smanjuje jačinu zvuka obaveštenja, bez obzira na broj uzastopnih poruka iz iste aplikacije"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Vibriraj kada je ekran otključan"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Vibrira samo kada je ekran otključan"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Primeni na poslovne profile"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Primenjuje podešavanja mirovanja za obaveštenja sa ličnog profila na poslovni profil"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Usluge pomagača za virtuelnu realnost"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Nijedna instalirana aplikacija nije zahtevala da se pokrene kao usluga pomagača za virtuelnu realnost."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Dozvoljavate pristup usluzi virtuelne realnosti za <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Dozvoli pristup za upravljanje svim datotekama"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Dozvolite da ova aplikacija čita, menja i briše sve datoteke na ovom uređaju ili svim povezanim uređajima za skladištenje. Ako to dozvolite, aplikacija može da pristupa datotekama bez vašeg znanja."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Može da pristupa svim datotekama"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Aplikacije sa aktivacijom glasom"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Dozvoli aktivaciju glasom"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Glasovna aktivacija uključuje odobrene aplikacije hendsfri pomoću glasovne komande. Ugrađeno prilagodljivo otkrivanje garantuje da će vaši podaci ostati privatni.\n\n"<a href="">"Još o zaštićenom prilagodljivom otkrivanju"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Obaveštenja preko celog ekrana"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Dozvolite obaveštenja preko celog ekrana od ove aplikacije"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Dozvolite ovoj aplikaciji da prikazuje obaveštenja preko celog ekrana kada je uređaj zaključan. Aplikacije mogu da ih koriste radi isticanja alarma, dolaznih poziva ili drugih hitnih obaveštenja."</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> koristi više baterije nego obično dok je u pozadini"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> koristi više energije dok je u prvom planu"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> koristi više energije nego obično dok je u prvom planu"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Velika potrošnja baterije"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Velika potrošnja baterije u pozadini"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Velika potrošnja baterije u prvom planu"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"navigacija kroz sistem, navigacija pomoću 2 dugmeta, navigacija pomoću 3 dugmeta, navigacija pomoću pokreta, prevlačenje"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Digitalni pomoćnik"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Prevucite da biste pokrenuli pomoćnik"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Prevucite nagore iz nekog od donjih ulova da biste pokrenuli aplikaciju digitalnog pomoćnika."</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Prevucite nagore iz nekog od donjih ulova da biste pokrenuli aplikaciju digitalnog pomoćnika"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Za pokretanje Pomoćnika zadržite dugme za početni ekran"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Pritisnite i zadržite dugme za početni ekran da biste pokrenuli aplikaciju digitalnog pomoćnika."</string>
     <string name="low_label" msgid="6525629096999711220">"Niska"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"podaci, pristupni kôd, lozinka"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"automatski, popunjavanje, automatsko popunjavanje, podaci, pristupni ključ, lozinka"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Uverite se da je ova aplikacija pouzdana&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google automatsko popunjavanje&gt;%1$s&lt;/xliff:g&gt; koristi sadržaj ekrana za utvrđivanje podataka koji mogu automatski da se popune."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Koristićete aplikaciju &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; koristi ono što je na ekranu radi određivanja šta može automatski da se popuni. Nove lozinke, pristupni kodovi i drugi podaci će se od sada čuvati ovde."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Koristite &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Nove lozinke, pristupni ključevi i drugi podaci će se od sada čuvati ovde. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; može da koristi ono što je na ekranu radi određivanja šta može automatski da se popuni."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Usluge za lozinke, pristupne kodove i podatke"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Želite da isključite: %1$s?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Želite da isključite ovu uslugu?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Sačuvane informacije kao što su lozinke, pristupni ključevi, načini plaćanja i drugi podaci se neće popunjavati kada ste prijavljeni. Da biste koristili sačuvane informacije, odaberite uslugu za lozinke, pristupne ključeve ili podatke."</string>
@@ -4227,7 +4337,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">"Eksperimentalno: Omogući ANGLE"</string>
-    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Upozorenje: Omogućite ANGLE kao podrazumevani OpenGL ES upravljački program. Ova funkcija je u eksperimentalnoj fazi i možda nije kompatibilna sa nekim aplikacijama za kameru i video snimke."</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Upozorenje: Omogućava ANGLE kao podrazumevani OpenGL ES upravljački program. Ova funkcija je u eksperimentalnoj fazi i možda nije kompatibilna sa nekim aplikacijama za kameru i video snimke."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"Morate da restartujete da biste promenili OpenGL ES upravljački program sistema"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Promene kompatibilnosti aplikacije"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Uključite/isključite promene kompatibilnosti aplikacije"</string>
@@ -4784,12 +4894,12 @@
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Aplikacije instalirane u poslednjih mesec dana}one{Aplikacije instalirane u poslednjih # meseci}few{Aplikacije instalirane u poslednja # meseca}other{Aplikacije instalirane u poslednjih # meseci}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Aplikacije koje su instalirane pre više od # meseca}one{Aplikacije koje su instalirane pre više od # meseca}few{Aplikacije koje su instalirane pre više od # meseca}other{Aplikacije koje su instalirane pre više od # meseci}}"</string>
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Razmera"</string>
-    <string name="aspect_ratio_summary" msgid="4056406351663726494">"Isprobajte novu razmeru da biste pregledali sadržaj ove aplikacije ako nije dizajnirana da staje na uređaj <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Isprobajte novu razmeru da biste pregledali sadržaj ove aplikacije ako nije dizajnirana da staje na uređaj <xliff:g id="DEVICE_NAME">%1$s</xliff:g> Neke aplikacije možda neće biti optimizovane za određene razmere."</string>
-    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Isprobajte novu razmeru da biste pregledali sadržaj ove aplikacije ako nije dizajnirana da staje na uređaj <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Isprobajte novu razmeru da biste pregledali sadržaj ove aplikacije ako nije dizajnirana da staje na uređaj <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Neke aplikacije možda neće biti optimizovane za određene razmere."</string>
+    <string name="aspect_ratio_summary" msgid="4056406351663726494">"Isprobajte novu razmeru da biste pregledali sadržaj ove aplikacije ako nije dizajnirana da staje na: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Isprobajte novu razmeru da biste pregledali sadržaj ove aplikacije ako nije dizajnirana da staje na: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Neke aplikacije možda neće biti optimizovane za određene razmere."</string>
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Isprobajte novu razmeru da biste pregledali sadržaj ove aplikacije ako nije dizajnirana da staje na: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Isprobajte novu razmeru da biste pregledali sadržaj ove aplikacije ako nije dizajnirana da staje na: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Neke aplikacije možda neće biti optimizovane za određene razmere."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Predložene aplikacije"</string>
-    <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Izmenjene apl."</string>
+    <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Izmenjene aplikacije"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Podrazumevana za aplikacije"</string>
     <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Ceo ekran"</string>
     <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Na pola ekrana"</string>
@@ -4857,4 +4967,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Provera radi otkrivanja obmanjujućih aplikacija"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Proverite aktivnosti u aplikacijama radi otkrivanja „pecanja“"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Koristi skeniranje za obmanjujuće aplikacije"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Koristi skeniranje za obmanjujuće aplikacije za posao"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-be/arrays.xml b/res/values-be/arrays.xml
index e26b403..bab8e6d 100644
--- a/res/values-be/arrays.xml
+++ b/res/values-be/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Праз 1 хвіліну"</item>
     <item msgid="1574040255478150028">"Праз 5 хвілін"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 915b538..d0ad37a 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Адключыць Bluetooth LE Audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Адключае функцыю Bluetooth LE audio, калі прылада падтрымлівае апаратнае забеспячэнне LE audio."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Паказ пераключальніка LE audio у Звестках пра прыладу"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Уключыць белы спіс Bluetooth LE Audio"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Уключыць функцыю белага спіса Bluetooth LE Audio."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Абыходзіць белы спіс Bluetooth LE Audio"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Выкарыстоўваць LE Audio стандартна, нават калі перыферыйная прылада LE Audio не адпавядае крытэрыям белага спіса."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Носьбіты даных"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Выклікаць прылады"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Іншыя прылады"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Захаваныя прылады"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Звязана з уліковым запісам"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Раней выкарыстоўваліся з уліковым запісам"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth уключыцца, каб выканаць спалучэнне"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Параметры падключэння"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Раней падключаныя"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Увод тэксту ў тэкставыя палі"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Ігнараваць націсканні кнопак стілусам"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Стылус"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Абагульванне аўдыя"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Абагульваць аўдыя"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Выклікі і будзільнікі"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Дата і час"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Проксі-сервер"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Ачысціць"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Ідзе загрузка…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Праграмы з дазволам на доступ да прылад паблізу могуць вызначаць прыблізнае месцазнаходжанне падключаных прылад."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Для праграм і сэрвісаў доступ да геаданых выключаны. Інфармацыя пра месцазнаходжанне вашай прылады можа адпраўляцца экстранным службам, калі вы робіце выклік на іх нумар ці адпраўляеце ім SMS."</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Даведацца больш пра налады месцазнаходжання"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Уліковыя запісы"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Бяспека"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Шыфраванне і ўліковыя даныя"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Працоўны профіль"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Прыватная вобласць"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Праграмы можна хаваць у прыватнай папцы"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Атрымліваць доступ з дапамогай сродку разблакіроўкі экрана"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Паказаць прыватную вобласць"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Хаваць, калі доступ заблакіраваны"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Хаваць прыватную вобласць, калі доступ да яе заблакіраваны"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Прыватную вобласць можна не паказваць у спісе праграм"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Доступ да прыватнай вобласці, калі яна схавана"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"У радку пошуку набярыце \"Прыватная вобласць\""</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Націсніце на плітку \"Прыватная вобласць\""</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Разблакіраваць прыватную вобласць"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Выключана"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Уключана"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Сістэма"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Стварыць прыватную вобласць"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Выдаліць прыватную вобласць"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Прыватная вобласць створана"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Прыватная вобласць ужо існуе"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Не ўдалося стварыць прыватную вобласць"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Прыватная вобласць выдалена"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Не ўдалося выдаліць прыватную вобласць"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Наладзьце блакіроўку экрана"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Каб выкарыстоўваць прыватную вобласць, на прыладзе неабходна наладзіць блакіроўку экрана."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Наладзіць блакіроўку экрана"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Скасаваць"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Скасаваць"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Наладзіць"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Наладжванне прыватнай вобласці"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Калі вы хочаце, каб некаторыя праграмы былі прыватнымі, схавайце іх, дадаўшы ў прыватную вобласць, да якой маеце доступ толькі вы"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Як гэта працуе"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Вы можаце атрымаць доступ да прыватнай вобласці ў ніжняй частцы спіса праграм"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Доступ да праграм у прыватнай вобласці можна заблакіраваць"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Калі доступ да прыватнай вобласці заблакіраваны, апавяшчэнні з дададзеных у яе праграм не паказваюцца"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Калі доступ да прыватнай вобласці заблакіраваны, праграмы з яе не паказваюцца ў менеджары дазволаў і на панэлі кіравання доступам, а таксама ў іншых наладах"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Наладжваецца прыватная вобласць…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Прыватную вобласць можна заблакіраваць"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Звесткі аб выкарыстанні прыватнай вобласці схаваны, калі яна заблакіравана"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Уваходзьце ў прыватную вобласць са спіса праграм"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Не ўдаецца наладзіць прыватную вобласць"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Паўтарыце спробу зараз або вярніцеся пазней"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Паўтарыць спробу"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Ужываць блакіроўку экрана для разблакіроўкі?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Прыватную вобласць можна разблакіраваць тым жа спосабам, што і пры блакіроўцы прылады, або выбраць іншы спосаб блакіроўкі"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Выкарыстоўваць блакіроўку экрана"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Выбраць новы спосаб блакіроўкі"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Гатова!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Каб увайсці ў прыватную вобласць, правядзіце знізу галоўнага экрана ўверх, а потым прагартайце ўніз"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Гатова"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Каб увайсці ў прыватную вобласць, прагартайце ўніз"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Увайдзіце ва ўліковы запіс, каб наладзіць прыватную вобласць"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Вы можаце дадаць да <xliff:g id="COUNT">%d</xliff:g> адбіткаў пальца"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Вы дадалі максімальную колькасць адбіткаў пальцаў"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Немагчыма дадаць больш адбіткаў пальцаў"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Падключыцца"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Адключыць"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Спалучыць і падключыць"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Калі Bluetooth уключаны, ваша прылада можа звязвацца з іншымі прыладамі з Bluetooth, якія знаходзяцца побач."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Калі Bluetooth уключаны, прылада можа абменьвацца данымі з іншымі прыладамі з Bluetooth, якія знаходзяцца паблізу.\n\nПраграмы і сэрвісы будуць шукаць прылады паблізу, нават калі Bluetooth выключаны. Гэту функцыю можна выкарыстоўваць для паляпшэння працы прылады, напрыклад для больш дакладнага вызначэння месцазнаходжання. Вы можаце змяніць яе ў наладах пошуку Bluetooth."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Змяніць"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Звесткі пра прыладу"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Дазволіць ART спраўдзіць байт-код праграм з магчымасцю адладкі"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Паказваць хуткасць абнаўлення"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Паказваць цяперашнюю хуткасць абнаўлення дысплэя"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Паказваць суадносіны HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Паказваць бягучыя суадносіны HDR/SDR"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Патрабаваць разблакіроўку прылады для NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Працягваць выкарыстоўваць праграмы, калі прылада складзена"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Плаўны паказ"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Аўтаматычна павялічвае частату абнаўлення пэўнага змесціва з 60 да <xliff:g id="ID_1">%1$s</xliff:g> Гц. Павышае выкарыстанне зараду акумулятара."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Аўтаматычна павялічвае частату абнаўлення пэўнага змесціва да <xliff:g id="ID_1">%1$d</xliff:g> Гц. Павышае выкарыстанне зараду акумулятара."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Прымусовая пікавая частата абнаўлення"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Найвышэйшая частата абнаўлення для лепшага рэагавання на дотыкі і вышэйшай якасці анімацыі. Павышае выкарыстанне зараду акумулятара."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Адаптыўны рэжым"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Супольныя налады"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Змяніць пункт доступу"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Дадаванне пункта доступу"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Не зададзена"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Не зададзена"</string>
     <string name="apn_name" msgid="6677695784108157953">"Назва"</string>
@@ -1320,6 +1397,8 @@
     <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="network_type" msgid="748590707422733595">"Тып сеткі"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Не ўказана"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Тып MVNO"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"Значэнне MVNO"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Выдаліць APN"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Адкрывайце кнопкай спецыяльных магчымасцей"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Каб адкрыць, утрымлівайце клавішы гучнасці"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Каб адкрыць, тройчы націсніце на экран"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Каб адкрыць, тройчы націсніце на экран двума пальцамі"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Адкрывайце жэстам"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Скарыстаць жэст спецыяльных магчымасцей"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Каб скарыстаць гэту функцыю, націсніце кнопку спецыяльных магчымасцей <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> унізе экрана.\n\nКаб пераключыцца на іншую функцыю, утрымлівайце кнопку спецыяльных магчымасцей націснутай."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Каб выкарыстоўваць гэту функцыю, націсніце на экране кнопку спецыяльных магчымасцей."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Каб скарыстаць гэту функцыю, націсніце і ўтрымлівайце абедзве клавішы гучнасці."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Каб запусціць і спыніць функцыю павелічэння, тройчы націсніце ў любым месцы экрана."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Каб запусціць і спыніць функцыю павелічэння, тройчы націсніце ў любым месцы экрана двума пальцамі."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Каб скарыстаць гэту функцыю, правядзіце па экране двума пальцамі знізу ўверх.\n\nКаб пераключыцца на іншую функцыю, правядзіце двума пальцамі ўверх і ўтрымлівайце іх на экране."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Каб скарыстаць гэту функцыю, правядзіце па экране трыма пальцамі знізу ўверх.\n\nКаб пераключыцца на іншую функцыю, правядзіце трыма пальцамі ўверх і ўтрымлівайце іх на экране."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Каб скарыстаць спецыяльную магчымасць, правядзіце па экране двума пальцамі знізу ўверх.\n\nКаб пераключыцца на іншую функцыю, правядзіце двума пальцамі ўверх і ўтрымлівайце іх на экране."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Утрымліваць клавішы гучнасці націснутымі"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"утрыманне клавіш гучнасці націснутымі"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Націсніце і ўтрымлівайце абедзве клавішы гучнасці"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"Тройчы націсніце на экран двума пальцамі"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"тройчы націсніце на экран двума пальцамі"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"Хутка націсніце на экран {0,number,integer} разы двума пальцамі"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Тройчы націснуць на экран"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"трайное націсканне на экран"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Хутка націсніце на экран некалькі разоў ({0,number,integer}). Выкарыстанне гэтай каманды можа запаволіць працу прылады"</string>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Выкарыстоўваць вібрацыю і тактыльны водгук"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Вібрацыя падчас сігналаў"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Вібрацыя ў час прайгравання мультымедыя"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Вібрацыя клавіятуры"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Вібрацыя пры выкліку"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Вібрацыя пры апавяшчэнні"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Вібрацыя тактыльнага водгуку"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"Застаецца <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"Да поўнай зарадкі засталося <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g>"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Час выкарыстання"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Час у фонавым рэжыме"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Нізкі зарад акумулятара"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Дазволіць праграме працаваць у фонавым рэжыме"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Абмежаваць фонавую дзейнасць?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Абмежаванне фонавай дзейнасці праграмы можа прывесці да збояў"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Паколькі ў гэтай праграме не наладжана аптымізацыя выкарыстання зараду акумулятара, вы не можаце абмежаваць яе працу. \n\n Для гэтага спачатку  ўключыце аптымізацыю акумулятара."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Кіраваць выкарыстаннем зараду"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Дазволіць фонавае выкарыстанне"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Уключыце, каб атрымліваць абнаўленні ў рэальным часе, выключыце для эканоміі зараду акумулятара"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Без абмежаванняў"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Аптымізавана"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"З абмежаваннямі"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"з апошняй поўнай зарадкі"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Сістэмныя праграмы"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Выдаленыя праграмы"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Іншае"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Прыблзіны час, які застаўся"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Да поўнай зарадкі"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Усяго: менш адной хвіліны"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"У фонавым рэжыме: менш адной хвіліны"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Час карыстання прыладай: менш за хвіліну"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Менш за хвіліну"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Усяго: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"У фонавым рэжыме: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Час карыстання прыладай: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Мабільная перадача даных і Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Аўтам. сінхран. асабіст. даных"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Аўтасінхранізацыя прац. даных"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Аўтасінхраніз. прыватных даных"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Змяніць цыкл..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Дзень месяца для скіду цыкла выкарыстання дадзеных"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Зараз ніякія прыкладаннi не выкарыстоўваюць дадзеныя."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"памер тэксту, вялікі шрыфт, буйны шрыфт, павялічаны тэкст, слабы зрок, павялічыць тэкст, праграма для павелічэння шрыфту, павелічэнне шрыфту"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"заўсёды ўключаная экранная застаўка"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, цэтлік, тэрмінал"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"клавіятура, тактыльны водгук, вібрыраваць,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Гучнасць, вібрацыя, рэжым \"Не турбаваць\""</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Гучнасць медыя"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Гучнасць трансляцыі"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Паказваць усе апавяшчэнні"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Паказваць канфідэнцыяльныя даныя толькі пасля разблакіроўкі"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Не паказваць апавяшчэнні"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Якім чынам будзе паказвацца экран блакіроўкі?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Экран блакіроўкі"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Паказваць усё змесціва ў працоўных апавяшчэннях"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Схаваць канфідэнцыяльныя працоўныя даныя"</string>
@@ -3354,6 +3449,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Гэта праграма не падтрымлівае пашыраныя налады"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Дадатковыя налады"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Іншыя налады даступныя ўнутры гэтай праграмы"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Зніжэнне гучнасці апавяшчэнняў"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Зніжаць гучнасць усіх апавяшчэнняў"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Паступова змяншаць гучнасць апавяшчэнняў, калі прыходзіць вялікая колькасць апавяшчэнняў падрад ад адной праграмы"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Зніжаць гучнасць размоў"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Паступова змяншаць гучнасць апавяшчэнняў пры атрыманні вялікай колькасці паслядоўных паведамленняў з аднаго чата за кароткі перыяд часу"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Не зніжаць гучнасць апавяшчэнняў"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Ніколі не зніжаць гучнасць апавяшчэнняў, незалежна ад колькасці паслядоўных апавяшчэнняў ад адной праграмы"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Вібрацыя пры разблакіроўцы"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Вібрыраваць, толькі калі экран разблакіраваны"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Прымяніць да працоўных профіляў"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Зніжаць гучнасць апавяшчэнняў у працоўным профілі ў адпаведнасці з наладамі асабістага"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Дапаможныя VR-сэрвісы"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Усталяваныя праграмы не запытвалі выканання ў якасці дапаможных VR-сэрвісаў."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Дазволіць сэрвісу віртуальнай рэальнасці (VR) доступ да <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Дазволіць доступ да кіравання ўсімі файламі"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Дазвольце гэтай праграме чытаць, змяняць і выдаляць усе файлы на гэтай прыладзе ці ў падключаных сховішчах. З такім дазволам праграма зможа атрымліваць доступ да файлаў без вашага ведама."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Магчымы доступ да ўсіх файлаў"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Праграмы з галасавой актывацыяй"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Дазволіць галасавую актывацыю"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Дзякуючы функцыі галасавой актывацыі ўхваленыя праграмы можна ўключаць з дапамогай галасавога кіравання, выкарыстоўваючы каманды. Прымяненне ўбудаванай адаптыўнай сістэмы распазнавання дазваляе захаваць прыватнасць вашых даных.\n\n"<a href="">"Падрабязней пра абароненую адаптыўную сістэму распазнавання"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Поўнаэкранныя апавяшчэнні"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Дазволіць поўнаэкранныя апавяшчэнні ад гэтай праграмы"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Гэта праграма зможа паказваць поўнаэкранныя апавяшчэнні, калі прылада заблакіравана. Дзякуючы гэтаму дазволу праграмы могуць паказваць сігналы будзільнікаў, уваходныя выклікі і іншыя тэрміновыя апавяшчэнні."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"Праграма \"<xliff:g id="APP_LABEL">%1$s</xliff:g>\" выкарыстала ў фонавым рэжыме больш зараду акумулятара, чым звычайна"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"Праграма \"<xliff:g id="APP_LABEL">%1$s</xliff:g>\" выкарыстала больш зараду акумулятара ў актыўным рэжыме"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"Праграма \"<xliff:g id="APP_LABEL">%1$s</xliff:g>\" выкарыстала ў актыўным рэжыме больш зараду акумулятара, чым звычайна"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Высокае выкарыстанне зараду"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Высокае выкарыстанне зараду ў фонавым рэжыме"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Высокае выкарыстанне зараду ў актыўным рэжыме"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"сістэмная навігацыя, 2-кнопачная навігацыя, 3-кнопачная навігацыя, навігацыя жэстамі, прагартаць"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Лічбавы памочнік"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Выклік памочніка з дапамогай жэстаў"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Каб выклікаць лічбавага памочніка, правядзіце пальцам уверх з ніжняга вугла"</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Для выкліку Памочніка ўтрымлівайце кнопку галоўнага экрана"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Націсніце і ўтрымлівайце кнопку галоўнага экрана, каб выклікаць праграму \"Лічбавы памочнік\"."</string>
     <string name="low_label" msgid="6525629096999711220">"Нізкая"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"даныя, ключ доступу, пароль"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"аўта, запаўненне, аўтазапаўненне, даныя, ключ доступу, пароль"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Упэўніцеся, што давяраеце гэтай праграме&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Аўтазапаўненне Google&gt;%1$s&lt;/xliff:g&gt; выкарыстоўвае тое, што знаходзіцца на вашым экране, каб вызначыць, што можна запоўніць аўтаматычна."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&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_autofill_confirmation_message" msgid="843829628024668466">"&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_picker_title" msgid="8191267620665129205">"Сэрвісы для захоўвання пароляў, ключоў доступу і даных"</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>
@@ -4226,10 +4338,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <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="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>
@@ -4789,10 +4899,8 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Суадносіны бакоў"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"Калі гэта праграма не аптымізавана для вашай прылады (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>), выберыце іншыя суадносіны бакоў"</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Калі гэта праграма не аптымізавана для вашай прылады (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>), выберыце іншыя суадносіны бакоў. Для некаторых праграм пэўныя суадносіны бакоў могуць не падыходзіць."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Калі нейкая праграма не аптымізавана для вашай прылады (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>), выберыце іншыя суадносіны бакоў"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Калі нейкая праграма не аптымізавана для вашай прылады (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>), выберыце іншыя суадносіны бакоў. Для некаторых праграм пэўныя суадносіны бакоў могуць не падыходзіць."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Прапанаваныя праграмы"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Змененыя"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Стандартнае значэнне для праграмы"</string>
@@ -4806,10 +4914,10 @@
     <string name="app_aspect_ratio_footer" msgid="4029509301182067475">"Калі вы зменіце суадносіны бакоў, праграма перазапусціцца. Незахаваныя змяненні могуць быць страчаны. Для некаторых праграм пэўныя суадносіны бакоў могуць не падыходзіць."</string>
     <string name="aspect_ratio_experimental_title" msgid="9088785421062044831">"Суадносіны бакоў (эксперыментальная функцыя)"</string>
     <string name="aspect_ratio_experiment_title" msgid="128614319422121040">"Суадносіны бакоў (эксперымент)"</string>
-    <string name="aspect_ratio_labs_title" msgid="6733893837442759383">"Суадносіны бакоў (Лабараторыя)"</string>
+    <string name="aspect_ratio_labs_title" msgid="6733893837442759383">"Суадносіны бакоў (эксперыментальныя функцыі)"</string>
     <string name="aspect_ratio_experimental_label" msgid="6319009297672567578">"Эксперыментальная функцыя"</string>
     <string name="aspect_ratio_experiment_label" msgid="7861871612376167784">"Эксперымент"</string>
-    <string name="aspect_ratio_labs_label" msgid="7008498116297651342">"Лабараторыя"</string>
+    <string name="aspect_ratio_labs_label" msgid="7008498116297651342">"Эксперыментальныя функцыі"</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Сканер адбіткаў пальцаў"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Флэш-апавяшчэнні"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"Пра флэш-апавяшчэнні"</string>
@@ -4862,4 +4970,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Сканіраванне на наяўнасць падманных праграм"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Правяраць дзеянні ў праграме на фішынг"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Выкарыстоўваць сканіраванне для выяўлення падманных праграм"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Выкарыстоўваць сканіраванне для выяўлення падманных праграм, прызначаных для працы"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-bg/arrays.xml b/res/values-bg/arrays.xml
index f2f9d44..f951171 100644
--- a/res/values-bg/arrays.xml
+++ b/res/values-bg/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"След 1 минута"</item>
     <item msgid="1574040255478150028">"След 5 минути"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index b14c369..b4d9bd3 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Деактивиране на Bluetooth LE Audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Деактивира Bluetooth LE Audio, ако устройството поддържа хардуер с възможност за LE Audio."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Показване на превключват. за LE Audio в подробн. за у-вото"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Активиране на списъка с разрешени устройства за Bluetooth LE Audio"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Служи за активиране на функцията за списък с разрешени устройства за Bluetooth LE Audio."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Заобикаляне на списъка на разрешените устройства с Bluetooth LE Audio"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Използване на LE Audio по подразбиране дори ако не е потвърдено, че периферното устройство с LE Audio отговаря на критериите на списъка на разрешените устройства."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Мултимедийни устройства"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Устройства за обаждания"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Други устройства"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Запазени устройства"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Асоциирано с профила"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Използвано по-рано с профил"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth ще се включи с цел сдвояване"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Предпочитания за свързването"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"По-рано свързвани"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Ръкописно въвеждане в текстовите полета"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Игнориране на натисканията на бутони с писалката"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Писалка"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Споделяне на аудио"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Споделяне на аудио"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Обаждания и будилници"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Дата и час"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Прокси сървър"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Изчистване"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Зарежда се…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Приложенията с разрешението за устройства в близост могат да определят относителната позиция на свързаните устройства."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Достъпът до местоположението е изключен за приложенията и услугите. Местоположението на устройството ви пак може да се изпраща до органите за бързо реагиране, когато се обадите на номер за спешни случаи или изпратите SMS до такъв."</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Научете повече за настройките за местоположението"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Профили"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Сигурност"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Шифроване и идентификационни данни"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Служебен потребителски профил"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Лично пространство"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Скриване на приложенията в лична папка"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Отключване с опцията за заключване на екрана"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Показване на личното пространство"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Скриване, когато е заключено"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Скриване на личното пространство, когато е заключено"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"За да бъде тайно личното пространство на у-вото ви, можете да го скриете от списъка с приложения"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Достъп до личното пространство, когато е скрито"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Потърсете „лично пространство“ в лентата за търсене"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Докоснете панела за личното пространство"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Отключване на личното ви пространство"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Изкл."</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Вкл."</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Система"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Създаване на лично пространство"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Изтриване на личното пространство"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Личното пространство бе създадено успешно"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Личното пространство вече съществува"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Създаването на личното пространство не бе успешно"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Личното пространство бе изтрито успешно"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Изтриването на личното пространство не бе успешно"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Настройте заключване на екрана"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"За да ползвате личното пространство, настройте заключване на екрана."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Настройване на закл. на екрана"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Отказ"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Отказ"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Настройване"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Настройване на личното пространство"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Скрийте частните приложения в сигурна среда, до която само вие имате достъп"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Начин на работа"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Можете да осъществите достъп до личното пространство от долната част на списъка с приложения"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Приложенията в личното пространство са защитени чрез опция за заключване"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Известията от приложенията в личното пространство са скрити, когато то е заключено"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Когато личното пространство е заключено, приложенията в него няма да се показват в мениджъра на разрешенията, таблото за управление на поверителността и други настройки"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Личното пространство се настройва…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Личното пространство е защитено чрез опция за заключване"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Информацията за използването на приложенията в личното пространство е скрита, когато то е заключено"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Достъп до личното пространство от списъка ви с приложения"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Настройването на личното пространство не бе успешно"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Опитайте отново сега или се върнете по-късно"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Нов опит"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Да се отключва ли чрез опцията за закл. на екрана?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Можете да отключвате личното пространство по същия начин, по който отключвате устройството си, или да изберете друга опция за заключване"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Използване на опцията за заключване на екрана"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Избиране на нова опция за заключване"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Готово!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"За достъп до личното пространство прекарайте пръст нагоре от долната част на началния екран, след което превъртете надолу"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Готово"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Превъртете надолу за достъп до личното пространство"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Влезте в профила си, за да настроите личното пространство"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Можете да добавите до <xliff:g id="COUNT">%d</xliff:g> отпечатъка"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Добавихте максималния брой отпечатъци"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Не могат да се добавят още отпечатъци"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Свързване"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Изключване"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Сдвояване и свързване"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"При включен Bluetooth устройството ви може да се свързва с други устройства с Bluetooth в района."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Когато включите Bluetooth, устройството ви може да се свързва с други устройства с Bluetooth в близост.\n\nС цел подобряване на практическата работа с устройството приложенията и услугите пак могат да сканират за устройства в близост по всяко време дори когато функцията за Bluetooth e изключена. Това може да послужи например за подобряване на базиращите се на местоположението функции и услуги. Можете да промените това от настройките за сканиране през Bluetooth."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Промяна"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Подробности за устройството"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Разрешаване на ART да потвърждава байткода за приложенията с възможност за отстраняване на грешки"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Честота на опресняване"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Показва текущата честота на опресняване на екрана"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Показване на съотношението HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Показване на текущото съотношение HDR/SDR"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Изискване за отключване на устройството за NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Продължаване на използването на приложенията при сгъване"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Плавно показване"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Автоматично увеличава честотата на опресняване от 60 на <xliff:g id="ID_1">%1$s</xliff:g> Hz за част от съдържанието. По-интензивно използване на батерията."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Автоматично увеличава честотата на опресняване до <xliff:g id="ID_1">%1$d</xliff:g> Hz за част от съдържанието. По-интензивно използване на батерията."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Принудителна най-висока честота на опресняване"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Най-висока честота на опресняване за по-добро реагиране при докосване и качество на анимациите. По-интензивно използване на батерията."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Внимание към екрана"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Общи настройки"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Редакт. на точка за достъп"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Добавяне на точка за достъп"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Не е зададено"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Не е зададено"</string>
     <string name="apn_name" msgid="6677695784108157953">"Име"</string>
@@ -1320,6 +1397,8 @@
     <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="network_type" msgid="748590707422733595">"Тип мрежа"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Непосочено"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Тип MVNO"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"Стойност на MVNO"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Изтриване на името на точката за достъп (APN)"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Отваряне с бутона за достъпност"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"За отваряне натиснете и задръжте бутоните за силата на звука"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Трикратно докосване на екрана с цел отваряне"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Отваряне с трикратно докосване на екрана с два пръста"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Отваряне с жест"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Използване на жеста за достъпност"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"За да използвате тази функция, докоснете бутона за достъпност <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> в долната част на екрана.\n\nДокоснете и задръжте този бутон и за превключване между функциите."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"За да използвате тази функция, докоснете бутона за достъпност на екрана."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"За да използвате тази функция, натиснете и задръжте двата бутона за силата на звука."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"За стартиране и спиране на увеличението докоснете три пъти където и да е на екрана."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"За стартиране и спиране на увеличението докоснете три пъти с два пръста където и да е на екрана."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"За да използвате тази функция, прекарайте два пръста нагоре от долната част на екрана.\n\nЗа превключване между функциите прекарайте два пръста нагоре и задръжте."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"За да използвате тази функция, прекарайте три пръста нагоре от долната част на екрана.\n\nЗа превключване между функциите прекарайте три пръста нагоре и задръжте."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"За да използвате функцията за достъпност, прекарайте два пръста нагоре от долната част на екрана.\n\nЗа превключване между функциите прекарайте два пръста нагоре и задръжте."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Задържане на бутоните за силата на звука"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"задържане на бутоните за силата на звука"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Натиснете и задръжте двата бутона за силата на звука"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"Трикратно докосване на екрана с два пръста"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"трикратно докосване на екрана с два пръста"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"Бързо докоснете екрана {0,number,integer} пъти с два пръста"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Трикратно докосване на екрана"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"трикратно докосване на екрана"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Бързо докоснете екрана {0,number,integer} пъти. Този пряк път може да забави работата на устройството ви."</string>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Използване на вибриране и осезателна обратна връзка"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Вибриране за будилници"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Вибриране за мултимедия"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Вибриране при използване на клавиатурата"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Вибриране при звънене"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Вибриране при известия"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Обратна връзка при докосване"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"Остава: <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> до зареждане"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Време на ползване"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Време на заден план"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Изтощена батерия"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Разрешаване приложението да се изпълнява на заден план"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Да се ограничи ли активността на заден план?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Ако ограничите активността на заден за дадено приложение, то може да не функционира правилно"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Тъй като прил. не е зададено да оптимизира батерията, можете да го ограничите.\n\nЗа тази цел първо включете оптим. на батерията."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Управление на използването на батерията"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Разрешаване на използването на заден план"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Активиране за актуализации в реално време, деактивиране с цел пестене на батерията"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Неограничено"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Оптимизирано"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Ограничено"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"от последното пълно зареждане"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Системни приложения"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Деинсталирани приложения"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Други"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Приблизително оставащо време"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"До пълно зареждане"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Общо: По-малко от една минута"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"На заден план: По-малко от една минута"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Време на ползване: по-малко от минута"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"По-малко от минута"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Общо: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"На заден план: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Време на ползване: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Мобилни данни и Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Авт. синхрон. на лични данни"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Авт. синхрон. на служебни данни"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Авт. синхр. на частните данни"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Промяна на цикъла…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Ден от месец за възстанов. на цикъла за използване на данни:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Приложенията не са ползвали данни в този период."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"размер на текста, едър шрифт, голям шрифт, големи знаци, слабо зрение, уголемяване на знаците, инструмент за уголемяване на шрифта, уголемяване на шрифта"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"винаги включен фонов дисплей, дисплей, открояващ важни неща"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, маркер, четец"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"клавиатура, осезателна обратна връзка, вибриране,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Сила на звука, вибриране, „Не безпокойте“"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Сила на звука за мултимедия"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Сила на звука при предаване"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Показв. на цялото съдържание от известията"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Показв. на деликатно съдърж. само при откл. екран"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Да не се показват известията"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Как искате да се показват известията на заключения екран?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Заключен екран"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Показване на цялото съдържание на служ. известия"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Скриване на поверителното служебно съдържание"</string>
@@ -3354,6 +3449,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Това приложение не поддържа подобрените настройки"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Още настройки"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Още настройки са налице в приложението"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Изчакване за известията"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Прилагане на изчакване за всички известия"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Постепенно намаляване на силата на звука за известията при получаване на множество последователни известия от едно приложение"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Прилагане на изчакване за разговорите"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Постепенно намаляване на силата на звука за известията при получаване на множество съобщения в един чат за кратък период от време"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Да не се използва изчакване за известията"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Силата на звука за известията не се намалява, независимо от това колко последователни известия са получени от едно приложение"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Вибриране, когато е отключен"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Вибриране само когато екранът е отключен"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Прилагане към служебните потребителски профили"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Прилагане на личните настройки за изчакване за известията към служебния потребителски профил"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Помощни услуги за VR"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Никое инсталирано приложение не е заявило да се изпълнява като помощна услуга за VR."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Искате ли <xliff:g id="SERVICE">%1$s</xliff:g> да има достъп като услуга за VR?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Разрешаване на достъп за управл. на всички файлове"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Разрешете на това приложение да чете, променя и изтрива всички файлове на устройството или обемите на свързаните хранилища. Ако то получи разрешението, може да осъществява достъп до файловете без изричното ви знание."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Може да осъществява достъп до всички файлове"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Приложения с гласово активиране"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Разрешаване на гласовото активиране"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Функцията за гласово активиране дава възможност да включвате одобрените приложения чрез гласова команда, без да използвате ръцете си. Вградената функция за адаптивно установяване гарантира, че данните ви няма да бъдат споделени с никого.\n\n"<a href="">"Още информация относно функцията за защитено адаптивно установяване"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Известия на цял екран"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Разрешаване на известията на цял екран от това приложение"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Разрешаване на това приложение да показва известия, които заемат целия екран, когато устройството е заключено. Приложенията могат да ги използват, за да открояват будилници, входящи обаждания или други спешни известия."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"Приложението <xliff:g id="APP_LABEL">%1$s</xliff:g> е използвало повече батерия от обичайното на заден план"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"Приложението <xliff:g id="APP_LABEL">%1$s</xliff:g> е използвало повече батерия на преден план"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"Приложението <xliff:g id="APP_LABEL">%1$s</xliff:g> е използвало повече батерия от обичайното на преден план"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Интензивно използване на батерията"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Интензивно използване на батерията на заден план"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Интензивно използване на батерията на преден план"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"навигиране в системата, навигиране с 2 бутона, навигиране с 3 бутона, навигиране с жестове, прекарване на пръст"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Дигитален асистент"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Плъзгане на пръст за извикване на асистент"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Плъзнете пръст нагоре от долен ъгъл на екрана, за да извикате приложението за дигитален асистент."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Задръжте бутона „Начало“, за да извикате Асистент"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Натиснете и задръжте бутона „Начало“, за да извикате приложението за дигитален асистент."</string>
     <string name="low_label" msgid="6525629096999711220">"Ниска"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"данни, код за достъп, парола"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"автоматично, попълване, автоматично попълване, данни, ключ за достъп, парола"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Уверете се, че имате доверие на това приложение&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Функцията на Google за автоматично попълване&gt;%1$s&lt;/xliff:g&gt; използва това, което е на екрана ви, за да определи какво може да се попълни автоматично."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&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_autofill_confirmation_message" msgid="843829628024668466">"&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_picker_title" msgid="8191267620665129205">"Пароли, ключове за достъп и услуги за данни"</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>
@@ -4226,7 +4338,7 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- 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" msgid="4648827560023949786">"Експеримент: Активиране на ANGLE"</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>
@@ -4784,7 +4896,7 @@
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Приложения, инсталирани преди повече от # месец}other{Приложения, инсталирани преди повече от # месеца}}"</string>
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Съотношение"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"Изпробвайте ново съотношение за показване на това приложение, ако то не е оптимизирано за устройството ви <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Изпробвайте ново съотношение за показване на това приложение, ако то не е оптимизирано за устройството ви <xliff:g id="DEVICE_NAME">%1$s</xliff:g> Някои приложения може да не са оптимизирани за определени съотношения."</string>
+    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Изпробвайте ново съотношение за показване на това приложение, ако то не е оптимизирано за устройството ви <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Някои приложения може да не са оптимизирани за определени съотношения."</string>
     <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Изпробвайте ново съотношение за показване на приложение, ако то не е оптимизирано за устройството ви <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Изпробвайте ново съотношение за показване на приложение, ако то не е оптимизирано за устройството ви <xliff:g id="DEVICE_NAME">%1$s</xliff:g> Някои приложения може да не са оптимизирани за определени съотношения."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Предложени приложения"</string>
@@ -4856,4 +4968,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Сканиране за подвеждащи приложения"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Проверка на активността в приложенията за фишинг"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Използване на сканирането за подвеждащи приложения"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Използване на сканирането за подвеждащи приложения за служебния потребителски профил"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-bn/arrays.xml b/res/values-bn/arrays.xml
index d977a18..ca36982 100644
--- a/res/values-bn/arrays.xml
+++ b/res/values-bn/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"১ মিনিট পর"</item>
     <item msgid="1574040255478150028">"৫ মিনিট পর"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 441e428..1359804 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"ব্লুটুথ LE অডিও বন্ধ করুন"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"ডিভাইসে LE অডিও হার্ডওয়্যার কাজ করলে, ব্লুটুথ LE অডিও ফিচার বন্ধ করে।"</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"ডিভাইসের বিবরণে LE অডিও টগল দেখুন"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"ব্লুটুথ LE অডিও অনুমোদন করার তালিকা চালু করুন"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"ব্লুটুথ LE অডিও অনুমোদন করার তালিকা সংক্রান্ত ফিচার চালু করুন।"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"ব্লুটুথ LE অডিও-এর সাদাতালিকা বাইপাস করুন"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"LE অডিও-এর সাদাতালিকার শর্ত পূর্ণ করতে LE অডিও-এর পেরিফেরাল যাাচাই করা না হলেও ডিফল্ট হিসেবে LE অডিও ব্যবহার করুন।"</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"মিডিয়া ডিভাইস"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"কল করার ডিভাইস"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"অন্যান্য ডিভাইস"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"সেভ করে রাখা ডিভাইস"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"অ্যাকাউন্টের সাথে যুক্ত করা হয়েছে"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"অ্যাকাউন্টের সাথে আগে ব্যবহার করা হয়েছে"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"পেয়ার করার জন্য ব্লুটুথ চালু হবে"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"কানেকশন অভিরুচি"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"আগে কানেক্ট করা"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"টেক্সট ফিল্ডে লিখুন"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"স্টাইলাসের মাধ্যমে প্রেস করা হয়েছে এমন বোতাম এড়িয়ে যান"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"স্টাইলাস"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"অডিও শেয়ার করা"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"অডিও শেয়ার করুন"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"কল ও অ্যালার্ম"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"দিন ও তারিখ"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"প্রক্সী"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"সাফ করুন"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"লোড হচ্ছে…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"আশেপাশের ডিভাইসের অনুমতি থাকা অ্যাপগুলি কানেক্ট করা ডিভাইসের আপেক্ষিক অবস্থান নির্ণয় করতে পারে।"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"অ্যাপ ও পরিষেবার লোকেশন অ্যাক্সেস বন্ধ রয়েছে। জরুরি নম্বরে কল অথবা টেক্সট করলে সাহায্যকারীর কাছে আপনার ডিভাইসের লোকেশন এখনও পাঠানো হতে পারে।"</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"\'লোকেশন সেটিংস\' সম্পর্কে আরও জানুন"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"অ্যাকাউন্টগুলি"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"নিরাপত্তা"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"এনক্রিপশন ও ক্রেডেনশিয়াল"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"অফিস প্রোফাইল"</string>
     <string name="private_space_title" msgid="7078627930195569767">"ব্যক্তিগত স্পেস"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"ব্যক্তিগত ফোল্ডারে অ্যাপ লুকান"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"\'স্ক্রিন লক\' ব্যবহার করে আনলক করুন"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"\'ব্যক্তিগত স্পেস\' দেখান"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"লক থাকাকালীন লুকান"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"লক থাকাকালীন \'ব্যক্তিগত\' স্পেস লুকিয়ে রাখুন"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"আপনার ডিভাইসে \'ব্যক্তিগত\' স্পেস থাকার বিষয়টি যাতে অন্যান্য লোকজন না জানতে পারেন, তার জন্য সেটি অ্যাপ তালিকা থেকে লুকিয়ে রাখুন"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"লুকানো থাকাকালীন \'ব্যক্তিগত\' স্পেস অ্যাক্সেস করুন"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"সার্চ বারে \'ব্যক্তিগত\' স্পেস সম্পর্কিত সার্চ"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"\'ব্যক্তিগত\' স্পেসের টাইলে ট্যাপ করুন"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"আপনার \'ব্যক্তিগত\' স্পেস আনলক করুন"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"বন্ধ আছে"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"চালু আছে"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"সিস্টেম"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"\'ব্যক্তিগত স্পেস\' তৈরি করুন"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"\'ব্যক্তিগত স্পেস\' মুছুন"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"\'ব্যক্তিগত স্পেস\' তৈরি করা হয়েছে"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"\'ব্যক্তিগত স্পেস\' আগে থেকেই রয়েছে"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"\'ব্যক্তিগত স্পেস\' তৈরি করা যায়নি"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"\'ব্যক্তিগত স্পেস\' মুছে ফেলা হয়েছে"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"\'ব্যক্তিগত স্পেস\' মুছে ফেলা যায়নি"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"\'স্ক্রিন লক\' সেট করুন"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"\'ব্যক্তিগত স্পেস\' ব্যবহার করতে, এই ডিভাইসে \'স্ক্রিন লক\' সেট করুন।"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"\'স্ক্রিন লক\' সেট করুন"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"বাতিল করুন"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"বাতিল করুন"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"সেট-আপ করুন"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"\'ব্যক্তিগত\' স্পেস সেট-আপ করুন"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"ব্যক্তিগত অ্যাপ সুরক্ষিত জায়গাতে লুকিয়ে রাখুন যাতে শুধুমাত্র আপনিই তা অ্যাক্সেস করতে পারেন"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"এটি কীভাবে কাজ করে"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"আপনার অ্যাপ তালিকার নিচে থকে \'ব্যক্তিগত\' স্পেস অ্যাক্সেস করতে পারবেন"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"\'ব্যক্তিগত\' স্পেসে অ্যাপ লকের মাধ্যমে সুরক্ষিত থাকে"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"\'ব্যক্তিগত স্পেস\' লক থাকলে সেখানে থাকা অ্যাপের বিজ্ঞপ্তি লুকানো থাকে"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"\'ব্যক্তিগত স্পেস\' লক করা থাকলে পার্মিশন ম্যানেজার, প্রাইভেসি ড্যাশবোর্ড এবং অন্যান্য সেটিংসে \'ব্যক্তিগত স্পেসের\' অ্যাপ দেখা যাবে না"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"\'ব্যক্তিগত স্পেস\' সেট-আপ করা হচ্ছে…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"\'ব্যক্তিগত স্পেসে\' অ্যাপ লক করে সুরক্ষিত অবস্থায় থাকে"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"\'ব্যক্তিগত স্পেস\' লক করা থাকলে এখানে থাকা অ্যাপ ব্যবহারের তথ্য লুকানো থাকবে"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"আপনার অ্যাপ তালিকা থেকে \'ব্যক্তিগত স্পেস\' অ্যাক্সেস করুন"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"\'ব্যক্তিগত স্পেস\' সেট-আপ করা যায়নি"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"এখনই আবার চেষ্টা করুন বা পরে আবার চেষ্টা করে দেখুন"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"আবার চেষ্টা করুন"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"আনলক করতে স্ক্রিন লক ব্যবহার করতে চান?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"যেভাবে আপনার ডিভাইস আনলক করেন একইভাবে নিজের \'ব্যক্তিগত স্পেস\' আনলক করতে পারেন বা অন্য কোনও লক বেছে নিতে পারেন"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"স্ক্রিন লক ব্যবহার করুন"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"নতুন লক বেছে নিন"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"হয়ে গেছে!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"\'ব্যক্তিগত স্পেস\' অ্যাক্সেস করতে, হোম স্ক্রিনের নিচের দিক থেকে উপরের দিকে সোয়াইপ করুন ও তারপর নিচের দিকে স্ক্রল করুন"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"হয়ে গেছে"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"\'ব্যক্তিগত স্পেস\' অ্যাক্সেস করতে নিচের দিকে স্ক্রল করুন"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"\'ব্যক্তিগত স্পেস\' সেট-আপ করতে সাইন-ইন করুন"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"আপনি সর্বাধিক <xliff:g id="COUNT">%d</xliff:g>টি ফিঙ্গারপ্রিন্ট যোগ করতে পারবেন"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"আপনি অনুমোদিত সর্বোচ্চ সংখ্যক আঙ্গুলের ছাপ যোগ করেছেন"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"এর বেশি আঙ্গুলের ছাপ যোগ করা যাবে না"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"কানেক্ট করুন"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"ডিসকানেক্ট করুন"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"যুক্ত করুন ও কানেক্ট করুন"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"যখন ব্লুটুথ চালু করা হয়, তখন আপনার অন্যান্য কাছাকাছির ব্লুটুথ ডিভাইসগুলির সাথে যোগাযোগ করতে পারে৷"</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"ব্লুটুথ চালু করা থাকলে, আপনার ডিভাইস কাছাকাছি অন্যান্য ব্লুটুথ ডিভাইসের সাথে যোগাযোগ করতে পারবে।\n\nডিভাইস ব্যবহারের অভিজ্ঞতা উন্নত করতে, এমনকি ব্লুটুথ বন্ধ থাকাকালীনও, অ্যাপ ও পরিষেবাগুলি কাছাকাছি থাকা ডিভাইস যেকোনও সময় স্ক্যান করতে পারবে। যেমন, এটি লোকেশন-ভিত্তিক ফিচার এবং পরিষেবা উন্নত করার মতো বিভিন্ন কাজের জন্য ব্যবহার করা হতে পারে। আপনি ব্লুটুথ স্ক্যানিং সেটিংস থেকে এটি পরিবর্তন করতে পারবেন।"</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"পরিবর্তন করুন"</string>
     <string name="device_details_title" msgid="1155622417516195481">"ডিভাইসের বিবরণ"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"ডিবাগযোগ্য অ্যাপের বাইটকোট যাচাই করতে ART-কে অনুমতি দিন"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"রিফ্রেশ রেট দেখান"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"সাম্প্রতিক সময়ের ডিসপ্লে রিফ্রেশ রেট দেখান"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"HDR/SDR রেশিও দেখুন"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"বর্তমান HDR/SDR রেশিও দেখুন"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"NFC-এর জন্য ডিভাইস আনলক প্রয়োজন"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android বীম"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"ফোল্ডে থাকা অ্যাপ ব্যবহার করা চালিয়ে যান"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"স্মুথ ডিসপ্লে"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"কিছু কন্টেন্টের রিফ্রেশ রেট অটোমেটিক 60 থেকে <xliff:g id="ID_1">%1$s</xliff:g> Hz পর্যন্ত বেড়ে যায়। ব্যাটারির খরচও বেড়ে যায়।"</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"কিছু কন্টেন্টের রিফ্রেশ রেট অটোমেটিক <xliff:g id="ID_1">%1$d</xliff:g> Hz পর্যন্ত বেড়ে যায়। ব্যাটারি বেশি খরচ হয়।"</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"সবচেয়ে বেশি রিফ্রেশ রেটে সেট করা হয়েছে"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"সর্বাধিক রিফ্রেশ রেট সেট করে টাচ রেসপন্সিভনেস এবং অ্যানিমেশন কোয়ালিটি উন্নত করুন। ব্যাটারির খরচ বেড়ে যায়।"</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"স্ক্রিন অ্যাটেনশন"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"\'কমিউনাল\' সেটিংস"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"অ্যাক্সেস পয়েন্ট এডিট করুন"</string>
+    <string name="apn_add" msgid="9069613192201630934">"অ্যাক্সেস পয়েন্ট যোগ করুন"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"সেট করা নেই"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"সেট করা নেই"</string>
     <string name="apn_name" msgid="6677695784108157953">"নাম"</string>
@@ -1320,6 +1397,8 @@
     <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="network_type" msgid="748590707422733595">"নেটওয়ার্কের ধরন"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"নির্দিষ্ট করা নেই"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO প্রকার"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO মান"</string>
     <string name="menu_delete" msgid="9199740901584348273">"APN মুছে দিন"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"অ্যাক্সেসিবিলিটি বোতাম ব্যবহার করে খোলা"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"খোলার জন্য ভলিউম কী প্রেস করে ধরে থাকুন"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"খুলতে স্ক্রিনে ট্রিপল ট্যাপ করুন"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"স্ক্রিনে দুই আঙুল দিয়ে তিনবার ট্যাপ করে খুলুন"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"ইঙ্গিতের মাধ্যমে খোলা"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"\'অ্যাক্সেসিবিলিটি\' জেসচার ব্যবহার করুন"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"এই ফিচারটি ব্যবহার করার জন্য, স্ক্রিনের নিচের দিকের অ্যাক্সেসিবিলিটি বোতামে <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> ট্যাপ করুন।\n\nএকটি ফিচার থেকে অন্যটিতে যেতে, অ্যাক্সেসিবিলিটি বোতাম টাচ করে ধরে থাকুন।"</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"এই ফিচার ব্যবহার করতে, আপনার স্ক্রিনে অ্যাক্সেসিবিলিটি বোতামে ট্যাপ করুন।"</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"এই ফিচার ব্যবহার করার জন্য, উভয় ভলিউম কী প্রেস করে ধরে থাকুন।"</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"ম্যাগনিফিকেশন চালু বা বন্ধ করতে, স্ক্রিনের যেকোনও জায়গায় ট্রিপল ট্যাপ করুন।"</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"ম্যাগনিফিকেশন চালু বা বন্ধ করতে, স্ক্রিনের যেকোনও জায়গায় দুই আঙুল দিয়ে তিনবার ট্যাপ করুন।"</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"এই ফিচার ব্যবহার করার জন্য, স্ক্রিনের নিচ থেকে উপরের দিকে ২টি আঙ্গুল দিয়ে সোয়াইপ করুন।\n\nএকটি ফিচার থেকে অন্যটিতে যেতে, ২টি আঙ্গুল দিয়ে নিচের থেকে উপরের দিকে সোয়াইপ করে ধরে থাকুন।"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"এই ফিচার ব্যবহার করার জন্য, স্ক্রিনের নিচ থেকে উপরের দিকে ৩টি আঙ্গুল দিয়ে সোয়াইপ করুন।\n\nএকটি ফিচার থেকে অন্যটিতে যেতে, ৩টি আঙ্গুল দিয়ে নিচের থেকে উপরের দিকে সোয়াইপ করে ধরে থাকুন।"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"অ্যাক্সেসিবিলিটি ফিচার ব্যবহার করার জন্য, স্ক্রিনের নিচ থেকে উপরের দিকে ২টি আঙ্গুল দিয়ে সোয়াইপ করুন।\n\nএকটি ফিচার থেকে অন্যটিতে যেতে, ২টি আঙ্গুল দিয়ে নিচের থেকে উপরের দিকে সোয়াইপ করে ধরে থাকুন।"</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"ভলিউম কী কিছু সময় প্রেস করে রাখুন"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"ভলিউম কী প্রেস করে রাখুন"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"উভয় ভলিউম কী প্রেস করে ধরে থাকুন"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"দুই আঙুল দিয়ে স্ক্রিনে তিনবার ট্যাপ"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"দুই আঙুল দিয়ে স্ক্রিনে তিনবার ট্যাপ"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"দুই আঙুল দিয়ে স্ক্রিনে দ্রুত {0,number,integer} বার ট্যাপ করুন"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"ট্রিপল-ট্যাপ স্ক্রিন"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"স্ক্রিনে ট্রিপল-ট্যাপ করা"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"স্ক্রিনে ঝটপট {0,number,integer} বার ট্যাপ করুন। এই শর্টকাট ব্যবহারের ফলে আপনার ডিভাইসের স্পিড কমে যেতে পারে"</string>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"ভাইব্রেশন এবং হ্যাপটিক ব্যবহার করুন"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"অ্যালার্ম ভাইব্রেশন"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"মিডিয়া ভাইব্রেশন"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"কীবোর্ড ভাইব্রেশন"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"রিং ভাইব্রেশন"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"বিজ্ঞপ্তির ভাইব্রেশন"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"টাচ ফিডব্যাক"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> অবশিষ্ট রয়েছে"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> চার্জ করা বাকি"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"স্ক্রিন টাইম"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"ব্যাকগ্রাউন্ড টাইম"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"চার্জ কম আছে"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"অ্যাপটি পটভূমিতে চলতে দিন"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"ব্যাকগ্রাউন্ড অ্যাক্টিভিটি সীমিত করবেন?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"কোনও অ্যাপের ব্যাকগ্রাউন্ড অ্যাক্টিভিটি সীমিত করলে তা সঠিক ভাবে কাজ নাও করতে পারে"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"যেহেতু এই অ্যাপটিকে ব্যাটারি অপ্টিমাইজ করার জন্য সেট করা হয়নি, তাই আপনি এটির অ্যাক্টিভিটি সীমিত করতে পারবেন না।\n\nঅ্যাপের অ্যাক্টিভিটি সীমিত করতে আগে ব্যাটারি অপ্টিমাইজেশন চালু করুন।"</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"ব্যাটারির ব্যবহার ম্যানেজ করুন"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"ব্যাকগ্রাউন্ডে চলার জন্য অনুমতি দিন"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"রিয়েল-টাইম আপডেটের জন্য চালু করুন, ব্যাটারির চার্জ সাশ্রয় করতে বন্ধ করুন"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"সীমিত নয়"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"অপ্টিমাইজ করা আছে"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"সীমিত"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"শেষবার ফুল চার্জ হওয়ার পরে"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"সিস্টেম অ্যাপ"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"আনইনস্টল করা অ্যাপ"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"অন্যান্য"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"আনুমানিক কতক্ষণ বাকি"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"সম্পূর্ণ চার্জ না হওয়া পর্যন্ত"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"মোট: এক মিনিটের থেকে কম"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"ব্যাকগ্রাউন্ড: এক মিনিটের থেকে কম"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"স্ক্রিন টাইম: এক মিনিটের থেকে কম"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"এক মিনিটেরও কম"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"মোট: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"ব্যাকগ্রাউন্ড: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"স্ক্রিন টাইম: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"মোবাইল ডেটা এবং ওয়াই-ফাই"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"ব্যক্তিগত ডেটা স্বতঃসিঙ্ক"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"অফিস ডেটা নিজে থেকে সিঙ্ক"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"ব্যক্তিগত ডেটা অটো-সিঙ্ক করুন"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"চক্র পরিবর্তন করুন..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"ডেটা ব্যবহারের চক্র আবার সেট করতে মাসের দিন:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"এই সময়ের মধ্যে কোনো অ্যাপ্লিকেশান ডেট ব্যবহার করবে না।"</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"টেক্সটের সাইজ, বড় প্রিন্ট, বড় ফন্ট, বড় টেক্সট, কম দৃষ্টি, টেক্সট আরও বড় করুন, ফন্ট বড় করার টুল, ফন্ট বড় করা"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"\'সবসময় চালু\' অ্যাম্বিয়েন্ট ডিসপ্লে, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"NFC, ট্যাগ, রিডার"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"কীবোর্ড, হ্যাপটিক, ভাইব্রেট,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"ভলিউম, ভাইব্রেশন, বিরক্ত করবে না"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"মিডিয়া ভলিউম"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"কাস্টের ভলিউম"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"সব বিজ্ঞপ্তি দেখতে চাই"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"গুরুত্বপূর্ণ কন্টেন্ট শুধুমাত্র আনলক অবস্থায় দেখুন"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"কোনও বিজ্ঞপ্তি দেখতে চাই না"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"আপনার লক স্ক্রিন কীভাবে দেখাতে চান?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"লক স্ক্রিন"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"সমস্ত কর্মস্থলের বিজ্ঞপ্তির কন্টেন্ট দেখুন"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"কাজের সংবেদনশীল কন্টেন্ট লুকান"</string>
@@ -3354,6 +3449,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"এই অ্যাপে উন্নত সেটিংস কাজ করে না"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"আরও সেটিংস"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"এই অ্যাপের মধ্যে আরও সেটিংস উপলভ্য আছে"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"বিজ্ঞপ্তির কুলডাউন"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"সব বিজ্ঞপ্তিতে কুলডাউন প্রয়োগ করুন"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"একই অ্যাপ থেকে আপনি একাধিক মেসেজ পাওয়ার সময় ধীরে ধীরে বিজ্ঞপ্তির ভলিউম কমে যায়"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"কথোপকথনে কুলডাউন প্রয়োগ করুন"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"কম সময়ের মধ্যে একই চ্যাট থেকে আপনি একাধিক মেসেজ পাওয়ার সময় ধীরে ধীরে বিজ্ঞপ্তির ভলিউম কমে যায়"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"বিজ্ঞপ্তির কুলডাউন ব্যবহার করবেন না"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"একই অ্যাপ থেকে যতগুলি বিজ্ঞপ্তি পাওয়া যাক না কেন, কখনই বিজ্ঞপ্তির ভলিউম কম হয় না"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"আনলক থাকাকালীন শুধুমাত্র ভাইব্রেট করে"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"স্ক্রিন আনলক থাকাকালীন শুধুমাত্র ভাইব্রেট করে"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"অফিস প্রোফাইলে প্রয়োগ করুন"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"আপনার ব্যক্তিগত প্রোফাইল থেকে অফিস প্রোফাইলে বিজ্ঞপ্তির কুলডাউন সেটিংস প্রয়োগ করুন"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"ভিআর(VR) সহায়তাকারী পরিষেবা"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"VR সহায়তাকারী পরিষেবা হিসেবে চলার জন্য কোনও অ্যাপ ইনস্টল করা নেই৷"</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"<xliff:g id="SERVICE">%1$s</xliff:g> এর জন্য (ভিআর)VR পরিষেবার অ্যাক্সেসের অনুমতি দেবেন?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"সব ফাইল ম্যানেজ করতে অ্যাক্সেস দিন"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"এই ডিভাইস অথবা এতে কানেক্ট রয়েছে এমন যেকোনও স্টোরেজে থাকা সব ফাইল পড়তে, পরিবর্তন করতে এবং মুছতে এই অ্যাপকে অনুমতি দিন। অনুমতি দিলে এই অ্যাপ আপনাকে না জানিয়েই ফাইলগুলি অ্যাক্সেস করতে পারবে।"</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"সব ফাইল অ্যাক্সেস করতে পারে"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"ভয়েস অ্যাক্টিভেশন অ্যাপ"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"ভয়েস অ্যাক্টিভেশনের অনুমতি দিন"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"ভয়েস অ্যাক্টিভেশন, ভয়েস কমান্ড ব্যবহার করে অনুমোদিত অ্যাপ, হ্যান্ডস-ফ্রি সুবিধা চালু করে। ডেটা যাতে শুধুমাত্র আপনার জন্যই ব্যক্তিগত থাকে, বিল্ট-ইন অ্যাডাপ্টিভ সেন্সিং তা নিশ্চিত করে।\n\n"<a href="">"সুরক্ষিত অ্যাডাপ্টিভ সেন্সিং সম্পর্কে অনেক কিছু"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"ফুল স্ক্রিন বিজ্ঞপ্তি"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"এই অ্যাপকে ফুল স্ক্রিন জুড়ে বিজ্ঞপ্তি দেখানোর অনুমতি দিন"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"ডিভাইস লক থাকার সময় এই অ্যাপকে ফুল স্ক্রিন জুড়ে বিজ্ঞপ্তি দেখানোর অনুমতি দিন। অ্যালার্ম, ইনকামিং কল অথবা অন্যান্য জরুরি বিজ্ঞপ্তি হাইলাইট করতে, অ্যাপ এগুলি ব্যবহার করতে পারে।"</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ব্যাকগ্রাউন্ডে থাকাকালীন স্বাভাবিকের চেয়ে আরও বেশি ব্যাটারি ব্যবহার করেছে"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ফোরগ্রাউন্ডে থাকাকালীন আরও বেশি ব্যাটারি ব্যবহার করেছে"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ফোরগ্রাউন্ডে থাকাকালীন স্বাভাবিকের চেয়ে আরও বেশি ব্যাটারি ব্যবহার করেছে"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"ব্যাটারির বেশি ব্যবহার"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"ব্যাকগ্রাউন্ডে ব্যাটারির বেশি ব্যবহার"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"ফোরগ্রাউন্ডে বেশি ব্যাটারির ব্যবহার"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"সিস্টেম নেভিগেশন, ২টি বোতাম দিয়ে করা নেভিগেশন, ৩টি বোতাম দিয়ে করা নেভিগেশন, জেসচার করে করা নেভিগেশন, সোয়াইপ"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"\'ডিজিটাল অ্যাসিস্ট্যান্ট\'"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"\'অ্যাসিস্ট্যান্ট\' চালু করতে সোয়াইপ করুন"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"ডিজিটাল অ্যাসিস্ট্যান্ট\' অ্যাপ চালু করতে নিচের কোণা থেকে উপরের দিকে সোয়াইপ করুন।"</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Assistant ব্যবহার করার জন্য হোম বোতাম প্রেস করে ধরে রাখুন"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"ডিজিটাল অ্যাসিস্ট্যান্ট অ্যাপ চালু করতে \'হোম\' বোতাম প্রেস করে ধরে রাখুন।"</string>
     <string name="low_label" msgid="6525629096999711220">"কম করুন"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"ডেটা, পাসকী, পাসওয়ার্ড"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"অটো, ফিল, অটো-ফিল ফিচার, ডেটা, পাসকি, পাসওয়ার্ড"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;নিশ্চিত করুন যে এই অ্যাপটি বিশ্বাসযোগ্য&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; কোনও তথ্য নিজে থেকে পূরণ করা যাবে কিনা, তা নির্ণয় করতে &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; অ্যাপটি আপনার স্ক্রিনে যা দেখা যাচ্ছে সেই অনুযায়ী সিদ্ধান্ত নেয়।"</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&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_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Use &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_picker_title" msgid="8191267620665129205">"পাসওয়ার্ড, পাসকী ও ডেটা পরিষেবা"</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>
@@ -4226,8 +4338,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- 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">"সতর্কতা মেসেজ: ডিফল্ট OpenGL ES ড্রাইভার হিসেবে ANGLE চালু করুন। এই ফিচার এখনও পরীক্ষামূলক স্তরে আছে এবং কিছু ক্যামেরা ও ভিডিও অ্যাপের ক্ষেত্রে নাও কাজ করতে পারে।"</string>
+    <string name="enable_angle_as_system_driver" msgid="4648827560023949786">"এক্সপেরিমেন্ট হিসেবে উপলভ্য: ANGLE চালু করুন"</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"সতর্কতা: ডিফল্ট OpenGL ES ড্রাইভার হিসেবে ANGLE চালু করুন। এই ফিচার এক্সপেরিমেন্ট হিসেবে উপলভ্য। এটি কিছু ক্যামেরা ও ভিডিও অ্যাপে ব্যবহার নাও করা যেতে পারে।"</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>
@@ -4785,10 +4897,8 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"অ্যাস্পেক্ট রেশিও"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"অ্যাপটি যদি আপনার <xliff:g id="DEVICE_NAME">%1$s</xliff:g>-এর স্ক্রিনে ফিট না হওয়ার মতো করে ডিজাইন করা হয়, তাহলে এটি দেখার জন্য নতুন অ্যাস্পেক্ট রেশিও ব্যবহার করে দেখুন"</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"অ্যাপটি যদি আপনার <xliff:g id="DEVICE_NAME">%1$s</xliff:g>-এর স্ক্রিনে ফিট না হওয়ার মতো করে ডিজাইন করা হয়, তাহলে এটি দেখার জন্য নতুন অ্যাস্পেক্ট রেশিও ব্যবহার করে দেখুন। নির্দিষ্ট কোনও অ্যাস্পেক্ট রেশিওতে কিছু অ্যাপ অপ্টিমাইজ করা নাও যেতে পারে।"</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"কোনও একটি অ্যাপ যদি আপনার <xliff:g id="DEVICE_NAME">%1$s</xliff:g>-এর স্ক্রিনে ফিট না হওয়ার মতো করে ডিজাইন করা হয়, তাহলে এটি দেখার জন্য নতুন অ্যাস্পেক্ট রেশিও ব্যবহার করে দেখুন"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"কোনও একটি অ্যাপ যদি আপনার <xliff:g id="DEVICE_NAME">%1$s</xliff:g>-এর স্ক্রিনে ফিট না হওয়ার মতো করে ডিজাইন করা হয়, তাহলে এটি দেখার জন্য নতুন অ্যাস্পেক্ট রেশিও ব্যবহার করে দেখুন। নির্দিষ্ট কোনও অ্যাস্পেক্ট রেশিওতে কিছু অ্যাপ অপ্টিমাইজ করা নাও যেতে পারে।"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"সাজেস্ট করা অ্যাপ"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"পরিবর্তিত অ্যাপ"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"অ্যাপ ডিফল্ট"</string>
@@ -4858,4 +4968,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"প্রতারণামূলক অ্যাপ শনাক্ত করতে স্ক্যান করা"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"ফিশিংয়ের জন্য অ্যাপ অ্যাক্টিভিটি চেক করুন"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"প্রতারণামূলক অ্যাপ দেখলেই স্ক্যান করুন"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"কাজের ক্ষেত্রে প্রতারণামূলক অ্যাপ দেখলেই স্ক্যান করুন"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-bs/arrays.xml b/res/values-bs/arrays.xml
index 2a21b78..f96a12a 100644
--- a/res/values-bs/arrays.xml
+++ b/res/values-bs/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Nakon 1 min"</item>
     <item msgid="1574040255478150028">"Nakon 5 min"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 6ed6fd1..021c329 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Onemogući Bluetooth LE Audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Onemogućava funkciju Bluetooth LE Audio ako uređaj podržava mogućnosti hardvera za LE Audio."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Prikaži prekidač za LE Audio u Detalj. uređ."</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Omogući listu dozvoljenih za Bluetooth LE Audio"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Omogućite funkciju liste dozvoljenih za Bluetooth LE Audio."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Zaobiđi Listu dozvoljenih za Bluetooth LE Audio"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Koristite LE Audio prema zadanim postavkama čak i ako nije potvrđeno da LE Audio periferni uređaj ispunjava kriterije Liste dozvoljenih."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Uređaji za medije"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Uređaji za pozive"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Drugi uređaji"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Sačuvani uređaji"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Povezano s računom"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Prethodno korišteno s računom"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth će se uključiti za uparivanje"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Postavke veze"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Prethodno povezano"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Pisanje u poljima za tekst"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignoriranje svih pritisaka dugmeta za pisaljku"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Pisaljka"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Dijeljenje zvuka"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Dijeli zvuk"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Pozivi i alarmi"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Datum i vrijeme"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proksi server"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Obriši"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Saznajte više o postavkama lokacije"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Računi"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Sigurnost"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Šifriranje i akreditivi"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Radni profil"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Privatni prostor"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Sakrijte aplikacije u privatnom folderu"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Otključajte pomoću zaključavanja ekrana"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Prikaži privatni prostor"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Sakrij kada je zaključano"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Sakrij privatan prostor kada je zaključan"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Kako drugi ne bi saznali da je privatan prostor na vašem uređaju, sakrijte ga s liste aplikacija"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Pristupite privatnom prostoru kada je sakriven"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Pretražite \"Privatan prostor\" u traci za pretraživanje"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Dodirnite karticu privatnog prostora"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Otključajte privatan prostor"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Isključeno"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Uključeno"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Sistem"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Kreiraj privatni prostor"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Izbriši privatni prostor"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Privatni prostor je uspješno kreiran"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Privatni prostor već postoji"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Kreiranje privatnog prostora nije uspjelo"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Privatni prostor je uspješno izbrisan"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Brisanje privatnog prostora nije uspjelo"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Postavite zaključavanje ekrana"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Da koristite privat. prostor, postavite zaklj. ekr. na uređ."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Postavite zaključavanje ekrana"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Otkaži"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Otkaži"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Postavi"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Postavite privatan prostor"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Sakrijte privatne aplikacije u zaštićeni prostor kojem samo vi možete pristupiti"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Kako ovo funkcionira"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Možete pristupiti privatnom prostoru s dna liste aplikacija"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Aplikacije u privatnom prostoru su zaštićene zaključavanjem"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Obavještenja iz aplikacija u privatnom prostoru su sakrivena kada je prostor zaključan"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Aplikacije iz privatnog prostora se neće pojavljivati u upravitelju odobrenja, na kontrolnoj tabli za privatnost i u drugim postavkama kada je privatni prostor zaključan"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Postavljanje privatnog prostora…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Privatni prostor je zaštićen zaključavanjem"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Informacije o korištenju aplikacija iz privatnog prostora su sakrivene kada je prostor zaključan"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Pristupite privatnom prostoru s liste aplikacija"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Postavljanje privatnog prostora nije uspjelo"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Pokušajte ponovo sada ili se vratite kasnije"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Pokušaj ponovo"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Koristiti zaključavanje ekrana za otključavanje?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Privatni prostor možete otključati na isti način kao što otključavate uređaj ili odaberite drugi način zaključavanja"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Koristi zaključavanje ekrana"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Odaberite novi način zaključavanja"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Sve je spremno!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Da pristupite privatnom prostoru, prevucite nagore s dna početnog ekrana, a zatim kliznite nadolje"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Gotovo"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Kliznite nadolje da pristupite privatnom prostoru"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Prijavite se da postavite privatni prostor"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Broj otisaka prstiju koje možete dodati: <xliff:g id="COUNT">%d</xliff:g>"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Dodali ste maksimalan broj otisaka prstiju"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Nije moguće dodati još otisaka prstiju"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Poveži se"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Prekini vezu"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Upari i poveži"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Kada je Bluetooth uključen, uređaj može komunicirati s drugim uređajima s Bluetoothom u blizini."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Kada je Bluetooth uključen, uređaj može komunicirati s drugim Bluetooth uređajima u blizini"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Kada je Bluetooth uključen, uređaj može komunicirati s Bluetooth uređajima u blizini.\n\nDa se poboljša iskustvo na uređaju, aplikacije i usluge i dalje mogu skenirati uređaje u blizini u bilo kojem trenutku, čak i kada je Bluetooth isključen. Ovo se, naprimjer, može koristiti da se poboljšaju funkcije i usluge zasnovane na lokaciji. Ovo možete promijeniti u postavkama Bluetooth skeniranja."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Promijenite"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Detalji o uređaju"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Dopustite ART-u da potvrdi bajtni kôd za aplikacije iz kojih se mogu uklanjati greške"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Prikaži brzinu osvježavanja"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Prikaz trenutne brzine osvježavanja ekrana"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Prikaži omjer HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Prikaži trenutni omjer HDR/SDR"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Zahtijevaj otključavanje uređaja za NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1060,9 +1135,9 @@
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Isključeno"</string>
     <string name="display_white_balance_title" msgid="2624544323029364713">"Balans bijele boje prikaza"</string>
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
-    <string name="fold_lock_behavior_title" msgid="786228803694268449">"Nastavi koristiti aplikacije prilikom sklapanja"</string>
+    <string name="fold_lock_behavior_title" msgid="786228803694268449">"Nastavak korištenja aplikacija nakon sklapanja"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Glatki prikaz"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Automatski povećava učestalost osvježavanja sa 60 na <xliff:g id="ID_1">%1$s</xliff:g> Hz za određeni sadržaj. Povećava potrošnju baterije."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Automatski podiže učestalost osvježavanja do <xliff:g id="ID_1">%1$d</xliff:g> Hz za određeni sadržaj. Povećava potrošnju baterije."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Nametni maksimalnu brzinu osvježavanja"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Najveća brzina osvježavanja za poboljšanu reakciju na dodir i kvalitet animacije. Povećava potrošnju baterije."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Svjesni ekran"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Opće postavke"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN-ovi"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Uredi pristupnu tačku"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Dodajte pristupnu tačku"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Nije postavljeno"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Nije postavljeno"</string>
     <string name="apn_name" msgid="6677695784108157953">"Naziv"</string>
@@ -1320,6 +1396,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN omogućen"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN onemogućen"</string>
     <string name="bearer" msgid="3231443241639159358">"Nosilac"</string>
+    <string name="network_type" msgid="748590707422733595">"Vrsta mreže"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Neodređeno"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO vrsta"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO vrijednost"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Izbriši APN"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Otvorite pomoću dugmeta za pristupačnost"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Držite tipke za jačinu zvuka da otvorite"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Triput dodirnite ekran da otvorite"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Otvaranje trostrukim dodirom ekrana s dva prsta"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Otvorite pokretom"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Korištenje pokreta za pristupačnost"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Da koristite ovu funkciju, dodirnite dugme Pristupačnost <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> na dnu ekrana.\n\nDa prebacujete između funkcija, dodirnite i zadržite dugme Pristupačnost."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Da koristite ovu funkciju, dodirnite dugme za pristupačnost na ekranu."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Da koristite ovu funkciju, pritisnite i držite obje tipke za jačinu zvuka."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Da pokrenete i zaustavite uvećavanje, triput dodirnite bilo gdje na ekranu."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Da pokrenete i zaustavite uvećavanje, triput dodirnite bilo gdje na ekranu s dva prsta."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Da koristite ovu funkciju, prevucite s 2 prsta nagore s dna ekrana.\n\nDa prebacujete između funkcija, prevucite s 2 prsta nagore i zadržite."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Da koristite ovu funkciju, prevucite s 3 prsta nagore s dna ekrana.\n\nDa prebacujete između funkcija, prevucite s 3 prsta nagore i zadržite."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Da koristite funkciju pristupačnosti, prevucite s 2 prsta nagore s dna ekrana.\n\nDa prebacujete između funkcija, prevucite s 2 prsta nagore i zadržite."</string>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Držite tipke za jačinu zvuka"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"držite 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_triple_tap" msgid="6687765191490040899">"Trostruki dodir ekrana s dva prsta"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"trostruki dodir ekrana s dva prsta"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"dodirnite ekran triput"</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>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Koristi vibraciju i haptiku"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Vibracija pri alarmu"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Vibracija medijskog sadržaja"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Vibracija tastature"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Vibracija pri zvonu"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Vibracija pri obavještenjima"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Povratne informacije na dodir"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"Preostalo <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> do pune baterije"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Vrijeme korištenja uređaja"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Vrijeme u pozadini"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Baterija je slaba"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Dopustite aplikaciji da radi u pozadini"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Ograničiti aktivnost u pozadini?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Ako aplikaciji ograničite aktivnost u pozadini, može raditi nepravilno"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Aplikaciju ne možete ograničiti jer nije postavljena optimizacija baterije.\n\nDa je ograničite prvo uključite optimizaciju."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Upravljajte potrošnjom baterije"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Omogućite korištenje u pozadini"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Omogućite za ažuriranja u stvarnom vremenu. Onemogućite radi uštede baterije"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Neograničeno"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Optimizirano"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Ograničeno"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"od posljednjeg potpunog punjenja"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Sistemske aplikacije"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Deinstalirane aplikacije"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Ostalo"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Procjena preostalog vremena"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Do potpune napunjenosti"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Ukupno: manje od minute"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Pozadina: manje od minute"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Vrijeme korištenja uređaja: manje od jedne minute"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Manje od jedne minute"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Ukupno: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Pozadina: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Vrijeme korištenja uređaja: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Prijenos podataka na mobilnoj mreži i WiFi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Automatska sinhronizacija ličnih podataka"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Automatska sinhronizacija podataka za posao"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Automatski sinhroniziraj privatne podatke"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Promijeni ciklus…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Dan u mjesecu za poništavanje ciklusa prijenosa podataka:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Nijedna apl. nije koristila pod. u ovom periodu."</string>
@@ -2913,7 +3005,7 @@
     <string name="sim_selection_channel_title" msgid="3193666315607572484">"Odabir SIM-a"</string>
     <string name="dashboard_title" msgid="5660733037244683387">"Postavke"</string>
     <string name="network_dashboard_title" msgid="788543070557731240">"Mreža i internet"</string>
-    <string name="network_dashboard_summary_mobile" msgid="7750924671970583670">"Mobilni podaci, WiFi, pristupna tačka"</string>
+    <string name="network_dashboard_summary_mobile" msgid="7750924671970583670">"Mobilna mreža, WiFi, pristupna tačka"</string>
     <string name="network_dashboard_summary_no_mobile" msgid="4022575916334910790">"WiFi, pristupna tačka"</string>
     <string name="connected_devices_dashboard_title" msgid="19868275519754895">"Povezani uređaji"</string>
     <string name="connected_devices_dashboard_default_summary" msgid="7211769956193710397">"Bluetooth, uparivanje"</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"veličina teksta, velika slova, veliki font, veliki tekst, slabi vid, povećavanje teksta, povećalo fonta, povećavanje fonta"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"uvijek uključeni ambijentalni prikaz (always on ambient display, AOD)"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"NFC, oznaka, čitač"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"tastatura, haptika, vibriraj"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Jačina zvuka, vibracija, Ne ometaj"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Jačina zvuka medija"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Jačina zvuka emitiranja"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Prikaži sav sadržaj obavještenja"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Prikaži osjetljiv sadržaj samo kada je ekran otključan"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Uopće ne prikazuj obavještenja"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Kako želite da se obavještenja prikazuju na zaključanom ekranu?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Zaključani ekran"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Prikaži sav sadržaj obavještenja radnog profila"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Sakrij osjetljivi sadržaj radnog profila"</string>
@@ -3354,6 +3448,17 @@
     <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="6121016426991791557">"Mirovanje za obavještenja"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Primijeni mirovanje na sva obavještenja"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Postepeno smanjujte jačinu zvuka obavještenja kada dobijate previše uzastopnih obavještenja od iste aplikacije"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Primijeni mirovanje na razgovore"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Postepeno smanjujte jačinu zvuka obavještenja kada u kratkom periodu dobijate previše poruka od istog chata"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Nemoj koristiti mirovanje za obavještenja"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Jačina zvuka obavještenja se nikad ne smanjuje, bez obzira na količinu uzastopnih obavještenja od iste aplikacije"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Vibriraj kada je otključano"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Vibrira samo kada je ekran otključan"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Primijeni na poslovne profile"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Primijenite postavke mirovanja za obavještajna s ličnog profila na poslovni profil"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Usluge pomagača za VR"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Nijedna instalirana aplikacija nije zatražila da bude pokrenuta kao usluga pomagača za VR."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Dozvoliti pristup usluzi VR-a za uslugu <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Dozvoli pristup za upravljanje svim fajlovima"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Dozvolite ovoj aplikaciji da čita, mijenja i briše sve fajlove na ovom uređaju ili svim povezanim uređajima za pohranu. Ako to dozvolite, aplikacija može pristupati fajlovima bez vašeg znanja."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Može da pristupa svim fajlovima"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Aplikacije s glasovnom aktivacijom"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Dozvoli glasovnu aktivaciju"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Aktivacijom glasom se bez dodira uključuju odobrene aplikacije, pomoću glasovne komande. Ugrađena prilagodljiva detekcija osigurava da vaši podaci ostanu privatni.\n\n"<a href="">"Više o sigurnoj prilagodljivoj detekciji"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Obavještenja preko cijelog ekrana"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Dozvoli obavještenja ove aplikacije preko cijelog ekrana"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Dozvolite aplikaciji da prikazuje obavještenja koja zauzimaju cijeli ekran kada je uređaj zaključan. Aplikacije ih mogu koristiti da istaknu alarme, dolazne pozive ili druga hitna obavještenja."</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"Aplikacija <xliff:g id="APP_LABEL">%1$s</xliff:g> je potrošila više baterije nego inače pri radu u pozadini"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"Aplikacija <xliff:g id="APP_LABEL">%1$s</xliff:g> je potrošila više baterije pri radu u prvom planu"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"Aplikacija <xliff:g id="APP_LABEL">%1$s</xliff:g> je potrošila više baterije nego inače pri radu u prvom planu"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Visoka potrošnja baterije"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Visoka potrošnja baterije u pozadini"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Visoka potrošnja baterije u prvom planu"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"navigacija za sistem, navigacija pomoću 2 dugmeta, navigacija pomoću 3 dugmeta, navigacija pokretima, prevlačenje"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Digitalni asistent"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Prevucite da pozovete asistenta na radnju"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Prevucite s donjeg ugla prema gore da pozovete na radnju aplikaciju digitalnog asistenta."</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Prevucite s donjeg ugla prema gore da pozovete na radnju aplikaciju digitalnog asistenta"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Zadržavanje dugmeta za početni ekran za Asistenta"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Pritisnite i zadržite dugme za početni ekran da aktivirate aplikaciju digitalnog asistenta."</string>
     <string name="low_label" msgid="6525629096999711220">"Nisko"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"podaci, pristupni ključ, lozinka"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"automatski, popuniti, automatsko popunjavanje, podaci, pristupni ključ, lozinka"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Provjerite je li ova aplikacija pouzdana&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Automatsko popunjavanje&gt;%1$s&lt;/xliff:g&gt; koristi sadržaj na vašem ekranu da odredi šta se može automatski popuniti."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Koristiti aplikaciju &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; koristi ono što je na ekranu radi utvrđivanja podataka koji se mogu automatski popuniti. Nove lozinke, pristupni ključevi i druge informacije od sada će se pohranjivati ovdje."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Koristite aplikaciju &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Nove lozinke, pristupni ključevi i druge informacije će se odsad pohranjivati ovdje. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; može koristiti ono što je na ekranu da utvrdi šta se može automatski popuniti."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Usluge za lozinke, pristupne ključeve i podatke"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Isključiti %1$s?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Isključiti uslugu?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Sačuvane informacije kao što su lozinke, pristupni ključevi, načini plaćanja i druge informacije se neće popunjavati prilikom prijave. Da koristite sačuvane informacije, odaberite lozinku, pristupni ključ ili uslugu za podatke."</string>
@@ -4227,7 +4337,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">"Eksperimentalno: omogućite ANGLE"</string>
-    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Upozorenje: omogućite ANGLE kao zadani upravljački program ES OpenGL-a. Značajka je eksperimentalna i možda nije kompatibilna s nekim aplikacijama za kamere i videozapise."</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Upozorenje: omogućava ANGLE kao zadani drajver OpenGL ES-a. Ova funkcija je eksperimentalna i možda neće biti kompatibilna s određenim aplikacijama za kameru i videozapise."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"Ponovno pokretanje je potrebno za promjenu sistemskog drajvera OpenGL ES"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Izmjene kompatibilnosti aplikacije"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Uključivanje/isključivanje izmjena kompatibilnosti aplikacije"</string>
@@ -4786,8 +4896,8 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Format slike"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"Isprobajte novi format slike u kojem će se aplikacija prikazivati ako nije dizajnirana da odgovara uređaju <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Isprobajte novi format slike u kojem će se aplikacija prikazivati ako nije dizajnirana da odgovara uređaju <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Neke aplikacije se možda neće optimizirati za određene formate slike."</string>
-    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Isprobajte novi omjer slike za pregled aplikacije ako nije osmišljena da odgovara uređaju <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Isprobajte novi omjer slike za pregled aplikacije ako nije osmišljena da odgovara uređaju <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Neke aplikacije možda nisu optimizirane za određene omjere slike."</string>
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Isprobajte novi format slike u kojem će se aplikacija prikazivati ako nije dizajnirana da odgovara uređaju <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Isprobajte novi format slike u kojem će se aplikacija prikazivati ako nije dizajnirana da odgovara uređaju <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Neke aplikacije se možda neće optimizirati za određene formate slike."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Predložene aplikacije"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Promijenjene aplikacije"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Zadano za aplikaciju"</string>
@@ -4857,4 +4967,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Skeniranje obmanjujućih aplikacija"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Provjerite aktivnost aplikacije radi otkrivanja krađe identiteta"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Koristi skeniranje obmanjujućih aplikacija"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Koristi skeniranje obmanjujućih aplikacija za posao"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-ca/arrays.xml b/res/values-ca/arrays.xml
index 3dfd06f..64482df 100644
--- a/res/values-ca/arrays.xml
+++ b/res/values-ca/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Després d\'1 minut"</item>
     <item msgid="1574040255478150028">"Després de 5 minuts"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 474cf31..92d8bce 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Desactiva Bluetooth LE Audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Desactiva la funció Bluetooth LE Audio si el dispositiu admet les funcions de maquinari d\'LE Audio."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Botó d\'LE Audio a Detalls del dispositiu"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Activa la llista d\'accés permès per Bluetooth LE Audio"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Activa la funció de llista d\'accés permès de Bluetooth LE Audio."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Omet la llista d\'accés permès de Bluetooth LE Audio"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Utilitza LE Audio de manera predeterminada encara que no s\'hagi verificat si el dispositiu perifèric de LE Audio compleix els criteris de la llista d\'accés permès."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Dispositius multimèdia"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Dispositius de trucada"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Altres dispositius"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Dispositius desats"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Associat al compte"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Utilitzats anteriorment amb el compte"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"El Bluetooth s\'activarà per vincular"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Preferències de connexió"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Connectats prèviament"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Escriu als camps de text"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Omet la premuda repetida del botó de llapis òptic"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Llapis òptic"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Ús compartit d\'àudio"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Comparteix l\'àudio"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Trucades i alarmes"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Data i hora"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Servidor intermediari"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Esborra"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Més informació sobre la configuració d\'ubicació"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Comptes"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Seguretat"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Encriptació i credencials"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Perfil de treball"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Espai privat"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Amaga les aplicacions en una carpeta privada"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Desbloqueja amb el bloqueig de pantalla"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Mostra l\'espai privat"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Amaga quan estigui bloquejat"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Amaga Espai privat quan estigui bloquejat"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Per evitar que altres persones sàpiguen que tens Espai privat, pots amagar-lo de la llista d\'apps"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Accedeix a Espai privat quan està amagat"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Cerca \"Espai privat\" a la barra de cerca"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Toca la icona d\'Espai privat"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Desbloqueja Espai privat"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Desactivat"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Activat"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Sistema"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Crea un espai privat"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Suprimeix l\'espai privat"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"L\'espai privat s\'ha creat correctament"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"L\'espai privat ja existeix"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"L\'espai privat no s\'ha pogut crear"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"L\'espai privat s\'ha suprimit correctament"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"L\'espai privat no s\'ha pogut suprimir"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Defineix un bloqueig de pantalla"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Per utilitzar l\'espai privat, defineix un bloqueig de pantalla."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Defineix un bloqueig de pantalla"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Cancel·la"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Cancel·la"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Configura"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Configura Espai privat"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Amaga aplicacions privades en un espai segur a què només pots accedir tu"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Com funciona"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Pots accedir a Espai privat des del final de la llista d\'aplicacions"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Les aplicacions que hi ha a Espai privat estan protegides amb un bloqueig"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Quan està bloquejat, les notificacions de les aplicacions d\'Espai privat s\'amaguen"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Les aplicacions d\'Espai privat no es mostraran al gestor de permisos, al tauler de privadesa ni en altres opcions de configuració quan Espai privat estigui bloquejat"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"S\'està configurant Espai privat…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Espai privat està protegit amb un bloqueig"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"La informació d\'ús de les aplicacions d\'Espai privat s\'amaga quan està bloquejat"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Accedeix a Espai privat des de la llista d\'aplicacions"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"No s\'ha pogut configurar Espai privat"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Torna-ho a provar ara o torna més tard"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Torna-ho a provar"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Vols desbloquejar amb el bloqueig de pantalla?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Pots desbloquejar Espai privat de la mateixa manera que desbloqueges el dispositiu, o triar un altre bloqueig"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Utilitza el bloqueig de pantalla"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Tria un bloqueig nou"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Tot a punt!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Per accedir a Espai privat, llisca cap amunt des de la part interior de la pantalla d\'inici i, a continuació, desplaça\'t cap avall"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Fet"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Desplaça\'t cap avall per accedir a Espai privat"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Inicia la sessió per configurar Espai privat"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Pots afegir un màxim de <xliff:g id="COUNT">%d</xliff:g> empremtes digitals"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Has afegit el nombre màxim d\'empremtes digitals"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"No es poden afegir més empremtes digitals"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Connecta"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Desconnecta"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Vincula i connecta"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Amb el Bluetooth activat, el dispositiu pot comunicar-se amb dispositius Bluetooth propers."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Si el Bluetooth està activat, el dispositiu pot comunicar-se amb altres dispositius Bluetooth propers.\n\nPer millorar l\'experiència del dispositiu, les aplicacions i els serveis poden cercar dispositius propers en qualsevol moment, fins i tot quan el Bluetooth està desactivat. Aquesta opció es pot utilitzar, per exemple, per millorar les funcions i els serveis basats en la ubicació. Pots canviar-la a la configuració de cerca de dispositius Bluetooth."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Canvia"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Detalls del dispositiu"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Permet que ART verifiqui el codi de bytes de les aplicacions depurables"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Freqüència d\'actualització"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Mostra la freqüència d\'actualització de la pantalla actual"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Mostra la relació d\'HDR i SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Mostra la relació actual d\'HDR i SDR"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Sol·licita el desbloqueig del dispositiu per a l\'NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Continua utilitzant les aplicacions amb el dispositiu plegat"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Augmenta automàticament la freqüència d\'actualització de 60 a <xliff:g id="ID_1">%1$s</xliff:g> Hz en alguns continguts. Augmenta l\'ús de la bateria."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Augmenta automàticament la freqüència d\'actualització fins a <xliff:g id="ID_1">%1$d</xliff:g> Hz en alguns continguts. Augmenta l\'ús de la bateria."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Força la freqüència d\'actualització màxima"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"La freqüència d\'actualització més alta millora la resposta tàctil i la qualitat de les animacions. Augmenta l\'ús de la bateria."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Atenció a la pantalla"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Configuració comuna"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Edita el punt d\'accés"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Afegeix un punt d\'accés"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"No definit"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"No definit"</string>
     <string name="apn_name" msgid="6677695784108157953">"Nom"</string>
@@ -1320,6 +1397,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN activat"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN desactivat"</string>
     <string name="bearer" msgid="3231443241639159358">"Portador"</string>
+    <string name="network_type" msgid="748590707422733595">"Tipus de xarxa"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Sense especificar"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Tipus d\'OMV"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"Valor d\'OMV"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Suprimeix l\'APN"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Utilitza el botó d\'accessibilitat per obrir"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Per obrir, mantén premudes les tecles de volum"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Per obrir, fes triple toc a la pantalla"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Fes triple toc a la pantalla amb dos dits per obrir"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Utilitza un gest per obrir"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Utilitza el gest d\'accessibilitat"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Per utilitzar aquesta funció, toca el botó d\'accessibilitat <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> a la part inferior de la pantalla.\n\nPer canviar entre funcions, mantén premut el botó d\'accessibilitat."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Per utilitzar aquesta funció, toca el botó d\'accessibilitat de la pantalla."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Per utilitzar aquesta funció, mantén premudes les dues tecles de volum."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Per iniciar o aturar l\'ampliació, fes triple toc en qualsevol punt de la pantalla."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Per iniciar o aturar l\'ampliació, fes triple toc en qualsevol punt de la pantalla amb dos dits."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Per utilitzar aquesta funció, llisca cap amunt amb 2 dits des de la part inferior de la pantalla.\n\nPer canviar entre funcions, llisca cap amunt amb 2 dits i mantén premut."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Per utilitzar aquesta funció, llisca cap amunt amb 3 dits des de la part inferior de la pantalla.\n\nPer canviar entre funcions, llisca cap amunt amb 3 dits i mantén premut."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Per utilitzar una funció d\'accessibilitat, llisca cap amunt amb 2 dits des de la part inferior de la pantalla.\n\nPer canviar entre funcions, llisca cap amunt amb 2 dits i mantén premut."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Mantén premudes les tecles de volum"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"mantén premudes les 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_triple_tap" msgid="6687765191490040899">"Fes triple toc a la pantalla amb dos dits"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"fes triple toc a la pantalla amb dos dits"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"fes tres tocs a la pantalla"</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>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Utilitza la vibració i la tecnologia hàptica"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Vibració de les alarmes"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Vibració del contingut multimèdia"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Vibració del teclat"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Vibració de les trucades"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Vibració de les notificacions"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Resposta tàctil"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"Temps restant: <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> per completar la càrrega"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Temps de connexió"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Temps en segon pla"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Bateria baixa"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Permet que l\'aplicació s\'executi en segon pla"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Vols limitar l\'activitat en segon pla?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Si limites l\'activitat en segon pla d\'una aplicació, és possible que no funcioni correctament"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Com que aquesta aplicació no s\'ha configurat per optimitzar la bateria, no pots restringir-la.\n\nPer restringir l\'aplicació, activa l\'optimització de la bateria."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Gestiona l\'ús de la bateria"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Permet l\'ús en segon pla"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Activa per a actualitzacions en temps real; desactiva per estalviar bateria"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Sense restriccions"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Optimitzat"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Restringit"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"des de l\'última càrrega completa"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Aplicacions del sistema"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Aplicacions desinstal·lades"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Altres"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Temps estimat restant"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Fins a completar la càrrega"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Total: menys d\'un minut"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"En segon pla: menys d\'un minut"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Temps de connexió: menys d\'un minut"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Menys d\'un minut"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Total: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"En segon pla: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Temps de connexió: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Dades mòbils i Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Sincronitza les dades personals automàticament"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Sincronitza les dades professionals automàticament"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Sincronitza automàticament"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Canvia el cicle..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Dia del mes per restablir el cicle d\'ús de dades:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Cap aplicació no ha utilitzat dades en aquest període."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"mida del text, impressió gran, lletra gran, text gran, poca visió, fer el text més gran, ampliador de font, ampliació de font"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"pantalla ambient sempre activa, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, etiqueta, lector"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"teclat, tecnologia hàptica, vibració,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Volum, vibració, No molestis"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Volum de multimèdia"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Volum emès"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Mostra tot el contingut de les notificacions"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Mostra el contingut sensible només en desbloquejar"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"No mostris cap notificació"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Què vols que es mostri a la pantalla de bloqueig?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Pantalla de bloqueig"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Mostra tot el contingut de notificacions de feina"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Amaga el contingut de feina sensible"</string>
@@ -3354,6 +3449,17 @@
     <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="6121016426991791557">"Abaixa el volum de notificacions"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Abaixa el volum de totes les notificacions"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Abaixa gradualment el volum de les notificacions quan en reps moltes seguides de la mateixa aplicació"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Abaixa el volum de les converses"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Abaixa gradualment el volum de les notificacions quan reps molts missatges del mateix xat en un període curt de temps"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"No abaixis el volum de les notificacions"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"No abaixis mai el volum de les notificacions, independentment de la quantitat de notificacions seguides de la mateixa aplicació"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Vibra quan estigui desbloquejada"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Vibra només quan la pantalla estigui desbloquejada"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Aplica als perfils de treball"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Aplica la configuració per abaixar el volum de les notificacions del teu perfil personal al perfil de treball"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Serveis d\'ajuda per a RV"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Cap aplicació instal·lada no ha sol·licitat que s\'executi com un servei d\'ajuda per a RV."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Vols permetre que <xliff:g id="SERVICE">%1$s</xliff:g> accedeixi al servei RV?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Permet l\'accés per gestionar tots els fitxers"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Permet que aquesta aplicació llegeixi, modifiqui i suprimeixi tots els fitxers d\'aquest dispositiu o de qualsevol volum d\'emmagatzematge connectat. L\'aplicació podrà accedir als fitxers sense el teu coneixement explícit."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Pot accedir a tots els fitxers"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Aplicacions d\'activació per veu"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Permet l\'activació per veu"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"L\'activació per veu activa les aplicacions aprovades mitjançant les ordres de veu amb mans lliures. La detecció adaptativa integrada garanteix la privadesa de les teves dades.\n\n"<a href="">"Més informació sobre la detecció adaptativa protegida"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Notificacions de pantalla completa"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Permet les notificacions de pantalla completa d\'aquesta aplicació"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Permet que aquesta aplicació mostri notificacions que ocupen tota la pantalla quan el dispositiu està bloquejat. Les aplicacions poden utilitzar aquesta opció per destacar alarmes, trucades entrants o altres notificacions urgents."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"L\'aplicació <xliff:g id="APP_LABEL">%1$s</xliff:g> ha consumit més bateria de l\'habitual en segon pla"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"L\'aplicació <xliff:g id="APP_LABEL">%1$s</xliff:g> ha consumit més bateria en primer pla"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"L\'aplicació <xliff:g id="APP_LABEL">%1$s</xliff:g> ha consumit més bateria de l\'habitual en primer pla"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Ús elevat de la bateria"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Ús elevat de la bateria en segon pla"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Ús elevat de la bateria en primer pla"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"navegació del sistema, navegació amb 2 botons, navegació amb 3 botons, navegació amb gestos, lliscar"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Assistent digital"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Llisca per invocar l\'assistent"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Llisca cap amunt des d\'un extrem inferior per invocar l\'aplicació de l\'assistent digital."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Mantén premut el botó d\'inici per obrir l\'Assistent"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Mantén premut el botó d\'inici per invocar l\'aplicació de l\'assistent digital."</string>
     <string name="low_label" msgid="6525629096999711220">"Baixa"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"dades, clau d\'accés, contrasenya"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"auto, emplena, emplenament automàtic, dades, clau d\'accés, contrasenya"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Assegura\'t que confies en aquesta aplicació&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Emplenament automàtic amb Google&gt;%1$s&lt;/xliff:g&gt; utilitza el contingut que es mostra a la pantalla per determinar què es pot emplenar automàticament."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Vols utilitzar &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; fa servir el que es mostra a la pantalla per determinar què es pot emplenar automàticament. Les noves contrasenyes, claus d\'accés i altres dades es desaran aquí a partir d\'ara."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Utilitza &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Les noves contrasenyes, claus d\'accés i altres dades es desaran aquí a partir d\'ara. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; pot fer servir el que es mostra a la pantalla per determinar què es pot emplenar automàticament."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Contrasenyes, claus d\'accés i serveis de dades"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Vols desactivar %1$s?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Vols desactivar aquest servei?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; La informació desada, com ara contrasenyes, claus d\'accés i formes de pagament, entre d\'altres, no s\'emplenarà quan iniciïs la sessió. Per utilitzar la teva informació desada, tria una contrasenya, una clau d\'accés o un servei de dades."</string>
@@ -4226,10 +4338,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <string name="enable_angle_as_system_driver" msgid="4648827560023949786">"Experimental: activa ANGLE"</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Advertiment: activa ANGLE com a controlador OpenGL ES predeterminat. Aquesta funció està en fase d\'experimentació i és possible que no sigui compatible amb algunes aplicacions de càmera i vídeo."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"Cal reiniciar per canviar el controlador OpenGL ES del sistema"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Canvis en la compatibilitat de les aplicacions"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Commuta els canvis en la compatibilitat de les aplicacions"</string>
@@ -4786,14 +4896,12 @@
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Aplicacions instal·lades fa més d’# mes}other{Aplicacions instal·lades fa més de # mesos}}"</string>
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Relació d\'aspecte"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"Prova una nova relació d\'aspecte per veure aquesta aplicació en cas que no s\'hagi dissenyat per adaptar-se al teu dispositiu (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>)"</string>
-    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Prova una nova relació d\'aspecte per veure aquesta aplicació en cas que no s\'hagi dissenyat per adaptar-se al teu dispositiu (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>). Pot ser que algunes aplicacions no s\'optimitzin per a determinades relacions d\'aspecte."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Prova una nova relació d\'aspecte per veure aquesta aplicació en cas que no s\'hagi dissenyat per adaptar-se al teu dispositiu (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>). Pot ser que algunes aplicacions no estiguin optimitzades per a determinades relacions d\'aspecte."</string>
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Prova una nova relació d\'aspecte per veure aquesta aplicació en cas que no s\'hagi dissenyat per adaptar-se al teu dispositiu (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>)"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Prova una nova relació d\'aspecte per veure una aplicació en cas que no s\'hagi dissenyat per adaptar-se al teu dispositiu (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>). Pot ser que algunes aplicacions no s\'optimitzin per a determinades relacions d\'aspecte."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Aplicacions suggerides"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Apps canviades"</string>
-    <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Configuració predeterminada de l\'aplicació"</string>
+    <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Predeterminat de l\'aplicació"</string>
     <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Pantalla completa"</string>
     <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Mitja pantalla"</string>
     <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Relació d\'aspecte del dispositiu"</string>
@@ -4801,7 +4909,7 @@
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
     <string name="user_aspect_ratio_option_a11y" msgid="1235801996029095219">"<xliff:g id="NUMERATOR">%1$s</xliff:g> per <xliff:g id="DENOMINATOR">%2$s</xliff:g>"</string>
-    <string name="app_aspect_ratio_footer" msgid="4029509301182067475">"L\'aplicació es reiniciarà quan canviïs la relació d\'aspecte. És possible que es perdin els canvis sense desar. Pot ser que algunes aplicacions no s\'optimitzin per a determinades relacions d\'aspecte."</string>
+    <string name="app_aspect_ratio_footer" msgid="4029509301182067475">"L\'aplicació es reiniciarà quan canviïs la relació d\'aspecte. És possible que es perdin els canvis sense desar. Pot ser que algunes aplicacions no estiguin optimitzades per a determinades relacions d\'aspecte."</string>
     <string name="aspect_ratio_experimental_title" msgid="9088785421062044831">"Relació d\'aspecte (experimental)"</string>
     <string name="aspect_ratio_experiment_title" msgid="128614319422121040">"Relació d\'aspecte (experiment)"</string>
     <string name="aspect_ratio_labs_title" msgid="6733893837442759383">"Relació d\'aspecte (labs)"</string>
@@ -4860,4 +4968,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"S\'estan cercant aplicacions enganyoses"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Comprova l\'activitat de les aplicacions per detectar pesca de credencials"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Utilitza la funció de cerca per detectar aplicacions enganyoses"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Utilitza la funció de cerca per detectar aplicacions de treball enganyoses"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-cs/arrays.xml b/res/values-cs/arrays.xml
index c0b73a5..4bc26cd 100644
--- a/res/values-cs/arrays.xml
+++ b/res/values-cs/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Po 1 minutě"</item>
     <item msgid="1574040255478150028">"Po 5 minutách"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 1a736f8..e6b0b52 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Deaktivovat Bluetooth LE audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Vypne funkci zvuku přes Bluetooth LE, pokud zařízení podporuje hardwarové zvukové funkce LE."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Zobrazit přepínač LE Audio v Podrobnostech o zařízení"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Zapnout seznam povolených zařízení Bluetooth LE Audio"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Povolit funkci seznamu povolených zařízení Bluetooth LE Audio."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Obejít seznam povolených pro Bluetooth LE Audio"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Ve výchozím nastavení použít LE Audio i v případě, že u periferního zařízení LE Audio nebylo ověřeno splnění kritérií na seznamu povolených."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Mediální zařízení"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Volání na zařízení"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Ostatní zařízení"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Uložená zařízení"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Přidružení k účtu"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Dříve použito s účtem"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Za účelem spárování se Bluetooth zapne"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Předvolby připojení"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Dříve připojeno"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Psát do textových polí"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignorovat všechna stisknutí tlačítka na dotykovém peru"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Dotykové pero"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Sdílení zvuku"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Sdílet zvuk"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Hovory a budíky"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Datum a čas"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy server"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Vymazat"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Další informace o nastavení polohy"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Účty"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Zabezpečení"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Šifrování a pověření"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Pracovní profil"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Soukromý prostor"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Skrýt aplikace v soukromé složce"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Odemknout pomocí zámku obrazovky"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Zobrazit soukromý prostor"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Při uzamčení skrýt"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Při uzamčení soukromý prostor skrýt"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Pokud chcete, aby o soukromém prostoru ve vašem zařízení nikdo nevěděl, můžete ho skrýt ze seznamu aplikací"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Přístup do soukromého prostoru, když je skrytý"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Ve vyhledávacím poli vyhledejte text „soukromý prostor“."</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Klepněte na dlaždici Soukromý prostor"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Odemknutí soukromého prostoru"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Vypnuto"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Zapnuto"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Systém"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Vytvořit soukromý prostor"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Smazat soukromý prostor"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Soukromý prostor byl úspěšně vytvořen"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Soukromý prostor už existuje"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Soukromý prostor se nepodařilo vytvořit"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Soukromý prostor byl úspěšně smazán"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Soukromý prostor se nepodařilo vytvořit"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Nastavte zámek obrazovky"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Pokud chcete používat soukromý prostor, nastavte na tomto zařízení zámek obrazovky."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Nastavit zámek obrazovky"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Zrušit"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Zrušit"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Nastavit"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Nastavení soukromého prostoru"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Skryjte soukromé aplikace do zabezpečeného prostoru přístupného pouze pro vás"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Jak to funguje"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Soukromý prostor můžete otevřít ze spodní části seznamu aplikací"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Aplikace v soukromém prostoru jsou chráněny zámkem"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Když je soukromý prostor uzamčen, jsou oznámení aplikací v soukromém prostoru skryta"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Když je soukromý prostor uzamčen, aplikace v soukromém prostoru se nezobrazují ve správci oprávnění, na panelu ochrany soukromí ani v dalších nastaveních"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Nastavování soukromého prostoru…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Soukromý prostor je chráněn zámkem"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Když je soukromý prostor uzamčen, informace o využití aplikací v soukromém prostoru jsou skryty"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Přístup k soukromému prostoru ze seznamu aplikací"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Soukromý prostor se nepodařilo nastavit"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Zkuste to teď znovu nebo se vraťte později"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Zkusit znovu"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Použít k odemknutí zámek obrazovky?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Soukromý prostor můžete odemykat stejně, jako odemykáte své zařízení, nebo můžete zvolit jiný zámek"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Použít zámek obrazovky"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Zvolit nový zámek"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Hotovo!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Pokud chcete získat přístup k soukromému prostoru, přejeďte prstem ze spodní části plochy nahoru a poté přejděte dolů"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Hotovo"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Pokud chcete otevřít soukromý prostor, přejděte dolů"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Pokud chcete nastavit soukromý prostor, přihlaste se"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Maximální počet otisků prstů, které lze přidat: <xliff:g id="COUNT">%d</xliff:g>"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Přidali jste maximální počet otisků prstů"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Další otisky prstů nelze přidat"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Připojit"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Odpojit"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Spárovat a připojit"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Když je připojení Bluetooth zapnuto, vaše zařízení může komunikovat s ostatními zařízeními Bluetooth v okolí."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Když je připojení Bluetooth zapnuto, vaše zařízení může komunikovat s ostatními zařízeními Bluetooth v okolí"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Když je zapnuté připojení Bluetooth, zařízení může komunikovat s ostatními zařízeními Bluetooth v okolí.\n\nAplikace a služby mohou za účelem vylepšení funkcí nadále vyhledávat zařízení v okolí, i když je Bluetooth vypnuté. Lze tak například vylepšit funkce a služby založené na poloze. Toto chování můžete změnit v nastavení vyhledávání Bluetooth."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Změnit"</string>
     <string name="device_details_title" msgid="1155622417516195481">"O zařízení"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Povolit nástroji ART ověřovat bajtkód aplikací k ladění"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Zobrazovat frekvenci obnovení"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Zobrazovat aktuální obnovovací frekvenci displeje"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Zobrazit poměr HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Zobrazit aktuální poměr HDR/SDR"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Před použitím NFC vyžadovat odemknutí zařízení"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1137,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Při složení pokračovat v používání aplikací"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Plynulé zobrazení"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"U některého obsahu automaticky zvýší obnovovací frekvenci z 60 na <xliff:g id="ID_1">%1$s</xliff:g> Hz. Zvyšuje využití baterie."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"U některého obsahu automaticky zvýší obnovovací frekvenci až na <xliff:g id="ID_1">%1$d</xliff:g> Hz. Zvyšuje využití baterie."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Vynutit nejvyšší obnovovací frekvenci"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Vyšší obnovovací frekvence za účelem vylepšení responzivity klepnutí a kvality animace. Zvyšuje využití baterie."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Vnímavá obrazovka"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Komunální nastavení"</string>
     <string name="apn_settings" msgid="4295467389400441299">"Přístupové body"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Upravit přístupový bod"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Přidání přístupového bodu"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Nenastaveno"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Nenastaveno"</string>
     <string name="apn_name" msgid="6677695784108157953">"Název"</string>
@@ -1320,6 +1396,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"Přístupový bod je povolen"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"Přístupový bod je zakázán"</string>
     <string name="bearer" msgid="3231443241639159358">"Nositel"</string>
+    <string name="network_type" msgid="748590707422733595">"Typ sítě"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Nespecifikováno"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Typ MVNO"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"Hodnota MVNO"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Smazat přístupový bod"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Otevření pomocí tlačítka přístupnosti"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Otevřete podržením tlačítek hlasitosti"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Otevřete trojitým klepnutím na obrazovku"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Otevření provedete trojitým klepnutím dvěma prsty na obrazovku"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Otevření gestem"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Použití gesta přístupnosti"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Tuto funkci použijete klepnutím na tlačítko Přístupnost <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> v dolní části obrazovky.\n\nChcete-li přepnout mezi funkcemi, tlačítko Přístupnost podržte."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Pokud chcete použít tuto funkci, klepněte na tlačítko přístupnosti."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Tuto funkci použijete tak, že stisknete a podržíte obě tlačítka hlasitosti."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Zvětšení aktivujete nebo deaktivujete trojitým klepnutím kamkoliv na obrazovce."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Zvětšení aktivujete nebo deaktivujete trojitým klepnutím dvěma prsty kamkoliv na obrazovku."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Tuto funkci použijete tak, že přejedete dvěma prsty z dolního okraje obrazovky nahoru.\n\nPokud chcete přepnout mezi funkcemi, přejeďte dvěma prsty nahoru a podržte je."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Tuto funkci použijete tak, že přejedete třemi prsty z dolního okraje obrazovky nahoru.\n\nChcete-li přepnout mezi funkcemi, přejeďte třemi prsty nahoru a podržte je."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Funkce pro usnadnění přístupu použijete tak, že přejedete dvěma prsty z dolního okraje obrazovky nahoru.\n\nPokud chcete přepnout mezi funkcemi, přejeďte dvěma prsty nahoru a podržte je."</string>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Podržení tlačítek hlasitosti"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"podržení tlačítek 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_triple_tap" msgid="6687765191490040899">"Tojité klepnutí na obrazovku dvěma prsty"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"trojité klepnutí na obrazovku dvěma prsty"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"Rychle {0,number,integer}krát klepnout 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="6863958573135995927">"trojité klepnutí na obrazovku"</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>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Používat vibrace a hmatovou odezvu"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Vibrace u budíku"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Vibrace u médií"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Vibrace klávesnice"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Vibrace při vyzvánění"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Vibrace při oznámení"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Odezva při klepnutí"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"Zbývá <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> do nabití"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Doba na obrazovce"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Doba běhu na pozadí"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Slabá baterie"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Povolit aplikaci spouštění na pozadí"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Omezit aktivitu na pozadí?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Pokud u aplikace omezíte aktivitu na pozadí, může dojít k nepředvídatelnému chování"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Aplikace není nastavena k optimalizaci baterie, nelze ji tedy omezit.\n\nChcete-li ji omezit, nejprve zapněte optimalizaci."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Správa využití baterie"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Povolení použití na pozadí"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Aktivujte, pokud máte zájem o aktualizace v reálném čase, deaktivujte, pokud chcete šetřit baterii"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Neomezeno"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Optimalizováno"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Omezeno"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"od posledního úplného nabití"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Systémové aplikace"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Odinstalované aplikace"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Jiné"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Odhadovaný zbývající čas"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Do úplného nabití"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Celkem: méně než minuta"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Na pozadí: méně než minuta"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Doba používání: méně než minuta"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Méně než minuta"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Celkem: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Na pozadí: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Doba používání: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Mobilní data a Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Automaticky synchronizovat osobní data"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Automaticky synchronizovat pracovní data"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Automatická synchronizace soukromých dat"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Změnit cyklus..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Den v měsíci, kdy se má obnovit počítání datových přenosů:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"V tomto období nevyužily datové připojení žádné aplikace."</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"velikost textu, velké písmo, velký text, slabozrakost, zvětšení textu, zvětšovač písma, zvětšení písma"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"vždy zapnuté ambientní zobrazení, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, štítek, čtečka"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"klávesnice, hmatová odezva, vibrace,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Hlasitost, vibrace, režim Nerušit"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Hlasitost médií"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Hlasitost odesílání"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Zobrazovat veškerý obsah oznámení"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Citlivý obsah zobrazovat jen po odemknutí"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Oznámení vůbec nezobrazovat"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Jak chcete obrazovku uzamčení zobrazovat?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Obrazovka uzamčení"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Zobrazí se veškerý obsah pracovních oznámení"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Skrýt citlivý pracovní obsah"</string>
@@ -3354,6 +3448,17 @@
     <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="6121016426991791557">"Zeslabení oznámení"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Použít zeslabení u všech oznámení"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Postupně snižovat hlasitost oznámení, když dostáváte mnoho oznámení za sebou ze stejné aplikace"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Použít zeslabení u konverzací"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Postupně snižovat hlasitost oznámení, když v krátké době dostáváte mnoho zpráv ze stejného chatu"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Nepoužívat zeslabení u oznámení"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Nikdy nesnižovat hlasitost oznámení bez ohledu na množství oznámení za sebou ze stejné aplikace"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Vibrovat při odemknutí"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Vibrovat jen při odemknuté obrazovce"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Použít na pracovní profily"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Použít nastavení zeslabení oznámení z osobního profilu také v pracovním profilu"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Pomocné služby VR"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Žádné nainstalované aplikace nepožádaly o spuštění jako pomocná služba VR."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Povolit službě <xliff:g id="SERVICE">%1$s</xliff:g> přístup ke službě virtuální reality?"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Povolit přístup ke správě všech souborů"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Když tuto možnost povolíte, aplikace bude moci načítat, upravovat a mazat soubory v tomto zařízení a v připojených úložištích. Aplikace bude mít přístup k souborům i bez vašeho vědomí."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Mají přístup ke všem souborům"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Aplikace aktivované hlasem"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Povolit hlasovou aktivaci"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Hlasová aplikace zapne schválené aplikace po vyslovení hlasového příkazu, handsfree. Vestavěné adaptivní zjišťování zajišťuje, abyste k datům měli přístup pouze vy.\n\n"<a href="">"Další informace o chráněném adaptivním zjišťování"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Oznámení na celou obrazovku"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Povolte oznámení z této aplikace na celou obrazovku"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Povolte této aplikaci zobrazovat oznámení na celou obrazovku, když bude zařízení zamknuté. Aplikace tak mohou zvýraznit budíky, příchozí hovory a další důležitá oznámení."</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"Aplikace <xliff:g id="APP_LABEL">%1$s</xliff:g> spotřebovala na pozadí více baterie než obvykle"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"Aplikace <xliff:g id="APP_LABEL">%1$s</xliff:g> spotřebovala v popředí více baterie"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"Aplikace <xliff:g id="APP_LABEL">%1$s</xliff:g> spotřebovala v popředí více baterie než obvykle"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Vysoké využití baterie"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Vysoké využití baterie na pozadí"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Vysoké využití baterie v popředí"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"systémová navigace, navigace dvěma tlačítky, navigace třemi tlačítky, navigace gesty, přejetí prstem"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Digitální asistent"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Vyvolat asistenta přejetím prstem"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Aplikaci digitálního asistenta vyvoláte přejetím prstem nahoru ze spodního rohu obrazovky."</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Aplikaci digitálního asistenta vyvoláte přejetím prstem nahoru ze spodního rohu obrazovky"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Aktivovat Asistenta podržením tlačítka plochy"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Aplikaci digitálního asistenta vyvoláte podržením tlačítka plochy."</string>
     <string name="low_label" msgid="6525629096999711220">"Nízká"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"data, přístupový klíč, heslo"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"automatické, vyplňování, automatické vyplňování, údaje, přístupový klíč, heslo"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Zkontrolujte, zda se jedná o důvěryhodnou aplikaci&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Automatické doplňování Google&gt;%1$s&lt;/xliff:g&gt; určuje, co lze automaticky vyplnit, na základě obsahu obrazovky."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Použít &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; používá obsah obrazovky k určení, co lze automaticky vyplnit. Odteď se sem budou ukládat nová hesla, přístupové klíče a další údaje."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Používat aplikaci &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Nová hesla, přístupové klíče a další informace se budou od této chvíle ukládat sem. Aplikace &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; může používat obsah obrazovky k určení, co lze automaticky vyplnit."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Hesla, přístupové klíče a datové služby"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Vypnout poskytovatele %1$s?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Vypnout tuto službu?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Při přihlášení se nebudou vyplňovat uložené údaje, jako jsou hesla, přístupové klíče, platební metody a podobně. Pokud chcete používat uložené údaje, zvolte heslo, přístupový klíč nebo datovou službu."</string>
@@ -4226,10 +4336,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <string name="enable_angle_as_system_driver" msgid="4648827560023949786">"Experimentální: Povolte ANGLE"</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Upozornění: Povolte ANGLE jako výchozí ovladač OpenGL ES. Tato funkce je experimentální a nemusí být kompatibilní s některými aplikacemi na ovládání kamery a tvorbu videa."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"Změna systémového ovladače OpenGL ES vyžaduje restart"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Změny kompatibility aplikací"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Přepínat změny kompatibility aplikací"</string>
@@ -4789,10 +4897,8 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Poměr stran"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"Vyzkoušejte nový poměr stran, ve kterém se bude aplikace zobrazovat, pokud není určena pro rozměr obrazovky vašeho zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Vyzkoušejte nový poměr stran, ve kterém se bude aplikace zobrazovat, pokud není určena pro rozměr obrazovky vašeho zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Některé aplikace nemusí být optimalizované pro určité poměry stran."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Vyzkoušejte nový poměr stran, ve kterém se bude aplikace zobrazovat, pokud není určena pro rozměr obrazovky vašeho zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Vyzkoušejte nový poměr stran, ve kterém se bude aplikace zobrazovat, pokud není určena pro rozměr obrazovky vašeho zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Některé aplikace nemusí být optimalizované pro určité poměry stran."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Navrhované aplikace"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Změněné aplikace"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Výchozí možnost aplikace"</string>
@@ -4862,4 +4968,10 @@
     <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">"Mluvnický rod"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Vyberte mluvnický rod"</string>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Vyhledávání podvodných aplikací"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Kontrola aplikace ohledně phishingu"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Používat detekci podvodných aplikací"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Používat detekci podvodných pracovních aplikací"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-da/arrays.xml b/res/values-da/arrays.xml
index cfc4b97..85bc7b6 100644
--- a/res/values-da/arrays.xml
+++ b/res/values-da/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Efter 1 minut"</item>
     <item msgid="1574040255478150028">"Efter 5 minutter"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index f59a22d..202f960 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Deaktiver Bluetooth LE-lyd"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Deaktiverer funktionen Bluetooth LE-lyd, hvis enheden understøtter denne LE-lyd til hardware."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Vis kontakten til LE-lyd i Enhedsoplysninger"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Aktivér tilladelseslisten for Bluetooth LE-lyd"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Aktivér funktionen for tilladelseslisten for Bluetooth LE-lyd"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Omgå tilladelsesliste for Bluetooth LE-lyd"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Brug LE-lyd som standard, selvom det ikke er verificeret, at den eksterne LE-lydenhed opfylder kriterierne for tilladelseslisten."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Medieenheder"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Opkaldsenheder"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Andre enheder"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Gemte enheder"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Knyttet til kontoen"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Tidligere anvendt med kontoen"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth aktiveres for at parre"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Præferencer for forbindelser"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Tidligere forbindelser"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Skriv i tekstfelter"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignorer alle tryk på styluspen-knappen"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Styluspen"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Deling af lyd"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Del lyd"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Opkald og alarmer"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Dato og klokkeslæt"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Ryd"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Få flere oplysninger om lokationsindstillinger"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Konti"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Sikkerhed"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Kryptering og loginoplysninger"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Arbejdsprofil"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Privat rum"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Skjul apps i en privat mappe"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Lås op ved hjælp af en skærmlås"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Vis det private rum"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Skjul, når det er låst"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Skjul det private rum, når det er låst"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Hvis andre ikke må kende til det private rum på din enhed, kan du skjule det på listen over apps"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Åbn dit private rum, når det er skjult"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Søg efter \"privat rum\" i søgefeltet"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Tryk på handlingsfeltet Privat rum"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Lås dit private rum op"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Fra"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Til"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"System"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Opret et privat rum"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Slet det private rum"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Det private rum er oprettet"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Det private rum eksisterer allerede"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Det private rum kunne ikke oprettes"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Det private rum er slettet"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Det private rum kunne ikke slettes"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Konfigurer en skærmlås"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Konfigurer en skærmlås på enheden for at bruge private rum"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Konfigurer skærmlås"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Annuller"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Annuller"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Konfigurer"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Konfigurer et privat rum"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Skjul private apps et sikkert sted, som kun du har adgang til"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Sådan fungerer det"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Du få adgang til det private rum nederst på din liste over apps"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Apps i et privat rum er beskyttet af en lås"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Notifikationer fra apps i det private rum er skjult, når det private rum er låst"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Apps i et privat rum vises ikke i tilladelsesmanager, privatlivspanelet eller andre indstillinger, når det private rum er låst"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Konfigurerer et privat rum…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Det private rum er beskyttet af en lås"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Oplysninger om brug for apps i et privat rum er skjult, når det private rum er låst"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Få adgang til dit private rum via din liste over apps"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Det private rum kunne ikke konfigureres"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Prøv igen nu, eller vend tilbage senere"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Prøv igen"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Vil du bruge skærmlås til at låse op?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Du kan låse op for det private rum på samme måde, som du låser din enhed op, eller ved at vælge en anden lås"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Brug skærmlås"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Vælg en ny lås"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Det var det hele."</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Stryg opad fra bunden af startskærmen, og rul ned for at få adgang til dit private rum"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Udfør"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Rul ned for at få adgang til det private rum"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Log ind for at konfigurere Private Space"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Du kan tilføje op til <xliff:g id="COUNT">%d</xliff:g> fingeraftryk"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Du har tilføjet det maksimale antal fingeraftryk"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Du kan ikke tilføje flere fingeraftryk"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Forbind"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Afbryd"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Par og forbind med denne enhed"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Når Bluetooth er aktiveret, kan enheden kommunikere med andre Bluetooth-enheder i nærheden."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Når Bluetooth er aktiveret, kan din enhed kommunikere med andre Bluetooth-enheder i nærheden.\n\nFor at forbedre enhedsoplevelsen kan apps og tjenester stadig til enhver tid søge efter enheder i nærheden, også selvom Bluetooth er deaktiveret. Dette kan f.eks. bruges til at forbedre lokationsbaserede funktioner og tjenester. Du kan ændre dette i indstillingerne for Bluetooth-scanning."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Rediger"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Enhedsoplysninger"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Tillad, at ART verificerer bytekoden for apps, der kan fejlrettes"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Vis opdateringshastighed"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Vis skærmens aktuelle opdateringshastighed"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Vis HDR-/SDR-forhold"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Vis det aktuelle HDR-/SDR-forhold"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Kræv, at enheden låses op til NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Fortsæt med at bruge apps på Fold"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Øger automatisk opdateringshastigheden fra 60 til <xliff:g id="ID_1">%1$s</xliff:g> Hz for noget indhold. Medfører højere batteriforbrug."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Øger automatisk opdateringshastigheden op til <xliff:g id="ID_1">%1$d</xliff:g> Hz for noget indhold. Medfører højere batteriforbrug."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Gennemtving højeste opdateringshastighed"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Den højeste opdateringshastighed, som giver forbedret animationskvalitet og reaktionsevne ved berøring. Medfører højere batteriforbrug."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Opmærksom skærm"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Fælles indstillinger"</string>
     <string name="apn_settings" msgid="4295467389400441299">"Adgangspunkter"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Rediger adgangspunkt"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Tilføj adgangspunkt"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Ikke angivet"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Ikke angivet"</string>
     <string name="apn_name" msgid="6677695784108157953">"Navn"</string>
@@ -1320,6 +1397,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"Adgangspunktet er aktiveret"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"Adgangspunktet er deaktiveret"</string>
     <string name="bearer" msgid="3231443241639159358">"Bærer"</string>
+    <string name="network_type" msgid="748590707422733595">"Netværkstype"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Ikke angivet"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO-type"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO-værdi"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Slet adgangspunkt"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Brug knappen til hjælpefunktioner til at åbne"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Hold lydstyrkeknapperne nede for at åbne"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Tryk tre gange på skærmen for at åbne"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Tryk tre gange på skærmen med to fingre for at åbne"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Brug en bevægelse til at åbne"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Brug bevægelsen for hjælpefunktioner"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Tryk på knappen til hjælpefunktioner <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> nederst på skærmen for at bruge denne funktion.\n\nDu kan skifte mellem funktioner ved at holde knappen til hjælpefunktioner nede."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Tryk på knappen til hjælpefunktioner på din skærm for at bruge denne funktion."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Hold begge lydstyrkeknapper nede for at bruge denne funktion."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Du kan starte og stoppe forstørrelse ved at trykke tre gange på skærmen."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Du kan starte og stoppe forstørrelse ved at trykke tre gange på skærmen med to fingre."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Stryg opad fra bunden af skærmen med to fingre for at bruge denne funktion.\n\nDu kan skifte mellem funktioner ved at stryge opad med to fingre og holde dem nede."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Stryg opad fra bunden af skærmen med tre fingre for at bruge denne funktion.\n\nDu kan skifte mellem funktioner ved at stryge opad med tre fingre og holde dem nede."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Stryg opad fra bunden af skærmen med to fingre for at bruge en hjælpefunktion.\n\nDu kan skifte mellem funktioner ved at stryge opad med to fingre og holde dem nede."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Hold lydstyrkeknapperne nede"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"hold lydstyrkeknapperne nede"</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_triple_tap" msgid="6687765191490040899">"Tryk tre gange på skærmen med to fingre"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"tryk tre gange på skærmen med to fingre"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"tryk tre gange på skærmen"</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>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Brug vibration og haptik"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Vibration for alarm"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Vibration for medier"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Tastaturvibration"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Vibration ved opkald"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Vibration ved notifikation"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Feedback ved tryk"</string>
@@ -2192,7 +2277,7 @@
     <string name="keywords_accessibility" msgid="8593989878379366798">"syn, hørelse, blind, døv, mobilitet, fingerbevægelighed, hjælp, hjælpefunktion, brugervenlighed, nem adgang, hånd, assistance"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Forstørrelse af vindue, zoom, forstørrelse, nedsat syn, forstør, gør større"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
-    <string name="keywords_live_caption" msgid="1667203998080567556">"Tekster, undertekster for hørehæmmede, undertekster, Live transskribering, hørehæmmet, hørelsestab, CART, indtaling, undertekst"</string>
+    <string name="keywords_live_caption" msgid="1667203998080567556">"Tekster, undertekster for hørehæmmede, undertekster, Livetransskribering, hørehæmmet, hørelsestab, CART, indtaling, undertekst"</string>
     <string name="keywords_live_transcribe" msgid="3226990195174890997"></string>
     <string name="keywords_sound_notifications" msgid="8183107485754075413"></string>
     <string name="keywords_sound_amplifier" msgid="939404835256246663"></string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> tilbage"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> til batteriet er opladt"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Skærmtid"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Tid i baggrunden"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Lavt batteriniveau"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Giv appen tilladelse til at køre i baggrunden"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Vil du begrænse baggrundsaktiviteten?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Hvis du begrænser en apps baggrundsaktivitet, kan det medføre, at den ikke fungerer korrekt"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Appen kan ikke begrænses, da batterioptimering er deaktiveret.\n\nAktivér batterioptimering for at begrænse appen."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Administrer batteriforbrug"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Tillad brug i baggrunden"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Aktivér for at få opdateringer i realtid, deaktiver for at spare på batteriet"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Ubegrænset"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Optimeret"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Begrænset"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"siden sidste fulde opladning"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Systemapps"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Afinstallerede apps"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Andre"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Estimeret resterende tid"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Indtil den er fuldt opladet"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"I alt: Under et minut"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Baggrund: Under et minut"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Skærmtid: Under et minut"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Mindre end et minut"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"I alt: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Baggrund: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Skærmtid: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Mobildata og Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Automatisk synk. af persondata"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Synkroniser arbejdsdata automatisk"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Automatisk synkronisering af private data"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Skift cyklus..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Dag i måneden, hvor cyklus for dataforbrug skal nulstilles"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Ingen apps har brugt data i denne periode."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"tekststørrelse, stor skrifttype, store bogstaver, stor skrifttype, stor tekst, nedsat syn, gør teksten større, større skrifttype, forstørrelse af skrifttype"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"altid tændt pauseskærm, AOD (always on ambient display)"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, tag, læser"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"tastatur, haptisk teknologi, vibration"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Lydstyrke, vibration, Forstyr ikke"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Lydstyrke for medier"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Lydstyrke for castet indhold"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Vis alt indhold i notifikationer"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Vis kun følsomt indhold, når skærmen er låst op"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Vis slet ingen notifikationer"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Hvordan skal låseskærmen vises?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Låseskærm"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Vis alt indhold i arbejdsnotifikationer"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Skjul følsomt arbejdsindhold"</string>
@@ -3354,6 +3449,17 @@
     <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="6121016426991791557">"Dæmpning af notifikationer"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Anvend dæmpning på alle notifikationer"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Dæmp gradvist lydstyrken for notifikationer, når du får mange notifikationer i træk fra samme app"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Anvend dæmpning på alle samtaler"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Sænk gradvist lydstyrken for notifikationer, når du får mange beskeder fra samme chat på kort tid"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Brug ikke dæmpning for notifikationer"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Sænk aldrig lydstyrken for notifikationer, uanset hvor mange notifikationer du får i træk fra samme app"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Vibrer, når enheden er ulåst"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Vibrer kun, når skærmen er ulåst"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Anvend på arbejdsprofiler"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Anvend indstillingen for dæmpning af notifikationer fra din personlige profil på din arbejdsprofil"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR-hjælpetjenester"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Ingen installerede apps har anmodet om at blive kørt som VR-hjælpetjenester."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Vil du tillade, at <xliff:g id="SERVICE">%1$s</xliff:g> får adgang til VR-tjenesten?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Tillad administrationsadgang til alle filer"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Giv denne app tilladelse til at læse, ændre og slette alle filer på denne enhed eller andre tilsluttede lagringsløsninger. Hvis du giver tilladelse til dette, kan appen få adgang til dine filer, uden du specifikt bliver gjort opmærksom på det."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Kan få adgang til alle filer"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Stemmeaktiverede apps"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Tillad stemmeaktivering"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Stemmeaktivering aktiverer godkendte apps håndfrit ved hjælp af stemmekommandoer. Indbygget adaptiv registrering sørger for, at dine private data forbliver beskyttet.\n\n"<a href="">"Få flere oplysninger om beskyttelse med adaptiv registrering"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Notifikationer i fuld skærm"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Tillad notifikationer i fuld skærm fra denne app"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Tillad appen at vise notifikationer, der fylder hele skærmen, når enheden er låst. Apps kan benytte denne mulighed til at fremhæve alarmer, indgående opkald og andre presserende notifikationer."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> brugte mere batteri end normalt i baggrunden"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> brugte mere batteri i forgrunden"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> brugte mere batteri end normalt i forgrunden"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Højt batteriforbrug"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Højt batteriforbrug i baggrunden"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Højt batteriforbrug i forgrunden"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"systemnavigering, navigering med to knapper, navigering med tre knapper, navigering med bevægelser, stryg"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Digital assistent"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Stryg for at aktivere assistenten"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Stryg opad fra et af de nederste hjørner for at aktivere appen for din digitale assistent."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Hold knappen Hjem nede for at aktivere Assistent"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Hold knappen Hjem nede for at aktivere appen for den digitale assistent."</string>
     <string name="low_label" msgid="6525629096999711220">"Lav"</string>
@@ -4083,7 +4195,7 @@
     <string name="enterprise_privacy_enterprise_installed_packages" msgid="9114143640515900082">"Installerede apps"</string>
     <string name="enterprise_privacy_apps_count_estimation_info" msgid="7959907857710107792">"Antallet af apps er et skøn. Apps, der er blevet installeret uden for Play Butik, er muligvis ikke medregnet."</string>
     <string name="enterprise_privacy_number_packages_lower_bound" msgid="5317634640873658149">"{count,plural, =1{Mindst # app}one{Mindst # app}other{Mindst # apps}}"</string>
-    <string name="enterprise_privacy_location_access" msgid="8023838718108456971">"Adgangstilladelser til lokation"</string>
+    <string name="enterprise_privacy_location_access" msgid="8023838718108456971">"Lokationstilladelser"</string>
     <string name="enterprise_privacy_microphone_access" msgid="7242958026470143653">"Adgangstilladelser til mikrofon"</string>
     <string name="enterprise_privacy_camera_access" msgid="7685460535880069016">"Adgangstilladelser til kamera"</string>
     <string name="enterprise_privacy_enterprise_set_default_apps" msgid="7498546659083996300">"Standardapps"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"data, adgangsnøgle, adgangskode"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"automatisk, udfyldning, autofyld, data, adgangsnøgle, adgangskode"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Sørg for, at du har tillid til denne app&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; anvender indholdet af din skærm til at fastslå, hvad der kan udfyldes automatisk."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Vil du bruge &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; bruger det, der vises på din skærm, til at afgøre, hvad der kan udfyldes automatisk. Nye adgangskoder, adgangsnøgler og andre nye oplysninger gemmes her fra nu af."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Brug &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Fra nu af gemmes nye adgangskoder, adgangsnøgler og andre oplysninger her. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; kan bruge, hvad der er på din skærm, til at vurdere, hvad der kan udfyldes automatisk."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Adgangskoder, adgangsnøgler og datatjenester"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Vil du deaktivere %1$s?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Vil du deaktivere denne tjeneste?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Gemte oplysninger som f.eks. adgangskoder, adgangsnøgler, betalingsmetoder og andre oplysninger udfyldes ikke, når du logger ind. Hvis du vil bruge dine gemte oplysninger, skal du vælge en adgangskode, en adgangsnøgle eller en datatjeneste."</string>
@@ -4227,7 +4339,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">"Eksperimentel: Aktivér ANGLE"</string>
-    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Advarsel! Aktivér ANGLE som OpenGL ES-standarddriver. Denne funktion er under udvikling og er muligvis ikke kompatibel med nogle kamera- og videoapps."</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Advarsel! Aktivér ANGLE som OpenGL ES-standarddriver. Denne funktion er under udvikling og er muligvis ikke kompatibel med visse kamera- og videoapps."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"Du skal genstarte for at ændre OpenGL ES-systemdriveren"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Ændringer i appkompatibilitet"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Skift appens kompatibilitetsændringer"</string>
@@ -4785,10 +4897,8 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Billedformat"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"Prøv et nyt billedformat for at se denne app, hvis den ikke er designet til at vises korrekt på din <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Prøv et nyt billedformat for at se denne app, hvis den ikke er designet til at vises korrekt på din <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Visse apps er muligvis ikke optimeret til bestemte billedformater."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Prøv et nyt billedformat for at se en app, hvis den ikke er designet til at vises korrekt på din <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Prøv et nyt billedformat for at se en app, hvis den ikke er designet til at vises korrekt på din <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Visse apps er muligvis ikke optimeret til bestemte billedformater."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Foreslåede apps"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Ændrede apps"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Standardindstilling for appen"</string>
@@ -4858,4 +4968,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Scanning af vildledende apps"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Tjek appaktivitet for phishing"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Brug scanning til at registrere vildledende apps"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Brug scanning til at registrere vildledende arbejdsapps"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-de/arrays.xml b/res/values-de/arrays.xml
index de855c4..0ebf788 100644
--- a/res/values-de/arrays.xml
+++ b/res/values-de/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Nach 1 Minute"</item>
     <item msgid="1574040255478150028">"Nach 5 Minuten"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index c707f86..fa9a2a4 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Bluetooth LE Audio deaktivieren"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Deaktiviert die Bluetooth LE Audio-Funktion, wenn das Gerät LE Audio-Hardwarefunktionen unterstützt."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Ein/Aus für LE Audio in Gerätedetails"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Zulassungsliste für Bluetooth LE-Audio aktivieren"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Aktiviert die Zulassungslistenfunktion für Bluetooth LE-Audio."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Bluetooth LE Audio-Zulassungsliste umgehen"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"LE Audio wird standardmäßig verwendet, selbst wenn ein LE Audio-Peripheriegerät nicht die Kriterien der Zulassungsliste erfüllt."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Mediengeräte"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Anrufgeräte"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Andere Geräte"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Gespeicherte Geräte"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Mit Konto verknüpft"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Zuvor mit Konto verwendet"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth wird aktiviert, um das Koppeln zu ermöglichen"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Verbindungs­einstellungen"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Zuletzt verbundene Geräte"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Textfelder ausfüllen"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Drücken der Taste am Eingabestift ignorieren"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Eingabestift"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Audiofreigabe"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Audioinhalte freigeben"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Anrufe und Wecker"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Datum &amp; Uhrzeit"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Löschen"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Weitere Informationen zu Standorteinstellungen"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Konten"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Sicherheit"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Verschlüsselung &amp; Anmeldedaten"</string>
@@ -283,7 +296,7 @@
     <string name="disabled_by_administrator_summary" msgid="5424846182313851124">"Nicht verfügbar"</string>
     <string name="security_status_title" msgid="6958004275337618656">"Sicherheitsstatus"</string>
     <string name="security_dashboard_summary" msgid="7571035662779425918">"Displaysperre, „Mein Gerät finden“, App-Sicherheit"</string>
-    <string name="safety_center_title" msgid="7732397372178774777">"Sicherheit und Datenschutz"</string>
+    <string name="safety_center_title" msgid="7732397372178774777">"Datenschutz &amp; Sicherheit"</string>
     <string name="safety_center_summary" msgid="3554867379951053869">"App-Sicherheit, Gerätesperre, Berechtigungen"</string>
     <string name="security_settings_face_preference_summary" msgid="6675126437396914838">"Gesicht hinzugefügt"</string>
     <string name="security_settings_face_preference_summary_none" msgid="523320857738436024">"Einrichtung erforderlich"</string>
@@ -535,16 +548,77 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Arbeitsprofil"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Privater Bereich"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Apps in privatem Ordner verstecken"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Mit Displaysperre entsperren"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Privaten Bereich anzeigen"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Ausblenden, wenn gesperrt"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"„Privater Bereich“ ausblenden, wenn gesperrt"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Blende „Privater Bereich“ in deiner App-Liste aus, damit niemand weiß, dass dieser Bereich auf deinem Gerät ist"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Auf „Privater Bereich“ zugreifen, wenn ausgeblendet"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"In Suchleiste nach „Privater Bereich“ suchen"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Tippe auf die Kachel für „Privater Bereich“"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Entsperre „Privater Bereich“"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Aus"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"An"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"System"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Privaten Bereich erstellen"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Privaten Bereich löschen"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Privater Bereich wurde erstellt"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Privater Bereich ist bereits vorhanden"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Privater Bereich konnte nicht erstellt werden"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Privater Bereich wurde gelöscht"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Privater Bereich konnte nicht gelöscht werden"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Displaysperre einrichten"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Zur Nutzung von „Privater Bereich“ auf dem Gerät Displaysperre einrichten."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Displaysperre einrichten"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Abbrechen"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Abbrechen"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Einrichten"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"„Privater Bereich“ einrichten"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Interne Apps in einem sicheren Bereich ausblenden, auf den nur du zugreifen kannst"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"So funktionierts"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Auf „Privater Bereich“ lässt sich vom unteren Teil deiner App-Liste zugreifen"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Apps in „Privater Bereich“ sind durch eine Sperre geschützt"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Benachrichtigungen von Apps im privaten Bereich werden nicht angezeigt, wenn dieser gesperrt ist"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Apps im privaten Bereich werden nicht im Berechtigungsmanager, im Privatsphäredashboard und in anderen Einstellungen angezeigt, wenn der private Bereich gesperrt ist"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Der private Bereich wird eingerichtet…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Der private Bereich ist durch eine Sperre geschützt"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Informationen zur Nutzung von Apps im privaten Bereich sind verborgen, wenn dieser gesperrt ist"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Über die App-Liste auf den privaten Bereich zugreifen"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Der private Bereich konnte nicht eingerichtet werden"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Du kannst es jetzt oder später noch einmal versuchen"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Wiederholen"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Displaysperre zum Entsperren verwenden?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Du kannst den privaten Bereich auf dieselbe Weise entsperren wie dein Gerät oder eine andere Sperre auswählen"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Displaysperre verwenden"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Neue Sperre auswählen"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Fertig!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Wische vom unteren Rand deines Startbildschirms nach oben und scrolle dann nach unten, um auf den privaten Bereich zuzugreifen"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Fertig"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Scrolle nach unten, um auf den privaten Bereich zuzugreifen"</string>
+    <!-- no translation found for privatespace_retry_signin_title (495054309243289223) -->
+    <skip />
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Du kannst bis zu <xliff:g id="COUNT">%d</xliff:g> Fingerabdrücke hinzufügen."</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Du hast die maximale Anzahl an Fingerabdrücken hinzugefügt"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Es können keine Fingerabdrücke mehr hinzugefügt werden"</string>
@@ -708,7 +782,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Verbinden"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Verbindung trennen"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Koppeln und verbinden"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Bei aktiviertem Bluetooth kann dein Gerät mit Bluetooth-Geräten in der Nähe kommunizieren."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Bei aktiviertem Bluetooth kann dein Gerät mit Bluetooth-Geräten in der Nähe kommunizieren"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Bei aktiviertem Bluetooth kann dein Gerät mit anderen Bluetooth-Geräten in der Nähe kommunizieren.\n\nDamit es optimal funktioniert, können Apps und Dienste immer nach Geräten in der Nähe suchen, auch wenn Bluetooth deaktiviert ist. Dadurch werden beispielsweise standortbasierte Funktionen und Dienste verbessert. Dies lässt sich in den Bluetooth-Sucheinstellungen ändern."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Ändern"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Gerätedetails"</string>
@@ -761,6 +835,10 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"ART die Überprüfung des Bytecodes für debug-fähige Apps gestatten"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Aktualisierungsrate anzeigen"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Aktuelle Aktualisierungsrate des Displays anzeigen"</string>
+    <!-- no translation found for show_hdr_sdr_ratio (4188007289024955585) -->
+    <skip />
+    <!-- no translation found for show_hdr_sdr_ratio_summary (986292785096013733) -->
+    <skip />
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Für NFC muss das Gerät entsperrt werden"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1140,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Apps weiterhin verwenden, wenn das Gerät zusammengeklappt ist"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Setzt die Aktualisierungsrate für einige Inhalte automatisch von 60 auf <xliff:g id="ID_1">%1$s</xliff:g> Hz herauf. Erhöht den Akkuverbrauch."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Setzt die Aktualisierungsrate für einige Inhalte automatisch auf <xliff:g id="ID_1">%1$d</xliff:g> Hz herauf. Dadurch wird die Akkunutzung erhöht."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Maximale Aktualisierungsrate erzwingen"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Höchste Aktualisierungsrate für bessere Touchscreen-Reaktion und flüssigere Animationen. Erhöhter Akkuverbrauch."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Aufmerksamkeitserkennung"</string>
@@ -1298,6 +1376,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Gemeinschaftliche Einstellungen"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APNs"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Zugangspunkt bearbeiten"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Zugangspunkt hinzufügen"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Nicht definiert"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Nicht festgelegt"</string>
     <string name="apn_name" msgid="6677695784108157953">"Name"</string>
@@ -1320,6 +1399,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN aktiviert"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN deaktiviert"</string>
     <string name="bearer" msgid="3231443241639159358">"Träger"</string>
+    <string name="network_type" msgid="748590707422733595">"Netzwerktyp"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Keine Angabe"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO-Typ"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO-Wert"</string>
     <string name="menu_delete" msgid="9199740901584348273">"APN löschen"</string>
@@ -1930,19 +2011,21 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Zum Öffnen Schaltfläche „Bedienungshilfen“ nutzen"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Zum Öffnen die Lautstärketasten gedrückt halten"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Zum Öffnen dreimal auf das Display tippen"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Zum Öffnen mit zwei Fingern dreimal auf das Display tippen"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Zum Öffnen Touch-Geste verwenden"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Touch-Geste für Bedienungshilfen verwenden"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Wenn du diese Funktion verwenden möchtest, tippe unten auf dem Display auf die Schaltfläche \"Bedienungshilfen\" <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>.\n\nWenn du zwischen den Funktionen wechseln möchtest, halte diese Schaltfläche gedrückt."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Tippe zum Verwenden dieser Funktion auf dem Display auf die Schaltfläche „Bedienungshilfen“."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Wenn du diese Funktion verwenden möchtest, halte beide Lautstärketasten gedrückt."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Tippe dreimal auf das Display, um die Vergrößerung zu starten oder zu beenden."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Tippe zum Starten oder Beenden der Vergrößerung mit zwei Fingern dreimal auf eine beliebige Stelle des Displays."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Wenn du diese Funktion verwenden möchtest, wische vom unteren Displayrand mit zwei Fingern nach oben.\n\nWenn du zwischen den Funktionen wechseln möchtest, wische mit zwei Fingern über das Display nach oben und halte."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Wenn du diese Funktion verwenden möchtest, wische vom unteren Displayrand mit drei Fingern nach oben.\n\nWenn du zwischen den Funktionen wechseln möchtest, wische mit drei Fingern über das Display nach oben und halte."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Wenn du eine Bedienungshilfe verwenden möchtest, wische vom unteren Displayrand mit zwei Fingern nach oben.\n\nWenn du zwischen den Funktionen wechseln möchtest, wische mit zwei Fingern über das Display nach oben und halte."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Wenn du eine Bedienungshilfe verwenden möchtest, wische vom unteren Displayrand mit drei Fingern nach oben.\n\nWenn du zwischen den Funktionen wechseln möchtest, wische mit drei Fingern über das Display nach oben und halte."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"OK"</string>
     <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Schaltflächeneinstellungen"</string>
-    <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Kurzbefehl für „<xliff:g id="SERVICE">%1$s</xliff:g>“"</string>
+    <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Kurzbefehl für <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Schaltfläche „Bedienungshilfen“"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Touch-Geste für Bedienungshilfen"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_gesture" msgid="8078659880723370597">"Mit zwei Fingern nach oben wischen"</string>
@@ -1957,6 +2040,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Lautstärketasten gedrückt halten"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"Lautstärketasten gedrückt halten"</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_triple_tap" msgid="6687765191490040899">"Mit zwei Fingern dreimal auf das Display tippen"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"mit zwei Fingern dreimal auf das Display tippen"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"dreimal auf den Bildschirm 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>
@@ -2044,6 +2130,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Vibration &amp; haptisches Feedback verwenden"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Vibration für Wecker"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Vibration für Medien"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Tastenvibration"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Vibration bei Klingeln"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Vibration bei Benachrichtigungseingang"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Haptisches Feedback"</string>
@@ -2245,11 +2332,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"Noch <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"Verbleibende Ladezeit: <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g>"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Bildschirmzeit"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Hintergrundzeit"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Niedriger Akkustand"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"App darf im Hintergrund ausgeführt werden"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Hintergrundaktivität einschränken?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Wenn du die Hintergrundaktivität einer App einschränkst, kann dies zu unerwünschtem Verhalten führen"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Da bei dieser App die Akkunutzung nicht optimiert wird, kannst du sie nicht einschränken.\n\nDu musst du zunächst die Akkuoptimierung aktivieren."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Akkunutzung verwalten"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Hintergrundnutzung zulassen"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Du kannst die Hintergrundnutzung aktivieren, um Updates in Echtzeit herunterzuladen, oder deaktivieren, um die Akkulaufzeit zu verlängern"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Uneingeschränkt"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Optimiert"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Eingeschränkt"</string>
@@ -2348,6 +2440,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"seit dem letzten kompletten Aufladen"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"System-Apps"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Deinstallierte Apps"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Sonstige"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Geschätzte verbleibende Akkulaufzeit"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Bis zur vollständigen Aufladung"</string>
@@ -2391,6 +2484,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Gesamt: weniger als eine Minute"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Hintergrund: weniger als eine Minute"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Bildschirmzeit: weniger als eine Minute"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Weniger als eine Minute"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Gesamt: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Hintergrund: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Bildschirmzeit: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2700,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Mobile Daten und WLAN"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Private Daten autom. synchronisieren"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Arbeitsdaten autom. synchronisieren"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Pers. Daten autom. synchr."</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Zyklus ändern..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Tag, an dem Datenverbrauchszyklus zurückgesetzt wird:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Kein Datenverbrauch in diesem Zeitraum"</string>
@@ -2929,7 +3024,7 @@
     <string name="nfc_and_payment_settings_no_payment_installed_summary" msgid="4879818114908207465">"Installiere zuerst eine Zahlungs-App, damit du die Option verwenden kannst"</string>
     <string name="app_and_notification_dashboard_summary" msgid="8047683010984186106">"Kürzlich geöffnete Apps, Standard-Apps"</string>
     <string name="notification_settings_work_profile" msgid="6076211850526353975">"Für Apps im Arbeitsprofil ist der Benachrichtigungszugriff nicht verfügbar."</string>
-    <string name="account_dashboard_title" msgid="8228773251948253914">"Passwörter und Konten"</string>
+    <string name="account_dashboard_title" msgid="8228773251948253914">"Passwörter &amp; Konten"</string>
     <string name="account_dashboard_default_summary" msgid="1730719656099599488">"Gespeicherte Passwörter, Autofill, synchronisierte Konten"</string>
     <string name="app_default_dashboard_title" msgid="4071015747629103216">"Standard-Apps"</string>
     <string name="cloned_apps_dashboard_title" msgid="5542076801222950921">"Geklonte Apps"</string>
@@ -3048,6 +3143,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"Textgröße, Großdruck, Großschrift, großer Text, eingeschränktes Sehvermögen, Text vergrößern, Textvergrößerung"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"immer aktiver Bildschirmschoner, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"NFC, Tag, Lesegerät"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"Tastatur, Haptik, Vibration"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Lautstärke, Vibration, Bitte nicht stören"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Medienlautstärke"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Streaminglautstärke"</string>
@@ -3067,8 +3163,7 @@
     <string name="notification_sound_default" msgid="8630353701915294299">"Standard-Benachrichtigungston"</string>
     <string name="alarm_ringtone_title" msgid="6680761007731764726">"Standard-Weckton"</string>
     <string name="vibrate_when_ringing_option_ramping_ringer" msgid="2798848945803840348">"Erst vibrieren, dann immer lauter klingeln"</string>
-    <!-- no translation found for spatial_audio_title (1775370104206884711) -->
-    <skip />
+    <string name="spatial_audio_title" msgid="1775370104206884711">"Spatial Audio"</string>
     <string name="dial_pad_tones_title" msgid="3536945335367914892">"Wähltastentöne"</string>
     <string name="screen_locking_sounds_title" msgid="5695030983872787321">"Ton bei Displaysperre"</string>
     <string name="charging_sounds_title" msgid="5261683808537783668">"Töne und Vibration beim Aufladen"</string>
@@ -3268,7 +3363,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Gesamten Benachrichtigungs­inhalt anzeigen"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Sensible Inhalte nur im entsperrten Zustand anzeigen"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Keine Benachrichtigungen anzeigen"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Wie sollen Benachrichtigungen auf dem Sperrbildschirm angezeigt werden?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Sperrbildschirm"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Alle geschäftlichen Benachrichtigungen anzeigen"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Vertrauliche geschäftliche Inhalte ausblenden"</string>
@@ -3355,6 +3451,17 @@
     <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="6121016426991791557">"Verringern der Benachrichtigungslautstärke"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Verringern der Lautstärke auf alle Benachrichtigungen anwenden"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Benachrichtigungslautstärke schrittweise verringern, wenn von derselben App viele Benachrichtigungen nacheinander eingehen"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Verringern der Lautstärke auf Unterhaltungen anwenden"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Benachrichtigungslautstärke schrittweise verringern, wenn von demselben Chat viele Nachrichten innerhalb kurzer Zeit eingehen"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Verringern der Benachrichtigungslautstärke nicht verwenden"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Benachrichtigungslautstärke nie verringern, unabhängig von der Anzahl der von derselben App nacheinander erhaltenen Benachrichtigungen"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Vibration, wenn entsperrt"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Vibration nur bei entsperrtem Display"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Auf Arbeitsprofile anwenden"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Einstellungen für das Verringern der Benachrichtigungslautstärke des privaten Profils auf das Arbeitsprofil anwenden"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR-Hilfsdienste"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Keine installierte App hat die Ausführung als VR-Hilfedienst angefordert."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"VR-Dienstzugriff für <xliff:g id="SERVICE">%1$s</xliff:g> erlauben?"</string>
@@ -3746,6 +3853,10 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Zugriff zum Verwalten aller Dateien zulassen"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Du kannst dieser App erlauben, alle Dateien auf diesem Gerät und auf allen verbundenen Laufwerken zu lesen, zu ändern und zu löschen. Sie kann dann ohne deine explizite Zustimmung auf Dateien zugreifen."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Auf alle Dateien zugreifen"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Apps mit Sprachaktivierung"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Sprachaktivierung zulassen"</string>
+    <!-- no translation found for allow_voice_activation_apps_description (6369745626995060656) -->
+    <skip />
     <string name="full_screen_intent_title" msgid="747270185715224130">"Vollbildbenachrichtigungen"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Vollbildbenachrichtigungen von dieser App erlauben"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Diese App darf Benachrichtigungen anzeigen, die das gesamte Display ausfüllen, wenn das Gerät gesperrt ist. Apps können diese verwenden, um Wecker, eingehende Anrufe oder andere dringende Benachrichtigungen hervorzuheben."</string>
@@ -3897,32 +4008,23 @@
     <string name="app_battery_usage_title" msgid="346558380609793334">"Akkunutzung der App"</string>
     <string name="app_battery_usage_summary" msgid="6349965904306339539">"Akkunutzung für Apps festlegen"</string>
     <string name="battery_tips_card_action_button" msgid="4897793527424711648">"Einstellungen aufrufen"</string>
-    <!-- no translation found for battery_tips_card_action_button_check (1535140204105479318) -->
-    <skip />
+    <string name="battery_tips_card_action_button_check" msgid="1535140204105479318">"Ansehen"</string>
     <string name="battery_tips_card_dismiss_button" msgid="1885756985544936618">"Ok"</string>
     <string name="battery_tips_card_feedback_info" msgid="767117835675157298">"War diese Nachricht hilfreich?"</string>
-    <!-- no translation found for battery_hints_warning_icon_a11y (5312542323401447620) -->
-    <skip />
+    <string name="battery_hints_warning_icon_a11y" msgid="5312542323401447620">"Warnsymbol für Akkutipps"</string>
     <string name="battery_tips_settings_summary_brightness" msgid="546145032616077783">"Automatische Helligkeit aktivieren, um die Akkulaufzeit zu verlängern"</string>
     <string name="battery_tips_settings_summary_screen_timeout" msgid="556801426050962077">"Zeit bis zum automatischen Ausschalten des Displays verkürzen, um die Akkulaufzeit zu verlängern"</string>
-    <!-- no translation found for battery_tips_apps_summary_always_high (6334519477067044920) -->
+    <string name="battery_tips_apps_summary_always_high" msgid="6334519477067044920">"<xliff:g id="APP_LABEL">%1$s</xliff:g> hat den Akku stärker beansprucht"</string>
+    <string name="battery_tips_apps_summary_higher_than_usual" msgid="95676961671544628">"<xliff:g id="APP_LABEL">%1$s</xliff:g> hat den Akku stärker als üblich beansprucht"</string>
+    <string name="battery_tips_apps_summary_always_high_in_background" msgid="2953858181710181126">"<xliff:g id="APP_LABEL">%1$s</xliff:g> hat den Akku im Hintergrund stärker beansprucht"</string>
+    <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> hat den Akku im Hintergrund stärker als üblich beansprucht"</string>
+    <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> hat den Akku im Vordergrund stärker beansprucht"</string>
+    <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> hat den Akku im Vordergrund stärker als üblich beansprucht"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
     <skip />
-    <!-- no translation found for battery_tips_apps_summary_higher_than_usual (95676961671544628) -->
-    <skip />
-    <!-- no translation found for battery_tips_apps_summary_always_high_in_background (2953858181710181126) -->
-    <skip />
-    <!-- no translation found for battery_tips_apps_summary_higher_than_usual_in_background (1585002072567422199) -->
-    <skip />
-    <!-- no translation found for battery_tips_apps_summary_always_high_in_foreground (1910991243576404700) -->
-    <skip />
-    <!-- no translation found for battery_tips_apps_summary_higher_than_usual_in_foreground (7937337570425168210) -->
-    <skip />
-    <!-- no translation found for battery_app_item_hint (4850929961461039110) -->
-    <skip />
-    <!-- no translation found for battery_app_item_hint_in_bg (596240821466388336) -->
-    <skip />
-    <!-- no translation found for battery_app_item_hint_in_fg (5091860632260799910) -->
-    <skip />
+    <string name="battery_app_item_hint" msgid="4850929961461039110">"Hohe Akkunutzung"</string>
+    <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Hohe Akkunutzung im Hintergrund"</string>
+    <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Hohe Akkunutzung im Vordergrund"</string>
     <string name="filter_battery_unrestricted_title" msgid="821027369424198223">"Uneingeschränkt"</string>
     <string name="filter_battery_optimized_title" msgid="8236647176487754796">"Optimiert"</string>
     <string name="filter_battery_restricted_title" msgid="5886859505802563232">"Eingeschränkt"</string>
@@ -4008,7 +4110,7 @@
     <string name="system_navigation_title" msgid="4890381153527184636">"Navigationsmodus"</string>
     <string name="swipe_up_to_switch_apps_title" msgid="6677266952021118342">"Bedienung über 2 Schaltflächen"</string>
     <string name="swipe_up_to_switch_apps_summary" msgid="1415457307836359560">"Wenn du zwischen Apps wechseln möchtest, wische auf der Startbildschirmtaste nach oben. Wische noch einmal nach oben, um alle Apps zu sehen. Tippe auf die Schaltfläche \"Zurück\", um zurückzugehen."</string>
-    <string name="emergency_settings_preference_title" msgid="6183455153241187148">"Sicherheit und Notfälle"</string>
+    <string name="emergency_settings_preference_title" msgid="6183455153241187148">"Notfälle &amp; Sicherheit"</string>
     <string name="emergency_dashboard_summary" msgid="401033951074039302">"Notfall-SOS, medizinische Informationen, Benachrichtigungen"</string>
     <string name="edge_to_edge_navigation_title" msgid="714427081306043819">"Bedienung über Gesten"</string>
     <string name="edge_to_edge_navigation_summary" msgid="818109176611921504">"Öffne den Startbildschirm, indem du vom unteren Displayrand nach oben wischst. Um zwischen Apps zu wechseln, wische vom unteren Displayrand nach oben, halte und lass dann los. Wenn du zurückgehen möchtest, wische vom linken oder vom rechten Rand nach innen."</string>
@@ -4017,7 +4119,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"Systemsteuerung, Bedienung über 2 Schaltflächen, Bedienung über 3 Schaltflächen, Gestensteuerung, Bedienung über Gesten, wischen"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Digitaler Assistent"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Zum Öffnen des Assistenten wischen"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Wische von einer unteren Ecke nach oben, um die App für den digitalen Assistenten aufzurufen."</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Wische von einer unteren Ecke nach oben, um die App für den digitalen Assistenten aufzurufen"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Aufrufen von Assistant per Drücken der Startbildschirmtaste"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Halte die Startbildschirmtaste gedrückt, um die App für den digitalen Assistenten aufzurufen."</string>
     <string name="low_label" msgid="6525629096999711220">"Niedrig"</string>
@@ -4184,7 +4286,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"Daten, Passkey, Passwort"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"automatisch, ausfüllen, Autofill, Daten, Passkey, Passwort"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Nur für vertrauenswürdige Apps&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; greift auf die Displayanzeige zu, um zu bestimmen, welche Felder automatisch ausgefüllt werden können. Die Funktion sollte daher nur für vertrauenswürdige Apps zugelassen werden."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;&lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; verwenden?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; bestimmt anhand des Bildschirminhalts, was automatisch ausgefüllt werden kann. Ab jetzt werden neue Passwörter, Passkeys und andere Informationen hier gespeichert."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Soll &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; verwendet werden?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Neue Passwörter, Passkeys und weitere Informationen werden ab sofort hier gespeichert. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; kann anhand dessen, was auf deinem Bildschirm zu sehen ist, bestimmen, was automatisch ausgefüllt werden kann."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Passwörter, Passkeys und Datendienste"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$s deaktivieren?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Diesen Dienst deaktivieren?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Gespeicherte Daten wie Passwörter, Passkeys, Zahlungsmethoden usw. werden beim Anmelden nicht eingetragen. Wenn du deine gespeicherten Daten verwenden möchtest, nutze einen Passwort-, Passkey- oder Datendienst."</string>
@@ -4239,7 +4341,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">"Experimentelle Funktion: ANGLE aktivieren"</string>
-    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Beachte bei Aktivierung von ANGLE als OpenGL ES-Standardtreiber Folgendes: Es handelt sich um eine experimentelle Funktion, die möglicherweise mit einigen Kamera- und Video-Apps nicht kompatibel ist."</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Achtung: Aktiviere ANGLE als standardmäßigen OpenGL ES-Treiber. Dies ist eine experimentelle Funktion, die möglicherweise mit einigen Kamera- und Video-Apps nicht kompatibel ist."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"Ein Neustart ist erforderlich, um den OpenGL ES-Systemtreiber zu ändern"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Änderungen der Kompatibilität von Apps"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Änderungen bei der Kompatibilität von Apps festlegen"</string>
@@ -4795,12 +4897,10 @@
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Apps, die innerhalb des letzten Monats installiert wurden}other{Apps, die innerhalb der letzten # Monate installiert wurden}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Apps, die vor mehr als # Monat installiert wurden}other{Apps, die vor mehr als # Monaten installiert wurden}}"</string>
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Seitenverhältnis"</string>
-    <string name="aspect_ratio_summary" msgid="4056406351663726494">"Probiere ein neues Seitenverhältnis für diese App aus, wenn sie nicht für dein Gerät (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>) optimiert ist"</string>
-    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Probiere ein neues Seitenverhältnis für diese App aus, wenn sie nicht für dein Gerät (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>) optimiert ist. Einige Apps sind möglicherweise nicht für bestimmte Seitenverhältnisse optimiert."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary" msgid="4056406351663726494">"Probiere ein neues Seitenverhältnis für diese App aus, wenn sie nicht für dein Gerät (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>) konzipiert wurde"</string>
+    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Probiere ein neues Seitenverhältnis für diese App aus, wenn sie nicht für dein Gerät (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>) konzipiert wurde. Einige Apps sind möglicherweise nicht für bestimmte Seitenverhältnisse optimiert."</string>
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Probiere ein neues Seitenverhältnis für eine App aus, wenn sie nicht für dein Gerät (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>) konzipiert wurde"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Probiere ein neues Seitenverhältnis für eine App aus, wenn sie nicht für dein Gerät (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>) konzipiert wurde. Einige Apps sind möglicherweise nicht für bestimmte Seitenverhältnisse optimiert."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Vorgeschlagene Apps"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Geänderte Apps"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"App-Standard"</string>
@@ -4870,4 +4970,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Auf Apps mit irreführenden Funktionen scannen"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"App-Aktivitäten auf Phishing prüfen"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Nach Apps mit irreführendem Verhalten suchen"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Nach geschäftlichen Apps mit irreführendem Verhalten suchen"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-el/arrays.xml b/res/values-el/arrays.xml
index 2884bf0..f1b3e22 100644
--- a/res/values-el/arrays.xml
+++ b/res/values-el/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Μετά από 1 λεπτό"</item>
     <item msgid="1574040255478150028">"Μετά από 5 λεπτά"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 9cbcbdd..3901e45 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Απενεργοποίηση Bluetooth LE Audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Απενεργοποιεί τη λειτουργία Bluetooth LE Audio αν η συσκευή υποστηρίζει δυνατότητες εξοπλισμού LE Audio."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Εναλλαγή LE Audio στις λεπτομ. συσκευής"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Ενεργοποίηση λίστας επιτρεπόμενων Bluetooth LE Audio"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Ενεργοποίηση λειτουργίας λίστας επιτρεπόμενων Bluetooth LE Audio."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Παράκαμψη λίστας επιτρεπομένων Bluetooth LE Audio"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Χρήση του LE Audio από προεπιλογή, ακόμα και αν το περιφερειακό LE Audio δεν έχει επαληθευτεί, ώστε να πληροί τα κριτήρια της λίστας επιτρεπομένων."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Συσκευές μέσων"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Συσκευές κλήσεων"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Άλλες συσκευές"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Αποθηκευμένες συσκευές"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Συσχετισμός με λογαριασμό"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Στο παρελθόν χρησιμοποιήθηκε με λογαριασμό"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Το Bluetooth θα ενεργοποιηθεί για σύζευξη"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Προτιμήσεις σύνδεσης"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Συνδέθηκαν στο παρελθόν"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Γραφή σε πεδία κειμένου"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Παράβλεψη όλων των πατημάτων του κουμπιού γραφίδας"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Γραφίδα"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Κοινή χρήση ήχου"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Κοινή χρήση ήχου"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Κλήσεις και ξυπνητήρια"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Ημερομηνία &amp; ώρα"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Διακομιστής μεσολάβησης"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Διαγραφή"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Φόρτωση…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Οι εφαρμογές με άδεια Συσκευές σε κοντινή απόσταση μπορούν να προσδιορίσουν τη σχετική θέση των συνδεδεμένων συσκευών."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Η πρόσβαση στην τοποθεσία είναι απενεργοποιημένη για τις εφαρμογές και τις υπηρεσίες. Η τοποθεσία της συσκευής σας ενδέχεται ωστόσο να αποστέλλεται στους χειριστές των κέντρων εκτάκτων αναγκών, όταν καλείτε ή στέλνετε μήνυμα σε έναν αριθμό έκτακτης ανάγκης."</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Μάθετε περισσότερα σχετικά με τις Ρυθμίσεις τοποθεσίας"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Λογαριασμοί"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Ασφάλεια"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Κρυπτογράφηση και διαπιστευτήρια"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Προφίλ εργασίας"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Ιδιωτικός χώρος"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Απόκρυψη εφαρμογών σε ιδιωτικό φάκελο"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Ξεκλείδωμα με χρήση κλειδώματος οθόνης"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Εμφάνιση Ιδιωτικού χώρου"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Απόκρυψη κατά το κλείδωμα"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Απόκρυψη Ιδιωτικού χώρου κατά το κλείδωμα"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Για να μην γνωρίζουν άλλοι τον Ιδιωτικό χώρο στη συσκευή σας, μπορείτε να τον κρύψετε από τη λίστα εφαρμογών"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Πρόσβαση στον Ιδιωτικό χώρο κατά την απόκρυψη"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Αναζητήστε τον Ιδιωτικό χώρο στη γραμμή αναζήτησης"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Πατήστε το πλακάκι Ιδιωτικός χώρος"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Ξεκλείδωμα του Ιδιωτικού χώρου"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Ανενεργός"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Ενεργός"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Σύστημα"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Δημιουργία Ιδιωτικού χώρου"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Διαγραφή Ιδιωτικού χώρου"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Ο Ιδιωτικός χώρος δημιουργήθηκε με επιτυχία"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Ο Ιδιωτικός χώρος υπάρχει ήδη"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Δεν ήταν δυνατή η δημιουργία του Ιδιωτικού χώρου"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Ο Ιδιωτικός χώρος διαγράφηκε με επιτυχία"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Δεν ήταν δυνατή η διαγραφή του Ιδιωτικού χώρου"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Ορισμός κλειδώματος οθόνης"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Για χρήση ιδιωτικού χώρου, ορίστε κλείδ. οθόνης στη συσκευή."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Ρύθμιση κλειδώματος οθόνης"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Ακύρωση"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Ακύρωση"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Ρύθμιση"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Ρύθμιση Ιδιωτικού χώρου"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Κρύψτε τις ιδιωτικές εφαρμογές σε έναν ασφαλή χώρο στον οποίο μόνο εσείς έχετε πρόσβαση"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Πώς λειτουργεί"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Μπορείτε να αποκτήσετε πρόσβαση στον Ιδιωτικό χώρο από το κάτω μέρος της λίστας εφαρμογών"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Οι εφαρμογές στον Ιδιωτικό χώρο προστατεύονται με κλείδωμα"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Οι ειδοποιήσεις από εφαρμογές στον Ιδιωτικό χώρο είναι κρυφές όταν είναι κλειδωμένος"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Οι εφαρμογές στον Ιδιωτικό χώρο δεν θα εμφανίζονται στη Διαχείριση αδειών, στον πίνακα ελέγχου απορρήτου και σε άλλες ρυθμίσεις όταν ο Ιδιωτικός χώρος είναι κλειδωμένος"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Ρύθμιση Ιδιωτικού χώρου…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Ο Ιδιωτικός χώρος προστατεύεται με κλείδωμα"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Οι πληροφορίες χρήσης για τις εφαρμογές στον Ιδιωτικό χώρο είναι κρυφές όταν είναι κλειδωμένος"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Πρόσβαση στον Ιδιωτικό χώρο από τη λίστα εφαρμογών σας"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Δεν είναι δυνατή η ρύθμιση του Ιδιωτικού χώρου"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Δοκιμάστε ξανά τώρα ή επιστρέψτε αργότερα"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Επανάληψη"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Χρήση κλειδώματος οθόνης για ξεκλείδωμα;"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Μπορείτε να ξεκλειδώσετε τον Ιδιωτικό χώρο όπως ξεκλειδώνετε τη συσκευή σας ή να επιλέξετε διαφορετικό κλείδωμα"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Χρήση κλειδώματος οθόνης"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Επιλογή νέου κλειδώματος"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Όλα έτοιμα!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Για να αποκτήσετε πρόσβαση στον Ιδιωτικό χώρο, σύρετε προς τα επάνω από το κάτω μέρος της αρχικής οθόνης και έπειτα κάντε κύλιση προς τα κάτω"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Τέλος"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Κάντε κύλιση προς τα κάτω για πρόσβαση στον Ιδιωτικό χώρο"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Συνδεθείτε για τη διαμόρφωση του Ιδιωτικού χώρου"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Μπορείτε να προσθέσετε έως <xliff:g id="COUNT">%d</xliff:g> δακτυλικά αποτυπώματα"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Έχετε προσθέσει τον μέγιστο αριθμό δακτυλικών αποτυπωμάτων"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Δεν είναι δυνατή η προσθήκη περισσότερων δακτυλικών αποτυπωμάτων"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Σύνδεση"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Αποσύνδεση"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Σύζευξη και σύνδεση"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Όταν είναι ενεργοποιημένο το Bluetooth, η συσκευή σας μπορεί να επικοινωνεί με άλλες συσκευές Bluetooth που βρίσκονται κοντά."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Με ενεργό το Bluetooth, η συσκευή μπορεί να επικοινωνεί με άλλες κοντινές συσκευές Bluetooth"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Όταν είναι ενεργό το Bluetooth, η συσκευή σας μπορεί να επικοινωνεί με άλλες κοντινές συσκευές Bluetooth.\n\nΓια τη βελτίωση της εμπειρίας χρήσης της συσκευής, οι εφαρμογές και οι υπηρεσίες μπορούν ακόμα να πραγματοποιούν σάρωση για συσκευές σε κοντινή απόσταση ανά πάσα στιγμή, ακόμα και όταν το Bluetooth είναι απενεργοποιημένο. Αυτή η λειτουργία μπορεί να χρησιμοποιηθεί, για παράδειγμα, για τη βελτίωση λειτουργιών και υπηρεσιών που εκτελούνται βάσει τοποθεσίας. Μπορείτε να αλλάξετε αυτή την επιλογή στις ρυθμίσεις σάρωσης Bluetooth."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Αλλαγή"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Λεπτομέρειες συσκευής"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Επιτρέψτε στο ART να επαληθεύσει τον κώδικα byte για εφαρμογές με δυνατότητα εντοπισμού σφαλμάτων"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Εμφάνιση ρυθμού ανανέωσης"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Εμφάνιση του τρέχοντα ρυθμού ανανέωσης"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Εμφάνιση αναλογίας HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Εμφάνιση της τρέχουσας αναλογίας HDR/SDR"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Να απαιτείται ξεκλείδωμα της συσκευής για το NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1137,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Συνέχιση χρήσης εφαρμογών κατά την αναδίπλωση"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Αυξάνει αυτόματα τον ρυθμό ανανέωσης από τα 60 στα <xliff:g id="ID_1">%1$s</xliff:g> Hz για ορισμένο περιεχόμενο. Αυξάνει τη χρήση μπαταρίας."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Αυξάνει αυτόματα τον ρυθμό ανανέωσης έως και <xliff:g id="ID_1">%1$d</xliff:g> Hz για ορισμένο περιεχόμενο. Αυξάνει τη χρήση μπαταρίας."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Επιβολή μέγιστου ρυθμού ανανέωσης"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Ο υψηλότερος δυνατός ρυθμός ανανέωσης για βελτιωμένη απόκριση αφής και ποιότητα κινούμενων εικόνων. Αυξάνει τη χρήση της μπαταρίας."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Παρακολούθηση οθόνης"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Κοινόχρηστες ρυθμίσεις"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Επεξ/σία σημ. πρόσβ."</string>
+    <string name="apn_add" msgid="9069613192201630934">"Προσθήκη σημείου πρόσβασης"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Δεν έχει ρυθμιστεί"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Δεν ορίστηκε"</string>
     <string name="apn_name" msgid="6677695784108157953">"Όνομα"</string>
@@ -1320,6 +1396,8 @@
     <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="network_type" msgid="748590707422733595">"Τύπος δικτύου"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Δεν έχει καθοριστεί"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Τύπος MVNO"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"Τιμή MVNO"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Διαγραφή APN"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Χρήση κουμπιού προσβασιμότητας για άνοιγμα"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Παρατεταμένο πάτημα πλήκτρων έντασης για άνοιγμα"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Πατήστε τρεις φορές για να ανοίξει η οθόνη"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Τριπλό πάτημα οθόνης με δύο δάχτυλα για άνοιγμα"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Χρήση κίνησης για άνοιγμα"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Χρήση κίνησης προσβασιμότητας"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Για να χρησιμοποιήσετε αυτήν τη λειτουργία, πατήστε το κουμπί προσβασιμότητας <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> στο κάτω μέρος της οθόνης.\n\nΓια εναλλαγή μεταξύ λειτουργιών, αγγίξτε παρατεταμένα το κουμπί προσβασιμότητας."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Για να χρησιμοποιήσετε αυτήν τη λειτουργία, πατήστε το κουμπί προσβασιμότητας στην οθόνη σας."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Για να χρησιμοποιήσετε αυτήν τη λειτουργία, πιέστε παρατεταμένα και τα δύο πλήκτρα έντασης ήχου."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Για έναρξη και διακοπή της μεγιστοποίησης, πατήστε τρεις φορές οπουδήποτε στην οθόνη σας."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Για έναρξη και διακοπή της μεγιστοποίησης, πατήστε τρεις φορές οπουδήποτε στην οθόνη με δύο δάχτυλα."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Για να χρησιμοποιήσετε αυτήν τη λειτουργία, σύρετε προς τα επάνω από το κάτω μέρος της οθόνης χρησιμοποιώντας 2 δάχτυλα.\n\nΓια εναλλαγή μεταξύ λειτουργιών, σύρετε προς τα επάνω με 2 και κρατήστε τα δάχτυλά σας στην οθόνη."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Για να χρησιμοποιήσετε αυτήν τη λειτουργία, σύρετε προς τα επάνω από το κάτω μέρος της οθόνης χρησιμοποιώντας 3 δάχτυλα.\n\nΓια εναλλαγή μεταξύ λειτουργιών, σύρετε προς τα επάνω με 3 και κρατήστε τα δάχτυλά σας στην οθόνη."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Για να χρησιμοποιήσετε μια λειτουργία προσβασιμότητας, σύρετε προς τα επάνω από το κάτω μέρος της οθόνης χρησιμοποιώντας 2 δάχτυλα.\n\nΓια εναλλαγή μεταξύ λειτουργιών, σύρετε προς τα επάνω με 2 δάχτυλα και κρατήστε τα δάχτυλά σας στην οθόνη."</string>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Πατήστε παρατεταμένα τα πλήκτρα έντασης"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"παρατεταμένο πάτημα πλήκτρων έντασης"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Πατήστε παρατεταμένα και τα δύο πλήκτρα έντασης ήχου."</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"Τριπλό πάτημα οθόνης με δύο δάχτυλα"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"τριπλό πάτημα οθόνης με δύο δάχτυλα"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"Πατήστε γρήγορα την οθόνη {0,number,integer} φορές με δύο δάχτυλα"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Τριπλό πάτημα οθόνης"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"τριπλό πάτημα οθόνης"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Πατήστε γρήγορα στην οθόνη {0,number,integer} φορές. Αυτή η συντόμευση μπορεί να μειώσει την ταχύτητα της συσκευής σας."</string>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Χρήση δόνησης και απτικής λειτουργίας"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Δόνηση ξυπνητηριού"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Δόνηση μέσων"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Δόνηση πληκτρολογίου"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Δόνηση κλήσης"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Δόνηση ειδοποίησης"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Ανάδραση αφής"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"Απομένουν <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> για τη φόρτωση"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Χρόνος χρήσης"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Χρόνος στο παρασκήνιο"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Χαμηλή ισχύς μπαταρίας"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Να επιτρέπεται στην εφαρμογή να εκτελείται στο παρασκήνιο"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Να περιοριστεί η δραστηριότητα στο παρασκήνιο;"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Εάν περιορίσετε τη δραστηριότητα στο παρασκήνιο για μια εφαρμογή, μπορεί να μην λειτουργήσει σωστά"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Εφόσον δεν έχει οριστεί βελτιστοποίηση μπαταρίας, δεν είναι δυνατός ο περιορισμός της εφαρμογής.\n\nΓια περιορισμό, ενεργοποιήστε τη βελτιστοποίηση."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Διαχείριση χρήσης μπαταρίας"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Επιτρέψτε τη χρήση στο παρασκήνιο"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Ενεργοποιήστε για ενημερώσεις σε πραγματικό χρόνο, απενεργοποιήστε για εξοικονόμηση μπαταρίας"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Απεριόριστη"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Βελτιστοποιημένη"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Περιορισμένη"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"από την τελευταία πλήρη φόρτιση"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Εφαρμογές συστήματος"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Απεγκατεστημένες εφαρμογές"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Άλλα"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Εκτιμώμενος υπολειπόμενος χρόνος"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Μέχρι την πλήρη φόρτιση"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Σύνολο: λιγότερο από ένα λεπτό"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Παρασκήνιο: λιγότερο από ένα λεπτό"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Χρόνος χρήσης: λιγότερο από ένα λεπτό"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Λιγότερο από ένα λεπτό"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Σύνολο: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Παρασκήνιο: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Χρόνος χρήσης: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Δεδ. κιν. τηλ. &amp; Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Αυτόματος συγχ. προσ. δεδομ."</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Αυτόματος συγχρ. δεδ.εργασίας"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Αυτόμ. συγχρον. ιδιωτ. δεδομ."</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Αλλαγή κύκλου..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Η ημέρα που θα γίνει η επαναφορά του κύκλου χρήσης δεδομένων:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Καμία εφαρμ. δεν χρησιμ. δεδ. αυτή την περίοδο"</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"μέγεθος οθόνης, μεγάλη εκτύπωση, μεγάλη γραμματοσειρά, μεγάλο κείμενο, χαμηλή όραση, αύξηση μεγέθους κειμένου, εργαλείο αύξησης μεγέθους γραμματοσειράς, αύξηση μεγέθους γραμματοσειράς"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"πάντα ενεργή οθόνη ambient, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"εκπ, ετικέτα, αναγνώστης"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"πληκτρολόγιο, απτική λειτουργία, δόνηση,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Ένταση ήχου, δόνηση, λειτουργία \"Μην ενοχλείτε\""</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Ένταση ήχου πολυμέσων"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Ένταση ήχου μετάδοσης"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Εμφάνιση όλου του περιεχομένου ειδοποιήσεων"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Εμφάνιση ευαίσθητου περιεχ. μόνο με ξεκλείδωμα"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Να μην εμφανίζονται ειδοποιήσεις"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Πώς θέλετε να εμφανίζεται η οθόνη κλειδώματος;"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Οθόνη κλειδώματος"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Εμφάνιση όλου του περιεχομ. ειδοποιήσεων εργασίας"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Απόκρυψη ευαίσθητου περιεχομένου εργασίας"</string>
@@ -3354,6 +3448,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Αυτή η εφαρμογή δεν υποστηρίζει βελτιωμένες ρυθμίσεις"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Περισσότερες ρυθμίσεις"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Περισσότερες ρυθμίσεις είναι διαθέσιμες μέσα σε αυτή την εφαρμογή"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Περίοδος cooldown ειδοποιήσεων"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Εφαρμογή περιόδου cooldown σε όλες τις ειδοποιήσεις"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Σταδιακή μείωση της έντασης ήχου των ειδοποιήσεων όταν λαμβάνετε διαδοχικά πολλές ειδοποιήσεις από την ίδια εφαρμογή"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Εφαρμογή περιόδου cooldown σε συζητήσεις"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Σταδιακή μείωση της έντασης ήχου των ειδοποιήσεων όταν λαμβάνετε πολλά μηνύματα από την ίδια συζήτηση σε σύντομο χρονικό διάστημα"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Να μην χρησιμοποιείται περίοδος cooldown για τις ειδοποιήσεις"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Να μην μειώνεται ποτέ η ένταση ήχου των ειδοποιήσεων, ανεξάρτητα από τον αριθμό των διαδοχικών ειδοποιήσεων από την ίδια εφαρμογή"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Δόνηση όταν είναι ξεκλειδωμένη"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Να δονείται μόνο όταν είναι ξεκλειδωμένη η οθόνη"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Εφαρμογή σε προφίλ εργασίας"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Εφαρμογή των ρυθμίσεων περιόδου cooldown ειδοποιήσεων από το προσωπικό προφίλ σας στο προφίλ εργασίας σας"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Βοηθητικές υπηρεσίες Εικονικής Πραγματικότητας"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Δεν έχει ζητηθεί η εκτέλεση εγκατεστημένων εφαρμογών ως βοηθητικών υπηρεσιών Εικονικής Πραγματικότητας."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Να επιτρέπεται στην υπηρεσία <xliff:g id="SERVICE">%1$s</xliff:g> να έχει πρόσβαση στην υπηρεσία Εικονικής Πραγματικότητας;"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Να επιτρέπεται η πρόσβαση για τη διαχείριση όλων των αρχείων"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Να επιτρέπεται σε αυτή την εφαρμογή η ανάγνωση, η τροποποίηση και η διαγραφή όλων των αρχείων σε αυτήν τη συσκευή και σε κάθε συνδεδεμένη μονάδα αποθήκευσης. Εάν εκχωρηθούν σχετικά δικαιώματα, η εφαρμογή μπορεί να έχει πρόσβαση σε αρχεία χωρίς να έχετε ενημερωθεί ρητά."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Με πρόσβαση σε όλα τα αρχεία"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Εφαρμογές που ενεργοποιούνται μέσω φωνής"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Επιτρέπεται η φωνητική ενεργοποίηση"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Η φωνητική ενεργοποίηση ενεργοποιεί handsfree τις εγκεκριμένες εφαρμογές, με χρήση φωνητικών εντολών. Η ενσωματωμένη προσαρμοστική ανίχνευση διασφαλίζει την ιδιωτικότητα των δεδομένων σας.\n\n"<a href="">"Περισσότερες πληροφορίες για την προσαρμοστική ανίχνευση"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Ειδοποιήσεις σε πλήρη οθόνη"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Να επιτρέπονται οι ειδοποιήσεις σε πλήρη οθόνη από αυτή την εφαρμογή"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Να επιτρέπεται στην εφαρμογή η εμφάνιση ειδοποιήσεων σε πλήρη οθόνη όταν η συσκευή είναι κλειδωμένη. Οι εφαρμογές ενδέχεται να χρησιμοποιούν αυτήν τη λειτουργία για επισήμανση ξυπνητηριών, εισερχόμενων κλήσεων ή άλλων επειγουσών ειδοποιήσεων."</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"Η εφαρμογή <xliff:g id="APP_LABEL">%1$s</xliff:g> χρησιμοποίησε περισσότερη μπαταρία στο παρασκήνιο από ό,τι συνήθως"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"Η εφαρμογή <xliff:g id="APP_LABEL">%1$s</xliff:g> χρησιμοποίησε περισσότερη μπαταρία στο προσκήνιο"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"Η εφαρμογή <xliff:g id="APP_LABEL">%1$s</xliff:g> χρησιμοποίησε περισσότερη μπαταρία στο προσκήνιο από ό,τι συνήθως"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Υψηλή χρήση μπαταρίας"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Υψηλή χρήση μπαταρίας στο παρασκήνιο"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Υψηλή χρήση μπαταρίας στο προσκήνιο"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"πλοήγηση συστήματος, πλοήγηση με δύο κουμπιά, πλοήγηση με τρία κουμπιά, πλοήγηση με κινήσεις, ολίσθηση"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Ψηφιακός βοηθός"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Σύρετε για άνοιγμα του βοηθού"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Σύρετε προς τα επάνω από μια από τις κάτω γωνίες για άνοιγμα της εφαρμογής ψηφιακού βοηθού."</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Σύρετε προς τα επάνω από μια από τις κάτω γωνίες για να ανοίξετε την εφαρμογή ψηφιακού βοηθού"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Πατήστε παρατεταμένα το κουμπί αρχικής σελίδας για τον Βοηθό"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Πατήστε παρατεταμένα το κουμπί αρχικής οθόνης για ενεργοποίηση της εφαρμογής ψηφιακού βοηθού."</string>
     <string name="low_label" msgid="6525629096999711220">"Χαμηλή"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"δεδομένα, κλειδί πρόσβασης, κωδικός πρόσβασης"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"αυτόματη, συμπλήρωση, αυτόματη συμπλήρωση, δεδομένα, κλειδί πρόσβασης, κωδικός πρόσβασης"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Βεβαιωθείτε ότι εμπιστεύεστε αυτή την εφαρμογή&lt;/b&gt;&lt;br/&gt; &lt;br/&gt; &lt;xliff:g Το id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; χρησιμοποιεί το περιεχόμενο της οθόνης σας για να διαπιστώσει τι μπορεί να συμπληρωθεί αυτόματα."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&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_autofill_confirmation_message" msgid="843829628024668466">"&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_picker_title" msgid="8191267620665129205">"Κωδικοί πρόσβασης, κλειδιά πρόσβασης και υπηρεσίες δεδομένων"</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>
@@ -4856,4 +4966,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Σάρωση για παραπλανητικές εφαρμογές"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Έλεγχος δραστηριότητας σε εφαρμογές για ηλεκτρονικό ψάρεμα (phishing)"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Χρήση σάρωσης για παραπλανητικές εφαρμογές"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Χρήση σάρωσης για παραπλανητικές εφαρμογές για την εργασία"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-en-rAU/arrays.xml b/res/values-en-rAU/arrays.xml
index 7f5af74..3e9299d 100644
--- a/res/values-en-rAU/arrays.xml
+++ b/res/values-en-rAU/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"After one minute"</item>
     <item msgid="1574040255478150028">"After five minutes"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 91a016f..b3d6d90 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Disable Bluetooth LE audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Disables the Bluetooth LE audio feature if the device supports LE audio hardware capabilities."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Show LE Audio toggle in Device details"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Enable Bluetooth LE Audio allow List"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Enable Bluetooth LE Audio allow list feature."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Bypass Bluetooth LE Audio allowlist"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Use LE Audio by default even if LE Audio peripheral hasn\'t been verified to meet allowlist criteria."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Media devices"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Call devices"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Other devices"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Saved devices"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Associated with account"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Previously used with account"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth will turn on to pair"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Connection preferences"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Previously connected"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Write in text fields"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignore all stylus button presses"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Stylus"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Audio sharing"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Share audio"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Calls and alarms"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Date and time"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Clear"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Learn more about location settings"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Accounts"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Security"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Encryption and credentials"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Work profile"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Private Space"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Hide apps in a private folder"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Unlock using screen lock"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Show Private Space"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Hide when locked"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Hide Private Space when locked"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"To stop other people knowing Private Space is on your device, you can hide it from your apps list"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Access Private Space when hidden"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Search for \'Private Space\' in the search bar"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Tap the Private Space tile"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Unlock your Private Space"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Off"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"On"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"System"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Create Private Space"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Delete Private Space"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Private Space successfully created"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Private Space already exists"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Private Space could not be created"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Private Space successfully deleted"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Private Space could not be deleted"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Set a screen lock"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"To use Private Space, set a screen lock on this device."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Set screen lock"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Cancel"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Cancel"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Set up"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Set up Private Space"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Hide private apps in a secure space that only you can access"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"How it works"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"You can access Private Space from the bottom of your apps list"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Apps in Private Space are protected by a lock"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Notifications from apps in Private Space are hidden when it’s locked"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Private Space apps won’t appear in permission manager, privacy dashboard and other settings when Private Space is locked"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Setting up Private Space…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Private Space is protected by a lock"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Usage info for Private Space apps is hidden when it’s locked"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Access Private Space from your apps list"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Couldn’t set up Private Space"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Try again now, or come back later"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Try again"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Use screen lock to unlock?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"You can unlock Private Space the same way you unlock your device, or choose a different lock"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Use screen lock"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Choose new lock"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"All set!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"To access Private Space, swipe up from the bottom of your home screen, then scroll down"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Done"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Scroll down to access Private Space"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Sign in to set up Private Space"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"You can add up to <xliff:g id="COUNT">%d</xliff:g> fingerprints"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"You’ve added the maximum number of fingerprints"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Can’t add more fingerprints"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Connect"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Disconnect"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Pair &amp; connect"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"When Bluetooth is turned on, your device can communicate with other nearby Bluetooth devices."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"When Bluetooth is turned on, your device can communicate with other nearby Bluetooth devices"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"When Bluetooth is turned on, your device can communicate with other nearby Bluetooth devices.\n\nTo improve device experience, apps and services can still scan for nearby devices at any time, even when Bluetooth is off. This can be used, for example, to improve location-based features and services. You can change this in Bluetooth scanning settings."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Change"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Device details"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Allow ART to verify bytecode for debuggable apps"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Show refresh rate"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Show the current display refresh rate"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Show HDR/SDR ratio"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Show the current HDR/SDR ratio"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Require device unlock for NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1137,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Continue using apps on fold"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Automatically raises the refresh rate from 60 to <xliff:g id="ID_1">%1$s</xliff:g> Hz for some content. Increases battery usage."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Automatically raises the refresh rate up to <xliff:g id="ID_1">%1$d</xliff:g> Hz for some content. Increases battery usage."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Force peak refresh rate"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Highest refresh rate for improved touch responsiveness and animation quality. Increases battery usage."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Screen attention"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Communal settings"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APNs"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Edit access point"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Add access point"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Not set"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Not set"</string>
     <string name="apn_name" msgid="6677695784108157953">"Name"</string>
@@ -1320,6 +1396,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN enabled"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN disabled"</string>
     <string name="bearer" msgid="3231443241639159358">"Bearer"</string>
+    <string name="network_type" msgid="748590707422733595">"Network type"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Unspecified"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO type"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO value"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Delete APN"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Use Accessibility button to open"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Hold volume keys to open"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Triple-tap screen to open"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Two-finger triple tap screen to open"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Use gesture to open"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Use accessibility gesture"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"To use this feature, tap the accessibility button <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> on the bottom of your screen.\n\nTo switch between features, touch and hold the accessibility button."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"To use this feature, tap the Accessibility button on your screen."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"To use this feature, press and hold both volume keys."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"To start and stop magnification, triple-tap anywhere on your screen."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"To start and stop magnification, triple tap anywhere on your screen with two fingers."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"To use this feature, 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_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"To use this feature, 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_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"To use an accessibility feature, swipe up from the bottom of the screen with two fingers.\n\nTo switch between features, swipe up with two fingers and hold."</string>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Hold volume keys"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"hold 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_triple_tap" msgid="6687765191490040899">"Two-finger triple tap screen"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"two-finger triple tap screen"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"triple-tap screen"</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>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Use vibration and haptics"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Alarm vibration"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Media vibration"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Keyboard vibration"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Ring vibration"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Notification vibration"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Touch feedback"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> remaining"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> to charge"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Screen time"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Background time"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Low battery"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Allow the app to run in the background"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Limit background activity?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"If you limit background activity for an app, it may misbehave"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Since this app is not set to optimise battery, you can’t restrict it.\n\nTo restrict the app, first turn on battery optimisation."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Manage battery usage"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Allow background usage"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Enable for real-time updates, disable to save battery"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Unrestricted"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Optimised"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Restricted"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"since last full charge"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"System apps"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Uninstalled apps"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Others"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Estimated time left"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Until fully charged"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Total: less than a min."</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Background: less than a min"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Screen time: less than a min"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Less than a min"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Total: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Background: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Screen time: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Mobile data and Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Auto-sync personal data"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Auto-sync work data"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Auto-sync private data"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Change cycle…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Day of month to reset data usage cycle:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"No apps used data during this period."</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"text size, large print, large font, large text, low vision, make text bigger, font enlarger, font enlargement"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"always on ambient display, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, tag, reader"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"keyboard, haptics, vibrate,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Volume, vibration, Do Not Disturb"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Media volume"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Cast volume"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Show all notification content"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Show sensitive content only when unlocked"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Don\'t show notifications at all"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"How do you want the lock screen to display?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Lock screen"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Show all work notification content"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Hide sensitive work content"</string>
@@ -3354,6 +3448,17 @@
     <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="6121016426991791557">"Notification cooldown"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Apply cooldown to all notifications"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Gradually lower the notification volume when you get many successive notifications from the same app"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Apply cooldown to conversations"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Gradually lower the notification volume when you get many messages from the same chat within a short period of time"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Don\'t use notification cooldown"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Never lower notification volume, regardless of the amount of successive notifications from the same app"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Vibrate when unlocked"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Only vibrate when screen is unlocked"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Apply to work profiles"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Apply the notification cooldown settings from your personal profile to your work profile"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR helper services"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"No installed apps have requested to be run as VR helper services."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Allow VR service access for <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Allow access to manage all files"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Allow this app to read, modify and delete all files on this device or any connected storage volumes. If granted, app may access files without your explicit knowledge."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Can access all files"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Voice activation apps"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Allow voice activation"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Voice activation turns on approved apps, hands-free, using voice command. Built-in adaptive sensing ensures data stays private only to you.\n\n"<a href="">"More about protected adaptive sensing"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Full-screen notifications"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Allow full-screen notifications from this app"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Allow this app to show notifications that take up the full screen when the device is locked. Apps may use these to highlight alarms, incoming calls or other urgent notifications."</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> used more battery than usual while in the background"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> used more battery while in the foreground"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> used more battery than usual while in the foreground"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"High battery usage"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"High battery usage in the background"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"High battery usage in the foreground"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"system navigation, 2-button navigation, 3-button navigation, gesture navigation, swipe"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Digital assistant"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Swipe to invoke the assistant"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Swipe up from a bottom corner to invoke digital assistant app."</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Swipe up from the bottom corner to invoke digital assistant app."</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Hold Home for Assistant"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Press and hold the Home button to invoke digital assistant app."</string>
     <string name="low_label" msgid="6525629096999711220">"Low"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"data, passkey, password"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"auto, fill, autofill, data, passkey, password"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Make sure that you trust this app&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Auto-fill&gt;%1$s&lt;/xliff:g&gt; uses what\'s on your screen to determine what can be auto-filled."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Use &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; uses what\'s on your screen to determine what can be autofilled. New passwords, passkeys and other info will be saved here from now on."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Use &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; New passwords, passkeys and other info will be saved here from now on. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; may use what\'s on your screen to determine what can be autofilled."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Passwords, passkeys and data services"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Turn off %1$s?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Turn off this service?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Saved info like passwords, passkeys, payment methods and other info won\'t be filled in when you sign in. To use your saved info, choose a password, passkey or data service."</string>
@@ -4227,7 +4337,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">"Experimental: Enable ANGLE"</string>
-    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Warning: Enable ANGLE as default OpenGL ES driver. This feature is in experiment and may not be compatible with some camera and video apps."</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Warning: Enable ANGLE as default OpenGL ES driver. This feature is experimental and may not be compatible with some camera and video apps."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"A reboot is required to change the system OpenGL ES driver"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"App compatibility changes"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Toggle app compatibility changes"</string>
@@ -4856,4 +4966,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Scanning for deceptive apps"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Check app activity for phishing"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Use scanning for deceptive apps"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Use scanning for deceptive apps for work"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-en-rCA/arrays.xml b/res/values-en-rCA/arrays.xml
index 46c29b1..50c5678 100644
--- a/res/values-en-rCA/arrays.xml
+++ b/res/values-en-rCA/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"After 1 minute"</item>
     <item msgid="1574040255478150028">"After 5 minutes"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index 8e4daab..f4c31e2 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Disable Bluetooth LE audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Disables Bluetooth LE audio feature if the device supports LE audio hardware capabilities."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Show LE audio toggle in Device Details"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Enable Bluetooth LE audio Allow List"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Enable Bluetooth LE audio allow list feature."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Bypass Bluetooth LE Audio Allowlist"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Use LE Audio by default even if LE Audio peripheral hasn\'t been verified to meet Allowlist criteria."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Media devices"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Call devices"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Other devices"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Saved devices"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Associated with account"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Previously used with account"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth will turn on to pair"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Connection preferences"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Previously connected"</string>
@@ -132,6 +133,14 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Write in text fields"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignore all stylus button presses"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Stylus"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Audio sharing"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Share audio"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Calls and alarms"</string>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Connect to a LE audio stream"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Nearby audio streams"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Audio streams"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Connect to an audio stream using QR code"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"No nearby audio streams were found."</string>
     <string name="date_and_time" msgid="1788358029823431692">"Date and time"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Clear"</string>
@@ -534,16 +543,70 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Work profile"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Private Space"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Hide apps in a private folder"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Unlock using screen lock"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Show Private Space"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Hide when locked"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Hide Private Space when locked"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"To stop other people knowing Private Space is on your device, you can hide it from your apps list"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Access Private Space when hidden"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Search for \'Private Space\' in the search bar"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Tap the Private Space tile"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Unlock your Private Space"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Off"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"On"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"System"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Create Private Space"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Delete Private Space"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Private Space successfully created"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Private Space already exists"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Private Space could not be created"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Private Space successfully deleted"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Private Space could not be deleted"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Set a screen lock"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"To use Private Space, set a screen lock on this device."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Set screen lock"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Cancel"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Cancel"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Set up"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Set up Private Space"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Hide private apps in a secure space that only you can access"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"How it works"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"You can access Private Space from the bottom of your apps list"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Apps in Private Space are protected by a lock"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Notifications from apps in Private Space are hidden when it’s locked"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Private Space apps won’t appear in permission manager, privacy dashboard, and other settings when Private Space is locked"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Setting up Private Space…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Private Space is protected by a lock"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Usage info for Private Space apps is hidden when it’s locked"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Access Private Space from your apps list"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Couldn’t set up Private Space"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Try again now, or come back later"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Try Again"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Use screen lock to unlock?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"You can unlock Private Space the same way you unlock your device, or choose a different lock"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Use screen lock"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Choose new lock"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"All set!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"To access Private Space, swipe up from the bottom of your home screen, then scroll down"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Done"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Scroll down to access Private Space"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Sign in to set up Private Space"</string>
+    <string name="privatespace_retry_summary" msgid="1508253540053006284">"You need to sign in to an account to set up Private Space"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"To show Private Space (Not final UX)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Open the Settings App"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Tap on Security &amp; privacy &gt; Private Space &gt; Hide Private Space when locked"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Turn off Hide Private Space when locked toggle"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Note to Googlers: The development of this feature is still in progress"</string>
     <string name="fingerprint_add_max" msgid="8639321019299347447">"You can add up to <xliff:g id="COUNT">%d</xliff:g> fingerprints"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"You’ve added the maximum number of fingerprints"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Can’t add more fingerprints"</string>
@@ -707,7 +770,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Connect"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Disconnect"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Pair &amp; connect"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"When Bluetooth is turned on, your device can communicate with other nearby Bluetooth devices."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"When Bluetooth is turned on, your device can communicate with other nearby Bluetooth devices"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"When Bluetooth is turned on, your device can communicate with other nearby Bluetooth devices.\n\nTo improve device experience, apps and services can still scan for nearby devices at any time, even when Bluetooth is off. This can be used, for example, to improve location-based features and services. You can change this in Bluetooth scanning settings."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Change"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Device details"</string>
@@ -760,6 +823,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Allow ART to verify bytecode for debuggable apps"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Show refresh rate"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Show the current display refresh rate"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Show HDR/SDR ratio"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Show the current HDR/SDR ratio"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Require device unlock for NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1061,7 +1126,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Continue using apps on fold"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Automatically raises the refresh rate from 60 to <xliff:g id="ID_1">%1$s</xliff:g> Hz for some content. Increases battery usage."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Automatically raises the refresh rate up to <xliff:g id="ID_1">%1$d</xliff:g> Hz for some content. Increases battery usage."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Force peak refresh rate"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Highest refresh rate for improved touch responsiveness &amp; animation quality. Increases battery usage."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Screen attention"</string>
@@ -1297,6 +1362,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Communal settings"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APNs"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Edit access point"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Add access point"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Not set"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Not set"</string>
     <string name="apn_name" msgid="6677695784108157953">"Name"</string>
@@ -1319,6 +1385,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN enabled"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN disabled"</string>
     <string name="bearer" msgid="3231443241639159358">"Bearer"</string>
+    <string name="network_type" msgid="748590707422733595">"Network type"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Unspecified"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO type"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO value"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Delete APN"</string>
@@ -1929,12 +1997,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Use accessibility button to open"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Hold volume keys to open"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Triple-tap screen to open"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Two finger triple tap screen to open"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Use gesture to open"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Use accessibility gesture"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"To use this feature, tap the accessibility button <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> on the bottom of your screen.\n\nTo switch between features, touch and hold the accessibility button."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"To use this feature, tap the accessibility button on your screen."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"To use this feature, press and hold both volume keys."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"To start and stop magnification, triple-tap anywhere on your screen."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"To start and stop magnification, triple-tap anywhere on your screen with two fingers."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"To use this feature, swipe up from the bottom of the screen with 2 fingers.\n\nTo switch between features, swipe up with 2 fingers and hold."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"To use this feature, swipe up from the bottom of the screen with 3 fingers.\n\nTo switch between features, swipe up with 3 fingers and hold."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"To use an accessibility feature, swipe up from the bottom of the screen with 2 fingers.\n\nTo switch between features, swipe up with 2 fingers and hold."</string>
@@ -1956,6 +2026,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Hold volume keys"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"hold 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_triple_tap" msgid="6687765191490040899">"Two-finger triple-tap screen"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"two-finger triple-tap screen"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"triple-tap screen"</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>
@@ -2043,6 +2116,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Use vibration and haptics"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Alarm vibration"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Media vibration"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Keyboard vibration"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Ring vibration"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Notification vibration"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Touch feedback"</string>
@@ -2244,11 +2318,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> remaining"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> to charge"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Screen time"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Background time"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Low battery"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Allow the app to run in the background"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Limit background activity?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"If you limit background activity for an app, it may misbehave"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Since this app is not set to optimize battery, you can\'t restrict it.\n\nTo restrict the app, first turn on battery optimization."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Manage battery usage"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Allow background usage"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Enable for real-time updates, disable to save battery"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Unrestricted"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Optimized"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Restricted"</string>
@@ -2347,6 +2426,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"since last full charge"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"System apps"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Uninstalled apps"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Others"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Estimated time left"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Until fully charged"</string>
@@ -2390,6 +2470,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Total: less than a min"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Background: less than a min"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Screen time: less than a min"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Less than a min"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Total: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Background: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Screen time: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2605,6 +2686,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Mobile data &amp; Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Auto-sync personal data"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Auto-sync work data"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Auto-sync private data"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Change cycle…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Day of month to reset data usage cycle:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"No apps used data during this period."</string>
@@ -3047,6 +3129,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"text size, large print, large font, large text, low vision, make text bigger, font enlarger, font enlargement"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"always on ambient display, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, tag, reader"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"keyboard, haptics, vibrate,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Volume, vibration, Do Not Disturb"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Media volume"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Cast volume"</string>
@@ -3266,7 +3349,7 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Show all notification content"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Show sensitive content only when unlocked"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Don\'t show notifications at all"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"How do you want the lock screen to display?"</string>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"What do you want your lock screen to show?"</string>
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Lock screen"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Show all work notification content"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Hide sensitive work content"</string>
@@ -3353,6 +3436,17 @@
     <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="6121016426991791557">"Notification cooldown"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Apply cooldown to all notifications"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Gradually lower the notification volume when you get many successive notifications from the same app"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Apply cooldown to conversations"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Gradually lower the notification volume when you get many messages from the same chat within a short period of time"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Don\'t use notification cooldown"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Never lower notification volume, regardless of the amount of successive notifications from the same app"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Vibrate when unlocked"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Only vibrate when screen is unlocked"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Apply to work profiles"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Apply the notification cooldown settings from your personal profile to your work profile"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR helper services"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"No installed apps have requested to be run as VR helper services."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Allow VR service access for <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3744,6 +3838,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Allow access to manage all files"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Allow this app to read, modify and delete all files on this device or any connected storage volumes. If granted, app may access files without your explicit knowledge."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Can access all files"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Voice activation apps"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Allow voice activation"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Voice activation turns-on approved apps, hands-free, using voice command. Built-in adaptive sensing ensures data stays private only to you.\n\n"<a href="">"More about protected adaptive sensing"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Full screen notifications"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Allow full screen notifications from this app"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Allow this app to show notifications that take up the full screen when the device is locked. Apps may use these to highlight alarms, incoming calls, or other urgent notifications."</string>
@@ -3907,6 +4004,7 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> used more battery than usual while in the background"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> used more battery while in the foreground"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> used more battery than usual while in the foreground"</string>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Battery usage anomaly"</string>
     <string name="battery_app_item_hint" msgid="4850929961461039110">"High battery usage"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"High battery usage in the background"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"High battery usage in the foreground"</string>
@@ -4004,7 +4102,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"system navigation, two-button navigation, three-button navigation, gesture navigation, swipe"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Digital assistant"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Swipe to invoke assistant"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Swipe up from a bottom corner to invoke digital assistant app."</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Swipe up from a bottom corner to invoke digital assistant app"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Hold Home for Assistant"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Press and hold the Home button to invoke digital assistant app."</string>
     <string name="low_label" msgid="6525629096999711220">"Low"</string>
@@ -4171,7 +4269,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"data, passkey, password"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"auto, fill, autofill, data, passkey, password"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Make sure you trust this app&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; uses what\'s on your screen to determine what can be autofilled."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Use &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; uses what\'s on your screen to determine what can be autofilled. New passwords, passkeys and other info will be saved here from now on."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Use &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; New passwords, passkeys, and other info will be saved here from now on. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; may use what\'s on your screen to determine what can be autofilled."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Passwords, passkeys, and data services"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Turn off %1$s?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Turn off this service?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Saved info like passwords, passkeys, payment methods, and other info won\'t be filled in when you sign in. To use your saved info, choose a password, passkey, or data service."</string>
@@ -4855,4 +4953,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Scanning for deceptive apps"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Check app activity for phishing"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Use scanning for deceptive apps"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Use scanning for deceptive apps for work"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-en-rGB/arrays.xml b/res/values-en-rGB/arrays.xml
index 7f5af74..3e9299d 100644
--- a/res/values-en-rGB/arrays.xml
+++ b/res/values-en-rGB/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"After one minute"</item>
     <item msgid="1574040255478150028">"After five minutes"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 296eb27..60e4062 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Disable Bluetooth LE audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Disables the Bluetooth LE audio feature if the device supports LE audio hardware capabilities."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Show LE Audio toggle in Device details"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Enable Bluetooth LE Audio allow List"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Enable Bluetooth LE Audio allow list feature."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Bypass Bluetooth LE Audio allowlist"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Use LE Audio by default even if LE Audio peripheral hasn\'t been verified to meet allowlist criteria."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Media devices"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Call devices"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Other devices"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Saved devices"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Associated with account"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Previously used with account"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth will turn on to pair"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Connection preferences"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Previously connected"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Write in text fields"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignore all stylus button presses"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Stylus"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Audio sharing"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Share audio"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Calls and alarms"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Date and time"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Clear"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Learn more about location settings"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Accounts"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Security"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Encryption and credentials"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Work profile"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Private Space"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Hide apps in a private folder"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Unlock using screen lock"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Show Private Space"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Hide when locked"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Hide Private Space when locked"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"To stop other people knowing Private Space is on your device, you can hide it from your apps list"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Access Private Space when hidden"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Search for \'Private Space\' in the search bar"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Tap the Private Space tile"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Unlock your Private Space"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Off"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"On"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"System"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Create Private Space"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Delete Private Space"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Private Space successfully created"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Private Space already exists"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Private Space could not be created"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Private Space successfully deleted"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Private Space could not be deleted"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Set a screen lock"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"To use Private Space, set a screen lock on this device."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Set screen lock"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Cancel"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Cancel"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Set up"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Set up Private Space"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Hide private apps in a secure space that only you can access"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"How it works"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"You can access Private Space from the bottom of your apps list"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Apps in Private Space are protected by a lock"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Notifications from apps in Private Space are hidden when it’s locked"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Private Space apps won’t appear in permission manager, privacy dashboard and other settings when Private Space is locked"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Setting up Private Space…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Private Space is protected by a lock"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Usage info for Private Space apps is hidden when it’s locked"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Access Private Space from your apps list"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Couldn’t set up Private Space"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Try again now, or come back later"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Try again"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Use screen lock to unlock?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"You can unlock Private Space the same way you unlock your device, or choose a different lock"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Use screen lock"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Choose new lock"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"All set!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"To access Private Space, swipe up from the bottom of your home screen, then scroll down"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Done"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Scroll down to access Private Space"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Sign in to set up Private Space"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"You can add up to <xliff:g id="COUNT">%d</xliff:g> fingerprints"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"You’ve added the maximum number of fingerprints"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Can’t add more fingerprints"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Connect"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Disconnect"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Pair &amp; connect"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"When Bluetooth is turned on, your device can communicate with other nearby Bluetooth devices."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"When Bluetooth is turned on, your device can communicate with other nearby Bluetooth devices"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"When Bluetooth is turned on, your device can communicate with other nearby Bluetooth devices.\n\nTo improve device experience, apps and services can still scan for nearby devices at any time, even when Bluetooth is off. This can be used, for example, to improve location-based features and services. You can change this in Bluetooth scanning settings."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Change"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Device details"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Allow ART to verify bytecode for debuggable apps"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Show refresh rate"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Show the current display refresh rate"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Show HDR/SDR ratio"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Show the current HDR/SDR ratio"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Require device unlock for NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1137,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Continue using apps on fold"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Automatically raises the refresh rate from 60 to <xliff:g id="ID_1">%1$s</xliff:g> Hz for some content. Increases battery usage."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Automatically raises the refresh rate up to <xliff:g id="ID_1">%1$d</xliff:g> Hz for some content. Increases battery usage."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Force peak refresh rate"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Highest refresh rate for improved touch responsiveness and animation quality. Increases battery usage."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Screen attention"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Communal settings"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APNs"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Edit access point"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Add access point"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Not set"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Not set"</string>
     <string name="apn_name" msgid="6677695784108157953">"Name"</string>
@@ -1320,6 +1396,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN enabled"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN disabled"</string>
     <string name="bearer" msgid="3231443241639159358">"Bearer"</string>
+    <string name="network_type" msgid="748590707422733595">"Network type"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Unspecified"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO type"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO value"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Delete APN"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Use Accessibility button to open"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Hold volume keys to open"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Triple-tap screen to open"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Two-finger triple tap screen to open"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Use gesture to open"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Use accessibility gesture"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"To use this feature, tap the accessibility button <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> on the bottom of your screen.\n\nTo switch between features, touch and hold the accessibility button."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"To use this feature, tap the Accessibility button on your screen."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"To use this feature, press and hold both volume keys."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"To start and stop magnification, triple-tap anywhere on your screen."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"To start and stop magnification, triple tap anywhere on your screen with two fingers."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"To use this feature, 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_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"To use this feature, 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_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"To use an accessibility feature, swipe up from the bottom of the screen with two fingers.\n\nTo switch between features, swipe up with two fingers and hold."</string>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Hold volume keys"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"hold 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_triple_tap" msgid="6687765191490040899">"Two-finger triple tap screen"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"two-finger triple tap screen"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"triple-tap screen"</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>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Use vibration and haptics"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Alarm vibration"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Media vibration"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Keyboard vibration"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Ring vibration"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Notification vibration"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Touch feedback"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> remaining"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> to charge"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Screen time"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Background time"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Low battery"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Allow the app to run in the background"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Limit background activity?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"If you limit background activity for an app, it may misbehave"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Since this app is not set to optimise battery, you can’t restrict it.\n\nTo restrict the app, first turn on battery optimisation."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Manage battery usage"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Allow background usage"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Enable for real-time updates, disable to save battery"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Unrestricted"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Optimised"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Restricted"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"since last full charge"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"System apps"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Uninstalled apps"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Others"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Estimated time left"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Until fully charged"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Total: less than a min."</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Background: less than a min"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Screen time: less than a min"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Less than a min"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Total: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Background: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Screen time: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Mobile data and Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Auto-sync personal data"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Auto-sync work data"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Auto-sync private data"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Change cycle…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Day of month to reset data usage cycle:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"No apps used data during this period."</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"text size, large print, large font, large text, low vision, make text bigger, font enlarger, font enlargement"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"always on ambient display, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, tag, reader"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"keyboard, haptics, vibrate,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Volume, vibration, Do Not Disturb"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Media volume"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Cast volume"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Show all notification content"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Show sensitive content only when unlocked"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Don\'t show notifications at all"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"How do you want the lock screen to display?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Lock screen"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Show all work notification content"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Hide sensitive work content"</string>
@@ -3354,6 +3448,17 @@
     <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="6121016426991791557">"Notification cooldown"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Apply cooldown to all notifications"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Gradually lower the notification volume when you get many successive notifications from the same app"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Apply cooldown to conversations"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Gradually lower the notification volume when you get many messages from the same chat within a short period of time"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Don\'t use notification cooldown"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Never lower notification volume, regardless of the amount of successive notifications from the same app"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Vibrate when unlocked"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Only vibrate when screen is unlocked"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Apply to work profiles"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Apply the notification cooldown settings from your personal profile to your work profile"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR helper services"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"No installed apps have requested to be run as VR helper services."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Allow VR service access for <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Allow access to manage all files"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Allow this app to read, modify and delete all files on this device or any connected storage volumes. If granted, app may access files without your explicit knowledge."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Can access all files"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Voice activation apps"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Allow voice activation"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Voice activation turns on approved apps, hands-free, using voice command. Built-in adaptive sensing ensures data stays private only to you.\n\n"<a href="">"More about protected adaptive sensing"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Full-screen notifications"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Allow full-screen notifications from this app"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Allow this app to show notifications that take up the full screen when the device is locked. Apps may use these to highlight alarms, incoming calls or other urgent notifications."</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> used more battery than usual while in the background"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> used more battery while in the foreground"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> used more battery than usual while in the foreground"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"High battery usage"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"High battery usage in the background"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"High battery usage in the foreground"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"system navigation, 2-button navigation, 3-button navigation, gesture navigation, swipe"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Digital assistant"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Swipe to invoke the assistant"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Swipe up from a bottom corner to invoke digital assistant app."</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Swipe up from the bottom corner to invoke digital assistant app."</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Hold Home for Assistant"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Press and hold the Home button to invoke digital assistant app."</string>
     <string name="low_label" msgid="6525629096999711220">"Low"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"data, passkey, password"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"auto, fill, autofill, data, passkey, password"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Make sure that you trust this app&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Auto-fill&gt;%1$s&lt;/xliff:g&gt; uses what\'s on your screen to determine what can be auto-filled."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Use &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; uses what\'s on your screen to determine what can be autofilled. New passwords, passkeys and other info will be saved here from now on."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Use &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; New passwords, passkeys and other info will be saved here from now on. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; may use what\'s on your screen to determine what can be autofilled."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Passwords, passkeys and data services"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Turn off %1$s?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Turn off this service?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Saved info like passwords, passkeys, payment methods and other info won\'t be filled in when you sign in. To use your saved info, choose a password, passkey or data service."</string>
@@ -4227,7 +4337,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">"Experimental: Enable ANGLE"</string>
-    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Warning: Enable ANGLE as default OpenGL ES driver. This feature is in experiment and may not be compatible with some camera and video apps."</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Warning: Enable ANGLE as default OpenGL ES driver. This feature is experimental and may not be compatible with some camera and video apps."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"A reboot is required to change the system OpenGL ES driver"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"App compatibility changes"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Toggle app compatibility changes"</string>
@@ -4856,4 +4966,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Scanning for deceptive apps"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Check app activity for phishing"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Use scanning for deceptive apps"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Use scanning for deceptive apps for work"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-en-rIN/arrays.xml b/res/values-en-rIN/arrays.xml
index 7f5af74..3e9299d 100644
--- a/res/values-en-rIN/arrays.xml
+++ b/res/values-en-rIN/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"After one minute"</item>
     <item msgid="1574040255478150028">"After five minutes"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index c8e4740..a587227 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Disable Bluetooth LE audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Disables the Bluetooth LE audio feature if the device supports LE audio hardware capabilities."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Show LE Audio toggle in Device details"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Enable Bluetooth LE Audio allow List"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Enable Bluetooth LE Audio allow list feature."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Bypass Bluetooth LE Audio allowlist"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Use LE Audio by default even if LE Audio peripheral hasn\'t been verified to meet allowlist criteria."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Media devices"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Call devices"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Other devices"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Saved devices"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Associated with account"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Previously used with account"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth will turn on to pair"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Connection preferences"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Previously connected"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Write in text fields"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignore all stylus button presses"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Stylus"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Audio sharing"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Share audio"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Calls and alarms"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Date and time"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Clear"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Learn more about location settings"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Accounts"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Security"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Encryption and credentials"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Work profile"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Private Space"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Hide apps in a private folder"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Unlock using screen lock"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Show Private Space"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Hide when locked"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Hide Private Space when locked"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"To stop other people knowing Private Space is on your device, you can hide it from your apps list"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Access Private Space when hidden"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Search for \'Private Space\' in the search bar"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Tap the Private Space tile"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Unlock your Private Space"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Off"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"On"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"System"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Create Private Space"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Delete Private Space"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Private Space successfully created"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Private Space already exists"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Private Space could not be created"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Private Space successfully deleted"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Private Space could not be deleted"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Set a screen lock"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"To use Private Space, set a screen lock on this device."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Set screen lock"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Cancel"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Cancel"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Set up"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Set up Private Space"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Hide private apps in a secure space that only you can access"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"How it works"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"You can access Private Space from the bottom of your apps list"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Apps in Private Space are protected by a lock"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Notifications from apps in Private Space are hidden when it’s locked"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Private Space apps won’t appear in permission manager, privacy dashboard and other settings when Private Space is locked"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Setting up Private Space…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Private Space is protected by a lock"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Usage info for Private Space apps is hidden when it’s locked"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Access Private Space from your apps list"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Couldn’t set up Private Space"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Try again now, or come back later"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Try again"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Use screen lock to unlock?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"You can unlock Private Space the same way you unlock your device, or choose a different lock"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Use screen lock"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Choose new lock"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"All set!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"To access Private Space, swipe up from the bottom of your home screen, then scroll down"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Done"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Scroll down to access Private Space"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Sign in to set up Private Space"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"You can add up to <xliff:g id="COUNT">%d</xliff:g> fingerprints"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"You’ve added the maximum number of fingerprints"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Can’t add more fingerprints"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Connect"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Disconnect"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Pair &amp; connect"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"When Bluetooth is turned on, your device can communicate with other nearby Bluetooth devices."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"When Bluetooth is turned on, your device can communicate with other nearby Bluetooth devices"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"When Bluetooth is turned on, your device can communicate with other nearby Bluetooth devices.\n\nTo improve device experience, apps and services can still scan for nearby devices at any time, even when Bluetooth is off. This can be used, for example, to improve location-based features and services. You can change this in Bluetooth scanning settings."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Change"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Device details"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Allow ART to verify bytecode for debuggable apps"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Show refresh rate"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Show the current display refresh rate"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Show HDR/SDR ratio"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Show the current HDR/SDR ratio"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Require device unlock for NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1137,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Continue using apps on fold"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Automatically raises the refresh rate from 60 to <xliff:g id="ID_1">%1$s</xliff:g> Hz for some content. Increases battery usage."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Automatically raises the refresh rate up to <xliff:g id="ID_1">%1$d</xliff:g> Hz for some content. Increases battery usage."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Force peak refresh rate"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Highest refresh rate for improved touch responsiveness and animation quality. Increases battery usage."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Screen attention"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Communal settings"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APNs"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Edit access point"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Add access point"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Not set"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Not set"</string>
     <string name="apn_name" msgid="6677695784108157953">"Name"</string>
@@ -1320,6 +1396,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN enabled"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN disabled"</string>
     <string name="bearer" msgid="3231443241639159358">"Bearer"</string>
+    <string name="network_type" msgid="748590707422733595">"Network type"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Unspecified"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO type"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO value"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Delete APN"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Use Accessibility button to open"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Hold volume keys to open"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Triple-tap screen to open"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Two-finger triple tap screen to open"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Use gesture to open"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Use accessibility gesture"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"To use this feature, tap the accessibility button <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> on the bottom of your screen.\n\nTo switch between features, touch and hold the accessibility button."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"To use this feature, tap the Accessibility button on your screen."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"To use this feature, press and hold both volume keys."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"To start and stop magnification, triple-tap anywhere on your screen."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"To start and stop magnification, triple tap anywhere on your screen with two fingers."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"To use this feature, 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_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"To use this feature, 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_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"To use an accessibility feature, swipe up from the bottom of the screen with two fingers.\n\nTo switch between features, swipe up with two fingers and hold."</string>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Hold volume keys"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"hold 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_triple_tap" msgid="6687765191490040899">"Two-finger triple tap screen"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"two-finger triple tap screen"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"triple-tap screen"</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>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Use vibration and haptics"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Alarm vibration"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Media vibration"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Keyboard vibration"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Ring vibration"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Notification vibration"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Touch feedback"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> remaining"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> to charge"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Screen time"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Background time"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Low battery"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Allow the app to run in the background"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Limit background activity?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"If you limit background activity for an app, it may misbehave"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Since this app is not set to optimise battery, you can’t restrict it.\n\nTo restrict the app, first turn on battery optimisation."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Manage battery usage"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Allow background usage"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Enable for real-time updates, disable to save battery"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Unrestricted"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Optimised"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Restricted"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"since last full charge"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"System apps"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Uninstalled apps"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Others"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Estimated time left"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Until fully charged"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Total: less than a min."</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Background: less than a min"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Screen time: less than a min"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Less than a min"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Total: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Background: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Screen time: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Mobile data and Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Auto-sync personal data"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Auto-sync work data"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Auto-sync private data"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Change cycle…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Day of month to reset data usage cycle:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"No apps used data during this period."</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"text size, large print, large font, large text, low vision, make text bigger, font enlarger, font enlargement"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"always on ambient display, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, tag, reader"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"keyboard, haptics, vibrate,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Volume, vibration, Do Not Disturb"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Media volume"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Cast volume"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Show all notification content"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Show sensitive content only when unlocked"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Don\'t show notifications at all"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"How do you want the lock screen to display?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Lock screen"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Show all work notification content"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Hide sensitive work content"</string>
@@ -3354,6 +3448,17 @@
     <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="6121016426991791557">"Notification cooldown"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Apply cooldown to all notifications"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Gradually lower the notification volume when you get many successive notifications from the same app"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Apply cooldown to conversations"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Gradually lower the notification volume when you get many messages from the same chat within a short period of time"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Don\'t use notification cooldown"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Never lower notification volume, regardless of the amount of successive notifications from the same app"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Vibrate when unlocked"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Only vibrate when screen is unlocked"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Apply to work profiles"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Apply the notification cooldown settings from your personal profile to your work profile"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR helper services"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"No installed apps have requested to be run as VR helper services."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Allow VR service access for <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Allow access to manage all files"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Allow this app to read, modify and delete all files on this device or any connected storage volumes. If granted, app may access files without your explicit knowledge."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Can access all files"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Voice activation apps"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Allow voice activation"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Voice activation turns on approved apps, hands-free, using voice command. Built-in adaptive sensing ensures data stays private only to you.\n\n"<a href="">"More about protected adaptive sensing"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Full-screen notifications"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Allow full-screen notifications from this app"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Allow this app to show notifications that take up the full screen when the device is locked. Apps may use these to highlight alarms, incoming calls or other urgent notifications."</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> used more battery than usual while in the background"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> used more battery while in the foreground"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> used more battery than usual while in the foreground"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"High battery usage"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"High battery usage in the background"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"High battery usage in the foreground"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"system navigation, 2-button navigation, 3-button navigation, gesture navigation, swipe"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Digital assistant"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Swipe to invoke the assistant"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Swipe up from a bottom corner to invoke digital assistant app."</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Swipe up from the bottom corner to invoke digital assistant app."</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Hold Home for Assistant"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Press and hold the Home button to invoke digital assistant app."</string>
     <string name="low_label" msgid="6525629096999711220">"Low"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"data, passkey, password"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"auto, fill, autofill, data, passkey, password"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Make sure that you trust this app&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Auto-fill&gt;%1$s&lt;/xliff:g&gt; uses what\'s on your screen to determine what can be auto-filled."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Use &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; uses what\'s on your screen to determine what can be autofilled. New passwords, passkeys and other info will be saved here from now on."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Use &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; New passwords, passkeys and other info will be saved here from now on. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; may use what\'s on your screen to determine what can be autofilled."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Passwords, passkeys and data services"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Turn off %1$s?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Turn off this service?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Saved info like passwords, passkeys, payment methods and other info won\'t be filled in when you sign in. To use your saved info, choose a password, passkey or data service."</string>
@@ -4227,7 +4337,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">"Experimental: Enable ANGLE"</string>
-    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Warning: Enable ANGLE as default OpenGL ES driver. This feature is in experiment and may not be compatible with some camera and video apps."</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Warning: Enable ANGLE as default OpenGL ES driver. This feature is experimental and may not be compatible with some camera and video apps."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"A reboot is required to change the system OpenGL ES driver"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"App compatibility changes"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Toggle app compatibility changes"</string>
@@ -4856,4 +4966,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Scanning for deceptive apps"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Check app activity for phishing"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Use scanning for deceptive apps"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Use scanning for deceptive apps for work"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-en-rXC/arrays.xml b/res/values-en-rXC/arrays.xml
index d7800e6..67ce5b1 100644
--- a/res/values-en-rXC/arrays.xml
+++ b/res/values-en-rXC/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‏‏‏‏‏‎‏‎‏‏‎‏‏‎‏‎‏‏‏‎‏‏‎‎‎‏‎‏‏‏‏‎‏‎‏‎‏‏‏‏‎‏‏‎‎‏‏‏‏‏‎‏‎‏‎After 1 minute‎‏‎‎‏‎"</item>
     <item msgid="1574040255478150028">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‏‏‏‎‏‏‎‎‎‎‎‎‏‏‏‎‏‎‏‎‎‎‏‎‏‏‏‎‏‎‎‎‏‏‏‏‏‎‎‎‎‏‎‏‏‎‎‏‏‏‎‎‎‏‏‎‎‎After 5 minutes‎‏‎‎‏‎"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index fe22747..c157349 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‏‏‎‎‏‏‏‏‎‎‏‎‎‏‏‎‎‎‏‎‎‎‏‎‎‏‏‏‏‏‎‎‎‏‎‎‎‏‏‎‎‏‎‎‎‏‎‏‏‎‎‎‏‏‎‏‎‎Disable Bluetooth LE audio‎‏‎‎‏‎"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‎‎‎‎‎‎‎‎‏‏‏‎‎‏‏‎‎‏‎‎‏‎‏‏‏‏‎‏‏‎‏‏‏‏‏‎‏‏‏‏‏‏‏‏‎‎‎‏‎‎‏‏‏‏‏‏‎‎Disables Bluetooth LE audio feature if the device supports LE audio hardware capabilities.‎‏‎‎‏‎"</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‎‏‏‏‏‎‎‎‏‏‏‎‎‎‏‎‎‏‏‎‎‏‏‏‎‏‏‏‎‏‏‏‏‎‎‎‏‎‏‏‎‏‏‎‎‏‎‎‏‎‎‏‏‎‏‎‏‎‎Show LE audio toggle in Device Details‎‏‎‎‏‎"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‏‏‎‏‏‏‏‏‏‎‏‎‏‏‏‏‎‏‏‏‎‎‎‎‏‏‎‏‎‎‏‏‎‎‎‏‏‏‏‏‎‎‎‎‎‏‎‎‏‏‏‏‎‏‏‏‏‎‎Enable Bluetooth LE audio Allow List‎‏‎‎‏‎"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‏‎‎‎‎‏‎‎‎‏‏‏‎‏‏‎‏‎‎‏‏‏‎‎‏‏‏‎‏‎‏‎‎‏‎‎‎‏‎‎‏‎‎‏‏‎‎‎‎‎‎‏‎‎‏‏‎‏‎Enable Bluetooth LE audio allow list feature.‎‏‎‎‏‎"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‎‏‎‎‏‎‏‏‎‏‏‎‎‏‎‏‏‎‏‏‎‏‎‎‏‎‏‏‎‎‏‎‎‏‎‎‏‎‎‏‎‎‏‎‏‏‎‏‎‏‎‏‏‎‎‎‎‎Bypass Bluetooth LE Audio Allowlist‎‏‎‎‏‎"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‎‎‏‏‏‎‎‎‏‏‏‎‏‏‏‏‎‏‏‏‏‎‏‎‎‎‎‏‏‎‏‏‎‎‎‎‎‏‎‎‏‏‎‏‏‎‏‎‎‏‎‎‏‎‎‎‏‎‎Use LE Audio by default even if LE Audio peripheral hasn\'t been verified to meet Allowlist criteria.‎‏‎‎‏‎"</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‎‎‏‎‎‎‎‎‎‏‎‏‎‎‏‎‏‏‏‎‎‏‎‎‎‎‏‏‏‎‎‎‎‏‎‏‎‎‎‎‏‏‎‎‎‎‎‏‎‎‎‏‎‎‏‏‏‎‎Media devices‎‏‎‎‏‎"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‎‏‏‎‎‏‏‏‎‏‏‎‎‏‏‏‏‎‏‏‎‏‎‎‎‏‏‏‎‎‏‏‏‎‏‏‏‏‎‎‎‏‏‎‎‎‎‏‏‏‎‏‏‎‏‏‎‎‎‎Call devices‎‏‎‎‏‎"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‏‏‏‎‏‎‎‏‏‎‏‏‏‎‎‎‏‎‎‎‏‏‎‏‏‏‎‎‏‏‎‎‎‎‎‎‎‏‎‏‎‎‎‎‏‎‏‎‎‏‎Other devices‎‏‎‎‏‎"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‏‏‏‎‏‎‎‎‏‎‎‎‎‏‎‏‎‎‏‎‏‎‏‏‎‏‏‎‎‎‏‎‏‏‎‎‏‏‏‎‏‏‏‏‏‎‎‎‏‏‎‏‎‎‏‏‏‎Saved devices‎‏‎‎‏‎"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‏‏‎‎‎‏‎‎‏‏‎‎‏‎‎‎‎‏‏‏‎‎‏‎‎‎‎‎‎‏‏‏‏‏‎‏‏‏‎‎‏‎‎‏‎‏‏‎‎‎‏‎‎‏‎‎‎‎Associated with account‎‏‎‎‏‎"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‏‏‏‎‏‏‎‏‎‏‎‎‎‎‏‎‎‏‎‏‎‏‏‎‏‎‏‏‎‎‏‏‏‎‏‏‏‎‎‏‎‏‎‎‏‎‎‏‏‎‏‎‎‎‎‏‎Previously used with account‎‏‎‎‏‎"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‎‏‎‏‏‎‎‏‏‏‎‏‏‎‎‎‏‎‏‏‎‏‏‏‏‎‏‎‏‎‏‏‏‏‏‏‎‎‏‎‎‏‏‏‎‎‏‎‎‎‏‎‎Bluetooth will turn on to pair‎‏‎‎‏‎"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‏‏‏‎‎‏‎‎‏‏‏‏‎‏‏‎‏‎‎‏‎‏‏‏‎‏‎‏‏‎‏‎‎‏‏‏‏‏‏‏‎‎‏‎‏‎‎‏‏‏‎‏‎‎‎‏‎‎Connection preferences‎‏‎‎‏‎"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‎‎‏‎‏‏‎‎‎‏‎‏‎‏‏‏‏‎‎‏‎‏‎‎‏‏‏‏‏‎‎‎‎‏‎‏‏‎‏‏‎‏‎‏‏‏‏‏‏‏‎‏‎Previously connected‎‏‎‎‏‎"</string>
@@ -132,6 +133,14 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‎‏‏‎‎‏‏‎‏‎‎‎‏‏‏‏‎‏‎‎‏‏‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‎‏‏‎‎‎‏‎‎‎‏‏‏‎Write in text fields‎‏‎‎‏‎"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‏‎‏‎‏‎‏‏‎‏‎‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‏‎‎‏‎‏‎‎‎‎‎‏‏‎‏‎‏‏‎‏‏‏‎‎‏‎‏‏‏‏‎Ignore all stylus button presses‎‏‎‎‏‎"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‏‏‎‎‏‏‎‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‏‎‎‏‏‎‏‎‏‎‎‎‏‏‎‏‎‏‎‎‎‏‏‏‏‎‎‏‏‎‎‎‏‎‎‎Stylus‎‏‎‎‏‎"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‏‏‎‎‎‎‎‏‏‎‎‎‎‎‎‎‎‏‏‏‏‎‏‎‏‏‎‏‏‏‎‏‎‎‏‎‎‎‎‏‎‏‏‏‎‏‏‎‎‎‎‏‎‏‏‎‏‎Audio sharing‎‏‎‎‏‎"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‏‏‏‏‎‎‎‎‎‏‎‏‎‏‏‎‏‎‎‎‏‎‏‏‎‏‎‎‎‎‎‏‏‏‎‎‏‎‏‏‏‎‏‏‏‏‏‎‎‏‏‏‎‎‏‎‏‎Share audio‎‏‎‎‏‎"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‎‎‏‏‏‎‎‎‎‏‏‏‎‎‏‏‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‏‏‏‏‏‏‏‎‏‏‎‎Calls and alarms‎‏‎‎‏‎"</string>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‏‎‎‎‏‏‎‏‏‏‏‏‎‏‏‎‏‏‎‏‏‎‎‏‎‏‎‎‏‎‎‏‎‎‎‎‎‎‏‏‎‏‎‎‏‎‎‏‏‏‎Connect to a LE audio stream‎‏‎‎‏‎"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‏‏‎‏‏‎‏‏‎‏‏‎‏‏‏‏‏‏‎‏‏‎‎‏‎‏‏‎‏‏‎‎‎‎‏‏‎‎‎‏‏‏‎‎‏‎‎‎‎‎‏‎‎‎‎‎‏‎Nearby audio streams‎‏‎‎‏‎"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‏‏‏‎‏‎‏‏‏‏‏‎‏‎‎‏‏‏‎‏‎‎‏‎‎‎‏‏‎‎‎‎‎‎‎‎‎‎‎‏‎‎‎‎‏‎‎‏‎‏‏‏‏‏‏‎‏‎Audio streams‎‏‎‎‏‎"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‏‏‎‏‏‎‎‏‎‏‏‏‏‎‎‎‎‏‏‎‏‏‏‏‏‎‏‏‎‏‎‏‎‏‏‎‏‎‏‏‎‎‏‏‏‏‏‎‏‎‎‏‎‎‎‏‏‏‎Connect to an audio stream using QR code‎‏‎‎‏‎"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‎‏‎‏‏‎‎‎‏‏‎‎‎‎‎‏‎‏‏‎‏‎‎‏‏‎‏‏‎‎‎‎‎‎‎‏‎‏‎‎‎‎‏‎‎‎‎‎‎‏‎‎‏‏‎‎No nearby audio streams were found.‎‏‎‎‏‎"</string>
     <string name="date_and_time" msgid="1788358029823431692">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‎‎‏‏‎‏‎‎‎‏‏‎‎‎‎‏‏‎‎‎‏‎‎‏‏‏‎‎‏‎‏‎‏‎‏‏‎‏‎‏‏‏‏‏‎‏‎‏‎‎‎‎‎‎‏‏‎‎‎Date &amp; time‎‏‎‎‏‎"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‎‎‏‎‏‎‎‎‎‎‎‎‎‎‏‏‏‏‎‏‎‎‏‎‏‎‎‏‎‎‏‏‎‎‎‎‎‏‏‎‏‎‏‏‏‎‏‎‎‏‎‎‏‏‎‏‎‎Proxy‎‏‎‎‏‎"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‎‏‎‎‏‏‏‏‎‎‎‎‎‎‎‏‎‎‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‎‏‎‏‏‏‎‏‏‎‏‎‎‏‎‏‏‎‏‎‏‏‎‏‎Clear‎‏‎‎‏‎"</string>
@@ -534,16 +543,70 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‎‏‏‎‎‏‏‎‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‏‏‏‎‏‏‎‏‎‎‏‏‎‎‎‎‎‎‎‎‎‏‏‏‎‏‏‏‎‎‏‎‎‏‎‏‎Work profile‎‏‎‎‏‎"</string>
     <string name="private_space_title" msgid="7078627930195569767">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‎‎‎‏‏‏‏‎‎‎‏‎‏‎‏‏‎‏‎‎‏‏‎‎‏‎‎‏‎‏‏‎‎‎‏‏‏‎‏‏‏‎‎‏‎‏‏‎‎‎‏‏‎‎‏‏‏‎Private Space‎‏‎‎‏‎"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‎‎‏‎‏‎‎‏‎‎‎‎‎‎‏‎‏‎‎‏‏‏‎‏‎‎‏‏‏‏‏‎‎‎‎‏‎‏‎‎‏‏‎‏‏‎‎‏‎‏‎‎‎‎‎‎‏‎Hide apps in a private folder‎‏‎‎‏‎"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‏‏‎‎‏‏‎‎‎‎‏‎‎‎‏‏‏‏‏‎‏‎‏‎‏‎‎‏‏‏‏‎‏‏‎‎‏‎‎‎‎‏‎‏‎‎‏‏‏‏‏‏‎‎‎‎Unlock using screen lock‎‏‎‎‏‎"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‏‎‎‏‏‎‏‏‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‎‏‏‏‎‎‏‏‏‎‎‏‎‏‏‎‏‎‎‏‏‏‏‎‏‎‏‎‎‎‏‎‎‎Show Private Space‎‏‎‎‏‎"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‎‎‏‏‏‎‏‎‎‎‏‎‏‏‎‏‏‎‎‏‏‏‏‏‎‎‎‎‎‏‏‏‎‏‎‎‏‏‏‎‏‏‏‏‏‏‎‏‏‎‏‎‏‎‎Hide when locked‎‏‎‎‏‎"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‏‎‏‏‎‎‏‏‎‏‎‎‎‏‎‏‏‎‎‎‎‎‎‎‏‏‏‎‎‏‏‎‏‏‏‏‏‏‎‏‎‏‎‎Hide Private Space when locked‎‏‎‎‏‎"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‎‏‎‎‏‏‎‏‏‎‏‏‏‏‎‏‎‎‏‏‎‎‏‏‏‎‎‎‏‏‎‏‏‏‎‏‏‎‏‏‏‏‏‏‏‎‏‎‏‎‎‏‏‏‎‏‎‎To stop other people knowing Private Space is on your device, you can hide it from your apps list‎‏‎‎‏‎"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‏‏‎‏‎‎‎‏‏‏‎‏‎‎‎‏‏‏‏‏‎‎‏‎‏‎‏‏‏‏‏‏‎‏‏‏‏‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‎‏‎‎‏‎Access Private Space when hidden‎‏‎‎‏‎"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‏‏‎‏‎‎‏‏‏‎‏‎‎‏‎‏‏‎‎‏‎‎‎‏‎‏‏‎‎‏‏‎‎‎‏‎‎‏‏‏‏‏‎‎‏‏‏‏‏‏‎‏‏‏‎‏‎‎Search for \'Private Space\' in the search bar‎‏‎‎‏‎"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‏‏‎‎‎‏‎‏‏‏‎‏‏‎‏‏‎‏‏‎‏‎‎‏‎‏‏‎‏‏‎‎‏‏‏‏‎‎‏‎‎‎‎‏‎‎‏‎‎‎‏‏‏‎‏‎‎‎Tap the Private Space tile‎‏‎‎‏‎"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‏‎‏‎‏‏‎‏‎‎‏‏‏‏‏‏‏‎‎‎‏‏‎‎‏‏‏‏‏‎‎‏‎‎‏‎‏‎‏‎‏‎‏‏‏‎‎‏‎‎‎‎‎‎‎‎‎‎Unlock your Private Space‎‏‎‎‏‎"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‎‎‏‎‎‏‏‏‎‎‎‏‏‏‎‏‎‎‏‏‏‏‎‎‏‏‏‏‎‎‎‏‏‏‎‎‏‎‎‎‏‎‏‎‏‏‏‏‏‎‎‎‎‎‏‏‏‎Off‎‏‎‎‏‎"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‏‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‎‎‏‎‎‎‎‏‏‎‏‏‎‎‎‏‎‏‏‎‏‏‏‎‎‏‏‏‎‎‎‎‎‎‏‏‏‎‏‏‏‎On‎‏‎‎‏‎"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‏‏‏‎‏‏‎‏‏‏‏‎‎‏‎‎‏‎‎‏‎‏‏‏‎‏‏‏‎‏‎‎‏‎‏‏‏‏‎‏‏‏‎‏‏‎‏‎‎‏‏‎‎‎‏‎‎‎System‎‏‎‎‏‎"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‎‎‏‏‎‎‎‎‏‏‏‏‎‏‏‏‏‎‎‎‏‎‏‎‎‏‎‎‏‏‎‏‎‏‎‎‎‏‎‎‎‏‏‎‎Create Private Space‎‏‎‎‏‎"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‏‎‏‎‏‎‏‏‏‎‏‏‏‎‎‎‏‎‏‏‏‏‎‎‎‎‏‏‏‎‎‏‎‎‏‏‎‏‏‎‏‏‏‏‏‎‎‏‏‏‏‎‏‎‎‎‎‎‎Delete Private Space‎‏‎‎‏‎"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‏‎‏‎‏‎‏‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‎‏‎‏‎‏‏‏‎‎‎‏‎‎‎‏‎‏‏‏‎‏‏‎‏‏‏‎‎‎‎Private Space successfully created‎‏‎‎‏‎"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‏‎‏‏‎‎‎‏‏‏‎‏‎‏‏‎‎‏‎‏‎‎‏‎‏‎‏‏‎‎‎‎‎‎‎‏‎‎‏‏‎‏‏‎‎‏‏‏‏‏‎‎‏‏‎‏‏‎Private Space already exists‎‏‎‎‏‎"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‎‎‎‎‏‏‏‎‏‎‎‎‏‎‎‏‏‏‎‏‎‏‎‏‎‎‏‎‏‎‎‏‏‏‏‎‎‎‎‎‎‏‎‏‏‎‎‎‎‏‎‏‏‎‎‎‎‎Private Space could not be created‎‏‎‎‏‎"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‎‏‎‎‏‏‎‏‎‏‎‏‏‎‏‏‏‎‎‎‎‎‎‎‎‏‏‏‎‎‎‏‏‏‎‎‏‎‎‏‏‎‎‎‏‏‏‏‏‎‎‎‏‎‎‎‏‎Private Space successfully deleted‎‏‎‎‏‎"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‏‏‏‏‏‏‎‎‎‏‏‎‎‎‎‎‎‎‎‎‏‎‎‏‎‏‏‏‏‎‎‎‏‏‎‏‎‏‏‏‏‎‏‏‏‏‎‏‏‏‎‎‏‎‎‏‏‎Private Space could not be deleted‎‏‎‎‏‎"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‎‏‏‏‏‎‏‏‎‏‎‎‏‏‏‏‎‏‎‎‎‎‏‏‏‎‏‎‎‏‎‏‏‎‎‏‏‎‎‎‎‎‎‎‏‏‎‏‏‎‏‎‎‎‎‏‎‎Set a screen lock‎‏‎‎‏‎"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‎‎‎‏‏‎‏‏‎‏‎‎‏‏‏‎‏‎‎‏‎‏‎‎‎‎‏‏‎‎‏‎‏‎‏‏‏‎‏‎‏‏‏‎‎‏‎‏‏‎‎‎‏‎‎‎‎‎To use Private Space, set a screen lock on this device.‎‏‎‎‏‎"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‎‎‏‎‏‎‎‏‎‎‏‏‏‎‎‏‎‎‏‏‏‏‎‎‎‏‎‎‎‏‎‏‎‎‏‎‎‎‏‏‎‏‎‎‏‎‏‏‏‎‎‏‎‎‏‎‎‎‎Set screen lock‎‏‎‎‏‎"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‎‏‎‎‏‏‏‏‎‎‏‎‏‏‎‏‏‎‎‏‎‎‏‎‎‏‎‎‏‎‏‏‎‏‎‎‎‏‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‏‏‏‏‏‎Cancel‎‏‎‎‏‎"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‏‎‎‎‎‎‏‏‏‎‏‎‏‎‏‎‎‎‏‎‏‎‎‎‏‎‏‏‏‏‏‏‎‏‎‎‏‎‏‏‎‏‏‎‏‎‎‎‏‏‏‏‎‏‎‎‎‎Cancel‎‏‎‎‏‎"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‏‏‎‏‎‎‏‏‎‎‎‎‏‎‎‏‏‏‎‎‏‏‏‏‏‏‎‎‎‏‏‏‏‏‏‎‎‏‏‎‏‏‏‎‎‏‎‏‎‎‎‏‎‏‏‎‏‎‎Set up‎‏‎‎‏‎"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‎‏‎‎‏‏‏‎‏‏‏‎‎‎‎‏‎‏‏‎‏‎‎‏‎‎‎‎‎‎‏‏‎‏‏‎‎‎‏‎‏‎‎‏‏‏‎‏‎‏‎‏‎‎‏‏‎‏‎‎Set up Private Space‎‏‎‎‏‎"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‏‏‎‏‏‏‏‎‏‏‎‎‎‏‎‏‎‏‎‎‎‎‏‎‏‏‎‎‏‎‏‏‏‎‎‏‎‎‏‏‏‏‏‎‎‏‏‏‎‎‏‎‏‏‏‎‎‎Hide private apps in a secure space that only you can access‎‏‎‎‏‎"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‎‎‎‏‎‏‎‏‏‏‎‏‏‎‏‎‎‏‏‎‏‏‏‏‏‎‏‎‏‎‎‎‏‎‏‎‎‏‏‎‏‎‎‎‏‎‏‏‎‏‏‎‎‎‏‎How it works‎‏‎‎‏‎"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‎‏‏‏‎‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‎‏‏‏‏‎‏‎‎‏‎‏‎‏‏‎‏‎‎‏‏‏‎‏‏‏‏‎‏‏‎‏‎‎‏‏‎‎You can access Private Space from the bottom of your apps list‎‏‎‎‏‎"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‏‏‎‎‏‏‎‎‎‎‎‎‎‎‎‏‏‎‏‎‎‏‏‏‏‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‎‏‎‏‎‎‎‎‎‎‎‎‏‏‏‏‎Apps in Private Space are protected by a lock‎‏‎‎‏‎"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‏‎‏‎‎‏‎‎‏‏‎‏‎‎‏‎‏‏‎‏‎‏‏‏‏‎‏‏‏‎‏‎‏‎‎‏‏‎‎‏‎‏‏‏‎‏‎‎‎‏‏‎‎‎Notifications from apps in Private Space are hidden when it’s locked‎‏‎‎‏‎"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‎‏‎‏‎‏‎‎‎‏‏‎‏‏‎‏‎‏‎‎‏‎‏‏‏‏‎‏‎‎‏‎‏‎‏‏‏‎‎‏‎‏‏‏‎‎‎‎‎‏‎‏‎‎‏‏‎‎‎Private Space apps won’t appear in permission manager, privacy dashboard, and other settings when Private Space is locked‎‏‎‎‏‎"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‎‎‏‏‎‏‎‏‎‏‎‎‎‎‏‎‎‎‎‏‎‎‏‏‏‏‎‏‎‏‎‎‏‏‎‏‎‎‎‏‎‎‏‎‏‏‎‏‎‏‎‏‎‏‏‎‏‎Setting up Private Space…‎‏‎‎‏‎"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‎‏‏‎‏‎‏‎‎‏‏‏‎‎‏‏‏‎‎‎‎‎‎‎‎‎‎‏‎‏‏‎‎‏‏‎‏‎‏‏‏‏‏‎‏‎‏‎‎‎‎‏‎‏‏‎‎‎Private Space is protected by a lock‎‏‎‎‏‎"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‏‎‏‎‎‏‏‎‏‎‎‏‎‎‎‎‏‎‏‎‎‏‏‎‎‎‎‏‏‎‎‏‏‎‎‏‏‏‏‏‏‎‎‎‏‏‎‎‎‎‎‎‎‎‎‏‏‎Usage info for Private Space apps is hidden when it’s locked‎‏‎‎‏‎"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‏‎‎‎‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‎‏‏‏‏‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‏‏‏‏‎‏‏‏‎‎‎‏‎‎‎Access Private Space from your apps list‎‏‎‎‏‎"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‎‎‏‎‏‎‎‏‎‎‏‏‎‏‏‎‎‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‎‎‎‎‏‎‎‏‏‎‎‎‎‎‏‏‎‏‎‎‎‎‏‏‎Couldn’t set up Private Space‎‏‎‎‏‎"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‏‎‏‏‎‏‎‎‏‎‎‎‎‏‎‏‎‏‏‏‎‎‏‎‎‎‏‎‎‎‏‏‎‎‎‏‎‏‎‎‏‏‎‎‏‏‎‎‎‏‏‎‎‎‏‏‎‎‎Try again now, or come back later‎‏‎‎‏‎"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‎‏‏‎‎‎‏‏‏‏‏‎‎‏‏‏‎‏‏‎‎‏‏‎‎‏‏‎‏‏‎‏‎‏‎‎‏‎‎‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‏‎‎‎Try Again‎‏‎‎‏‎"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎‎‎‎‏‎‏‎‎‏‏‎‎‏‏‏‎‏‎‎‏‏‏‎‎‎‏‎‏‏‏‏‏‎‎‎‎‎‏‏‎‎‏‏‎‏‎‏‎‎‏‏‏‏‎‎Use screen lock to unlock?‎‏‎‎‏‎"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‏‏‎‎‏‏‎‏‎‏‎‎‏‏‏‎‏‎‏‎‏‎‎‏‎‎‏‎‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‎‎‎‎‎‎‏‎‎‏‎‏‎‏‎You can unlock Private Space the same way you unlock your device, or choose a different lock‎‏‎‎‏‎"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‏‎‏‎‎‎‎‏‎‎‎‎‏‏‏‎‎‎‎‎‎‏‎‏‏‎‏‏‏‎‏‎‏‎‏‏‏‏‏‏‏‎‎‏‏‏‏‎‎‏‏‏‎‎‎‏‏‏‎Use screen lock‎‏‎‎‏‎"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‏‎‎‎‏‏‏‏‎‎‏‎‎‎‏‎‎‎‎‎‏‏‎‎‏‏‎‎‏‎‎‎‎‎‏‏‎‎‏‏‏‎‎‏‎‏‏‏‎‏‎‏‏‎‎‎‏‎Choose new lock‎‏‎‎‏‎"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‏‎‏‎‏‏‏‏‎‎‏‏‎‎‎‏‎‎‏‏‏‎‎‎‎‏‏‎‎‏‎‎‎‏‏‏‎‏‎‎‏‏‏‎‏‏‏‏‏‏‏‏‏‎‎‎‏‎All set!‎‏‎‎‏‎"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‏‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‎‎‎‏‏‎‏‏‏‎‎‏‏‎‎‎‏‎‎‏‎‎‎‎‎‎‏‏‏‎‎‎‏‎‏‏‎‏‎‎To access Private Space, swipe up from the bottom of your home screen, then scroll down‎‏‎‎‏‎"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‎‏‏‎‎‏‏‏‏‏‎‎‏‏‏‏‏‏‏‎‏‎‏‏‏‎‎‏‏‏‏‏‎‏‎‏‎‎‏‏‏‎‏‎‎‎‎‎‎‏‎‎‏‎‎‏‏‎Done‎‏‎‎‏‎"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‏‏‏‎‏‎‏‎‎‏‎‏‎‏‎‎‎‎‏‏‏‎‏‎‏‏‎‎‏‏‎‎‏‎‎‎‎‏‎‏‎‏‎‏‎‎‏‏‏‏‏‏‎Scroll down to access Private Space‎‏‎‎‏‎"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‎‏‏‎‏‏‏‏‎‏‏‎‎‏‎‎‏‎‏‎‎‎‏‎‏‎‏‏‏‎‏‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‎‎‎‏‏‏‎Sign in to set up Private Space‎‏‎‎‏‎"</string>
+    <string name="privatespace_retry_summary" msgid="1508253540053006284">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‎‏‏‏‎‏‏‏‎‎‏‏‎‎‏‎‎‏‎‎‏‏‎‏‎‏‎‎‎‎‏‏‎‎‎‎‏‎‏‎‏‏‎‏‏‎‏‏‏‏‏‎‎‏‏‎‎‎You need to sign in to an account to set up Private Space‎‏‎‎‏‎"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‏‎‎‎‏‎‏‎‏‏‏‎‎‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‏‏‎‎‏‏‏‏‏‎‏‎‏‏‎‎‎‏‎‎‎‎‎‏‎‎‎To show Private Space (Not final UX)‎‏‎‎‏‎"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‏‏‏‏‎‏‎‏‎‏‏‏‎‏‏‏‎‏‏‏‎‎‏‏‎‎‎‏‏‎‎‎‏‎‏‎‎‏‏‏‎‎‎‏‏‏‏‏‏‎‎‎‏‎‎‎‏‎Open the Settings App‎‏‎‎‏‎"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‎‏‏‏‎‎‏‎‎‎‎‏‏‏‎‏‏‎‏‏‏‏‎‏‏‏‏‏‎‎‏‎‎‏‏‎‎‎‏‎‎‎‎‎‏‏‎‏‏‎‏‎‎‎‏‎‎‎Tap on Security &amp; privacy &gt; Private Space &gt; Hide Private Space when locked‎‏‎‎‏‎"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‏‎‏‏‎‏‏‎‎‏‏‏‎‎‏‏‎‎‏‏‎‎‏‏‎‎‎‎‎‎‎‏‏‎‎‎‎‎‏‎‎‏‎‏‎‏‏‏‏‎‎‎‏‎‎‏‎‎Turn off Hide Private Space when locked toggle‎‏‎‎‏‎"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‏‏‎‏‎‎‎‏‎‎‎‎‏‏‏‎‏‎‎‎‏‏‎‏‎‏‎‎‎‎‏‏‏‎‏‎‏‎‎‎‎‎‎‎‏‏‎‏‎‏‎‏‏‎‎‎‏‎Note to Googlers: The development of this feature is still in progress‎‏‎‎‏‎"</string>
     <string name="fingerprint_add_max" msgid="8639321019299347447">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‏‏‏‏‎‎‏‎‏‎‎‎‎‏‎‎‎‏‎‏‏‎‎‎‏‏‎‏‎‎‏‏‏‏‏‏‎‎‏‏‏‎‎‏‏‏‎‏‏‏‏‏‏‎‏‏‏‎You can add up to ‎‏‎‎‏‏‎<xliff:g id="COUNT">%d</xliff:g>‎‏‎‎‏‏‏‎ fingerprints‎‏‎‎‏‎"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‎‏‏‎‎‎‎‎‎‎‏‏‎‏‏‏‎‎‎‏‏‏‎‎‎‎‏‎‏‎‎‏‏‏‎‎‏‏‎‎‏‎‏‎‏‏‏‎‏‎‏‎‏‏‏‎‏‎‎You’ve added the maximum number of fingerprints‎‏‎‎‏‎"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‎‎‎‏‎‏‎‏‏‏‎‏‏‏‏‏‏‏‎‏‏‎‎‎‏‎‏‏‏‏‏‏‎‎‏‎‏‏‏‎‎‎‏‏‎‎‎‏‏‎‎‏‎‏‎‏‏‎Can’t add more fingerprints‎‏‎‎‏‎"</string>
@@ -707,7 +770,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‎‎‎‏‏‎‎‎‏‏‎‎‎‏‎‎‏‏‏‏‏‏‎‎‏‎‏‎‎‏‎‎‏‏‏‎‏‏‎‏‎‎‎‏‎‎‎‎‎‏‏‏‎‏‏‏‏‎Connect‎‏‎‎‏‎"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‎‏‏‏‏‏‎‎‏‏‏‏‏‎‏‎‎‎‏‎‎‏‎‏‏‎‏‏‎‎‏‎‎‏‎‎‏‏‎‎‎‏‏‏‎‎‎‎‎‏‏‏‎‏‎‎‎‎‎Disconnect‎‏‎‎‏‎"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‏‎‏‏‎‎‎‏‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‏‎‏‏‎‎‎‏‎‎‏‎‏‏‎‎‏‏‏‏‏‎‎‏‎‎Pair &amp; connect‎‏‎‎‏‎"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‎‎‏‏‎‎‏‎‎‏‏‏‎‎‎‏‎‏‎‎‏‏‏‏‏‏‎‏‏‎‏‎‎‎‎‏‎‎‏‏‏‏‏‎‎‏‏‎‎‏‎‎‏‎‏‎‏‎When Bluetooth is turned on, your device can communicate with other nearby Bluetooth devices.‎‏‎‎‏‎"</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‏‏‎‏‎‏‏‎‏‏‏‎‎‎‎‏‏‏‎‏‎‎‎‏‎‏‏‎‎‏‎‏‎‎‏‎‎‎‏‎‏‏‎‏‎‎‏‏‎‎‏‎‎‎‏‎‎‎When Bluetooth is turned on, your device can communicate with other nearby Bluetooth devices‎‏‎‎‏‎"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‏‎‏‏‏‎‏‎‏‎‏‎‏‏‏‏‎‎‏‎‏‎‏‏‎‎‏‏‎‏‏‏‏‏‏‎‎‎‎‏‏‎‎‎‎‏‎‎‎‏‏‏‎‏‎‏‏‏‎When Bluetooth is turned on, your device can communicate with other nearby Bluetooth devices.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎To improve device experience, apps and services can still scan for nearby devices at any time, even when Bluetooth is off. This can be used, for example, to improve location-based features and services. You can change this in Bluetooth scanning settings.‎‏‎‎‏‎"</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‎‎‎‎‏‏‎‏‏‎‎‎‏‏‎‎‎‏‎‏‏‎‎‏‏‎‏‎‏‎‏‎‎‎‏‎‎‏‎‏‎‎‏‎‏‏‏‎‏‎‎‎‎‏‏‏‏‏‎Change‎‏‎‎‏‎"</string>
     <string name="device_details_title" msgid="1155622417516195481">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‎‎‎‎‏‎‎‏‏‎‎‏‏‎‎‎‎‏‏‏‎‏‏‏‎‏‎‎‏‎‏‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‏‎‎‏‏‎‎‏‎Device details‎‏‎‎‏‎"</string>
@@ -760,6 +823,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‎‏‎‏‎‎‏‏‏‎‎‏‏‏‏‏‎‎‎‏‎‎‎‎‏‏‎‏‎‎‏‏‎‏‎‎‎‎‏‏‏‎‏‎‏‎‎‏‏‏‏‎‎‏‏‏‏‎Allow ART to verify bytecode for debuggable apps‎‏‎‎‏‎"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‏‏‏‎‏‏‎‎‏‎‎‎‏‎‎‎‎‏‎‎‎‎‏‏‏‎‏‎‏‏‎‎‏‏‎‏‎‎‏‏‏‎‏‏‏‎‎‏‏‎‏‎‎‏‏‏‎‏‎Show refresh rate‎‏‎‎‏‎"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‎‏‎‏‏‎‎‎‎‎‏‏‏‏‏‎‎‏‏‎‎‏‎‏‎‎‏‎‏‎‎‎‎‏‎‎‎‎‎‏‎‎‏‎‏‏‏‎‏‎‏‏‏‏‏‏‏‏‎Show the current display refresh rate‎‏‎‎‏‎"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‎‎‎‎‏‏‏‏‎‏‏‎‎‏‎‏‎‎‏‏‏‎‎‎‎‏‎‏‏‏‎‏‏‎‎‎‏‎‏‎‎‎‏‎‎‎‏‎‎‏‏‎‎‎‎‎‏‎Show HDR/SDR ratio‎‏‎‎‏‎"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‏‏‎‏‏‎‎‎‎‎‎‎‎‎‏‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‏‎‏‏‎‏‏‎‏‏‏‏‎‏‎‎‏‎‏‎Show the current HDR/SDR ratio‎‏‎‎‏‎"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‏‎‎‎‎‏‎‎‎‎‏‏‎‏‎‏‏‏‏‏‏‎‏‎‏‎‏‏‎‏‏‎‏‏‏‎‎‏‏‎‎‏‎‏‏‎‏‏‎‏‎‎‏‏‎‎‏‎‎NFC‎‏‎‎‏‎"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‎‎‎‎‏‏‎‎‏‎‎‎‎‎‏‎‎‏‎‏‏‎‎‎‎‏‏‏‎‏‏‎‎‏‎‏‎‎‎‏‏‎‎‏‏‏‎‏‎‎‎‏‎‏‏‎‏‎Require device unlock for NFC‎‏‎‎‏‎"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‏‎‏‏‎‏‎‏‎‎‎‏‎‏‏‏‎‏‎‏‎‎‎‏‏‎‎‎‏‎‏‏‎‏‎‎‏‎‏‎‎‎‏‏‏‎‏‏‎‎‏‎‏‏‏‏‏‏‎Android Beam‎‏‎‎‏‎"</string>
@@ -1061,7 +1126,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‏‎‏‏‏‎‏‎‎‏‎‎‏‏‏‏‏‎‏‏‏‎‏‏‏‎‎‏‏‎‏‏‎‎‎‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‎‎‏‎‎‎‎‏‎Continue using apps on fold‎‏‎‎‏‎"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‎‎‎‎‏‎‎‏‎‏‎‏‏‏‏‎‎‏‎‏‎‎‏‎‏‎‏‎‏‎‏‏‏‏‏‏‎‎‏‎‎‏‎‎‏‎‎‎‎‏‎‏‎‎‏‏‏‎Smooth Display‎‏‎‎‏‎"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‏‎‎‏‎‏‎‏‏‎‏‎‏‎‏‏‏‎‏‎‏‏‏‏‏‎‎‏‎‏‏‎‎‎‎‎‎‎‏‎‎‏‏‎‏‏‎‎‎‏‏‎‏‎‎‎‏‏‎Automatically raises the refresh rate from 60 to ‎‏‎‎‏‏‎<xliff:g id="ID_1">%1$s</xliff:g>‎‏‎‎‏‏‏‎ Hz for some content. Increases battery usage.‎‏‎‎‏‎"</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‎‎‏‎‎‏‎‏‎‎‎‏‏‎‏‎‏‎‏‏‏‎‏‎‎‏‎‏‏‏‏‏‎‏‏‏‏‏‎‎‎‏‎‎‏‎‎‎‏‏‏‎‎‏‏‏‏‎‎Automatically raises the refresh rate up to ‎‏‎‎‏‏‎<xliff:g id="ID_1">%1$d</xliff:g>‎‏‎‎‏‏‏‎ Hz for some content. Increases battery usage.‎‏‎‎‏‎"</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‎‎‎‏‎‎‏‏‏‏‎‎‏‎‏‎‎‎‎‎‎‏‎‏‎‎‏‎‏‎‏‎‎‏‎‏‏‎‏‏‏‏‎‏‏‏‏‎‎‏‏‏‏‎‎‏‎‎Force peak refresh rate‎‏‎‎‏‎"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‎‎‎‏‎‏‎‏‏‏‏‎‏‏‏‎‎‏‏‎‏‏‏‎‎‏‏‎‎‎‏‏‎‎‏‎‏‏‏‏‏‎‎‏‎‎‎‏‏‎‏‎‏‏‎‏‏‎Highest refresh rate for improved touch responsiveness &amp; animation quality. Increases battery usage.‎‏‎‎‏‎"</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‏‎‏‏‏‎‏‏‏‎‏‎‏‏‏‏‏‏‎‎‏‏‎‎‏‏‎‏‎‏‏‎‏‎‎‏‎‏‎‏‏‎‎‏‏‏‎‎‎‎‎‏‎‎‎‎‏‎Screen attention‎‏‎‎‏‎"</string>
@@ -1297,6 +1362,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‎‎‏‎‏‎‏‎‏‎‏‎‎‎‎‎‏‏‏‎‏‎‎‎‏‏‏‎‎‏‏‎‏‏‎‏‎‏‎‎‏‏‏‏‎‏‎‎‏‎‏‎‏‏‏‎‏‎Communal settings‎‏‎‎‏‎"</string>
     <string name="apn_settings" msgid="4295467389400441299">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‏‏‎‎‏‏‏‎‎‏‎‎‏‎‎‎‎‏‏‎‏‎‏‎‏‎‎‎‏‎‎‎‏‎‏‏‏‏‏‎‎‏‏‏‎‎‎‎‏‏‏‎‏‎‎‏‏‎APNs‎‏‎‎‏‎"</string>
     <string name="apn_edit" msgid="2003683641840248741">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‏‏‏‎‎‏‏‏‎‏‎‎‎‎‎‏‏‏‎‏‎‏‎‎‎‎‎‎‎‎‎‏‎‎‎‏‎‎‏‏‎‎‎‏‎‎‏‏‏‏‎‏‎‎‏‎‏‎Edit access point‎‏‎‎‏‎"</string>
+    <string name="apn_add" msgid="9069613192201630934">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‏‎‏‏‏‎‏‏‎‏‏‏‏‎‏‎‎‏‎‎‏‎‏‎‎‏‏‏‎‏‏‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‎‏‎‏‏‎‎Add access point‎‏‎‎‏‎"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‎‎‏‏‏‎‎‎‏‏‏‏‏‏‎‎‏‎‎‏‏‏‏‎‏‎‎‎‎‎‎‎‏‏‎‏‏‏‏‏‏‏‎‏‏‎‎‏‎‎‎‎‏‎‏‎‏‎Not set‎‏‎‎‏‎"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‏‏‏‎‏‎‏‏‏‎‏‏‎‎‎‏‏‎‎‏‎‏‎‏‏‎‎‎‏‏‎‎‎‏‏‏‎‎‎‏‎‏‎‏‏‎‏‏‎‎‏‏‎‎‎‎‎‎Not set‎‏‎‎‏‎"</string>
     <string name="apn_name" msgid="6677695784108157953">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‎‏‎‏‎‏‎‏‏‏‏‏‏‎‎‎‎‏‏‏‎‏‏‏‏‏‎‎‎‏‎‎‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‎‎‎‎‎‎‎‎‎‏‎Name‎‏‎‎‏‎"</string>
@@ -1319,6 +1385,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‎‎‏‎‏‎‏‎‎‏‏‏‏‏‏‎‎‎‎‏‏‎‏‎‏‎‏‏‏‎‎‏‏‎‏‏‎‎‎‏‏‏‏‏‏‎‏‎‏‎‎‎‏‎‏‎‏‎APN enabled‎‏‎‎‏‎"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‎‏‎‎‎‏‎‏‏‎‎‏‎‎‎‏‏‎‎‏‏‏‏‏‎‎‎‎‏‏‏‏‏‎‎‎‎‎‏‏‎‎‏‏‏‎‎‏‏‎‎‎‏‏‎‎‏‎APN disabled‎‏‎‎‏‎"</string>
     <string name="bearer" msgid="3231443241639159358">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‎‎‏‏‎‏‏‎‎‎‎‏‏‎‎‏‎‎‏‎‎‎‎‎‎‏‏‏‏‎‎‎‎‏‏‎‏‏‏‏‎‏‎‎‏‎‎‏‏‎‎‎‏‏‏‏‏‎‎Bearer‎‏‎‎‏‎"</string>
+    <string name="network_type" msgid="748590707422733595">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‏‎‎‏‏‎‎‎‏‏‏‎‎‎‎‏‏‏‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‎‎‎‏‎‏‏‏‎‎‏‎‎‏‎‏‎‎‎‏‏‎‏‏‎Network type‎‏‎‎‏‎"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‏‏‎‏‎‎‏‎‎‎‎‎‏‎‏‏‎‏‏‏‎‏‎‏‎‏‏‎‏‏‎‏‏‎‎‏‏‎‎‏‎‏‎‎‎‏‏‏‎‏‏‎‎‎‏‎‏‎Unspecified‎‏‎‎‏‎"</string>
     <string name="mvno_type" msgid="4734654257494971247">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‏‏‎‏‏‎‏‎‎‏‏‎‏‏‏‏‎‏‏‏‏‎‏‏‎‎‏‎‎‎‎‎‎‎‏‎‎‎‏‏‏‎‏‎‏‎‎‏‏‎‏‏‎‏‏‏‏‎MVNO type‎‏‎‎‏‎"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‎‎‏‎‏‏‎‎‎‏‏‏‏‏‎‏‏‎‏‏‏‏‎‏‎‏‏‎‏‎‏‏‎‎‏‏‏‏‎‏‏‎‎‎‏‎‎‏‏‏‎‎‎‎‏‎‎‎MVNO value‎‏‎‎‏‎"</string>
     <string name="menu_delete" msgid="9199740901584348273">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‎‎‎‎‎‏‎‏‏‏‎‎‏‏‎‏‏‏‎‎‏‎‎‎‎‏‎‎‏‎‎‎‏‎‎‏‎‎‏‎‎‎‏‏‏‎‎‎‏‎Delete APN‎‏‎‎‏‎"</string>
@@ -1929,12 +1997,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‎‏‏‏‏‎‏‏‎‏‏‎‏‎‏‏‎‏‎‏‏‏‎‎‎‎‏‎‎‏‎‏‎‏‏‎‏‏‎‎‎‎‎‏‎‎‏‎‏‎‏‎‏‏‎‏‏‎Use accessibility button to open‎‏‎‎‏‎"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‎‏‏‎‏‏‏‎‏‏‏‏‎‏‎‏‏‏‏‏‎‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‎‏‎‎‎‎‏‎‎‎‏‏‎‎‏‏‎‎‏‎‎Hold volume keys to open‎‏‎‎‏‎"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‎‎‏‏‎‎‎‏‏‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‏‎‏‏‏‎‎‎‏‎‏‏‏‎‏‏‎‏‎‏‏‎‏‏‎‎‎‏‎‎‎‎‎Triple tap screen to open‎‏‎‎‏‎"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‏‎‎‏‎‎‎‏‎‏‎‎‏‎‎‎‏‎‏‎‎‎‎‏‎‎‎‏‏‏‏‏‎‏‏‏‏‎‎‏‏‎‎‎‎‏‎‎‏‏‏‎‎‎‏‎‏‎Two finger triple tap screen to open‎‏‎‎‏‎"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‎‏‏‏‎‏‎‏‎‎‎‎‏‏‎‎‏‏‏‏‏‏‎‎‏‎‏‎‎‏‏‎‎‎‏‎‎‎‏‏‎‏‏‏‎‎‏‏‏‎‎‎‎‎‏‎‎‎Use gesture to open‎‏‎‎‏‎"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‏‎‎‏‏‎‎‎‎‎‏‏‏‎‎‎‏‎‏‏‎‎‎‏‎‎‎‏‏‏‏‏‎‏‎‏‏‏‎‏‏‏‎‎‎‎‎‎‎‏‏‎‏‎‎‏‏‏‎Use accessibility gesture‎‏‎‎‏‎"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‏‎‏‏‎‏‏‎‎‎‎‏‎‎‏‎‏‎‏‎‎‏‎‎‎‏‏‎‏‏‏‎‏‎‏‏‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‏‏‏‎To use this feature, tap the accessibility button ‎‏‎‎‏‏‎<xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>‎‏‎‎‏‏‏‎ on the bottom of your screen.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎To switch between features, touch &amp; hold the accessibility button.‎‏‎‎‏‎"</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‏‎‏‏‎‏‎‎‏‏‎‏‏‏‎‏‏‏‏‎‏‏‎‎‏‏‏‎‏‎‏‏‏‏‏‎‏‎‎‎‎‎‎‏‎‏‏‎‎‏‏‎‏‎‏‏‏‎To use this feature, tap the accessibility button on your screen.‎‏‎‎‏‎"</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‏‏‏‎‏‏‎‎‏‎‎‎‏‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‏‏‏‏‎‏‏‎‏‏‎‏‎‏‎‏‎‎‎‎‏‏‏‏‎To use this feature, press &amp; hold both volume keys.‎‏‎‎‏‎"</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‎‎‏‏‏‎‎‎‏‎‎‏‎‎‎‏‎‎‏‎‎‎‎‏‏‎‏‏‏‎‎‏‏‏‏‎‏‏‏‎‏‏‎‎‎‎‎‎‏‎‏‎‏‏‎‏‎‎To start and stop magnification, triple-tap anywhere on your screen.‎‏‎‎‏‎"</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‎‎‎‎‏‏‏‎‎‏‏‎‏‏‎‎‎‎‏‎‏‏‏‎‏‎‏‏‎‏‎‎‎‏‎‎‏‏‏‏‏‏‏‎‎‏‏‎‏‏‎‏‏‏‎‎‏‎To start and stop magnification, triple-tap anywhere on your screen with two fingers.‎‏‎‎‏‎"</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‏‏‎‎‏‎‎‎‎‏‏‏‎‎‎‎‎‏‎‎‏‏‎‏‎‎‏‏‏‎‎‏‎‎‏‎‎‏‏‎‎‏‎‎‏‏‎‎‏‎‏‏‎‎‏‏‎‎To use this feature, 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_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‎‎‏‏‎‏‎‎‏‏‏‎‏‎‏‎‎‏‏‎‏‏‎‎‎‏‏‎‏‎‏‏‏‏‎‎‏‎‏‏‎‏‏‎‏‎‎‏‎To use this feature, 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_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‎‎‏‎‎‏‎‎‎‎‏‏‎‏‎‏‏‏‏‏‎‎‏‏‎‏‏‎‎‏‎‎‏‏‎‏‎‏‏‏‎‏‏‎‎‎‎‏‎‎‎‎‏‏‎‏‎‏‎To use an accessibility feature, 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>
@@ -1956,6 +2026,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‎‏‎‏‏‎‏‎‏‎‎‏‏‏‎‎‏‎‏‏‎‏‏‎‏‎‏‎‏‏‎‎‏‎‏‎‎‏‎‎‎‎‎‏‎‏‎‏‏‎‎‎‏‎‎‏‎‎Hold volume keys‎‏‎‎‏‎"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‎‏‏‎‏‏‎‏‎‏‏‏‎‎‎‏‎‎‏‏‎‎‎‎‏‎‏‏‎‏‏‎‎‎‎‏‏‎‏‏‎‎‎‏‎‎‎‎‏‏‏‏‎‎‎‎‎hold 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_triple_tap" msgid="6687765191490040899">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‎‏‏‎‎‏‏‏‏‏‎‏‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‏‎‎‎‏‎‎‎‎‏‏‎Two-finger triple-tap screen‎‏‎‎‏‎"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‎‎‏‎‎‏‏‎‎‎‎‎‎‏‎‏‎‏‏‏‏‏‎‎‎‎‎‏‏‎‏‎‎‏‏‏‎‏‎‎‏‎‏‎‎‏‏‏‎‎‎‎‏‏‏‏‎‎two-finger triple-tap screen‎‏‎‎‏‎"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‎‎‏‎‎‎‎‎‏‏‏‎‏‎‎‏‎‎‎‏‏‏‏‎‎‎‎‏‏‎‎‎‎‏‎‎‏‎‎‏‏‎‏‎‎‎‏‏‎‎‏‏‎‏‏‎‎‏‎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="6863958573135995927">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‎‎‎‎‏‏‎‏‎‏‏‎‏‏‏‏‏‎‏‎‎‏‎‎‏‏‎‎‎‏‏‎‎‎‏‎‎‏‎‏‎‎‏‎‎‎‎‎‏‎‏‏‏‎triple-tap screen‎‏‎‎‏‎"</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>
@@ -2043,6 +2116,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‏‏‎‎‎‎‏‎‏‏‏‏‎‎‎‎‏‎‎‏‎‏‏‏‎‎‏‏‏‏‎‏‎‎‏‏‎‎‎‏‏‎‎‎‏‎‏‎‎‎‎‏‎‎‎‎‎‎Use vibration &amp; haptics‎‏‎‎‏‎"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‎‏‎‏‏‎‎‎‎‎‎‏‏‏‏‏‎‏‎‎‎‎‎‎‎‏‏‏‎‏‏‏‏‏‏‎‎‏‏‏‏‎‎‎‎‏‎‏‎‏‏‏‏‏‎‎‏‎Alarm vibration‎‏‎‎‏‎"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‏‏‎‎‎‎‏‎‏‎‏‎‎‏‎‏‎‏‏‏‎‎‎‏‏‎‎‏‎‎‏‏‎‎‎‏‎‎‏‏‎‏‎‏‏‏‎‏‎‏‏‏‎‏‎‏‎‎‎Media vibration‎‏‎‎‏‎"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‏‎‏‎‏‎‎‏‏‎‎‏‏‎‏‎‎‏‏‎‎‎‏‎‏‏‏‎‎‏‎‏‏‎‏‏‎‎‏‎‏‎‎‎‏‎‏‎‎‎‎‎‎‏‎Keyboard vibration‎‏‎‎‏‎"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‏‏‎‎‎‏‏‏‎‏‎‎‎‎‏‏‏‎‎‎‎‏‏‎‎‎‏‎‎‏‏‎‎‏‎‏‎‏‏‏‎‏‏‏‏‎‏‎‏‎Ring vibration‎‏‎‎‏‎"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‎‎‎‎‏‏‏‏‏‎‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‎‎‎‏‏‏‏‎‏‎‎‎‏‏‎‎‏‏‏‎‏‎‏‏‏‏‎‎Notification vibration‎‏‎‎‏‎"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‏‎‏‏‎‏‎‎‎‏‏‏‎‎‏‏‏‏‏‎‏‎‎‏‏‎‏‏‏‏‎‏‎‎‏‎‎‏‎‎‎‏‏‎‎‏‏‎‎‎‏‎‏‎‏‎‏‎Touch feedback‎‏‎‎‏‎"</string>
@@ -2244,11 +2318,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‏‏‎‏‏‎‎‏‏‎‏‎‏‎‎‎‎‏‎‏‏‎‏‎‎‏‏‎‎‏‏‎‏‏‎‎‏‏‎‏‏‏‎‏‎‏‏‏‏‏‎‏‎‏‏‎‎‏‎‎‏‎‎‏‏‎<xliff:g id="LEVEL">%1$s</xliff:g>‎‏‎‎‏‏‏‎ - ‎‏‎‎‏‏‎<xliff:g id="STATUS">%2$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‎‏‏‏‎‎‎‎‏‏‏‎‎‎‎‏‎‎‏‎‏‏‎‏‏‏‏‏‏‎‎‎‏‎‎‏‏‎‏‎‏‏‎‏‎‎‎‎‏‏‏‎‎‎‎‎‏‎‎‏‏‎<xliff:g id="REMAIN">%1$s</xliff:g>‎‏‎‎‏‏‏‎ remaining‎‏‎‎‏‎"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‏‏‏‎‎‏‎‎‎‏‎‏‎‎‏‏‎‎‎‏‎‏‏‎‎‎‏‎‎‏‎‏‎‎‎‎‎‏‏‎‎‏‏‎‎‏‎‏‎‏‎‎‏‏‏‎‎‎‎‏‎‎‏‏‎<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g>‎‏‎‎‏‏‏‎ to charge‎‏‎‎‏‎"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‏‏‎‏‎‎‏‎‏‎‎‏‎‏‏‏‎‎‏‏‏‎‎‏‏‎‏‏‎‎‏‏‏‏‎‎‎‏‎‎‏‏‏‏‎‏‎‏‎‎‎‏‎‎‎‏‏‎Screen time‎‏‎‎‏‎"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‏‎‏‏‎‏‎‎‎‎‎‎‎‎‏‎‎‏‏‎‏‎‎‎‎‎‏‏‎‏‏‏‎‎‏‎‏‏‎‎‏‎‏‎‎‏‏‎‎‏‎‎‎‎‎‎‏‏‎Background time‎‏‎‎‏‎"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‎‏‏‏‏‎‎‎‎‏‎‏‎‎‏‎‎‎‏‏‏‏‏‎‏‎‏‎‎‏‏‏‏‎‏‏‎‎‏‎‎‏‎‎‎‎‏‏‎‏‏‏‎‎‎‎‎‏‎Low battery‎‏‎‎‏‎"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‎‎‏‏‏‏‏‎‏‎‎‎‎‎‏‏‎‎‎‎‎‎‏‎‎‏‎‏‎‏‏‏‎‎‏‎‎‎‏‏‏‏‎‎‏‏‏‎‏‎‎‎‎‎‎‎‎‎‎Allow the app to run in the background‎‏‎‎‏‎"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‏‎‎‏‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‏‏‎‎‏‏‎‏‏‏‏‎‏‎‏‏‏‏‏‏‏‏‎‏‏‏‎Limit background activity?‎‏‎‎‏‎"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‏‎‏‏‎‎‎‎‏‏‏‏‎‎‎‏‏‎‏‎‏‎‏‎‏‏‎‎‎‎‏‏‎‏‏‏‎‏‏‏‎‏‎‏‎‎‏‏‎‎‏‏‏‎If you limit background activity for an app, it may misbehave‎‏‎‎‏‎"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‎‎‏‏‏‎‏‎‎‏‎‎‏‎‏‎‏‎‎‏‎‎‎‏‏‎‎‎‎‎‏‏‎‎‎‏‏‏‏‏‏‎‎Since this app is not set to optimize battery, you can’t restrict it.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎To restrict the app, first turn on battery optimization.‎‏‎‎‏‎"</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‎‏‎‏‏‏‎‎‏‎‏‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‎‏‏‏‎‎‎‎‎‎‏‏‎‏‏‏‏‎‎‏‏‎‎‎‏‎‎‏‎Manage battery usage‎‏‎‎‏‎"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‏‎‏‎‏‏‎‏‏‎‎‎‏‎‏‏‎‏‏‎‏‎‎‏‎‎‏‎‏‎‏‎‏‏‏‏‎‎‏‎‎‎‎‏‎‎‏‏‎‏‏‎‎‎‏‎‎‎Allow background usage‎‏‎‎‏‎"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‏‏‎‏‎‏‎‎‎‎‏‏‎‏‏‏‎‎‏‏‎‏‎‏‏‏‏‎‏‎‏‎‏‏‏‎‎‏‎‎‎‏‎‎‎‎‎‏‎‏‏‎‎‏‎‎‏‏‎Enable for real-time updates, disable to save battery‎‏‎‎‏‎"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‏‏‎‏‎‏‏‎‎‏‎‎‏‏‏‎‎‎‏‏‎‏‏‎‎‏‏‎‏‎‎‏‏‎‏‏‎‏‎‏‎‏‏‏‏‎‏‎‏‏‎‏‏‎‎‎‎‎Unrestricted‎‏‎‎‏‎"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‏‎‏‎‎‏‎‏‏‎‏‎‎‎‎‎‎‏‏‎‎‏‏‏‏‎‏‎‎‏‏‏‏‏‏‎‏‏‏‏‎‎‎‏‏‎‎‏‎Optimized‎‏‎‎‏‎"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‎‏‏‏‎‎‏‏‎‎‎‎‏‎‎‎‏‏‏‎‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‏‎‏‏‏‎‏‎‏‏‎‏‎‏‎‏‎‏‏‏‎‎Restricted‎‏‎‎‏‎"</string>
@@ -2347,6 +2426,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‎‎‎‏‏‎‏‎‎‏‎‏‏‎‎‎‎‎‎‎‎‏‎‎‎‎‎‎‏‎‏‎‏‎‏‎‎‏‏‏‏‎‎‏‎‏‏‏‎‏‏‎‏‎‎‎‎‏‎since last full charge‎‏‎‎‏‎"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‎‎‏‎‏‏‎‎‏‏‎‏‏‎‏‏‏‏‎‎‎‏‎‎‎‏‎‏‎‎‎‎‎‎‏‎‏‎‎‏‎‏‎‎‎‎‏‎‎‎‎‎‎‎‏‏‎System apps‎‏‎‎‏‎"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‎‎‏‏‎‎‎‏‏‏‎‎‎‎‎‏‎‎‎‏‏‏‏‏‏‏‎‎‎‏‎‎‎‏‏‏‏‏‏‎‎‏‎‏‎‏‎‎‏‏‏‎‎Uninstalled apps‎‏‎‎‏‎"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‎‎‏‎‏‎‎‏‏‏‎‏‏‎‏‏‎‎‏‎‏‎‏‏‎‎‏‏‏‎‎‎‏‏‏‏‎‏‏‏‎‏‎‏‏‏‏‎‎‎‎‎‎‎‎‏‎‎Others‎‏‎‎‏‎"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‏‎‎‏‎‏‎‏‎‏‎‎‎‎‏‎‏‎‎‏‎‎‎‎‎‎‏‎‎‎‏‏‎‎‏‎‏‎‎‏‏‎‎‏‎‎‎‏‎‎‏‎‎‎‎‎‏‎Estimated time left‎‏‎‎‏‎"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‏‏‎‏‏‏‏‎‏‏‎‎‎‏‎‎‏‏‎‎‎‏‎‏‎‎‏‏‎‏‎‏‎‏‏‎‎‎‏‏‎‎‏‏‎‏‏‎‏‏‎‎‏‏‏‏‎‎Until fully charged‎‏‎‎‏‎"</string>
@@ -2390,6 +2470,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‎‎‏‎‏‏‏‏‎‏‎‎‏‎‎‏‎‎‏‎‏‎‏‏‎‎‎‏‏‎‎‏‎‎‏‎‏‏‏‏‎‎‏‏‏‎‎‎‎‏‎‎‎‎‏‎‏‎Total: less than a min‎‏‎‎‏‎"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‏‏‏‎‏‏‎‏‏‎‎‎‏‎‏‎‎‎‎‎‏‏‏‎‏‎‎‎‏‎‎‎‏‎‎‏‏‎‎‏‎‎‎‎‎‎‎‏‎‎‎‏‎‏‎‏‎Background: less than a min‎‏‎‎‏‎"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‎‎‏‏‎‏‎‎‏‎‏‏‏‎‏‏‎‏‏‏‏‏‏‎‏‏‎‏‎‏‎‎‎‎‎‏‎‎‏‏‏‎‎‏‎‏‎‏‏‎‎‏‏‏‎‎‏‎Screen time: less than a min‎‏‎‎‏‎"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‎‏‎‏‎‏‏‎‏‎‎‎‏‏‎‎‏‏‎‏‏‎‎‎‏‎‏‏‏‎‏‏‏‏‏‎‏‎‏‏‎‎‎‎‏‏‎‏‎‏‏‏‎‎‎‎‎‎Less than a min‎‏‎‎‏‎"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‎‏‎‎‏‏‎‏‎‏‏‎‎‏‏‎‏‏‎‎‎‏‎‎‏‏‏‏‎‎‎‏‏‏‏‏‎‎‏‏‏‏‎‏‏‏‏‏‎‏‎‏‏‏‎‎‏‎Total: ‎‏‎‎‏‏‎<xliff:g id="TIME">%s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‎‏‏‏‏‏‎‏‏‏‎‏‏‎‎‎‏‏‏‎‎‏‏‎‎‏‏‏‎‎‎‎‎‏‏‎‎‏‎‎‏‎‎‎‎‎‏‎‏‎‎‎Background: ‎‏‎‎‏‏‎<xliff:g id="TIME">%s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‏‎‎‏‎‎‏‏‎‎‎‎‎‎‎‎‏‏‏‏‏‏‎‎‏‏‏‎‎‏‎‎‎‎‏‎‏‏‎‎‏‎‎‎‎‏‎‎‏‎‎‎‏‎‎‏‏‎Screen time: ‎‏‎‎‏‏‎<xliff:g id="TIME">%s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
@@ -2605,6 +2686,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‎‎‏‏‏‏‎‎‎‎‎‏‎‏‏‎‎‎‏‏‎‏‏‏‏‎‎‏‏‎‏‎‏‎‎‎‏‎‏‏‎‏‏‏‎‏‎‎‎‏‎‏‏‎‎‏‎‎Mobile data &amp; Wi‑Fi‎‏‎‎‏‎"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‎‎‏‎‏‎‎‏‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‏‎‎‎‏‏‎‏‎‎‏‏‏‎‎‏‏‎‏‏‎‎‏‎‎‎‎‎‎‎‎‏‏‏‎Auto-sync personal data‎‏‎‎‏‎"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‎‏‏‏‏‎‎‏‎‎‏‎‏‎‏‎‏‏‎‏‎‏‎‎‏‏‏‏‎‏‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‏‏‏‏‎‏‎Auto-sync work data‎‏‎‎‏‎"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‎‎‎‏‎‎‎‎‏‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‎‎‎‎‏‎‎‏‎‏‏‏‎‏‏‏‎‏‏‎‏‏‏‏‎‎‎‎‏‎‎‎Auto-sync private data‎‏‎‎‏‎"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‏‎‎‏‏‏‎‏‏‎‏‏‎‏‏‎‏‏‏‎‏‏‎‎‎‎‎‎‏‎‏‏‏‏‏‏‎‎‎‎‎‎‏‏‎‏‏‎‎‎‎‎‏‏‏‎‏‏‎Change cycle…‎‏‎‎‏‎"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‎‏‎‏‎‎‎‎‎‎‎‏‎‎‏‏‏‎‎‎‏‏‎‏‎‏‎‏‎‏‏‏‏‎‏‎‎‏‎‎‎‏‏‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‎Day of month to reset data usage cycle:‎‏‎‎‏‎"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‏‏‏‏‏‏‏‎‏‏‏‏‎‏‏‎‏‎‎‏‎‎‏‏‎‎‏‎‏‎‎‎‏‎‎‎‏‏‏‏‎‎‏‎‎‏‎‏‎‏‎‎‏‎‎‏‎‎No apps used data during this period.‎‏‎‎‏‎"</string>
@@ -3047,6 +3129,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‏‎‏‏‎‎‏‏‎‏‏‏‎‏‎‎‎‎‏‎‏‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‏‏‏‎‏‏‏‏‏‎‎‏‏‏‎‏‏‏‏‎text size, large print, large font, large text, low vision, make text bigger, font enlarger, font enlargement‎‏‎‎‏‎"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‎‏‏‎‎‏‏‎‏‏‏‎‏‏‏‎‏‏‎‏‏‏‏‏‎‏‏‎‎‏‎‏‏‏‎‎‏‎‎‎‏‎‏‎‎‏‏‎‎‏‏‏‏‏‎‏‏‎always on ambient display, AOD‎‏‎‎‏‎"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‎‏‎‏‎‏‏‎‎‏‎‎‏‎‎‎‏‎‎‎‎‎‏‏‎‎‎‏‏‏‎‏‏‎‎‏‏‏‎‏‎‎‏‎‏‏‏‏‎‎‏‏‏‏‏‏‏‎‎nfc, tag, reader‎‏‎‎‏‎"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‎‏‏‏‏‎‏‎‏‏‏‏‏‎‎‎‎‏‏‏‎‏‎‎‏‎‏‎‏‏‎‎‏‎‏‎‎‏‎keyboard, haptics, vibrate,‎‏‎‎‏‎"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‏‎‎‏‏‏‏‎‏‎‎‎‏‏‏‏‎‏‎‏‏‏‎‎‎‏‏‏‎‏‎‎‎‎‏‏‎‎‏‏‎‏‎‎‎‏‏‏‎‏‏‏‏‎‎‎‎‎Volume, vibration, Do Not Disturb‎‏‎‎‏‎"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‎‏‏‎‎‏‏‎‏‏‎‎‎‎‎‏‏‏‎‎‎‎‏‎‎‎‎‏‏‎‎‎‏‎‎‏‎‏‎‎‏‎‎‎‏‏‏‏‏‏‎‏‎‏‏‏‎‎Media volume‎‏‎‎‏‎"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‏‏‎‎‏‎‏‎‎‏‏‎‎‎‏‏‏‏‎‏‏‎‎‏‎‎‏‎‏‏‎‎‎‎‏‏‎‎‎‎‎‏‏‎‏‏‎‏‎‎‎‏‎‎‏‎‎‎Cast volume‎‏‎‎‏‎"</string>
@@ -3266,7 +3349,7 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‎‏‏‎‎‎‏‎‎‎‏‎‏‎‎‏‎‏‎‏‏‎‎‎‏‏‏‏‏‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‎‏‎‎‎‎‏‎‎‎‎‎‎Show all notification content‎‏‎‎‏‎"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‎‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‏‏‎‏‏‎‏‎‏‏‏‏‏‎‎‎‎‎‎‏‎‏‎‎‎‎‏‎‏‎‏‎‎‎‏‎‎‎‏‎‏‎Show sensitive content only when unlocked‎‏‎‎‏‎"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‏‎‎‎‎‎‏‎‏‏‎‏‎‎‎‎‎‎‎‏‎‏‎‏‎‎‎‏‏‏‏‎‏‏‎‎‎‎‏‎‏‎‎‎‎‏‎‎‏‎‏‏‏‎‎‎‎‎Don’t show notifications at all‎‏‎‎‏‎"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‏‎‎‎‏‎‎‎‎‏‎‎‎‏‎‏‎‏‎‎‏‏‏‏‏‎‏‏‎‎‏‎‏‏‎‎‏‎‎‎‏‏‏‏‎‎‎‎‎‎‏‏‏‎‏‏‏‎How do you want the lock screen to display?‎‏‎‎‏‎"</string>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‏‏‏‎‎‏‎‏‏‎‏‎‎‏‎‎‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‏‏‎‎‎‏‎‎‎‎‎‎‎‎‏‏‎‎‎‎‏‎‎‎‏‎‎What do you want your lock screen to show?‎‏‎‎‏‎"</string>
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‏‎‏‏‏‎‎‎‎‏‎‎‎‏‎‎‎‏‏‏‎‏‏‎‏‎‎‏‏‎‎‎‏‎‏‎‎‎‏‎‏‎‎‎‎‎‎‎‎‎‎‎‎‎‏‎‏‏‎Lock screen‎‏‎‎‏‎"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‎‎‎‏‏‎‏‎‎‎‏‎‎‏‏‎‎‎‎‎‏‏‎‏‏‏‎‏‎‏‏‏‎‎‏‏‎‏‎‎‎‏‏‎‎‎‎‏‏‎‎‏‎‏‎‏‎‎Show all work notification content‎‏‎‎‏‎"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‎‎‏‎‎‏‏‎‏‎‎‏‏‎‎‎‏‎‎‎‎‏‏‎‎‎‏‎‎‎‎‎‏‎‏‎‎‎‏‎‎‎‏‎‎‏‎‎‏‏‏‏‎‏‎‏‏‎Hide sensitive work content‎‏‎‎‏‎"</string>
@@ -3353,6 +3436,17 @@
     <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="6121016426991791557">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‎‏‏‏‏‎‎‏‎‎‎‏‏‏‎‎‎‎‎‎‎‎‎‏‎‏‎‎‎‎‎‏‏‎‎‏‎‏‏‎‏‎‎‏‎‏‏‎‏‏‏‎‎‎‏‎‏‎Notification cooldown‎‏‎‎‏‎"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‏‏‎‎‎‎‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‏‎‏‏‎‎‎‏‏‏‎‎‎‏‎‎‎‎‏‎‏‏‏‎‎‎‏‏‎‏‎‎‏‎‏‏‎Apply cooldown to all notifications‎‏‎‎‏‎"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‏‎‏‏‏‏‏‏‏‎‏‏‎‏‎‏‏‎‎‏‏‏‎‎‏‎‎‎‏‎‏‎‎‎‏‏‎‏‎‎‏‎‎‏‏‏‏‎‏‏‎‎‎‏‏‏‎‎Gradually lower the notification volume when you get many successive notifications from the same app‎‏‎‎‏‎"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‎‎‏‎‎‎‎‎‏‎‎‎‎‎‏‎‎‏‎‏‏‎‎‏‎‏‎‎‏‏‎‎‏‎‎‏‏‎‎‏‎‎‎‏‏‏‎‏‎‏‏‎‏‎Apply cooldown to conversations‎‏‎‎‏‎"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‎‏‎‎‏‎‎‏‏‏‎‎‎‏‏‏‏‎‎‏‎‎‎‎‎‎‎‏‏‏‎‎‏‏‏‏‎‎‏‎‎‏‎‏‎‎‎‏‏‎‎‎‏‏‏‎‏‎‎Gradually lower the notification volume when you get many messages from the same chat within a short period of time‎‏‎‎‏‎"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‏‏‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‏‎‏‎‏‎‎‎‏‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‎‏‏‏‏‎‏‏‎‏‎‏‏‎‏‎‎Don\'t use notification cooldown‎‏‎‎‏‎"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‏‏‏‏‎‎‏‎‏‎‎‎‏‎‎‎‏‏‏‎‎‏‏‏‎‏‏‎‏‎‏‎‏‏‏‎‎‏‏‏‏‏‎‎‏‏‎‏‎‎‏‏‏‏‎‎‎‎Never lower notification volume, regardless of the amount of successive notifications from the same app‎‏‎‎‏‎"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‏‎‎‏‏‏‏‏‎‏‏‎‎‏‏‏‎‎‏‎‏‏‏‏‏‏‎‎‏‏‎‎‎‏‏‎‏‎‏‏‎‏‎‏‏‎‏‎‎‎‏‎‎‏‏‏‏‎Vibrate when unlocked‎‏‎‎‏‎"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‏‏‎‏‎‎‏‎‏‏‎‎‏‎‎‎‏‎‎‎‏‏‎‎‏‏‏‏‎‏‏‏‎‏‏‎‏‎‎‏‎‎‏‎‏‎‏‎‏‎‎‏‎‏‏‎‏‏‎Only vibrate when screen is unlocked‎‏‎‎‏‎"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‎‎‏‏‏‎‏‏‎‏‏‎‎‎‏‏‏‎‏‎‎‏‎‏‎‏‏‏‎‏‏‎‏‏‏‏‎‏‏‏‏‏‎‏‎‏‎‎‎‏‏‏‎Apply to work profiles‎‏‎‎‏‎"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‎‏‎‎‏‎‎‏‏‎‎‏‎‎‎‎‏‎‎‏‎‏‎‏‎‎‏‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‎‏‎‎‏‎‏‏‎Apply the notification cooldown settings from your personal profile to your work profile‎‏‎‎‏‎"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‎‏‏‎‏‎‏‏‎‏‎‏‏‏‎‏‎‏‎‏‎‏‏‎‏‎‎‏‎‏‎‎‎‏‏‎‏‏‎‎‎‎‎‎‏‏‏‏‏‎‎‏‎‎‏‎‎‎VR helper services‎‏‎‎‏‎"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‎‏‎‏‎‎‏‎‎‏‏‎‏‏‏‏‎‎‎‏‎‎‎‏‏‎‎‏‏‎‎‏‎‏‏‎‎‏‏‏‏‏‎‏‏‏‎‏‏‏‎‏‏‎No installed apps have requested to be run as VR helper services.‎‏‎‎‏‎"</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‏‏‎‎‎‎‎‏‎‏‎‎‏‏‏‎‏‏‎‏‏‏‎‏‏‎‎‎‏‏‏‎‏‎‏‎‎‏‏‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‎‎‏‎Allow VR service access for ‎‏‎‎‏‏‎<xliff:g id="SERVICE">%1$s</xliff:g>‎‏‎‎‏‏‏‎?‎‏‎‎‏‎"</string>
@@ -3744,6 +3838,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‎‎‎‏‎‏‎‎‎‎‎‏‏‎‏‎‏‏‏‏‎‎‏‎‎‎‎‏‎‎‏‎‎‎‏‏‎‏‏‎‎‎‏‎‎‏‏‏‏‏‎‏‎‎‎‎‏‎Allow access to manage all files‎‏‎‎‏‎"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‏‏‎‎‏‏‎‏‏‎‏‎‏‏‎‏‎‎‏‎‎‏‏‎‏‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‏‏‎‎‎‏‏‏‏‏‎‏‎‎‏‎Allow this app to read, modify and delete all files on this device or any connected storage volumes. If granted, app may access files without your explicit knowledge.‎‏‎‎‏‎"</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‏‏‎‏‏‎‎‏‎‏‎‏‎‎‏‎‏‎‏‎‏‎‏‎‎‎‎‎‎‏‎‎‎‎‎‏‏‎‏‎‏‎‏‎‏‎‏‎‏‏‎‏‏‏‏‎‎‎Can access all files‎‏‎‎‏‎"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‎‎‎‎‎‏‎‎‏‎‎‏‏‎‎‎‏‎‎‎‎‏‎‎‏‎‏‏‎‎‏‎‎‎‎‏‏‏‎‎‏‏‎‎‎‎‏‎Voice activation apps‎‏‎‎‏‎"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‎‎‏‎‏‎‎‏‏‎‏‎‏‎‎‎‏‎‎‏‎‏‏‏‎‎‏‏‎‎‎‏‏‏‏‏‎‏‎‏‎‎‎‏‏‎‏‎‎‎‏‏‏‎Allow voice activation‎‏‎‎‏‎"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‎‎‏‏‎‎‏‎‏‏‏‏‎‎‎‎‏‏‏‏‎‎‏‏‎‎‎‏‏‏‏‏‎‏‎‏‎‎‎‏‏‎‏‏‎‏‏‏‏‏‎‏‏‎‎‎‎‎Voice activation turns-on approved apps, hands-free, using voice command. Built-in adaptive sensing ensures data stays private only to you.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎"<a href="">"‎‏‎‎‏‏‏‎More about protected adaptive sensing‎‏‎‎‏‏‎"</a>"‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‏‎‎‏‎‏‏‏‏‎‏‏‎‏‎‏‏‎‎‏‎‎‎‏‏‎‎‏‎‏‎‎‏‎‏‏‎‎‏‎‏‏‏‏‎‎‏‏‏‎‎‏‎‎‎‎‏‎‎Full screen notifications‎‏‎‎‏‎"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‎‏‎‎‎‎‎‏‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‎‎‏‏‏‎‎‏‏‎‎‎‎‎‏‎‎‎‎‎‏‏‏‎‏‎Allow full screen notifications from this app‎‏‎‎‏‎"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‏‎‎‎‏‎‏‏‎‏‎‎‏‎‏‎‎‏‎‎‏‏‏‎‎‎‏‏‏‏‎‏‏‎‎‏‏‏‎‏‏‎‏‏‏‎‎‎‎‎‎‏‏‏‎‎‎‎Allow this app to show notifications that take up the full screen when the device is locked. Apps may use these to highlight alarms, incoming calls, or other urgent notifications.‎‏‎‎‏‎"</string>
@@ -3907,6 +4004,7 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‏‏‎‏‏‏‏‏‏‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‏‏‏‎‎‏‏‏‎‎‏‏‏‏‎‏‏‏‎‎‏‎‎‏‏‎<xliff:g id="APP_LABEL">%1$s</xliff:g>‎‏‎‎‏‏‏‎ used more battery than usual while in the background‎‏‎‎‏‎"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‎‏‎‎‎‎‏‎‏‎‎‏‏‎‏‎‎‎‏‏‎‏‎‎‏‎‏‎‎‎‎‏‎‎‏‎‎‎‎‎‎‏‏‏‎‏‎‏‎‏‏‎‏‏‏‎‎‎‎‏‎‎‏‏‎<xliff:g id="APP_LABEL">%1$s</xliff:g>‎‏‎‎‏‏‏‎ used more battery while in the foreground‎‏‎‎‏‎"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‏‎‎‎‏‎‎‏‏‏‎‎‎‏‎‏‏‎‎‏‏‏‎‏‏‏‎‏‏‎‏‎‏‏‏‎‎‎‏‏‎‏‏‏‏‎‎‎‎‏‎‏‎‏‎‎‏‎‎‎‏‎‎‏‏‎<xliff:g id="APP_LABEL">%1$s</xliff:g>‎‏‎‎‏‏‏‎ used more battery than usual while in the foreground‎‏‎‎‏‎"</string>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‎‎‎‏‏‎‎‏‏‎‎‏‏‏‏‎‏‏‎‏‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‏‏‎‎‎‏‏‎‎‏‏‎‎‎‏‎‎‏‎‏‏‎‎‎Battery usage anomaly‎‏‎‎‏‎"</string>
     <string name="battery_app_item_hint" msgid="4850929961461039110">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‏‎‏‎‏‎‎‎‏‏‏‏‏‎‏‏‏‎‎‎‏‏‎‎‏‎‎‏‏‏‏‏‏‎‎‏‎‏‏‏‏‎‏‎‎‎‎‎‎‎‎‎‎‎‏‏‎‎High battery usage‎‏‎‎‏‎"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‎‎‏‎‎‎‏‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‎‎‎‏‏‏‏‎‎‎‎‎‏‎‏‏‏‎‏‎‏‎‏‏‏‎‏‏‏‎‎‎‎‎High battery usage in the background‎‏‎‎‏‎"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‏‎‏‎‏‎‏‎‎‏‏‏‏‎‏‏‎‎‎‏‎‎‎‏‎‎‎‏‏‎‎‏‏‏‏‎‏‏‎‎‏‏‎‏‏‎‏‏‎‏‏‎‏‎‎‏‏‎‎High battery usage in the foreground‎‏‎‎‏‎"</string>
@@ -4004,7 +4102,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‏‏‎‏‏‏‎‏‏‎‎‏‎‏‎‎‏‏‎‏‏‏‏‎‏‎‏‏‏‏‎‏‏‏‏‎‎‎‎‏‎‎‏‏‏‎‎‎‎‏‎‎‏‏‎‏‏‎‎system navigation, 2 button navigation, 3 button navigation, gesture navigation, swipe‎‏‎‎‏‎"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‎‎‏‏‎‎‏‎‎‏‎‎‎‎‏‎‎‎‏‏‎‎‎‏‏‎‎‏‏‎‏‎‎‏‏‏‏‎‏‏‎‎‏‏‎‏‎‎‎‎‎‏‏‎‎‎‎‎Digital assistant‎‏‎‎‏‎"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‎‎‏‎‎‏‏‎‎‏‎‎‏‏‏‎‎‎‏‏‎‏‎‏‎‎‎‎‏‎‏‏‏‎‏‎‎‎‏‎‏‎‎‎‎‎‏‎‏‏‏‏‏‏‎‏‎‎Swipe to invoke assistant‎‏‎‎‏‎"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‎‎‎‎‏‏‎‎‏‎‎‎‎‎‎‎‎‎‎‏‏‎‏‏‏‏‏‏‎‎‏‎‏‏‏‏‎‎‎‏‎‎‏‏‎‎‎‎‏‎‎‏‎‏‏‎Swipe up from a bottom corner to invoke digital assistant app.‎‏‎‎‏‎"</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‎‏‎‎‎‎‎‎‎‏‏‎‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‏‏‏‏‎‏‏‎‏‎‏‎‏‎‎‏‎‏‎‎‏‏‎‎‎‏‏‎Swipe up from a bottom corner to invoke digital assistant app‎‏‎‎‏‎"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‏‎‎‎‎‎‎‎‎‎‎‏‏‎‏‎‏‎‎‏‎‎‎‏‎‏‏‎‎‏‎‏‎‎‏‎‏‏‎‎‎‎‎‏‎Hold Home for Assistant‎‏‎‎‏‎"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‎‎‎‏‏‏‎‏‎‎‏‎‏‎‏‏‏‎‎‏‏‏‏‏‎‎‏‎‏‎‎‎‎‏‎‏‎‎‎‏‎‏‏‎‏‏‏‏‎‎‏‏‎‎‏‏‏‎Press and hold the Home button to invoke digital assistant app.‎‏‎‎‏‎"</string>
     <string name="low_label" msgid="6525629096999711220">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‎‏‎‎‎‏‏‏‏‏‎‏‏‎‎‎‏‎‎‎‏‎‏‏‎‏‏‏‎‎‏‏‎‏‎‎‏‏‏‏‎‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‎Low‎‏‎‎‏‎"</string>
@@ -4171,7 +4269,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‎‎‎‎‏‏‎‏‏‎‏‎‏‏‏‏‎‏‎‎‎‎‎‏‏‏‎‎‏‏‏‎‎‎‎‏‎‏‎‎‏‏‎‏‏‎‎‎‎‏‏‎‏‎‎data, passkey, password‎‏‎‎‏‎"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‏‏‎‏‏‏‎‏‏‎‎‎‏‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‎‎‏‏‎‏‏‎‎‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎auto, fill, autofill, data, passkey, password‎‏‎‎‏‎"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‏‏‏‎‏‏‎‎‎‎‏‏‎‎‏‎‎‏‎‎‎‏‎‎‎‏‏‎‎‏‏‏‏‏‎‏‏‎‎‎‏‎‎‎‏‏‏‎‏‎‎‎‎‎‎‎‎‎&lt;b&gt;Make sure you trust this app&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; uses what\'s on your screen to determine what can be autofilled.‎‏‎‎‏‎"</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‎‏‎‏‏‏‎‎‎‎‏‏‏‏‏‏‎‎‏‏‏‏‏‎‏‎‎‏‎‏‎‎‏‏‎‎‏‏‎‎‎‏‎‎‏‎‏‎‎‎‏‎‎‏‎‎‏‎&lt;b&gt;Use &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; uses what\'s on your screen to determine what can be autofilled. New passwords, passkeys and other info will be saved here from now on.‎‏‎‎‏‎"</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‏‏‏‎‏‏‎‏‎‏‏‏‏‎‎‎‏‎‏‎‎‏‎‎‏‏‎‏‏‎‏‏‎‏‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‏‎‎‏‏‎‎‏‎‎&lt;b&gt;Use &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; New passwords, passkeys, and other info will be saved here from now on. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; may use what\'s on your screen to determine what can be autofilled.‎‏‎‎‏‎"</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‏‏‎‏‎‏‏‎‏‎‎‏‏‏‎‏‎‏‎‎‎‎‎‎‎‎‏‏‏‎‏‎‏‏‏‏‎‎‏‏‏‎‏‏‏‏‎‎‎‏‏‏‏‎‏‎‏‎Passwords, passkeys, and data services‎‏‎‎‏‎"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‎‏‎‏‎‎‎‎‎‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‏‏‏‎‎‎‏‎‏‏‏‎‎‎‏‎‎‏‏‎‎‏‎Turn off %1$s?‎‏‎‎‏‎"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‎‏‎‏‏‎‏‏‎‏‏‏‎‎‏‏‎‎‎‏‎‏‏‏‎‏‏‎‎‏‏‎‏‎‎‎‏‎‏‎‏‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‏‎&lt;b&gt;Turn off this service?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Saved info like passwords, passkeys, payment methods, and other info won\'t be filled in when you sign in. To use your saved info, choose a password, passkey, or data service.‎‏‎‎‏‎"</string>
@@ -4855,4 +4953,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‏‎‎‏‎‏‏‎‎‏‏‎‏‎‎‎‎‏‎‎‏‎‎‏‎‎‎‏‎‎‎‎‎‎‏‎‏‏‏‏‎‎‎‏‏‏‏‏‎‎‏‏‏‏‎‎‏‎‎Scanning for deceptive apps‎‏‎‎‏‎"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‏‎‏‎‎‎‎‏‎‎‎‎‏‏‏‎‎‎‏‎‎‎‏‎‏‏‎‏‏‏‎‎‎‎‏‎‎‎‎‏‏‏‏‎‏‏‎‏‏‏‏‎‎‏‏‏‏‎Check app activity for phishing‎‏‎‎‏‎"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‎‎‏‏‏‏‎‎‏‏‎‎‎‎‎‎‎‏‏‏‎‎‎‎‏‏‏‏‎‏‎‎‎‏‏‎‏‏‎‏‏‎‎‏‎‎‎‏‏‏‏‎‏‏‏‎‏‎‎Use scanning for deceptive apps‎‏‎‎‏‎"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‏‏‎‏‏‎‎‎‏‏‎‎‏‎‏‏‎‎‎‎‏‏‎‏‏‎‏‎‏‎‎‏‎‎‎‏‏‏‏‏‎‎‎‎‏‏‎‎‎‎‏‏‎‎‏‎‏‎Use scanning for deceptive apps for work‎‏‎‎‏‎"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-es-rUS/arrays.xml b/res/values-es-rUS/arrays.xml
index 8032bde..6df4d21 100644
--- a/res/values-es-rUS/arrays.xml
+++ b/res/values-es-rUS/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Después de 1 minuto"</item>
     <item msgid="1574040255478150028">"Después de 5 minutos"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 3bd7f5b..f42bcec 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Inhabilitar Bluetooth LE Audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Inhabilita la función Bluetooth LE Audio si el dispositivo admite funciones de hardware de ese tipo."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Botón de LE Audio en Detalles del disp."</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Habilitar la lista de permitidos de Bluetooth LE Audio"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Habilita la función de la lista de permitidos de Bluetooth LE Audio."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Omitir lista de entidades permitidas de Bluetooth LE Audio"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Usa LE Audio de forma predeterminada incluso si no se verificó si el dispositivo periférico de LE Audio cumple con los criterios de lista de entidades permitidas."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Dispositivos de medios"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Dispositivos para llamar"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Otros dispositivos"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Dispositivos guardados"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Asociado con la cuenta"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Se usaron previamente con la cuenta"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Se activará el Bluetooth para vincular"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Preferencias de conexión"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Conectados anteriormente"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Escribir en campos de texto"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignorar todas las pulsaciones del botón de la pluma stylus"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Pluma stylus"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Uso compartido de audio"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Comparte audio"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Llamadas y alarmas"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Fecha y hora"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Eliminar"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <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="account_settings_title" msgid="9138880127246241885">"Cuentas"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Seguridad"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Encriptación y credenciales"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Perfil de trabajo"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Espacio privado"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Esconde las apps en una carpeta privada"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Desbloquea con el bloqueo de pantalla"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Muestra un Espacio privado"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Se oculta con el dispositivo bloqueado"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Oculta Espacio privado con el dispositivo bloqueado"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Oculta Espacio privado de tu lista para que no puedan verlo"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Accede a Espacio privado cuando está oculto"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Busca \"Espacio privado\" en la barra de búsqueda"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Presiona la tarjeta de Espacio privado"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Desbloquea tu Espacio privado"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Desactivado"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Activado"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Sistema"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Crea un Espacio privado"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Borra un Espacio privado"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"El Espacio privado se creó correctamente"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"El Espacio privado ya existe"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"No se pudo crear el Espacio privado"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"El Espacio privado se borró correctamente"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"No se pudo borrar el Espacio privado"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Configura un bloqueo de pant."</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Para usar Espacio privado, configura un bloqueo de pantalla."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Configurar bloqueo de pantalla"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Cancelar"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Cancelar"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Configuración"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Configura Espacio privado"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Esconde las apps privadas en un espacio seguro que solo tú puedes acceder"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Cómo funciona"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Puedes acceder a Espacio privado desde el final de tu lista de apps"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Las apps en Espacio privado están protegidas con un bloqueo"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Las notificaciones de las apps en Espacio privado se ocultan cuando está bloqueado"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Las apps de Espacio privado no se mostrarán en el Administrador de permisos, el panel de privacidad ni en ninguna otra configuración cuando Espacio privado esté bloqueado"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Configurando Espacio privado…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Espacio privado está protegido por un bloqueo"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Espacio privado no muestra la información de uso de las apps cuando está bloqueado"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Accede a Espacio privado desde la lista de apps"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"No se pudo configurar Espacio privado"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Vuelve a intentarlo ahora o regresa más tarde"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Reintentar"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"¿Usar bloqueo de pantalla para desbloquear?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Puedes desbloquear Espacio privado de la misma manera que desbloqueas el dispositivo o elegir un bloqueo diferente"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Usar bloqueo de pantalla"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Elegir nuevo bloqueo"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Todo listo"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Para acceder a Espacio privado, desliza el dedo hacia arriba desde la parte inferior de la pantalla principal y, luego, desplázate hacia abajo"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Listo"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Desplázate hacia abajo para acceder a Espacio privado"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Accede para configurar el Espacio privado"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Puedes agregar hasta <xliff:g id="COUNT">%d</xliff:g> huellas dactilares"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Agregaste la cantidad máxima permitida de huellas digitales"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"No se pueden agregar más huellas digitales"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Conectar"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Desconectar"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Vincular y conectar"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Cuando Bluetooth está activado, permite conectarse con dispositivos cercanos que tengan Bluetooth."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Activa el Bluetooth para conectarte a dispositivos"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Cuando Bluetooth está activado, tu dispositivo puede usarlo para comunicarse con otros dispositivos Bluetooth cercanos.\n\nPara mejorar la experiencia, las apps y los servicios pueden buscar dispositivos cercanos incluso cuando la conexión Bluetooth esté desactivada. Esta función puede usarse, por ejemplo, para mejorar las funciones y los servicios basados en la ubicación. Puedes cambiar esta opción en la configuración de búsqueda de Bluetooth."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Cambiar"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Detalles del dispositivo"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Permite que ART verifique el bytecode de apps depurables"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Frecuencia de actualización"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Muestra la frecuencia de actualización actual de pantalla"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Mostrar la relación entre HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Mostrar la relación actual entre HDR/SDR"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Usar NFC solo si el dispositivo está desbloqueado"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1137,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Continuar usando apps con el dispositivo plegado"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Aumenta automáticamente la frecuencia de actualización de 60 Hz a <xliff:g id="ID_1">%1$s</xliff:g> Hz para cierto contenido. Incrementa el uso de batería."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Aumenta automáticamente la frecuencia de actualización a <xliff:g id="ID_1">%1$d</xliff:g> Hz para cierto contenido. Incrementa el uso de batería."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Forzar frecuencia de actualización máxima"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"La máxima frecuencia de actualización mejora la respuesta táctil y la calidad de las animaciones. Incrementa el uso de batería."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Atención a la pantalla"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Configuraciones compartidas"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Editar punto de acceso"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Agregar punto de acceso"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Sin establecer"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Sin definir"</string>
     <string name="apn_name" msgid="6677695784108157953">"Nombre"</string>
@@ -1320,6 +1396,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN activado"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN inhabilitado"</string>
     <string name="bearer" msgid="3231443241639159358">"Portador"</string>
+    <string name="network_type" msgid="748590707422733595">"Tipo de red"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Sin especificar"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Tipo de OMV"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"Valor de OMV"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Eliminar APN"</string>
@@ -1666,7 +1744,7 @@
     <string name="force_stop_dlg_title" msgid="86745852555490146">"¿Deseas forzar la detención?"</string>
     <string name="force_stop_dlg_text" msgid="1527286468544457368">"Si fuerzas la detención de una aplicación, es posible que funcione incorrectamente."</string>
     <string name="app_disable_dlg_positive" msgid="1414218905322009505">"Inhabilitar la aplicación"</string>
-    <string name="app_disable_dlg_text" msgid="2449382902751908916">"Si inhabilitas esta app, es posible que Android y otras apps ya no funcionen correctamente. Ten en cuenta que no puedes borrar esta app ya que vino preinstalada en el dispositivo. Si la inhabilitas, se desactivarás y se ocultará en tu dispositivo."</string>
+    <string name="app_disable_dlg_text" msgid="2449382902751908916">"Si inhabilitas esta app, es posible que Android y otras apps ya no funcionen correctamente. Ten en cuenta que no puedes borrar esta app porque estaba preinstalada en el dispositivo. Si la inhabilitas, se desactivará y se ocultará en tu dispositivo."</string>
     <string name="app_install_details_group_title" msgid="1172114479073704677">"Tienda"</string>
     <string name="app_install_details_title" msgid="7783556181897142187">"Detalles de la app"</string>
     <string name="app_install_details_summary" msgid="2013043219249992373">"App instalada desde <xliff:g id="APP_STORE">%1$s</xliff:g>"</string>
@@ -1930,19 +2008,21 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Usa el botón de accesibilidad para abrir"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Mantén presionadas las teclas de volumen para abrir"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Presiona tres veces para abrir el servicio"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Presiona tres veces la pantalla con dos dedos para abrir"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Usa el gesto para abrir"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Usa los gestos de accesibilidad"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Para usar esta función, presiona el botón de accesibilidad <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> ubicado en la parte inferior de la pantalla.\n\nSi quieres cambiar de función, mantén presionado el botón de accesibilidad."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Para usar esta función, presiona el botón de accesibilidad en la pantalla."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Para usar esta función, mantén presionadas las teclas de volumen."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Para iniciar y detener la ampliación, presiona tres veces en cualquier parte de la pantalla."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Para iniciar y detener la amplificación, presiona tres veces la pantalla con dos dedos."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Para usar esta función, desliza 2 dedos hacia arriba desde la parte inferior de la pantalla.\n\nSi quieres cambiar de función, desliza 2 dedos hacia arriba y mantén presionada la pantalla."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Para usar esta función, desliza 3 dedos hacia arriba desde la parte inferior de la pantalla.\n\nSi quieres cambiar de función, desliza 3 dedos hacia arriba y mantén presionada la pantalla."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Para usar una función de accesibilidad, desliza 2 dedos hacia arriba desde la parte inferior de la pantalla.\n\nSi quieres cambiar de función, desliza 2 dedos hacia arriba y mantén presionada la pantalla."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Para usar una función de accesibilidad, desliza 3 dedos hacia arriba desde la parte inferior de la pantalla.\n\nSi quieres cambiar de función, desliza 3 dedos hacia arriba y mantén presionada la pantalla."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"Entendido"</string>
     <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Configuración del botón"</string>
-    <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Combinación de accesibilidad para: <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
+    <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Combinación de accesibilidad para <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Botón de accesibilidad"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Gesto de accesibilidad"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_gesture" msgid="8078659880723370597">"Deslizar dos dedos hacia arriba"</string>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Mantener presionadas las teclas de volumen"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"mantener presionadas las 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_triple_tap" msgid="6687765191490040899">"Presiona la pantalla tres veces con dos dedos"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"presiona la pantalla tres veces con dos dedos"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"presionar tres veces la pantalla"</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>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Usar vibración y tecnología táctil"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Vibración de alarmas"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Vibración de contenido multimedia"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Vibración del teclado"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Vibración del tono"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Vibración de las notificaciones"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Respuesta táctil"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"Tiempo restante: <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"Carga completa en <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g>"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Tiempo de uso"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Tiempo en segundo plano"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Batería baja"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Permite que la app se ejecute en segundo plano"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"¿Limitar actividad en segundo plano?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Si limitas la actividad en segundo plano de una app, es posible que no funcione correctamente"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Como no se configuró la app para optimizar la batería, no puedes restringirla.\n\nPrimero, activa optimización de batería."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Administrar uso de batería"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Permitir uso en segundo plano"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Habilitar para actualizaciones en tiempo real; inhabilitar para ahorrar batería"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Sin restricciones"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Optimizado"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Restringido"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"desde la última carga completa"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Apps del sistema"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Apps desinstalada"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Otros"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Tiempo restante estimado"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Para completar la carga"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Total: menos de un minuto"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"En segundo plano: menos de un minuto"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Tiempo de uso: menos de un minuto"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Menos de un min"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Total: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"En segundo plano: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Tiempo de uso: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Wi-Fi y datos móviles"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Sincronizar datos personales"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Sincronizar datos de trabajo"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Sinc. auto. datos privados"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Cambiar el ciclo..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Día del mes para restablecer el ciclo de uso de datos:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Ninguna aplicación usó datos durante este período."</string>
@@ -2969,7 +3061,7 @@
     <string name="keywords_battery_adaptive_preferences" msgid="1774870663426502938">"preferencias adaptables, batería adaptable"</string>
     <string name="keywords_spell_checker" msgid="5148906820603481657">"ortografía, diccionario, corrector ortográfico, corrección automática"</string>
     <string name="keywords_voice_input" msgid="7534900094659358971">"herramienta de reconocimiento, entrada, voz, hablar, idioma, manos libres, mano libre, reconocimiento, ofensiva, palabra, historial, audio, auriculares Bluetooth"</string>
-    <string name="keywords_text_to_speech_output" msgid="6728080502619011668">"tarifa, idioma, predeterminado, hablar, texto a voz, accesibilidad, lector de pantalla, ciego"</string>
+    <string name="keywords_text_to_speech_output" msgid="6728080502619011668">"tarifa, idioma, predeterminado, hablar, texto a voz, accesibilidad, lector de pantalla, persona ciega"</string>
     <string name="keywords_date_and_time" msgid="4402136313104901312">"reloj, horario militar"</string>
     <string name="keywords_network_reset" msgid="4075670452112218042">"restablecer, configuración de fábrica"</string>
     <string name="keywords_factory_data_reset" msgid="4979623326958976773">"borrar, eliminar, restaurar, quitar, restablecer a la configuración de fábrica"</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"tamaño del texto, letra grande, fuente grande, texto grande, visión reducida, agrandar el texto, agrandar la fuente, agrandamiento de la fuente"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"pantalla ambiente siempre encendida, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, etiqueta, lector"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"teclado, tecnología táctil, vibración,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Volumen, vibración, No interrumpir"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Volumen multimedia"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Volumen de transmisión"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Mostrar todo el contenido de las notificaciones"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Mostrar contenido sensible solo al desbloquear"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"No mostrar notificaciones"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"¿Cómo quieres que se muestren las notificaciones en la pantalla de bloqueo?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Pantalla de bloqueo"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Mostrar el contenido de notificaciones de trabajo"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Ocultar contenido de trabajo confidencial"</string>
@@ -3354,6 +3448,17 @@
     <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="6121016426991791557">"Inactividad de notificaciones"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Aplicar período de inactividad a todas las notificaciones"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Disminuir gradualmente el volumen de notificación cuando recibes muchas consecutivas de la misma app"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Aplicar período de inactividad a las conversaciones"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Disminuir gradualmente el volumen de notificación cuando recibes muchos mensajes del mismo chat en un período breve"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"No usar el período de inactividad de las notificaciones"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Nunca disminuir el volumen de notificación, sin importar la cantidad de notificaciones sucesivas de la misma app"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Vibrar cuando se desbloquea"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Solo vibrar cuando la pantalla está desbloqueada"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Aplicar a perfiles de trabajo"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Aplicar la configuración de período de inactividad de notificaciones de tu perfil personal al de trabajo"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Servicio de ayuda de RV"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Ninguna app instalada solicitó que se la ejecutara como servicio de ayuda de RV."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"¿Quieres permitir que el servicio de RV acceda a <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Permitir administrar todos los archivos"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Permite que esta app lea, modifique y borre todos los archivos en el dispositivo o cualquier volumen de almacenamiento conectado. Si habilitas el permiso, es posible que la app acceda a archivos sin tu conocimiento explícito."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Pueden acceder a todos los archivos"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Apps con activación por voz"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Permitir la activación por voz"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Las activaciones por voz inician apps aprobadas, sin usar las manos, a través de comandos por voz. Los sensores incorporados y adaptativos garantizan que los datos sean privados solo para ti.\n\n"<a href="">"Más información sobre los sensores adaptativos protegidos"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Notificaciones de pantalla completa"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Permitir notificaciones de pantalla completa de esta app"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Permite que esta app muestre notificaciones que ocupan toda la pantalla cuando el dispositivo está bloqueado. Las apps pueden usarlas para destacar alarmas, llamadas entrantes y otras notificaciones urgentes."</string>
@@ -3900,14 +4008,16 @@
     <string name="battery_tips_card_dismiss_button" msgid="1885756985544936618">"Entendido"</string>
     <string name="battery_tips_card_feedback_info" msgid="767117835675157298">"¿Fue útil este mensaje?"</string>
     <string name="battery_hints_warning_icon_a11y" msgid="5312542323401447620">"Ícono de advertencia de consejos sobre la batería"</string>
-    <string name="battery_tips_settings_summary_brightness" msgid="546145032616077783">"Activa el brillo automático para extender la duración de batería"</string>
-    <string name="battery_tips_settings_summary_screen_timeout" msgid="556801426050962077">"Reduce el tiempo de espera de la pantalla para extender la duración de batería"</string>
+    <string name="battery_tips_settings_summary_brightness" msgid="546145032616077783">"Activa el brillo automático para extender la duración de la batería"</string>
+    <string name="battery_tips_settings_summary_screen_timeout" msgid="556801426050962077">"Reduce el tiempo de espera de la pantalla para extender la duración de la batería"</string>
     <string name="battery_tips_apps_summary_always_high" msgid="6334519477067044920">"<xliff:g id="APP_LABEL">%1$s</xliff:g> usó más batería"</string>
     <string name="battery_tips_apps_summary_higher_than_usual" msgid="95676961671544628">"<xliff:g id="APP_LABEL">%1$s</xliff:g> usó más batería de la habitual"</string>
     <string name="battery_tips_apps_summary_always_high_in_background" msgid="2953858181710181126">"<xliff:g id="APP_LABEL">%1$s</xliff:g> usó más batería estando en segundo plano"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> usó más batería de la habitual estando en segundo plano"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> usó más batería estando en primer plano"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> usó más batería de la habitual estando en primer plano"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Uso de la batería alto"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Uso de la batería alto en segundo plano"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Uso de la batería alto en primer plano"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"navegación del sistema, navegación con 2 botones, navegación con 3 botones, navegación por gestos, deslizar"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Asistente digital"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Desliza el dedo para invocar al asistente"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Desliza el dedo hacia arriba desde una de las esquinas inferiores para invocar a la app de asistente digital."</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Desliza el dedo hacia arriba desde una de las esquinas inferiores para invocar a la app de asistente digital."</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Mantén presionado el botón de inicio para activar Asistente"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Mantén presionado el botón de inicio para abrir la app de asistente digital."</string>
     <string name="low_label" msgid="6525629096999711220">"Baja"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"datos, llave de acceso, contraseña"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"automático, rellenar, autocompletar, datos, llave de acceso, contraseña"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Asegúrate de que esta app sea confiable&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; usa el contenido de tu pantalla para determinar qué se puede autocompletar."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;¿Quieres usar &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; usa el contenido de tu pantalla para determinar qué se puede autocompletar. A partir de ahora, las nuevas contraseñas, llaves de acceso y otros datos se guardarán aquí."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;¿Quieres usar &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; A partir de ahora, las nuevas contraseñas, llaves de acceso y otros datos se guardarán aquí. Es posible que &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; use el contenido de la pantalla para determinar lo que se puede autocompletar."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Servicios de contraseñas, llaves de acceso y datos"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"¿Quieres desactivar %1$s?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;¿Quieres desactivar este servicio?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; La información guardada, como contraseñas, llaves de acceso, formas de pago y otros datos, no se rellenará cuando accedas. Para usar la información guardada, elige un servicio de contraseña, llave de acceso o datos."</string>
@@ -4226,10 +4336,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <string name="enable_angle_as_system_driver" msgid="4648827560023949786">"Experimental: Habilitar ANGLE"</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Advertencia: Habilita ANGLE como controlador predeterminado de OpenGL ES. Esta función es experimental y tal vez no sea compatible con algunas apps de video o cámara."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"Se debe reiniciar para cambiar el controlador del sistema OpenGL ES"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Cambios en la compatibilidad de la app"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Activa o desactiva los cambios de compatibilidad de la app"</string>
@@ -4787,10 +4895,8 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Relación de aspecto"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"Prueba una relación de aspecto nueva para ver esta app si no se diseñó para adaptarse a tu <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Prueba una relación de aspecto nueva para ver esta app si no se diseñó para adaptarse a tu <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Algunas apps podrían no estar optimizadas para ciertas relaciones de aspecto."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Prueba una nueva relación de aspecto para ver una app que no se haya diseñado para adaptarse a tu <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Prueba una nueva relación de aspecto para ver una app que no se haya diseñado para adaptarse a tu <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Ten en cuenta que algunas apps podrían no estar optimizadas para determinadas relaciones de aspecto."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Apps sugeridas"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Apps cambiadas"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Predeterminada de la app"</string>
@@ -4801,7 +4907,7 @@
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
     <string name="user_aspect_ratio_option_a11y" msgid="1235801996029095219">"<xliff:g id="NUMERATOR">%1$s</xliff:g> por <xliff:g id="DENOMINATOR">%2$s</xliff:g>"</string>
-    <string name="app_aspect_ratio_footer" msgid="4029509301182067475">"La app se reiniciará cuando cambies la relación de aspecto. Es posible que pierdas cambios sin guardar. Algunas apps podrían no estar optimizadas para ciertas relaciones de aspecto."</string>
+    <string name="app_aspect_ratio_footer" msgid="4029509301182067475">"Cuando cambies la relación de aspecto, se reiniciará la app. Es posible que pierdas los cambios que no se hayan guardado y que algunas apps no estén optimizadas para ciertas relaciones de aspecto."</string>
     <string name="aspect_ratio_experimental_title" msgid="9088785421062044831">"Relación de aspecto (experimental)"</string>
     <string name="aspect_ratio_experiment_title" msgid="128614319422121040">"Relaciones de aspecto (experimento)"</string>
     <string name="aspect_ratio_labs_title" msgid="6733893837442759383">"Relación de aspecto (labs)"</string>
@@ -4860,4 +4966,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Análisis de apps engañosas"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Revisar la actividad en la app en busca de phishing"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Usar análisis para apps engañosas"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Usar análisis para apps de trabajo engañosas"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-es/arrays.xml b/res/values-es/arrays.xml
index caf220d..554ce3b 100644
--- a/res/values-es/arrays.xml
+++ b/res/values-es/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Tras 1 minuto"</item>
     <item msgid="1574040255478150028">"Tras 5 minutos"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 8a8dcfe..2e15448 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -44,7 +44,7 @@
     <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>
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"La pantalla frontal se enciende cuando pliegas el dispositivo"</string>
-    <string name="selective_stay_awake_title" msgid="7887645333447645168">"Solo juegos, vídeos y más"</string>
+    <string name="selective_stay_awake_title" msgid="7887645333447645168">"Solo juegos, vídeos y otras"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"La pantalla frontal se enciende para las aplicaciones que evitan que la pantalla quede inactiva"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Nunca"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"La pantalla frontal se bloquea cuando pliegas el dispositivo"</string>
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Inhabilitar Bluetooth LE Audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Inhabilita la función Bluetooth LE Audio si el dispositivo es compatible con las capacidades de hardware de LE Audio."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Botón LE Audio en Detalles del dispositivo"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Habilitar la lista de permitidos de Bluetooth LE Audio"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Habilita la función de lista de permitidos de Bluetooth LE Audio."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Ignorar lista de permitidos de Bluetooth LE Audio"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Usa LE Audio de forma predeterminada aunque no se haya verificado que el periférico LE Audio cumpla los criterios de la lista de permitidos."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Dispositivos multimedia"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Dispositivos de llamada"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Otros dispositivos"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Dispositivos guardados"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Asociado a la cuenta"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Usado previamente con una cuenta"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"El Bluetooth se activará para emparejar"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Preferencias de conexión"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Conectado anteriormente"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Escribir en campos de texto"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignorar todas las pulsaciones del botón del lápiz óptico"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Lápiz óptico"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Uso compartido de audio"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Compartir audio"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Llamadas y alarmas"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Fecha y hora"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Borrar"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Más información sobre los ajustes de ubicación"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Cuentas"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Seguridad"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Cifrado y credenciales"</string>
@@ -419,7 +432,7 @@
     <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"¡Listo!"</string>
     <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Ahora puedes usar tu reloj para desbloquear este teléfono cuando deslices hacia arriba en la pantalla de bloqueo o toques una notificación"</string>
     <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Hecho"</string>
-    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Desbloqueo con Reloj"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Desbloqueo con reloj"</string>
     <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Puedes usar tu reloj para desbloquear este teléfono cuando deslices hacia arriba en la pantalla de bloqueo o toques una notificación"</string>
     <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Para usar Desbloqueo con reloj, tu reloj debe estar desbloqueado, en tu muñeca, dentro del alcance y conectado a este teléfono. Si se interrumpe la conexión, tendrás que desbloquear el teléfono para usar Desbloqueo con reloj.\n\nNota:\nNo puedes tener más de un reloj configurado a la vez. Para añadir otro reloj, primero quita el anterior."</string>
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Más información sobre Desbloqueo con reloj"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Perfil de trabajo"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Espacio privado"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Oculta aplicaciones en una carpeta privada"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Desbloquear con el bloqueo de pantalla"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Mostrar espacio privado"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Ocultar cuando esté bloqueado"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Ocultar espacio privado si está bloqueado"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Para evitar que se sepa que usas espacio privado, puedes ocultarlo desde tu lista de aplicaciones"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Acceder al espacio privado cuando está oculto"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Busca espacio privado en la barra de búsqueda"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Toca el recuadro de espacio privado"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Desbloquea tu espacio privado"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Desactivado"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Activado"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Sistema"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Crear espacio privado"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Eliminar espacio privado"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Espacio privado creado correctamente"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"El espacio privado ya existe"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"El espacio privado no se ha podido crear"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Espacio privado eliminado correctamente"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"El espacio privado no se ha podido eliminar"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Define un bloqueo de pantalla"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Para usar el espacio privado, define un bloqueo de pantalla."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Define un bloqueo de pantalla"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Cancelar"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Cancelar"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Configurar"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Configurar espacio privado"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Oculta las aplicaciones privadas en un espacio seguro al que solo tú tengas acceso"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Cómo funciona"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Puedes acceder al espacio privado desde la parte inferior de tu lista de aplicaciones"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Las aplicaciones del espacio privado están protegidas con un bloqueo"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Las notificaciones de las aplicaciones del espacio privado se ocultan si está bloqueado"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Las aplicaciones del espacio privado no se mostrarán en Gestor de permisos, el panel de privacidad o en otros ajustes si el espacio privado está bloqueado"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Configurando espacio privado…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"El espacio privado está protegido con un bloqueo"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"La información de uso de las aplicaciones del espacio privado se oculta cuando está bloqueado"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Acceder al espacio privado desde la lista de aplicaciones"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"No se ha podido configurar el espacio privado"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Inténtalo de nuevo ahora o vuelve más tarde"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Reintentar"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"¿Usar bloqueo de pantalla para desbloquear?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Puedes desbloquear el espacio privado de la misma forma que desbloqueas tu dispositivo, o bien con un bloqueo diferente"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Usar bloqueo de pantalla"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Elegir nuevo aspecto"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"¡Todo listo!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Para acceder al espacio privado, desliza hacia arriba desde la parte inferior de la pantalla de inicio y, a continuación, desliza hacia abajo"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Hecho"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Desplázate hacia abajo para acceder al espacio privado"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Inicia sesión para configurar el espacio privado"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Puedes añadir hasta <xliff:g id="COUNT">%d</xliff:g> huellas digitales"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Has añadido el número máximo de huellas digitales"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"No se pueden añadir más huellas digitales"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Conectar"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Desconectar"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Emparejar y conectar"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Cuando el Bluetooth está activado, tu dispositivo se puede comunicar con otros dispositivos cercanos que tengan Bluetooth"</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Cuando el Bluetooth está activado, tu dispositivo puede comunicarse con otros dispositivos Bluetooth cercanos.\n\nPara mejorar la experiencia de uso del dispositivo, las aplicaciones y los servicios pueden buscar dispositivos cercanos en cualquier momento aunque el Bluetooth esté desactivado. Esto puede servir, por ejemplo, para mejorar servicios y funciones basados en la ubicación. Puedes cambiar esta opción en los ajustes de búsqueda de dispositivos Bluetooth."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Cambiar"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Detalles del dispositivo"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Permite que el ART verifique el bytecode de aplicaciones depurables"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Mostrar tasa de refresco"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Muestra la tasa de refresco de la pantalla"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Mostrar proporción HDR-SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Muestra la proporción HDR-SDR actual"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Requerir que el dispositivo esté desbloqueado para usar NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Seguir usando aplicaciones con el dispositivo plegado"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Pantalla fluida"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Incrementa automáticamente la frecuencia de actualización de 60 a <xliff:g id="ID_1">%1$s</xliff:g> Hz en determinados tipos de contenido. Aumenta el uso de batería."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Incrementa automáticamente la frecuencia de actualización a <xliff:g id="ID_1">%1$d</xliff:g> Hz en determinados tipos de contenido. Aumenta el uso de la batería."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Forzar tasa de refresco máxima"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Se usa la tasa de refresco más alta posible para mejorar la capacidad de respuesta táctil y la calidad de las animaciones. Aumenta el uso de la batería."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Pantalla atenta"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Ajustes comunes"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APNs"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Editar punto de acceso"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Añadir punto de acceso"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Sin establecer"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Sin configurar"</string>
     <string name="apn_name" msgid="6677695784108157953">"Nombre"</string>
@@ -1320,6 +1397,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN habilitado"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN inhabilitado"</string>
     <string name="bearer" msgid="3231443241639159358">"Tipo de conexión"</string>
+    <string name="network_type" msgid="748590707422733595">"Tipo de red"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Sin especificar"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Tipo de OMV"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"Valor de OMV"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Eliminar APN"</string>
@@ -1459,7 +1538,7 @@
     <string name="about_settings_summary" msgid="4831942939227432513">"Ver información legal, estado, versión del software"</string>
     <string name="legal_information" msgid="7509900979811934843">"Información legal"</string>
     <string name="manual" msgid="3651593989906084868">"Manual"</string>
-    <string name="regulatory_labels" msgid="5960251403367154270">"Etiquetas normativas"</string>
+    <string name="regulatory_labels" msgid="5960251403367154270">"Etiquetas regulatorias"</string>
     <string name="safety_and_regulatory_info" msgid="8285048080439298528">"Manual de seguridad y normativas"</string>
     <string name="copyright_title" msgid="83245306827757857">"Derechos de autor"</string>
     <string name="license_title" msgid="8745742085916617540">"Licencia"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Usa el botón de accesibilidad para abrir"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Mantén pulsadas las teclas de volumen para abrir"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Toca tres veces la pantalla para abrir"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Toca tres veces la pantalla para abrir"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Usar gesto para abrir"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Usar gesto de accesibilidad"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Para usar esta función, toca el botón de accesibilidad <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>, situado en la parte inferior de la pantalla.\n\nPara pasar de una función a otra, mantén pulsado el botón de accesibilidad."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Para usar esta función, toca el botón de accesibilidad de la pantalla."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Para usar esta función, mantén pulsadas las dos teclas de volumen."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Para iniciar o detener la ampliación, toca tres veces en cualquier parte de la pantalla."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Para iniciar o detener la ampliación, toca 3 veces en cualquier parte de la pantalla con dos dedos."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Para usar esta función, desliza hacia arriba con dos dedos desde la parte inferior de la pantalla.\n\nPara pasar de una función a otra, desliza hacia arriba con dos dedos y mantén pulsada la pantalla."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Para usar esta función, desliza hacia arriba con tres dedos desde la parte inferior de la pantalla.\n\nPara pasar de una función a otra, desliza hacia arriba con tres dedos y mantén pulsada la pantalla."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Para usar una función de accesibilidad, desliza hacia arriba con dos dedos desde la parte inferior de la pantalla.\n\nPara pasar de una función a otra, desliza hacia arriba con dos dedos y mantén pulsada la pantalla."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Mantener teclas de volumen"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"mantener pulsadas las 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_triple_tap" msgid="6687765191490040899">"Toca tres veces la pantalla con dos dedos"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"tocar tres veces la pantalla con dos dedos"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"tocar tres veces la pantalla"</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>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Usar vibración y vibración al pulsar"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Vibración de alarmas"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Vibración de contenido multimedia"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Vibración del teclado"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Vibración del tono"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Vibración de las notificaciones"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Respuesta táctil"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"Quedan <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> para completar la carga"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Tiempo de pantalla"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Tiempo en segundo plano"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Batería baja"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Permite que la aplicación se ejecute en segundo plano"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"¿Limitar actividad en segundo plano?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Si limitas la actividad en segundo plano de una aplicación, puede que no funcione correctamente"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Esta aplicación no optimiza la batería, por lo que no puedes restringirla.\n\nPara hacerlo, activa antes la optimización."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Gestionar el uso de batería"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Permitir uso en segundo plano"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Habilita esta opción para recibir notificaciones en tiempo real, inhabilítala para ahorrar batería"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Sin restricciones"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Optimizado"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Restringido"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"desde la última carga completa"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Aplicaciones del sistema"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Aplicaciones desinstaladas"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Otros"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Tiempo restante estimado"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Hasta completar la carga"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Total: menos de 1 minuto"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"En segundo plano: menos de 1 minuto"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Tiempo de pantalla: menos de un minuto"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Menos de un minuto"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Total: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"En segundo plano: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Tiempo de pantalla: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Datos móviles y Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Sincronizar datos personales automáticamente"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Sincronizar datos de trabajo automáticamente"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Sincronizar automáticamente"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Cambiar ciclo…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Día del mes para restablecer ciclo de uso de datos:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Ninguna aplicación ha usado datos en este periodo."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"tamaño del texto, letras grandes, fuente grande, texto grande, baja visión, hacer el texto más grande, agrandar texto, ampliar texto, ampliador de fuente, ampliación de la fuente"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"pantalla ambiente siempre encendida, pantalla siempre activa"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, etiqueta, lector"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"teclado, tecnología de vibración al pulsar, vibrar,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Volumen, vibración, No molestar"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Volumen de multimedia"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Volumen de envío"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Mostrar todo el contenido de las notificaciones"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Mostrar contenido sensible solo al desbloquear"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"No mostrar ninguna notificación"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"¿Cómo quieres que se muestren las notificaciones en la pantalla de bloqueo?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Pantalla de bloqueo"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Mostrar todo (notificaciones de trabajo)"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Ocultar contenido de trabajo sensible"</string>
@@ -3354,6 +3449,17 @@
     <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="6121016426991791557">"Bajar volumen de notificaciones"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Bajar el volumen de todas las notificaciones"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Baja gradualmente el volumen de las notificaciones cuando recibes muchas sucesivas de la misma aplicación"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Bajar el volumen de las conversaciones"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Baja gradualmente el volumen de las notificaciones cuando recibes muchos mensajes del mismo chat durante un breve periodo de tiempo"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"No bajar el volumen"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"No baja nunca el volumen de las notificaciones, independientemente de la cantidad de notificaciones sucesivas de la misma aplicación"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Vibrar cuando esté desbloqueada"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Vibra solo cuando la pantalla está desbloqueada"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Aplicar a perfiles de trabajo"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Aplica los ajustes para bajar el volumen de notificaciones de tu perfil personal a tu perfil de trabajo"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Servicios de ayuda de RV"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Ninguna aplicación instalada ha solicitado ejecutarse como servicio de ayuda de RV."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"¿Permitir que el servicio de RV acceda a <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Dar acceso para gestionar todos los archivos"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Permite que esta aplicación lea, modifique y elimine todos los archivos de este dispositivo o de cualquier volumen de almacenamiento conectado. Si le das permiso, podrá acceder a archivos sin avisarte expresamente."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Puede acceder a todos los archivos"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Aplicaciones de activación por voz"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Permitir la activación por voz"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"La activación por voz activa las aplicaciones aprobadas con solo usar un comando de voz. La detección adaptativa integrada asegura que tus datos se mantengan privados.\n\n"<a href="">"Más información sobre la detección adaptativa protegida"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Notificaciones a pantalla completa"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Permitir notificaciones a pantalla completa de esta aplicación"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Permite que esta aplicación muestre notificaciones que ocupan toda la pantalla cuando el dispositivo está bloqueado. La aplicación puede usar esta opción para resaltar alarmas, llamadas entrantes u otras notificaciones urgentes."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ha usado más batería de lo habitual en segundo plano"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ha usado más batería en primer plano"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ha usado más batería de lo habitual en primer plano"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Uso de batería alto"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Uso de batería alto en segundo plano"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Uso de batería alto en primer plano"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"navegación del sistema, navegación con 2 botones, navegación con 3 botones, navegación por gestos, deslizar"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Asistente digital"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Deslizar para abrir asistente"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Desliza el dedo desde una de las esquinas inferiores de la pantalla para abrir una aplicación de asistente digital."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Mantener pulsado Inicio para activar el Asistente"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Mantén pulsado el botón de inicio para abrir la aplicación del asistente digital"</string>
     <string name="low_label" msgid="6525629096999711220">"Baja"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"datos, llave de acceso, contraseña"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"automático, completar, autocompletar, datos, llave de acceso, contraseña"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Asegúrate de que confías en esta aplicación&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Autocompletar de Google&gt;%1$s&lt;/xliff:g&gt; utiliza el contenido que se muestra en la pantalla para determinar el texto que se puede autocompletar."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;¿Usar &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; usa el contenido que hay en tu pantalla para determinar qué se puede autocompletar. Las nuevas contraseñas, llaves de acceso y otra información se guardarán aquí a partir de ahora."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;¿Usar &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Las nuevas contraseñas, llaves de acceso y otra información se guardarán aquí a partir de ahora. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; puede usar el contenido que hay en tu pantalla para determinar qué se puede autocompletar."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Contraseñas, llaves de acceso y servicios de datos"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"¿Desactivar %1$s?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;¿Desactivar este servicio?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; La información guardada, como contraseñas, llaves de acceso, métodos de pago y otros datos no se rellenarán cuando inicies sesión. Para usar tu información guardada, elige un servicio de contraseñas, llaves de acceso o datos."</string>
@@ -4226,10 +4338,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <string name="enable_angle_as_system_driver" msgid="4648827560023949786">"Experimental: Habilita ANGLE"</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Advertencia: Habilita ANGLE como controlador OpenGL ES predeterminado. Esta función se encuentra en modo experimental y puede que no sea compatible con algunas aplicaciones de cámara y vídeo."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"Debes reiniciar para cambiar el controlador OpenGL ES del sistema"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Cambios de compatibilidad de aplicaciones"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Activa o desactiva los cambios de compatibilidad de aplicaciones"</string>
@@ -4787,13 +4897,11 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Relación de aspecto"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"Prueba una nueva relación de aspecto para ver esta aplicación si no se ha diseñado para adaptarse a tu <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Prueba una nueva relación de aspecto para ver esta aplicación si no se ha diseñado para adaptarse a tu <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Puede que algunas aplicaciones no estén optimizadas para determinadas relaciones de aspecto."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Prueba una nueva relación de aspecto para ver una aplicación si no se ha diseñado para adaptarse a tu <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Prueba una nueva relación de aspecto para ver una aplicación si no se ha diseñado para adaptarse a tu <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Puede que algunas aplicaciones no estén optimizadas para determinadas relaciones de aspecto."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Aplicaciones sugeridas"</string>
-    <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Apps cambiadas"</string>
-    <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Predeterminado de la aplicación"</string>
+    <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Aplicaciones cambiadas"</string>
+    <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Predeterminada de la aplicación"</string>
     <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Pantalla completa"</string>
     <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Media pantalla"</string>
     <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Relación de aspecto del dispositivo"</string>
@@ -4860,4 +4968,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Buscar aplicaciones engañosas"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Comprobar la actividad de las aplicaciones en busca de phishing"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Buscar aplicaciones engañosas"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Buscar aplicaciones de trabajo engañosas"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-et/arrays.xml b/res/values-et/arrays.xml
index bdc9736..19c1135 100644
--- a/res/values-et/arrays.xml
+++ b/res/values-et/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"1 minuti pärast"</item>
     <item msgid="1574040255478150028">"5 minuti pärast"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 6b15988..5f144aa 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -44,7 +44,7 @@
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Suurendamine"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Alati"</string>
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Esiekraan lülitub seadme kokkuvoltimisel sisse"</string>
-    <string name="selective_stay_awake_title" msgid="7887645333447645168">"Ainult mängud, videod ja palju muud"</string>
+    <string name="selective_stay_awake_title" msgid="7887645333447645168">"Ainult mängude, videote jne puhul"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Esiekraan lülitub sisse rakenduste jaoks, mis takistavad ekraanil unerežiimile lülitumist"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Mitte kunagi"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Esiekraan lukustub seadme kokkuvoltimisel"</string>
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Keela Bluetooth LE Audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Keelab funktsiooni Bluetooth LE Audio, kui seade toetab LE Audio riistvara võimalusi."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Kuva seadme üksikasjades LE Audio lüliti"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Luba Bluetooth LE Audio lubamisloend"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Lubab Bluetooth LE Audio lubamisloendi funktsiooni."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Bluetooth LE Audio lubamisloendist möödaminek"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"LE Audiot kasutatakse vaikimisi isegi siis, kui LE Audio välisseadme vastavust lubamisloendi kriteeriumitele pole kinnitatud."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Meediaseadmed"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Helistamisseadmed"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Muud seadmed"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Salvestatud seadmed"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Kontoga seotud"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Varem kontoga kasutatud"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth lülitatakse sidumiseks sisse"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Ühenduse eelistused"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Eelnevalt ühendatud"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Kirjutamine tekstiväljadele"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Elektronpliiatsi kõigi nupuvajutuste eiramine"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Elektronpliiats"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Heli jagamine"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Heli jagamine"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Kõned ja äratused"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Kuupäev ja kellaaeg"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Puhverserver"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Kustuta"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Lisateave asukohaseadete kohta"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Kontod"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Turvalisus"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Krüpteerimine ja mandaadid"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Tööprofiil"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Privaatne ruum"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Peida privaatses kaustas olevad rakendused"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Avamine ekraaniluku abil"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Privaatse ruumi kuvamine"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Peida lukustatuna"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Privaatse ruumi peitmine, kui see on lukustatud"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Privaatse ruumi saate oma rakenduste loendis peita, et teised ei teaks selle olemasolust teie seadmes"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Juurdepääs privaatsele ruumile, kui see on peidetud"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Sisestage otsinguribale tekst „Privaatne ruum”"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Puudutage privaatse ruumi paani"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Avage oma privaatne ruum"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Väljas"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Sees"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Süsteem"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Privaatse ruumi loomine"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Privaatse ruumi kustutamine"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Privaatse ruumi loomine õnnestus"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Privaatne ruum on juba olemas"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Privaatset ruumi ei saanud luua"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Privaatse ruumi kustutamine õnnestus"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Privaatset ruumi ei saanud kustutada"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Ekraaniluku seadistamine"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Seadistage privaatse ruumi jaoks seadmele ekraanilukk."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Seadistage ekraanilukk"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Tühista"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Tühista"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Seadistamine"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Privaatse ruumi seadistamine"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Privaatsete rakenduste peitmine turvalises ruumis, millele pääsete juurde ainult teie"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Tööpõhimõtted"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Privaatsele ruumile pääsete juurde oma rakenduste loendi allosas"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Privaatse ruumi rakendused on lukuga kaitstud"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Kui privaatne ruum on lukustatud, siis on privaatse ruumi rakenduste märguanded peidetud"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Kui privaatne ruum on lukustatud, ei kuvata privaatse ruumi rakendusi lubade halduris, privaatsuse juhtpaneelil ega muudes seadetes"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Privaatse ruumi seadistamine…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Privaatne ruum on lukuga kaitstud"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Kui privaatne ruum on lukustatud, siis on privaatse ruumi rakenduste kasutusteave peidetud"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Juurdepääs privaatsele ruumile rakenduste loendist"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Privaatset ruumi ei saanud seadistada"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Proovige kohe uuesti või tulge hiljem tagasi"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Proovi uuesti"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Kas kasutada lukust avamiseks ekraanilukku?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Privaatse ruumi saate lukust avada samal moel seadme lukust avamisega või valida erineva luku"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Kasuta ekraanilukku"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Uue luku valimine"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Valmis!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Juurdepääsuks privaatsele ruumile pühkige avakuva allosast üles ja seejärel kerige alla"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Valmis"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Juurdepääsuks privaatsele ruumile kerige alla"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Privaatse ruumi seadistamiseks logige sisse"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Saate lisada kuni <xliff:g id="COUNT">%d</xliff:g> sõrmejälge"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Olete lisanud maksimaalse arvu sõrmejälgi"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Rohkem sõrmejälgi ei saa lisada"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Ühenda"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Katkesta ühendus"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Seo ja ühenda"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Kui Bluetooth on sisse lülitatud, saab seade suhelda teiste lähikonna Bluetooth-seadmetega."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Kui Bluetooth on sisse lülitatud, saab teie seade suhelda teiste läheduses olevate Bluetooth-seadmetega.\n\nSeadme kasutuskogemuse täiustamiseks saavad rakendused ja teenused endiselt igal ajal otsida läheduses olevaid seadmeid isegi siis, kui Bluetooth on välja lülitatud. Seda saab kasutada näiteks asukohapõhiste funktsioonide ja teenuste täiustamiseks. Saate seda muuta Bluetoothi skannimise seadetes."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Muutke"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Seadme üksikasjad"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Luba ART silutavate rakenduste baidikoodi kinnitamiseks"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Kuva värskendussagedus"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Kuva ekraani praegune värskendussagedus"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Kuva HDR-/SDR-suhe"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Kuva praegune HDR-/SDR-suhe"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Nõua NFC puhul seadme avamist"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1060,9 +1136,9 @@
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Väljas"</string>
     <string name="display_white_balance_title" msgid="2624544323029364713">"Ekraani valge tasakaal"</string>
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
-    <string name="fold_lock_behavior_title" msgid="786228803694268449">"Jätkake rakenduste kasutamist voldituna"</string>
+    <string name="fold_lock_behavior_title" msgid="786228803694268449">"Jätka rakenduste kasutamist voldituna"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Suurendab teatud sisu puhul värskendussagedust 60 hertsilt <xliff:g id="ID_1">%1$s</xliff:g> hertsini. Akukasutus suureneb."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Suurendab teatud sisu puhul värskendamissagedust automaatselt kuni <xliff:g id="ID_1">%1$d</xliff:g> hertsini. Akukasutus suureneb."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Jõusta kõrgeim värskendamissagedus"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Kõrgeim värskendamissagedus täiustab puutetundlikkust ja pakub sujuvamaid animatsioone. Akukasutus suureneb."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Ekraanivaatamise tuvastus"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Ühised seaded"</string>
     <string name="apn_settings" msgid="4295467389400441299">"Pääsupunktid (APN-id)"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Pääsupunkti muutmine"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Pääsupunkti lisamine"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Määramata"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Määramata"</string>
     <string name="apn_name" msgid="6677695784108157953">"Nimi"</string>
@@ -1320,6 +1397,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN on lubatud"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN on keelatud"</string>
     <string name="bearer" msgid="3231443241639159358">"Kandja"</string>
+    <string name="network_type" msgid="748590707422733595">"Võrgu tüüp"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Määramata"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO tüüp"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO väärtus"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Kustuta pääsupunktinimi"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Avamiseks juurdepääsetavuse nupu kasutamine"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Avamiseks hoidke helitugevuse klahve all"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Avamiseks puudutage ekraani kolm korda"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Avamiseks ekraani kahe sõrmega kolmekordne puudutamine"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Kasutage avamiseks liigutust"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Juurdepääsuliigutuse kasutamine"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Selle funktsiooni kasutamiseks puudutage ekraanikuva allosas juurdepääsetavuse nuppu <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>.\n\nFunktsioonide vahel vahetamiseks puudutage juurdepääsetavuse nuppu pikalt."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Selle funktsiooni kasutamiseks puudutage ekraanikuval juurdepääsetavuse nuppu."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Selle funktsiooni kasutamiseks vajutage pikalt mõlemat helitugevuse klahvi."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Suurenduse käivitamiseks ja peatamiseks puudutage ekraani kolm korda."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Suurenduse käivitamiseks ja peatamiseks puudutage ekraani kahe sõrmega kolm korda."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Selle funktsiooni kasutamiseks pühkige ekraanikuva allosast kahe sõrmega üles.\n\nFunktsioonide vahel vahetamiseks pühkige kahe sõrmega üles ja hoidke sõrmi ekraanil."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Selle funktsiooni kasutamiseks pühkige ekraanikuva allosast kolme sõrmega üles.\n\nFunktsioonide vahel vahetamiseks pühkige kolme sõrmega üles ja hoidke sõrmi ekraanil."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Juurdepääsufunktsiooni kasutamiseks pühkige ekraanikuva allosast kahe sõrmega üles.\n\nFunktsioonide vahel vahetamiseks pühkige kahe sõrmega üles ja hoidke sõrmi ekraanil."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Helitugevuse klahvide allhoidmine"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"helitugevuse klahvide allhoidmine"</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_triple_tap" msgid="6687765191490040899">"Ekraani kahe sõrmega kolmekordne puudutamine"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"ekraani kahe sõrmega kolmekordne puudutamine"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"Puudutage kahe sõrmega hetkeks ekraani {0,number,integer} korda"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Ekraani kolmikpuudutamine"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"ekraani kolmikpuudutamine"</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>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Vibreerimise ja värintagasiside kasutamine"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Äratuse vibreerimine"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Meedia vibreerimine"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Klaviatuuri vibreerimine"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Helin koos vibreerimisega"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Märguanne koos vibreerimisega"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Puudutuste tagasiside"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"Jäänud on <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> laadimise lõpuni"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Ekraaniaeg"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Taustal veedetud aeg"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Akutase on madal"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Lubatakse rakenduse taustal käitamine"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Kas piirata taustal tegevust?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Kui piirate rakenduse tegevust taustal, võib rakendus toimida valesti."</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Kuna rak. pole aku optimeerimine seadistatud, ei saa te seda piirata.\n\nRak. piiramiseks lülit. esmalt sisse aku optimeerimine."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Akukasutuse haldamine"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Taustal kasutamise lubamine"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Lubage, et saada reaalajas värskendusi. Keelake, et säästa akut."</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Piiranguteta"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Optimeeritud"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Piiratud"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"alates viimasest täislaadimisest"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Süsteemirakendused"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Desinstallitud rakendused"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Muu"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Hinnanguline järelejäänud aeg"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Täislaadimiseni"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Kokku: vähem kui minut"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Taustal: vähem kui minut"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Ekraaniaeg: vähem kui minut"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Vähem kui minut"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Kokku: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Taustal: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Ekraaniaeg: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Mobiilne andmeside, WiFi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Isiklike andmete autom. sünk."</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Tööandmete autom. sünkroon."</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Privaatandmete autom. sünkr."</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Tsükli muutmine ..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Kuupäev andmekasutustsükli lähtestamiseks:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Sel perioodil ei kasut. andmeid ükski rakendus."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"teksti suurus, suur tekst, suur font, halb nähtavus, teksti suuremaks muutmine, fondi suurendaja, fondi suurendamine"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"alati sisse lülitatud taustakuva, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, kiip, lugeja"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"klaviatuur, värintagasiside, vibreerimine,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Helitugevus, vibreerimine, režiim Mitte segada"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Meedia helitugevus"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Ülekantava sisu helitugevus"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Kuva kogu märguande sisu"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Kuva tundlik sisu ainult avatuna"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Ära kuva märguandeid üldse"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Kuidas soovite lukustuskuva kuvada?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Lukustuskuva"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Kuva tööprofiili märguannete kogu sisu"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Peida tundlik töösisu"</string>
@@ -3354,6 +3449,17 @@
     <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="6121016426991791557">"Märguannete rahunemine"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Rahunemise rakendamine kõigile märguannetele"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Vähendab järk-järgult märguannete helitugevust, kui saate samast rakendusest mitu järjestikust teavitust"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Rahunemise rakendamine vestlustele"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Vähendab järk-järgult märguannete helitugevust, kui saate samast vestlusest mitu järjestikust teavitust"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Ära kasuta märguannete rahunemist"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Ei vähenda kunagi märguannete helitugevust, olenemata sama rakenduse järjestikuste märguannete arvust"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Avatuna vibreerimine"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Vibreerib ainult, kui ekraan on avatud"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Tööprofiilidele rakendamine"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Rakendab märguannete rahunemise seaded teie isiklikult profiililt teie tööprofiilile"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR-abilise teenused"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Ükski installitud rakendus pole taotlenud VR-abilise teenusena käitamist."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Kas lubada VR-teenuse juurdepääs teenusele <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Luba juurdepääs kõikide failide haldamisele"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Sellel rakendusel lubatakse lugeda, muuta ja kustutada kõiki selles seadmes ning ühendatud andmekandjatel olevaid faile. Loa andmisel võib rakendus failidele juurde pääseda ilma teie teadmata."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Pääseb failidele juurde"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Häälaktiveeritavad rakendused"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Luba häälaktiveerimine"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Häälega aktiveerimine lülitab sisse kinnitatud rakendused, vabakäerežiimi ja häälkäskluste kasutamise. Sisseehitatud kohanduv tuvastamine tagab, et andmed jäävad teie jaoks privaatseks.\n\n"<a href="">"Lisateave turvalise kohanduva tuvastamise kohta"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Kogu ekraani katvad märguanded"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Luba selle rakenduse kogu ekraani katvad märguanded"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Lubage sellel rakendusel kuvada kogu ekraani katvaid märguandeid, kui seade on lukustatud. Rakendused võivad selle abil tõsta esile alarme, sissetulevaid kõnesid või muid pakilisi märguandeid."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> kasutas taustal tavapärasest rohkem akut"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> kasutas esiplaanil rohkem akut"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> kasutas esiplaanil tavapärasest rohkem akut"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Suur akukasutus"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Suur akukasutus taustal"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Suur akukasutus esiplaanil"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"süsteemis navigeerimine, kahe nupuga navigeerimine, kolme nupuga navigeerimine, liigutustega navigeerimine, pühkimine"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Digitaalne assistent"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Assistendi käivitamiseks pühkimine"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Pühkige ekraanikuva alanurgast üles, et digitaalse assistendi rakendus käivitada."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Assistendi kasutamiseks nupu Avakuva allhoidmine"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Vajutage avakuva nuppu pikalt, et digitaalse assistendi rakendus käivitada."</string>
     <string name="low_label" msgid="6525629096999711220">"Väike"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"andmesideteenus, pääsuvõti, parool"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"automaatne, täitmine, automaattäide, andmed, pääsuvõti, parool"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Veenduge, et rakendus oleks usaldusväärne&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google\'i automaatne täitmine&gt;%1$s&lt;/xliff:g&gt; kasutab automaatse täitmise sisestuse määramiseks ekraanil kuvatut."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Kas kasutada rakendust &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; kasutab teie ekraanil olevat sisu, et määratleda, mida saab automaatselt täita. Uued paroolid, pääsuvõtmed ja muu teave salvestatakse edaspidi siia."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Use &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Uued paroolid, pääsuvõtmed ja muu teave salvestatakse edaspidi siia. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; võib kasutada teie ekraanil kuvatut, et otsustada, millise osa saab automaatselt täita."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Paroolid, pääsuvõtmed ja andmesideteenused"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Kas lülitada %1$s välja?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Kas lülitada see teenus välja?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Salvestatud teavet, nagu paroolid, pääsuvõtmed, makseviisid ja muu teave, sisselogimisel ei täideta. Salvestatud teabe kasutamiseks valige üks paroolide, pääsuvõtmete või andmete talletamise teenus."</string>
@@ -4226,10 +4338,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <string name="enable_angle_as_system_driver" msgid="4648827560023949786">"Katseline: ANGLE-i lubamine"</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Hoiatus: selle seadega lubate ANGLE-i OpenGL ES-i vaikedraiverina. See funktsioon on katseline ning ei pruugi mõne kaamera- ja videorakendusega ühilduda."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"Süsteemi OpenGL ES-i draiveri muutmiseks on vajalik taaskäivitamine"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Rakenduste ühilduvuse muudatused"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Rakenduse ühilduvuse muudatuste lüliti"</string>
@@ -4858,4 +4968,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Petturlike rakenduste skannimine"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Rakenduse tegevuste kontrollimine andmepüügi suhtes"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Kasuta petturlike rakenduste tuvastamiseks skannimist"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Kasuta tööl petturlike rakenduste tuvastamiseks skannimist"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-eu/arrays.xml b/res/values-eu/arrays.xml
index dcb153c..fe370f3 100644
--- a/res/values-eu/arrays.xml
+++ b/res/values-eu/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Minutu bat igarotakoan"</item>
     <item msgid="1574040255478150028">"Bost minutu igarotakoan"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index fc99009..55a27df 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -112,14 +112,15 @@
     <string name="bluetooth_disable_hw_offload_dialog_cancel" msgid="3663690305043973720">"Utzi"</string>
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Desgaitu Kontsumo txikiko Bluetooth bidezko audioa"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Kontsumo txikiko Bluetooth bidezko audioa darabilten hardware-gaitasunak gailuarekin bateragarriak badira, Kontsumo txikiko Bluetooth bidezko audioa eginbidea desgaitzen du."</string>
-    <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Erakutsi kontsumo txikiko Bluetooth bidezko audioaren etengailua gailuaren xehetasunetan"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Gaitu kontsumo txikiko Bluetooth bidezko audioaren Onartutakoen zerrenda"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Gaitu kontsumo txikiko Bluetooth bidezko audioaren Onartutakoen zerrenda eginbidea."</string>
+    <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Erakutsi kontsumo txikiko audioaren etengailua gailuaren xehetasunetan"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Ez aplikatu kontsumo txikiko Bluetooth bidezko audioaren baimendutakoen zerrenda"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Erabili kontsumo txikiko audioa modu lehenetsian, hura darabilen gailu periferikoak baimendutakoen zerrendako irizpideak betetzen dituen egiaztatu ez bada ere."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Multimedia-gailuak"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Deiak jaso eta egiteko gailuak"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Beste gailu batzuk"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Gordetako gailuak"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Kontuarekin erlazionatuta"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Aurretik erabili da kontuarekin"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth bidezko konexioa aktibatuko da parekatu ahal izateko"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Konexio-hobespenak"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Aurretik konektatutakoak"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Idatzi testu-eremuetan"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Egin ez ikusi arkatzarekin sakatzen diren botoi guztiei"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Arkatza"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Audioa partekatzea"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Partekatu audioa"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Deiak eta alarmak"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Data eta ordua"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxya"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Garbitu"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Lortu kokapen-ezarpenei buruzko informazio gehiago"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Kontuak"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Segurtasuna"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Enkriptatzea eta kredentzialak"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Laneko profila"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Eremu pribatua"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Ezkutatu aplikazioak karpeta pribatu batean"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Desblokeatu pantailaren blokeoaren bidez"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Erakutsi eremu pribatua"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Ezkutatu blokeatuta dagoenean"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Ezkutatu Eremu pribatua blokeatuta dagoenean"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Inork jakin ez dezan gailuan Eremu pribatua daukazula, aplikazio-zerrendatik ezkuta dezakezu"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Atzitu Eremu pribatua ezkutatuta dagoenean ere"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Bilatu \"Eremu pribatua\" bilaketa-barran"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Sakatu eremu pribatuaren lauza"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Desblokeatu Eremu pribatua"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Desaktibatuta"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Aktibatuta"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Sistema"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Sortu eremu pribatua"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Ezabatu eremu pribatua"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Sortu da eremu pribatua"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Badago eremu pribatua"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Ezin izan da sortu eremu pribatua"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Ezabatu da eremu pribatua"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Ezin izan da ezabatu eremu pribatua"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Ezarri pantailaren blokeoa"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Eremu pribatua erabiltzeko, ezarri pantaila blokeatzeko aukera bat gailuan."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Ezarri pantailaren blokeoa"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Utzi"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Utzi"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Konfiguratu"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Konfiguratu Eremu pribatua"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Ezkutatu aplikazio pribatuak eremu seguru batean, zuk soilik atzitu ahal izateko"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Nola funtzionatzen du?"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Eremu pribatua aplikazio-zerrendaren behealdetik atzi dezakezu"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Eremu pribatuko aplikazioak blokeo bidez babesten dira"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Eremu pribatua blokeatuta badago, hango aplikazioen jakinarazpenak ezkutatzen dira"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Eremu pribatua blokeatuta badago, hango aplikazioak ez dira agertuko baimenen kudeatzailean, pribatutasun-panelean eta beste ezarpenetan"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Eremu pribatua konfiguratzen…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Eremu pribatua blokeo bidez babestuta dago"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Eremu pribatuko aplikazioei buruzko erabilera-informazioa ezkutatuta dago eremu pribatua blokeatuta dagoenean"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Atzitu eremu pribatua aplikazioen zerrendatik"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Ezin izan da konfiguratu eremu pribatua"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Saiatu berriro edo itzuli geroago"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Saiatu berriro"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Pantailaren blokeoa erabili desblokeatzeko?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Gailua desblokeatzeko darabilzun modu berarekin desblokea dezakezu eremu pribatua. Bestela, aukeratu beste blokeo bat."</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Erabili pantailaren blokeoa"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Aukeratu beste blokeo bat"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Dena prest!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Eremu pribatua atzitzeko, pasatu hatza hasierako pantailaren behealdetik gora eta egin behera"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Eginda"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Egin behera eremu pribatua atzitzeko"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Eremu pribatua konfiguratzeko, hasi saioa"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"<xliff:g id="COUNT">%d</xliff:g> hartz-marka gehi ditzakezu gehienez"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Iritsi zara onartzen den gehieneko hatz-marka kopurura"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Ezin duzu gehitu beste hatz-markarik"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Konektatu"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Deskonektatu"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Parekatu eta konektatu"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Bluetootha aktibatuta badago, inguruko Bluetooth bidezko gailuekin komunika daiteke gailua."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Bluetootha aktibatuta dagoenean, inguruan dauden Bluetooth bidezko beste gailu batzuekin komunika daiteke gailua.\n\nGailuaren erabilera hobetzeko, aplikazioek eta zerbitzuek inguruko gailuak bilatzen jarraituko dute Bluetootha desaktibatuta badago ere. Besteak beste, kokapenean oinarritutako eginbideak eta zerbitzuak hobetzeko erabil daiteke aukera hori. Aldatzeko, joan Bluetooth bidezko bilaketaren ezarpenetara."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Aldatu"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Gailuaren xehetasunak"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Eman aratz daitezkeen aplikazioen byte-kodea egiaztatzeko baimena ART egiaztatzaileari"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Erakutsi freskatze-abiadura"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Erakutsi pantailaren freskatze-abiadura"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Erakutsi HDR/SDR erlazioa"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Erakutsi oraingo HDR/SDR erlazioa"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFCa"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Behartu gailua desblokeatzera NFCa erabiltzeko"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -962,7 +1038,7 @@
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Gailurik konektatuta ez dagoenean"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Hedatu bateragarritasuna"</string>
     <string name="wifi_hotspot_maximize_compatibility_single_ap_summary" msgid="383355687431591441">"Wifi-gune hau aurkitzen laguntzen die beste gailuei. Wifi-gunearen konexio-abiadura murrizten du."</string>
-    <string name="wifi_hotspot_maximize_compatibility_dual_ap_summary" msgid="3579549223159056533">"Wifi-gune hau aurkitzen laguntzen die beste gailuei. Bateria-erabilera areagotzen du."</string>
+    <string name="wifi_hotspot_maximize_compatibility_dual_ap_summary" msgid="3579549223159056533">"Wifi-gune hau aurkitzen laguntzen die beste gailuei. Bateria gehiago erabiltzen du."</string>
     <string name="wifi_hotspot_speed_title" msgid="8629448084180512685">"Abiadura eta bateragarritasuna"</string>
     <string name="wifi_hotspot_speed_summary_2g" msgid="5063438001736234858">"2,4 GHz / Gailu gehienekin bateragarria"</string>
     <string name="wifi_hotspot_speed_summary_5g" msgid="6221158936983135040">"5 GHz / Gailu askorekin bateragarria."</string>
@@ -1060,11 +1136,11 @@
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Desaktibatuta"</string>
     <string name="display_white_balance_title" msgid="2624544323029364713">"Pantailaren zuri-balantzea"</string>
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
-    <string name="fold_lock_behavior_title" msgid="786228803694268449">"Jarraitu aplikazioak gailua tolestuta egon bitartean erabiltzen"</string>
+    <string name="fold_lock_behavior_title" msgid="786228803694268449">"Jarraitu aplikazioak erabiltzen gailua tolestuta egon bitartean"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Automatikoki igotzen du freskatze-abiadura 60 Hz-tik <xliff:g id="ID_1">%1$s</xliff:g> Hz-ra zenbait edukitarako. Bateria-erabilera luzatzen du."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Zenbait edukiren freskatze-abiadura <xliff:g id="ID_1">%1$d</xliff:g> Hz-eraino igotzen du automatikoki. Bateria gehiago erabiltzen du."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Erabili gehieneko freskatze-abiadura"</string>
-    <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Freskatze-abiadura handiena, ukipenei erantzuteko gaitasuna eta animazioen kalitatea hobetzeko. Bateria-erabilera areagotzen du."</string>
+    <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Freskatze-abiadura handiena, ukipenei erantzuteko gaitasuna eta animazioen kalitatea hobetzeko. Bateria gehiago erabiltzen du."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Pantaila kontzientea"</string>
     <string name="adaptive_sleep_title_no_permission" msgid="1719759921214237016">"Kamera erabiltzeko baimena behar da"</string>
     <string name="adaptive_sleep_summary_no_permission" msgid="5822591289468803691">"Pantaila kontzienteak kamera erabiltzeko baimena behar du. Sakatu gailua pertsonalizatzeko zerbitzuen baimenak kudeatzeko"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Ezarpen komunak"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APNak"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Editatu sarbide-puntua"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Gehitu sarbide-puntu bat"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Ezarri gabe"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Ez da ezarri"</string>
     <string name="apn_name" msgid="6677695784108157953">"Izena"</string>
@@ -1320,6 +1397,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APNa gaituta"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APNa desgaituta"</string>
     <string name="bearer" msgid="3231443241639159358">"Jabea"</string>
+    <string name="network_type" msgid="748590707422733595">"Sare mota"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Zehaztugabea"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO mota"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO balioa"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Ezabatu APNa"</string>
@@ -1766,7 +1845,7 @@
     <string name="gesture_summary_go_home" msgid="6409031586904205741">"Ukipen-panelean, pasatu hiru hatz gora"</string>
     <string name="gesture_title_go_back" msgid="6619462058488419802">"Atzera egin"</string>
     <string name="gesture_summary_go_back" msgid="4981604277892236888">"Pasatu hiru hatz ezkerraldetik edo eskuinaldetik"</string>
-    <string name="gesture_title_recent_apps" msgid="6082688963233208761">"Azken aplikazioak ikusi"</string>
+    <string name="gesture_title_recent_apps" msgid="6082688963233208761">"Azkenaldiko aplikazioak ikusi"</string>
     <string name="gesture_summary_recent_apps" msgid="6643179135202417509">"Pasatu hiru hatz gora, eduki pantaila sakatuta eta altxatu hatzak"</string>
     <string name="gesture_title_notifications" msgid="791717222472350194">"Jakinarazpenak eta Ezarpen bizkorrak ikusi"</string>
     <string name="gesture_summary_notifications" msgid="8419514601638387255">"Hasierako pantailan, pasatu hiru hatz behera"</string>
@@ -1780,7 +1859,7 @@
     <string name="trackpad_go_back_summary" msgid="4201901101085902768">"Pasatu hiru hatz ezkerrera edo eskuinera"</string>
     <string name="trackpad_go_home_title" msgid="2146525662148291552">"Joan hasierako pantailara"</string>
     <string name="trackpad_go_home_summary" msgid="2222744701528360887">"Pasatu hiru hatz gora"</string>
-    <string name="trackpad_recent_apps_title" msgid="8195970908411585445">"Azken aplikazioak"</string>
+    <string name="trackpad_recent_apps_title" msgid="8195970908411585445">"Azkenaldiko aplikazioak"</string>
     <string name="trackpad_recent_apps_summary" msgid="2685092851677573794">"Pasatu hiru hatz gora eta eduki pantaila sakatuta"</string>
     <string name="trackpad_notifications_title" msgid="3521663305043747880">"Jakinarazpenak"</string>
     <string name="trackpad_notifications_summary" msgid="7663647367648690040">"Pasatu hiru hatz behera"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Erabili Erabilerraztasuna botoia irekitzeko"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Irekitzeko, eduki sakatuta bolumen-botoiak"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Irekitzeko, sakatu pantaila hiru aldiz"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Irekitzeko, sakatu pantaila 3 aldiz 2 hatzekin"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Erabili keinua irekitzeko"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Erabili erabilerraztasun-keinua"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Eginbide hau erabiltzeko, sakatu pantailaren behealdeko <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> Erabilerraztasuna botoia.\n\nEginbide batetik bestera aldatzeko, eduki sakatuta Erabilerraztasuna botoia."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Eginbide hau erabiltzeko, sakatu pantailako Erabilerraztasuna botoia."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Eginbide hau erabiltzeko, eduki sakatuta bi bolumen-botoiak."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Luparen eginbidea abiarazteko eta gelditzeko, sakatu hiru aldiz pantailako edozein puntu."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Luparen eginbidea abiarazteko eta gelditzeko, sakatu 3 aldiz pantailako edozein puntu 2 hatzekin."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Eginbide hau erabiltzeko, pasatu bi hatz pantailaren behealdetik gorantz.\n\nEginbide batetik bestera aldatzeko, pasatu bi hatz gorantz eta eduki pantaila sakatuta."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Eginbide hau erabiltzeko, pasatu hiru hatz pantailaren behealdetik gorantz.\n\nEginbide batetik bestera aldatzeko, pasatu hiru hatz gorantz eta eduki pantaila sakatuta."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Erabilerraztasun-eginbide bat erabiltzeko, pasatu bi hatz pantailaren behealdetik gorantz.\n\nEginbide batetik bestera aldatzeko, pasatu bi hatz gorantz eta eduki pantaila sakatuta."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Eduki sakatuta bolumen-botoiak"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"eduki sakatuta 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_triple_tap" msgid="6687765191490040899">"Sakatu pantaila 3 aldiz 2 hatzekin"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"sakatu pantaila 3 aldiz 2 hatzekin"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"sakatu pantaila hiru aldiz"</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>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Erabili dardara eta teknologia haptikoa"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Alarmen dardara"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Multimedia-edukiaren dardara"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Teklatuaren dardara"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Tonuaren dardara"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Jakinarazpenen dardara"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Ukipen bidezko interakzioa"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"Geratzen den denbora: <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"Kargatu arteko denbora: <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g>"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Erabilera-denbora"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Atzeko planoan igarotako denbora"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Bateria gutxi"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Eman atzeko planoan exekutatzeko baimena aplikazioari"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Atzeko planoko jarduerak mugatu nahi dituzu?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Aplikazio baten atzeko planoko jarduerak mugatzen badituzu, baliteke aplikazioak behar bezala ez funtzionatzea"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Aplikazio hau bateria optimizatzeko konfiguratuta ez dagoenez, ezin duzu mugatu.\n\nMugatzeko, aktibatu bateriaren optimizazioa."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Kudeatu bateria-erabilera"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Eman atzeko planoan erabiltzeko baimena"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Gaitu denbora errealeko berritasunak jasotzeko eta desgaitu bateria aurrezteko"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Mugagabea"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Optimizatua"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Mugatua"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"guztiz kargatu zenetik"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Sistemaren aplikazioak"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Desinstalatutako aplikazioak"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Beste batzuk"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Geratzen den denbora estimatua"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"guztiz kargatu arte"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Guztira: minutu bat baino gutxiago"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Atzeko planoa: minutu bat baino gutxiago"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Erabilera-denbora: minutu bat baino gutxiago"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Minutu bat baino gutxiago"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Guztira: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Atzeko planoa: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Erabilera-denbora: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Datu- eta wifi-konexioa"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Sinkr. datu pertsonalak auto."</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Sinkronizatu laneko datuak auto."</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Sinkronizatu datu pribatuak automatikoki"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Aldatu zikloa…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Datu-erabilera-zikloa berrezarri beharreko hilabeteko eguna:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Ez dago epean daturik erabili duen aplikaziorik."</string>
@@ -2927,7 +3020,7 @@
     <string name="connected_devices_dashboard_android_auto_no_nfc_no_driving_mode" msgid="1672426693308438634">"Bluetootha, Android Auto"</string>
     <string name="nfc_and_payment_settings_payment_off_nfc_off_summary" msgid="7132040463607801625">"Ez dago erabilgarri NFC desaktibatuta dagoelako"</string>
     <string name="nfc_and_payment_settings_no_payment_installed_summary" msgid="4879818114908207465">"Erabiltzeko, instalatu ordainketak egiteko aplikazio bat"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="8047683010984186106">"Azken aplikazioak, aplikazio lehenetsiak"</string>
+    <string name="app_and_notification_dashboard_summary" msgid="8047683010984186106">"Azkenaldiko aplikazioak, aplikazio lehenetsiak"</string>
     <string name="notification_settings_work_profile" msgid="6076211850526353975">"Laneko profilaren aplikazioek ezin dituzte atzitu jakinarazpenak."</string>
     <string name="account_dashboard_title" msgid="8228773251948253914">"Pasahitzak eta kontuak"</string>
     <string name="account_dashboard_default_summary" msgid="1730719656099599488">"Gordetako pasahitzak, betetze automatikoa, sinkronizatutako kontuak"</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"testuaren tamaina, letra-tipo handia, letra handia, testu handia, ikusmen txarra, handitu testua, testua handitzea, letra handitzea, letra handiagoa"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"girotzeko irudia beti aktibatuta, pantaila etengabe piztuta mantentzeko eginbidea"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc-a, etiketa, irakurgailua"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"teklatua, teknologia haptikoa, dardara"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Bolumena, dardara, ez molestatzeko modua"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Multimedia-edukiaren bolumena"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Igorpenaren bolumena"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Erakutsi jakinarazpenen eduki osoa"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Erakutsi kontuzko edukia pantaila desblokeatuta dagoenean soilik"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Ez erakutsi jakinarazpenik"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Nola nahi duzu pantaila blokeatua bistaratzea?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Pantaila blokeatua"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Erakutsi eduki guztia laneko jakinarazpenetan"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Ezkutatu laneko kontuzko informazioa"</string>
@@ -3354,6 +3449,17 @@
     <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="6121016426991791557">"Jakinarazpenen bolumena jaisteko aldia"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Aplikatu bolumena jaisteko aldia jakinarazpen guztiei"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Jaitsi jakinarazpenen bolumena pixkanaka, aplikazio berak jakinarazpen ugari jarraian bidaltzen dizkizunean"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Aplikatu bolumena jaisteko aldia elkarrizketa guztiei"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Jaitsi jakinarazpenen bolumena pixkanaka, txat berean mezu ugari jarraian jasotzen dituzunean"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Ez aplikatu jakinarazpenen bolumena jaisteko aldia"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Ez jaitsi jakinarazpenen bolumena inoiz, aplikazio berak jakinarazpen ugari jarraian bidatzen badizkit ere"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Egin dardara desblokeatuta dagoenean"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Egin dardara pantaila desblokeatuta dagoenean soilik"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Aplikatu laneko profiletan"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Aplikatu profil pertsonaleko jakinarazpenen bolumena jaisteko ezarpenak laneko profilean"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Errealitate birtualeko laguntza-zerbitzuak"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Ez dago errealitate birtualeko laguntza-zerbitzu gisa abiaraztea eskatu duen aplikaziorik instalatuta."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Errealitate birtualeko zerbitzuak erabiltzeko baimena eman nahi diozu <xliff:g id="SERVICE">%1$s</xliff:g> zerbitzuari?"</string>
@@ -3371,7 +3477,7 @@
     <string name="interact_across_profiles_summary_allowed" msgid="1365881452153799092">"Konektatuta"</string>
     <string name="interact_across_profiles_summary_not_allowed" msgid="5802674212788171790">"Konektatu gabe"</string>
     <string name="interact_across_profiles_empty_text" msgid="419061031064397168">"Ez dago aplikaziorik konektatuta"</string>
-    <string name="interact_across_profiles_keywords" msgid="5996472773111665049">"gurutzatu profila konektatutako aplikazioak laneko aplikazioa eta aplikazio pertsonala"</string>
+    <string name="interact_across_profiles_keywords" msgid="5996472773111665049">"profilartekoa konektatutako aplikazioak laneko aplikazioa eta aplikazio pertsonala"</string>
     <string name="interact_across_profiles_switch_enabled" msgid="7294719120282287495">"Konektatuta"</string>
     <string name="interact_across_profiles_switch_disabled" msgid="4312196170211463988">"Konektatu aplikazioak"</string>
     <string name="interact_across_profiles_summary_1" msgid="6093976896137600231">"Konektatutako aplikazioek baimenak partekatzen dituzte eta batak bestearen datuak atzitu ahal dituzte."</string>
@@ -3621,7 +3727,7 @@
     <string name="filter_notif_blocked_apps" msgid="1065653868850012325">"Desaktibatuta"</string>
     <string name="advanced_apps" msgid="7643010673326578815">"Aurreratuak"</string>
     <string name="app_permissions" msgid="8666537659217653626">"Baimenen kudeatzailea"</string>
-    <string name="app_data_sharing_updates_title" msgid="1694297952320402788">"Kokapen-datuak partekatzeko moduaren inguruko berritasunak"</string>
+    <string name="app_data_sharing_updates_title" msgid="1694297952320402788">"Kokapen-datuak partekatzeko aukeraren berritasunak"</string>
     <string name="app_data_sharing_updates_summary" msgid="4465929918457739443">"Berrikusi kokapen-datuak partekatzeko modua aldatu duten aplikazioak"</string>
     <string name="tap_to_wake" msgid="3313433536261440068">"Sakatu aktibatzeko"</string>
     <string name="tap_to_wake_summary" msgid="6641039858241611072">"Sakatu birritan pantailako edozein puntu gailua aktibatzeko"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Eman fitxategi guztiak kudeatzeko baimena"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Eman gailuko edo konektatutako biltegiratze-unitateetako fitxategiak irakurtzeko, aldatzeko eta ezabatzeko baimena aplikazioari. Baimena emanez gero, baliteke aplikazioak fitxategiak atzitzea zuk jakin ez arren."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Fitxategi guztiak atzi ditzake"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Ahots bidez aktibatzen diren aplikazioak"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Eman ahots bidezko aktibazioa erabiltzeko baimena"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Ahots bidezko aktibazioarekin, onartutako aplikazioak aktibatzen dira eskurik erabili gabe, ahozko aginduen bidez. Hautemate egokitu integratuari esker, zuk bakarrik atzitu ahal izango dituzu datuak.\n\n"<a href="">"Hautemate egokitu babestuari buruzko informazio gehiago"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Pantaila osoko jakinarazpenak"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Eman pantaila osoko jakinarazpenak erakusteko baimena aplikazioari"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Eman gailua blokeatuta dagoenean pantaila osoa hartzen duten jakinarazpenak erakusteko baimena aplikazioari. Alarmen, sarrerako deien edo bestelako premiazko jakinarazpenen berri emateko erabil dezakete aplikazioek."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> aplikazioak ohi baino bateria gehiago erabili du atzeko planoan"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> aplikazioak bateria gehiago erabili du aurreko planoan"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> aplikazioak ohi baino bateria gehiago erabili du aurreko planoan"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Bateriaren erabilera handia"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Bateriaren atzeko planoko erabilera handia"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Bateriaren aurreko planoko erabilera handia"</string>
@@ -3980,7 +4091,7 @@
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Laneko profilaren ezarpenak"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Bilatu laneko kontaktuak aplikazio pertsonaletan"</string>
     <string name="managed_profile_contact_search_summary" msgid="4974727886709219105">"IKT saileko administratzailea bilaketak eta sarrerako deiak ikusteko gai izango da, agian"</string>
-    <string name="cross_profile_calendar_title" msgid="7570277841490216947">"Profilekin sinkronizatutako egutegia"</string>
+    <string name="cross_profile_calendar_title" msgid="7570277841490216947">"Profilarteko egutegia"</string>
     <string name="cross_profile_calendar_summary" msgid="8856185206722860069">"Erakutsi laneko gertaerak egutegi pertsonalean"</string>
     <string name="managed_profile_settings_footer" msgid="996500759305118103">"Laneko aplikazioak desaktibatuta daudenean, pausatuta daude. Gainera, ezin dira atzitu, eta ez duzu jasoko haien jakinarazpenik."</string>
     <string name="automatic_storage_manager_settings" msgid="519158151463974656">"Kudeatu memoria"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"sisteman nabigatzeko modua, sistemako nabigazioa, bi botoiko nabigazioa, hiru botoiko nabigazioa, keinu bidezko nabigazioa"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Laguntzaile digitala"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Laguntzaile digitala abiarazteko, pasatu hatza"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Laguntzaile digitalaren aplikazioa abiarazteko, pasatu hatza beheko izkina batetik gora."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Laguntzailea abiarazteko, eduki sakatuta Hasiera"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Laguntzaile digitalaren aplikazioari deitzeko, eduki sakatuta Hasiera botoia"</string>
     <string name="low_label" msgid="6525629096999711220">"Txikia"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"datuak, sarbide-gakoa, pasahitza"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"automatikoa, bete, betetze automatikoa, datuak, sarbide-gakoa, pasahitza"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Ziurtatu aplikazioa fidagarria dela&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; aplikazioak pantailan dagoena erabiltzen du automatikoki bete daitekeena zehazteko."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;&lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; erabili nahi duzu?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; pantailako edukian oinarritzen da automatikoki zer bete daitekeen erabakitzeko. Pasahitz, sarbide-gako eta bestelako datu berri guztiak hemen gordeko dira hemendik aurrera."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Erabili &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Aurrerantzean, hemen gordeko dira pasahitz, sarbide-gako eta bestelako datu berriak. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; agian pantailako edukian oinarrituko da automatikoki zer bete daitekeen erabakitzeko."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Pasahitzak, sarbide-gakoak eta datu-zerbitzuak"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$s desaktibatu nahi duzu?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Zerbitzu hau desaktibatu nahi duzu?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Saioa hasita eduki arren, ez dira automatikoki beteko pasahitzak, sarbide-gakoak, ordainketa-metodoak, etab. Gordeta daukazun informazioa erabili ahal izateko, aukeratu pasahitzen, sarbide-gakoen edo datuen zerbitzu bat."</string>
@@ -4784,9 +4896,9 @@
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Duela # hilabete baino gehiago instalatutako aplikazioak}other{Duela # hilabete baino gehiago instalatutako aplikazioak}}"</string>
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Aspektu-erlazioa"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"Aplikazioa <xliff:g id="DEVICE_NAME">%1$s</xliff:g> gailura doitzeko diseinatu ez bada, probatu aplikazioa ikusteko beste aspektu-erlazio bat"</string>
-    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Aplikazioa <xliff:g id="DEVICE_NAME">%1$s</xliff:g> gailura doitzeko diseinatu ez bada, probatu aplikazioa ikusteko beste aspektu-erlazio bat. Agian aplikazio batzuk ez daude aspektu-erlazio jakin batzuetarako optimizatuta."</string>
+    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Aplikazioa <xliff:g id="DEVICE_NAME">%1$s</xliff:g> gailura doitzeko diseinatu ez bada, probatu aplikazioa ikusteko beste aspektu-erlazio bat. Aplikazio guztiak ez daude aspektu-erlazio jakin batzuetarako optimizatuta."</string>
     <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Aplikazioak <xliff:g id="DEVICE_NAME">%1$s</xliff:g> gailura doitzeko diseinatu ez badira, probatu aplikazioak ikusteko beste aspektu-erlazio bat"</string>
-    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Aplikazioak <xliff:g id="DEVICE_NAME">%1$s</xliff:g> gailura doitzeko diseinatu ez badira, probatu aplikazioak ikusteko beste aspektu-erlazio bat. Agian aplikazio batzuk ez daude aspektu-erlazio jakin batzuetarako optimizatuta."</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Aplikazioak <xliff:g id="DEVICE_NAME">%1$s</xliff:g> gailura doitzeko diseinatu ez badira, probatu aplikazioak ikusteko beste aspektu-erlazio bat. Aplikazio guztiak ez daude aspektu-erlazio jakin batzuetarako optimizatuta."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Iradokitako aplikazioak"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Aspektu-erlazioa aldatuta daukatenak"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Aplikazioen balio lehenetsia"</string>
@@ -4797,7 +4909,7 @@
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
     <string name="user_aspect_ratio_option_a11y" msgid="1235801996029095219">"<xliff:g id="NUMERATOR">%1$s</xliff:g> bider <xliff:g id="DENOMINATOR">%2$s</xliff:g>"</string>
-    <string name="app_aspect_ratio_footer" msgid="4029509301182067475">"Aspektu-erlazioa aldatzean, aplikazioa berrabiarazi egingo da. Litekeena da gorde gabeko aldaketak galtzea. Agian aplikazio batzuk ez daude aspektu-erlazio jakin batzuetarako optimizatuta."</string>
+    <string name="app_aspect_ratio_footer" msgid="4029509301182067475">"Aspektu-erlazioa aldatzean, aplikazioa berrabiarazi egingo da. Litekeena da gorde ez diren aldaketak galtzea. Aplikazio guztiak ez daude aspektu-erlazio jakin batzuetarako optimizatuta."</string>
     <string name="aspect_ratio_experimental_title" msgid="9088785421062044831">"Aspektu-erlazioa (esperimentala)"</string>
     <string name="aspect_ratio_experiment_title" msgid="128614319422121040">"Aspektu-erlazioa (esperimentua)"</string>
     <string name="aspect_ratio_labs_title" msgid="6733893837442759383">"Aspektu-erlazioa (eginbide esperimentalak)"</string>
@@ -4856,4 +4968,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Azpikeriazko aplikazioak bilatzea"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Bilatu phishinga aplikazioetako jardueretan"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Erabili azpikeriazko aplikazioak bilatzeko aukera"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Erabili laneko aplikazioen artean azpikeriazko aplikazioak bilatzeko aukera"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-fa/arrays.xml b/res/values-fa/arrays.xml
index c04d2b7..ca9f278 100644
--- a/res/values-fa/arrays.xml
+++ b/res/values-fa/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"پس‌از ۱ دقیقه"</item>
     <item msgid="1574040255478150028">"پس‌از ۵ دقیقه"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 28ba506..b060323 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"غیرفعال کردن «صدای بلوتوث کم‌مصرف»"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"اگر دستگاه از ویژگی‌های سخت‌افزار «صدای کم‌مصرف» پشتیبانی کند، ویژگی «صدای بلوتوث کم‌مصرف» را غیرفعال می‌کند."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"نمایش تنظیم «صدای کم‌مصرف» در جزئیات دستگاه"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"فعال کردن فهرست مجاز صدای بلوتوث کم‌مصرف"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"ویژگی فهرست مجاز صدای بلوتوث کم‌مصرف را فعال می‌کند."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"کنار گذاشتن فهرست «صدای بلوتوث کم‌مصرف» مجاز"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"استفاده از «صدای کم‌مصرف» به‌طور پیش‌فرض حتی درصورتی‌که دستگاه جانبی مجهز به «صدای کم‌مصرف» ازلحاظ مطابقت با معیارهای «فهرست مجازها» تأیید نشده باشد"</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"دستگاه‌های ذخیره‌سازی"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"دستگاه‌های برقراری تماس"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"دستگاه‌های دیگر"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"دستگاه‌های ذخیره‌شده"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"مرتبط با حساب"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"قبلاً با حساب استفاده شده است"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"بلوتوث برای جفت کردن روشن خواهد شد"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"اولویت‌های اتصال"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"قبلاً متصل‌شده"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"نوشتن در فیلدهای نوشتاری"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"نادیده گرفتن همه موارد فشردن دکمه قلم"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"قلم"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"هم‌رسانی صدا"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"هم‌رسانی صدا"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"تماس‌ها و زنگ‌های هشدار"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"تاریخ و زمان"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"پروکسی"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"پاک کردن"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"درحال بارگیری…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"برنامه‌هایی که اجازه «دستگاه‌های اطراف» را دارند می‌توانند موقعیت نسبی دستگاه‌های متصل را مشخص کنند."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"دسترسی به مکان برای برنامه‌ها و سرویس‌ها خاموش است. وقتی با شماره تلفن اضطراری تماس می‌گیرید یا به آن پیامک ارسال می‌کنید، ممکن است مکان دستگاهتان همچنان برای مسئولان خدمات اضطراری ارسال شود."</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"درباره «تنظیمات مکان» بیشتر بدانید"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"حساب‌ها"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"امنیت"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"رمزگذاری و اطلاعات اعتباری"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"نمایه کاری"</string>
     <string name="private_space_title" msgid="7078627930195569767">"فضای خصوصی"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"پنهان کردن برنامه‌ها در پوشه خصوصی"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"باز کردن قفل بااستفاده از قفل صفحه"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"نمایش «فضای خصوصی»"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"پنهان کردن هنگام قفل بودن"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"پنهان کردن «فضای خصوصی» هنگام قفل بودن"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"برای اینکه دیگران متوجه نشوند «فضای خصوصی» در دستگاهتان روشن است، می‌توانید آن را از فهرست برنامه‌ها پنهان کنید"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"دسترسی به «فضای خصوصی» هنگام پنهان بودن"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"در نوار جستجو، «فضای خصوصی» را جستجو کنید"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"روی کاشی «فضای خصوصی» ضربه بزنید"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"قفل «فضای خصوصی» را باز کنید"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"خاموش"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"روشن"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"سیستم"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"ایجاد «فضای خصوصی»"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"حذف «فضای خصوصی»"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"«فضای خصوصی» باموفقیت ایجاد شد"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"«فضای خصوصی» ازقبل وجود دارد"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"«فضای خصوصی» ایجاد نشد"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"«فضای خصوصی» باموفقیت حذف شد"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"«فضای خصوصی» حذف نشد"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"قفل صفحه تنظیم کنید"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"برای استفاده از «فضای خصوصی»، قفل صفحه در این دستگاه تنظیم کنید."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"تنظیم قفل صفحه"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"لغو کردن"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"لغو کردن"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"راه‌اندازی"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"راه‌اندازی «فضای خصوصی»"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"برنامه‌های خصوصی را در فضای امنی که فقط خودتان می‌توانید به آن دسترسی داشته باشید پنهان کنید"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"سازوکار عمل"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"می‌توانید از پایین فهرست برنامه‌ها به «فضای خصوصی» دسترسی پیدا کنید"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"از برنامه‌های موجود در «فضای خصوصی» با یک قفل محافظت می‌شود"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"اعلان برنامه‌های موجود در «فضای خصوصی» هنگام قفل بودن آن پنهان می‌شوند"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"درصورت قفل بودن «فضای خصوصی»، برنامه‌های «فضای خصوصی» در مدیر اجازه‌ها، داشبورد حریم خصوصی، و دیگر تنظیمات نشان داده نخواهد شد"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"درحال راه‌اندازی «فضای خصوصی»…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"«فضای خصوصی» با قفل محافظت می‌شود"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"اطلاعات استفاده برای برنامه‌های «فضای خصوصی» هنگام قفل بودن آن پنهان می‌شود"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"دسترسی به «فضای خصوصی» از فهرست برنامه‌ها"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"«فضای خصوصی» راه‌اندازی نشد"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"اکنون دوباره امتحان کنید یا بعداً برگردید"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"امتحان مجدد"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"از قفل صفحه برای باز کردن قفل استفاده شود؟"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"می‌توانید با همان روشی که قفل دستگاهتان را باز می‌کنید قفل «فضای خصوصی» را باز کنید یا قفل دیگری انتخاب کنید"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"استفاده از قفل صفحه"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"انتخاب قفل جدید"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"همه چیز آماده است!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"برای دسترسی به «فضای خصوصی»، از پایین صفحه اصلی به بالا بکشید، سپس به پایین پیمایش کنید"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"تمام"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"برای دسترسی به «فضای خصوصی»، به پایین پیمایش کنید"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"برای راه‌اندازی «فضای خصوصی» به سیستم وارد شوید"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"می‌توانید حداکثر <xliff:g id="COUNT">%d</xliff:g> اثرانگشت اضافه کنید"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"حداکثر تعداد اثرانگشت را اضافه کرده‌اید"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"نمی‌توانید اثرانگشت‌های بیشتری اضافه کنید"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"اتصال"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"قطع اتصال"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"مرتبط‌سازی و اتصال"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"با بلوتوث روشن، دستگاهتان می‌تواند با دستگاه‌های بلوتوث اطراف در ارتباط باشد."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"با بلوتوث روشن، دستگاهتان می‌تواند با دستگاه‌های بلوتوث اطراف در ارتباط باشد"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"وقتی بلوتوث روشن است، دستگاهتان می‌تواند با دیگر دستگاه‌های بلوتوث اطراف ارتباط برقرار کند.\n\nبرای بهبود تجربه استفاده از دستگاه، برنامه‌ها و سرویس‌ها همچنان می‌توانند در هرزمانی دستگاه‌های اطراف را اسکن کنند، حتی وقتی بلوتوث خاموش باشد. برای مثال، از این ویژگی می‌توان برای بهبود ویژگی‌ها و سرویس‌های مکان‌مبنا استفاده کرد. می‌توانید این ویژگی را در تنظیمات اسکن دستگاه‌های بلوتوث تغییر دهید."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"تغییر"</string>
     <string name="device_details_title" msgid="1155622417516195481">"جزئیات دستگاه"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"‏به ART برای تأیید بایت‌کد برنامه‌های اشکال‌زدا اجازه داده شود"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"نمایش نرخ بازآوری"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"نمایش نرخ فعلی بازآوری نمایشگر"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"‏نمایش نسبت HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"‏نمایش نسبت فعلی HDR/SDR"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"‏برای استفاده از NFC، باید قفل دستگاه باز باشد"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1060,9 +1135,9 @@
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"خاموش"</string>
     <string name="display_white_balance_title" msgid="2624544323029364713">"تعادل سفیدی نمایشگر"</string>
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
-    <string name="fold_lock_behavior_title" msgid="786228803694268449">"ادامه استفاده از برنامه‌ها درحالت تاخوردگی"</string>
+    <string name="fold_lock_behavior_title" msgid="786228803694268449">"ادامه دادن به استفاده از برنامه‌ها درحالت تاخوردگی"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"نمایشگر روان"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"به‌طور خودکار نرخ بازآوری را برای بعضی محتوا، از ۶۰ هرتز تا <xliff:g id="ID_1">%1$s</xliff:g> هرتز بالا می‌برد. مصرف باتری را افزایش می‌دهد."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"به‌طور خودکار نرخ بازآوری را برای بعضی محتوا تا <xliff:g id="ID_1">%1$d</xliff:g> هرتز بالا می‌برد. مصرف باتری را افزایش می‌دهد."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"اعمال بالاترین نرخ بازآوری"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"بالاترین نرخ بازآوری برای پاسخ‌گویی بهبودیافته لمس و کیفیت پویانمایی. مصرف باتری را افزایش می‌دهد."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"توجه به صفحه"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"تنظیمات عمومی"</string>
     <string name="apn_settings" msgid="4295467389400441299">"نام‌های نقاط دستیابی"</string>
     <string name="apn_edit" msgid="2003683641840248741">"ویرایش نقطه دستیابی"</string>
+    <string name="apn_add" msgid="9069613192201630934">"افزودن نقطه دسترسی"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"تنظیم نشده است"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"تنظیم‌نشده"</string>
     <string name="apn_name" msgid="6677695784108157953">"نام"</string>
@@ -1320,6 +1396,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"نام نقطه دستیابی فعال است"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"نام نقطه دستیابی غیرفعال است"</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>
     <string name="mvno_match_data" msgid="5213193073684321156">"‏مقدار MVNO"</string>
     <string name="menu_delete" msgid="9199740901584348273">"حذف نام نقطه دستیابی"</string>
@@ -1596,7 +1674,7 @@
     <string name="auto_launch_label" msgid="4069860409309364872">"باز کردن به‌صورت پیش‌فرض"</string>
     <string name="auto_launch_label_generic" msgid="5033137408273064599">"پیش‌فرض‌ها"</string>
     <string name="screen_compatibility_label" msgid="7549658546078613431">"سازگاری با صفحه‌نمایش"</string>
-    <string name="permissions_label" msgid="1708927634370314404">"مجوزها"</string>
+    <string name="permissions_label" msgid="1708927634370314404">"اجازه‌ها"</string>
     <string name="cache_header_label" msgid="2441967971921741047">"حافظهٔ پنهان"</string>
     <string name="clear_cache_btn_text" msgid="8597272828928143723">"پاک کردن حافظهٔ پنهان"</string>
     <string name="cache_size_label" msgid="313456088966822757">"حافظهٔ پنهان"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"استفاده از دکمه دسترس‌پذیری برای باز کردن"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"نگه‌داشتن کلیدهای میزان صدا برای باز کردن"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"برای باز کردن، روی صفحه‌نمایش سه ضربه سریع بزنید"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"برای باز شدن، سه ضربه با دو انگشت رو صفحه‌نمایش بزنید"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"استفاده از اشاره برای باز کردن"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"استفاده از اشاره دسترس‌پذیری"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"برای استفاده از این ویژگی، روی دکمه دسترس‌پذیری <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> در پایین صفحه ضربه بزنید.\n\nبرای جابه‌جایی بین ویژگی‌ها، دکمه دسترس‌پذیری را لمس کنید و نگه دارید."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"برای استفاده از این ویژگی، روی دکمه دسترس‌پذیری در صفحه‌نمایش ضربه بزنید."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"برای استفاده از این ویژگی، هر دو کلید میزان صدا را فشار دهید و نگه دارید."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"برای راه‌اندازی یا متوقف کردن درشت‌نمایی، روی جایی از صفحه‌نمایش سه ضربه بزنید."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"برای راه‌اندازی یا متوقف کردن درشت‌نمایی، روی جایی از صفحه‌نمایش با دو انگشت سه ضربه بزنید."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"برای استفاده از این ویژگی، با ۲ انگشت از پایین صفحه تند به‌بالا بکشید.\n\nبرای جابه‌جایی بین ویژگی‌ها، با ۲ انگشت تند به‌بالا بکشید و نگه دارید."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"برای استفاده از این ویژگی، با ۳ انگشت از پایین صفحه تند به‌بالا بکشید.\n\nبرای جابه‌جایی بین ویژگی‌ها، با ۳ انگشت تند به‌بالا بکشید و نگه دارید."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"برای استفاده از ویژگی دسترس‌پذیری، با ۲ انگشت از پایین صفحه تند به‌بالا بکشید.\n\nبرای جابه‌جایی بین ویژگی‌ها، با ۲ انگشت تند به‌بالا بکشید و نگه دارید."</string>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"نگه‌داشتن کلیدهای میزان صدا"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"نگه داشتن کلیدهای میزان صدا"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"هردو کلید میزان صدا را فشار دهید و نگه دارید"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"سه ضربه با دو انگشت روی صفحه"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"سه ضربه با دو انگشت روی صفحه"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"‏با دو انگشت {0,number,integer} بار به‌سرعت روی صفحه ضربه بزنید"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"روی صفحه‌نمایش سه ضربه سریع بزنید"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"سه ضربه سریع روی صفحه"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"‏سریع روی صفحه‌نمایش {0,number,integer} بار ضربه بزنید. ممکن است این میان‌بر سرعت دستگاه را کاهش دهد"</string>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"استفاده از لرزش و فناوری لمسی"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"لرزش هشدار"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"لرزش رسانه‌ها"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"لرزش صفحه‌کلید"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"لرزش هنگام زنگ خوردن"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"لرزش برای اعلان"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"بازخورد لمسی"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> مانده"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> مانده تا شارژ کامل"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"مدت تماشای صفحه"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"زمان در پس‌زمینه"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"باتری ضعیف است"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"به برنامه اجازه دهید در پس‌زمینه اجرا شود"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"فعالیت پس‌زمینه محدود شود؟"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"محدود کردن فعالیت پس‌زمینه برای برنامه ممکن است باعث عملکرد نادرست آن شود."</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"از آنجا که این برنامه برای بهینه کردن باتری تنظیم نشده است، نمی‌توانید آن را محدود کنید.\n\nبرای محدود کردن برنامه، ابتدا بهینه‌سازی باتری را روشن کنید."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"مدیریت مصرف باتری"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"مجاز کردن مصرف در پس‌زمینه"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"فعال کردن برای به‌روزرسانی‌های هم‌زمان، غیرفعال کردن برای صرفه‌جویی در باتری"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"نامحدود"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"بهینه‌سازی‌شده"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"محدودشده"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"از آخرین شارژ کامل"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"برنامه‌های سیستم"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"برنامه‌های حذف نصب‌شده"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"غیره"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"زمان باقی‌مانده تخمینی"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"مانده تا شارژ کامل"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"مجموع: کمتر از یک دقیقه"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"پس‌زمینه: کمتر از یک دقیقه"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"مدت تماشای صفحه: کمتر از یک دقیقه"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"کمتر از یک دقیقه"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"مجموع: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"پس‌زمینه: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"مدت تماشای صفحه: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"‏داده تلفن همراه و Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"همگام‌سازی خودکار داده‌های شخصی"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"همگام‌سازی خودکار داده‌های کاری"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"همگام‌سازی خودکار داده خصوصی"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"تغییر چرخه..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"روزِ تنظیم مجدد چرخه مصرف داده:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"در این مدت، هیچ برنامه‌ای از داده‌ها استفاده نکرده‌ است."</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"اندازه نوشتار، چاپ درشت، قلم بزرگ، نوشتار بزرگ، کم‌بینا، بزرگ کردن نوشتار، بزرگ‌کننده قلم، بزرگ کردن قلم"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"‏نمایشگر محیطی همیشه روشن، AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"‏nfc، برچسب، خوانش‌گر"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"صفحه‌کلید، فناوری لمسی، لرزش،"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"میزان صدا، لرزش، «مزاحم نشوید»"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"میزان صدای رسانه"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"میزان صدای محتوای ارسالی"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"نمایش همه محتوای اعلان"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"نمایش محتوای حساس فقط درصورت باز بودن قفل صفحه"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"هرگز اعلان نشان داده نشود"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"می‌خواهید صفحه قفل چطور نمایش داده شود؟"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"صفحه قفل"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"نمایش همه محتوای اعلان کاری"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"پنهان کردن محتوای کاری حساس"</string>
@@ -3354,6 +3448,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"این برنامه از تنظیمات پیشرفته پشتیبانی نمی‌کند"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"تنظیمات بیشتر"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"تنظیمات بیشتر داخل این برنامه دردسترس است"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"استراحت اعلان"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"اعمال کردن استراحت بر همه اعلان‌ها"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"کاهش تدریجی صدای اعلان‌ها هنگامی که اعلان‌های متوالی زیادی از یک برنامه دریافت می‌کنید"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"اعمال کردن استراحت بر همه مکالمه‌ها"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"کاهش تدریجی صدای اعلان‌ها هنگامی که در مدت‌زمانی کوتاه پیام‌های زیادی از یک گپ دریافت می‌کنید"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"از استراحت اعلان استفاده نشود"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"صرف‌نظر از تعداد اعلان‌های متوالی دریافتی از یک برنامه، هرگز صدای اعلان‌ها کاهش نیابد"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"لرزش در زمانی که قفل صفحه باز می‌شود"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"لرزش فقط در زمانی که قفل صفحه باز می‌شود"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"اعمال کردن بر نمایه‌های کاری"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"اعمال کردن تنظیمات استراحت اعلان از نمایه شخصی به نمایه کاری"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"‏خدمات یاور VR"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"‏هیچ برنامه نصب‌شده‌ای درخواست نکرده به‌عنوان خدمات یاور VR اجرا شود."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"‏به <xliff:g id="SERVICE">%1$s</xliff:g> امکان داده شود به خدمات VR دسترسی یابد؟"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"دسترسی دادن برای مدیریت همه فایل‌ها"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"به این برنامه اجازه می‌دهد همه فایل‌های موجود در این دستگاه یا فضاهای ذخیره‌سازی متصل‌شده به آن را بخواند، تغییر دهد، و حذف کند. اگر این مجوز به برنامه داده شود، ممکن است بدون اطلاع صریح شما به فایل‌ها دسترسی یابد."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"می‌توانند به همه فایل‌ها دسترسی داشته باشند"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"برنامه‌های دارای فعال‌سازی صوتی"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"مجاز کردن فعال‌سازی صوتی"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"فعال‌سازی صوتی برنامه‌های تأییدشده را به‌صورت دست‌آزاد و بااستفاده از فرمان صوتی فعال می‌کند. حسگر تطبیقی داخلی اطمینان حاصل می‌کند که داده‌ها محرمانه می‌ماند و فقط برای شما قابل‌نمایش است.\n\n"<a href="">"اطلاعات بیشتر درباره حسگر تطبیقی محافظت‌شده"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"اعلان‌های تمام‌صفحه"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"اجازه دادن به اعلان‌های تمام‌صفحه از این برنامه"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"به این برنامه اجازه می‌دهد وقتی دستگاه قفل است، اعلان‌ها را روی کل صفحه نشان دهد. برنامه‌ها ممکن است از این قابلیت برای برجسته کردن هشدارها، تماس ورودی، یا دیگر اعلان‌های فوری استفاده کنند."</string>
@@ -3797,9 +3905,9 @@
     <string name="disabled_by_policy_parental_consent" msgid="9166060049019018978">"تلفن را دراختیار ولی‌تان قرار دهید تا تغییر این تنظیم را مجاز کند."</string>
     <string name="default_admin_support_msg" msgid="8816296554831532033">"برای کسب اطلاعات بیشتر، با سرپرست فناوری اطلاعات تماس بگیرید"</string>
     <string name="admin_support_more_info" msgid="8407433155725898290">"جزئیات بیشتر"</string>
-    <string name="admin_profile_owner_message" msgid="8860709969532649195">"سرپرستتان می‌تواند بر برنامه‌ها و داده‌های مرتبط با این نمایه کاری (ازجمله تنظیمات، مجوزها، دسترسی شرکتی، فعالیت شبکه و اطلاعات مکان دستگاه) نظارت داشته باشد و آن‌ها را مدیریت کنید."</string>
-    <string name="admin_profile_owner_user_message" msgid="4929926887231544950">"سرپرستتان می‌تواند بر برنامه‌ها و داده‌های مرتبط با این کاربر (ازجمله تنظیمات، مجوزها، دسترسی شرکتی، فعالیت شبکه و اطلاعات مکان دستگاه) نظارت داشته باشد و آن‌ها را مدیریت کنید."</string>
-    <string name="admin_device_owner_message" msgid="5503131744126520590">"سرپرستتان می‌تواند بر برنامه‌ها و داده‌های مرتبط با این دستگاه (ازجمله تنظیمات، مجوزها، دسترسی شرکتی، فعالیت شبکه و اطلاعات مکان دستگاه) نظارت داشته باشد و آن‌ها را مدیریت کنید."</string>
+    <string name="admin_profile_owner_message" msgid="8860709969532649195">"سرپرستتان می‌تواند بر برنامه‌ها و داده‌های مرتبط با این نمایه کاری (ازجمله تنظیمات، اجازه‌ها، دسترسی شرکتی، فعالیت شبکه و اطلاعات مکان دستگاه) نظارت داشته باشد و آن‌ها را مدیریت کنید."</string>
+    <string name="admin_profile_owner_user_message" msgid="4929926887231544950">"سرپرستتان می‌تواند بر برنامه‌ها و داده‌های مرتبط با این کاربر (ازجمله تنظیمات، اجازه‌ها، دسترسی شرکتی، فعالیت شبکه و اطلاعات مکان دستگاه) نظارت داشته باشد و آن‌ها را مدیریت کنید."</string>
+    <string name="admin_device_owner_message" msgid="5503131744126520590">"سرپرستتان می‌تواند بر برنامه‌ها و داده‌های مرتبط با این دستگاه (ازجمله تنظیمات، اجازه‌ها، دسترسی شرکتی، فعالیت شبکه و اطلاعات مکان دستگاه) نظارت داشته باشد و آن‌ها را مدیریت کنید."</string>
     <string name="admin_financed_message" msgid="1156197630834947884">"سرپرست دستگاهتان می‌تواند به داده‌های مرتبط با این دستگاه دسترسی داشته باشد، برنامه‌ها را مدیریت کند، و تنظیمات این دستگاه‌ها را تغییر دهد."</string>
     <string name="condition_turn_off" msgid="402707350778441939">"خاموش کردن"</string>
     <string name="condition_turn_on" msgid="3911077299444314791">"روشن کردن"</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> در مدتی که در پس‌زمینه بود بیشتر از حالت معمول باتری مصرف کرد"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> در مدتی که در پیش‌زمینه بود باتری بیشتری مصرف کرد"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> در مدتی که در پیش‌زمینه بود بیشتر از حالت معمول باتری مصرف کرد"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"مصرف بالای باتری"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"مصرف بالای باتری در پس‌زمینه"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"مصرف بالای باتری در پیش‌زمینه"</string>
@@ -3955,7 +4065,7 @@
     <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="notification_suggestion_title" msgid="6309263655965785411">"کنترل اطلاعات روی صفحه قفل"</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>
     <string name="developer_smallest_width" msgid="632354817870920911">"کوچک‌ترین عرض"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"پیمایش سیستمی، پیمایش ۲دکمه‌ای، پیمایش ۳ دکمه‌ای، پیمایش اشاره‌ای، تند کشیدن"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"دستیار دیجیتالی"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"تند کشیدن برای فراخواندن دستیار"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"برای فراخواندن برنامه دستیار دیجیتالی، از پایین تند به‌بالا بکشید."</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"برای فراخواندن برنامه دستیار دیجیتالی، از گوشه پایین تند به‌بالا بکشید"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"نگه داشتن کلید «صفحه اصلی» برای فراخواندن «دستیار»"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"برای فراخواندن برنامه دستیار دیجیتالی، دکمه «صفحه اصلی» را فشار دهید و نگه دارید."</string>
     <string name="low_label" msgid="6525629096999711220">"کم"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"داده، گذرکلید، گذرواژه"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"خودکار، تکمیل، تکمیل خودکار، داده، گذرکلید، گذرواژه"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"‏&lt;b&gt;مطمئن شوید به این برنامه اطمینان دارید&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=تکمیل خودکار Google&gt;%1$s&lt;/xliff:g&gt; برای تعیین آنچه که می‌تواند به‌طور خودکار تکمیل شود، از آنچه روی صفحه‌نمایش شما است استفاده می‌کند."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"‏&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_autofill_confirmation_message" msgid="843829628024668466">"‏&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_picker_title" msgid="8191267620665129205">"گذرواژه‌ها، گذرکلیدها، و سرویس‌های داده"</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>
@@ -4449,7 +4559,7 @@
     <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>
-    <string name="privacy_dashboard_summary" msgid="5775090172422786808">"مجوزها، فعالیت حساب، داده‌های شخصی"</string>
+    <string name="privacy_dashboard_summary" msgid="5775090172422786808">"اجازه‌ها، فعالیت حساب، داده‌های شخصی"</string>
     <string name="privacy_controls_title" msgid="1383047169455206604">"کنترل‌ها"</string>
     <string name="contextual_card_dismiss_remove" msgid="8636557343011606722">"حذف"</string>
     <string name="contextual_card_dismiss_keep" msgid="440516181066490747">"حفظ شود"</string>
@@ -4785,10 +4895,8 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"نسبت ابعادی"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"اگر این برنامه متناسب با <xliff:g id="DEVICE_NAME">%1$s</xliff:g> شما طراحی نشده است، نسبت ابعادی جدیدی را برای مشاهده برنامه امتحان کنید"</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"اگر این برنامه متناسب با <xliff:g id="DEVICE_NAME">%1$s</xliff:g> شما طراحی نشده است، نسبت ابعادی جدیدی را برای مشاهده برنامه امتحان کنید. ممکن است برخی‌از برنامه‌ها برای نسبت‌های ابعادی مشخصی بهینه‌سازی نشده باشند."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"اگر برنامه‌ای متناسب با <xliff:g id="DEVICE_NAME">%1$s</xliff:g> شما طراحی نشده است، نسبت ابعادی جدیدی را برای مشاهده آن امتحان کنید"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"اگر برنامه‌ای متناسب با <xliff:g id="DEVICE_NAME">%1$s</xliff:g> شما طراحی نشده است، نسبت ابعادی جدیدی را برای مشاهده آن امتحان کنید. ممکن است بعضی‌از برنامه‌ها برای برخی نسبت‌های ابعادی بهینه‌سازی نشده باشند."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"برنامه‌های پیشنهادی"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"برنامه‌های تغییریافته"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"پیش‌فرض برنامه"</string>
@@ -4858,4 +4966,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"اسکن برای یافتن برنامه‌های گمراه‌کننده"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"بررسی فعالیت برنامه ازنظر رمزگیری"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"استفاده از «اسکن برای یافتن برنامه‌های گمراه‌کننده»"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"استفاده از «اسکن برای یافتن برنامه‌های گمراه‌کننده در نمایه کاری»"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-fi/arrays.xml b/res/values-fi/arrays.xml
index a1707fe..c2ed23b 100644
--- a/res/values-fi/arrays.xml
+++ b/res/values-fi/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"1 minuutin kuluttua"</item>
     <item msgid="1574040255478150028">"5 minuutin kuluttua"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 09ea137..e165b80 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Poista Bluetooth LE audio käytöstä"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Poistaa Bluetooth LE ‑audio-ominaisuuden käytöstä, jos laite tukee LE-audiolaitteistoja"</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Näytä LE Audio ‑valitsin laitetiedoissa"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Ota Bluetooth LE -audion sallittujen lista käyttöön"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Ota Bluetooth LE -audion sallittujen lista käyttöön"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Ohita Bluetooth LE Audio ‑sallitut"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Käytä oletuksena LE Audiota, vaikka LE Audio ‑lisälaitteen ei olisi vahvistettu täyttävän sallitut-listan kriteerejä."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Medialaitteet"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Soittolaitteet"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Muut laitteet"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Tallennetut laitteet"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Liitetty tiliin"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Käytetty viimeksi tilillä"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth käynnistetään parinmuodostusta varten"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Yhteysasetukset"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Aiemmin liitetyt"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Kirjoittaminen tekstikenttiin"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Ohita kaikki näyttökynäpainikkeen painallukset"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Näyttökynä"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Audion jakaminen"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Audion jakaminen"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Puhelut ja hälytykset"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Päivämäärä ja aika"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Välityspalvelin"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Tyhjennä"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Lue lisää sijaintiasetuksista"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Tilit"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Suojaus"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Salaus ja kirjautumistiedot"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Työprofiili"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Yksityinen tila"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Piilota sovellukset yksityiseen kansioon"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Avaaminen näytön lukituksella"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Näytä yksityinen tila"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Piilottaminen lukittuna"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Yksityisen tilan piilottaminen, kun se on lukittuna"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Piilota yksityinen tila piilottamalla se sovelluslistalta"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Pääsy yksityiseen tilaan, kun se on piilotettuna"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Hae hakukentästä \"Yksityinen tila\""</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Napauta Yksityinen tila ‑laattaa"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Avaa yksityisen tilan lukitus"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Pois päältä"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Päällä"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Järjestelmä"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Yksityisen tilan luominen"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Yksityisen tilan poistaminen"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Yksityinen tila luotu"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Yksityinen tila on jo olemassa"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Yksityistä tilaa ei voitu luoda"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Yksityinen tila poistettu"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Yksityistä tilaa ei voitu poistaa"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Näytön lukituksen asettaminen"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Jos haluat käyttää yksityistä tilaa, aseta näytön lukitus."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Aseta näytön lukitus"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Peruuta"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Peruuta"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Ota käyttöön"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Yksityisen tilan ottaminen käyttöön"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Piilota suojatun tilan yksityiset sovellukset, joihin vain sinulla on pääsy"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Näin se toimii"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Saat pääsyn yksityiseen tilaan sovelluslistan alareunasta"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Yksityisen tilan sovelluksia suojataan lukolla"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Ilmoitukset yksityisen tilan sovelluksista ovat piilotettuina, kun se on lukittu"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Yksityisen tilan sovellukset eivät näy lupienhallinnassa, yksityisyydenhallintapaneelissa tai muissa asetuksissa, kun yksityinen tila on lukittuna"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Yksityistä tilaa otetaan käyttöön…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Yksityinen tila suojataan lukolla"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Yksityisen tilan sovellusten käyttötiedot piilotetaan, kun se on lukittu"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Yksityisen tilan käyttö sovelluslistalta"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Yksityisen tilan käyttöönotto epäonnistui"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Yritä uudelleen nyt tai palaa myöhemmin"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Yritä uudelleen"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Käytetäänkö avaamiseen näytön lukitusta?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Voit avata yksityisen tilan lukituksen samaan tapaan kuin avaat laitteen lukituksen tai voit valita eri lukon"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Käytä näytön lukitusta"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Valitse uusi lukko"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Valmis"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Voit käyttää yksityistä tilaa pyyhkäisemällä ylös aloitusnäytön alareunasta ja vierittämällä alas"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Valmis"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Vieritä alas käyttääksesi yksityistä tilaa"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Kirjaudu sisään, niin voit ottaa yksityisen tilan käyttöön"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Voit lisätä korkeintaan <xliff:g id="COUNT">%d</xliff:g> sormenjälkeä"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Et voi lisätä useampia sormenjälkiä."</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Enempää sormenjälkiä ei voi lisätä."</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Yhdistä"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Katkaise yhteys"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Muodosta laitepari ja yhdistä"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Kun Bluetooth on käytössä, laite voi viestiä lähiympäristön Bluetooth-laitteiden kanssa."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Kun Bluetooth on käytössä, laitteesi voi kommunikoida muiden lähellä olevien Bluetooth-laitteiden kanssa.\n\nKun Bluetooth on poissa käytöstä, sovellukset ja palvelut voivat silti hakea lähellä olevia laitteita käyttökokemuksen parantamiseksi. Näin voidaan esimerkiksi kehittää sijaintiin perustuvia ominaisuuksia ja palveluita. Voit muuttaa tätä Bluetooth-haun asetuksissa."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Muuta"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Laitteen tiedot"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Salli ART vahvistaaksesi korjattavien sovellusten tavukoodi"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Näytä päivitysväli"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Näytä nykyisen näytön päivitysväli"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Näytä HDR-/SDR-suhde"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Näytä tämänhetkinen HDR-/SDR-suhde"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Vaadi laitteen lukituksen avaamista NFC:n käyttämiseksi"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Jatka sovellusten käyttöä taitetussa tilassa"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Nostaa tietyn sisällön päivitysvälin automaattisesti 60 hertsistä <xliff:g id="ID_1">%1$s</xliff:g> hertsiin. Lisää akun käyttöä."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Nostaa tietyn sisällön päivittymistiheyden automaattisesti <xliff:g id="ID_1">%1$d</xliff:g> hertsiin. Lisää akun käyttöä."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Pakota suurin mahdollinen päivitysväli"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Korkein päivitysväli parantaa kosketukseen vastaamista ja animaatioiden laatua. Lisää akun käyttöä."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Huomionäyttö"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Yhteiskäytön asetukset"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN:t"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Muokkaa tukiasemaa"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Lisää tukiasema"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Ei asetettu"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Ei valittu"</string>
     <string name="apn_name" msgid="6677695784108157953">"Nimi"</string>
@@ -1320,6 +1397,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN otettu käyttöön"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN poistettu käytöstä"</string>
     <string name="bearer" msgid="3231443241639159358">"Bearer"</string>
+    <string name="network_type" msgid="748590707422733595">"Verkon tyyppi"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Ei määritetty"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO-tyyppi"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO-arvo"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Poista APN"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Avaa saavutettavuuspainikkeella"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Avaa painamalla äänenvoimakkuuspainikkeita"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Avaa kolmoisnapauttamalla näyttöä"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Avaa napauttamalla näyttöä kolmesti kahdella sormella"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Avaa eleellä"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Käytä esteettömyyselettä"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Laita ominaisuus päälle napauttamalla näytön alareunassa olevaa esteettömyyspainiketta <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>.\n\nVaihda ominaisuudesta toiseen painamalla esteettömyyspainiketta pitkään."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Ota ominaisuus käyttöön napauttamalla näytöllä näkyvää saavutettavuuspainiketta."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Laita tämä ominaisuus päälle painamalla pitkään molempia äänenvoimakkuuspainikkeita."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Aloita tai lopeta suurennus kolmoisnapauttamalla missä vain näytöllä."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Aloita tai lopeta suurennus kolmoisnapauttamalla kahdella sormella missä tahansa näytöllä."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Laita ominaisuus päälle pyyhkäisemällä 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_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Laita ominaisuus päälle pyyhkäisemällä 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_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Laita esteettömyysominaisuus päälle pyyhkäisemällä näytön alalaidasta ylös kahdella sormella.\n\nVaihda ominaisuudesta toiseen pyyhkäisemällä ylös kahdella sormella ja koskettamalla pitkään."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Paina äänenvoimakkuuspainikkeita pitkään"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"paina äänenvoimakkuuspainikkeita pitkään"</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_triple_tap" msgid="6687765191490040899">"Kolmoisnapauta näyttöä kahdella sormella"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"kolmoisnapauta näyttöä kahdella sormella"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"kolmoisnapauta näyttöä"</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>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Käytä värinää ja haptista palautetta"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Värinähälytys"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Median värinä"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Näppäimistön värinä"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Soittoäänen värinä"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Ilmoitusvärinä"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Kosketuspalaute"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> jäljellä"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> latausaikaa jäljellä"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Käyttöaika"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Aika taustalla"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Virta vähissä"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Salli sovelluksen toimia taustalla"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Rajoitetaanko toimintaa taustalla?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Jos rajoitat sovelluksen toimintaa taustalla, se voi alkaa toimia virheellisesti."</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Sovellusta ei voi rajoittaa, koska akun optimointi ei ole käytössä.\n\nOta optimointi käyttöön rajoittamista varten."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Rajaa akunkäyttöä"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Salli käyttö taustalla"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Ota käyttöön reaaliaikaisille päivityksille, poista käytöstä akun säästämiseksi"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Ei rajoituksia"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Optimoitu"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Rajoitettu"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"edellisen täyden latauksen jälkeen"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Järjestelmäsovellukset"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Poistetut sovellukset"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Muut"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Arvioitu jäljellä oleva aika"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Täyteen lataukseen"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Yhteensä: alle minuutti"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Taustalla: alle minuutti"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Käyttöaika: alle minuutti"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Alle minuutti"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Yhteensä: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Taustalla: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Käyttöaika: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Mobiilidata ja Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Henkilödatan aut. synkronointi"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Työdatan autom. synkronointi"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Yksityisen datan synkronointi"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Muuta jaksoa…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Tiedonsiirtojakson nollauspäivä (kk):"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Sovellukset eivät käyttäneet tiedonsiirtoa."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"tekstin koko, suurikokoinen teksti, suuri fontti, suuri teksti, heikko näkö, suurenna tekstiä, fontin suurentaja, fontin suurennus"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"aina päällä oleva näyttö, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, tagi, lukija"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"näppäimistö, haptinen teknologia, värinä,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Äänenvoimakkuus, värinä, Älä häiritse"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Median äänenvoimakkuus"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Suoratoiston äänenvoimakkuus"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Näytä ilmoitusten koko sisältö"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Näytä arkaluontoinen sisältö, jos lukitus avattu"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Älä näytä ilmoituksia ollenkaan"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Miten haluat lukitusnäytön näkyvän?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Lukitusnäyttö"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Näytä kaikki työilmoitussisältö"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Piilota arkaluontoinen työsisältö"</string>
@@ -3354,6 +3449,17 @@
     <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="6121016426991791557">"Ilmoitusten hiljentäminen"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Käytä hiljentämistä kaikkiin ilmoituksiin"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Laske ilmoitusten äänenvoimakkutta vähitellen, kun saat paljon peräkkäisiä ilmoituksia samasta sovelluksesta"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Käytä hiljentämistä keskusteluihin"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Laske ilmoitusten äänenvoimakkutta vähitellen, kun saat paljon viestejä samasta keskustelusta lyhyen ajan sisällä"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Älä hiljennä ilmoituksia"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Älä koskaan laske ilmoitusten äänenvoimakkuutta siitä huolimatta, miten paljon perättäisiä ilmoituksia sovellus lähettää"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Värinä, kun lukitus auki"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Käytä värinää vain, kun näytön lukitus on avattu"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Käytä työprofiileissa"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Käytä henkilökohtaisen profiilin ilmoitusten hiljennysasetuksia työprofiilissa"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR-avustinpalvelut"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Asennettuja sovelluksia ei ole pyydetty toimimaan VR-avustinpalveluina."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Sallitaanko VR-palveluiden käyttöoikeus palvelulle <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Salli pääsy tiedostojen ylläpitoa varten"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Salli sovelluksen lukea, muokata ja poistaa kaikkia tiedostoja tällä laitteella ja yhdistetyillä tallennuslaitteilla. Jos sallit tämän, sovelluksella on pääsy tiedostoihin ilman, että sinulle ilmoitetaan asiasta erikseen."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Voi päästä kaikkiin tiedostoihin"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Puheaktivointisovellukset"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Salli puheaktivointi"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Puheaktivoinnilla voit laittaa hyväksyttyjä sovelluksia päälle ääniohjatusti. Sisäänrakennettu mukautuva tunnistus varmistaa, että datasi pysyy yksityisenä.\n\n"<a href="">"Lisätietoa suojatusta ja mukautuvasta tunnistuksesta"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Koko näytön ilmoitukset"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Salli sovelluksen lähettää koko näytön ilmoituksia"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Salli sovelluksen näyttää koko näytön ilmoituksia, kun laite on lukittu. Sovellukset voivat käyttää tällaisia ilmoituksia hälytyksistä, saapuvista puheluista tai muista tärkeistä asioista ilmoittamiseen."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> käytti tavallista enemmän akkua taustalla"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> käytti enemmän akkua etualalla"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> käytti tavallista enemmän akkua etualalla"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Korkea akun käyttö"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Korkea akun käyttö taustalla"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Korkea akun käyttö etualalla"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"järjestelmän navigointi, kahden painikkeen navigointi, kolmen painikkeen navigointi, eleillä navigointi, pyyhkäisy"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Digiavustaja"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Käynnistä avustaja pyyhkäisemällä"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Käynnistä digiavustajasovellus pyyhkäisemällä alakulmasta ylöspäin."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Käynnistä Assistant painamalla aloitusnäyttöpainiketta"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Käynnistä digiavustaja painamalla aloitusnäyttöpainiketta pitkään."</string>
     <string name="low_label" msgid="6525629096999711220">"Matala"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"data, avainkoodi, salasana"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"automaattinen, täyttö, automaattinen täyttö, data, avainkoodi, salasana"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Varmista, että luotat tähän sovellukseen&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; päättelee näytöllä olevien kohteiden perusteella, mitä voidaan täyttää automaattisesti."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Käytetäänkö &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;a?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; päättelee näytön näkymän perusteella, mitä voidaan täyttää automaattisesti. Uudet salasanat, avainkoodit ja muita tietoja tallennetaan tästä lähtien tänne."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Use &lt;xliff:g id=app_name example=Palveluntarjoaja&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Uudet salasanat, avainkoodit ja muut tiedot tallennetaan nyt tänne. &lt;xliff:g id=app_name example=Palveluntarjoaja&gt;%1$s&lt;/xliff:g&gt; voi päätellä näytön näkymän perusteella, mitä voidaan täyttää automaattisesti."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Salasanat, avainkoodit ja datapalvelut"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Laitetaanko %1$s pois päältä?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Laitetaanko tämä palvelu pois päältä?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Tallennettuja tietoja (esimerkiksi salasanoja, avainkoodeja ja maksutapoja) ei täytetä, kun kirjaudut sisään. Jos haluat käyttää tallennettuja tietoja, valitse salasana, avainkoodi tai datapalvelu."</string>
@@ -4227,7 +4339,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">"Kokeellinen: Ota ANGLE käyttöön"</string>
-    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Varoitus: Ota ANGLE käyttöön OpenGL ES ‑oletusajurina. Ominaisuus on kokeiluvaiheessa, eikä se välttämättä ole yhteensopiva kaikkien kamera- ja videosovellusten kanssa."</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Varoitus: Ota ANGLE käyttöön OpenGL ES ‑oletusajurina. Tämä ominaisuus on kokeiluvaiheessa, eikä se välttämättä ole yhteensopiva kaikkien kamera- ja videosovellusten kanssa."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"Järjestelmän OpenGL ES ‑ajurin muuttaminen edellyttää uudelleenkäynnistystä"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Sovelluksen yhteensopivuuden muutokset"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Sovellusten yhteensopivuuden muutokset päälle/pois"</string>
@@ -4785,10 +4897,8 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Kuvasuhde"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"Kokeile sovellukselle uutta kuvasuhdetta, jos sitä ei ole suunniteltu sopimaan laitteellesi (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>)"</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Kokeile sovellukselle uutta kuvasuhdetta, jos sitä ei ole suunniteltu sopimaan laitteellesi (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>). Kaikkia sovelluksia ei ehkä optimoida tietyille kuvasuhteille."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Kokeile sovellukselle uutta kuvasuhdetta, jos sitä ei ole suunniteltu sopimaan laitteellesi (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>)"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Kokeile sovellukselle uutta kuvasuhdetta, jos sitä ei ole suunniteltu sopimaan laitteellesi (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>). Kaikkia sovelluksia ei ehkä optimoida tietyille kuvasuhteille."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Ehdotetut sovellukset"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Muuttuneet"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Sovelluksen oletus"</string>
@@ -4858,4 +4968,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Tarkistetaan löytyykö petollisia sovelluksia"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Tarkista sovellustoiminta tietojenkalastelun osalta"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Käytä tarkistusta petollisten sovellusten havaitsemiseen"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Käytä tarkistusta petollisten työsovellusten havaitsemiseen"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-fr-rCA/arrays.xml b/res/values-fr-rCA/arrays.xml
index 185a9a6..558385d 100644
--- a/res/values-fr-rCA/arrays.xml
+++ b/res/values-fr-rCA/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Après 1 minute"</item>
     <item msgid="1574040255478150028">"Après 5 minutes"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 5bc7712..b9e3c78 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -44,7 +44,7 @@
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Agrandir"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Toujours"</string>
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"L\'écran frontal s\'allume lorsque vous pliez votre appareil"</string>
-    <string name="selective_stay_awake_title" msgid="7887645333447645168">"Seulement des jeux, des vidéos et plus"</string>
+    <string name="selective_stay_awake_title" msgid="7887645333447645168">"Seulement pour les jeux, les vidéos et plus"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"L\'écran frontal s\'allume pour les applications qui empêchent la mise en veille de votre écran"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Jamais"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"L\'écran frontal se verrouille lorsque vous pliez votre appareil"</string>
@@ -100,7 +100,7 @@
     <string name="bluetooth_connection_permission_request" msgid="8793131019383198861">"Demande de connexion Bluetooth"</string>
     <string name="bluetooth_phonebook_request" msgid="1085102844577089889">"Demande d\'accès au répertoire téléphonique"</string>
     <string name="bluetooth_map_request" msgid="8664081227240707479">"Demande d\'accès aux messages"</string>
-    <string name="bluetooth_device_name_summary" msgid="8678342689845439583">"Visible comme « <xliff:g id="DEVICE_NAME">^1</xliff:g> » aux autres appareils"</string>
+    <string name="bluetooth_device_name_summary" msgid="8678342689845439583">"Visible en tant que « <xliff:g id="DEVICE_NAME">^1</xliff:g> » pour les autres appareils"</string>
     <string name="bluetooth_off_footer" msgid="76578735660216295">"Activez le Bluetooth pour vous connecter à d\'autres appareils."</string>
     <string name="bluetooth_paired_device_title" msgid="3240639218362342026">"Vos appareils"</string>
     <string name="bluetooth_pairing_page_title" msgid="3403981358823707692">"Associer un autre appareil"</string>
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Désactiver le Bluetooth LE Audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Désactive la fonctionnalité Bluetooth LE Audio si l\'appareil prend en charge les capacités matérielles LE Audio."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Afficher comm. LE Audio dans les détails"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Activer la liste d\'autorisation du Bluetooth LE audio"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Activez la fonctionnalité de liste d\'autorisation du Bluetooth LE Audio."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Contourner la liste verte du Bluetooth LE Audio"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Utiliser LE Audio par défaut même si le périphérique LE Audio n\'a pas été vérifié en fonction des critères de la liste verte."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Appareils de stockage multimédia"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Appareils avec fonctionnalités d\'appel"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Autres appareils"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Appareils enregistrés"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Associé au compte"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Utilisés précédemment avec ce compte"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Le Bluetooth s\'activera pour l\'association"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Préférences de connexion"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Connecté précedemment"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Écrire dans les champs de texte"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignorer toutes les pressions sur les boutons du stylet"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Stylet"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Partage du son"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Partager le son"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Appels et alarmes"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Date et heure"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Serveur mandataire"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Effacer"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Chargement en cours…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Les applications 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_location_off" msgid="8568995909147566720">"L\'accès à la position est désactivé pour les applications 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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"En savoir plus sur les paramètres de localisation"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Comptes"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Sécurité"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Chiffrement et authentifiants"</string>
@@ -407,9 +420,9 @@
     <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Plus"</string>
     <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Fonctionnement"</string>
     <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Votre montre doit être déverrouillée, se trouver sur votre poignet et être à proximité de ce téléphone. Vous n\'avez toutefois pas à la déverrouiller de nouveau lorsqu\'elle se trouve sur votre poignet."</string>
-    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Lorsque ce téléphone est déverrouillé, vous recevrez une notification sur votre montre. Si le téléphone a été déverrouillé involontairement, appuyez sur la notification pour le verrouiller à nouveau."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Lorsque ce téléphone est déverrouillé, vous recevrez une notification sur votre montre. Si le téléphone a été déverrouillé involontairement, touchez la notification pour le verrouiller à nouveau."</string>
     <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Vous êtes aux commandes"</string>
-    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Vous pouvez retirer votre montre du déverrouillage à l\'aide d\'une montre à tout moment dans les paramètres"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Vous pouvez retirer votre montre du Déverrouillage à l\'aide d\'une montre à tout moment dans les paramètres"</string>
     <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Touchez une notification"</string>
     <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Balayez l\'écran de verrouillage vers le haut"</string>
     <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Choisir votre montre"</string>
@@ -425,7 +438,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 &amp; et reconnaissance faciale"</string>
+    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Déverrouillage empreinte digitale et reconnaissance faciale"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Déverr. par reconn. faciale et empreinte 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>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Profil professionnel"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Espace privé"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Masquer des applications dans un dossier privé"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Déverrouiller avec le Verrouillage de l\'écran"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Afficher l\'espace privé"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Masquer lorsque verrouillé"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Masquer l\'Espace privé lorsqu\'il est verrouillé"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Masquez l\'Espace privé dans votre liste d\'applications pour préserver votre confidentialité"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Accéder à l\'Espace privé lorsqu\'il est masqué"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Recherchez « Espace privé » dans la barre de recherche"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Touchez la tuile Espace privé"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Déverrouillez votre Espace privé"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Désactivé"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Activé"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Système"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Créer un espace privé"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Supprimer l\'espace privé"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"L\'espace privé a bien été créé"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"L\'espace privé existe déjà"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Impossible de créer un espace privé"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"L\'espace privé a bien été supprimé"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Impossible de supprimer l\'espace privé"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Définir Verrouillage d\'écran"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Réglez le Verrouillage d\'écran pour utiliser l\'espace privé."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Définir Verrouillage d\'écran"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Annuler"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Annuler"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Configuration"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Configurer l\'Espace privé"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Masquez les applications privées dans un espace sécurisé dont l\'accès vous est réservé"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Fonctionnement"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Vous pouvez accéder à l\'Espace privé en bas de votre liste d\'applications"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Les applications de l\'Espace privé sont protégées par un verrou"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Les notifications des applications de l\'Espace privé sont masquées lorsqu\'il est verrouillé"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Les applications de l\'Espace privé ne figureront pas dans le gestionnaire des autorisations, dans le Tableau de bord de confidentialité ni dans d\'autres paramètres lorsque l\'Espace privé est verrouillé"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Configuration de l\'Espace privé en cours…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"L\'Espace privé est protégé par un verrou"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Les informations d\'utilisation des applications de l\'Espace privé sont masquées lorsque celui-ci est verrouillé"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Accéder à l\'Espace privé à partir de votre liste d\'applis"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Impossible de configurer l\'Espace privé"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Réessayez maintenant ou revenez plus tard"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Réessayer"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Utiliser Verrouillage d\'écran pour déverrouiller?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Vous pouvez déverrouiller l\'Espace privé de la même manière que votre appareil ou choisir un autre type de verrou"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Utiliser le Verrouillage d\'écran"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Sélectionner un nouveau verrou"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Tout est prêt!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Pour accéder à l\'Espace privé, balayez votre écran d\'accueil du bas vers le haut, puis faites défiler l\'écran vers le bas"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Terminé"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Faire défiler vers le bas pour accéder à l\'Espace privé"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Se connecter pour créer un Espace privé"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Vous pouvez ajouter jusqu\'à <xliff:g id="COUNT">%d</xliff:g> empreintes digitales"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Vous avez ajouté le nombre maximal d\'empreintes digitales"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Impossible d\'ajouter des empreintes digitales"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Connexion"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Déconnecter"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Associer et connecter"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Si la fonctionnalité Bluetooth est activée, l\'appareil peut communiquer avec les autres appareils Bluetooth à proximité."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Lorsque le Bluetooth est activé, votre appareil peut communiquer avec d\'autres appareils Bluetooth à proximité.\n\nPour améliorer l\'expérience d\'utilisation de l\'appareil, les applications et les services peuvent continuer de rechercher les appareils à proximité en tout temps, même si le Bluetooth 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 cette option dans les paramètres de recherche Bluetooth."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Modifier"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Détails de l\'appareil"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Autoriser ART à vérifier le code à octets pour les applications débogables"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Afficher le taux d\'actualisation"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Affichez le taux d\'actualisation actuel"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Afficher le rapport HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Afficher le rapport HDR/SDR actuel"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"CCP"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Déverrouillage de l\'appareil requis pour utiliser la fonctionnalité CCP"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Continuer à utiliser les applications lorsque l\'appareil est plié"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Affichage fluide"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Augmente automatiquement la fréquence d\'actualisation de 60 Hz à <xliff:g id="ID_1">%1$s</xliff:g> Hz pour certains contenus. Augmente l\'utilisation de la pile."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Augmente automatiquement la fréquence d\'actualisation jusqu\'à <xliff:g id="ID_1">%1$d</xliff:g> Hz pour certains contenus. Augmente l\'utilisation de la pile."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Forcer la fréquence d\'actualisation de pointe"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Taux d\'actualisation supérieur pour une amélioration de la réactivité tactile et de la fluidité des animations. Cette fonction sollicite davantage la pile de l\'appareil."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Écran attentif"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Paramètres communs"</string>
     <string name="apn_settings" msgid="4295467389400441299">"Noms des points d\'accès"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Modifier le point d\'accès"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Ajouter un point d\'accès"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Non défini"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Non configuré"</string>
     <string name="apn_name" msgid="6677695784108157953">"Nom"</string>
@@ -1320,6 +1397,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN activé"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN désactivé"</string>
     <string name="bearer" msgid="3231443241639159358">"Réseau"</string>
+    <string name="network_type" msgid="748590707422733595">"Type de réseau"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Non précisé"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Type MVNO"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"Valeur MVNO"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Supprimer l\'APN"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Utiliser le bouton d\'accessibilité pour ouvrir"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Maintenez les touches de volume enfoncées pour l\'ouvrir"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Touchez l\'écran trois fois pour l\'ouvrir"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Ouvrir en touchant l\'écran trois fois avec deux doigts"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Utiliser un geste pour activer le service"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Utiliser le geste d\'accessibilité"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Pour utiliser cette fonctionnalité, touchez le bouton d\'accessibilité <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> dans le bas de l\'écran.\n\nPour basculer entre les fonctionnalités, maintenez le doigt sur le bouton d\'accessibilité."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Pour utiliser cette fonctionnalité, touchez le bouton d\'accessibilité sur votre écran."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Pour utiliser cette fonctionnalité, maintenez les deux touches de volume enfoncées."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Pour démarrer et arrêter l\'agrandissement, touchez l\'écran trois fois n\'importe où."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Pour démarrer et arrêter l\'Agrandissement, touchez l\'écran trois fois avec deux doigts."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Pour utiliser cette fonctionnalité, 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_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Pour utiliser cette fonctionnalité, 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_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Pour utiliser une fonctionnalité d\'accessibilité, 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>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Maintenir enfoncées les touches de volume"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"maintenir enfoncées les 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_triple_tap" msgid="6687765191490040899">"Toucher l\'écran trois fois avec deux doigts"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"toucher l\'écran trois fois avec deux doigts"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"toucher l\'écran 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>
@@ -1992,7 +2076,7 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Interrupteur pour raccrocher"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Grand curseur de souris"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Mettez en évidence le pointeur de la souris"</string>
-    <string name="accessibility_disable_animations" msgid="2993529829457179058">"Supprimer les animations"</string>
+    <string name="accessibility_disable_animations" msgid="2993529829457179058">"Retirer les animations"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Réduisez les mouvements sur l\'écran"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Audio mono"</string>
     <string name="accessibility_toggle_primary_mono_summary" msgid="1935283927319407303">"Combiner les chaînes lors de la lecture audio"</string>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Utiliser les vibrations et les effets tactils"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Vibration pour les alarmes"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Vibration multimédia"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Vibration du clavier"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Vibration pour la sonnerie"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Vibration pour les notifications"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Retour tactile"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"Temps restant : <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> avant le chargement complet"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Le temps d\'utilisation des écrans"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Le temps d\'utilisation en arrière-plan"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Pile faible"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Autoriser l\'application à fonctionner en arrière-plan"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Limiter l\'activité en arrière-plan?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Si vous limitez l\'activité en arrière-plan d\'une application, cela peut provoquer un fonctionnement instable"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Comme cette appli n\'est pas config. pour optim. la pile, vous ne pouvez pas la restr.\n\nPour la restr., activez l\'optim. de pile."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Gérer l\'utilisation de la pile"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Autoriser l\'utilisation en arrière-plan"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Activez-la pour obtenir des mises à jour en temps réel; désactivez-la pour prolonger l\'autonomie de la pile"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Aucune restriction"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Optimisée"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Limitée"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"depuis la dernière recharge complète"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Applications système"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Applications désinstallées"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Autres"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Temps restant estimé"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Jusqu\'à la charge complète"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Total : moins d\'une minute"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Arrière-plan : moins d\'une minute"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Temps d\'utilisation des écrans : moins d\'une minute"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Moins d\'une min"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Total : <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Arrière-plan : <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Temps d\'utilisation des écrans : <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Données cellulaires et Wi-Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Synchro auto des données perso"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Synchro auto des données pros"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Sync. auto des données privées"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Changer le cycle..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Jour du mois de réinitialisation du cycle utilisation données :"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Aucune donnée utilisée par les applications pendant cette période."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"taille du texte, grands caractères, police de grande taille, texte de grande taille, vision faible, agrandir le texte, agrandisseur de police, agrandissement de la police"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"affichage en mode Veille toujours activé, affichage toujours activé"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"ccp, balise, lecteur"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"clavier, haptique, vibrer"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Volume, vibration, Ne pas déranger"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Volume du contenu multimédia"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Volume de diffusion"</string>
@@ -3067,8 +3161,7 @@
     <string name="notification_sound_default" msgid="8630353701915294299">"Son de notification par défaut"</string>
     <string name="alarm_ringtone_title" msgid="6680761007731764726">"Son de l\'alarme par défaut"</string>
     <string name="vibrate_when_ringing_option_ramping_ringer" msgid="2798848945803840348">"Vibrer en premier, puis sonnerie graduelle"</string>
-    <!-- no translation found for spatial_audio_title (1775370104206884711) -->
-    <skip />
+    <string name="spatial_audio_title" msgid="1775370104206884711">"Son spatial"</string>
     <string name="dial_pad_tones_title" msgid="3536945335367914892">"Tonalités du clavier"</string>
     <string name="screen_locking_sounds_title" msgid="5695030983872787321">"Son de verrouillage de l\'écran"</string>
     <string name="charging_sounds_title" msgid="5261683808537783668">"Sons et vibrations de recharge"</string>
@@ -3268,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Afficher tout le contenu des notifications"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"N\'afficher le contenu sensible que si l\'appareil est déverrouillé"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"N\'afficher aucune notification"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Que souhaitez-vous afficher sur l\'écran de verrouillage?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Écran de verrouillage"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Afficher tout le contenu des notif. professionn."</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Masquez le contenu professionnel sensible"</string>
@@ -3355,6 +3449,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Cette application 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 application"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Période de stabil. des notif."</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Appliquer une période de stabilisation à toutes les notifications"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Diminuer progressivement le volume des notifications lorsque vous recevez plusieurs notifications successives de la même application"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Appliquer une période de stabilisation aux conversations"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Diminuer progressivement le volume des notifications lorsque vous recevez plusieurs messages d\'un même clavardage dans un court laps de temps"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Ne pas utiliser la période de stabilisation des notifications"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Ne jamais réduire le volume des notifications, quel que soit le nombre de notifications successives provenant de la même application"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Faire vibrer lors du déverrouillage"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Ne faire vibrer que lorsque l\'écran est déverrouillé"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Appliquer aux profils professionnels"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Appliquer les paramètres de période de stabilisation des notifications de votre profil personnel à votre profil professionnel"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Services d\'assistance pour la réalité virtuelle"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Aucune demande d\'exécution en tant que services d\'assistance pour la réalité virtuelle n\'a été envoyée pour les applications installées."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Autoriser <xliff:g id="SERVICE">%1$s</xliff:g> à accéder au service de réalité virtuelle?"</string>
@@ -3746,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Autorisez l\'accès pour gérer tous les fichiers"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Autoriser cette application à lire, à modifier et à supprimer tous les fichiers qui se trouvent sur cet appareil ou sur des volumes de stockage connectés. Si vous accordez cette autorisation, l\'application pourra accéder à des fichiers sans que vous le sachiez."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Peuvent accéder à tous les fichiers"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Applications activées par la voix"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Permettre l\'activation vocale"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"L\'activation vocale permet d\'activer les applications approuvées, en mains libres, par commande vocale. La détection adaptative intégrée garantit que les données restent confidentielles pour vous seul.\n\n"<a href="">"En savoir plus sur la détection adaptative protégée"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Notifications en plein écran"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Autoriser les notifications en plein écran de cette application"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Autoriser cette application à afficher des notifications en plein écran lorsque l\'appareil est verrouillé. Les applications peuvent s\'en servir pour mettre en évidence des alarmes, des appels entrants ou d\'autres notifications urgentes."</string>
@@ -3897,32 +4005,23 @@
     <string name="app_battery_usage_title" msgid="346558380609793334">"Utilisation de la pile par les applications"</string>
     <string name="app_battery_usage_summary" msgid="6349965904306339539">"Régler l\'utilisation de la pile pour les applis"</string>
     <string name="battery_tips_card_action_button" msgid="4897793527424711648">"Paramètres d\'affichage"</string>
-    <!-- no translation found for battery_tips_card_action_button_check (1535140204105479318) -->
-    <skip />
+    <string name="battery_tips_card_action_button_check" msgid="1535140204105479318">"Vérifier"</string>
     <string name="battery_tips_card_dismiss_button" msgid="1885756985544936618">"OK"</string>
     <string name="battery_tips_card_feedback_info" msgid="767117835675157298">"Ce message est-il utile?"</string>
-    <!-- no translation found for battery_hints_warning_icon_a11y (5312542323401447620) -->
-    <skip />
+    <string name="battery_hints_warning_icon_a11y" msgid="5312542323401447620">"Icône d\'avertissement pour des conseils sur la pile"</string>
     <string name="battery_tips_settings_summary_brightness" msgid="546145032616077783">"Activer la Luminosité adaptative pour prolonger l\'autonomie de la pile"</string>
     <string name="battery_tips_settings_summary_screen_timeout" msgid="556801426050962077">"Réduire le délai de mise en veille de l\'écran pour prolonger l\'autonomie de la pile"</string>
-    <!-- no translation found for battery_tips_apps_summary_always_high (6334519477067044920) -->
+    <string name="battery_tips_apps_summary_always_high" msgid="6334519477067044920">"<xliff:g id="APP_LABEL">%1$s</xliff:g> a utilisé plus d\'énergie de la pile"</string>
+    <string name="battery_tips_apps_summary_higher_than_usual" msgid="95676961671544628">"<xliff:g id="APP_LABEL">%1$s</xliff:g> a utilisé plus d\'énergie de la pile que d\'habitude"</string>
+    <string name="battery_tips_apps_summary_always_high_in_background" msgid="2953858181710181126">"<xliff:g id="APP_LABEL">%1$s</xliff:g> a utilisé plus d\'énergie de la pile en arrière-plan"</string>
+    <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> a utilisé plus d\'énergie de la pile que d\'habitude en arrière-plan"</string>
+    <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> a utilisé plus d\'énergie de la pile en avant-plan"</string>
+    <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> a utilisé plus d\'énergie de la pile que d\'habitude en avant-plan"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
     <skip />
-    <!-- no translation found for battery_tips_apps_summary_higher_than_usual (95676961671544628) -->
-    <skip />
-    <!-- no translation found for battery_tips_apps_summary_always_high_in_background (2953858181710181126) -->
-    <skip />
-    <!-- no translation found for battery_tips_apps_summary_higher_than_usual_in_background (1585002072567422199) -->
-    <skip />
-    <!-- no translation found for battery_tips_apps_summary_always_high_in_foreground (1910991243576404700) -->
-    <skip />
-    <!-- no translation found for battery_tips_apps_summary_higher_than_usual_in_foreground (7937337570425168210) -->
-    <skip />
-    <!-- no translation found for battery_app_item_hint (4850929961461039110) -->
-    <skip />
-    <!-- no translation found for battery_app_item_hint_in_bg (596240821466388336) -->
-    <skip />
-    <!-- no translation found for battery_app_item_hint_in_fg (5091860632260799910) -->
-    <skip />
+    <string name="battery_app_item_hint" msgid="4850929961461039110">"Utilisation élevée de la pile"</string>
+    <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Utilisation élevée de la pile en arrière-plan"</string>
+    <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Utilisation élevée de la pile en avant-plan"</string>
     <string name="filter_battery_unrestricted_title" msgid="821027369424198223">"Aucune restriction"</string>
     <string name="filter_battery_optimized_title" msgid="8236647176487754796">"Optimisée"</string>
     <string name="filter_battery_restricted_title" msgid="5886859505802563232">"Limitée"</string>
@@ -4017,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"navigation système, navigation à deux boutons, navigation à trois boutons, navigation par gestes, balayer"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Assistant numérique"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Balayer l\'écran pour appeler l\'assistant"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Pour lancer l\'application de l\'assistant numérique, balayez l\'écran vers le haut à partir d\'un coin inférieur."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Maintenir le doigt sur Accueil pour utiliser l\'Assistant"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Maintenez la touche d\'accueil enfoncée pour invoquer l\'application d\'assistant numérique."</string>
     <string name="low_label" msgid="6525629096999711220">"Faible"</string>
@@ -4184,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"données, clé d\'accès, mot de passe"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"automatique, remplissage, remplissage automatique, données, clé d\'accès, mot de passe"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Assurez-vous de faire confiance à cette application&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Remplissage automatique&gt;%1$s&lt;/xliff:g&gt; utilise les éléments affichés à l\'écran pour déterminer les champs qui peuvent bénéficier de l\'entrée automatique."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Utiliser &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; utilise ce qui se trouve à l\'écran pour déterminer les données qui peuvent être remplies automatiquement. Les nouveaux renseignements, notamment les clés d\'accès et les mots de passe, seront dorénavant enregistrés ici."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Use &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Les nouveaux mots de passe, clés d\'accès et autres renseignements seront désormais enregistrés ici. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; peut utiliser ce qui se trouve à l\'écran pour déterminer les données qui peuvent être remplies automatiquement."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Services de mots de passe, de clés d\'accès et de données"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Désactiver %1$s?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Désactiver ce service?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Lorsque vous vous connectez, les renseignements enregistrés, comme les mots de passe, les clés d\'accès, les modes de paiement, ou tout autre renseignement, ne seront pas remplis. Pour utiliser vos renseignements enregistrés, choisissez un mot de passe, une clé d\'accès ou un service de données."</string>
@@ -4238,10 +4338,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <string name="enable_angle_as_system_driver" msgid="4648827560023949786">"Expérimental : Activer ANGLE"</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Avertissement : Activer ANGLE en tant que pilote OpenGL ES par défaut. Cette fonctionnalité est en cours de test et peut ne pas être compatible avec certaines applications vidéo et d\'appareils photo."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"Un redémarrage est nécessaire pour modifier le pilote OpenGL ES du système"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Changements dans la compatibilité des applications"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Basculez les changements de compatibilité des applications"</string>
@@ -4667,7 +4765,7 @@
     <string name="app_info_all_services_label" msgid="1487070364839071105">"Tous les services"</string>
     <string name="show_clip_access_notification" msgid="7782300987639778542">"Afficher l\'accès au presse-papiers"</string>
     <string name="show_clip_access_notification_summary" msgid="474090757777203207">"Un message s\'affiche lorsque les applications accèdent à du texte, à des images ou à d\'autres contenus que vous avez copiés"</string>
-    <string name="all_apps" msgid="3054120149509114789">"Toutes les applications"</string>
+    <string name="all_apps" msgid="3054120149509114789">"Toutes les applis"</string>
     <string name="request_manage_bluetooth_permission_dont_allow" msgid="8798061333407581300">"Ne pas autoriser"</string>
     <string name="uwb_settings_title" msgid="8578498712312002231">"Bande ultralarge (BUL)"</string>
     <string name="uwb_settings_summary" msgid="3074271396764672268">"Aide à déterminer la position relative des appareils à proximité qui utilisent la connectivité à bande ultralarge"</string>
@@ -4799,11 +4897,9 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Proportions"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"Essayez d\'autres proportions pour afficher cette application si elle n\'a pas été conçue pour s\'adapter à votre <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Essayez d\'autres proportions pour afficher cette application si elle n\'a pas été conçue pour s\'adapter à votre <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Il se peut que certaines applications ne soient pas optimisées pour certaines proportions."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
-    <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Applications suggérées"</string>
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Essayez d\'autres proportions pour afficher une application si elle n\'a pas été conçue pour s\'adapter à votre <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Essayez d\'autres proportions pour afficher une application si elle n\'a pas été conçue pour s\'adapter à votre <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Il se peut que certaines applications ne soient pas optimisées pour certaines proportions."</string>
+    <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Applis suggérées"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Applis modif."</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Application par défaut"</string>
     <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Plein écran"</string>
@@ -4872,4 +4968,10 @@
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Le nom de votre appareil est visible aux applications 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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Analyse d\'applications trompeuses"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Vérifier l\'activité des applications pour détecter les tentatives d\'hameçonnage"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Utiliser l\'analyse des applications trompeuses"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Utiliser l\'analyse des applications trompeuses pour le travail"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-fr/arrays.xml b/res/values-fr/arrays.xml
index 4908691..66539d3 100644
--- a/res/values-fr/arrays.xml
+++ b/res/values-fr/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Après 1 minute"</item>
     <item msgid="1574040255478150028">"Après 5 minutes"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 3655c45..9fd5301 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -44,8 +44,8 @@
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Agrandir"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Toujours"</string>
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"L\'écran avant s\'allume lorsque vous pliez votre appareil"</string>
-    <string name="selective_stay_awake_title" msgid="7887645333447645168">"Seulement des jeux, des vidéos et plus encore"</string>
-    <string name="selective_stay_awake_summary" msgid="9055967322921984543">"L\'écran avant s\'allume pour les applis qui empêchent la mise en veille de l\'écran."</string>
+    <string name="selective_stay_awake_title" msgid="7887645333447645168">"Seulement pour les jeux, les vidéos et autres"</string>
+    <string name="selective_stay_awake_summary" msgid="9055967322921984543">"L\'écran avant s\'allume pour les applis qui empêchent la mise en veille de l\'écran"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Jamais"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"L\'écran avant se verrouille lorsque vous pliez votre appareil"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Utiliser la rotation automatique"</string>
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Désactiver Bluetooth LE Audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Désactiver la fonctionnalité Bluetooth LE Audio si l\'appareil accepte les capacités matérielles LE Audio"</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Voir LE Audio dans Détails de l\'appareil"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Activer la liste d\'autorisation Bluetooth LE Audio"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Activer la fonctionnalité de liste d\'autorisation Bluetooth LE Audio"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Liste d\'autorisation de contournement Bluetooth LE Audio"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Utilisez LE Audio par défaut même si le périphérique LE Audio n\'a pas été vérifié pour remplir les critères de la liste d\'autorisation."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Périphériques multimédias"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Appareils servant pour les appels"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Autres appareils"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Appareils enregistrés"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Associé au compte"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Utilisé précédemment avec le compte"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Le Bluetooth sera activé pour permettre l\'association"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Préférences de connexion"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Connecté précédemment"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Écrire dans les champs de texte"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignorer toutes les pressions sur les boutons du stylet"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Stylet"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Partage du contenu audio"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Partager le contenu audio"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Appels et alarmes"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Date et heure"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Effacer"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"En savoir plus sur les paramètres de localisation."</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Comptes"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Sécurité"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Chiffrement et identifiants"</string>
@@ -405,13 +418,13 @@
     <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Pas maintenant"</string>
     <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Continuer"</string>
     <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Plus"</string>
-    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Fonctionnement"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Comment ça marche"</string>
     <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Votre montre doit être déverrouillée, sur votre poignet et à proximité de ce téléphone. Tant que vous porterez votre montre au poignet, vous n\'aurez pas besoin de la déverrouiller de nouveau."</string>
     <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Lorsque ce téléphone est déverrouillé, vous recevez une notification sur votre montre. S\'il a été déverrouillé alors que vous n\'en aviez pas l\'intention, appuyez sur la notification pour verrouiller à nouveau le téléphone."</string>
     <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Vous avez le contrôle"</string>
     <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Vous pouvez retirer à tout moment votre montre de Déverrouillage par une montre dans les paramètres"</string>
-    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Appuyer sur une notification"</string>
-    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Balayer vers le haut sur l\'écran de verrouillage"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Appuyez sur une notification"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Balayez l\'écran de verrouillage vers le haut"</string>
     <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Sélectionner votre montre"</string>
     <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Montres disponibles"</string>
     <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Annuler"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Profil professionnel"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Espace privé"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Cachez vos applications dans un dossier privé"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Déverrouiller avec le verrouillage de l\'écran"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Afficher l\'espace privé"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Masquer lorsque l\'application est verrouillée"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Masquer Espace privé lorsque l\'application est verrouillée"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Vous pouvez masquer Espace privé de votre liste d\'applis pour éviter les regards indiscrets"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Accéder à Espace privé lorsque l\'application est masquée"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Rechercher \"Private Space\" dans la barre de recherche"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Appuyer sur le bloc Espace privé"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Déverrouiller votre Espace privé"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Désactivé"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Activé"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Système"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Créer un espace privé"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Supprimer l\'espace privé"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"L\'espace privé a bien été créé"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"L\'espace privé existe déjà"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Impossible de créer l\'espace privé"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"L\'espace privé a bien été supprimé"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Impossible de supprimer l\'espace privé"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Définir le verrouillage de l\'écran"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Pour utiliser Espace privé, définissez un verrouillage de l\'écran sur cet appareil."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Activer le verrouillage de l\'écran"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Annuler"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Annuler"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Configuration"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Configurer Espace privé"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Masquez les applications privées dans un espace sécurisé qui n\'est accessible que par vous"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Comment ça marche"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Vous pouvez accéder à Espace privé à partir du bas de votre liste d\'applications"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Les applis dans Espace privé sont protégées par un verrou"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Les notifications des applis dans Espace privé sont masquées lorsque cette application est verrouillée"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Les applis contenues dans Espace privé n\'apparaîtront pas dans le gestionnaire d\'autorisations, dans le tableau de bord Confidentialité ni dans d\'autres paramètres lorsque l\'application Espace privé est verrouillée"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Configuration d\'Espace privé…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"L\'application Espace privé est protégée par un verrouillage"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Les informations d\'utilisation des applis contenues dans Espace privé sont masquées lorsque l\'application est verrouillée"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Accéder à Espace privé depuis votre liste d\'applications"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Impossible de configurer Espace privé"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Réessayer maintenant ou revenir plus tard"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Réessayer"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Déverrouiller avec le verrouillage de l\'écran ?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Vous pouvez déverrouiller Espace privé de la même manière que vous déverrouillez votre appareil ou bien choisir un verrouillage différent"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Utiliser le verrouillage de l\'écran"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Choisir un nouveau verrouillage"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Tout est prêt !"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Pour accéder à Espace privé, balayez votre écran d\'accueil de bas en haut, puis faites défiler vers le bas"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"OK"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Faites défiler vers le bas pour accéder à Espace privé"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Connectez-vous pour configurer Espace privé"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Vous pouvez ajouter jusqu\'à <xliff:g id="COUNT">%d</xliff:g> empreintes digitales"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Vous avez ajouté le nombre maximal autorisé d\'empreintes digitales"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Impossible d\'ajouter d\'autres empreintes digitales"</string>
@@ -699,7 +772,7 @@
     <string name="bluetooth_enter_pin_other_device" msgid="6737778699899780717">"Vous devrez peut-être également saisir ce code sur l\'autre appareil."</string>
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Vous devrez peut-être également saisir ce mot de passe sur l\'autre appareil."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Confirmez pour associer à l\'ensemble coordonné"</string>
-    <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Autoriser l\'accès à vos contacts et à l\'historique des appels"</string>
+    <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Autoriser l\'accès à vos contacts et à l\'historique de vos appels"</string>
     <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Autoriser l\'accès aux contacts et à l\'historique des appels"</string>
     <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Les infos seront utilisées pour les notifications d\'appels, entre autres"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
@@ -708,19 +781,19 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Connecter"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Déconnecter"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Associer et connecter"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Quand le Bluetooth est activé, votre appareil peut communiquer avec d\'autres appareils Bluetooth à proximité."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Bluetooth activé : Votre appareil communique avec d\'autres appareils à proximité."</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Quand le Bluetooth est activé, votre appareil peut communiquer avec d\'autres appareils Bluetooth à proximité.\n\nQuand il ne l\'est pas, les applis et services peuvent quand même rechercher les appareils à proximité à tout moment, afin d\'améliorer l\'expérience, par exemple, les fonctionnalités et services géolocalisés. Vous pouvez modifier ce réglage dans les paramètres de recherche Bluetooth."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Modifier"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Infos sur l\'appareil"</string>
     <string name="bluetooth_device_keyboard_settings_preference_title" msgid="3411693160917620519">"Paramètres du clavier"</string>
     <string name="bluetooth_device_mac_address" msgid="4873325074786732703">"Adresse Bluetooth de l\'appareil : <xliff:g id="ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_multuple_devices_mac_address" msgid="4974301550897923376">"Adresse Bluetooth de l\'appareil :\n<xliff:g id="ADDRESS">%1$s</xliff:g>"</string>
-    <string name="bluetooth_unpair_dialog_title" msgid="6943633443716052995">"Oublier l\'appareil ?"</string>
+    <string name="bluetooth_unpair_dialog_title" msgid="6943633443716052995">"Dissocier l\'appareil ?"</string>
     <string name="remove_association_button" msgid="5004208145998061135">"Supprimer l\'association"</string>
     <string name="bluetooth_companion_app_remove_association_dialog_title" msgid="1344518601377991897">"Dissocier l\'appli ?"</string>
     <string name="bluetooth_companion_app_body" msgid="8442643629075687761">"L\'appli <xliff:g id="APP_NAME">%1$s</xliff:g> ne s\'associera plus à votre <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
     <string name="device_details_leaudio_toggle_summary" msgid="7684848254433230809">"Expérimental. Améliore la qualité audio."</string>
-    <string name="bluetooth_unpair_dialog_forget_confirm_button" msgid="9184489424930549015">"Oublier l\'appareil"</string>
+    <string name="bluetooth_unpair_dialog_forget_confirm_button" msgid="9184489424930549015">"Dissocier l\'appareil"</string>
     <string name="bluetooth_companion_app_remove_association_confirm_button" msgid="76323555527926915">"Dissocier l\'appli"</string>
     <string name="bluetooth_max_connected_audio_devices_string" msgid="3114156958598821615">"Nombre maximal d\'appareils audio Bluetooth connectés"</string>
     <string name="bluetooth_max_connected_audio_devices_dialog_title" msgid="4056811727247312473">"Sélectionner le nombre maximal d\'appareils audio Bluetooth connectés"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Autoriser ART à valider le bytecode des applications pouvant être déboguées"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Voir la fréquence d\'actualisation"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Afficher la fréquence d\'actualisation actuelle"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Afficher le format HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Afficher le format HDR/SDR actuel"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Exiger le déverrouillage de l\'appareil pour le NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1137,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Continuer à utiliser les applis sur Fold"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Affichage fluide"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Augmente automatiquement la fréquence d\'actualisation de 60 à <xliff:g id="ID_1">%1$s</xliff:g> Hz pour certains contenus. Sollicite davantage la batterie."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Augmente automatiquement la fréquence d\'actualisation jusqu\'à <xliff:g id="ID_1">%1$d</xliff:g> Hz pour certains contenus. Sollicite davantage la batterie."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Forcer la fréquence d\'actualisation crête"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Fréquence d\'actualisation la plus élevée pour améliorer la réactivité au toucher et la qualité d\'animation. La batterie est davantage sollicitée."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Regard sur écran"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Paramètres communs"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Modifier le point d\'accès"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Ajouter un point d\'accès"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Non défini"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Non défini"</string>
     <string name="apn_name" msgid="6677695784108157953">"Nom"</string>
@@ -1320,6 +1396,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN activé"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN désactivé"</string>
     <string name="bearer" msgid="3231443241639159358">"Porteur"</string>
+    <string name="network_type" msgid="748590707422733595">"Type de réseau"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Non spécifié"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Type MVNO"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"Valeur MVNO"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Supprimer l\'APN"</string>
@@ -1598,7 +1676,7 @@
     <string name="screen_compatibility_label" msgid="7549658546078613431">"Compatibilité de l\'écran"</string>
     <string name="permissions_label" msgid="1708927634370314404">"Autorisations"</string>
     <string name="cache_header_label" msgid="2441967971921741047">"Cache"</string>
-    <string name="clear_cache_btn_text" msgid="8597272828928143723">"Effacer du cache"</string>
+    <string name="clear_cache_btn_text" msgid="8597272828928143723">"Vider le cache"</string>
     <string name="cache_size_label" msgid="313456088966822757">"Cache"</string>
     <string name="uri_permissions_text" msgid="8406345863117405105">"{count,plural, =1{1 élément}one{# élément}other{# éléments}}"</string>
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Supprimer l\'accès"</string>
@@ -1613,7 +1691,7 @@
     <string name="install_text" msgid="4558333621516996473">"Installer"</string>
     <string name="disable_text" msgid="5146002260857428005">"Désactiver"</string>
     <string name="enable_text" msgid="8570798764647110430">"Activer"</string>
-    <string name="clear_user_data_text" msgid="6773186434260397947">"Effacer du stockage"</string>
+    <string name="clear_user_data_text" msgid="6773186434260397947">"Vider l\'espace de stockage"</string>
     <string name="app_factory_reset" msgid="8974044931667015201">"Désinstaller les mises à jour"</string>
     <string name="app_restricted_settings_lockscreen_title" msgid="5993061278264872648">"Autoriser les paramètres restreints"</string>
     <string name="auto_launch_enable_text" msgid="8912714475823807798">"Certaines activités que vous avez sélectionnées s\'ouvrent dans cette appli par défaut."</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Utiliser le bouton Accessibilité pour ouvrir"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Maintenir enfoncés les boutons de volume pour ouvrir"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Appuyez trois fois sur l\'écran pour ouvrir"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Appuyer trois fois sur l\'écran avec deux doigts pour ouvrir"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Utiliser un geste pour ouvrir"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Utiliser le geste d\'accessibilité"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Pour utiliser cette fonctionnalité, appuyez sur le bouton Accessibilité <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> en bas de l\'écran.\n\nPour changer de fonctionnalité, appuyez dessus de manière prolongée."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Pour utiliser cette fonctionnalité, appuyez sur le bouton Accessibilité sur l\'écran."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Pour utiliser cette fonctionnalité, appuyez de manière prolongée sur les deux boutons de volume."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Pour lancer ou arrêter l\'agrandissement, appuyez trois fois n\'importe où sur l\'écran."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Pour commencer et arrêter l\'agrandissement, appuyez trois fois sur votre écran avec deux doigts."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Pour utiliser cette fonctionnalité, balayez l\'écran vers le 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_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Pour utiliser cette fonctionnalité, balayez l\'écran vers le 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_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Pour utiliser une fonctionnalité d\'accessibilité, balayez l\'écran vers le 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>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Maintenir enfoncés les boutons de volume"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"maintenir enfoncés les boutons de volume"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Appuyer de manière prolongée sur les deux boutons de volume"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"Appuyer trois fois sur l\'écran avec deux doigts"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"appuyer trois fois sur l\'écran avec deux doigts"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"appuyer trois fois sur l\'écran"</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>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Utiliser le vibreur et le retour haptique"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Vibreur des alarmes"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Vibreur des contenus multimédias"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Vibration du clavier"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Vibreur de la sonnerie"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Vibreur des notifications"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Retour tactile"</string>
@@ -2127,7 +2211,7 @@
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Rendre l\'écran encore moins lumineux"</string>
     <string name="reduce_bright_colors_shortcut_title" msgid="495648157059202745">"Raccourci vers Encore moins lumineux"</string>
     <string name="reduce_bright_colors_about_title" msgid="503655452544934393">"À propos d\'encore moins lumineux"</string>
-    <string name="reduce_bright_colors_preference_intro_text" msgid="3502290826747650566">"Rendre l’écran encore moins lumineux pour faciliter la lecture"</string>
+    <string name="reduce_bright_colors_preference_intro_text" msgid="3502290826747650566">"Réduisez encore plus la luminosité de l\'écran pour faciliter la lecture"</string>
     <string name="reduce_bright_colors_intensity_preference_title" msgid="7455443033955118267">"Intensité"</string>
     <string name="reduce_bright_colors_intensity_start_label" msgid="930387498396426039">"Moins lumineux"</string>
     <string name="reduce_bright_colors_intensity_end_label" msgid="1422600205484299860">"Plus lumineux"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"Temps restant : <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> avant chargement complet"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Temps d\'utilisation"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Temps en arrière-plan"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Batterie faible"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Autoriser l\'application à s\'exécuter en arrière-plan"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Limiter l\'activité en arrière-plan ?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Si vous limitez l\'activité en arrière-plan d\'une application, cela peut provoquer son dysfonctionnement"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Cette appli n\'étant pas configurée pour optimiser batterie, vous ne pouvez pas la limiter.\n\nActivez optimisation batterie."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Gérer l\'utilisation de la batterie"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Autoriser l\'utilisation en arrière-plan"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Activer pour obtenir des mises à jour en temps réel, désactiver pour économiser de la batterie"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Sans restriction"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Optimisée"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Limitée"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"depuis la dernière charge complète"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Applis système"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Applications désinstallées"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Autres"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Temps restant estimé"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Jusqu\'à la charge complète"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Total : moins d\'une min"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Arrière-plan : moins d\'une min"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Temps d\'utilisation : moins d\'une minute"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Moins d\'une minute"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Total : <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Arrière-plan : <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Temps d\'utilisation : <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Données mobiles et Wi-Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Synchro auto des données perso"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Synchro auto des données pro"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Synchro auto : Données privées"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Changer le cycle..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Jour du mois de réinitialisation du cycle utilisation données :"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Aucune donnée utilisée par les applications pendant cette période."</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"taille du texte, gros caractères, grande police, gros texte, déficience visuelle, agrandir le texte, agrandisseur de police, agrandissement de la police"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"Mode Always-on affichage ambiant, mode Always-on"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"NFC, tag, lecteur"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"clavier, technologies haptiques, vibreur"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Volume, vibreur, Ne pas déranger"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Volume des contenus multimédias"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Volume de diffusion"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Afficher tout le contenu des notifications"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"N\'afficher les contenus sensibles que si l\'appareil est déverrouillé"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"N\'afficher aucune notification"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Que souhaitez-vous afficher sur l\'écran de verrouillage ?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Écran de verrouillage"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Afficher tout le contenu des notifications professionnelles"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Masquer le contenu professionnel sensible"</string>
@@ -3354,6 +3448,17 @@
     <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="6121016426991791557">"Délai de notifications"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Appliquer un délai à toutes les notifications"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Diminuer progressivement le volume des notifications lorsque vous recevez plusieurs notifications successives de la même application"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Appliquer un délai aux conversations"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Diminuer progressivement le volume des notifications lorsque vous recevez de nombreux messages d\'un même chat sur une courte période"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Ne pas utiliser le délai des notifications"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Ne jamais réduire le volume des notifications, quel que soit le nombre de notifications successives provenant de la même application"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Vibreur en cas de déverrouillage"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Vibre uniquement lorsque l\'écran est déverrouillé"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Appliquer aux profils professionnels"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Appliquer les paramètres de délai des notifications de votre profil personnel à votre profil professionnel"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Services d\'assistance RV"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Aucune des applis installées n\'a demandé à être exécutée en tant que service d\'assistance pour la réalité virtuelle"</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Autoriser \"<xliff:g id="SERVICE">%1$s</xliff:g>\" à accéder au service de RV ?"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Autoriser l\'accès pour gérer tous les fichiers"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Autoriser cette appli à lire, modifier et supprimer tous les fichiers sur cet appareil ou sur n\'importe quel volume de stockage connecté. Si cette option est activée, l\'appli pourra accéder à des fichiers à votre insu."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Peut peut accéder à tous les fichiers"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Applications d\'activation vocale"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Autoriser l\'activation vocale"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"L\'activation vocale active les applis approuvées, en mode mains libres, par commande vocale. Le capteur adaptatif intégré garantit que vos données restent privées.\n\n"<a href="">"En savoir plus sur le capteur adaptatif protégé"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Notifications en plein écran"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Autoriser l\'appli à afficher les notifications en plein écran"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Autoriser cette appli à afficher des notifications occupant tout l\'écran lorsque l\'appareil est verrouillé. Les applis peuvent les utiliser pour mettre en avant les alarmes, les appels entrants ou d\'autres notifications urgentes."</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> a sollicité davantage la batterie que d\'habitude en arrière-plan"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> a sollicité davantage la batterie au premier plan"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> a sollicité davantage la batterie que d\'habitude au premier plan"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Utilisation élevée de la batterie"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Utilisation élevée de la batterie en arrière-plan"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Utilisation élevée de la batterie au premier plan"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"navigation système, navigation à deux boutons, navigation à trois boutons, navigation par gestes, balayer l\'écran"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Assistant numérique"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Balayer pour appeler l\'assistant"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Pour appeler l\'appli d\'assistant numérique, balayer vers le haut depuis un coin inférieur"</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Pour appeler l\'appli d\'assistant numérique, balayer vers le haut depuis un coin inférieur"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Maintenir le bouton d\'accueil enfoncé pour l\'Assistant"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Appuyer de manière prolongée sur le bouton d\'accueil pour appeler l\'appli d\'assistant numérique."</string>
     <string name="low_label" msgid="6525629096999711220">"Faible"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"données, clé d\'accès, mot de passe"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"auto, remplir, remplir automatiquement, données, clé d\'accès, mot de passe"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Assurez-vous que cette appli est fiable&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; se sert de ce qui figure à l\'écran pour déterminer ce qui peut être saisi automatiquement."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Utiliser &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; utilise ce qui est affiché à l\'écran pour déterminer ce qui peut être saisi automatiquement. Les nouveaux mots de passe, clés d\'accès et autres infos seront désormais enregistrés ici."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Utilisez &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Les nouveaux mots de passe, clés d\'accès et autres infos seront désormais enregistrés ici. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; peut utiliser ce qui est affiché à l\'écran pour déterminer ce qui peut être saisi automatiquement."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Mots de passe, clés d\'accès et services de données"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Désactiver %1$s ?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Désactiver ce service ?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Les infos enregistrées telles que les mots de passe, clés d\'accès, modes de paiement et autres ne seront pas renseignées quand vous vous connecterez. Pour utiliser vos infos enregistrées, choisissez un mot de passe, une clé d\'accès ou un service de données."</string>
@@ -4226,10 +4336,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <string name="enable_angle_as_system_driver" msgid="4648827560023949786">"Expérimental : Activer ANGLE"</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Avertissement : Activer ANGLE comme pilote OpenGL ES par défaut Cette fonctionnalité est en cours de test et peut ne pas être compatible avec certaines applications de caméra et de vidéo."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"Un redémarrage est nécessaire pour modifier le pilote OpenGL ES système"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Changement de compatibilité des applications"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Activer/Désactiver les changements de compatibilité des applications"</string>
@@ -4714,7 +4822,7 @@
     <string name="tare_job_min_running" msgid="6167128996320622604">"Exécution de la tâche à priorité min."</string>
     <string name="tare_job_timeout_penalty" msgid="7644332836795492506">"Pénalité pour expiration du délai"</string>
     <string name="tare_min_balance_exempted" msgid="6693710075762973485">"Solde minimal à pleine charge (exemptions)"</string>
-    <string name="tare_min_balance_headless_app" msgid="6906353766678577244">"Solde minimal à pleine charge (appli système sans interface graphique)"</string>
+    <string name="tare_min_balance_headless_app" msgid="6906353766678577244">"Solde minimal à pleine charge (appli système headless)"</string>
     <string name="tare_min_balance_other_app" msgid="3404774196832506476">"Solde minimal à pleine charge (applis restantes)"</string>
     <string name="tare_min_balance_addition_app_updater" msgid="5391956072471201269">"Addition au solde minimal à pleine charge (sites de mise à jour d\'applis)"</string>
   <string-array name="tare_modifiers_subfactors">
@@ -4785,12 +4893,10 @@
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Applis installées depuis # mois}one{Applis installées depuis # mois}other{Applis installées depuis # mois}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Applis installées il y a plus de # mois}one{Applis installées il y a plus de # mois}other{Applis installées il y a plus de # mois}}"</string>
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Format"</string>
-    <string name="aspect_ratio_summary" msgid="4056406351663726494">"Essayez un nouveau format dans lequel afficher cette application si elle n\'a pas été conçue pour s\'adapter à votre <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Essayez un nouveau format dans lequel afficher cette application si elle n\'a pas été conçue pour s\'adapter à votre <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Certaines applis peuvent ne pas être optimisées pour certains formats."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary" msgid="4056406351663726494">"Essayer un nouveau format dans lequel afficher cette application si elle n\'a pas été conçue pour s\'adapter à votre <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Essayez un nouveau format dans lequel afficher cette application si elle n\'a pas été conçue pour s\'adapter à votre <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Il est possible que certaines applications ne soient pas optimisées pour certains formats."</string>
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Essayer un nouveau format dans lequel afficher une application si elle n\'a pas été conçue pour s\'adapter à votre <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Essayez un nouveau format dans lequel afficher une application si elle n\'a pas été conçue pour s\'adapter à votre <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Il est possible que certaines applications ne soient pas optimisées pour certains formats."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Applis suggérées"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Applis modifiées"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Paramètre par défaut de l\'appli"</string>
@@ -4801,7 +4907,7 @@
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
     <string name="user_aspect_ratio_option_a11y" msgid="1235801996029095219">"<xliff:g id="NUMERATOR">%1$s</xliff:g> par <xliff:g id="DENOMINATOR">%2$s</xliff:g>"</string>
-    <string name="app_aspect_ratio_footer" msgid="4029509301182067475">"Si vous modifiez le format, l\'application redémarrera. Vous risquez de perdre les modifications non enregistrées. Certaines applis peuvent ne pas être optimisées pour certains formats."</string>
+    <string name="app_aspect_ratio_footer" msgid="4029509301182067475">"Si vous modifiez le format, l\'application redémarrera et vous risquez de perdre les modifications non enregistrées. Il est possible que certaines applications ne soient pas optimisées pour certains formats."</string>
     <string name="aspect_ratio_experimental_title" msgid="9088785421062044831">"Format (version expérimentale)"</string>
     <string name="aspect_ratio_experiment_title" msgid="128614319422121040">"Format (version expérimentale)"</string>
     <string name="aspect_ratio_labs_title" msgid="6733893837442759383">"Format (fonctionnalités expérimentales)"</string>
@@ -4860,4 +4966,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Analyse des applications trompeuses"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Vérifier l\'activité de l\'application pour détecter un éventuel hameçonnage"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Utiliser l\'analyse des applications trompeuses"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Utiliser l\'analyse des applications trompeuses (profil professionnel)"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-gl/arrays.xml b/res/values-gl/arrays.xml
index 0a49979..b5ecdd0 100644
--- a/res/values-gl/arrays.xml
+++ b/res/values-gl/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Tras 1 minuto"</item>
     <item msgid="1574040255478150028">"Tras 5 minutos"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index ff3d8e7..74be7e0 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Bluetooth de baixo consumo (audio): Non"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Desactiva a función de audio por Bluetooth de baixo consumo se o dispositivo é compatible coas funcións do hardware de audio de baixo consumo."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Botón Audio de baixo consumo en detalles"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Activar lista de permitidos de audio por Bluetooth de baixo consumo"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Activa a función de lista de permitidos de audio por Bluetooth de baixo consumo."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Sortear lista de entidades permitidas para o audio por Bluetooth de baixo consumo"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Usa o audio de baixo consumo de forma predeterminada mesmo no caso de que non se verificase se o seu dispositivo periférico cumpre os criterios da lista de entidades permitidas."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Dispositivos multimedia"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Dispositivos de chamada"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Outros dispositivos"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Dispositivos gardados"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Asociado coa conta"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Utilizouse anteriormente coa conta"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Activarase o Bluetooth para permitir a vinculación"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Preferencias de conexión"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Conectados anteriormente"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Escribir en campos de texto"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignorar todas as presións de botóns do lapis óptico"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Lapis óptico"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Uso compartido do audio"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Compartir audio"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Chamadas e alarmas"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Data e hora"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Borrar"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <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="account_settings_title" msgid="9138880127246241885">"Contas"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Seguranza"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Encriptación e credenciais"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Perfil de traballo"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Espazo privado"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Oculta as aplicacións nun cartafol privado"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Desbloquear mediante o bloqueo de pantalla"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Mostrar espazo privado"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Ocultar cando estea bloqueado"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Ocultar o espazo privado cando estea bloqueado"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Para que non saiban que o espazo privado está no teu dispositivo, ocúltao na lista de aplicacións"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Acceso ao espazo privado cando está oculto"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Escribe \"espazo privado\" na barra de busca"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Toca o atallo do espazo privado"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Desbloquea o espazo privado"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Opción desactivada"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Opción activada"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Sistema"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Crear espazo privado"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Eliminar espazo privado"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Creouse correctamente o espazo privado"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Xa existe o espazo privado"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Non se puido crear o espazo privado"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Eliminouse correctamente o espazo privado"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Non se puido eliminar o espazo privado"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Definir un bloqueo de pantalla"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Para usar o espazo privado, define un bloqueo de pantalla."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Definir bloqueo de pantalla"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Cancelar"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Cancelar"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Configurar"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Configurar o espazo privado"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Oculta as aplicacións privadas nun espazo seguro ao que só ti poidas acceder"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Como funciona?"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Podes acceder ao espazo privado desde a parte inferior da túa lista de aplicacións"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"As aplicacións do espazo privado están protexidas cun bloqueo"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Cando o espazo privado está bloqueado, ocúltanse as notificacións das súas aplicacións"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"As aplicacións do espazo privado non aparecerán no xestor de permisos, no panel de privacidade nin noutras opcións de configuración cando o espazo privado estea bloqueado"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Configurando espazo privado…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"O espazo privado está protexido por un bloqueo"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"A información de uso das aplicacións do espazo privado ocúltase cando está bloqueado"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Accede ao espazo privado desde a lista de aplicacións"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Produciuse un erro ao configurar o espazo privado"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Téntao de novo agora ou volve máis tarde"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Tentar de novo"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Queres usar bloqueo de pantalla para desbloquear?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Podes desbloquear o espazo privado do mesmo xeito que fas co teu dispositivo ou elixir outro bloqueo"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Usar bloqueo de pantalla"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Elixir outro bloqueo"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Todo listo"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Para acceder ao espazo privado, pasa o dedo cara arriba desde a parte inferior da pantalla de inicio e desprázate cara abaixo"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Feito"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Desprázate cara abaixo para acceder ao espazo privado"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Inicia sesión para configurar o espazo privado"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Podes engadir ata <xliff:g id="COUNT">%d</xliff:g> impresións dixitais"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Engadiches o número máximo de impresións dixitais"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Non se poden engadir máis impresións dixitais"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Conectar"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Desconectar"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Sincronizar e conectar"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Co Bluetooth activado, o dispositivo pode comunicarse con outros dispositivos Bluetooth próximos."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Cando o Bluetooth está activado, o dispositivo pode comunicarse con outros dispositivos Bluetooth das proximidades.\n\nPara mellorar a experiencia co uso do dispositivo, as aplicacións e os servizos poden seguir buscando dispositivos próximos en calquera momento, mesmo cando o Bluetooth está desactivado. Esta opción pode utilizarse, por exemplo, para mellorar as funcións e os servizos baseados na localización. Podes cambiar esta opción na configuración da busca de dispositivos Bluetooth."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Cambiar"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Datos do dispositivo"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Permite que ART verifique o bytecode das aplicacións que se poidan depurar"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Mostrar taxa de actualización"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Mostra a taxa de actualización actual da pantalla"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Mostrar proporción HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Mostra a proporción HDR/SDR actual"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Requirir desbloqueo do dispositivo para a NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Seguir usando aplicacións co dispositivo pregado"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Pantalla fluída"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Incrementa automaticamente a frecuencia de actualización de 60 a <xliff:g id="ID_1">%1$s</xliff:g> Hz en determinados tipos de contido. Aumenta o uso da batería."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Incrementa automaticamente a frecuencia de actualización ata <xliff:g id="ID_1">%1$d</xliff:g> Hz en determinados tipos de contido. Aumenta o uso da batería."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Forzar taxa de actualización máxima"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"A taxa de actualización máis alta para mellorar a resposta táctil e a calidade das animacións. Aumenta o uso da batería."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Atención á pantalla"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Opcións de configuración comúns"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Editar punto de acceso"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Engadir o punto de acceso"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Sen configurar"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Sen configurar"</string>
     <string name="apn_name" msgid="6677695784108157953">"Nome"</string>
@@ -1320,6 +1397,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN activado"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN desactivado"</string>
     <string name="bearer" msgid="3231443241639159358">"Portador"</string>
+    <string name="network_type" msgid="748590707422733595">"Tipo de rede"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Sen especificar"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Tipo de OMV"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"Valor de OMV"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Eliminar APN"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Utilizar o botón de accesibilidade para abrir"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Mantén premidas as teclas de volume para abrir"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Toca tres veces a pantalla para abrir"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Toca a pantalla tres veces con dous dedos para abrir"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Utilizar un xesto para abrir"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Usa o xesto de accesibilidade"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Toca o botón Accesibilidade <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> na parte inferior da pantalla para utilizar esta función.\n\nPara cambiar de función, mantén premido o botón Accesibilidade."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Para utilizar esta función, toca na pantalla o botón Accesibilidade."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Mantén premidas as dúas teclas de volume para utilizar esta función."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Para iniciar e deter a ampliación, toca tres veces en calquera parte da pantalla."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Para iniciar e deter a ampliación, toca tres veces en calquera parte da pantalla con dous dedos."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Pasa 2 dedos cara arriba desde a parte inferior da pantalla para utilizar esta función.\n\nPara cambiar de función, pasa 2 dedos cara arriba e mantén premida a pantalla."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Pasa 3 dedos cara arriba desde a parte inferior da pantalla para utilizar esta función.\n\nPara cambiar de función, pasa 3 dedos cara arriba e mantén premida a pantalla."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Pasa 2 dedos cara arriba desde a parte inferior da pantalla para utilizar unha función de accesibilidade.\n\nPara cambiar de función, pasa 2 dedos cara arriba e mantén premida a pantalla."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Manter premidas as teclas de volume"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"manter premidas as 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_triple_tap" msgid="6687765191490040899">"Toque triplo na pantalla con dous dedos"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"toque triplo na pantalla con dous dedos"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"tocar tres veces a pantalla"</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>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Utilizar vibración e tecnoloxía háptica"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Vibración das alarmas"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Vibración do contido multimedia"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Vibración do teclado"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Vibración do ton"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Vibración das notificacións"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Reacción aos toques"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> restante(s)"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> para completar a carga"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Tempo diante da pantalla"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Tempo en segundo plano"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Pouca batería"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Permite que a aplicación se execute en segundo plano"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Queres limitar a actividade en segundo plano?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Si limitas a actividade en segundo plano para unha aplicación, é posible que non funcione correctamente"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Non podes limitar a aplicación porque non se configurou para optimizar a batería.\n\nPrimeiro activa a optimización da batería."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Xestionar o uso da batería"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Permitir o uso en segundo plano"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Actívase para actualizacións en tempo real; desactívase para aforrar batería"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Sen restricións"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Optimizado"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Restrinxido"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"desde a última carga completa"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Aplicacións do sistema"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Aplicacións desinstaladas"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Outros datos"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Tempo restante estimado"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Para completar a carga"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Total: menos dun minuto"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"En segundo plano: menos dun minuto"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Tempo diante da pantalla: menos dun minuto"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Menos dun minuto"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Total: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Segundo plano: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Tempo diante da pantalla: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Datos móbiles e wifi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Sincr. auto. de datos persoais"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Sincr. auto. datos do traballo"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Sincr. auto. de datos privados"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Cambiar ciclo…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Día do mes para restablecer o ciclo de uso de datos:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Ningunha aplicación usou datos neste período."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"tamaño do texto, letra grande, tipo de letra grande, texto grande, visión reducida, agrandar texto, función para aumentar o tamaño da letra, aumento do tamaño da letra"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"pantalla en suspensión sempre acendida, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, etiqueta, lector"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"teclado, tecnoloxía háptica, vibrar,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Volume, vibración, Non molestar"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Volume dos elementos multimedia"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Volume da emisión"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Mostrar todo o contido das notificacións"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Mostra o contido confidencial só tras o desbloqueo"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Non mostrar ningunha notificación"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Como queres que se mostre a pantalla de bloqueo?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Pantalla de bloqueo"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Mostrar todo nas notificacións de traballo"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Oculta o contido laboral confidencial"</string>
@@ -3354,6 +3449,17 @@
     <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="6121016426991791557">"Período de repouso das notif."</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Aplicar período de repouso a todas as notificacións"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Reduce gradualmente o volume de notificacións cando a mesma aplicación che envía moitas seguidas"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Aplicar período de repouso ás conversas"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Reduce gradualmente o volume de notificacións cando recibes moitas mensaxes do mesmo chat nun período de tempo breve"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Non usar período de repouso das notificacións"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Non reduce nunca o volume de notificacións, con independencia da cantidade de notificacións seguidas que envíe a mesma aplicación"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Vibrar cando se desbloquee"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Vibrar só cando se desbloquee a pantalla"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Aplicar aos perfís de traballo"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Aplica a configuración do período de repouso das notificacións do teu perfil persoal ao teu perfil de traballo"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Servizos do asistente de RV"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Ningunha aplicación instalada solicitou executarse como servizos do asistente de RV."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Queres permitir o acceso do servizo de RV para <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Permitir xestionar todos os ficheiros"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Permite que esta aplicación lea, modifique e elimine todos os ficheiros deste dispositivo ou de calquera unidade de almacenamento conectada. Se lle dás permiso, a aplicación poderá acceder aos ficheiros sen que se che notifique explicitamente."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Poden acceder a todos os ficheiros"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Aplicacións con activación por voz"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Permitir activación por voz"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"A activación por voz inicia as aplicacións aprobadas por medio dun comando de voz, sen necesidade de que teñas que usar as mans. Grazas á detección intelixente, protexida e integrada, só ti podes acceder aos datos.\n\n"<a href="">"Máis información sobre a detección intelixente protexida"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Notificacións en pantalla completa"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Permitir notificacións en pantalla completa procedentes desta aplicación"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Permite que esta aplicación amose notificacións en pantalla completa cando o dispositivo estea bloqueado. A aplicación pode usar esta opción para destacar alarmas, chamadas entrantes ou outras notificacións urxentes."</string>
@@ -3893,7 +4002,7 @@
     <string name="battery_saver_on_summary" msgid="4605146593966255848">"Activado"</string>
     <string name="battery_saver_off_scheduled_summary" msgid="2193875981740829819">"Activarase cando a batería estea ao <xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g>"</string>
     <string name="battery_saver_off_summary" msgid="4411561435493109261">"Desactivado"</string>
-    <string name="app_battery_usage_title" msgid="346558380609793334">"Uso da batería pola aplicación"</string>
+    <string name="app_battery_usage_title" msgid="346558380609793334">"Uso da batería por parte das aplicacións"</string>
     <string name="app_battery_usage_summary" msgid="6349965904306339539">"Define o uso da batería para as aplicacións"</string>
     <string name="battery_tips_card_action_button" msgid="4897793527424711648">"Ver configuración"</string>
     <string name="battery_tips_card_action_button_check" msgid="1535140204105479318">"Comprobar"</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> consumiu máis batería do habitual mentres estivo en segundo plano"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> consumiu máis batería mentres estivo en primeiro plano"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> consumiu máis batería do habitual mentres estivo en primeiro plano"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Uso da batería alto"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Uso da batería alto en segundo plano"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Uso da batería alto en primeiro plano"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"navegación do sistema, navegación con 2 botóns, navegación con 3 botóns, navegación con xestos, pasar o dedo"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Asistente dixital"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Pasar o dedo para invocar o asistente"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Pasa o dedo cara arriba desde unha esquina da parte inferior para invocar a aplicación do asistente dixital."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Manter premido Inicio para acceder ao Asistente"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Para abrir a aplicación do asistente dixital, mantén premido o botón de inicio."</string>
     <string name="low_label" msgid="6525629096999711220">"Baixa"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"datos, claves de acceso, contrasinal"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"automático, completar, autocompletar, datos, clave de acceso, contrasinal"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Asegúrate de que confías nesta aplicación&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Autocompletar de Google&gt;%1$s&lt;/xliff:g&gt; utiliza o contido da pantalla para determinar o que se pode completar."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Utilizas &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; usa o que aparece na pantalla para determinar o que se pode autocompletar. A partir de agora, determinada información nova (contrasinais, claves de acceso e outros datos) gardarase aquí."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Utilizas &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; A partir de agora, determinada información nova (contrasinais, claves de acceso e outros datos) gardarase aquí. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; pode usar o que apareza na pantalla para determinar o que se pode autocompletar."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Contrasinais, claves de acceso e servizos de datos"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Queres desactivar %1$s?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Queres desactivar este servizo?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; A información gardada (por exemplo, contrasinais, claves de acceso, métodos de pago…) non se completará cando inicies sesión. Para usar a información gardada, escolle un servizo de contrasinais, claves de acceso ou datos."</string>
@@ -4226,10 +4338,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <string name="enable_angle_as_system_driver" msgid="4648827560023949786">"Experimental: Activar ANGLE"</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Advertencia: Activa ANGLE como controlador OpenGL ES predeterminado. Esta función é experimental e pode que non sexa compatible con algunhas aplicacións de cámara e vídeo."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"Cómpre reiniciar o dispositivo para cambiar o controlador do OpenGL ES do sistema"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Cambios na compatibilidade das aplicacións"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Activa/desactiva os cambios de compatibilidade das aplicacións"</string>
@@ -4787,10 +4897,8 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Proporción"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"Proba unha nova proporción para ver esta aplicación no caso de que non se deseñase para adaptarse ao teu dispositivo (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>)"</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Proba unha nova proporción para ver esta aplicación no caso de que non se deseñase para adaptarse ao teu dispositivo (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>). É posible que algunhas aplicacións non estean optimizadas para determinadas proporcións."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Proba unha nova proporción para ver unha aplicación no caso de que non se deseñase para adaptarse ao teu dispositivo (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>)"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Proba unha nova proporción para ver unha aplicación no caso de que non se deseñase para adaptarse ao teu dispositivo (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>). É posible que algunhas aplicacións non estean optimizadas para determinadas proporcións."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Aplicacións recomendadas"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Apps cambiadas"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Opción predeterminada da aplicación"</string>
@@ -4860,4 +4968,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Buscando aplicacións enganosas"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Revisa a actividade das aplicacións para detectar phishing"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Usar análise para detectar aplicacións enganosas"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Usar análise para detectar aplicacións enganosas para o traballo"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-gu/arrays.xml b/res/values-gu/arrays.xml
index e1457d7..6d45a9e 100644
--- a/res/values-gu/arrays.xml
+++ b/res/values-gu/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"1 મિનિટ પછી"</item>
     <item msgid="1574040255478150028">"5 મિનિટ પછી"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 43c3931..5b887da 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"બ્લૂટૂથ LE ઑડિયો બંધ કરો"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"જો ડિવાઇસ LE ઑડિયો હાર્ડવેર ક્ષમતાઓને સપોર્ટ કરતું હોય, તો બ્લૂટૂથ LE ઑડિયો સુવિધા બંધ કરે છે."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"ડિવાઇસની વિગતોમાં LE ઑડિયો ટૉગલ બતાવો"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"બ્લૂટૂથ LE ઑડિયો મંજૂરીની સૂચિ ચાલુ કરો"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"બ્લૂટૂથ LE ઑડિયો મંજૂરીની સૂચિની સુવિધા ચાલુ કરો."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"બ્લૂટૂથ LE ઑડિયો માટેની વ્હાઇટલિસ્ટને બાયપાસ કરો"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"વ્હાઇટલિસ્ટના માપદંડનું પાલન કરવા માટે LE ઑડિયો પેરિફેરલની ચકાસણી કરવામાં આવી ન હોય, તો પણ ડિફૉલ્ટ તરીકે LE ઑડિયોનો ઉપયોગ કરો."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"મીડિયા ડિવાઇસ"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"કૉલ ડિવાઇસ"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"અન્ય ડિવાઇસ"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"સાચવેલા ડિવાઇસ"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"એકાઉન્ટ સાથે સંકળાયેલું"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"અગાઉ એકાઉન્ટ સાથે વાપરેલું"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"બ્લૂટૂથ જોડી બનાવવાનું ચાલુ કરશે"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"કનેક્શનની પસંદગીઓ"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"પહેલાં કનેક્ટ કરેલા"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"ટેક્સ્ટ ફીલ્ડમાં લખો"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"તમામ સ્ટાઇલસ બટન દબાવવાને અવગણો"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"સ્ટાઇલસ"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"ઑડિયો શેરિંગ"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"ઑડિયો શેર કરો"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"કૉલ અને અલાર્મ"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"તારીખ અને સમય"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"પ્રૉક્સી"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"સાફ કરો"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"લોડ કરી રહ્યું છે…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"નજીકના ડિવાઇસ જોવાની પરવાનગી ધરાવતી ઍપ, કનેક્ટ કરેલા ડિવાઇસના સ્થાનની માહિતી મેળવી શકે છે."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ઍપ અને સેવાઓને આપવામાં આવેલો લોકેશનની માહિતીનો ઍક્સેસ બંધ છે. આમ છતાં જ્યારે તમે કૉલ કે ટેક્સ્ટ મારફતે ઇમર્જન્સી નંબરનો સંપર્ક કરશો, ત્યારે ઇમર્જન્સીમાં પ્રતિસાદ આપનારાઓને તમારા ડિવાઇસના લોકેશનની માહિતી મોકલવામાં આવી શકે છે."</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"લોકેશન સેટિંગ વિશે વધુ જાણો"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"એકાઉન્ટ"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"સુરક્ષા"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"એન્ક્રિપ્શન અને ઓળખપત્રો"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"ઑફિસની પ્રોફાઇલ"</string>
     <string name="private_space_title" msgid="7078627930195569767">"ખાનગી સ્પેસ"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"ખાનગી ફોલ્ડરમાં ઍપ છુપાવો"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"સ્ક્રીન લૉકનો ઉપયોગ કરીને અનલૉક કરો"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"ખાનગી સ્પેસ બતાવો"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"લૉક કરેલી હોય, ત્યારે છુપાવો"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"ખાનગી સ્પેસ લૉક કરેલી હોય, ત્યારે છુપાવો"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"ડિવાઇસની ખાનગી સ્પેસ અન્યોથી છુપાવવા તેને ઍપની સૂચિથી છુપાવો"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"છુપાવેલી હોય, ત્યારે પણ ખાનગી સ્પેસ ઍક્સેસ કરો"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"શોધ બારમાં \'ખાનગી સ્પેસ\' શોધો"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"ખાનગી સ્પેસ ટાઇલ પર ટૅપ કરો"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"તમારી ખાનગી સ્પેસ અનલૉક કરો"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"બંધ છે"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"ચાલુ છે"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"સિસ્ટમ"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"ખાનગી સ્પેસ બનાવો"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"ખાનગી સ્પેસ ડિલીટ કરી"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"ખાનગી સ્પેસ સફળતાપૂર્વક બનાવવામાં આવી"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"ખાનગી સ્પેસ પહેલેથી અસ્તિત્વમાં છે"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"ખાનગી સ્પેસ બનાવી શકાઈ નથી"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"ખાનગી સ્પેસ સફળતાપૂર્વક ડિલીટ કરી"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"ખાનગી સ્પેસ ડિલીટ કરી શકાઈ નથી"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"કોઈ સ્ક્રીન લૉક સેટ કરો"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"ખાનગી સ્પેસનો ઉપયોગ કરવા, આ ડિવાઇસ પર સ્ક્રીન લૉક સેટ કરો."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"સ્ક્રીન લૉક સેટ કરો"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"રદ કરો"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"રદ કરો"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"સેટઅપ કરો"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"ખાનગી સ્પેસનું સેટઅપ કરો"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"માત્ર તમે ઍક્સેસ કરી શકો એવી કોઈ સુરક્ષિત સ્પેસમાં ખાનગી ઍપ છુપાવો"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"તેની કામ કરવાની રીત"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"તમે તમારી ઍપની સૂચિમાં સૌથી નીચેથી ખાનગી સ્પેસ ઍક્સેસ કરી શકશો"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"ખાનગી સ્પેસમાંની ઍપ કોઈ લૉક વડે સુરક્ષિત રાખવામાં આવે છે"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"જ્યારે ખાનગી સ્પેસ લૉક કરવામાં આવી હોય, ત્યારે ખાનગી સ્પેસ સંબંધિત ઍપના નોટિફિકેશન છુપાવવામાં આવે છે"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"જ્યારે ખાનગી સ્પેસ લૉક કરવામાં આવી હોય, ત્યારે પરવાનગી મેનેજર, પ્રાઇવસી ડૅશબોર્ડ અને અન્ય સેટિંગમાં ખાનગી સ્પેસ સંબંધી ઍપ દેખાશે નહીં"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"ખાનગી સ્પેસનું સેટઅપ કરી રહ્યાં છીએ…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"કોઈ લૉક વડે ખાનગી સ્પેસ સુરક્ષિત રાખવામાં આવે છે"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"જ્યારે ખાનગી સ્પેસ લૉક કરવામાં આવી હોય, ત્યારે તેમાં રહેલી ઍપના વપરાશની માહિતી છુપાવવામાં આવે છે"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"તમારી ઍપની સૂચિમાંથી ખાનગી સ્પેસ ઍક્સેસ કરો"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"ખાનગી સ્પેસનું સેટઅપ કરી શકાતું નથી"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"હમણાં ફરીથી પ્રયાસ કરો અથવા થોડા સમય પછી પાછા આવો"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"ફરી પ્રયાસ કરો"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"શું અનલૉક કરવા માટે, સ્ક્રીન લૉકનો ઉપયોગ કરીએ?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"તમે તમારા ડિવાઇસને જે રીતે અનલૉક કરો છો તે જ રીતે તમે ખાનગી સ્પેસને અનલૉક કરી શકો છો અથવા કોઈ અલગ લૉક પસંદ કરી શકો છો"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"સ્ક્રીન લૉકનો ઉપયોગ કરો"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"નવું લૉક પસંદ કરો"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"બધું સેટ થઈ ગયું!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"ખાનગી સ્પેસ ઍક્સેસ કરવા માટે, તમારી હોમ સ્ક્રીનની સૌથી નીચેથી ઉપર તરફ સ્વાઇપ કરો, પછી નીચે સ્ક્રોલ કરો"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"થઈ ગયું"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"ખાનગી સ્પેસને ઍક્સેસ કરવા માટે નીચે સ્ક્રોલ કરો"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"ખાનગી સ્પેસનું સેટઅપ કરવા માટે સાઇન ઇન કરો"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"તમે <xliff:g id="COUNT">%d</xliff:g> જેટલી ફિંગરપ્રિન્ટ ઉમેરી શકો છો"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"તમે મહત્તમ ફિંગરપ્રિન્ટ્સ ઉમેર્યા છે"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"વધુ ફિંગરપ્રિન્ટ્સ ઉમેરી શકતાં નથી"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"કનેક્ટ કરો"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"ડિસ્કનેક્ટ કરો"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"જોડાણ બનાવો અને કનેક્ટ કરો"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"જ્યારે બ્લૂટૂથ ચાલુ હોય, ત્યારે તમારું ડિવાઇસ નજીકનાં અન્ય બ્લૂટૂથ ડિવાઇસ સાથે સંચાર કરી શકે છે."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"બ્લૂટૂથ ચાલુ હોય ત્યારે તે બ્લૂટૂથ ડિવાઇસ સાથે કમ્યુનિકેટ કરે છે"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"જ્યારે બ્લૂટૂથ ચાલુ હોય, ત્યારે તમારું ડિવાઇસ નજીકના અન્ય બ્લૂટૂથ ડિવાઇસ સાથે કનેક્ટ થઈ શકે છે.\n\nડિવાઇસનો અનુભવ બહેતર બનાવવા માટે, જ્યારે બ્લૂટૂથ બંધ હોય ત્યારે પણ ઍપ અને સેવાઓ, નજીકના ડિવાઇસને ગમે ત્યારે સ્કૅન કરી શકે છે. ઉદાહરણ તરીકે, આનો ઉપયોગ લોકેશન આધારિત સુવિધાઓ અને સેવાઓને બહેતર બનાવવા માટે કરી શકાય છે. તમે આને બ્લૂટૂથ સ્કૅનિંગના સેટિંગમાં જઈને બદલી શકો છો."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"બદલો"</string>
     <string name="device_details_title" msgid="1155622417516195481">"ડિવાઇસની વિગતો"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"ડીબગ કરવા યોગ્ય ઍપ માટે બાઇટકોડને ચકાસવા ARTને મંજૂરી આપો"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"રિફ્રેશ થવાનો રેટ બતાવો"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"હાલના ડિસ્પ્લેનો રિફ્રેશ થવાનો રેટ બતાવો"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"HDR/SDR ગુણોત્તર બતાવો"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"હાલનો HDR/SDR ગુણોત્તર બતાવો"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"NFC માટે ડિવાઇસ અનલૉક જરૂરી છે"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android બીમ"</string>
@@ -1062,7 +1137,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"ફોલ્ડ હોવા પર ઍપનો ઉપયોગ કરવાનું ચાલુ રાખો"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"અમુક કન્ટેન્ટ માટે રિફ્રેશ થવાનો રેટ ઑટોમૅટિક રીતે 60થી વધારીને <xliff:g id="ID_1">%1$s</xliff:g> Hz કરે છે. બૅટરીના વપરાશમાં વધારો કરે છે."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"અમુક કન્ટેન્ટ માટે રિફ્રેશ થવાનો રેટ ઑટોમૅટિક રીતે <xliff:g id="ID_1">%1$d</xliff:g> Hz સુધી વધે છે. બૅટરીના વપરાશમાં વધારો કરે છે."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"રિફ્રેશ થવાનો રેટ ફરજિયાત પણે મહત્તમ લેવલે કરો"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"સ્પર્શના પ્રતિભાવમાં સુધારણા અને ઍનિમેશનની ક્વૉલિટી માટે ઉચ્ચતમ રિફ્રેશ રેટ. આ સુવિધા બૅટરીનો વપરાશ વધારે છે."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"સ્ક્રીન અટેન્શન"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"કૉમ્યુનલ સેટિંગ"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APNs"</string>
     <string name="apn_edit" msgid="2003683641840248741">"અ‍ૅક્સેસ પૉઇન્ટમાં ફેરફાર કરો"</string>
+    <string name="apn_add" msgid="9069613192201630934">"ઍક્સેસ પૉઇન્ટ ઉમેરો"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"સેટ નથી"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"સેટ નથી"</string>
     <string name="apn_name" msgid="6677695784108157953">"નામ"</string>
@@ -1320,6 +1396,8 @@
     <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="network_type" msgid="748590707422733595">"નેટવર્કનો પ્રકાર"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"અનુલ્લેખિત"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO પ્રકાર"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO મૂલ્ય"</string>
     <string name="menu_delete" msgid="9199740901584348273">"APN કાઢી નાખો"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"ખોલવા માટે ઍક્સેસિબિલિટી બટનનો ઉપયોગ કરો"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"ખોલવા માટે વૉલ્યૂમ કીને દબાવી રાખો"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"ખોલવા માટે સ્ક્રીનને ત્રણ વાર ટૅપ કરો"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"ખોલવા માટે, સ્ક્રીન પર બે આંગળી વડે ત્રણ વાર ટૅપ કરો"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"ખોલવા માટે સંકેતનો ઉપયોગ કરો"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"ઍક્સેસિબિલિટી સંકેતનો ઉપયોગ કરો"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"આ સુવિધાનો ઉપયોગ કરવા માટે, તમારી સ્ક્રીનમાં નીચેની બાજુએ રહેલા ઍક્સેસિબિલિટી બટન <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>ને ટૅપ કરો.\n\nકોઈ એક સુવિધાથી બીજી સુવિધા પર સ્વિચ કરવા માટે, ઍક્સેસિબિલિટી બટનને ટચ કરીને થોડીવાર દબાવી રાખો."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"આ સુવિધાનો ઉપયોગ કરવા માટે, તમારી સ્ક્રીન પરના ઍક્સેસિબિલિટી બટનને ટૅપ કરો."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"આ સુવિધાનો ઉપયોગ કરવા માટે, વૉલ્યૂમની બન્ને કીને દબાવી રાખો."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"મોટું કરવાનું શરૂ કરવા અને બંધ કરવા માટે, તમારી સ્ક્રીન પર ગમે-ત્યાં ત્રણ વાર ટૅપ કરો."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"મોટું કરવાનું શરૂ અને બંધ કરવા માટે, બે આંગળી વડે તમારી સ્ક્રીન પર ગમે ત્યાં ત્રણ વાર ટૅપ કરો."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"આ સુવિધાનો ઉપયોગ કરવા માટે, 2 આંગળી વડે સ્ક્રીનની નીચેના ભાગથી ઉપરની તરફ સ્વાઇપ કરો.\n\nકોઈ એક સુવિધાથી બીજી સુવિધા પર સ્વિચ કરવા માટે, 2 આંગળી વડે ઉપરની તરફ સ્વાઇપ કરીને દબાવી રાખો."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"આ સુવિધાનો ઉપયોગ કરવા માટે, 3 આંગળી વડે સ્ક્રીનની નીચેના ભાગથી ઉપરની તરફ સ્વાઇપ કરો.\n\nકોઈ એક સુવિધાથી બીજી સુવિધા પર સ્વિચ કરવા માટે, 3 આંગળી વડે ઉપરની તરફ સ્વાઇપ કરીને દબાવી રાખો."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"કોઈ ઍક્સેસિબિલિટી સુવિધાનો ઉપયોગ કરવા માટે, 2 આંગળી વડે સ્ક્રીનની નીચેના ભાગથી ઉપરની તરફ સ્વાઇપ કરો.\n\nકોઈ એક સુવિધાથી બીજી સુવિધા પર સ્વિચ કરવા માટે, 2 આંગળી વડે ઉપરની તરફ સ્વાઇપ કરીને દબાવી રાખો."</string>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"વૉલ્યૂમ કી દબાવી રાખો"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"વૉલ્યૂમ કી દબાવી રાખો"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"વૉલ્યૂમની બન્ને કીને દબાવી રાખો"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"સ્ક્રીન પર બે આંગળી વડે ત્રણ વાર ટૅપ કરો"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"સ્ક્રીન પર બે આંગળી વડે ત્રણ વાર ટૅપ કરો"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"બે આંગળી વડે સ્ક્રીન પર ઝડપથી {0,number,integer} વાર ટૅપ કરો"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"સ્ક્રીનને ત્રણ વાર ટૅપ કરો"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"સ્ક્રીનને ત્રણ વાર ટૅપ કરો"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"ઝડપથી સ્ક્રીન પર {0,number,integer} વાર ટૅપ કરો. આ શૉર્ટકટ તમારા ડિવાઇસને ધીમું કરી શકે છે"</string>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"વાઇબ્રેશન અને હેપ્ટિકનો ઉપયોગ કરો"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"અલાર્મ વાઇબ્રેશન"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"મીડિયા વાઇબ્રેશન"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"કીબોર્ડ માટે વાઇબ્રેશન"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"રિંગ વાઇબ્રેશન"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"નોટિફિકેશન વાઇબ્રેશન"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"પ્રતિસાદને ટચ કરો"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> બાકી"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"ચાર્જ થવામાં <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g>"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"સ્ક્રીન સમય"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"બૅકગ્રાઉન્ડ સમય"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"ઓછી બૅટરી"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"ઍપ્લિકેશનને પૃષ્ઠભૂમિમાં ચાલવાની મંજૂરી આપો"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"બૅકગ્રાઉન્ડ પ્રવૃત્તિને મર્યાદિત કરીએ?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"જો તમે બૅકગ્રાઉન્ડ પ્રવૃત્તિને એક ઍપ માટે મર્યાદિત કરો છો, તો તે અયોગ્ય વર્તન કરી શકે છે"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"આ ઍપ બૅટરી ઑપ્ટિમાઇઝ કરવા સેટ નથી તેથી તમે તેને પ્રતિબંધિત કરી શકશો નહીં.\n\nએને પ્રતિબંધિત કરવા, પહેલાં બૅટરી ઑપ્ટિમાઇઝ કરવાનું ચાલુ કરો."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"બૅટરીનો વપરાશ મેનેજ કરો"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"બૅકગ્રાઉન્ડમાં ઉપયોગ કરવાની મંજૂરી આપો"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"રિઅલ-ટાઇમ અપડેટ માટે, બૅકગ્રાઉન્ડમાં ઉપયોગ કરવાની સુવિધા ચાલુ કરો, બૅટરી બચાવવા તેને બંધ કરો"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"અમર્યાદિત"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"ઑપ્ટિમાઇઝ કરેલો"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"પ્રતિબંધિત"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"છેલ્લા પૂર્ણ ચાર્જ થયા પછીથી"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"સિસ્ટમ ઍપ"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"અનઇન્સ્ટૉલ કરવામાં આવેલી ઍપ"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"અન્ય"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"અંદાજિત બાકી સમય"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"સંપૂર્ણપણે ચાર્જ થવામાં"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"કુલ: એક મિનિટ કરતાં ઓછો સમય"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"બૅકગ્રાઉન્ડ: એક મિનિટ કરતાં ઓછો સમય"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"સ્ક્રીન સમય: એક મિનિટ કરતાં ઓછો"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"એક મિનિટ કરતાં ઓછો"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"કુલ: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"બૅકગ્રાઉન્ડ: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"સ્ક્રીન સમય: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"મોબાઇલ ડેટા અને વાઇ-ફાઇ"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"વ્યક્તિગત ડેટાને ઑટો સિંક કરો"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"ઑફિસના ડેટાને ઑટો સિંક કરો"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"ખાનગી ડેટા ઑટો સિંક કરો"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"ચક્ર બદલો…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"ડેટા વપરાશ ચક્ર ફરીથી સેટ કરવા માટે મહિનાનો દિવસ:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"આ સમયગાળા દરમ્યાન કોઈ એપ્લિકેશને ડેટાનો ઉપયોગ કર્યો નથી."</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"ટેક્સ્ટનું કદ, મોટી પ્રિન્ટ, મોટા ફૉન્ટ, મોટી ટેક્સ્ટ, ઓછું વિઝન, ટેક્સ્ટને મોટી બનાવો, ફૉન્ટ મોટા બનાવનાર, ફૉન્ટની વૃદ્ધિ"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"હંમેશાં ચાલુ રહેતું ઍમ્બિઅન્ટ ડિસ્પ્લે, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"NFC, ટૅગ, રીડર"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"કીબોર્ડ, હેપ્ટિક, વાઇબ્રેટ,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"વૉલ્યૂમ, વાઇબ્રેશન, ખલેલ પાડશો નહીં"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"મીડિયા વૉલ્યૂમ"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"કાસ્ટનું વૉલ્યૂમ"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"તમામ નોટિફિકેશન કન્ટેન્ટ બતાવો"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"માત્ર અનલૉક થાય ત્યારે જ સંવેદનશીલ કન્ટેન્ટ બતાવો"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"નોટિફિકેશન બિલકુલ બતાવશો નહીં"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"તમને લૉક સ્ક્રીનનું ડિસ્પ્લે કેવું જોઈએ છે?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"લૉક સ્ક્રીન"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"કાર્યાલયનું તમામ નોટિફિકેશન કન્ટેન્ટ બતાવો"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"કાર્ય સંબંધિત સંવેદનશીલ કન્ટેન્ટ છુપાવો"</string>
@@ -3354,6 +3448,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"આ ઍપ વધારાના સેટિંગને સપોર્ટ કરતી નથી"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"વધુ સેટિંગ"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"આ ઍપમાં વધુ સેટિંગ ઉપલબ્ધ છે"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"નોટિફિકેશન કૂલડાઉન"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"બધા નોટિફિકેશન પર કૂલડાઉન લાગુ કરો"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"જ્યારે તમને એક જ ઍપમાંથી એક પછી એક ઘણા નોટિફિકેશન મળે ત્યારે ધીમે-ધીમે નોટિફિકેશનનું વૉલ્યૂમ ઓછું કરો"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"વાતચીતો પર કૂલડાઉન લાગુ કરો"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"જ્યારે તમને ટૂંકા ગાળામાં એક જ ચૅટમાંથી ઘણા મેસેજ મળે ત્યારે ધીમે-ધીમે નોટિફિકેશનનું વૉલ્યૂમ ઓછું કરો"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"નોટિફિકેશન કૂલડાઉનનો ઉપયોગ કરશો નહીં"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"કોઈ એક જ ઍપમાંથી એક પછી એક ઘણા નોટિફિકેશન આવે તો પણ, નોટિફિકેશનનું વૉલ્યૂમ ઓછું ક્યારેય ઓછું કરશો નહીં"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"અનલૉક કરેલું હોય ત્યારે વાઇબ્રેટ કરો"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"જ્યારે સ્ક્રીન અનલૉક કરેલી હોય, ત્યારે જ વાઇબ્રેટ કરો"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"ઑફિસની પ્રોફાઇલ પર લાગુ કરો"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"તમારી વ્યક્તિગત પ્રોફાઇલથી તમારી ઑફિસની પ્રોફાઇલ પર નોટિફિકેશન કૂલડાઉન સેટિંગ લાગુ કરો"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR સહાયક સેવાઓ"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"કોઇ ઇન્સ્ટૉલ કરેલ ઍપએ VR સહાયક સેવાઓ તરીકે શરૂ કરવાની વિનંતી કરી નથી."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"<xliff:g id="SERVICE">%1$s</xliff:g> માટે VR સેવા ઍક્સેસની મંજૂરી આપીએ?"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"બધી ફાઇલોને મેનેજ કરવા ઍક્સેસની મંજૂરી આપો"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"આ ઍપને આ ડિવાઇસ અથવા કોઈપણ કનેક્ટેડ સ્ટોરેજ વૉલ્યૂમ પરની બધી ફાઇલો વાંચવા, ફેરફાર કરવા અને ડિલીટ કરવાની મંજૂરી આપો. જો મંજૂરી આપવામાં આવે, તો ઍપ તમને જાણ કર્યા વિના ફાઇલોને ઍક્સેસ કરી શકે છે."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"બધી ફાઇલો ઍક્સેસ કરી શકે છે"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"વૉઇસ દ્વારા સક્રિય ઍપ"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"વૉઇસ સક્રિયકરણને મંજૂરી આપો"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"વૉઇસ સક્રિયકરણ વૉઇસ આદેશનો ઉપયોગ કરીને મંજૂર કરેલી ઍપ, હાથના ઉપયોગ વિના ચાલુ કરે છે. બિલ્ટ-ઇન અડૅપ્ટિવ સેન્સિંગ એ ખાતરી કરે છે કે ડેટા ફક્ત તમારા માટે ખાનગી રહે.\n\n"<a href="">"સુરક્ષિત અડૅપ્ટિવ સેન્સિંગ વિશે વધુ"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"પૂર્ણ સ્ક્રીનના નોટિફિકેશન"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"આ ઍપમાંથી પૂર્ણ સ્ક્રીનના નોટિફિકેશનને મંજૂરી આપો"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"જ્યારે ડિવાઇસ લૉક કરેલું હોય, ત્યારે આ ઍપને પૂર્ણ સ્ક્રીનમાં નોટિફિકેશન બતાવવાની મંજૂરી આપો. ઍપ આનો ઉપયોગ અલાર્મ, ઇનકમિંગ કૉલ અથવા અન્ય તાકીદના નોટિફિકેશન હાઇલાઇટ કરવા માટે કરી શકે છે."</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"બૅકગ્રાઉન્ડમાં <xliff:g id="APP_LABEL">%1$s</xliff:g> દ્વારા બૅટરીનો સામાન્ય કરતાં વધુ વપરાશ થયો"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"ફૉરગ્રાઉન્ડમાં <xliff:g id="APP_LABEL">%1$s</xliff:g> દ્વારા બૅટરીનો વધુ વપરાશ થયો"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"ફૉરગ્રાઉન્ડમાં <xliff:g id="APP_LABEL">%1$s</xliff:g> દ્વારા બૅટરીનો સામાન્ય કરતાં વધુ વપરાશ થયો"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"બૅટરીનો ઉચ્ચ વપરાશ"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"બૅકગ્રાઉન્ડમાં બૅટરીનો ઉચ્ચ વપરાશ"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"ફૉરગ્રાઉન્ડમાં બૅટરીનો ઉચ્ચ વપરાશ"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"સિસ્ટમ નૅવિગેશન, 2-બટનથી નૅવિગેશન, 3-બટનથી નૅવિગેશન, સંકેત દ્વારા નૅવિગેશન, સ્વાઇપ કરો"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"ડિજિટલ આસિસ્ટંટ"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"આસિસ્ટંટ શરૂ કરવા માટે સ્વાઇપ કરો"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"ડિજિટલ આસિસ્ટંટ ઍપ શરૂ કરવા માટે, સ્ક્રીન પર નીચેના ખૂણાથી ઉપર તરફ સ્વાઇપ કરો."</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"ડિજિટલ આસિસ્ટંટ ઍપ શરૂ કરવા માટે, સૌથી નીચેના ખૂણેથી ઉપરની તરફ સ્વાઇપ કરો"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Assistant માટે હોમ બટન દબાવી રાખો"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"ડિજિટલ આસિસ્ટંટ ઍપ શરૂ કરવા માટે, હોમ બટન દબાવી રાખો."</string>
     <string name="low_label" msgid="6525629096999711220">"ઓછી"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"ડેટા, પાસકી, પાસવર્ડ"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"ઑટો, ભરો, ઑટોમૅટિક રીતે ભરવાની સુવિધા, ડેટા, પાસકી, પાસવર્ડ"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;ખાતરી કરો કે તમે આ ઍપનો વિશ્વાસ કરો છો&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google ઑટોમૅટિક રીતે ભરવાની સુવિધા&gt;%1$s&lt;/xliff:g&gt; તમારી સ્ક્રીન પર શું છે તેનો ઉપયોગ એ નક્કી કરવા કરે છે કે ઑટોમૅટિક રીતે શું દાખલ થશે."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&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_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Use &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_picker_title" msgid="8191267620665129205">"પાસવર્ડ, પાસકી, અને ડેટા સંબંધિત સેવાઓ"</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>
@@ -4226,8 +4336,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- 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" msgid="4648827560023949786">"પ્રાયોગિક: ANGLE ચાલુ કરો"</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>
@@ -4785,10 +4895,8 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"સાપેક્ષ ગુણોત્તર"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"જો આ ઍપ તમારા <xliff:g id="DEVICE_NAME">%1$s</xliff:g>ને અનુરૂપ ડિઝાઇન કરેલી ન હોય, તો તેને જોવા માટે કોઈ નવો સાપેક્ષ ગુણોત્તર અજમાવો"</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"જો આ ઍપ તમારા <xliff:g id="DEVICE_NAME">%1$s</xliff:g>ને અનુરૂપ ડિઝાઇન કરેલી ન હોય, તો તેને જોવા માટે કોઈ નવો સાપેક્ષ ગુણોત્તર અજમાવો. ચોક્કસ સાપેક્ષ ગુણોત્તર માટે કેટલીક ઍપ ઑપ્ટિમાઇઝ કરવામાં આવે નહીં એમ બની શકે છે."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"જો ઍપ તમારા <xliff:g id="DEVICE_NAME">%1$s</xliff:g>ને અનુરૂપ ડિઝાઇન કરેલી ન હોય, તો તેને જોવા માટે કોઈ નવો સાપેક્ષ ગુણોત્તર અજમાવો"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"જો ઍપ તમારા <xliff:g id="DEVICE_NAME">%1$s</xliff:g>ને અનુરૂપ ડિઝાઇન કરેલી ન હોય, તો તેને જોવા માટે કોઈ નવો સાપેક્ષ ગુણોત્તર અજમાવો. ચોક્કસ સાપેક્ષ ગુણોત્તર માટે કેટલીક ઍપ ઑપ્ટિમાઇઝ કરવામાં આવે નહીં એમ બની શકે છે."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"સૂચવેલી ઍપ"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"બદલાવેલી ઍપ"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"ઍપ ડિફૉલ્ટ"</string>
@@ -4858,4 +4966,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"છોતરામણી ઍપ માટે સ્કૅન કરી રહ્યાં છીએ"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"ફિશિંગ માટે ઍપ પ્રવૃત્તિ ચેક કરો"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"ભ્રામક ઍપ માટે સ્કૅનિંગનો ઉપયોગ કરો"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"ઑફિસ સંબંધિત ઍપ માટે સ્કૅનિંગનો ઉપયોગ કરો"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-hi/arrays.xml b/res/values-hi/arrays.xml
index 24d45fc..8ba24da 100644
--- a/res/values-hi/arrays.xml
+++ b/res/values-hi/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"एक मिनट बाद"</item>
     <item msgid="1574040255478150028">"पांच मिनट बाद"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index fcaefff..9daa93a 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"\'ब्लूटूथ LE Audio\' को बंद करें"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"अगर डिवाइस पर LE Audio हार्डवेयर चलता है, तो \'ब्लूटूथ LE Audio\' को बंद करें."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"डिवाइस डिटेल में LE Audio टॉगल दिखाएं"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"\'ब्लूटूथ LE Audio\' की अनुमति वाली सूची की सुविधा चालू करें"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"\'ब्लूटूथ LE Audio\' की अनुमति वाली सूची की सुविधा चालू करें."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"ब्लूटूथ LE Audio के लिए, जिन लोगों या संगठनों को अनुमति मिली है उनकी सूची बायपास करें"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"डिफ़ॉल्ट रूप से LE Audio का इस्तेमाल करें. भले ही, जिन लोगों या संगठनों को अनुमति मिली है उनकी सूची में शामिल करने के लिए, LE Audio के साथ काम करने वाले डिवाइस की पुष्टि न की गई हो."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"मीडिया डिवाइस"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"कॉल की सुविधा वाले डिवाइस"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"दूसरे डिवाइस"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"सेव किए गए डिवाइस"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"इस खाते से जुड़े डिवाइस"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"डिवाइस को इस खाते से पहले भी कनेक्ट किया गया है"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"दूसरे डिवाइस से जुड़ने के लिए ब्लूटूथ चालू हो जाएगा"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"कनेक्शन की सेटिंग"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"पहले कनेक्ट किए गए डिवाइस"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"टेक्स्ट फ़ील्ड में कुछ लिखें"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"स्टाइलस के बटन के सभी इनपुट को नज़रअंदाज़ करें"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"स्टाइलस"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"ऑडियो शेयर करने की सुविधा"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"ऑडियो शेयर करें"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"कॉल और अलार्म"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"तारीख और समय"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"प्रॉक्सी"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"साफ़ करें"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"लोड हो रहा है…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"ऐसे ऐप्लिकेशन, जिन्हें आस-पास मौजूद डिवाइसों के साथ इंटरैक्ट करने की अनुमति मिली है वे कनेक्ट किए गए डिवाइसों की जगह की जानकारी का पता लगा सकते हैं."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ऐप्लिकेशन और सेवाओं के लिए, जगह की जानकारी का ऐक्सेस बंद है. आपके डिवाइस की जगह की जानकारी, आपातकालीन स्थिति में मदद करने वाले लोगों को अब भी दी जा सकती है. ऐसा आपके किसी आपातकालीन नंबर पर कॉल करने या मैसेज भेजने पर किया जाएगा."</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"जगह की जानकारी की सेटिंग के बारे में ज़्यादा जानें"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"खाते"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"सुरक्षा"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"एन्क्रिप्ट (सुरक्षित) करना और क्रेडेंशियल"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"वर्क प्रोफ़ाइल"</string>
     <string name="private_space_title" msgid="7078627930195569767">"प्राइवेट स्पेस"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"प्राइवेट फ़ोल्डर में ऐप्लिकेशन छिपाएं"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"अनलॉक करने के लिए, स्क्रीन लॉक का इस्तेमाल करें"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"प्राइवेट स्पेस दिखाएं"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"लॉक होने पर छिपाएं"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"लॉक होने पर प्राइवेट स्पेस छिपाएं"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"डिवाइस पर प्राइवेट स्पेस छिपाने के लिए, अपने ऐप्लिकेशन सूची से इसे छिपाएं"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"छिपाए जाने पर प्राइवेट स्पेस ऐक्सेस करें"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"खोज बार में \'प्राइवेट स्पेस\' को खोजें"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"प्राइवेट स्पेस के टाइल पर टैप करें"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"अपना प्राइवेट स्पेस अनलॉक करें"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"बंद है"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"चालू है"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"सिस्टम"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"प्राइवेट स्पेस बनाएं"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"प्राइवेट स्पेस मिटाएं"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"प्राइवेट स्पेस बना लिया गया है"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"प्राइवेट स्पेस पहले से मौजूद है"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"प्राइवेट स्पेस नहीं बनाया जा सका"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"प्राइवेट स्पेस को मिटा दिया गया है"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"प्राइवेट स्पेस को मिटाया नहीं जा सका"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"स्क्रीन लॉक सेट करें"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"डिवाइस पर स्क्रीन लॉक सेट करके प्राइवेट स्पेस इस्तेमाल करें."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"स्क्रीन लॉक सेट करें"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"अभी नहीं"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"रद्द करें"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"सेट अप करें"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"प्राइवेट स्पेस सेट अप करें"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"निजी ऐप्लिकेशन को उस सुरक्षित स्पेस में छिपाएं जिसका ऐक्सेस सिर्फ़ आपके पास हो"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"यह सुविधा कैसे काम करती है"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"ऐप्लिकेशन की सूची के नीचे मौजूद प्राइवेट स्पेस को ऐक्सेस किया जा सकता है"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"लॉक के ज़रिए, प्राइवेट स्पेस में ऐप्लिकेशन सुरक्षित रखे जाते हैं"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"लॉक होने पर, प्राइवेट स्पेस में ऐप्लिकेशन की सूचनाएं छिपी रहती हैं"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"प्राइवेट स्पेस लॉक होने पर, प्राइवेट स्पेस के ऐप्लिकेशन अनुमतियों को मैनेज करने की सेटिंग, प्राइवसी डैशबोर्ड, और अन्य सेटिंग में नहीं दिखेंगे"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"प्राइवेट स्पेस सेट अप किया जा रहा है…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"लॉक के ज़रिए, प्राइवेट स्पेस सुरक्षित रखा जाता है"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"लॉक होने पर, प्राइवेट स्पेस वाले ऐप्लिकेशन के इस्तेमाल से जुड़ी जानकारी छिपा दी जाती है"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"ऐप्लिकेशन की सूची से प्राइवेट स्पेस को ऐक्सेस करें"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"प्राइवेट स्पेस को सेट अप नहीं किया जा सका"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"फिर से कोशिश करें या बाद में करके देखें"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"फिर से कोशिश करें"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"अनलॉक करने के लिए स्क्रीन लॉक का इस्तेमाल करना है?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"डिवाइस की तरह ही प्राइवेट स्पेस को अनलॉक किया जा सकता है या कोई दूसरा लॉक सेट किया जा सकता है"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"स्क्रीन लॉक का इस्तेमाल करें"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"नया लॉक चुनें"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"हो गया!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"प्राइवेट स्पेस को ऐक्सेस करने के लिए, होम स्क्रीन पर नीचे से ऊपर की ओर स्वाइप करें. इसके बाद, नीचे की ओर स्क्रोल करें"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"हो गया"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"प्राइवेट स्पेस ऐक्सेस करने के लिए नीचे की ओर स्क्रोल करें"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"प्राइवेट स्पेस को सेट अप करने के लिए साइन इन करें"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"ज़्यादा से ज़्यादा <xliff:g id="COUNT">%d</xliff:g> फ़िंगरप्रिंट जोड़े जा सकते हैं"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"आप अधिकतम संख्या में फ़िंगरप्रिंट जोड़ चुके हैं"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"और ज़्यादा फ़िंगरप्रिंट नहीं जोड़े जा सकते"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"कनेक्ट करें"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"डिसकनेक्ट करें"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"जोड़े और कनेक्‍ट करें"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"ब्लूटूथ चालू होने पर, आपका डिवाइस आस-पास के दूसरे ब्लूटूथ डिवाइसों से संपर्क कर सकता है."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"ब्लूटूथ ऑन होने पर आपका डिवाइस आस-पास के अन्य ब्लूटूथ डिवाइसों से संपर्क कर सकता है"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"ब्लूटूथ चालू हाेने पर, आपका डिवाइस आस-पास के ब्लूटूथ डिवाइसों से कनेक्ट हो सकता है. \n\nडिवाइस इस्तेमाल करने के अनुभव काे बेहतर बनाने के लिए, ऐप्लिकेशन और सेवाओं की मदद से किसी भी समय आस-पास के ब्लूटूथ डिवाइसों काे स्कैन किया जा सकता है. ऐसा ब्लूटूथ बंद होने पर भी किया जा सकता है. उदाहरण के लिए, इसका इस्तेमाल जगह से जुड़ी सुविधाओं और सेवाओं को बेहतर बनाने के लिए किया जा सकता है. ब्लूटूथ स्कैनिंग की सेटिंग में जाकर, इसे बदला जा सकता है."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"बदलें"</string>
     <string name="device_details_title" msgid="1155622417516195481">"डिवाइस की जानकारी"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Android रनटाइम को, डीबग करने लायक ऐप्लिकेशन के लिए बाइट कोड की पुष्टि करने की अनुमति दें"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"रीफ़्रेश दर दिखाएं"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"डिसप्ले की मौजूदा रीफ़्रेश दर दिखाएं"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"एचडीआर/एसडीआर रेशियो दिखाएं"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"एचडीआर/एसडीआर का मौजूदा रेशियो दिखाएं"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"एनएफ़सी"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"एनएफ़सी के लिए डिवाइस को अनलॉक करने की ज़रूरत है"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android बीम"</string>
@@ -1060,9 +1135,9 @@
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"बंद"</string>
     <string name="display_white_balance_title" msgid="2624544323029364713">"डिसप्ले का वाइट बैलेंस"</string>
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
-    <string name="fold_lock_behavior_title" msgid="786228803694268449">"फ़ोल्ड करने पर ऐप्लिकेशन का इस्तेमाल जारी रखें"</string>
+    <string name="fold_lock_behavior_title" msgid="786228803694268449">"फ़ोल्ड करने पर भी, ऐप्लिकेशन का इस्तेमाल जारी रखें"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"स्मूद डिसप्ले"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"कुछ कॉन्टेंट के लिए, यह अपने-आप ही रीफ़्रेश दर को 60 से बढ़ाकर <xliff:g id="ID_1">%1$s</xliff:g> हर्ट्ज़ कर देता है. इसे चालू करने पर, बैटरी ज़्यादा खर्च होती है."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"इस सेटिंग को चालू करने पर, कुछ कॉन्टेंट के लिए रीफ़्रेश दर अपने-आप <xliff:g id="ID_1">%1$d</xliff:g> हर्ट्ज़ तक बढ़ जाती है. इसमें ज़्यादा बैटरी खर्च होती है."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"रीफ़्रेश दर को सबसे ज़्यादा पर सेट करें"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"रीफ़्रेश होने की सबसे ज़्यादा दर जिसके लागू होने के बाद छूकर की जाने वाली कार्रवाइयां तेज़ हो जाती हैं. साथ ही, ऐनिमेशन की क्वालिटी बेहतर हो जाती है. इसमें बैटरी ज़्यादा खर्च होती है."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"स्क्रीन चालू रखने की सुविधा"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"कम्यूनिटी सेटिंग"</string>
     <string name="apn_settings" msgid="4295467389400441299">"ऐक्सेस पॉइंट नाम"</string>
     <string name="apn_edit" msgid="2003683641840248741">"ऐक्सेस पॉइंट में बदलाव करें"</string>
+    <string name="apn_add" msgid="9069613192201630934">"ऐक्सेस पॉइंट जोड़ें"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"सेट नहीं है"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"सेट नहीं है"</string>
     <string name="apn_name" msgid="6677695784108157953">"नाम"</string>
@@ -1320,6 +1396,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"एपीएन चालू है"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"एपीएन बंद है"</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>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO वैल्यू"</string>
     <string name="menu_delete" msgid="9199740901584348273">"APN मिटाएं"</string>
@@ -1664,7 +1742,7 @@
     <string name="system_package" msgid="7559476279008519360">"सिस्‍टम अपडेट बाहरी मीडिया में इंस्टॉल नहीं किये जा सकते"</string>
     <string name="move_error_device_admin" msgid="1561502976834303626">"डिवाइस व्यवस्थापक ऐप्लिकेशन को बाहरी मीडिया पर इंस्टॉल नहीं किया जा सकता"</string>
     <string name="force_stop_dlg_title" msgid="86745852555490146">"ज़बरदस्ती रोकें?"</string>
-    <string name="force_stop_dlg_text" msgid="1527286468544457368">"अगर आप किसी ऐप को बलपूर्वक रोकते हैं, तो यह गलत व्यवहार कर सकता है."</string>
+    <string name="force_stop_dlg_text" msgid="1527286468544457368">"किसी ऐप्लिकेशन को ज़बरदस्ती रोकने पर, ऐसा हो सकता है कि वह ठीक तरह से काम न करे."</string>
     <string name="app_disable_dlg_positive" msgid="1414218905322009505">"ऐप को अक्षम करें"</string>
     <string name="app_disable_dlg_text" msgid="2449382902751908916">"अगर आप इस ऐप्लिकेशन को बंद कर देते हैं, तो हो सकता है कि Android और दूसरे ऐप्लिकेशन ठीक से काम न करें. ध्यान रखें कि आप इस ऐप्लिकेशन को मिटा नहीं सकते क्योंकि यह आपके डिवाइस पर पहले से इंस्टॉल होकर आया है. इसे बंद करने पर ऐप्लिकेशन बंद हो जाएगा और आपके डिवाइस पर दिखाई नहीं देगा."</string>
     <string name="app_install_details_group_title" msgid="1172114479073704677">"स्टोर"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"इसे खोलने के लिए सुलभता बटन का इस्तेमाल करें"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"खोलने के लिए, आवाज़ वाले दोनों बटन दबाकर रखें"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"खोलने के लिए स्क्रीन पर तीन बार टैप करें"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"खोलने के लिए, स्क्रीन पर दो उंगलियों से तीन बार टैप करें"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"इसे खोलने के लिए हाथ के जेस्चर का इस्तेमाल करें"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"सुलभता से जुड़े हाथ के जेस्चर का इस्तेमाल करें"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"इस सुविधा का इस्तेमाल करने के लिए, स्क्रीन पर सबसे नीचे मौजूद सुलभता बटन <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> पर टैप करें.\n\nएक सुविधा से दूसरी सुविधा पर जाने के लिए, सुलभता बटन को दबाकर रखें."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"इस सुविधा का इस्तेमाल करने के लिए, स्क्रीन पर मौजूद सुलभता बटन पर टैप करें."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"इस सुविधा का इस्तेमाल करने के लिए, आवाज़ वाले दोनों बटन दबाकर रखें."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"ज़ूम करने की सुविधा को शुरू और बंद करने के लिए, स्क्रीन पर कहीं भी तीन बार टैप करें."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"ज़ूम करने की सुविधा को शुरू और बंद करने के लिए, स्क्रीन पर कहीं भी दो उंगलियों से तीन बार टैप करें."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"इस सुविधा का इस्तेमाल करने के लिए, स्क्रीन पर नीचे से ऊपर की ओर, दो उंगलियों से स्वाइप करें.\n\nएक सुविधा से दूसरी सुविधा पर जाने के लिए, दो उंगलियों से ऊपर की ओर स्वाइप करें और स्क्रीन को थोड़ी देर दबाकर रखें."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"इस सुविधा का इस्तेमाल करने के लिए, स्क्रीन पर नीचे से ऊपर की ओर, तीन उंगलियों से स्वाइप करें.\n\nएक सुविधा से दूसरी सुविधा पर जाने के लिए, दो उंगलियों से ऊपर की ओर स्वाइप करें और स्क्रीन को थोड़ी देर दबाकर रखें."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"सुलभता सुविधा का इस्तेमाल करने के लिए, स्क्रीन पर नीचे से ऊपर की ओर, दो उंगलियों से स्वाइप करें.\n\nएक सुविधा से दूसरी सुविधा पर जाने के लिए, दो उंगलियों से ऊपर की ओर स्वाइप करें और स्क्रीन को थोड़ी देर दबाकर रखें."</string>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"आवाज़ वाले बटन दबाकर रखें"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"आवाज़ कम-ज़्यादा करने वाले दोनों बटन दबाकर रखें"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"आवाज़ वाले दोनों बटन दबाकर रखें"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"स्क्रीन पर दो उंगलियों से तीन बार टैप करें"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"स्क्रीन पर दो उंगलियों से तीन बार टैप करें"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"स्क्रीन पर तुरंत दो उंगलियों से {0,number,integer} बार टैप करें"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"स्क्रीन पर तीन बार टैप करें"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"स्क्रीन पर तीन बार टैप करें"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"स्क्रीन पर जल्दी-जल्दी {0,number,integer} बार टैप करें. इस शॉर्टकट के इस्तेमाल से आपके डिवाइस की रफ़्तार धीमी हो सकती है"</string>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"वाइब्रेशन और हैप्टिक का इस्तेमाल करें"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"अलार्म के लिए वाइब्रेशन"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"मीडिया के लिए वाइब्रेशन"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"कीबोर्ड के लिए वाइब्रेशन"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"रिंग के लिए वाइब्रेशन"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"सूचना के लिए वाइब्रेशन"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"टच के लिए वाइब्रेशन"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> शेष"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"चार्ज होने में <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> शेष"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"ऐप्लिकेशन के इस्तेमाल में बीता समय"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"बैकग्राउंड में ऐप्लिकेशन चलने का समय"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"बैटरी कम है"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"ऐप्लिकेशन को बैकग्राउंड में चलने दें"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"ऐप की बैकग्राउंड गतिविधि को सीमित करें?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"अगर आप ऐप की बैकग्राउंड गतिविधि को सीमित करते हैं, तो हो सकता है यह ठीक ढंग से काम न करे"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"ऐप्लिकेशन पर रोक नहीं लगेगी क्योंकि यह बैटरी ऑप्टिमाइज़ नहीं कर सकता.\n\nबैटरी ऑप्टिमाइज़ेशन चालू करके ही ऐसा हो सकता है."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"बैटरी खर्च को मैनेज करें"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"\'ऐप्लिकेशन को बैकग्राउंड में चलने\' की सुविधा को चालू करें"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"रीयल-टाइम अपडेट पाने के लिए, \'ऐप्लिकेशन को बैकग्राउंड में चलने\' की सुविधा चालू करें और बैटरी बचाने के लिए इस सुविधा को बंद करें"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"कोई पाबंदी नहीं"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"ऑप्टिमाइज़ की गई सेटिंग"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"पाबंदी लगी है"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"पूरी चार्ज होने के बाद"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"सिस्टम के ऐप्लिकेशन"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"अनइंस्टॉल किए गए ऐप्लिकेशन"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"अन्य"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"अनुमानित बचा हुआ समय"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"पूरी तरह चार्ज होने तक"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"इस्तेमाल का कुल समय: एक मिनट से कम"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"बैकग्राउंड में इस्तेमाल होने का समय: एक मिनट से कम"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"किसी डिवाइस के इस्तेमाल में बीता समय: एक मिनट से कम"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"एक मिनट से कम"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"इस्तेमाल का कुल समय: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"बैकग्राउंड में इस्तेमाल होने का समय: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"किसी डिवाइस के इस्तेमाल में बीता समय: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"मोबाइल डेटा और वाई-फ़ाई"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"निजी डेटा अपने-आप सिंक हो जाए"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"वर्क डेटा अपने-आप सिंक हो"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"निजी डेटा ऑटो-सिंक होने दें"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"चक्र बदलें ..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"डेटा खर्च की अवधि रीसेट करने के लिए महीने का दिन:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"इस दौरान कि‍सी भी ऐप्लिकेशन ने डेटा का उपयोग नहीं कि‍या."</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"टेक्स्ट का साइज़, बड़ा प्रिंट, बड़ा फ़ॉन्ट, बड़ा टेक्स्ट, कम दृष्टि, टेक्स्ट बड़ा करना, फ़ॉन्ट बड़ा करने वाला टूल, फ़ॉन्ट बड़ा करना"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"हमेशा चालू रहने वाला ऐंबियंट डिसप्ले, एओडी"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"एनएफ़सी, टैग, रीडर"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"कीबोर्ड, हैप्टिक, वाइब्रेट,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"आवाज़, वाइब्रेशन, परेशान न करें"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"मीडिया की आवाज़"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"आवाज़ कास्ट करें"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"सारी सूचनाएं दिखाएं"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"डिवाइस अनलॉक होने पर ही संवेदनशील कॉन्टेंट दिखाएं"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"सूचनाएं बिलकुल न दिखाएं"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"आपको लॉक स्क्रीन पर क्या देखना है?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"लॉक स्क्रीन"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"ऑफ़िस के काम से जुड़ी सभी सूचनाएं दिखाएं"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"ऑफ़िस के काम से जुड़ी संवेदनशील सूचनाएं छिपाएं"</string>
@@ -3354,6 +3448,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"यह ऐप्लिकेशन, बेहतर सेटिंग के साथ काम नहीं करता है"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"अन्य सेटिंग"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"इस ऐप्लिकेशन में ज़्यादा सेटिंग उपलब्ध हैं"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"सूचनाओं की कूलडाउन सेटिंग"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"सभी सूचनाओं पर कूलडाउन सेटिंग लागू करें"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"एक ही ऐप्लिकेशन से बार-बार कई सूचनाएं मिलने पर, सूचनाओं की संख्या धीरे-धीरे कम हो जाती है"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"बातचीत पर कूलडाउन सेटिंग लागू करें"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"एक ही चैट से बहुत कम समय में कई मैसेज मिलने पर, सूचनाओं की संख्या धीरे-धीरे कम हो जाती है"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"सूचनाओं पर कूलडाउन सेटिंग का इस्तेमाल न करें"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"सूचनाओं की संख्या को कभी कम नहीं होती, फिर चाहे एक ही ऐप्लिकेशन से बार-बार कितनी भी सूचनाएं मिल रही हों"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"स्क्रीन अनलॉक होने पर वाइब्रेट हो"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"स्क्रीन अनलॉक होने पर ही वाइब्रेट हो"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"वर्क प्रोफ़ाइल पर लागू करें"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"अपनी निजी प्रोफ़ाइल से वर्क प्रोफ़ाइल पर, सूचनाओं की कूलडाउन सेटिंग लागू करें"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"वीआर सहायक सेवाएं"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"इंस्टॉल किए गए किसी भी ऐप्लिकेशन ने, वीआर सहायक सेवाओं के तौर पर चलाए जाने का अनुरोध नहीं किया है."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"<xliff:g id="SERVICE">%1$s</xliff:g> को वीआर सेवा के इस्तेमाल की अनुमति दें?"</string>
@@ -3610,8 +3715,8 @@
     <string name="runtime_permissions_summary_control_app_access" msgid="3744591396348990500">"यह कंट्रोल करें कि कौनसा ऐप्लिकेशन किस डेटा को ऐक्सेस कर सकता है"</string>
     <string name="permissions_usage_title" msgid="2942741460679049132">"प्राइवसी डैशबोर्ड"</string>
     <string name="permissions_usage_summary" msgid="6784310472062516454">"यह दिखाता है कि किन ऐप्लिकेशन ने हाल ही में, अनुमतियों का इस्तेमाल किया है"</string>
-    <string name="unused_apps" msgid="4566272194756830656">"इस्तेमाल नहीं किए गए ऐप्लिकेशन"</string>
-    <string name="unused_apps_summary" msgid="4236371818881973021">"{count,plural, =1{इस्तेमाल न होने वाला # ऐप्लिकेशन}one{इस्तेमाल न होने वाला # ऐप्लिकेशन}other{इस्तेमाल न होने वाले # ऐप्लिकेशन}}"</string>
+    <string name="unused_apps" msgid="4566272194756830656">"इस्तेमाल नहीं किए जा रहे ऐप्लिकेशन"</string>
+    <string name="unused_apps_summary" msgid="4236371818881973021">"{count,plural, =1{# ऐप्लिकेशन इस्तेमाल नहीं किया जा रहा}one{# ऐप्लिकेशन इस्तेमाल नहीं किया जा रहा}other{# ऐप्लिकेशन इस्तेमाल नहीं किए जा रहे}}"</string>
     <string name="unused_apps_category" msgid="8954930958175500851">"इस्तेमाल न किए जाने वाले ऐप की सेटिंग"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"इस्तेमाल न होने पर ऐप गतिविधि रोकें"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"ऐप्लिकेशन की अनुमतियां हटाएं, डिवाइस में कुछ समय के लिए रहने वाली फ़ाइलें मिटाएं, और सूचनाएं रोकें"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"सभी फ़ाइलों को मैनेज करने की अनुमति दें"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"इस ऐप्लिकेशन को अनुमति दें, ताकि वह इस डिवाइस और इससे जुड़े स्टोरेज पर मौजूद फ़ाइलों को पढ़ सके, उनमें बदलाव कर सके, और उन्हें मिटा सके. अनुमति दिए जाने पर, यह ऐप्लिकेशन आपको सूचना दिए बिना फ़ाइलों को ऐक्सेस कर सकता है."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"सभी फ़ाइलें ऐक्सेस कर सकते हैं"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"बोलकर चालू करने की सुविधा वाले ऐप्लिकेशन"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"बोलकर चालू करने की अनुमति दें"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"बोलकर चालू करने की सुविधा, मंज़ूरी पा चुके ऐप्लिकेशन को बोले गए निर्देशों की मदद से चालू कर सकती है. पहले से मौजूद अडैप्टिव सेंसिंग का इस्तेमाल करके, यह पक्का किया जाता है कि डेटा निजी बना रहे.\n\n"<a href="">"सुरक्षित अडैप्टिव सेंसिंग के बारे में ज़्यादा जानें"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"फ़ुल स्क्रीन पर दिखने वाली सूचनाएं"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"इस ऐप्लिकेशन से सूचनाओं को फ़ुल स्क्रीन में दिखाने की अनुमति दें"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"इस ऐप्लिकेशन को, डिवाइस लॉक होने पर सूचनाओं को फ़ुल स्क्रीन पर दिखाने की अनुमति दें. ऐसा हो सकता है कि ऐप्लिकेशन इनका इस्तेमाल अलार्म, आने वाले (इनकमिंग) कॉल या अन्य ज़रूरी सूचनाओं को हाइलाइट करने के लिए करें."</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ने बैकग्राउंड में चलने के दौरान, सामान्य से ज़्यादा बैटरी खर्च की"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ने फ़ोरग्राउंड में चलने के दौरान, ज़्यादा बैटरी खर्च की"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ने फ़ोरग्राउंड में चलने के दौरान, सामान्य से ज़्यादा बैटरी खर्च की"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"ऐप्लिकेशन ने ज़्यादा बैटरी खर्च की"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"ऐप्लिकेशन ने बैकग्राउंड में ज़्यादा बैटरी खर्च की"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"ऐप्लिकेशन ने फ़ोरग्राउंड में ज़्यादा बैटरी खर्च की"</string>
@@ -3946,7 +4056,7 @@
     <string name="display_cutout_emulation_keywords" msgid="4506580703807358127">"डिसप्ले कटआउट, नॉच"</string>
     <string name="overlay_option_device_default" msgid="7986355499809313848">"डिवाइस की डिफ़ॉल्ट सेटिंग"</string>
     <string name="overlay_toast_failed_to_apply" msgid="4839587811338164960">"ओवरले लागू नहीं किया जा सका"</string>
-    <string name="special_access" msgid="1767980727423395147">"ऐप्लिकेशन के लिए खास ऐक्सेस"</string>
+    <string name="special_access" msgid="1767980727423395147">"खास ऐक्सेस वाले ऐप्लिकेशन"</string>
     <string name="special_access_more" msgid="132919514147475846">"और देखें"</string>
     <string name="long_background_tasks_label" msgid="3169590134850226687">"लंबे बैकग्राउंड टास्क"</string>
     <string name="long_background_tasks_switch_title" msgid="2491623894899492543">"लंबे बैकग्राउंड टास्क करने की अनुमति दें"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"सिस्टम नेविगेशन, दो बटन वाला नेविगेशन, तीन बटन वाला नेविगेशन, हाथ के जेस्चर (स्पर्श) वाला नेविगेशन, स्वाइप"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"डिजिटल असिस्टेंट"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"असिस्टेंट को चालू करने के लिए स्वाइप करें"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"डिजिटल असिस्टेंट ऐप्लिकेशन चालू करने के लिए, स्क्रीन पर नीचे वाले कोने से ऊपर की ओर स्वाइप करें."</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"डिजिटल असिस्टेंट ऐप्लिकेशन चालू करने के लिए, स्क्रीन पर नीचे वाले कोने से ऊपर की ओर स्वाइप करें"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Assistant का इस्तेमाल करने के लिए, होम बटन दबाकर रखें"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"डिजिटल असिस्टेंट ऐप्लिकेशन चालू करने के लिए, होम बटन को दबाकर रखें."</string>
     <string name="low_label" msgid="6525629096999711220">"कम"</string>
@@ -4062,7 +4172,7 @@
     <string name="account_for_section_header" msgid="7466759342105251096">"<xliff:g id="USER_NAME">%1$s</xliff:g> के खाते"</string>
     <string name="auto_sync_account_title" msgid="1070908045600374254">"ऐप्लिकेशन का डेटा अपने-आप सिंक होने की सुविधा चालू करें"</string>
     <string name="auto_sync_account_summary" msgid="7580352130028957346">"ऐप्लिकेशन को डेटा अपने-आप रीफ्रे़श करने दें"</string>
-    <string name="account_sync_title" msgid="7036067017433297574">"खाता सिंक"</string>
+    <string name="account_sync_title" msgid="7036067017433297574">"खाता सिंक करें"</string>
     <string name="account_sync_summary_some_on" msgid="911460286297968724">"<xliff:g id="ID_2">%2$d</xliff:g> में से <xliff:g id="ID_1">%1$d</xliff:g> आइटम के लिए सिंक करने की सुविधा चालू है"</string>
     <string name="account_sync_summary_all_on" msgid="2953682111836599841">"सभी आइटम के लिए सिंक करने की सुविधा चालू है"</string>
     <string name="account_sync_summary_all_off" msgid="6378301874540507884">"सभी आइटम के लिए सिंक होने की सुविधा बंद है"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"डेटा, पासकी, पासवर्ड"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"अपने-आप, भरना, अपने-आप भरना, डेटा, पासकी, और पासवर्ड"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;पक्का करें कि आपको इस ऐप्लिकेशन पर भरोसा है&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google की मदद से, जानकारी अपने-आप भरने की सुविधा,&gt;%1$s&lt;/xliff:g&gt; ऑटोमैटिक भरी जा सकने वाली चीज़ें तय करने के लिए आपकी स्क्रीन पर मौजूद चीज़ों का इस्तेमाल करती है."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&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_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Use &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_picker_title" msgid="8191267620665129205">"पासवर्ड, पासकी, और डेटा की सेवाएं"</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>
@@ -4226,8 +4336,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- 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">"ध्यान दें: OpenGL ES के डिफ़ॉल्ट ड्राइवर के तौर पर ANGLE चालू करें. यह सुविधा एक्सपेरिमेंट के तौर पर उपलब्ध है. ऐसा हो सकता है कि यह कुछ कैमरा और वीडियो ऐप्लिकेशन के साथ काम न करे."</string>
+    <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="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>
@@ -4783,12 +4893,12 @@
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{पिछले # महीने में इंस्टॉल किए गए ऐप्लिकेशन}one{पिछले # महीने में इंस्टॉल किए गए ऐप्लिकेशन}other{पिछले # महीनों में इंस्टॉल किए गए ऐप्लिकेशन}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{ऐप्लिकेशन, # महीने से भी पहले इंस्टॉल किए गए}one{ऐप्लिकेशन, # महीने से भी पहले इंस्टॉल किए गए}other{ऐप्लिकेशन, # महीने से भी पहले इंस्टॉल किए गए}}"</string>
     <string name="aspect_ratio_title" msgid="2451826875939676101">"आसपेक्ट रेशियो"</string>
-    <string name="aspect_ratio_summary" msgid="4056406351663726494">"अगर इस ऐप्लिकेशन को आपके <xliff:g id="DEVICE_NAME">%1$s</xliff:g> की स्क्रीन के हिसाब से डिज़ाइन नहीं किया गया है, तो इसे देखने के लिए कोई नई आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) चुनें"</string>
-    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"अगर इस ऐप्लिकेशन को आपके <xliff:g id="DEVICE_NAME">%1$s</xliff:g> की स्क्रीन के हिसाब से डिज़ाइन नहीं किया गया है, तो इसे देखने के लिए कोई नई आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) चुनें. कुछ ऐप्लिकेशन, सभी तरह के आसपेक्ट रेशियो के लिए ऑप्टिमाइज़ नहीं किए गए हैं."</string>
+    <string name="aspect_ratio_summary" msgid="4056406351663726494">"अगर इस ऐप्लिकेशन को आपके <xliff:g id="DEVICE_NAME">%1$s</xliff:g> की स्क्रीन के हिसाब से डिज़ाइन नहीं किया गया है, तो इसे देखने के लिए कोई नया आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) चुनें"</string>
+    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"अगर इस ऐप्लिकेशन को आपके <xliff:g id="DEVICE_NAME">%1$s</xliff:g> की स्क्रीन के हिसाब से डिज़ाइन नहीं किया गया है, तो इसे देखने के लिए कोई नया आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) चुनें. ऐसा हो सकता है कि कुछ ऐप्लिकेशन, हर तरह के आसपेक्ट रेशियो के हिसाब से ऑप्टिमाइज़ न हो पाएं."</string>
     <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"अगर किसी ऐप्लिकेशन को आपके <xliff:g id="DEVICE_NAME">%1$s</xliff:g> की स्क्रीन के हिसाब से डिज़ाइन नहीं किया गया है, तो इसे देखने के लिए कोई नया आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) चुनें"</string>
     <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"अगर किसी ऐप्लिकेशन को आपके <xliff:g id="DEVICE_NAME">%1$s</xliff:g> की स्क्रीन के हिसाब से डिज़ाइन नहीं किया गया है, तो इसे देखने के लिए कोई नया आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) चुनें. ऐसा हो सकता है कि कुछ ऐप्लिकेशन, सभी तरह के आसपेक्ट रेशियो के लिए ऑप्टिमाइज़ न किए गए हों."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"सुझाए गए ऐप्लिकेशन"</string>
-    <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"बदलाव वाले ऐप"</string>
+    <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"बदले गए ऐप"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"ऐप्लिकेशन का डिफ़ॉल्ट आसपेक्ट रेशियो"</string>
     <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"फ़ुल स्क्रीन"</string>
     <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"आधी स्क्रीन"</string>
@@ -4797,7 +4907,7 @@
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
     <string name="user_aspect_ratio_option_a11y" msgid="1235801996029095219">"<xliff:g id="DENOMINATOR">%2$s</xliff:g> का <xliff:g id="NUMERATOR">%1$s</xliff:g>"</string>
-    <string name="app_aspect_ratio_footer" msgid="4029509301182067475">"आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) बदलने पर ऐप्लिकेशन रीस्टार्ट हो जाएगा. इससे वे बदलाव मिट सकते हैं जिन्हें सेव नहीं किया गया है. कुछ ऐप्लिकेशन, सभी तरह के आसपेक्ट रेशियो के लिए ऑप्टिमाइज़ नहीं किए गए हैं."</string>
+    <string name="app_aspect_ratio_footer" msgid="4029509301182067475">"आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) बदलने पर ऐप्लिकेशन रीस्टार्ट होगा. इससे वे बदलाव मिट सकते हैं जिन्हें सेव नहीं किया गया है. ऐसा हो सकता है कि कुछ ऐप्लिकेशन, हर तरह के आसपेक्ट रेशियो के हिसाब से ऑप्टिमाइज़ न हो पाएं."</string>
     <string name="aspect_ratio_experimental_title" msgid="9088785421062044831">"आसपेक्ट रेशियो (एक्सपेरिमेंट के तौर पर उपलब्ध)"</string>
     <string name="aspect_ratio_experiment_title" msgid="128614319422121040">"आसपेक्ट रेशियो (एक्सपेरिमेंट)"</string>
     <string name="aspect_ratio_labs_title" msgid="6733893837442759383">"आसपेक्ट रेशियो (लैब)"</string>
@@ -4856,4 +4966,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"ऐप्लिकेशन में धोखाधड़ी वाले व्यवहार का पता लगाने के लिए, स्कैनिंग की जा रही है"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"फ़िशिंग का पता लगाने के लिए, ऐप्लिकेशन में की गई गतिविधि की जांच करें"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"स्कैनिंग सुविधा से धोखाधड़ी वाले ऐप्लिकेशन का पता लगाएं"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"स्कैनिंग सुविधा से, वर्क प्रोफ़ाइल में मौजूद धोखाधड़ी वाले ऐप्लिकेशन का पता लगाएं"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-hr/arrays.xml b/res/values-hr/arrays.xml
index b3545d5..13784b8 100644
--- a/res/values-hr/arrays.xml
+++ b/res/values-hr/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Nakon 1 minute"</item>
     <item msgid="1574040255478150028">"Nakon 5 minuta"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 5e9b8b1..6c0d07e 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Onemogući Bluetooth LE audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Onemogućuje značajku Bluetooth LE audio ako uređaj podržava mogućnosti za LE audio hardvera."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Prikaži prekidač LE Audio u pojedinostima o uređaju"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Omogući popis dopuštenih za Bluetooth LE audio"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Omogućuje značajku popisa dopuštenih za Bluetooth LE audio."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Zaobilaženje popisa dopuštenih za Bluetooth LE Audio"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Upotrebljavajte LE Audio prema zadanim postavkama čak i ako nije potvrđeno da LE Audio periferni uređaj ispunjava kriterije za popis dopuštenih."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Medijski uređaji"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Uređaji za pozive"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Ostali uređaji"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Spremljeni uređaji"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Povezano s računom"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Prethodno korišteno s računom"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth će se uključiti radi uparivanja"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Postavke povezivanja"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Prethodno povezano"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Pisanje u tekstualnim poljima"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Zanemari sve pritiske pisaljke na gumb"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Pisaljka"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Dijeljenje audiozapisa"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Podijeli audiozapis"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Pozivi i alarmi"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Datum i vrijeme"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Očisti"</string>
@@ -273,8 +287,7 @@
     <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_location_off" msgid="8568995909147566720">"Pristup lokaciji isključen je za aplikacije i usluge. Lokacija vašeg uređaja i dalje se može slati djelatnicima hitnih službi kada nazovete broj hitne službe ili na njega pošaljete SMS."</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Saznajte više o postavkama lokacije"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Računi"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Sigurnost"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Šifriranje i vjerodajnice"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Poslovni profil"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Privatni prostor"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Sakrivanje aplikacija u privatnoj mapi"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Otključavanje pomoću funkcije za zaključavanje zaslona"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Prikaz privatnog prostora"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Sakrij kada je zaključano"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Sakrivanje privatnog prostora kad je zaključan"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Privatni prostor možete sakriti s popisa aplikacija uređaja"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Pristup privatnom prostoru kad je sakriven"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Na traci za pretraživanje pretražite privatni prostor"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Dodirnite pločicu privatnog prostora"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Otključajte privatni prostor"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Isključeno"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Uključeno"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Sustav"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Izrada privatnog prostora"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Brisanje privatnog prostora"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Privatni prostor uspješno je izrađen"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Privatni prostor već postoji"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Privatni prostor nije moguće izraditi"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Privatni prostor uspješno je izbrisan"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Privatni prostor nije moguće izbrisati"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Postavi zaključavanje zaslona"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Za upotrebu Privatnog prostora postavite zaključavanje."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Postavi zaključavanje zaslona"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Odustani"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Odustani"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Postavi"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Postavljanje privatnog prostora"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Sakrivanje privatnih aplikacija na sigurnom mjestu kojem samo vi možete pristupiti"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Kako to funkcionira"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Privatnom prostoru možete pristupiti s dna popisa aplikacija"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Aplikacije u privatnom prostoru zaštićene su zaključavanjem"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Obavijesti aplikacija u privatnom prostoru sakrivene su kada je on zaključan"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Aplikacije privatnog prostora neće se prikazati u Upravitelju dopuštenja, na nadzornoj ploči za privatnost i u drugim postavkama kada je privatni prostor zaključan"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"U tijeku je postavljanje privatnog prostora…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Privatni prostor zaštićen je zaključavanjem"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Podaci o upotrebi za aplikacije privatnog prostora sakriveni su kad je privatni prostor zaključan"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Pristup privatnom prostoru s popisa aplikacija"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Postavljanje privatnog prostora nije uspjelo"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Pokušajte sada ili se vratite kasnije"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Pokušajte ponovno"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Koristiti zaključavanje zaslona za otključavanje?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Privatni prostor možete otključati na isti način kao što otključavate uređaj. Ili odaberite drugi način zaključavanja"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Upotreba zaključavanja zaslona"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Odaberite novi način otključavanja"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Sve je spremno!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Da biste pristupili privatnom prostoru, prijeđite prstom s dna zaslona prema gore, a zatim se pomaknite prema dolje"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Gotovo"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Pomaknite se prema dolje za pristup privatnom prostoru"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Prijavite se za postavljanje privatnog prostora"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Maksimalni broj otisaka prstiju koji možete dodati: <xliff:g id="COUNT">%d</xliff:g>"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Dodali ste maksimalan broj otisaka prstiju"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Nije moguće dodati više otisaka prstiju"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Poveži"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Isključi"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Upari i poveži"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Kada je Bluetooth uključen, vaš uređaj može komunicirati s drugim Bluetooth uređajima u blizini."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Kad je Bluetooth uključen, uređaj može komunicirati s drugim uređajima u blizini"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Kada je Bluetooth uključen, uređaj može komunicirati s ostalim Bluetooth uređajima u blizini.\n\nRadi boljeg doživljaja na uređaju, aplikacije i usluge i dalje mogu tražiti uređaje u blizini u bilo kojem trenutku, čak i kada je Bluetooth 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 Bluetootha."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Promijenite"</string>
     <string name="device_details_title" msgid="1155622417516195481">"O uređaju"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Dopušta ART-u da potvrdi bajtni kôd za aplikacije iz kojih se mogu uklanjati pogreške"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Prikaži učestalost osvježavanja"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Prikazuje trenutačnu učestalost osvježavanja"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Prikaz omjera HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Prikaz trenutačnog omjera HDR/SDR"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Zahtijevaj otključavanje uređaja za NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1060,9 +1135,9 @@
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Isključeno"</string>
     <string name="display_white_balance_title" msgid="2624544323029364713">"Prikaz balansa bijele boje"</string>
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
-    <string name="fold_lock_behavior_title" msgid="786228803694268449">"Nastavi upotrebljavati aplikacije pri sklapanju"</string>
+    <string name="fold_lock_behavior_title" msgid="786228803694268449">"Nastavak upotrebe aplikacija pri sklapanju"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Glatki prikaz"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Automatski povećava učestalost osvježavanja sa 60 na <xliff:g id="ID_1">%1$s</xliff:g> Hz za određeni sadržaj. Povećava potrošnju baterije."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Automatski povećava učestalost osvježavanja do <xliff:g id="ID_1">%1$d</xliff:g> Hz za određeni sadržaj. Povećava potrošnju baterije."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Prisilna maksimalna učestalost osvježavanja"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Najviša učestalost osvježavanja za poboljšano reagiranje na dodir i kvalitetu animacije. Povećava potrošnju baterije."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Pozornost na zaslonu"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Zajedničke postavke"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN-ovi"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Uređivanje pristupne točke"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Dodajte pristupnu točku"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Nije postavljeno"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Nije postavljeno"</string>
     <string name="apn_name" msgid="6677695784108157953">"Naziv"</string>
@@ -1320,6 +1396,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN omogućen"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN onemogućen"</string>
     <string name="bearer" msgid="3231443241639159358">"Nositelj"</string>
+    <string name="network_type" msgid="748590707422733595">"Vrsta mreže"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Neodređeno"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Vrsta MVNO-a"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"Vrijednost MVNO-a"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Izbriši APN"</string>
@@ -1598,7 +1676,7 @@
     <string name="screen_compatibility_label" msgid="7549658546078613431">"Kompatibilnost zaslona"</string>
     <string name="permissions_label" msgid="1708927634370314404">"Dopuštenja"</string>
     <string name="cache_header_label" msgid="2441967971921741047">"Predmemorija"</string>
-    <string name="clear_cache_btn_text" msgid="8597272828928143723">"Isprazni predmemoriju"</string>
+    <string name="clear_cache_btn_text" msgid="8597272828928143723">"Izbriši predmemoriju"</string>
     <string name="cache_size_label" msgid="313456088966822757">"Predmemorija"</string>
     <string name="uri_permissions_text" msgid="8406345863117405105">"{count,plural, =1{1 stavka}one{# stavka}few{# stavke}other{# stavki}}"</string>
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Izbriši pristup"</string>
@@ -1613,7 +1691,7 @@
     <string name="install_text" msgid="4558333621516996473">"Instaliraj"</string>
     <string name="disable_text" msgid="5146002260857428005">"Onemogući"</string>
     <string name="enable_text" msgid="8570798764647110430">"Omogući"</string>
-    <string name="clear_user_data_text" msgid="6773186434260397947">"Isprazni pohranu"</string>
+    <string name="clear_user_data_text" msgid="6773186434260397947">"Izbriši pohranu"</string>
     <string name="app_factory_reset" msgid="8974044931667015201">"Deinstaliraj ažuriranja"</string>
     <string name="app_restricted_settings_lockscreen_title" msgid="5993061278264872648">"Dopusti ograničene postavke"</string>
     <string name="auto_launch_enable_text" msgid="8912714475823807798">"Neke aktivnosti koje ste odabrali otvaraju se u ovoj aplikaciji prema zadanim postavkama."</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Otvaranje pomoću gumba za pristupačnost"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Zadržite tipke za glasnoću za otvaranje"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Triput dodirnite zaslon za otvaranje"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Triput dodirnite zaslon dvama prstima za otvaranje"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Otvaranje pokretom"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Upotreba pokreta za pristupačnost"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Da biste koristili tu značajku, dodirnite gumb za Pristupačnost <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> pri dnu zaslona.\n\nDa biste prešli na neku drugu značajku, dodirnite i zadržite gumb za Pristupačnost."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Da biste koristili tu značajku, dodirnite gumb za pristupačnost na zaslonu."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Da biste koristili tu značajku, pritisnite i zadržite obje tipke za glasnoću."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Da biste pokrenuli ili zaustavili povećavanje, triput dodirnite bilo gdje na zaslonu."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Da biste pokrenuli i zaustavili povećavanje, triput dodirnite dvama prstima bilo gdje na zaslonu."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Da biste koristili tu značajku, 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_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Da biste koristili tu značajku, 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_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Da biste koristili značajku pristupačnosti, 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>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Držite tipke za glasnoću"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"držite 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_triple_tap" msgid="6687765191490040899">"Triput dodirnite zaslon dvama prstima"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"triput dodirnite zaslon dvama prstima"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"triput dodirnite zaslon"</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>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Koristi vibraciju i haptiku"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Vibracija alarma"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Vibracija medijskih sadržaja"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Vibracija tipkovnice"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Vibracija pri zvonjenju"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Vibracija obavijesti"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Reakcija na dodir"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"Preostalo je <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> do dovršetka punjenja"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Vrijeme upotrebe"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Vrijeme rada u pozadini"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Slaba baterija"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Dopustite rad aplikacije u pozadini"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Želite li ograničiti pozadinsku aktivnost?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Ako ograničite pozadinsku aktivnost za aplikaciju, možda će se ponašati nepredviđeno"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Aplikacija nije postavljena za optimizaciju baterije, pa je ne možete ograničiti.\n\nZa ograničenje uključite optimizaciju."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Upravljanje potrošnjom baterije"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Omogućivanje upotrebe u pozadini"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Omogućite za ažuriranja u stvarnom vremenu, onemogućite za uštedu baterije"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Neograničeno"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Optimizirano"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Ograničeno"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"od zadnjeg potpunog punjenja"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Aplikacije sustava"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Deinstalirane aplikacije"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Ostalo"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Procijenjeno preostalo vrijeme"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Do potpune napunjenosti"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Ukupno: manje od minute"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"U pozadini: manje od minute"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Vrijeme upotrebe: manje od minute"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Manje od minute"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Ukupno: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"U pozadini: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Vrijeme upotrebe: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Mobilni podaci i Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Automatski sinkroniziraj osobne podatke"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Automatski sinkroniziraj poslovne podatke"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Automatska sinkronizacija"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Promjena ciklusa..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Dan u mjesecu za poništavanje ciklusa upotrebe podataka:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"U tom razdoblju aplik. nisu upotreblj. podatke."</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"veličina teksta, velika slova, veliki font, veliki tekst, slabovidnost, povećati tekst, povećalo fonta, povećanje fonta"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"uvijek uključen ambijentalni zaslon, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, oznaka, čitač"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"tipkovnica, haptika, vibracija,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Glasnoća, vibracija, Ne uznemiravaj"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Glasnoća medija"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Glasnoća emitiranja"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Prikaži cijeli sadržaj obavijesti"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Prikaži osjetljiv sadržaj samo kad je uređaj otključan"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Uopće ne prikazuj obavijesti"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Što želite da se prikazuje na zaključanom zaslonu?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Zaključani zaslon"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Prikaži cijeli sadržaj obavijesti poslovnog profila"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Sakrij osjetljiv sadržaj poslovnog profila"</string>
@@ -3354,6 +3448,17 @@
     <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="6121016426991791557">"Postupno smanjenje obavijesti"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Primijeni postupno smanjenje svih obavijesti"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Postupno smanjite količinu obavijesti kad primate previše uzastopnih obavijesti od iste aplikacije"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Primijeni postupno smanjenje na razgovore"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Postupno smanjite količinu obavijesti kad primate puno poruka iz istog chata u kratkom vremenu"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Nemoj primijeniti postupno smanjenje obavijesti"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Nemojte nikad smanjiti količinu obavijesti, neovisno o količini uzastopnih obavijesti iz iste aplikacije"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Vibracija kad je zaslon otključan"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Vibracija samo kad je zaslon otključan"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Primijeni na poslovne profile"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Primijenite postavke postupnog smanjenja obavijesti iz osobnog profila na poslovni profil"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Pomoćne usluge za virtualnu stvarnost"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Nijedna instalirana aplikacija nije zatražila pokretanje kao pomoćna usluga za virtualnu stvarnost."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Želite li dopustiti pristup usluge virtualne stvarnosti za uslugu <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Dopusti pristup za upravljanje svim datot."</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Dopustite toj aplikaciji čitanje, izmjenu i brisanje svih datoteka na ovom uređaju ili drugim povezanim uređajima za pohranu. Ako date to dopuštenje, aplikacija može pristupati datotekama bez vašeg znanja."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Može pristupiti svim datotekama"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Aplikacije s glasovnom aktivacijom"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Dopusti glasovnu aktivaciju"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Glasovna aktivacija uključuje odobrene aplikacije bez upotrebe ruku pomoću glasovne naredbe. Integrirano adaptivno otkrivanje omogućuje da podaci ostanu privatni.\n\n"<a href="">"Više o zaštićenom adaptivnom otkrivanju"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Obavijesti na cijelom zaslonu"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Omogući obavijesti te aplikacije na cijelom zaslonu"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Omogućuje aplikaciji da prikazuje obavijesti koje zauzimaju cijeli zaslon kad je uređaj zaključan. Aplikacije na taj način mogu istaknuti alarme, dolazne pozive ili druge hitne obavijesti."</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"Aplikacija <xliff:g id="APP_LABEL">%1$s</xliff:g> trošila je više baterije nego inače u pozadini"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"Aplikacija <xliff:g id="APP_LABEL">%1$s</xliff:g> trošila je više baterije u prednjem planu"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"Aplikacija <xliff:g id="APP_LABEL">%1$s</xliff:g> trošila je više baterije nego inače u prednjem planu"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Visoka potrošnja baterije"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Visoka potrošnja baterije u pozadini"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Visoka potrošnja baterije u prednjem planu"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"navigacija za sustav, navigacija pomoću dva gumba, navigacija pomoću tri gumba, navigacija pokretima, prelazak prstom"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Digitalni asistent"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Prijeđite prstom da biste pokrenuli asistenta"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Prijeđite prstom prema gore iz donjeg kuta da biste pokrenuli aplikaciju digitalnog asistenta"</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Prijeđite prstom prema gore iz donjeg kuta da biste pokrenuli aplikaciju digitalnog asistenta"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Zadržite gumb početnog zaslona za Asistenta"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Pritisnite i zadržite gumb početnog zaslona da biste pokrenuli aplikaciju digitalnog asistenta."</string>
     <string name="low_label" msgid="6525629096999711220">"Niska"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"podaci, šifra, zaporka"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"automatsko, popunjavanje, automatsko popunjavanje, podaci, pristupni ključ, zaporka"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Provjerite je li ova aplikacija pouzdana&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google automatsko popunjavanje&gt;%1$s&lt;/xliff:g&gt; upotrebljava sadržaj na zaslonu za procjenu onoga što se može automatski popuniti."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Želite li koristiti aplikaciju &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; na temelju sadržaja vašeg zaslona utvrđuje što se može automatski popuniti. Nove zaporke, pristupni ključevi i drugi podaci odsad će se spremati ovdje."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Use &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Nove zaporke, pristupni ključevi i drugi podaci odsad će se spremati ovdje. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; može koristiti sadržaj vašeg zaslona kako bi utvrdio što se može automatski popuniti."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Usluge za zaporke, pristupne ključeve i podatke"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Isključiti %1$s?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Želite li isključiti uslugu?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Spremljeni podaci, kao što su zaporke, pristupni ključevi, načini plaćanja i drugi podaci možda se neće unijeti kad se prijavite. Da biste upotrebljavali spremljene podatke, odaberite zaporku, pristupni ključ ili podatkovnu uslugu."</string>
@@ -4857,4 +4967,10 @@
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Naziv vašeg uređaja vidljiv je aplikacijama koje ste instalirali. Mogu ga vidjeti i drugi ljudi kada se povežete s Bluetooth uređajima ili Wi-Fi mrežom ili 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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Provjera radi otkrivanja obmanjujućih aplikacija"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Provjera aktivnosti u aplikaciji radi otkrivanja krađe identiteta"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Koristi skeniranje obmanjujućih aplikacija"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Koristi skeniranje obmanjujućih aplikacija za posao"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-hu/arrays.xml b/res/values-hu/arrays.xml
index 5651324..11f18a7 100644
--- a/res/values-hu/arrays.xml
+++ b/res/values-hu/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"1 perc után"</item>
     <item msgid="1574040255478150028">"5 perc után"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 488b696..c5cd825 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Bluetooth LE hangátvitel kikapcsolása"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Kikapcsolja a Bluetooth alacsony energiaszintű hangátvitel funkciót, ha az eszköz támogatja az Alacsony energiaszintű hangátvitel hardver működését."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"„Alacsony energiaszintű hangátvitel” az Eszközadatokban"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Bluetooth LE hangátvitel engedélyezőlistájának engedélyezése"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Engedélyezi a Bluetooth alacsony energiaszintű hangátvitel engedélyezőlistája funkciót."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Bluetooth alacsony energiaszintű hangátvitel engedélyezőlistájának megkerülése"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Alacsony energiaszintű hangátvitel használata alapértelmezés szerint akkor is, ha az Alacsony energiaszintű hangátvitelt használó periféria nem teljesíti igazoltan az engedélyezőlista feltételeit."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Médiaeszközök"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Hívóeszközök"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Egyéb eszközök"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Mentett eszközök"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Fiókkal társítva"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Korábban használva a fiókkal"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"A Bluetooth bekapcsol a párosítás végrehajtása érdekében"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Kapcsolati beállítások"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Korábban csatlakoztatva"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Írás a szövegmezőkben"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Az érintőceruza összes gombnyomásának figyelmen kívül hagyása"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Érintőceruza"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Hang megosztása"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Hang megosztása"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Hívások és riasztások"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Dátum és idő"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Törlés"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"További információ a helybeállításokról."</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Fiókok"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Biztonság"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Titkosítás és hitelesítési adatok"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Munkaprofil"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Privát terület"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Alkalmazások elrejtése privát mappában"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Feloldás képernyőzárral"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Privát terület mutatása"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Elrejtés lezárt állapotban"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Privát terület elrejtése lezárt állapotban"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"A privát terület elrejthető az applistából, ha titkolná mások előtt"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Hozzáférés a privát területhez rejtett állapotban"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"A „privát terület” kifejezés keresése a keresősávban"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Koppintson a privát terület mozaikjára"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Oldja fel a privát területet"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Ki"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Be"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Rendszer"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Privát terület létrehozása"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Privát terület törlése"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Privát terület sikeresen létrehozva"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Már létezik privát terület"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Nem sikerült létrehozni a privát területet"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Privát terület sikeresen törölve"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Nem sikerült törölni a privát területet"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Képernyőzár beállítása"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Privát terület használatához állítson be képernyőzárat."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Képernyőzár beállítása"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Mégse"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Mégse"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Beállítás"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Privát terület beállítása"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Elrejtheti a privát alkalmazásokat egy biztonságos helyen, amelyhez csak Ön férhet hozzá"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Hogyan működik?"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"A privát terület az alkalmazások listájának alján érhető el."</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"A privát területen lévő alkalmazásokat zárolás védi"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"A privát területen lévő alkalmazásoktól érkező értesítések rejtve maradnak, amikor le van zárva a privát terület"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"A privát terület alkalmazásai nem jelennek meg az engedélykezelőben, az adatvédelmi irányítópulton és más beállításokban, amikor a privát terület le van zárva"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"A privát terület beállítása…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"A privát területet zárolás védi"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"A privát terület alkalmazásaihoz tartozó használati adatok rejtve vannak, amikor a privát terület le van zárva"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"A privát terület megnyitása az alkalmazáslistából"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Nem sikerült a privát terület beállítása"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Próbálja újra most, vagy térjen vissza később."</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Újra"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"A képernyőzárat szeretné használni a feloldáshoz?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"A privát területet feloldhatja ugyanúgy, ahogyan az eszközét is, vagy kiválaszthat másik zárolási lehetőséget."</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Képernyőzár használata"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Új zárolás kiválasztása"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Kész is!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"A privát terület megnyitásához csúsztasson felfelé a képernyő aljáról, majd görgessen le."</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Kész"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Görgessen le a privát terület megnyitásához"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Jelentkezzen be a privát terület beállításához"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Legfeljebb <xliff:g id="COUNT">%d</xliff:g> ujjlenyomatot adhat hozzá"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Elérte a hozzáadható ujjlenyomatok maximális számát"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Nem lehet több ujjlenyomatot hozzáadni"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Kapcsolódás"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Szétkapcsolás"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Párosítás és csatlakozás"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Ha a Bluetooth aktív, az eszköz képes kommunikálni a közelben lévő Bluetooth-eszközökkel."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Ha a Bluetooth aktív, az eszköz képes kommunikálni a közeli Bluetooth-eszközökkel."</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Ha a Bluetooth aktív, az eszköz képes kommunikálni a közelben lévő Bluetooth-eszközökkel.\n\nAz eszközhasználati élmény javítása érdekében az alkalmazások és a szolgáltatások bármikor kereshetnek közeli eszközöket, még akkor is, ha ki van kapcsolva a Bluetooth. Ez például a helyalapú funkciók és szolgáltatások javítására használható. A funkciót a Bluetooth-keresési beállításoknál módosíthatja."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Módosítás"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Eszközadatok"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Annak engedélyezése az ART számára, hogy ellenőrizze a hibaelhárítást igénylő alkalmazások bájtkódját."</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Frissítési gyakoriság"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"A jelenlegi kijelzőfrissítési gyakoriság mutatása"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"HDR/SDR arány mutatása"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"A jelenlegi HDR/SDR arány mutatása"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Az NFC használatához fel kell oldani az eszköz zárolását"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1060,9 +1135,9 @@
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Kikapcsolva"</string>
     <string name="display_white_balance_title" msgid="2624544323029364713">"Kijelző fehéregyensúlya"</string>
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
-    <string name="fold_lock_behavior_title" msgid="786228803694268449">"Alkalmazások használatának folytatása összehajtáskor"</string>
+    <string name="fold_lock_behavior_title" msgid="786228803694268449">"Appok megtartása összehajtáskor"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Néhány tartalomnál automatikusan megemeli a frissítési gyakoriságot 60-ról <xliff:g id="ID_1">%1$s</xliff:g> Hz-re. Növeli az akkumulátorhasználatot."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Néhány tartalomnál automatikusan megemeli a frissítési gyakoriságot <xliff:g id="ID_1">%1$d</xliff:g> Hz-re. Növeli az akkumulátorhasználatot."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Legmagasabb frissítési gyakoriság kényszerítése"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Legnagyobb frissítési gyakoriság a kifinomultabb érintési érzékenység és a jobb minőségű animációk érdekében. Növeli az akkumulátorhasználatot."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Képernyőfigyelő"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Közösségi beállítások"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN-ek"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Hozzáférési pont szerkesztése"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Hozzáférési pont hozzáadása"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Nincs megadva"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Nincs beállítva"</string>
     <string name="apn_name" msgid="6677695784108157953">"Név"</string>
@@ -1320,6 +1396,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN engedélyezve"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN kikapcsolva"</string>
     <string name="bearer" msgid="3231443241639159358">"Hordozószolgáltatás"</string>
+    <string name="network_type" msgid="748590707422733595">"Hálózat típusa"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Nincs megadva"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO típusa"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO értéke"</string>
     <string name="menu_delete" msgid="9199740901584348273">"APN törlése"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Megnyitás a kisegítő gombbal"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"A megnyitáshoz tartsa lenyomva a hangerőgombokat"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Koppintson háromszor a képernyőn a megnyitáshoz"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Koppintson két ujjal a képernyőn háromszor a megnyitáshoz"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Megnyitás kézmozdulattal"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Kisegítő kézmozdulat használata"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"A funkció használatához koppintson a képernyő alján megtalálható Kisegítő lehetőségek <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> gombra.\n\nA funkciók közti váltáshoz tartsa lenyomva ujját a Kisegítő lehetőségek gombon."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"A funkció használatához koppintson a képernyőn a Kisegítő lehetőségek gombra."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"A funkció használatához tartsa lenyomva mindkét hangerőszabályzó gombot."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"A nagyítás megkezdéséhez és leállításához koppintson háromszor bárhol a képernyőn."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"A nagyítás megkezdéséhez és leállításához koppintson két ujjal háromszor bárhol a képernyőn."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"A funkció használatához 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_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"A funkció használatához 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_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"A Kisegítő lehetőségek valamelyik funkciójának használatához 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>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Hangerőgombok nyomva tartása"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"hangerőgombok nyomva tartása"</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_triple_tap" msgid="6687765191490040899">"Három koppintás a képernyőn két ujjal"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"három koppintás a képernyőn két ujjal"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"háromszori koppintás a képernyőre"</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>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Rezgés és haptikus visszajelzés használata"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Ébresztés rezgése"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Rezgés médiatartalommal"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Billentyűzet rezgése"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Csengés rezgése"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Értesítések rezgése"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Visszajelzés az érintésekről"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> -- <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> van hátra"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> a feltöltéshez"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Képernyőidő"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Háttérben töltött idő"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Alacsony töltöttség"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Az alkalmazás háttérben futásának engedélyezése"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Korlátozza a háttértevékenységet?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Ha korlátozza az alkalmazások háttértevékenységét, lehetséges, hogy hibásan fognak működni"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Az alkalmazás nem korlátozható, mert nincs beállítva az akkumulátor optimalizálására.\n\nA korlátozáshoz kapcsolja be az akkumulátoroptimalizálást."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Akkumulátorhasználat kezelése"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Háttérbeli futtatás engedélyezése"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Engedélyezze a valós idejű frissítésekhez, vagy tiltsa le az akkumulátor kíméléséhez"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Korlátlan"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Optimalizált"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Korlátozott"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"az utolsó teljes feltöltés óta"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Rendszeralkalmazások"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Eltávolított alkalmazások"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Egyéb"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Becsült hátralévő idő"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"A teljes feltöltésig"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Összesen: kevesebb mint egy perc"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Háttér: egy percnél kevesebb"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Képernyőidő: egy percnél kevesebb"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Kevesebb mint egy perc"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Összesen: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Háttér: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Képernyőidő: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Mobiladat és Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Személyesadat-szinkronizálás"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Munkaadat-szinkronizálás"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Privát adatok automatikus szinkronizálása"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Ciklus módosítása..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Az adatforgalmi ciklus visszaállítása a hónap e napján:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Egy alkalmazás sem használt adatokat ekkor."</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"betűméret, nagybetű, nagy betűtípus, nagy szöveg, gyengénlátó, szöveg nagyítása, betűtípusnagyító, betűtípus-nagyítás"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"Mindig bekapcsolt környezeti kijelző (Always on Ambient Display, AOD)"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, címke, olvasó"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"billentyűzet, rezgés, vibrálás,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Hangerő, rezgés, Ne zavarjanak"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Média hangereje"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Átküldés hangereje"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Az összes értesítés jelenjen meg"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Érzékeny tartalmak megjelenítése csak feloldáskor"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Semmilyen értesítés ne jelenjen meg"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Hogyan szeretné megjeleníteni az értesítéseket a lezárási képernyőn?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Lezárási képernyő"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"A munkaprofil-értesítés teljes tartalmának megjelenítése"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Bizalmas munkahelyi tartalom elrejtése"</string>
@@ -3354,6 +3448,17 @@
     <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="6121016426991791557">"Értesítések befagyasztása"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Befagyasztás alkalmazása az összes értesítésre"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Az értesítések mennyiségének fokozatos csökkentése, ha több értesítés is érkezik egymást követően ugyanattól az alkalmazástól"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Befagyasztás alkalmazása a beszélgetésekre"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Az értesítések mennyiségének fokozatos csökkentése, ha sorozatban több értesítés is érkezik rövid időn belül ugyanabból a beszélgetésből"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Ne használja az értesítések befagyasztását"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Sose csökkentse az értesítések mennyiségét az ugyanattól az alkalmazástól egymást követően érkező értesítések mennyiségének ellenére se"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Rezgés a zárolás feloldásakor"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Rezgés csak akkor, ha a képernyő zárolása fel van oldva"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Alkalmazás munkaprofilokra"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Az értesítések személyes profilban megadott befagyasztására vonatkozó beállítások alkalmazása a munkaprofilban"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Virtuálisvalóság-segédszolgáltatás"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Egy telepített alkalmazás sem kérte, hogy virtuálisvalóság-segédszolgáltatásként legyen futtatva."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Hozzáférhet a(z) <xliff:g id="SERVICE">%1$s</xliff:g> a virtuálisvalóság-szolgáltatáshoz?"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Hozzáférés megadása minden fájl kezeléséhez"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Engedélyezi ennek az alkalmazásnak az eszközön és a csatlakoztatott tárolóköteteken található összes fájl olvasását, módosítását és törlését. Ha engedélyezve van, az alkalmazás anélkül férhet hozzá a fájlokhoz, hogy Önt külön tájékoztatná róla."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Minden fájlhoz hozzáférhet"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Hangalapú aktiválást használó appok"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Hangalapú aktiválás engedélyezése"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Szabadkezes módban a hangalapú aktiválás bekapcsolhat jóváhagyott alkalmazásokat hangalapú utasítások segítségével. A beépített adaptív érzékelés funkció biztosítja, hogy az adatokhoz cssk Ön férjen hozzá.\n\n"<a href="">"További információ a védett adaptív érzékelésről."</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Teljes képernyős értesítések"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Teljes képernyős értesítések engedélyezése ettől az alkalmazástól"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Teljes képernyős értesítések megjelenítésének engedélyezése az alkalmazásnak, amikor az eszköz zárolva van. Az alkalmazások ébresztések, bejövő hívások vagy más sürgős értesítések kiemelésére használhatják ezt a funkciót."</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"A(z) <xliff:g id="APP_LABEL">%1$s</xliff:g> többet használta az akkumulátort a megszokottnál, amíg a háttérben volt"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"A(z) <xliff:g id="APP_LABEL">%1$s</xliff:g> többet használta az akkumulátort, amíg az előtérben volt"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"A(z) <xliff:g id="APP_LABEL">%1$s</xliff:g> többet használta az akkumulátort a megszokottnál, amíg az előtérben volt"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Nagy akkumulátorhasználat"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Nagy akkumulátorhasználat a háttérben"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Nagy akkumulátorhasználat az előtérben"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"rendszernavigáció, kétgombos navigáció, háromgombos navigáció, navigáció kézmozdulatokkal, csúsztatás"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Digitális asszisztens"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Asszisztens megnyitása csúsztatással"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Csúsztassa ujját felfelé valamelyik alsó sarokból a digitális asszisztens megnyitásához."</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Csúsztassa ujját felfelé valamelyik alsó sarokból a digitális asszisztens megnyitásához."</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Segéd megnyitása a Kezdőképernyő gomb nyomva tartásával"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Tartsa lenyomva a Kezdőképernyő gombot a digitális asszisztens megnyitásához."</string>
     <string name="low_label" msgid="6525629096999711220">"Alacsony"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"adat, azonosítókulcs, jelszó"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"automatikus, kitöltés, automatikus kitöltés, adatok, azonosítókulcs, jelszó"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Győződjön meg arról, hogy az alkalmazás megbízható.&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; A(z) &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; az Ön képernyőjén szereplő információk alapján határozza meg, hogy mit lehet automatikusan kitölteni."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Használja a(z) &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; alkalmazást?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; A(z) &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; felhasználja az Ön képernyőjén megjelenő információkat az automatikusan kitölthető elemek meghatározásához. Az új jelszavak, azonosítókulcsok és egyéb adatok mostantól ide lesznek mentve."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Használja a(z) &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; alkalmazást?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Az új jelszavakat, az azonosítókulcsokat és az egyéb információkat mostantól ide menti a rendszer. A(z) &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; alkalmazás felhasználhatja az Ön képernyőjén megjelenő információkat az automatikusan kitölthető elemek meghatározásához."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Jelszavak, azonosítókulcsok és adatszolgáltatások"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Kikapcsolja a következőt: %1$s?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Kikapcsolja a szolgáltatást?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; A mentett adatokat, például jelszavakat, azonosítókulcsokat, fizetési módokat és egyéb információkat a rendszer nem fogja kitölteni, amikor be van jelentkezve. A mentett adatok használatához válasszon egy jelszót, azonosítókulcsot vagy adatszolgáltatást."</string>
@@ -4226,8 +4336,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- 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">"Kísérleti funkció: Az ANGLE engedélyezése"</string>
-    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Figyelmeztetés: Az ANGLE engedélyezése alapértelmezett OpenGL ES-illesztőprogramként. A funkció kísérleti fázisban van, ezért előfordulhat, hogy nem kompatibilis egyes kamera- és videóalkalmazásokkal."</string>
+    <string name="enable_angle_as_system_driver" msgid="4648827560023949786">"Kísérleti funkció: ANGLE engedélyezése"</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Az ANGLE engedélyezése alapértelmezett OpenGL ES-illesztőprogramként. A funkció kísérleti fázisban van, ezért előfordulhat, hogy nem kompatibilis egyes kamerákkal és videóalkalmazásokkal."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"Újraindítás szükséges a rendszer OpenGL ES illesztőprogramjának módosításához"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Az alkalmazás kompatibilitási változtatásai"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Az alkalmazás kompatibilitási változtatásainak be- és kikapcsolása"</string>
@@ -4856,4 +4966,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Megtévesztő alkalmazások keresése…"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Adathalászat keresése az alkalmazástevékenységekben"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Megtévesztő alkalmazások keresése"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Megtévesztő munkahelyi alkalmazások keresése"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-hy/arrays.xml b/res/values-hy/arrays.xml
index fb38c9b..bd1b26e 100644
--- a/res/values-hy/arrays.xml
+++ b/res/values-hy/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"1 րոպեից"</item>
     <item msgid="1574040255478150028">"5 րոպեից"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 5e815c6..ab2d633 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Անջատել Bluetooth LE Audio-ն"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Անջատում է Bluetooth LE Audio գործառույթը, եթե սարքն այն աջակցում է։"</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Տեսնել LE Audio-ն սարքի տվյալներում"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Միացնել Bluetooth LE audio-ի թույլտվությունների ցուցակը"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Միացնել Bluetooth LE audio-ի «Թույլտվությունների ցուցակ» գործառույթը"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Շրջանցել Bluetooth LE Audio-ի թույլատրվածների ցուցակը"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Օգտագործել LE Audio-ն ըստ կանխադրման, անգամ եթե LE Audio-ի արտաքին սարքի համապատասխանությունը թույլատրվածների ցուցակի չափանիշներին չի հաստատվել։"</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Մեդիա սարքեր"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Հեռախոսային սարքեր"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Այլ սարքեր"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Պահված սարքեր"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Կապված է հաշվի հետ"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Նախկինում օգտագործվել են այս հաշվի հետ"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth-ը կմիանա զուգակցման համար"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Միացման կարգավորումներ"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Նախկինում միացված սարքեր"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Գրել տեքստային դաշտերում"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Անտեսել կոճակների ստիլուսով սեղմումները"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Ստիլուս"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Աուդիոյի փոխանցում"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Փոխանցել աուդիո"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Զանգեր և զարթուցիչներ"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Ամսաթիվ և ժամ"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Պրոքսի"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Մաքրել"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Բեռնում…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Հավելվածները, որոնց հասանելի են մոտակա սարքերը, կարող են որոշել միացված սարքերի հարաբերական դիրքավորումը։"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Տեղադրության տվյալների օգտագործման թույլտվությունն անջատված է հավելվածների և ծառայությունների համար։ Ձեր սարքի տեղադրության տվյալները կարող են ուղարկվել փրկարար ծառայություններին, եթե դուք զանգեք կամ հաղորդագրություն գրեք արտակարգ իրավիճակների հեռախոսահամարով։"</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Իմանալ ավելին տեղադրության կարգավորումների մասին"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Հաշիվներ"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Անվտանգություն"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Գաղտնագրում և մուտքի տվյալներ"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Աշխատանքային պրոֆիլ"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Անձնական տարածք"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Անձնական պանակ, որտեղ կարող եք հավելվածներ թաքցնել"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Բացել՝ օգտագործելով էկրանի ապակողպման եղանակը"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Ցուցադրել անձնական տարածքը"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Թաքցնել, երբ կողպված է"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Թաքցնել Անձնական տարածքը, երբ այն կողպված է"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Որպեսզի այլ մարդիկ չիմանան ձեր Անձնական տարածքի մասին, կարող եք այն թաքցնել հավելվածների ցանկից"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Անձնական տարածքի հասանելիություն, երբ այն թաքցված է"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Որոնման տողում մուտքագրեք «Անձնական տարածք» հարցումը"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Հպեք «Անձնական տարածք» սալիկին"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Ապակողպել Անձնական տարածքը"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Անջատված է"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Միացված է"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Համակարգ"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Ստեղծել անձնական տարածք"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Ջնջել անձնական տարածքը"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Ստեղծվեց անձնական տարածք"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Անձնական տարածք արդեն գոյություն ունի"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Չհաջողվեց ստեղծել անձնական տարածք"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Անձնական տարածքը ջնջվեց"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Անձնական տարածքը չհաջողվեց ջնջել"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Կարգավորեք էկրանի կողպումը"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Սահմանեք էկրանի կողպում և օգտագործեք Անձնական տարածքը։"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Կարգավորել էկրանի կողպումը"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Չեղարկել"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Չեղարկել"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Կարգավորել"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Անձնական տարածքի կարգավորում"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Թաքցրեք անձնական հավելվածներն ապահով տեղում, որտեղ դրանք հասանելի են միայն ձեզ"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Ինչպես է դա աշխատում"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Անձնական տարածք կարող եք անցնել հավելվածների ցանկի ներքևից"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Անձնական տարածքում հավելվածները պաշտպանված են կողպեքի միջոցով"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Անձնական տարածքում հավելվածներից ծանուցումները թաքցված են, երբ այն կողպված է"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Անձնական տարածքի հավելվածները չեն ցուցադրվի թույլտվությունների կառավարչում, թույլտվությունների կառավարման վահանակում և այլ կարգավորումներում, երբ Անձնական տարածքը կողպված է"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Անձնական տարածքի ստեղծում…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Անձնական տարածքը պաշտպանված է կողպեքի միջոցով"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Երբ անձնական տարածքը կողպված է, հավելվածների օգտագործման մասին տվյալները թաքցված են այնտեղ"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Անցեք անձնական տարածք հավելվածների ցանկից"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Չհաջողվեց ստեղծել անձնական տարածք"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Փորձեք նորից կամ վերադարձեք ավելի ուշ"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Նորից փորձել"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Օգտագործե՞լ էկրանի կողպումը"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Դուք կարող եք օգտագործել ապակողպման նույն եղանակը, որն օգտագործվում է էկրանի համար, կամ ընտրել մեկ ուրիշը"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Օգտագործել էկրանի կողպումը"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Ընտրել այլ եղանակ"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Պատրա՛ստ է"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Անձնական տարածք անցնելու համար մատը սահեցրեք հիմնական էկրանի ներքևից վերև և ոլորեք էջը ներքև"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Պատրաստ է"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Անձնական տարածք անցնելու համար ոլորեք ներքև"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Մտեք հաշիվ՝ անձնական տարածք կարգավորելու համար"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Կարող եք ավելացնել առավելագույնը <xliff:g id="COUNT">%d</xliff:g> մատնահետք"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Դուք ավելացրել եք մատնահետքերի առավելագույն թույլատրելի քանակը"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Հնարավոր չէ ավելացնել այլ մատնահետքեր"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Միանալ"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Անջատել"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Զուգակցել և միանալ"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Երբ Bluetooth-ը միացված է, ձեր սարքը կարող է հաղորդակցվել մոտակայքում գտնվող Bluetooth սարքերի հետ:"</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Երբ Bluetooth-ը միացված է, ձեր սարքը կարող է հաղորդակցվել մոտակայքում գտնվող Bluetooth սարքերի հետ։\n\nՍարքի աշխատանքը բարելավելու նպատակով հավելվածներն ու ծառայությունները կորոնեն մոտակայքում գտնվող սարքեր, նույնիսկ երբ Bluetooth-ն անջատված է։ Դա կարելի է օգտագործել, օրինակ, տեղադրության տվյալների վրա հիմնված գործառույթների և ծառայությունների աշխատանքը բարելավելու համար։ Այս պարամետրը կարող եք փոխել Bluetooth-ի որոնման կարգավորումներում։"</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Փոխել"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Սարքի տվյալները"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Թույլատրել ART-ին հաստատել վրիպազերծման ենթակա հավելվածների երկուական կոդը"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Թարմացման հաճախությունը"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Ցույց տալ էկրանի թարմացման ընթացիկ հաճախությունը"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Ցույց տալ HDR/SDR հարաբերակցությունը"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Ցույց տալ ընթացիկ HDR/SDR հարաբերակցությունը"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"NFC-ի համար պահանջել սարքի ապակողպում"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Շարունակել օգտագործել հավելվածները ծալված սարքում"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Սահուն պատկեր"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Որոշակի բովանդակության համար թարմացման հաճախականությունը 60-ից կդառնա <xliff:g id="ID_1">%1$s</xliff:g> Հց։ Մարտկոցի լիցքն ավելի արագ է սպառվում։"</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Որոշակի բովանդակության համար թարմացման հաճախականությունն ավտոմատ բարձրանում է մինչև <xliff:g id="ID_1">%1$d</xliff:g> Հց։ Մարտկոցի լիցքն ավելի արագ է սպառվում։"</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Պարտադիր թարմացման առավելագույն հաճախականությունը"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Էկրանի թարմացման բարձր հաճախականությունը լավացնում է հապտիկ արձագանքը և շարժանկարների որակը։ Այն նաև երկարացնում է մարտկոցի օգտագործման ժամանակը։"</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Ադապտիվ քնի ռեժիմ"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Ընդհանուր կարգավորումներ"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN-ներ"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Խմբագրել մուտքի կետը"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Ավելացրեք մուտքի կետ"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Կարգավորված չէ"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Նշված չէ"</string>
     <string name="apn_name" msgid="6677695784108157953">"Անուն"</string>
@@ -1320,6 +1397,8 @@
     <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="network_type" msgid="748590707422733595">"Ցանցի տեսակը"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Նշված չէ"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO տեսակ"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO արժեքը"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Ջնջել APN-ը"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Բացեք «Հատուկ գործառույթներ» կոճակի միջոցով"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Բացելու համար սեղմած պահեք ձայնի կոճակները"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Բացելու համար երեք անգամ հպեք էկրանին"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Բացելու համար երկու մատով եռակի հպեք էկրանին"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Բացեք ձեռքի շարժումով"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Հատուկ գործառույթների ժեստի օգտագործում"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Այս գործառույթն օգտագործելու համար էկրանի ներքևում հպեք «Հատուկ գործառույթներ» <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> կոճակին։\n\nՄի գործառույթից մյուսին անցնելու համար հպեք «Հատուկ գործառույթներ» կոճակին և պահեք։"</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Այս գործառույթն օգտագործելու համար հպեք ձեր էկրանի «Հատուկ գործառույթներ» կոճակին։"</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Այս գործառույթն օգտագործելու համար սեղմեք և պահեք ձայնի ուժգնության երկու կոճակները։"</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Խոշորացումը միացնելու և անջատելու համար երեք անգամ հպեք էկրանի ցանկացած հատվածին։"</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Խոշորացումը միացնելու և անջատելու համար երկու մատով երեք անգամ հպեք էկրանի ցանկացած հատվածին։"</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Այս գործառույթն օգտագործելու համար երկու մատը սահեցրեք էկրանի ներքևից վերև։\n\nՄի գործառույթից մյուսին անցնելու համար երկու մատը սահեցրեք էկրանի ներքևից վերև և պահեք։"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Այս գործառույթն օգտագործելու համար երեք մատը սահեցրեք էկրանի ներքևից վերև։\n\nՄի գործառույթից մյուսին անցնելու համար երեք մատը սահեցրեք էկրանի ներքևից վերև և պահեք։"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Որևէ հատուկ գործառույթ օգտագործելու համար երկու մատը սահեցրեք էկրանի ներքևից վերև։\n\nՄի գործառույթից մյուսին անցնելու համար երկու մատը սահեցրեք էկրանի ներքևից վերև և պահեք։"</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Սեղմած պահել ձայնի ուժգնության ստեղները"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"ձայնի կարգավորման կոճակների սեղմում"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Սեղմեք և պահեք ձայնի ուժգնության երկու կոճակները"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"Երկու մատով եռակի հպում էկրանին"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"երկու մատով եռակի հպում էկրանին"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"Երկու մատով {0,number,integer} անգամ արագ հպեք էկրանին"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Եռակի հպեք էկրանին"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"եռակի հպում էկրանին"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Արագ հպեք էկրանին {0,number,integer} անգամ։ Այս դյուրանցումը կարող է դանդաղեցնել սարքի աշխատանքը։"</string>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Օգտագործել թրթռոցը և հապտիկ արձագանքը"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Զարթուցիչի թրթռոց"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Մեդիա բովանդակության թրթռոց"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Ստեղնաշարի թրթռոց"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Թրթռազանգ"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Թրթռոց ծանուցման ժամանակ"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Հապտիկ արձագանք"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"մնում է <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> մինչև լիցաքավորվելը"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Սարքի օգտագործման ժամանակը"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Ֆոնային ռեժիմում աշխատանքի ժամանակը"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Մարտկոցի լիցքը քիչ է"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Թույլ տալ հավելվածին աշխատել ֆոնային ռեժիմում"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Սահմանափակե՞լ ֆոնային գործողությունները"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Հավելվածի ֆոնային գործողությունների սահմանափակումը կարող է ազդել վերջինիս աշխատանքի վրա"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Մարտկոցի օպտիմալացումն այս հավելվածի համար կարգավորված չէ։\n\nՄիացրեք այն՝ հավելվածը սահմանափակելու համար։"</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Մարտկոցի օգտագործման կառավարում"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Թույլատրել օգտագործումը ֆոնային ռեժիմում"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Միացնել՝ իրական ժամանակում թարմացումներ կատարելու համար, անջատել՝ մարտկոցի լիցքը տնտեսելու համար"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Անսահմանափակ"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Օպտիմալացված"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Սահմանափակ"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"վերջին լրիվ լիցքավորումից հետո"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Համակարգային հավելվածներ"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Ապատեղադրված հավելվածներ"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Այլ"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Մոտավոր մնացած ժամանակը"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Մինչև լրիվ լիցքավորումը"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Ընդամենը՝ մեկ րոպեից պակաս"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Ֆոնային՝ մեկ րոպեից պակաս"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Սարքի օգտագործման ժամանակը՝ ավելի քիչ քան մեկ րոպե"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Մեկ րոպեից պակաս"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Ընդամենը՝ <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Ֆոնային՝ <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Սարքի օգտագործման ժամանակը՝ <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Բջջային ինտերնետ և Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Ինքնահամաժամացնել անձնական տվյալները"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Ինքնահամաժամացնել աշխատանքային տվյալները"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Փակ տվյալների ավտոհամաժամացում"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Ցիկլի փոփոխում…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Ամսվա մի օր` տվյալների օգտագործման աշխատաշրջանը սահմանելու համար՝"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Այս ընթացքում հավելվածները տվյալներ չեն օգտագործել:"</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"տեքստի չափը, մեծ տառատեսակ, խոշոր տառատեսակ, մեծ տեքստ, թույլ տեսողություն, մեծացնել տեքստը, մեծացնել տառատեսակը, տառատեսակի մեծացում"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"միշտ միացված անգործուն էկրան, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, պիտակ, ընթերցիչ"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"ստեղնաշար, հապտիկ արձագանք, թրթռոց,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Ձայնի ուժգնություն, թրթռոց, Չանհանգստացնել ռեժիմ"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Մուլտիմեդիա"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Հեռարձակման ձայնի ուժգնություն"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Ծանուցումները ցույց տալ ամբողջությամբ"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Կոնֆիդենցիալ տվյալները ցույց տալ միայն ապակողպված էկրանին"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Ցույց չտալ ծանուցումներ"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Կարգավորեք ծանուցումների ցուցադրումը կողպէկրանին"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Կողպէկրան"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Ցույց տալ աշխատանքային ծանուցումներն ամբողջությամբ"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Թաքցնել աշխատանքային գաղտնի տվյալները"</string>
@@ -3354,6 +3449,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Այս հավելվածում ընդլայնված կարգավորումները չեն աջակցվում"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Լրացուցիչ կարգավորումներ"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Լրացուցիչ կարգավորումները հասանելի են հավելվածում"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Ծանուցումների ձայնի նվազեցում"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Նվազեցնել բոլոր ծանուցումների ձայնի ուժգնությունը"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Աստիճանաբար նվազեցնել ծանուցումների ձայնի ուժգնությունը, երբ նույն հավելվածից անընդմեջ բազմաթիվ ծանուցումներ եք ստանում"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Նվազեցնել ձայնի ուժգնությունը զրույցների համար"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Աստիճանաբար նվազեցնել ծանուցումների ձայնի ուժգնությունը, երբ նույն զրույցից բազմաթիվ ծանուցումներ եք ստանում կարճ ժամանակահատվածում"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Չօգտագործել ծանուցումների ձայնի ուժգնության նվազեցումը"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Երբեք չնվազեցնել ծանուցումների ձայնի ուժգնությունը՝ անկախ նրանից, թե քանի ծանուցում եք անընդմեջ ստանում նույն հավելվածից"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Թրթռալ ապակողպված էկրանի դեպքում"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Երբ էկրանն ապակողպված է, միայն թրթռալ"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Կիրառել աշխատանքային պրոֆիլների համար"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Ծանուցումների ձայնի ուժգնության նվազեցման կարգավորումները ձեր անձնական պրոֆիլից կիրառել աշխատանքային պրոֆիլում"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR օգնության ծառայություններ"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Տեղադրված հավելվածներից ոչ մեկը որպես VR օգնության ծառայություն գործարկվելու հարցում չի ուղարկել:"</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Թույլատրե՞լ VR ծառայությանն օգտագործել <xliff:g id="SERVICE">%1$s</xliff:g> ծառայությունը:"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Բոլոր ֆայլերը կառավարելու թույլտվություն տալ"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Դուք կարող եք թույլատրել այս հավելվածին կարդալ, փոփոխել և ջնջել այս սարքի կամ միացված կրիչների բոլոր ֆայլերը։ Եթե թույլատրեք, հավելվածը կկարողանա օգտվել ֆայյլերից առանց ձեր իմացության։"</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Հասանելիություն ունեն բոլոր ֆայլերին"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Ձայնային ակտիվացմամբ հավելվածներ"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Թույլատրել ձայնային ակտիվացումը"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Միացրեք ընտրված հավելվածները ձայնային հրամանների միջոցով։ Ճանաչման ներկառուցված հարմարվող համակարգի շնորհիվ ձեր տվյալները միայն ձեզ հասանելի կլինեն։\n\n"<a href="">"Իմանալ ավելին ճանաչման պաշտպանված հարմարվող համակարգի մասին"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Ծանուցումներ լիաէկրան ռեժիմում"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Թույլատրել այս հավելվածին ցույց տալ ծանուցումներ լիաէկրան ռեժիմում"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Թույլատրել այս հավելվածին ցույց տալ ծանուցումներ լիաէկրան ռեժիմում, երբ սարքը կողպված է։ Հավելվածները կարող են օգտագործել այս գործառույթը՝ զարթուցիչներ, մուտքային զանգեր և այլ շտապ ծանուցումներ ցուցադրելու համար։"</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> հավելվածը ֆոնային ռեժիմում սովորականից ավելի շատ էներգիա է սպառում"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> հավելվածը ակտիվ ռեժիմում շատ էներգիա է սպառում"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> հավելվածը ակտիվ ռեժիմում սովորականից ավելի շատ էներգիա է սպառում"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Մարտկոցի արագ սպառում"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Մարտկոցի արագ սպառում ֆոնային ռեժիմում"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Մարտկոցի արագ սպառում ակտիվ ռեժիմում"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"նավիգացիա համակարգում, երկկոճակ նավիգացիա, եռակոճակ նավիգացիա, ժեստերով նավիգացիա, սահեցնել"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Թվային օգնական"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Մատը սահեցնել՝ թվային օգնականը գործարկելու համար"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Թվային օգնականը գործարկելու համար մատը ներքևի անկյունից սահեցրեք վերև։"</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Օգնականը բացելու համար սեղմած պահել «Գլխավոր էկրան» կոճակը"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Սեղմեք և պահեք գլխավոր էկրանի կոճակը՝ թվային օգնական հավելվածը կանչելու համար։"</string>
     <string name="low_label" msgid="6525629096999711220">"Ցածր"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"տվյալներ, անցաբառ, գաղտնաբառ"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"ավտոմատ, լրացնել, ինքնալրացում, տվյալներ, անցաբառ, գաղտնաբառ"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Համոզվեք, որ վստահում եք այս հավելվածին&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt;-ն օգտագործում է էկրանի բովանդակությունը՝ որոշելու, թե ինչը կարող է ինքնալրացվել:"</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&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_autofill_confirmation_message" msgid="843829628024668466">"&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_picker_title" msgid="8191267620665129205">"Գաղտնաբառերի, անցաբառերի և տվյալների պահման ծառայություններ"</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>
@@ -4226,10 +4338,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <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="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>
@@ -4787,12 +4897,10 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Կողմերի հարաբերակցություն"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"Եթե հավելվածը օպտիմալացված չէ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> սարքի համար, ապա փորձեք կողմերի համապատասխան հարաբերակցությունը"</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Եթե հավելվածը օպտիմալացված չէ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> սարքի համար, ապա փորձեք կողմերի համապատասխան հարաբերակցությունը։ Որոշ հավելվածներ կարող են չօպտիմալացվել կողմերի որոշակի հարաբերակցության համար։"</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Եթե հավելվածն օպտիմալացված չէ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> սարքի համար, ապա փորձեք կողմերի համապատասխան հարաբերակցությունը"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Եթե հավելվածն օպտիմալացված չէ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> սարքի համար, ապա փորձեք կողմերի համապատասխան հարաբերակցությունը։ Որոշ հավելվածներ կարող են չօպտիմալացվել կողմերի որոշակի հարաբերակցության համար։"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Առաջարկվող հավելվածներ"</string>
-    <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Փոփոխված"</string>
+    <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Փոփոխված հավելվածներ"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Հավելվածի կանխադրված տարբերակ"</string>
     <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Լիաէկրան"</string>
     <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Կիսաէկրան"</string>
@@ -4860,4 +4968,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Սկանավորել՝ խարդախություն պարունակող հավելվածներ գտնելու համար"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Ստուգել հավելվածի օգտագործման պատմությունը՝ ֆիշինգ հայտնաբերելու նպատակով"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Սկանավորում՝ կեղծ տվյալներով հավելվածներ գտնելու համար"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Սկանավորում՝ կեղծ տվյալներով աշխատանքային հավելվածներ գտնելու համար"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-in/arrays.xml b/res/values-in/arrays.xml
index 15ed51f..2991224 100644
--- a/res/values-in/arrays.xml
+++ b/res/values-in/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Setelah 1 menit"</item>
     <item msgid="1574040255478150028">"Setelah 5 menit"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 8227305..de87fd1 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Nonaktifkan Bluetooth LE Audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Nonaktifkan fitur Bluetooth LE Audio jika perangkat mendukung kemampuan hardware LE Audio."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Tampilkan tombol LE audio di Detail Perangkat"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Aktifkan Daftar yang Diizinkan Bluetooth LE Audio"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Aktifkan fitur daftar yang diizinkan Bluetooth LE Audio."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Abaikan Daftar yang Diizinkan Bluetooth LE Audio"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Gunakan LE Audio secara default meskipun periferal LE Audio belum diverifikasi untuk memenuhi kriteria Daftar yang diizinkan."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Perangkat Media"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Perangkat panggilan telepon"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Perangkat lain"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Perangkat tersimpan"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Dikaitkan dengan akun"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Sebelumnya digunakan dengan akun"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth akan diaktifkan untuk menyambungkan"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Preferensi koneksi"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Terhubung sebelumnya"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Menulis di kolom teks"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Abaikan semua penekanan tombol dengan stilus"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Stilus"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Berbagi audio"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Bagikan audio"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Panggilan dan alarm"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Tanggal &amp; waktu"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Bersihkan"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Pelajari lebih lanjut Setelan lokasi"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Akun"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Keamanan"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Enkripsi &amp; kredensial"</string>
@@ -334,7 +347,7 @@
     <string name="security_settings_face_enroll_improve_face_alert_body_fingerprint" msgid="2469599074650327489">"Hapus model wajah Anda saat ini untuk menyiapkan Buka dengan Wajah lagi.\n\nModel wajah Anda akan dihapus secara permanen dan aman.\n\nSetelah dihapus, Anda akan memerlukan sidik jari, PIN, pola, atau sandi untuk membuka kunci ponsel atau untuk autentikasi dalam aplikasi."</string>
     <string name="security_settings_face_settings_use_face_category" msgid="1638314154119800188">"Gunakan Buka dengan Wajah untuk"</string>
     <string name="security_settings_face_settings_preferences_category" msgid="7628929873407280453">"Saat menggunakan Buka dengan Wajah"</string>
-    <string name="security_settings_face_settings_require_attention" msgid="4395309855914391104">"Pastikan mata tetap terbuka"</string>
+    <string name="security_settings_face_settings_require_attention" msgid="4395309855914391104">"Wajibkan mata terbuka"</string>
     <string name="security_settings_face_settings_require_attention_details" msgid="2546230511769544074">"Untuk membuka kunci ponsel, mata Anda harus terbuka"</string>
     <string name="security_settings_face_settings_require_confirmation" msgid="6603039421004198334">"Selalu wajibkan konfirmasi"</string>
     <string name="security_settings_face_settings_require_confirmation_details" msgid="3498729789625461914">"Saat memakai Buka dengan Wajah di aplikasi, selalu minta langkah konfirmasi"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Profil kerja"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Ruang Pribadi"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Sembunyikan aplikasi di folder pribadi"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Buka menggunakan kunci layar"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Tampilkan Ruang Pribadi"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Sembunyikan saat terkunci"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Sembunyikan Ruang Pribadi jika dikunci"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Agar orang lain tidak dapat melihat Ruang Pribadi di perangkat, Anda dapat menyembunyikannya dari daftar aplikasi"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Akses Ruang Pribadi jika disembunyikan"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Telusuri \'Ruang Pribadi\' di kotak penelusuran"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Ketuk kartu Ruang Pribadi"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Buka kunci Ruang Pribadi"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Nonaktif"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Aktif"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Sistem"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Buat Ruang Pribadi"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Hapus Ruang Pribadi"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Ruang Pribadi berhasil dibuat"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Ruang Pribadi sudah ada"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Ruang Pribadi tidak dapat dibuat"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Ruang Pribadi berhasil dihapus"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Ruang Pribadi tidak dapat dihapus"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Setel kunci layar"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Untuk menggunakan Ruang Pribadi, setel kunci layar di perangkat ini."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Setel kunci layar"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Batal"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Batal"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Siapkan"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Siapkan Ruang Pribadi"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Sembunyikan aplikasi pribadi di ruang aman yang hanya dapat diakses oleh Anda"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Cara kerjanya"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Anda dapat mengakses Ruang Pribadi dari bagian bawah daftar aplikasi"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Aplikasi di Ruang Pribadi dilindungi dengan kunci"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Notifikasi dari aplikasi di Ruang Pribadi disembunyikan saat Ruang Pribadi dikunci"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Aplikasi Ruang Pribadi tidak akan muncul di pengelola izin, dasbor privasi, dan setelan lainnya jika Ruang Pribadi dikunci"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Menyiapkan Ruang Pribadi…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Ruang Pribadi dilindungi oleh kunci"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Info penggunaan aplikasi Ruang Pribadi disembunyikan saat Ruang Pribadi dikunci"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Akses Ruang Pribadi dari daftar aplikasi"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Tidak dapat menyiapkan Ruang Pribadi"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Coba lagi sekarang, atau kembali lagi nanti"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Coba Lagi"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Gunakan kunci layar untuk membuka kunci?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Anda dapat membuka kunci Ruang Pribadi dengan cara yang sama seperti membuka kunci perangkat, atau memilih kunci lain"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Gunakan layar kunci"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Pilih kunci baru"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Semua siap."</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Untuk mengakses Ruang Pribadi, geser ke atas dari bagian bawah layar utama, lalu scroll ke bawah"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Selesai"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Scroll ke bawah untuk mengakses Ruang Pribadi"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Login untuk menyiapkan Ruang Pribadi"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Anda dapat menambahkan maksimal <xliff:g id="COUNT">%d</xliff:g> sidik jari"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Anda telah menambahkan jumlah maksimum sidik jari"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Tidak dapat menambahkan sidik jari lagi"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Hubungkan"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Putuskan koneksi"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Sambungkan &amp; hubungkan"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Saat Bluetooth aktif, perangkat dapat berkomunikasi dengan perangkat Bluetooth terdekat lainnya."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Jika Bluetooth diaktifkan, perangkat Anda dapat berkomunikasi dengan perangkat Bluetooth di sekitar.\n\nUntuk meningkatkan fungsi perangkat, aplikasi dan layanan tetap dapat memindai perangkat di sekitar kapan saja, bahkan saat Bluetooth nonaktif. Setelan ini dapat digunakan, misalnya, untuk meningkatkan kualitas fitur dan layanan berbasis lokasi. Anda dapat mengubahnya di setelan pemindaian Bluetooth."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Ubah"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Detail perangkat"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Izinkan ART memverifikasi bytecode untuk aplikasi yang dapat di-debug"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Tampilkan kecepatan refresh"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Tampilkan kecepatan refresh layar saat ini"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Tampilkan rasio HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Tampilkan rasio HDR/SDR saat ini"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Wajib buka kunci perangkat untuk NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1060,9 +1136,9 @@
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Nonaktif"</string>
     <string name="display_white_balance_title" msgid="2624544323029364713">"White balance layar"</string>
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
-    <string name="fold_lock_behavior_title" msgid="786228803694268449">"Lanjutkan menggunakan aplikasi saat perangkat dilipat"</string>
+    <string name="fold_lock_behavior_title" msgid="786228803694268449">"Terus pakai aplikasi saat dilipat"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Otomatis meningkatkan kecepatan refresh dari 60 menjadi <xliff:g id="ID_1">%1$s</xliff:g> Hz untuk beberapa konten. Meningkatkan penggunaan baterai."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Otomatis meningkatkan kecepatan refresh hingga <xliff:g id="ID_1">%1$d</xliff:g> Hz untuk beberapa konten. Meningkatkan penggunaan baterai."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Paksa kecepatan refresh tertinggi"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Kecepatan refresh tertinggi untuk memperbaiki respons sentuhan &amp; kualitas animasi. Meningkatkan penggunaan baterai."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Fokus ke layar"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Setelan umum"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Edit titik akses"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Tambahkan titik akses"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Tidak disetel"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Belum disetel"</string>
     <string name="apn_name" msgid="6677695784108157953">"Nama"</string>
@@ -1320,6 +1397,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN diaktifkan"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN dinonaktifkan"</string>
     <string name="bearer" msgid="3231443241639159358">"Operator"</string>
+    <string name="network_type" msgid="748590707422733595">"Jenis jaringan"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Tidak ditentukan"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Jenis MVNO"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"Nilai MVNO"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Hapus APN"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Gunakan tombol aksesibilitas untuk membuka"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Tahan tombol volume untuk membuka"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Ketuk tiga kali pada layar untuk membuka"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Ketuk layar tiga kali dengan dua jari untuk membuka"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Menggunakan gestur untuk membuka"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Gunakan gestur aksesibilitas"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Untuk menggunakan fitur ini, ketuk tombol aksesibilitas <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> di bagian bawah layar.\n\nUntuk beralih antarfitur, sentuh lama tombol aksesibilitas."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Untuk menggunakan fitur ini, ketuk tombol aksesibilitas di layar."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Untuk menggunakan fitur ini, tekan dan tahan kedua tombol volume."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Untuk memulai dan menghentikan pembesaran, ketuk tiga kali di mana saja pada layar Anda."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Untuk memulai dan menghentikan pembesaran, ketuk tiga kali dengan dua jari di mana saja pada layar."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Untuk menggunakan fitur ini, geser ke atas dari bawah layar dengan 2 jari.\n\nUntuk beralih antarfitur, geser ke atas dengan 2 jari dan tahan."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Untuk menggunakan fitur ini, geser ke atas dari bawah layar dengan 3 jari.\n\nUntuk beralih antarfitur, geser ke atas dengan 3 jari dan tahan."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Untuk menggunakan fitur aksesibilitas, geser ke atas dari bawah layar dengan 2 jari.\n\nUntuk beralih antarfitur, geser ke atas dengan 2 jari dan tahan."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Tahan tombol volume"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"tahan 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_triple_tap" msgid="6687765191490040899">"Ketuk layar tiga kali dengan dua jari"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"ketuk layar tiga kali dengan dua jari"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"ketuk layar 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>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Gunakan getaran &amp; sentuhan"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Getaran alarm"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Getaran media"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Getaran keyboard"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Getaran dering"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Getaran notifikasi"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Respons sentuhan"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> tersisa"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> lagi agar terisi penuh"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Waktu pemakaian perangkat"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Waktu di latar belakang"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Baterai lemah"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Izinkan aplikasi berjalan di latar belakang"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Batasi aktivitas background?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Jika aktivitas background aplikasi dibatasi, mungkin fungsinya terganggu."</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Anda tidak dapat membatasi aplikasi karena tidak disetel untuk mengoptimalkan baterai.\n\nAktifkan pengoptimalan baterai untuk membatasi aplikasi."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Kelola penggunaan baterai"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Izinkan penggunaan latar belakang"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Aktifkan untuk mendapatkan info terbaru secara real-time, nonaktifkan untuk menghemat baterai"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Tidak dibatasi"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Dioptimalkan"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Dibatasi"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"sejak terakhir kali baterai terisi penuh"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Aplikasi sistem"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Aplikasi yang di-uninstal"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Lainnya"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Perkiraan sisa waktu"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Sampai terisi penuh"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Total: kurang dari satu menit"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Latar belakang: kurang dari satu menit"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Waktu pemakaian perangkat: kurang dari satu menit"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Kurang dari satu menit"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Total: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Latar belakang: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Waktu pemakaian perangkat: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Data seluler &amp; Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Sinkronisasi otomatis data pribadi"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Sinkronisasi otomatis data kerja"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Sinkronisasi otomatis data pribadi"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Ubah daur..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Tanggal dalam bulan untuk menyetel ulang daur penggunaan data:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Tak ada apl yg menggunakan data dlm periode ini."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"ukuran teks, hasil cetak besar, font besar, teks besar, gangguan penglihatan, buat teks lebih besar, pembesar font, pembesaran font"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"tampilan standby selalu aktif, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, tag, pembaca"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"keyboard, haptic, getar,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Volume, getar, Jangan Ganggu"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Volume media"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Volume transmisi"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Tampilkan semua konten notifikasi"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Tampilkan konten sensitif hanya saat tidak terkunci"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Jangan tampilkan notifikasi sama sekali"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Bagaimana tampilan layar kunci yang Anda inginkan?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Layar kunci"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Tampilkan semua konten notifikasi profil kerja"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Sembunyikan konten kerja sensitif"</string>
@@ -3354,6 +3449,17 @@
     <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="6121016426991791557">"Periode tunggu notifikasi"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Terapkan periode tunggu pada semua notifikasi"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Menurunkan volume notifikasi secara bertahap saat Anda mendapatkan notifikasi berturut-turut dari aplikasi yang sama"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Terapkan periode tunggu pada percakapan"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Mengurangi volume notifikasi secara bertahap saat Anda menerima banyak pesan dari chat yang sama dalam waktu singkat"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Jangan gunakan periode tunggu notifikasi"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Jangan pernah mengurangi volume notifikasi meskipun menerima serangkaian notifikasi berturut-turut dari aplikasi yang sama"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Bergetar saat tidak terkunci"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Hanya bergetar saat layar tidak terkunci"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Terapkan pada profil kerja"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Menerapkan setelan periode tunggu notifikasi dari profil pribadi ke profil kerja Anda"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Layanan bantuan VR"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Tidak ada aplikasi terinstal yang meminta dijalankan sebagai layanan bantuan VR"</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Izinkan akses layanan VR untuk <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Izinkan akses untuk mengelola semua file"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Mengizinkan aplikasi ini untuk membaca, mengubah, dan menghapus semua file di perangkat ini atau media penyimpanan yang terpasang. Jika diberikan, aplikasi dapat mengakses file tanpa sepengetahuan Anda."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Dapat mengakses semua file"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Aplikasi aktivasi suara"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Izinkan aktivasi suara"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Aktivasi suara mengaktifkan aplikasi yang disetujui secara handsfree menggunakan perintah suara. Deteksi adaptif bawaan memastikan data tetap bersifat pribadi hanya untuk Anda.\n\n"<a href="">"Selengkapnya tentang deteksi adaptif yang dilindungi"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Notifikasi layar penuh"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Izinkan notifikasi layar penuh dari aplikasi ini"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Izinkan aplikasi ini menampilkan notifikasi dalam layar penuh ketika perangkat terkunci. Aplikasi mungkin menggunakan tindakan ini untuk memperjelas alarm, panggilan masuk, atau notifikasi penting lainnya."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> menggunakan lebih banyak baterai dari biasanya saat di latar belakang"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> menggunakan lebih banyak baterai saat di latar depan"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> menggunakan lebih banyak baterai dari biasanya saat di latar depan"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Penggunaan baterai tinggi"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Penggunaan baterai tinggi di latar belakang"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Penggunaan baterai tinggi di latar depan"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"navigasi sistem, navigasi 2 tombol, navigasi 3 tombol, navigasi gestur, geser"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Asisten digital"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Geser untuk memanggil asisten"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Geser ke atas dari pojok bawah untuk memanggil aplikasi asisten digital."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Tahan tombol Layar utama untuk membuka Asisten"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Tekan dan tahan tombol Layar Utama untuk membuka aplikasi asisten digital."</string>
     <string name="low_label" msgid="6525629096999711220">"Rendah"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"data, kunci sandi, sandi"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"otomatis, isi, isi otomatis, data, kunci sandi, sandi"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Pastikan Anda memercayai aplikasi ini&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Isi Otomatis Google&gt;%1$s&lt;/xliff:g&gt; menggunakan item yang ada di layar untuk menentukan item apa saja yang dapat diisi otomatis."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Gunakan &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; menggunakan konten di layar untuk menentukan item yang dapat diisi otomatis. Sandi, kunci sandi, dan info baru lainnya akan disimpan di sini mulai sekarang."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Gunakan &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Sandi, kunci sandi, dan info baru lainnya akan disimpan di sini mulai sekarang. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; dapat menggunakan konten di layar untuk menentukan item yang dapat diisi otomatis."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Sandi, kunci sandi, dan layanan data"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Nonaktifkan %1$s?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Nonaktifkan layanan ini?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Info tersimpan seperti sandi, kunci sandi, metode pembayaran, dan info lainnya tidak akan diisikan saat Anda login. Untuk menggunakan info tersimpan, pilih sandi, kunci sandi, atau layanan data."</string>
@@ -4856,4 +4968,10 @@
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Nama perangkat Anda dapat dilihat oleh aplikasi yang diinstal. Juga mungkin dilihat 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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Pemindaian aplikasi menipu"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Periksa aktivitas aplikasi untuk menemukan phishing"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Gunakan pemindaian aplikasi menipu"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Gunakan pemindaian aplikasi kerja menipu"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-is/arrays.xml b/res/values-is/arrays.xml
index d6ece01..470e79e 100644
--- a/res/values-is/arrays.xml
+++ b/res/values-is/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Eftir 1 mínútu"</item>
     <item msgid="1574040255478150028">"Eftir 5 mínútur"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 8914718..49fdc6a 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Slökkva á Bluetooth LE-hljóði"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Slekkur á Bluetooth LE-hljóðeiginleika ef tækið styður vélbúnaðareiginleika LE-hljóðs."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Sýna rofa LE-hljóðs í tækjaupplýsingum"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Kveikja á undanþágulista fyrir Bluetooth LE-hljóð"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Kveikja á eiginleika undanþágulista fyrir Bluetooth LE-hljóð."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Sneiða hjá hvítum lista Bluetooth LE-hljóðs"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Nota LE-hljóð sjálfkrafa jafnvel þótt jaðartæki LE-hljóðs hafi ekki verið staðfest með tilliti til skilyrða hvíta listans."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Geymslumiðlar"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Símtæki"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Önnur tæki"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Vistuð tæki"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Tengt reikningi"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Notað áður með reikningi"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Kveikt verður á Bluetooth til að para"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Tengingarstillingar"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Áður tengt"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Skrifa í textareiti"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Hunsa þegar ýtt er á pennahnapp"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Penni"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Hljóði deilt"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Deila hljóði"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Símtöl og vekjarar"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Dagsetning og tími"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy-þjónn"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Hreinsa"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Nánar um staðsetningarstillingar"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Reikningar"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Öryggi"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Dulkóðun og skilríki"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Vinnusnið"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Einkarými"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Fela forrit í lokaðri möppu"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Taka úr lás með skjálás"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Sýna einkarými"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Fela þegar læst"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Fela einkarými þegar það er læst"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Til að aðrir sjái ekki einkarými tækisins geturðu falið það á forritalistanum"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Aðgangur að einkarými þegar það er falið"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Leitaðu að „Einkarými“ á leitarstikunni"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Ýttu á reitinn „Einkarými“"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Taktu einkarýmið úr lás"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Slökkt"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Kveikt"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Kerfi"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Búa til einkarými"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Eyða einkarými"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Einkarými var búið til"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Einkarými er þegar til"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Ekki tókst að búa til einkarými"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Einkarými var eytt"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Ekki tókst að eyða einkarými"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Setja upp skjálás"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Stilltu skjálás í tækinu til að nota einkarými."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Stilla skjálás"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Hætta við"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Hætta við"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Setja upp"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Setja upp einkarými"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Feldu einkaforrit í öruggu rými sem enginn getur opnað nema þú"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Svona virkar þetta"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Þú getur nálgast einkarými neðst á forritalistanum"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Forrit í einkarými eru varin með lás"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Tilkynningar forrita í einkarými eru faldar þegar það er læst"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Forrit í einkarými birtast ekki í leyfisstjóra, á persónuverndarstjórnborði og í öðrum stillingum þegar einkarými er læst"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Setur upp einkarými…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Einkarými er varið með lás"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Notkunarupplýsingar einkarýmisforrita eru faldar þegar það er læst"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Opnaðu einkarými á forritalistanum"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Ekki tókst að setja upp einkarými"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Prófaðu aftur núna eða komdu aftur síðar"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Reyna aftur"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Nota skjálás til að taka úr lás?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Hægt er að taka einkarými úr lás á sama hátt og tækið en einnig er hægt að velja annan lás"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Nota skjálás"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Velja nýjan lás"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Allt tilbúið!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Til að opna einkarými skaltu strjúka upp frá neðri hluta heimaskjásins og fletta svo niður"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Lokið"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Flettu niður til að opna einkarými"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Skráðu þig inn til að setja upp einkarými"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Þú getur bætt við allt að <xliff:g id="COUNT">%d</xliff:g> fingraförum"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Þú hefur bætt við hámarksfjölda fingrafara"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Ekki er hægt að bæta fleiri fingraförum við"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Tengja"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Aftengja"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Pörun og tenging"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Þegar kveikt er á Bluetooth getur tækið átt í samskiptum við önnur nálæg Bluetooth tæki."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Þegar kveikt er á Bluetooth getur tækið átt samskipti við önnur nálæg Bluetooth-tæki.\n\nTil að bæta notkun tækisins geta forrit og þjónustur áfram leitað að nálægum tækjum hvenær sem er, jafnvel þegar slökkt er á Bluetooth. Sem dæmi er hægt að nota þetta til að bæta eiginleika og þjónustur sem byggjast á staðsetningu. Hægt er að breyta þessu í stillingum Bluetooth-leitar."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Breyta"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Upplýsingar um tæki"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Leyfa ART að staðfesta bætakóða forrita sem hægt er að villuleita"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Sýna endurnýjunartíðni"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Sýna núverandi endurnýjunartíðni"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Sýna hlutfall HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Sýna núverandi hlutfall HDR/SDR"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Krefjast aflæsingar tækis fyrir NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Halda áfram að nota forrit þegar tæki er brotið saman"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Hnökralaus skjár"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Breytir endurnýjunarhraða sjálfkrafa úr 60 í <xliff:g id="ID_1">%1$s</xliff:g> Hz fyrir sumt efni. Eykur rafhlöðunotkun."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Hækkar endurnýjunartíðni sjálfkrafa upp í <xliff:g id="ID_1">%1$d</xliff:g> Hz fyrir sumt efni. Eykur rafhlöðunotkun."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Þvinga fram mesta endurnýjunarhraða"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Mesti endurnýjunarhraði fyrir bætta snertisvörun og gæði hreyfimynda. Eykur rafhlöðunotkun."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Skjáskynjun"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Sameiginlegar stillingar"</string>
     <string name="apn_settings" msgid="4295467389400441299">"Aðgangsstaðir"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Breyta aðgangsstað"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Bæta við aðgangsstað"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Ekki stillt"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Ekki stillt"</string>
     <string name="apn_name" msgid="6677695784108157953">"Heiti"</string>
@@ -1320,6 +1397,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"Aðgangsstaður virkur"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"Aðgangsstaður óvirkur"</string>
     <string name="bearer" msgid="3231443241639159358">"Flutningsmáti"</string>
+    <string name="network_type" msgid="748590707422733595">"Tegund netkerfis"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Ótilgreint"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Gerð MVNO"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"Gildi MVNO"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Eyða aðgangsstað"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Notaðu aðgengishnappinn til að opna"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Haltu hljóðstyrkstökkunum inni til að opna"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Ýttu þrisvar á skjáinn til að opna"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Ýtt þrisvar á skjáinn með tveimur fingrum til að opna"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Nota bendingu til að opna"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Nota aðgengisbendingu"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Til að nota þennan eiginleika skaltu ýta á aðgengishnappinn <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> neðst á skjánum.\n\nTil að skipta á milli eiginleika skaltu halda inni aðgengishnappinum."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Ýttu á aðgengishnappinn á skjánum til að nota þennan eiginleika."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Til að nota þennan eiginleika heldurðu inni báðum hljóðstyrkstökkunum."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Til að ræsa og stöðva stækkun skaltu ýta þrisvar einhvers staðar á skjáinn."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Til að ræsa og stöðva stækkun skaltu ýta þrisvar einhversstaðar á skjáinn með tveimur fingrum."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Til að nota þennan eiginleika skaltu strjúka 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_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Til að nota þennan eiginleika skaltu strjúka 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_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Til að nota aðgengiseiginleika skaltu strjúka 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>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Halda inni hljóðstyrkstökkum"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"halda inni hljóðstyrkstökkum"</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_triple_tap" msgid="6687765191490040899">"Ýtt þrisvar á skjáinn með tveimur fingrum"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"ýtt þrisvar á skjáinn með tveimur fingrum"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"Ý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="6863958573135995927">"ýta þrisvar á skjá"</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>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Nota titring og snertisvörun"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Titringur viðvarana"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Titringur margmiðlunarefnis"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Lyklaborðstitringur"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Titringur hringingar"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Titringur tilkynninga"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Snertisvörun"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> eftir"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> þar til fullri hleðslu er náð"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Skjátími"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Tími í bakgrunni"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Rafhlaða að tæmast"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Leyfa forriti að keyra í bakgrunni"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Viltu takmarka bakgrunnsvirkni?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Ef þú takmarkar bakgrunnsvirkni forrits gæti það látið illa"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Forrit notar ekki fínstillingu á rafhlöðu og því er ekki hægt að takmarka það.\n\nKveiktu á fínstillingu til að takmarka."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Stjórna rafhlöðunotkun"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Leyfa notkun í bakgrunni"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Kveiktu til að fá rauntímauppfærslur, slökktu til að spara rafhlöðuna"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Ótakmörkuð"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Fínstillt"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Takmarkað"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"frá síðustu fullu hleðslu"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Kerfisforrit"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Fjarlægð forrit"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Annað"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Áætlaður tími eftir"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Þar til fullri hleðslu er náð"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Alls: innan við mínúta"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Í bakgrunni: innan við mínúta"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Skjátími: innan við mínúta"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Minna en mínúta"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Samtals: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Í bakgrunni: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Skjátími: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Farsímagögn og Wi-Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Samstilla einkagögn sjálfkrafa"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Samstilla vinnugögn sjálfkrafa"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Samstilla lokuð gögn sjálfkrafa"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Skipta um tímabil…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Mánaðardagur til að endurstilla tímabil gagnanotkunar:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Engin forrit notuðu gögn á þessu tímabili."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"textastærð, stórt letur, stór leturgerð, stór texti, sjónskerðing, stækka texta, leturstækkari, leturstækkun"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"alltaf kveikt á hvíldarskjá, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, merki, lesari"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"lyklaborð, snertisvörun, titra,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Hljóðstyrkur, titringur, ónáðið ekki"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Hljóðstyrkur margmiðlunarefnis"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Hljóðstyrkur sendingar"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Sýna allt innihald tilkynninga"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Sýna viðkvæmt efni aðeins þegar tækið er opið"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Sýna engar tilkynningar"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Hvernig á lásskjárinn að birtast?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Lásskjár"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Sýna innihald allra vinnutilkynninga"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Fela viðkvæmt vinnutengt efni"</string>
@@ -3354,6 +3449,17 @@
     <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="6121016426991791557">"Fækkun tilkynninga"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Fækka öllum tilkynningum"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Fækka tilkynningum smám saman þegar margar tilkynningar í röð berast frá sama forriti"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Fækka tilkynningum samtala"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Fækka tilkynningum smám saman þegar mörg skilaboð berast frá sama spjalli á stuttum tíma"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Ekki fækka tilkynningum"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Aldrei fækka tilkynningum, óháð fjölda tilkynninga í röð frá sama forriti"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Titra þegar tekið er úr lás"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Aðeins titra þegar skjárinn er ólæstur"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Nota fyrir vinnusnið"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Notaðu stillingar fyrir fækkun tilkynninga á eigin sniði fyrir vinnusnið líka"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Hjálparþjónusta sýndarveruleika"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Engin uppsett forrit hafa óskað eftir að vera keyrð sem sýndarveruleikaþjónusta."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Leyfa sýndarveruleikaaðgang fyrir <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Leyfa aðgang til að stjórna öllum skrám"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Leyfa þessu forriti að lesa, breyta og eyða öllum skrám í þessu tæki eða tengdum geymsludrifum. Ef heimild er veitt fær forritið aðgang að skránum þínum án þess að þér sé tilkynnt sérstaklega um það."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Hefur aðgang að öllum skrám"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Raddstýringarforrit"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Leyfa raddstýringu"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Raddvirkjun kveikir handfrjálst á samþykktum forritum með raddskipun. Innbyggð aðlögunarhæf skynjun tryggir að gögnin séu lokuð öðrum en þér.\n\n"<a href="">"Nánar um aðlögunarhæfa skynjun með vörn"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Tilkynningar á öllum skjánum"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Leyfa tilkynningar á öllum skjánum frá þessu forriti"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Leyfa forritinu að birta tilkynningar á öllum skjánum þegar tækið er læst. Forrit kunna að nota þennan eiginleika til að leggja áherslu á vekjara, móttekin símtöl og aðrar áríðandi tilkynningar."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> notaði meiri rafhlöðuorku en venjulega í bakgrunni"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> notaði meiri rafhlöðuorku í forgrunni"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> notaði meiri rafhlöðuorku en venjulega í forgrunni"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Mikil rafhlöðunotkun"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Mikil rafhlöðunotkun í bakgrunni"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Mikil rafhlöðunotkun í forgrunni"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"kerfisstjórnun, tveggja hnappa stjórnun, þriggja hnappa stjórnun, bendingastjórnun, strjúka"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Stafrænn hjálpari"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Strjúktu til að ræsa hjálpara"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Strjúktu upp frá neðra horni skjásins til að ræsa stafrænt hjálparaforrit."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Haltu hnappinum „Heim“ inni til að opna Hjálparann"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Haltu inni heimahnappinum til að kalla fram forrit stafræna hjálparans."</string>
     <string name="low_label" msgid="6525629096999711220">"Lítið"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"gögn, aðgangslykill, aðgangsorð"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"sjálfvirkt, útfylling, sjálfvirk útfylling, gögn, aðgangslykill, aðgangsorð"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Gakktu úr skugga um að þú treystir þessu forriti&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Sjálfvirk útfylling Google&gt;%1$s&lt;/xliff:g&gt; notar það sem er á skjánum til að ákvarða hvað er hægt að fylla sjálfkrafa út."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Nota &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; notar það sem er á skjánum hjá þér til að greina hvað er hægt að fylla sjálfkrafa út. Ný aðgangsorð, aðgangslyklar og aðrar upplýsingar verða nú vistaðar hér í framhaldinu."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Nota &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Ný aðgangsorð, aðgangslyklar og aðrar upplýsingar verða vistaðar hér framvegis. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; kann að nota það sem er á skjánum hjá þér til að greina hvað er hægt að fylla sjálfkrafa út."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Aðgangsorð, aðgangslyklar og gagnaþjónustur"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Viltu slökkva á %1$s?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Viltu slökkva á þessari þjónustu?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Vistaðar upplýsingar á borð við aðgangsorð, aðgangslykla, greiðslumáta og aðrar upplýsingar verða ekki fylltar út þegar þú skráir þig inn. Veldu aðgangsorð, aðgangslykil eða gagnaþjónustu til að nota vistuðu upplýsingarnar."</string>
@@ -4226,10 +4338,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <string name="enable_angle_as_system_driver" msgid="4648827560023949786">"Tilraun: Kveikja á ANGLE"</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Viðvörun: Virkja ANGLE sem sjálfgefinn OpenGL ES-rekil Þessi eiginleiki er á tilraunastigi og er hugsanlega ekki samhæfur sumum myndavélar- og vídeóforritum."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"Endurræsingar er krafist til að skipta um OpenGL ES-rekil kerfis"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Breytingar á samhæfi forrits"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Víxla samhæfisbreytingum forrits"</string>
@@ -4786,9 +4896,9 @@
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Forrit sem voru sett upp fyrir # mánuði}one{Forrit sem voru sett upp fyrir # mánuði}other{Forrit sem voru sett upp fyrir # mánuðum}}"</string>
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Myndhlutfall"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"Prófaðu nýtt myndhlutfall fyrir þetta forrit ef það er ekki sniðið að <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Prófaðu nýtt myndhlutfall fyrir þetta forrit ef það er ekki sniðið að <xliff:g id="DEVICE_NAME">%1$s</xliff:g> Sum forrit eru ef til vill ekki fínstillt fyrir tiltekin myndhlutföll."</string>
+    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Prófaðu nýtt myndhlutfall fyrir þetta forrit ef það er ekki sniðið að <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Sum forrit eru ef til vill ekki fínstillt fyrir tiltekin myndhlutföll."</string>
     <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Prófaðu nýtt myndhlutfall fyrir forrit ef það er ekki sniðið að <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Prófaðu nýtt myndhlutfall fyrir forrit ef það er ekki sniðið að <xliff:g id="DEVICE_NAME">%1$s</xliff:g> Sum forrit eru ef til vill ekki fínstillt fyrir tiltekin myndhlutföll."</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Prófaðu nýtt myndhlutfall fyrir forrit ef það er ekki sniðið að <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Sum forrit eru ef til vill ekki fínstillt fyrir tiltekin myndhlutföll."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Tillögur að forritum"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Breytt forrit"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Sjálfgefið í forriti"</string>
@@ -4858,4 +4968,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Leitar að sviksamlegum forritum"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Leita að vefveiðum í forritavirkni"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Nota leit að blekkjandi forritum"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Nota leit að blekkjandi forritum fyrir vinnu"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-it/arrays.xml b/res/values-it/arrays.xml
index b246a4c..40e43cb 100644
--- a/res/values-it/arrays.xml
+++ b/res/values-it/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Dopo 1 minuto"</item>
     <item msgid="1574040255478150028">"Dopo 5 minuti"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 917f6f7..03cd910 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -44,7 +44,7 @@
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Ingrandisci"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Sempre"</string>
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Il display frontale si attiva quando chiudi il dispositivo"</string>
-    <string name="selective_stay_awake_title" msgid="7887645333447645168">"Soltanto giochi, video e altro ancora"</string>
+    <string name="selective_stay_awake_title" msgid="7887645333447645168">"Soltanto giochi, video e altre app"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Il display frontale si attiva per le app che impediscono allo schermo di diventare inattivo"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Mai"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Il display frontale si blocca quando chiudi il dispositivo"</string>
@@ -113,25 +113,39 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Disattiva Bluetooth LE audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Disattiva la funzionalità Bluetooth LE audio se il dispositivo supporta funzioni hardware LE audio."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Mostra comandi LE audio nei dettagli dispositivo"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Attiva lista consentita Bluetooth LE audio"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Attiva la funzionalità della lista consentita Bluetooth LE audio."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Ignora lista consentita Bluetooth LE audio"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Usa LE audio per impostazione predefinita anche se non è stato verificato che la periferica LE audio soddisfa i criteri della lista consentita."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Dispositivi multimediali"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Dispositivi di chiamata"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Altri dispositivi"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Dispositivi salvati"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Associato all\'account"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Usati in precedenza con l\'account"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Il Bluetooth verrà attivato per consentire l\'accoppiamento"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Preferenze di connessione"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Connessi in precedenza"</string>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth attivato"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Mostra tutti"</string>
-    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Vedi tutto"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Mostra tutti"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Stilo"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Pressione del pulsante dello stilo"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (Profilo di lavoro)"</string>
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Scrivi nei campi di testo"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignora tutti i pulsanti premuti con lo stilo"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Stilo"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Condivisione audio"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Condividi audio"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Chiamate e sveglie"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Data e ora"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Cancella"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Scopri di più sulle impostazioni di geolocalizzazione"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Account"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Sicurezza"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Crittografia e credenziali"</string>
@@ -380,7 +393,7 @@
     <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Se il tuo volto non viene riconosciuto, puoi sbloccare con lo smartwatch."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Usa l\'impronta o l\'orologio per"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Usa il volto o l\'orologio per"</string>
-    <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Usa il volto, l\'impronta o l\'orologio per"</string>
+    <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Uso del volto, dell\'impronta o dell\'orologio"</string>
     <string name="biometric_settings_use_watch_for" msgid="5454545622244040110">"Usa l\'orologio per"</string>
     <string name="biometric_settings_use_face_or_watch_preference_summary" msgid="4969685200340861744">"Con volto o smartwatch"</string>
     <string name="biometric_settings_use_fingerprint_or_watch_preference_summary" msgid="2425628094194828407">"Con impronta o smartwatch"</string>
@@ -410,7 +423,7 @@
     <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Quando lo smartphone viene sbloccato, riceverai una notifica sullo smartwatch. Se è stato sbloccato quando non era tua intenzione, tocca la notifica per bloccare di nuovo lo smartphone."</string>
     <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Sei tu ad avere il controllo"</string>
     <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Puoi rimuovere lo smartwatch da Sblocco dall\'orologio in qualsiasi momento in Impostazioni"</string>
-    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Tocca una notifica"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Tocchi una notifica"</string>
     <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Scorri verso l\'alto sulla schermata di blocco"</string>
     <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Scegli il tuo smartwatch"</string>
     <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Smartwatch disponibili"</string>
@@ -421,7 +434,7 @@
     <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Fine"</string>
     <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Sblocco dall\'orologio"</string>
     <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Puoi usare l\'orologio per sbloccare lo smartphone quando scorri verso l\'alto sulla schermata di blocco o tocchi una notifica"</string>
-    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Per utilizzare Sblocco dall\'orologio, lo smartwatch deve essere sbloccato, al polso, a portata di mano e connesso allo smartphone. Se la connessione si interrompe, devi sbloccare lo smartphone prima di poter utilizzare Sblocco dall\'orologio.\n\nNota:\nÈ possibile configurare un solo smartwatch alla volta. Per aggiungerne un altro, devi prima rimuovere quello attuale."</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Per utilizzare Sblocco dall\'orologio, lo smartwatch deve essere sbloccato, al polso, vicino e connesso allo smartphone. Se la connessione si interrompe, devi sbloccare lo smartphone prima di poter utilizzare Sblocco dall\'orologio.\n\nNota:\nÈ possibile configurare un solo smartwatch alla volta. Per aggiungerne un altro, devi prima rimuovere quello attuale."</string>
     <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>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Profilo di lavoro"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Spazio privato"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Nascondi le app in una cartella privata"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Sblocca usando il blocco schermo"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Mostra Spazio privato"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Nascondi quando è bloccato"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Nascondi Spazio privato quando è bloccato"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Per evitare che altre persone sappiano che lo Spazio privato è sul tuo dispositivo, puoi nasconderlo dal tuo elenco di app"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Accedi allo Spazio privato quando è nascosto"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Cerca \"Spazio privato\" nella barra di ricerca"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Tocca il riquadro Spazio privato"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Sblocca il tuo Spazio privato"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Off"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"On"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Sistema"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Crea Spazio privato"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Elimina Spazio privato"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Spazio privato creato"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Lo Spazio privato esiste già"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Impossibile creare lo Spazio privato"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Spazio privato eliminato"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Impossibile eliminare lo Spazio privato"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Imposta un blocco schermo"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Per utilizzare Spazio privato, imposta un blocco schermo."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Imposta blocco schermo"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Annulla"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Annulla"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Configura"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Configura Spazio privato"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Nascondi le app private in uno spazio sicuro a cui puoi accedere soltanto tu"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Come funziona"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Puoi accedere allo Spazio privato dalla parte inferiore del tuo elenco di app"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Le app nello Spazio privato sono protette da un blocco"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Le notifiche delle app nello Spazio privato vengono nascoste quando quest\'ultimo è bloccato"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Quando lo Spazio privato è bloccato, le relative app non vengono visualizzate in gestione autorizzazioni, dashboard della privacy e altre impostazioni"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Configurazione dello Spazio privato in corso…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Lo Spazio privato è protetto da un blocco"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Le informazioni sull\'utilizzo delle app dello Spazio privato vengono nascoste quando quest\'ultimo è bloccato"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Accedi allo Spazio privato dal tuo elenco di app"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Impossibile configurare lo Spazio privato"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Riprova adesso o in un secondo momento"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Riprova"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Utilizzare il blocco schermo per sbloccare?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Puoi sbloccare lo Spazio privato nello stesso modo in cui sblocchi il tuo dispositivo oppure scegliere un blocco diverso"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Usa il blocco schermo"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Scegli un nuovo blocco"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Fatto."</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Per accedere allo Spazio privato, scorri verso l\'alto dalla parte inferiore della schermata Home, quindi scorri verso il basso"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Fine"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Scorri verso il basso per accedere allo Spazio privato"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Accedi per configurare lo Spazio privato"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Puoi aggiungere fino a <xliff:g id="COUNT">%d</xliff:g> impronte digitali"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Hai aggiunto il numero massimo di impronte digitali"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Impossibile aggiungere ulteriori impronte digitali"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Connetti"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Disconnetti"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Accoppia e connetti"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Quando il Bluetooth è attivato, il dispositivo può comunicare con altri dispositivi che si trovano nelle vicinanze."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Quando il Bluetooth è attivo, il dispositivo può comunicare con altri dispositivi Bluetooth nelle vicinanze.\n\nPer migliorare l\'esperienza sul dispositivo, app e servizi possono comunque cercare dispositivi nelle vicinanze in qualsiasi momento, anche quando il Bluetooth non è attivo. Questo può essere utile, ad esempio, per migliorare funzionalità e servizi basati sulla posizione. Puoi modificare questa opzione nelle impostazioni relative alla scansione Bluetooth."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Modifica"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Dettagli dispositivo"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Consenti ad ART di verificare il bytecode delle app di cui è possibile eseguire il debug"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Frequenza aggiornamento"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Mostra l\'attuale frequenza di aggiornamento del display"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Mostra il rapporto HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Mostra l\'attuale rapporto HDR/SDR"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Richiedi sblocco del dispositivo per NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Continua a usare le app quando chiuso"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Display fluido"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Aumenta automaticamente la frequenza di aggiornamento da 60 a <xliff:g id="ID_1">%1$s</xliff:g> Hz per alcuni contenuti. Comporta un maggior utilizzo della batteria"</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Aumenta automaticamente la frequenza di aggiornamento fino a <xliff:g id="ID_1">%1$d</xliff:g> Hz per alcuni contenuti. Comporta un maggior utilizzo della batteria."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Forza frequenza di aggiornamento massima"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Massima frequenza di aggiornamento per migliore reattività al tocco e qualità dell\'animazione; aumenta il consumo della batteria"</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Schermo vigile"</string>
@@ -1197,7 +1273,7 @@
     <string name="device_info_not_available" msgid="4804474466616712326">"Non disponibile"</string>
     <string name="storage_settings" msgid="7472188817781592677">"Spazio di archiviazione"</string>
     <string name="storage_settings_for_app" msgid="229425418984637483">"Spazio di archiviazione e cache"</string>
-    <string name="storage_settings_title" msgid="486118156723194815">"Impostazioni memoria"</string>
+    <string name="storage_settings_title" msgid="486118156723194815">"Impostazioni spazio di archiviazione"</string>
     <string name="status_eid" msgid="7532406028683438634">"EID"</string>
     <string name="eid_multi_sim" msgid="9087924808336397804">"EID (slot per la SIM <xliff:g id="EID_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (slot SIM <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Impostazioni comuni"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Modifica punto di accesso"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Aggiungi punto di accesso"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Nessuna impostazione"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Nessuna impostazione"</string>
     <string name="apn_name" msgid="6677695784108157953">"Nome"</string>
@@ -1320,6 +1397,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN attivo"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN non attivo"</string>
     <string name="bearer" msgid="3231443241639159358">"Bearer"</string>
+    <string name="network_type" msgid="748590707422733595">"Tipo di rete"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Non specificato"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Tipo MVNO"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"Valore MVNO"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Elimina APN"</string>
@@ -1534,7 +1613,7 @@
     <string name="lockpassword_confirm_repair_mode_pattern_header" msgid="6669435143987988314">"Verifica sequenza"</string>
     <string name="lockpassword_confirm_repair_mode_pin_header" msgid="2585263648322879131">"Verifica PIN"</string>
     <string name="lockpassword_confirm_repair_mode_password_header" msgid="3064676176428495228">"Verifica password"</string>
-    <string name="lockpassword_confirm_repair_mode_pattern_details" msgid="6187536224419477465">"Per continuare devi inserire la sequenza del dispositivo"</string>
+    <string name="lockpassword_confirm_repair_mode_pattern_details" msgid="6187536224419477465">"Inserisci la sequenza del dispositivo per continuare"</string>
     <string name="lockpassword_confirm_repair_mode_pin_details" msgid="203022189107305807">"Per continuare devi inserire il PIN del dispositivo"</string>
     <string name="lockpassword_confirm_repair_mode_password_details" msgid="4860219600771003873">"Per continuare devi inserire la password del dispositivo"</string>
     <string name="lockpassword_invalid_pin" msgid="7530854476819820600">"PIN errato"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Usa il pulsante Accessibilità per aprire"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Tieni premuti i tasti del volume per aprire"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Tocca tre volte lo schermo per aprire"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Tocca tre volte lo schermo con due dita per aprire"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Usa un gesto per aprire"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Usa il gesto di accessibilità"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Per usare questa funzione, tocca il pulsante Accessibilità <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> nella parte inferiore dello schermo.\n\nPer spostarti tra le funzioni, tocca e tieni premuto il pulsante Accessibilità."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Per usare questa funzione, tocca il pulsante Accessibilità sullo schermo."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Per usare questa funzionalità, tieni premuti entrambi i tasti del volume."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Per avviare e interrompere l\'ingrandimento, tocca tre volte un punto qualsiasi dello schermo."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Per avviare e interrompere l\'ingrandimento, tocca tre volte un punto dello schermo con due dita."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Per usare questa funzione, scorri verso l\'alto dalla parte inferiore dello schermo con due dita.\n\nPer spostarti tra le funzioni, scorri verso l\'alto con due dita e tieni premuto."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Per usare questa funzione, scorri verso l\'alto dalla parte inferiore dello schermo con tre dita.\n\nPer spostarti tra le funzioni, scorri verso l\'alto con tre dita e tieni premuto."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Per usare una funzione di accessibilità, scorri verso l\'alto dalla parte inferiore dello schermo con due dita.\n\nPer spostarti tra le funzioni, scorri verso l\'alto con due dita e tieni premuto."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Tieni premuti i tasti del volume"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"tieni premuti i 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_triple_tap" msgid="6687765191490040899">"Tocca tre volte lo schermo con due dita"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"tocca tre volte lo schermo con due dita"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"tocca tre volte lo schermo"</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>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Usa vibrazione e feedback aptico"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Vibrazione sveglia"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Vibrazione contenuti multimediali"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Vibrazione tastiera"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Vibrazione squillo"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Vibrazione notifiche"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Feedback al tocco"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> rimanenti"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> alla ricarica"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Tempo di utilizzo"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Tempo in background"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Batteria in esaurimento"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Consenti l\'esecuzione in background dell\'app"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Limitare l\'attività in background?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Se limiti l\'attività in background per un\'app, tale app potrebbe funzionare in modo anomalo"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Per limitare l\'app,\n\ndevi prima attivare l\'ottimizzazione della batteria."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Gestisci l\'utilizzo della batteria"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Consenti l\'utilizzo in background"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Attiva per ricevere aggiornamenti in tempo reale, disattiva per risparmiare batteria"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Senza limitazioni"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Ottimizzato"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Con limitazioni"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"dall\'ultima ricarica completa"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"App di sistema"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"App disinstallate"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Altro"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Tempo residuo stimato"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Tempo rimanente alla carica completa"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Totale: meno di un minuto"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"In background: meno di un minuto"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Tempo di utilizzo: meno di un min"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Meno di un min"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Totale: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"In background: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Tempo di utilizzo: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Dati mobili e Wi-Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Sincronizza automaticamente dati personali"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Sincronizza automaticamente dati di lavoro"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Sinc. auto dei dati privati"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Cambia ciclo…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Giorno del mese in cui reimpostare ciclo di utilizzo dei dati:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Nessuna app ha utilizzato dati in questo periodo."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"dimensioni del testo, stampa grande, carattere grande, testo grande, ipovedente, ingrandimento del testo, ingranditore di carattere, ingrandimento di carattere"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"display Ambient sempre acceso, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, tag, lettore"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"tastiera, tecnologia aptica, vibrazione,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Volume, vibrazione, Non disturbare"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Volume contenuti multimediali"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Volume di trasmissione"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Mostra tutti i contenuti delle notifiche"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Mostra contenuti sensibili solo se sbloccato"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Non mostrare le notifiche"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Cosa vuoi visualizzare sulla schermata di blocco?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Schermata di blocco"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Mostra tutti i contenuti delle notifiche di lavoro"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Nascondi contenuti di lavoro sensibili"</string>
@@ -3354,6 +3449,17 @@
     <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="6121016426991791557">"Riduzione delle notifiche"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Applica la riduzione a tutte le notifiche"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Abbassa gradualmente il volume delle notifiche quando ricevi molte notifiche successive dalla stessa app"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Applica la riduzione alle conversazioni"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Abbassa gradualmente il volume delle notifiche quando ricevi molti messaggi dalla stessa chat in un breve periodo di tempo"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Non usare la riduzione delle notifiche"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Non abbassare mai il volume delle notifiche, indipendentemente dalla quantità di notifiche successive provenienti dalla stessa app"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Vibra quando sbloccato"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Vibra solo solo quando lo schermo è sbloccato"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Applica ai profili di lavoro"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Applica le impostazioni di riduzione delle notifiche dal profilo personale al profilo di lavoro"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Servizi helper VR"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Nessuna app installata ha richiesto di essere eseguita come servizio helper VR."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Consentire l\'accesso a <xliff:g id="SERVICE">%1$s</xliff:g> al servizio VR?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Consenti l\'accesso per gestire tutti i file"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Consenti a questa app di leggere, modificare ed eliminare tutti i file memorizzati su questo dispositivo o su qualsiasi volume di archiviazione collegato. Se concedi l\'autorizzazione, l\'app potrà accedere ai file senza informarti."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Possono accedere a tutti i file"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"App ad attivazione vocale"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Consenti attivazione vocale"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"L\'attivazione vocale attiva app approvate con la tua voce utilizzando i comandi vocali. Il rilevamento adattivo incorporato assicura che i dati rimangano privati.\n\n"<a href="">"Maggiori informazioni sul rilevamento adattivo protetto"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Notifiche a schermo intero"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Consenti notifiche a schermo intero di questa app"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Consenti a questa app di mostrare notifiche a schermo intero quando il dispositivo è bloccato. L\'app potrebbe usarle per mettere in evidenza sveglie, chiamate in arrivo o altre notifiche urgenti."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ha utilizzato più batteria del solito in background"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ha utilizzato più batteria in primo piano"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ha utilizzato più batteria del solito in primo piano"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Elevato utilizzo della batteria"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Elevato utilizzo della batteria in background"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Elevato utilizzo della batteria in primo piano"</string>
@@ -3996,7 +4107,7 @@
     <string name="system_navigation_title" msgid="4890381153527184636">"Modalità di navigazione"</string>
     <string name="swipe_up_to_switch_apps_title" msgid="6677266952021118342">"Navigazione con due pulsanti"</string>
     <string name="swipe_up_to_switch_apps_summary" msgid="1415457307836359560">"Per cambiare app, scorri verso l\'alto sul pulsante Home. Scorri ancora verso l\'alto per visualizzare tutte le app. Per tornare indietro, tocca il pulsante Indietro."</string>
-    <string name="emergency_settings_preference_title" msgid="6183455153241187148">"Sicurezza ed emergenza"</string>
+    <string name="emergency_settings_preference_title" msgid="6183455153241187148">"Sicurezza ed emergenze"</string>
     <string name="emergency_dashboard_summary" msgid="401033951074039302">"SOS emergenze, informazioni mediche, avvisi"</string>
     <string name="edge_to_edge_navigation_title" msgid="714427081306043819">"Navigazione tramite gesti"</string>
     <string name="edge_to_edge_navigation_summary" msgid="818109176611921504">"Per andare alla schermata Home, scorri verso l\'alto dalla parte inferiore dello schermo. Per cambiare app, scorri verso l\'alto dalla parte inferiore dello schermo, tieni premuto e rilascia. Per tornare indietro, scorri dal bordo sinistro o destro."</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"navigazione del sistema, navigazione con due pulsanti, navigazione con tre pulsanti, navigazione tramite gesti, scorrimento"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Assistente digitale"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Scorri per aprire l\'assistente"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Scorri verso l\'alto da un angolo in basso per aprire l\'app dell\'assistente digitale."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Tieni premuto Home per attivare l\'assistente"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Tieni premuto il pulsante Home per aprire l\'app dell\'assistente digitale."</string>
     <string name="low_label" msgid="6525629096999711220">"Bassa"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"dati, passkey, password"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"automatica, compilazione, compilazione automatica, dati, passkey, password"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Verifica che questa app sia attendibile&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=La Compilazione automatica di Google&gt;%1$s&lt;/xliff:g&gt; usa ciò che appare sullo schermo per stabilire quali contenuti possono essere compilati automaticamente."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Utilizzare &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; utilizza i contenuti sullo schermo per stabilire quali informazioni possono essere compilate automaticamente. D\'ora in poi le nuove password, passkey e altre informazioni verranno salvate qui."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Usa &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; D\'ora in poi, nuove password, passkey e altre informazioni verranno salvate qui. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; potrebbe usare i contenuti sullo schermo per stabilire quali informazioni possono essere compilate automaticamente."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Servizi per password, passkey e dati"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Vuoi disattivare %1$s?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Disattivare questo servizio?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Le informazioni salvate come password, passkey, metodi di pagamento e altre informazioni, non verranno inserite quando accedi. Per usare le informazioni salvate, scegli una password, una passkey o un servizio dati."</string>
@@ -4226,10 +4338,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <string name="enable_angle_as_system_driver" msgid="4648827560023949786">"Sperimentale: attiva ANGLE"</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Avviso: attiva ANGLE come driver OpenGL ES predefinito. Questa funzionalità è sperimentale e potrebbe non essere compatibile con alcune app fotocamera e video."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"È necessario riavviare per cambiare il driver OpenGL ES di sistema"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Modifiche di compatibilità dell\'app"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Attiva/disattiva le modifiche di compatibilità delle app"</string>
@@ -4785,12 +4895,10 @@
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{App installate nell\'ultimo mese}other{App installate negli ultimi # mesi}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{App installate più di # mese fa}other{App installate più di # mesi fa}}"</string>
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Proporzioni"</string>
-    <string name="aspect_ratio_summary" msgid="4056406351663726494">"Prova una nuova proporzione per visualizzare questa app se non è stata progettata per adattarsi al tuo dispositivo <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Prova una nuova proporzione per visualizzare questa app se non è stata progettata per adattarsi al tuo dispositivo <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Alcune app potrebbero non essere ottimizzate per alcune proporzioni."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary" msgid="4056406351663726494">"Prova un nuovo formato per visualizzare questa app se non è stata progettata per adattarsi a <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Prova un nuovo formato per visualizzare questa app se non è stata progettata per adattarsi a <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Alcune app potrebbero non essere ottimizzate per alcuni formati."</string>
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Prova una nuova proporzione per visualizzare un\'app se non è stata progettata per adattarsi a <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Prova una nuova proporzione per visualizzare un\'app se non è stata progettata per adattarsi a <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Alcune app potrebbero non essere ottimizzate per alcune proporzioni."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"App consigliate"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"App modificate"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Valore predefinito dell\'app"</string>
@@ -4801,7 +4909,7 @@
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
     <string name="user_aspect_ratio_option_a11y" msgid="1235801996029095219">"<xliff:g id="NUMERATOR">%1$s</xliff:g> di <xliff:g id="DENOMINATOR">%2$s</xliff:g>"</string>
-    <string name="app_aspect_ratio_footer" msgid="4029509301182067475">"Se modifichi le proporzioni, l\'app verrà riavviata. Potresti perdere le modifiche non salvate. Alcune app potrebbero non essere ottimizzate per alcune proporzioni."</string>
+    <string name="app_aspect_ratio_footer" msgid="4029509301182067475">"Se modifichi il formato, l\'app verrà riavviata. Potresti perdere le modifiche non salvate. Alcune app potrebbero non essere ottimizzate per alcuni formati."</string>
     <string name="aspect_ratio_experimental_title" msgid="9088785421062044831">"Formato (sperimentale)"</string>
     <string name="aspect_ratio_experiment_title" msgid="128614319422121040">"Formato (esperimento)"</string>
     <string name="aspect_ratio_labs_title" msgid="6733893837442759383">"Formato (lab)"</string>
@@ -4860,4 +4968,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Scansione delle app ingannevoli"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Controlla l\'attività delle app per verificare la presenza di phishing"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Usa la scansione delle app ingannevoli"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Usa la scansione delle app ingannevoli per il lavoro"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-iw/arrays.xml b/res/values-iw/arrays.xml
index 9d016bb..711bcc3 100644
--- a/res/values-iw/arrays.xml
+++ b/res/values-iw/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"לאחר דקה אחת"</item>
     <item msgid="1574040255478150028">"לאחר 5 דקות"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index fab071b..9560105 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"‏השבתה של Bluetooth LE audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"‏האפשרות הזו משביתה את התכונה Bluetooth LE Audio אם המכשיר תומך ביכולות חומרה של LE audio."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"‏הצגת המתג של LE audio בפרטי המכשיר"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"‏הפעלה של רשימת ההרשאות של Bluetooth LE Audio"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"‏הפעלה של התכונה רשימת ההרשאות של Bluetooth LE Audio."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"‏מעקף רשימת ההיתרים של Bluetooth LE Audio"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"‏שימוש ב-LE Audio כברירת מחדל גם אם הציוד ההיקפי של ה-LE Audio לא אומת כעומד בקריטריונים של רשימת ההיתרים."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"מכשירים לאחסון מדיה"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"מכשירי התקשרות"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"מכשירים אחרים"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"מכשירים שמורים"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"מקושר לחשבון"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"נעשה שימוש לאחרונה בחשבון"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"‏Bluetooth יופעל לצורך התאמה"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"העדפות חיבור"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"מכשירים שחוברו בעבר"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"כתיבה בשדות טקסט"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"התעלמות מכל הלחיצות של הסטיילוס"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"סטיילוס"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"שיתוף של אודיו"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"שיתוף האודיו"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"שיחות והתראות"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"תאריך ושעה"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"‏שרת Proxy"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"ניקוי"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"בטעינה…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"אפליקציות עם ההרשאה \"מכשירים בקרבת מקום\" יכולות להעריך את המיקום היחסי של המכשירים המחוברים."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"הגישה למיקום מושבתת עבור אפליקציות ושירותים. אם מתקשרים למספר חירום או שולחים אליו הודעת טקסט, ייתכן שפרטי מיקום המכשיר יישלחו לצוותי חירום."</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"מידע נוסף על הגדרות המיקום"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"חשבונות"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"אבטחה"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"הצפנה ופרטי כניסה"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"פרופיל העבודה"</string>
     <string name="private_space_title" msgid="7078627930195569767">"מרחב פרטי"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"הסתרת אפליקציות בתיקייה פרטית"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"ביטול הנעילה באמצעות נעילת מסך"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"הצגה של המרחב הפרטי"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"הסתרה במצב נעילה"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"הסתרת המרחב הפרטי במצב נעילה"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"כדי למנוע מאנשים אחרים לדעת שהמרחב הפרטי מופעל במכשיר, אפשר להסתיר אותו מרשימת האפליקציות"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"גישה למרחב הפרטי כשהוא במצב הסתרה"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"חיפוש \'מרחב פרטי\' בסרגל החיפוש"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"מקישים על פקד ההגדרה המהירה \'מרחב פרטי\'"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"ביטול הנעילה של המרחב הפרטי"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"מצב מושבת"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"מצב פעיל"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"מערכת"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"יצירת מרחב פרטי"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"מחיקת מרחב פרטי"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"יצרת מרחב פרטי"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"יש כבר מרחב פרטי"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"לא ניתן היה ליצור מרחב פרטי"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"מחקת את המרחב הפרטי"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"לא ניתן היה למחוק את המרחב הפרטי"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"הגדרת נעילת מסך"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"כדי להשתמש במרחב הפרטי, עליך להגדיר נעילת מסך במכשיר הזה."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"הגדרה של נעילת מסך"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"ביטול"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"ביטול"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"הגדרה"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"הגדרה של מרחב פרטי"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"הסתרה של אפליקציות פרטיות במרחב מאובטח שרק לך יש גישה אליו"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"איך זה עובד"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"אפשר לגשת למרחב הפרטי בחלק התחתון של רשימת האפליקציות שלך"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"אפליקציות במרחב הפרטי מוגנות באמצעות נעילה"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"ההתראות מהאפליקציות במרחב הפרטי מוסתרות כשהוא נעול"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"אפליקציות המרחב הפרטי לא יופיעו בניהול ההרשאות, במרכז הבקרה להגדרות הפרטיות ובהגדרות אחרות כשהמרחב הפרטי נעול"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"הגדרת המרחב הפרטי מתבצעת…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"המרחב הפרטי מוגן על ידי נעילה"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"פרטי השימוש של אפליקציות המרחב הפרטי מוסתרים כשהוא נעול"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"גישה למרחב הפרטי מרשימת האפליקציות שלך"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"לא ניתן להגדיר את ה\'מרחב הפרטי\'"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"אפשר לנסות שוב עכשיו או מאוחר יותר"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"ניסיון נוסף"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"להשתמש בשיטה לביטול נעילת המסך כדי לפתוח?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"אפשר לפתוח את המרחב הפרטי באותה דרך שפותחים את המכשיר או לבחור בנעילה אחרת"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"שימוש בשיטה לביטול נעילת המסך"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"בחירת נעילה חדשה"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"הכול מוכן!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"כדי לגשת למרחב הפרטי, צריך להחליק למעלה מתחתית מסך הבית ואז לגלול למטה"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"סיום"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"גוללים למטה כדי לגשת למרחב הפרטי"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"צריך להיכנס לחשבון כדי להגדיר מרחב פרטי"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"אפשר להוסיף עד <xliff:g id="COUNT">%d</xliff:g> טביעות אצבע"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"הוספת את המספר המרבי של טביעות אצבע."</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"לא ניתן להוסיף עוד טביעות אצבע"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"התחברות"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"התנתקות"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"התאמה וחיבור"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"‏כשה-Bluetooth מופעל, המכשיר יכול לתקשר עם מכשירי Bluetooth אחרים שנמצאים בקרבת מקום."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"‏כשה-Bluetooth מופעל, המכשיר יכול לתקשר עם מכשירי Bluetooth אחרים שנמצאים בקרבת מקום.\n\nכדי לשפר את חוויית השימוש במכשיר, אפליקציות ושירותים יכולים לסרוק אחר מכשירים בקרבת מקום בכל שלב, גם כשה-Bluetooth כבוי. אפשר להשתמש בכך, למשל, כדי לשפר תכונות ושירותים שמבוססים על מיקום. ניתן לשנות זאת בהגדרות הסריקה של Bluetooth‏."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"שינוי"</string>
     <string name="device_details_title" msgid="1155622417516195481">"פרטי המכשיר"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"‏ART יוכל לאמת קוד בייט לאפליקציות שניתנות לניפוי באגים"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"הצגת קצב הרענון"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"הצגת קצב הרענון של התצוגה הנוכחית"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"‏הצגת יחס HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"‏הצגת יחס ה-HDR/SDR הנוכחי"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"‏דרישה לביטול נעילת המכשיר עבור NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"המשך שימוש באפליקציות כשהמכשיר מקופל"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"תצוגה חלקה"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"‏קצב הרענון עולה באופן אוטומטי מ-60 ל-Hz<xliff:g id="ID_1">%1$s</xliff:g> לחלק מהתוכן. השימוש בסוללה יוגבר."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"‏קצב הרענון עולה באופן אוטומטי עד ‎<xliff:g id="ID_1">%1$d</xliff:g> Hz לחלק מהתוכן. השימוש בסוללה יוגבר."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"אילוץ לקצב הרענון המקסימלי"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"קצב הרענון הגבוה ביותר לתגובה משופרת למגע ולאיכות אנימציה טובה יותר. פעולה זו מגבירה את השימוש בסוללה."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"המסך יישאר דלוק בזמן צפייה"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"הגדרות שיתופיות"</string>
     <string name="apn_settings" msgid="4295467389400441299">"‏פריטי APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"עריכת נקודת גישה"</string>
+    <string name="apn_add" msgid="9069613192201630934">"‏הוספת נקודת גישה (AP)"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"לא בוצעה הגדרה"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"לא הוגדר"</string>
     <string name="apn_name" msgid="6677695784108157953">"שם"</string>
@@ -1320,6 +1397,8 @@
     <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="network_type" msgid="748590707422733595">"סוג הרשת"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"לא צוין"</string>
     <string name="mvno_type" msgid="4734654257494971247">"‏סוג MVNO"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"‏ערך MVNO"</string>
     <string name="menu_delete" msgid="9199740901584348273">"‏מחיקת APN"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"שימוש בלחצן הנגישות לצורך פתיחה"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"לחיצה ארוכה על לחצני עוצמת הקול כדי לפתוח"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"מקישים שלוש פעמים על המסך כדי לפתוח"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"לפתיחה, יש להקיש שלוש פעמים על המסך עם שתי אצבעות"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"שימוש בתנועה לצורך פתיחה"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"שימוש בתנועה להפעלת תכונות הנגישות"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"כדי להשתמש בתכונה זו, יש להקיש על לחצן הנגישות <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> שבתחתית המסך.\n\nכדי לעבור בין התכונות השונות, יש ללחוץ לחיצה ארוכה על לחצן הנגישות."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"כדי להשתמש בתכונה הזו, יש להקיש על לחצן הנגישות במסך."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"כדי להשתמש בתכונה הזו, יש ללחוץ לחיצה ארוכה על שני הלחצנים של עוצמת הקול."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"כדי להפעיל הגדלה ולהפסיק אותה, יש להקיש שלוש פעמים במיקום כלשהו במסך."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"כדי להתחיל ולהפסיק את ההגדלה, יש להקיש שלוש פעמים בכל מקום במסך עם שתי אצבעות."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"כדי להשתמש בתכונה זו, יש להחליק כלפי מעלה מתחתית המסך באמצעות שתי אצבעות.\n\nכדי לעבור בין התכונות השונות, יש להחליק כלפי מעלה באמצעות שתי אצבעות ולהחזיק."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"כדי להשתמש בתכונה זו, יש להחליק כלפי מעלה מתחתית המסך באמצעות שלוש אצבעות.\n\nכדי לעבור בין התכונות השונות, יש להחליק כלפי מעלה באמצעות שלוש אצבעות ולהחזיק."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"כדי להשתמש בתכונת הנגישות, יש להחליק כלפי מעלה מתחתית המסך באמצעות שתי אצבעות.\n\nכדי לעבור בין התכונות השונות, יש להחליק כלפי מעלה באמצעות שתי אצבעות ולהחזיק."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"לחיצה ארוכה על לחצני עוצמת הקול"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"לחיצה ארוכה על לחצני עוצמת הקול"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"יש ללחוץ לחיצה ארוכה על שני הלחצנים של עוצמת הקול"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"שלוש הקשות על המסך עם שתי אצבעות"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"שלוש הקשות על המסך עם שתי אצבעות"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"‏הקשה מהירה על המסך {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="6863958573135995927">"הקשה שלוש פעמים על המסך"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"‏מקישים במהירות על המסך {0,number,integer} פעמים. קיצור הדרך הזה עלול להאט את פעולת המכשיר"</string>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"שימוש ברטט ובמשוב פיזי"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"רטט של שעון מעורר"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"רטט של פריט מדיה"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"רטט של המקלדת"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"רטט הצלצול"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"רטט של התראה"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"משוב מגע"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"נותרו <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> לסיום הטעינה"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"זמן מסך"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"זמן פעולה ברקע"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"הסוללה חלשה"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"התרה לאפליקציה לפעול ברקע"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"להגביל את הפעילות ברקע?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"הגבלת הפעילות של אפליקציה ברקע עלולה לשבש את פעולתה"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"מכיוון שהאפליקציה לא מוגדרת לאופטימיזציה של הסוללה, לא ניתן להגבילה.\n\nכדי להגביל אותה, תחילה יש להפעיל אופטימיזציה של הסוללה."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"ניהול השימוש בסוללה"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"הרשאה לשימוש ברקע"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"אפשר להפעיל כדי לקבל עדכונים בזמן אמת או להשבית כדי לחסוך בסוללה"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"ללא הגבלות"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"אופטימיזציה"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"מוגבל"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"מאז הטעינה המלאה האחרונה"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"אפליקציות מערכת"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"אפליקציות שהוסרו"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"אחרים"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"זמן משוער שנותר"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"עד לטעינה מלאה"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"סה\"כ: פחות מדקה"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"ברקע: פחות מדקה"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"זמן מסך: פחות מדקה"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"פחות מדקה"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"סה\"כ: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"ברקע: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"זמן מסך: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"‏חבילת גלישה ו-Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"סנכרון אוטומטי לנתונים האישיים"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"סנכרון אוטומטי של נתוני העבודה"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"סנכרון אוטומטי של מידע פרטי"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"שינוי הגדרת המחזור…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"היום בחודש שבו יש לאפס את מחזור השימוש בנתונים:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"אף אפליקציה לא השתמשה בנתונים במהלך פרק זמן זה."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"גודל הטקסט, אותיות גדולות, גופן גדול, טקסט גדול, לקוי ראייה, הגדלת טקסט, מגדיל טקסט"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"‏תצוגת אווירה פועלת כל הזמן (AOD)"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"‏תג NFC‏, nfc, תג, קורא"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"מקלדת, משוב פיזי, רטט,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"עוצמת קול, רטט ומצב \'נא לא להפריע\'"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"עוצמת קול של מדיה"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"עוצמת הקול בהעברה"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"הצגת תוכן ההתראות במלואו"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"הצגת תוכן רגיש רק כשהמכשיר לא נעול"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"לא להציג התראות בכלל"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"איך להציג התראות במסך הנעילה?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"מסך נעילה"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"הצגת כל התוכן של התראות מהעבודה"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"הסתרה של תוכן עבודה רגיש"</string>
@@ -3354,6 +3449,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"האפליקציה הזו לא תומכת בהגדרות המשופרות"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"הגדרות נוספות"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"הגדרות נוספות זמינות בתוך האפליקציה הזו"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"הפחתה הדרגתית של ההתראות"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"הפעלת הפחתה הדרגתית על כל ההתראות"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"הפחתה בהדרגה של כמות ההתראות כשמקבלים התראות רצופות מרובות מאותה האפליקציה"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"הפעלת הפחתה הדרגתית על השיחות"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"הפחתה בהדרגה של כמות ההתראות כשמקבלים הודעות מרובות מאותו הצ\'אט בפרק זמן קצר"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"לא להפעיל הפחתה הדרגתית על ההתראות"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"לא להפחית אף פעם את כמות ההתראות, בלי קשר לכמות ההתראות הרצופות מאותה האפליקציה"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"רטט כשמבטלים את הנעילה"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"רטט רק כשנעילת המסך מתבטלת"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"הפעלה בפרופילי העבודה"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"הפעלת ההגדרות של ההפחתה ההדרגתית על ההתראות מהפרופיל האישי בפרופיל העבודה"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"‏שירותי סיוע של VR"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"‏לא התקבלו בקשות מאפליקציות מותקנות לפעול כשירותי סיוע של VR."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"‏האם לאפשר לשירות VR גישה אל <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"הרשאת גישה לניהול כל הקבצים"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"לאפליקציה הזו תהיה הרשאה לקרוא, לשנות ולמחוק את כל הקבצים במכשיר הזה או בכל אחסון שמחובר אליו. אם ההרשאה ניתנת, האפליקציה תורשה לגשת לקבצים מבלי ליידע אותך במפורש."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"יכולת גישה לכל הקבצים"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"אפליקציות בהפעלה קולית"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"אישור הפעלה קולית"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"הפעלה קולית מפעילה אפליקציות שאושרו, באמצעות פקודה קולית. החישה האדפטיבית המובנית מבטיחה שהנתונים יישארו פרטיים רק לך.\n\n"<a href="">"מידע נוסף על חישה אדפטיבית מוגנת"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"התראות במסך מלא"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"מתן הרשאה להצגת התראות במסך מלא מהאפליקציה הזו"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"מתן הרשאה לאפליקציה הזו להציג התראות במסך מלא כשהמכשיר נעול. אפליקציות יכולות להשתמש בהרשאה הזו כדי להציג התראות, שיחות נכנסות או הודעות דחופות אחרות."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"צריכת הסוללה של <xliff:g id="APP_LABEL">%1$s</xliff:g> הייתה גבוהה יותר מהרגיל בזמן הפעילות ברקע"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"צריכת הסוללה של <xliff:g id="APP_LABEL">%1$s</xliff:g> הייתה גבוהה יותר בזמן הפעילות בחזית"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"צריכת הסוללה של <xliff:g id="APP_LABEL">%1$s</xliff:g> הייתה גבוהה יותר מהרגיל בזמן הפעילות בחזית"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"צריכת סוללה גבוהה"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"צריכת סוללה גבוהה ברקע"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"צריכת סוללה גבוהה בחזית"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"ניווט במערכת, ניווט ב-2 לחצנים, ניווט ב-3 לחצנים, ניווט באמצעות תנועות, החלקה"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"העוזר הדיגיטלי"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"החלקה להפעלת העוזר הדיגיטלי"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"כדי להפעיל את אפליקציית העוזר הדיגיטלי, צריך להחליק למעלה מאחת הפינות התחתונות."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"לחיצה ארוכה על הלחצן הראשי להפעלת העוזר הדיגיטלי"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"צריך ללחוץ לחיצה ארוכה על הלחצן הראשי כדי להפעיל את אפליקציית העוזר הדיגיטלי."</string>
     <string name="low_label" msgid="6525629096999711220">"נמוכה"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"נתונים, מפתח גישה, סיסמה"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"מילוי, אוטומטי, מילוי אוטומטי, נתונים, מפתח גישה, סיסמה"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"‏&lt;b&gt;חשוב לוודא שהאפליקציה הזו מהימנה&lt;/b&gt;‏ ‏&lt;br/&gt; &lt;br/&gt;‏ ‏&lt;xliff:g id=app_name example=Google Autofill&gt;‏%1$s‏&lt;/xliff:g&gt; משתמשת במידע שמופיע במסך כדי לזהות אילו שדות אפשר למלא באופן אוטומטי."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"‏&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_autofill_confirmation_message" msgid="843829628024668466">"‏&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_picker_title" msgid="8191267620665129205">"סיסמאות, מפתחות גישה ושירותי נתונים"</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>
@@ -4226,10 +4338,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <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="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>
@@ -4808,19 +4918,19 @@
     <string name="aspect_ratio_experiment_label" msgid="7861871612376167784">"ניסוי"</string>
     <string name="aspect_ratio_labs_label" msgid="7008498116297651342">"Labs"</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"חיישן טביעות אצבע"</string>
-    <string name="flash_notifications_title" msgid="4490438861180492311">"התראות הבהוב"</string>
-    <string name="flash_notifications_about_title" msgid="9004351252928121214">"מידע על התראות הבהוב"</string>
+    <string name="flash_notifications_title" msgid="4490438861180492311">"הבהוב על התראות"</string>
+    <string name="flash_notifications_about_title" msgid="9004351252928121214">"מידע על הבהוב על התראות"</string>
     <string name="flash_notifications_summary_off" msgid="6056282996770691461">"מצב כבוי"</string>
     <string name="flash_notifications_summary_on_camera" msgid="3286405833586333730">"מצב פעיל / הפלאש של המצלמה"</string>
     <string name="flash_notifications_summary_on_screen" msgid="9040640799633336219">"מצב פעיל / הבזק מסך"</string>
     <string name="flash_notifications_summary_on_camera_and_screen" msgid="2326268141063768701">"מצב פעיל / הפלאש של המצלמה והבזק מסך"</string>
-    <string name="flash_notifications_intro" msgid="8409873413480928249">"הפעלת התראות הבהוב של המצלמה או הבזק מסך כשמקבלים התראות או כשנשמעות אזעקות"</string>
-    <string name="flash_notifications_intro_without_camera_flash" msgid="6297337174487793891">"הפעלת הבהוב של המסך כשמקבלים התראות או כאשר נשמעות אזעקות."</string>
+    <string name="flash_notifications_intro" msgid="8409873413480928249">"המסך או הפלאש יהבהבו כשיתקבלו התראות או יצלצלו שעונים מעוררים"</string>
+    <string name="flash_notifications_intro_without_camera_flash" msgid="6297337174487793891">"המסך יהבהב כשיתקבלו התראות או יצלצלו שעונים מעוררים"</string>
     <string name="flash_notifications_note" msgid="2426125248448055075">"אם יש לך רגישות לאור, כדאי להשתמש בהתראות הבהוב בזהירות"</string>
     <string name="flash_notifications_keywords" msgid="2458759275318514836">"פלאש, אור, כבד שמיעה, אובדן שמיעה"</string>
     <string name="flash_notifications_preview" msgid="5320176885050440874">"תצוגה מקדימה"</string>
-    <string name="camera_flash_notification_title" msgid="2475084876382922732">"הפלאש של המצלמה"</string>
-    <string name="screen_flash_notification_title" msgid="3773100725793316708">"הבזק מסך"</string>
+    <string name="camera_flash_notification_title" msgid="2475084876382922732">"הבהוב פלאש"</string>
+    <string name="screen_flash_notification_title" msgid="3773100725793316708">"הבהוב במסך"</string>
     <string name="screen_flash_notification_color_title" msgid="7213407653340970790">"צבע להבזק מסך"</string>
     <string name="screen_flash_color_blue" msgid="3585766657607931371">"כחול"</string>
     <string name="screen_flash_color_azure" msgid="8691198532944992243">"תכלת"</string>
@@ -4859,4 +4969,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"מתבצעת סריקה לאיתור אפליקציות מטעות"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"בדיקת הפעילות באפליקציה לאיתור פישינג"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"שימוש בסריקה לגילוי אפליקציות שיש בהן ניסיונות הונאה"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"שימוש בסריקה לגילוי אפליקציות לצורכי עבודה שיש בהן ניסיונות הונאה"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-ja/arrays.xml b/res/values-ja/arrays.xml
index d3cadf8..a12f42f 100644
--- a/res/values-ja/arrays.xml
+++ b/res/values-ja/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"1 分後"</item>
     <item msgid="1574040255478150028">"5 分後"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 37b8e8c..a0d4a6f 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -42,11 +42,11 @@
     <string name="preview_pager_content_description" msgid="3762247188224576303">"プレビュー"</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">"常に ON"</string>
+    <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"常時"</string>
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"デバイスを折りたたむとフロント ディスプレイが ON になります"</string>
-    <string name="selective_stay_awake_title" msgid="7887645333447645168">"ゲーム、動画などのみ"</string>
-    <string name="selective_stay_awake_summary" msgid="9055967322921984543">"フロント ディスプレイが ON になり、アプリによって画面がアイドル状態から復帰します"</string>
-    <string name="sleep_on_fold_title" msgid="7626123024330501411">"ON にしない"</string>
+    <string name="selective_stay_awake_title" msgid="7887645333447645168">"ゲームや動画などの場合のみ"</string>
+    <string name="selective_stay_awake_summary" msgid="9055967322921984543">"画面がアイドル状態にならないアプリを使用している場合にフロント ディスプレイが ON になります"</string>
+    <string name="sleep_on_fold_title" msgid="7626123024330501411">"継続しない"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"デバイスを折りたたむとフロント ディスプレイがロックされます"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"画面を自動で回転させる"</string>
     <string name="smart_rotate_text_headline" msgid="5878008933992951904">"顔検出は、前面カメラを使用して自動回転の精度を高めます。画像が Google に保存されたり送信されたりすることはありません。"</string>
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Bluetooth LE Audio を無効にする"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"デバイスが LE オーディオ ハードウェア機能に対応している場合に、Bluetooth LE Audio 機能を無効にします。"</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"LE Audio の切替をデバイスの詳細に表示"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Bluetooth LE Audio 許可リストを有効にする"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Bluetooth LE Audio 許可リスト機能を有効にします。"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Bluetooth LE Audio の許可リストを回避する"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"LE Audio の周辺機器が許可リストの基準を満たしていない場合でも、デフォルトで LE Audio を使用します。"</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"メディア デバイス"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"通話デバイス"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"その他のデバイス"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"保存済みのデバイス"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"アカウントと関連付けられています"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"アカウントで以前使用していたもの"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"ペア設定できるよう Bluetooth が ON になります"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"接続の詳細設定"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"ペア設定済み"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"テキスト フィールドに入力"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"タッチペンのボタン押下をすべて無視する"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"タッチペン"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"音声の共有"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"音声を共有"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"通話とアラーム"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"日付と時刻"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"プロキシ"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"消去"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"読み込んでいます…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"付近のデバイスへのアクセス許可を持つアプリは、接続されたデバイスの相対位置を確認できます。"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"アプリとサービスの位置情報へのアクセスは OFF になっています。緊急通報番号に電話をかけたりテキスト メッセージを送信したりした場合は、デバイスの位置情報が緊急サービスに送信されることがあります。"</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"位置情報の設定の詳細"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"アカウント"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"セキュリティ"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"暗号化と認証情報"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"仕事用プロファイル"</string>
     <string name="private_space_title" msgid="7078627930195569767">"プライベート スペース"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"プライベート フォルダ内のアプリを非表示にする"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"画面ロックを使用してロックを解除する"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"プライベート スペースの表示"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"ロック時に表示しない"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"ロック時にプライベート スペースを表示しない"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"プライベート スペースがデバイスにあることを秘密にするために、アプリのリストで非表示にできます"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"非表示にプライベート スペースにアクセスする"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"検索バーで「プライベート スペース」を検索する"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"[プライベート スペース] のタイルをタップする"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"プライベート スペースをロック解除する"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"OFF"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"ON"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"システム"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"プライベート スペースの作成"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"プライベート スペースの削除"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"プライベート スペースを作成しました"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"プライベート スペースはすでに存在します"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"プライベート スペースを作成できませんでした"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"プライベート スペースを削除しました"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"プライベート スペースを削除できませんでした"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"画面ロックの設定"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"プライベート スペースを使うにはデバイスに画面ロックが必要です"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"画面ロックを設定"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"キャンセル"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"キャンセル"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"設定"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"プライベート スペースの設定"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"あなただけがアクセスできる安全な領域に限定公開アプリは表示されません"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"仕組み"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"アプリのリストの下部からプライベート スペースにアクセスできます"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"プライベート スペースのアプリはロックによって保護されます"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"プライベート スペースがロックされているときは、プライベート スペースにアプリからの通知は表示されません"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"プライベート スペースがロックされているときは、権限マネージャ、プライバシー ダッシュボード、その他の設定にプライベート スペース アプリは表示されません"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"プライベート スペースを設定しています…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"プライベート スペースはロックによって保護されています"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"プライベート スペースがロックされているときは、プライベート スペース アプリの使用状況に関する情報は表示されません"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"アプリのリストからプライベート スペースにアクセス"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"プライベート スペースを設定できませんでした"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"今すぐもう一度試すか、後でやり直してください"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"再試行"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"ロック解除に画面ロックを使用しますか?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"デバイスのロック解除と同じ方法でプライベート スペースのロックを解除するか、別のロックを選択できます"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"画面ロックを使用"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"新しいロックを選択"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"設定完了"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"プライベート スペースにアクセスするには、ホーム画面を下から上にスワイプし、下にスクロールします"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"完了"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"プライベート スペースにアクセスするには下にスクロールします"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"プライベート スペースを設定するにはログインしてください"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"最大で <xliff:g id="COUNT">%d</xliff:g> 件の指紋を追加できます"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"追加された指紋の数が上限に達しました"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"これ以上、指紋を追加できません"</string>
@@ -573,7 +646,7 @@
     <string name="setup_lock_settings_options_dialog_title" msgid="7985107300517468569">"画面ロックの方法"</string>
     <string name="lock_screen_auto_pin_confirm_title" msgid="3012128112186088375">"ロック解除を自動で確認する"</string>
     <string name="lock_screen_auto_pin_confirm_summary" msgid="9050818870806580819">"6 桁以上の正しい PIN が入力されると自動的にロック解除します。[入力] をタップして確認するよりも、安全面でやや劣ります。"</string>
-    <string name="auto_pin_confirm_user_message" msgid="6194556173488939314">"正しい PIN を自動で確認します"</string>
+    <string name="auto_pin_confirm_user_message" msgid="6194556173488939314">"正しい PIN を自動で確認する"</string>
     <string name="auto_pin_confirm_opt_in_security_message" msgid="580773976736184893">"[入力] をタップして PIN を確認するほうが、自動確認を使うよりも安全です"</string>
     <string name="auto_confirm_on_pin_verify_description" msgid="2052240431173223502">"自動確認を有効にするには、デバイスの PIN を入力してください"</string>
     <string name="auto_confirm_off_pin_verify_description" msgid="4256219155659760047">"自動確認を無効にするには、デバイスの PIN を入力してください"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"接続"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"接続を解除"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"ペアに設定して接続"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Bluetooth を ON にすると、近くにある他の Bluetooth デバイスと通信できます。"</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Bluetooth を ON にすると、近くにある他の Bluetooth デバイスと通信できます"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Bluetooth を ON にすると、付近の他の Bluetooth デバイスと通信できます。\n\nBluetooth が OFF の場合でもアプリやサービスは付近のデバイスをいつでもスキャンできます。位置情報を使用する機能やサービスで利便性が向上するなどの効果があります。この設定は Bluetooth スキャンの設定で変更できます。"</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"変更"</string>
     <string name="device_details_title" msgid="1155622417516195481">"デバイスの詳細"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"デバッグ可能なアプリのバイトコードの確認を ART に許可する"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"リフレッシュ レートの表示"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"現在のディスプレイ リフレッシュ レートを表示します"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"HDR/SDR 比を表示する"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"現在の HDR/SDR 比を表示する"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"NFC の使用にロック解除を要求"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android ビーム"</string>
@@ -1060,9 +1135,9 @@
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"OFF"</string>
     <string name="display_white_balance_title" msgid="2624544323029364713">"ディスプレイのホワイト バランス"</string>
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
-    <string name="fold_lock_behavior_title" msgid="786228803694268449">"折りたたみ時もアプリを使い続けられます"</string>
+    <string name="fold_lock_behavior_title" msgid="786228803694268449">"折りたたみ時もアプリの使用を継続"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"スムーズ ディスプレイ"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"コンテンツに応じて、リフレッシュ レートを自動的に 60 Hz から <xliff:g id="ID_1">%1$s</xliff:g> Hz に変更します。バッテリー使用量が増えます。"</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"コンテンツに応じて、リフレッシュ レートを自動的に <xliff:g id="ID_1">%1$d</xliff:g> Hz に変更します。バッテリー使用量が増えます。"</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"ピーク時のリフレッシュ レートの適用"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"最高のリフレッシュ レートを適用します。タップの反応とアニメーションの品質が向上します。バッテリー使用量が増えます。"</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"スクリーン アテンション"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"共用の設定"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"アクセスポイントの編集"</string>
+    <string name="apn_add" msgid="9069613192201630934">"アクセス ポイントの追加"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"未設定"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"未設定"</string>
     <string name="apn_name" msgid="6677695784108157953">"名前"</string>
@@ -1320,6 +1396,8 @@
     <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="network_type" msgid="748590707422733595">"ネットワークの種類"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"不明"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNOの種類"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO値"</string>
     <string name="menu_delete" msgid="9199740901584348273">"APNを削除"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"ユーザー補助機能ボタンで開く"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"両方の音量ボタンを長押しして開く"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"画面をトリプルタップして開く"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"2 本の指で画面をトリプルタップして開く"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"ジェスチャーで開く"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"ユーザー補助操作を使用する"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"この機能を使用するには、画面の下部にあるユーザー補助機能ボタン <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> をタップします。\n\n機能を切り替えるには、ユーザー補助機能ボタンを長押しします。"</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"この機能を使用するには、画面上のユーザー補助機能ボタンをタップしてください。"</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"この機能を使用するには、音量大と音量小の両方のボタンを長押しします。"</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"拡大を開始および停止するには、画面をトリプルタップします。"</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"拡大を開始および停止するには、2 本の指で画面をトリプルタップします。"</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"この機能を使用するには、2 本の指で画面の下から上にスワイプします。\n\n機能を切り替えるには、2 本の指で上にスワイプしたまま長押しします。"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"この機能を使用するには、3 本の指で画面の下から上にスワイプします。\n\n機能を切り替えるには、3 本の指で上にスワイプしたまま長押しします。"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"ユーザー補助機能を使用するには、2 本の指で画面の下から上にスワイプします。\n\n機能を切り替えるには、2 本の指で上にスワイプしたまま長押しします。"</string>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"音量ボタンを長押し"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"音量大と音量小の両方のボタンを長押し"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"音量大と音量小の両方のボタンを長押しします"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"2 本の指で画面をトリプルタップ"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"2 本の指で画面をトリプルタップ"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"画面をトリプルタップ"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"画面をすばやく {0,number,integer} 回タップします。このショートカットを使うと、デバイスの動作が遅くなる場合があります"</string>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"バイブレーションとハプティクスの使用"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"アラームのバイブレーション"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"メディアのバイブレーション"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"キーボードのバイブレーション"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"着信時のバイブレーション"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"通知時のバイブレーション"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"触覚フィードバック"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"残り<xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"充電されるまで<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g>"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"フォアグラウンドの時間"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"バックグラウンドの時間"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"バッテリー残量: 少ない"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"バックグラウンドでのアプリの実行を許可"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"バックグラウンド アクティビティの制限"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"アプリのバックグラウンド アクティビティを制限すると、アプリが正常に機能しないことがあります"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"このアプリは、電池の最適化が設定されていないため、制限することはできません。\n\nこのアプリを制限するには、電池の最適化を ON にしてください。"</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"バッテリー使用状況の管理"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"バックグラウンドでの使用の許可"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"リアルタイムのアップデートを利用する場合は有効に、バッテリーを節約したい場合は無効にしてください"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"制限なし"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"最適化"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"制限"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"前回のフル充電以降"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"システムアプリ"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"アンインストールしたアプリ"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"その他"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"予測される残り時間"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"フル充電まで"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"合計: 1 分未満"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"バックグラウンド: 1 分未満"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"利用時間: 1 分未満"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"1 分未満"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"合計: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"バックグラウンド: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"利用時間: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"モバイルデータと Wi-Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"個人データの自動同期"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"仕事データの自動同期"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"非公開データの自動同期"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"サイクルを変更…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"毎月データ使用サイクルをリセットする日:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"この期間中にデータを使用したアプリはありません。"</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"テキスト サイズ, 大きい 活字, 大きい フォント, 大きい テキスト, ロー ビジョン, 切り替え テキスト 大きく, フォント 大きく, フォント 拡大"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"常時オンのアンビエント表示, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, タグ, リーダー"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"キーボード、ハプティクス、振動"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"音量、バイブレーション、サイレント モード"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"メディアの音量"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"キャストの音量"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"すべての通知の内容を表示する"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"機密性の高いコンテンツはロック解除時にのみ表示されます"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"通知を一切表示しない"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"ロック画面に通知をどのように表示しますか?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"ロック画面"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"仕事用のすべての通知の内容を表示する"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"機密性の高い仕事の内容を非表示"</string>
@@ -3354,6 +3448,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"このアプリは拡張設定に対応していません"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"その他の設定"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"このアプリ内でその他の設定を利用できます"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"通知のクールダウン"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"すべての通知にクールダウンを適用する"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"同じアプリから連続して大量の通知が届く場合に通知の数が徐々に減ります"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"会話にクールダウンを適用する"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"同じチャットから短い期間内に大量のメッセージが届く場合に通知の数が徐々に減ります"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"通知のクールダウンを使用しない"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"同じアプリから連続して届く通知の数にかかわらず、通知の数は減りません"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"ロック解除時にバイブレーションで知らせる"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"画面のロックが解除されたときのみバイブレーションが作動します"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"仕事用プロファイルに適用する"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"個人用プロファイルの通知のクールダウンの設定を仕事用プロファイルに適用します"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR ヘルパー サービス"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"VR ヘルパー サービスとしての実行権限をリクエストしたインストール済みアプリはありません。"</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"VR サービスから <xliff:g id="SERVICE">%1$s</xliff:g> へのアクセスの許可"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"全ファイルの管理権を付与"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"このアプリに対して、デバイス内または接続されているストレージ ボリューム内のファイルすべての参照、変更、削除を許可します。許可されている場合、アプリがユーザーの事前の承認なしにファイルにアクセスすることもあります。"</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"すべてのファイルにアクセス可能"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"音声アクティベーション アプリ"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"音声アクティベーションを許可する"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"音声アクティベーション機能により、承認されたアプリを音声コマンドを通じてハンズフリーで有効にできます。組み込みのアダプティブ センシングで、あなた以外にデータが公開されることはありません。\n\n"<a href="">"保護されたアダプティブ センシングの詳細"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"全画面通知"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"このアプリからの全画面通知を許可する"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"デバイスがロックされているときに通知を全画面に表示することを、このアプリに許可します。アプリはこの設定を、アラーム、着信、緊急通知などを強調するために使用することがあります。"</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g>: バックグラウンドで通常よりバッテリー使用量が増えました"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g>: フォアグラウンドでバッテリー使用量が増えました"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g>: フォアグラウンドで通常よりバッテリー使用量が増えました"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"バッテリー使用量が多い"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"バックグラウンドでバッテリー使用量が多い"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"フォアグラウンドでバッテリー使用量が多い"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"システム ナビゲーション, 2 ボタン ナビゲーション, 3 ボタン ナビゲーション, ジェスチャー ナビゲーション, スワイプ"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"デジタル アシスタント"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"スワイプしてアシスタントを起動"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"右下隅または左下隅から斜め上にスワイプしてデジタル アシスタント アプリを起動します。"</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"右下隅または左下隅から斜め上にスワイプしてデジタル アシスタント アプリを起動します"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"ホームボタンを長押ししてアシスタントを起動"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"ホームボタンを長押しすることでデジタル アシスタント アプリを起動します。"</string>
     <string name="low_label" msgid="6525629096999711220">"低"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"データ, パスキー, パスワード"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"自動, 入力, 自動入力, データ, パスキー, パスワード"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;このアプリが信頼できることを確認してください&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; は画面上の内容に基づいて、自動入力可能な情報を判別します。"</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&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_autofill_confirmation_message" msgid="843829628024668466">"&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_picker_title" msgid="8191267620665129205">"パスワード、パスキー、データのサービス"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$s を OFF にしますか?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;このサービスを無効にしますか?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt;パスワード、パスキー、お支払い方法などの情報を保存しました。その他の情報はログイン時に入力されません。保存された情報を使用するには、パスワード、パスキー、またはデータのサービスを選択してください。"</string>
@@ -4226,8 +4336,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- 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">"警告: デフォルトの OpenGL ES ドライバとして ANGLE を有効にします。この機能は試験運用中であり、一部のカメラアプリと動画アプリには対応していない可能性があります。"</string>
+    <string name="enable_angle_as_system_driver" msgid="4648827560023949786">"試験運用機能: ANGLE の有効化"</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"警告: デフォルトの OpenGL ES ドライバとして ANGLE を有効にします。これは試験運用機能であり、一部のカメラアプリと動画アプリには対応していない可能性があります。"</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>
@@ -4784,9 +4894,9 @@
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{# か月以上前にインストールされたアプリ}other{# か月以上前にインストールされたアプリ}}"</string>
     <string name="aspect_ratio_title" msgid="2451826875939676101">"アスペクト比"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"このアプリがお使いの <xliff:g id="DEVICE_NAME">%1$s</xliff:g> 用に設計されていない場合は、新しいアスペクト比で表示してみてください"</string>
-    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"このアプリがお使いの <xliff:g id="DEVICE_NAME">%1$s</xliff:g> 用に設計されていない場合は、新しいアスペクト比で表示してみてください。一部のアプリは特定のアスペクト比に合わせて最適化できない場合があります。"</string>
-    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"このアプリがお使いの <xliff:g id="DEVICE_NAME">%1$s</xliff:g> 用に設計されていない場合は、新しいアスペクト比で表示してみてください"</string>
-    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"このアプリがお使いの <xliff:g id="DEVICE_NAME">%1$s</xliff:g> 用に設計されていない場合は、新しいアスペクト比で表示してみてください。一部のアプリは特定のアスペクト比に合わせて最適化できない場合があります。"</string>
+    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"このアプリがお使いの <xliff:g id="DEVICE_NAME">%1$s</xliff:g> 用に設計されていない場合は、新しいアスペクト比で表示してみてください。アプリによっては特定のアスペクト比で最適化できない場合があります。"</string>
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"アプリがお使いの <xliff:g id="DEVICE_NAME">%1$s</xliff:g> 用に設計されていない場合は、新しいアスペクト比で表示してみてください"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"アプリがお使いの <xliff:g id="DEVICE_NAME">%1$s</xliff:g> 用に設計されていない場合は、新しいアスペクト比で表示してみてください。アプリによっては特定のアスペクト比で最適化できない場合があります。"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"候補アプリ"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"変更したアプリ"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"アプリのデフォルト"</string>
@@ -4797,7 +4907,7 @@
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
     <string name="user_aspect_ratio_option_a11y" msgid="1235801996029095219">"<xliff:g id="NUMERATOR">%1$s</xliff:g> by <xliff:g id="DENOMINATOR">%2$s</xliff:g>"</string>
-    <string name="app_aspect_ratio_footer" msgid="4029509301182067475">"アスペクト比を変更すると、アプリが再起動します。保存されていない変更は失われる可能性があります。一部のアプリは特定のアスペクト比に合わせて最適化できない場合があります。"</string>
+    <string name="app_aspect_ratio_footer" msgid="4029509301182067475">"アスペクト比を変更すると、アプリが再起動します。保存されていない変更は失われる可能性があります。アプリによっては特定のアスペクト比で最適化できない場合があります。"</string>
     <string name="aspect_ratio_experimental_title" msgid="9088785421062044831">"アスペクト比(試験運用版)"</string>
     <string name="aspect_ratio_experiment_title" msgid="128614319422121040">"アスペクト比(試験運用版)"</string>
     <string name="aspect_ratio_labs_title" msgid="6733893837442759383">"アスペクト比(Labs)"</string>
@@ -4856,4 +4966,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"虚偽の振る舞いをするアプリをスキャンする"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"フィッシングに関するアプリのアクティビティを確認する"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"虚偽の振る舞いをするアプリを検出する"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"虚偽の振る舞いをする仕事用アプリを検出する"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-ka/arrays.xml b/res/values-ka/arrays.xml
index d101086..c08d19b 100644
--- a/res/values-ka/arrays.xml
+++ b/res/values-ka/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"1 წუთის შემდეგ"</item>
     <item msgid="1574040255478150028">"5 წუთის შემდეგ"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 473589d..e20a366 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Bluetooth LE-აუდიოს გათიშვა"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Bluetooth LE AUDIO-ს ფუნქცია ითიშება, თუ მოწყობილობას აქვს LE AUDIO-ს აპარატურული გარჩევადობები."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"LE-აუდიო გადართვის ჩვენება მოწყობილობის დეტალებში"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Bluetooth LE-აუდიოს დაშვებულთა სიის ჩართვა"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Bluetooth LE-აუდიოს დაშვებულთა სიის ფუნქციის ჩართვა."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Bluetooth LE-აუდიოს დაშვებულთა სიისთვის გვერდის ავლა"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"გამოიყენეთ LE-აუდიო ნაგულისხმევი სახით, თუნდაც LE-აუდიო პერიფერიული მოწყობილობა არ შეესაბამებოდეს დაშვებულთა სიის კრიტერიუმს."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"მედია მოწყობილობები"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"მოწყობილობებზე დარეკვა"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"სხვა მოწყობილობები"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"შენახული მოწყობილობები"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"ანგარიშთან დაკავშირებული"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"ადრე გამოიყენებოდა ანგარიშთან"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"დასაწყვილებლად ჩაირთვება Bluetooth"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"კავშირის პარამეტრები"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"წარსულში დაკავშირებული"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"დაწერეთ ტექსტურ ველებში"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"იგნორირება გაუკეთეთ სტილუსის ღილაკების ყველა დაჭერას"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"სტილუსი"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"აუდიოს გაზიარება"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"აუდიოს გაზიარება"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"ზარები და მაღვიძარები"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"თარიღი და დრო"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"პროქსი"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"გაწმენდა"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"მიმდინარეობს ჩატვირთვა…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"ახლომდებარე მოწყობილობების ნებართვების მქონე აპებს შეუძლია დაკავშირებული მოწყობილობების პოზიციის განსაზღვრა."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"აპებისა და სერვისების მდებარეობაზე წვდომა გამორთულია. თქვენი მოწყობილობის მდებარეობა მაინც გაიგზავნება გადაუდებელი დახმარების სამსახურში, როცა გადაუდებელი დახმარების სამსახურის ნომერზე დარეკავთ ან ტექსტურ შეტყობინებას გაგზავნით."</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"შეიტყვეთ მეტი მდებარეობის პარამეტრების შესახებ"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"ანგარიშები"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"უსაფრთხოება"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"დაშიფვრა და ავტორიზაციის მონაცემები"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"სამსახურის პროფილი"</string>
     <string name="private_space_title" msgid="7078627930195569767">"პირადი სივრცე"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"აპების დამალვა პირად საქაღალდეში"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"ეკრანის დაბლოკვის გამოყენებით განბლოკვა"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"პირადი სივრცის ჩვენება"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"დამალვა ჩაკეტილ მდგომარეობაში"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"პირადი სივრცის დამალვა ჩაკეტილ მდგომარეობაში"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"შეგიძლიათ დამალოთ პირადი სივრცე თქვენი აპების გვერდიდან, თუ არ გსურთ, რომ სხვებმა იცოდნენ, პირად სივრცეს რომ იყენებთ თქვენს მოწყობილობაზე"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"წვდომა პირად სივრცეზე, როცა დამალულია"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"მოძებნეთ „პირადი სივრცე“ ძიების ზოლში"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"შეეხეთ Private Space მოზაიკის ფილას"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"განბლოკეთ თქვენი პირადი სივრცე"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"გამორთული"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"ჩართული"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"სისტემა"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"პირადი სივრცის შექმნა"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"პირადი სივრცის წაშლა"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"პირადი სივრცე წარმატებით შეიქმნა"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"პირადი სივრცე უკვე არსებობს"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"პირადი სივრცის შექმნა ვერ მოხერხდა"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"პირადი სივრცე წარმატებით წაიშალა"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"პირადი სივრცის წაშლა ვერ მოხერხდა"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"დააყენეთ ეკრანის დაბლოკვა"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"პირადი სივრცის გამოსაყენებლად დააყენეთ ეკრანის დაბლოკვა ამ მოწყობილობაზე."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"ეკრანის დაბლოკვის დაყენება"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"გაუქმება"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"გაუქმება"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"დაყენება"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"პირადი სივრცის დაყენება"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"დამალეთ პირადი აპები უსაფრთხო სივრცეში, რომელზედაც მხოლოდ თქვენ გაქვთ წვდომა"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"მუშაობის პრინციპი"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"პირად სივრცეზე წვდომა თქვენი აპების გვერდის ბოლოში შეგიძლიათ"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"აპებს პირად სივრცეში იცავს ჩაკეტვა"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"პირად სივრცეში არსებული აპების შეტყობინებები დამალულია, როცა ის ჩაკეტილია"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"პირადი სივრცის აპები არ გამოჩნდება ნებართვების მმართველში, კონფიდენციალურობის საინფორმაციო დაფასა და სხვა პარამეტრებში, როდესაც პირადი სივრცე ჩაკეტილია"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"მიმდინარეობს პირადი სივრცის დაყენება…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"პირად სივრცეს იცავს ჩაკეტვა"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"პირადი სივრცის აპების გამოყენების ინფორმაცია დამალულია, როცა ის ჩაკეტილია"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"მიიღეთ წვდომა პირად სივრცეზე თქვენი აპების გვერდიდან"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"პირადი სივრცის დაყენება ვერ მოხერხდა"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"ცადეთ ხელახლა ახლა ან მოგვიანებით"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"ხელახლა ცდა"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"განსაბლოკად ეკრანის დაბლოკვას გამოიყენებთ?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"განბლოკეთ თქვენი პირადი სივრცე ისევე, როგორ მოწყობილობას განბლოკავთ, ან დააყენეთ განსხვავებული საკეტი"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"გამოიყენეთ ეკრანის დაბლოკვა"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"აირჩიეთ ახალი საკეტი"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"მზადაა!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"პირად სივრცეზე წვდომისთვის გადაფურცლეთ ზემოთ თქვენს მთავარ ეკრანზე, შემდეგ გადაადგილდით ქვემოთ"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"მზადაა"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"პირად სივრცეზე წვდომისთვის გადაადგილდით ქვემოთ"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"შედით, რათა დააყენოთ პირადი სივრცე"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"შეგიძლიათ დაამატოთ მაქსიმუმ <xliff:g id="COUNT">%d</xliff:g> თითის ანაბეჭდი"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"თქვენ უკვე დაამატეთ თითის ანაბეჭდების მაქსიმალური რაოდენობა"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"მეტი თითის ანაბეჭდის დამატება ვერ ხერხდება"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"დაკავშირება"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"კავშირის გაწყვეტა"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"დაწყვილება და შეერთება"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"როდესაც Bluetooth ჩართულია, თქვენს მოწყობილობას ახლომდებარე Bluetooth მოწყობილობებთან კომუნიკაცია შეუძლია."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"როცა Bluetooth ჩართულია, თქვენს მოწყობილობას შეუძლია სხვა ახლომდებარე Bluetooth მოწყობილობებთან კომუნიკაცია.\n\nმოწყობილობის საუკეთესოდ მოხმარებისთვის, აპები და სერვისები მაშინაც კი შეძლებს ახლომდებარე მოწყობილობათა აღმოსაჩენად სკანირებას, როცა Bluetooth გამორთულია. ამის გამოყენება შესაძლებელია, მაგალითად, მდებარეობაზე დაფუძნებული ფუნქციების და სერვისების გასაუმჯობესებლად. ამის შეცვლა Bluetooth-ით სკანირების პარამეტრებში შეგიძლიათ."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"შეცვლა"</string>
     <string name="device_details_title" msgid="1155622417516195481">"მოწყობილობის დეტალები"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"ART-ისთვის გამართვადი აპების ბაიტ-კოდის დადასტურების დაშვება"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"განახლ. სიხშირის ჩვენება"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"ეკრანის განახლების ამჟამინდელი სიხშირის ჩვენება"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"აჩვენეთ HDR/SDR თანაფარდობა"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"აჩვენეთ მიმდინარე HDR/SDR თანაფარდობა"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"მოწყობილობის განბლოკვის მოთხოვნა NFC-ისთვის"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android სხივი"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"აპების გამოყენების გაგრძელება ჩაკეცვისას"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"გარკვეული კონტენტისთვის განახლების სიხშირის ავტომატურად გაზრდა 60-დან <xliff:g id="ID_1">%1$s</xliff:g> ჰც-მდე. ზრდის ბატარეის მოხმარებას."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"ავტომატურად ზრდის განახლების სიხშირეს <xliff:g id="ID_1">%1$d</xliff:g> ჰც-მდე, გარკვეული კონტენტისთვის. ზრდის ბატარეის მოხმარებას."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"განახლების პიკური სიხშირის იძულება"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"განახლების უმაღლესი სიხშირე შეხებაზე გაუმჯობესებული რეაგირებისთვის და უფრო ერთგვაროვანი ანიმაციისთვის. გაზრდის ბატარეის მოხმარებას."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"ეკრანზე ყურადღება"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"საერთო პარამეტრები"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN-ები"</string>
     <string name="apn_edit" msgid="2003683641840248741">"წვდომის წერტილის რედაქტირება"</string>
+    <string name="apn_add" msgid="9069613192201630934">"დაამატეთ წვდომის წერტილი"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"არ არის დაყენებული"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"არ არის დაყენებული"</string>
     <string name="apn_name" msgid="6677695784108157953">"სახელი"</string>
@@ -1320,6 +1397,8 @@
     <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="network_type" msgid="748590707422733595">"ქსელის ტიპი"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"დაუზუსტებელი"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO ტიპი"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO მნიშვნელობა"</string>
     <string name="menu_delete" msgid="9199740901584348273">"APN-ის წაშლა"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"გასახსნელად გამოიყენეთ მარტივი წვდომის ღილაკი"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"გასახსნელად დააჭირეთ ხმის ღილაკებს"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"სამმაგად შეეხეთ ეკრანს გასახსნელად"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"გასახსნელად სამჯერ შეეხეთ ეკრანს ორი თითით"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"გასახსნელად გამოიყენეთ ჟესტი"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"მარტივი წვდომის ჟესტის გამოყენება"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"ამ ფუნქციით სარგებლობისთვის შეეხეთ მარტივი წვდომის ღილაკს <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> თქვენი ეკრანის ქვედა ნაწილში.\n\nფუნქციების გადასართავად ხანგრძლივად შეეხეთ მარტივი წვდომის ღილაკს."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"ამ ფუნქციის გამოსაყენებლად შეეხეთ მარტივი წვდომის ღილაკს თქვენს ეკრანზე."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"ამ ფუნქციით სარგებლობისთვის ხანგრძლივად დააჭირეთ ხმის ორივე ღილაკს."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"გადიდების დასაწყებად და შესაწყვეტად, სამმაგად შეეხეთ ეკრანს ნებისმიერ ადგილზე."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"გადიდების დასაწყებად და შესაწყვეტად ორი თითით სამჯერ შეეხეთ ეკრანს ნებისმიერ ადგილზე."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"ამ ფუნქციით სარგებლობისთვის 2 თითით გადაფურცლეთ ეკრანის ქვედა კიდიდან ზემოთ.\n\nფუნქციების გადასართავად 2 თითით გადაფურცლეთ ზემოთ და დააყოვნეთ."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"ამ ფუნქციით სარგებლობისთვის 3 თითით გადაფურცლეთ ეკრანის ქვედა კიდიდან ზემოთ.\n\nფუნქციების გადასართავად 3 თითით გადაფურცლეთ ზემოთ და დააყოვნეთ."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"მარტივი წვდომის ფუნქციით სარგებლობისთვის 2 თითით გადაფურცლეთ ეკრანის ქვედა კიდიდან ზემოთ.\n\nფუნქციების გადასართავად 2 თითით გადაფურცლეთ ზემოთ და დააყოვნეთ."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"ხანგრძლივად დააჭირეთ ხმის ღილაკებს"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"ხანგრძლივად დააჭირეთ ხმის ღილაკებს"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"ხანგრძლივად დააჭირეთ ხმის ორივე ღილაკს"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"ეკრანზე ორი თითით სამჯერ შეხება"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"ეკრანზე ორი თითით სამჯერ შეხება"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"სწრაფად შეეხეთ ეკრანს {0,number,integer}-ჯერ ორი თითით"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"სამმაგად შეეხეთ ეკრანს"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"სამმაგად შეეხეთ ეკრანს"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"სწრაფად შეეხეთ ეკრანს {0,number,integer}-ჯერ. ამ მალსახმობმა შეიძლება მოწყობილობა შეანელოს"</string>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"ვიბრაციის და შეხებისადმი მგრძნობელობის გამოყენება"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"მაღვიძარის ვიბრაცია"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"მედიის ვიბრაცია"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"კლავიატურის ვიბრაცია"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"ზარის ვიბრაცია"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"შეტყობინების ვიბრაცია"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"რეაქცია შეხებაზე"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"დარჩენილია <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"დატენვამდე <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g>"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"ეკრანთან გატარებული დრო"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"ფონური დრო"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"ბატარეის დაბალი მუხტი"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"აპისთვის ფონურ რეჟიმში მუშაობის დაშვება"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"გსურთ ფონური აქტივობის შეზღუდვა?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"აპისთვის ფონური აქტივობის შეზღუდვის შემთხვევაში, მან შეიძლება არასათანადოდ იმუშაოს"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"რადგან ეს აპი ბატარეის ოპტიმიზებისთვის დაყენებული არაა, მას ვერ შეზღუდავთ.\n\nჩართეთ ბატარეის ოპტიმიზაცია აპის შესაზღუდავად."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"ბატარეის მოხმარების მართვა"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"დაუშვით ფონური გამოყენება"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"ჩართეთ რეალური დროის რეჟიმში განახლებებისთვის, გამორთეთ ბატარეის დასაზოგად"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"შეუზღუდავი"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"ოპტიმიზებული"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"შეზღუდული"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"ბოლო სრული დამუხტვიდან"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"სისტემის აპები"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"დეინსტალირებული აპები"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"სხვა"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"სავარაუდო დარჩენილი დრო"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"სრულ დატენვამდე"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"სულ: წუთზე ნაკლები"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"ფონი: წუთზე ნაკლები"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"ეკრანთან გატარებული დრო: ერთ წუთზე ნაკლები"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"წუთზე ნაკლები"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"სულ: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"ფონი: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"ეკრანთან გატარებული დრო: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"მობილური ინტერნეტი და Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"პერს. მონაც. ავტოსინქრონიზაცია"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"სამსახურის მონაცემების სინქრონიზაცია"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"პირადი მონაცემების ავტო-სინქრონიზაცია"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"ციკლის შეცვლა…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"მონაცემების ციკლის აღდგენის დღე (თითოეული თვის):"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"ამ პერიოდში არც ერთ აპს არ გამოუყენებია ეს მონაცემები."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"ტექსტის ზომა, დიდი ასოები, დიდი შრიფტი, დიდი ზომის ტექსტი, მხედველობადაქვეითებული, ტექსტის გადიდება, შრიფტის გამადიდებელი, შრიფტის გადიდება"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"ყოველთვის ჩართული ემბიენტური ეკრანი, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, ტეგი, მკითხველი"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"კლავიატურა, ჰაპტიკა, ვიბრაცია,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"ხმა, ვიბრაცია, არ შემაწუხოთ"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"მედიის ხმა"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"ტრანსლაციის ხმა"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"შეტყობინების მთელი შინაარსის ჩვენება"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"სენსიტიური კონტენტი მარტო განბლოკილზე"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"შეტყობინებები საერთოდ არ გამოჩნდეს"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"როგორ გსურთ, გამოჩნდეს ჩაკეტილი ეკრანი?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"ჩაკეტილი ეკრანი"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"სამსახურის შეტყობინებების მთელი კონტენტის ჩვენება"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"სამსახურის სენსიტიური კონტენტის დამალვა"</string>
@@ -3354,6 +3449,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"ამ აპს არ აქვს გაძლიერებული პარამეტრების მხარდაჭერა"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"დამატებითი პარამეტრები"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"მეტი პარამეტრი ხელმისაწვდომია ამ აპში"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"შეტყობინების განტვირთვის პერიოდი"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"განტვირთვის პერიოდის გამოყენება ყველა შეტყობინებაზე"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"თანდათანობით შეამცირეთ შეტყობინებების ხმა, როდესაც მიიღებთ ბევრ თანმიმდევრულ შეტყობინებას ერთი და იმავე აპიდან"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"განტვირთვის პერიოდის გამოყენება საუბრებზე"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"თანდათანობით შეამცირეთ შეტყობინებების ხმა, როდესაც დროის მოკლე შუალედში მიიღებთ ბევრ შეტყობინებას ერთი და იმავე ჩეთიდან"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"არ გამოიყენოთ შეტყობინების განტვირთვის პერიოდი"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"არასოდეს შეამციროთ შეტყობინებების ხმა, მიუხედავად ერთი და იმავე აპიდან თანმიმდევრული შეტყობინებების რაოდენობისა"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"განბლოკვისას ვიბრაცია"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"ვიბრაცია მხოლოდ მაშინ, როცა ეკრანი განბლოკილია"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"გამოიყენეთ სამსახურის პროფილზე"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"პირადი პროფილის შეტყობინებების განტვირთვის პერიოდის პარამეტრები თქვენს სამსახურის პროფილზე გამოიყენეთ"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"ვირტ. რეალობის დამხმარე სერვისები"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"ვირტუალური რეალობის დამხმარე სერვისად გაშვება არცერთ დაინსტალირებულ აპს არ მოუთხოვია."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"გსურთ ვირტუალური რეალობის სერვისისთვის <xliff:g id="SERVICE">%1$s</xliff:g>-ზე წვდომის დაშვება?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"წვდომის დაშვება ყველა ფაილის სამართავად"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"აპს აძლევს უფლებას, წაიკითხოს, შეცვალოს და წაშალოს ყველა ფაილი ამ მოწყობილობაზე და ნებისმიერ დაკავშირებულ მეხსიერებაზე. ამ უფლების მინიჭების შემთხვევაში, აპს შეიძლება ფაილებზე წვდომა ჰქონდეს ისე, რომ ამის შესახებ არ იცოდეთ."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"შეუძლია ჰქონდეს წვდომა ყველა ფაილზე"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"ხმოვანი აქტივაციის აპები"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"ხმოვანი აქტივაციის დაშვება"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"ხმოვანი აქტივაცია რთავს დამტკიცებულ აპებს, უკონტაქტოდ, ხმოვანი ბრძანების გამოყენებით. ჩაშენებული ადაპტური ზონდირება უზრუნველყოფს მონაცემების კონფიდენციალურობას მხოლოდ თქვენთვის..\n\n"<a href="">"მეტი დაცული ადაპტირებული სენსორების შესახებ"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"სრული ეკრანის შეტყობინებები"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"ნება დართეთ ამ აპიდან სრული ეკრანის შეტყობინებებს"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"ნება დართეთ ამ აპს, აჩვენოს შეტყობინებები, რომლებიც სრულ ეკრანს იკავებს, როდესაც მოწყობილობა ჩაკეტილია. აპმა ისინი შეიძლება გამოიყენოს გამაფრთხილებელი სიგნალების და შემომავალი ზარების გამოყოფისთვის ან სხვა გადაუდებელი შეტყობინებებისთვის."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g>-მა გამოიყენა ჩვეულებრივზე მეტი ბატარეა ფონში"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g>-მა გამოიყენა მეტი ბატარეა წინა პლანზე"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g>-მა გამოიყენა ჩვეულებრივზე მეტი ბატარეა წინა პლანზე"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"ბატარეის მაღალი მოხმარება"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"ბატარეის მაღალი მოხმარება ფონში"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"ბატარეის მაღალი მოხმარება წინა პლანზე"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"სისტემური ნავიგაცია, 2-ღილაკიანი ნავიგაცია, 3-ღილაკიანი ნავიგაცია, ჟესტებით ნავიგაცია, გადაფურცვლა"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"ციფრული ასისტენტი"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"გადაფურცლეთ ასისტენტის გამოსაძახებლად"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"გადაფურცლეთ ქვედა კუთხიდან ზემოთ ციფრული ასისტენტის აპის გამოსაძახებლად."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"ასისტენტის გასაშვებად ხანგრძლივად დააჭირეთ მთავარს"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"ციფრული ასისტენტის აპის გამოსაძახებლად ხანგრძლივად დააჭირეთ მთავარი ეკრანის ღილაკს."</string>
     <string name="low_label" msgid="6525629096999711220">"დაბალი"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"მონაცემები, წვდომის გასაღები, პაროლი"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"ავტომატური, შევსება, ავტომატური შევსება, მონაცემები, წვდომის გასაღებებიწვდომის გასაღები, პაროლი"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;დარწმუნდით, რომ ენდობით ამ აპს&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google-ის ავტომატური შევსება&gt;%1$s&lt;/xliff:g&gt; იყენებს თქვენს ეკრანზე არსებულ კონტენტს, რათა გაარკვიოს, რა შეიძლება შეივსოს ავტომატურად."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Use &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_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Use &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_picker_title" msgid="8191267620665129205">"პაროლები, წვდომის გასაღებები და მონაცემთა სერვისები"</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>
@@ -4785,10 +4897,8 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"თანაფარდობა"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"სცადეთ ახალი თანაფარდობა ამ აპის სანახავად, თუ ის არ არის შემუშავებული თქვენი <xliff:g id="DEVICE_NAME">%1$s</xliff:g>-ის შესაფერისად"</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"სცადეთ ახალი თანაფარდობა ამ აპის სანახავად, თუ ის არ არის შემუშავებული თქვენი <xliff:g id="DEVICE_NAME">%1$s</xliff:g>-ის შესაფერისად. ზოგიერთი აპი შესაძლოა არ იყოს ოპტიმიზებული კონკრეტული თანაფარდობებისადმი."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"სცადეთ ახალი თანაფარდობა ამ აპის სანახავად, თუ ის არ არის შემუშავებული თქვენი <xliff:g id="DEVICE_NAME">%1$s</xliff:g>-ის შესაფერისად"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"სცადეთ ახალი თანაფარდობა ამ აპის სანახავად, თუ ის არ არის შემუშავებული თქვენი <xliff:g id="DEVICE_NAME">%1$s</xliff:g>-ის შესაფერისად. ზოგიერთი აპი შესაძლოა არ იყოს ოპტიმიზებული კონკრეტული თანაფარდობებისადმი."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"შემოთავაზებული აპები"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"შეცვლილი აპები"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"აპი ნაგულისხმევად"</string>
@@ -4858,4 +4968,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"შეცდომაში შემყვანი აპების სკანირება"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"აპში აქტივობის შემოწმება ფიშინგის კუთხით"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"სკანირების გამოყენება თაღლითური აპებისთვის"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"სკანირების გამოყენება სამსახურის თაღლითური აპებისთვის"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-kk/arrays.xml b/res/values-kk/arrays.xml
index 1970543..056213b 100644
--- a/res/values-kk/arrays.xml
+++ b/res/values-kk/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"1 минуттан кейін"</item>
     <item msgid="1574040255478150028">"5 минуттан кейін"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index ec6dbd4..fc6919f 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Bluetooth LE Audio функциясын өшіру"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Құрылғы LE Audio жабдық мүмкіндіктерін қолдайтын болса, Bluetooth LE Audio функциясы өшіріледі."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"LE audio ауыстырғышын \"Құрылғы туралы мәлімет\" бөлімінде көрсету"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Bluetooth LE audio рұқсат тізімін қосу"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Bluetooth LE audio рұқсат тізімі функциясын қосу"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Bypass Bluetooth LE Audio рұқсат тізімін айналып өту"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"LE Audio перифериялық құрылғысының рұқсат тізімі шарттарына сәйкес келуі расталмаса да, LE Audio қолданбасын әдепкісінше пайдаланыңыз."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Сақтау құрылғылары"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Қоңырау шалуға болатын құрылғылар"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Басқа құрылғылар"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Сақталған құрылғылар"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Аккаунтпен байланысқан"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Бұрын аккаунтпен пайдаланылған"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth қосылады."</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Жалғау параметрлері"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Бұрын жалғанған"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Мәтін өрістеріне жазу"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Стилуспен басқан барлық түймені елемеу"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Стилус"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Аудио бөлісу"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Аудионы бөлісу"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Қоңыраулар мен оятқыштар"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Күн және уақыт"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Прокси"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Өшіру"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Жүктелуде…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Маңайдағы құрылғыларды пайдалану рұқсаты бар қолданбалар телефонға жалғанған құрылғылардың тиісті орнын анықтай алады."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Қолданбалар мен қызметтер үшін локацияны пайдалану рұқсаты өшірулі. Бірақ құтқару қызметіне қоңырау шалатын немесе хабар жіберетін болсаңыз, құрылғыңыздың локациясы беріледі."</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Локация параметрлері туралы толық ақпарат"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Аккаунттар"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Қауіпсіздік"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Шифрлау және тіркелу деректері"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Жұмыс профилі"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Жеке бөлме"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Қолданбаларды жеке бөлмеге жасыру"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Экран құлпы арқылы құлыпты ашу"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Жеке бөлмені көрсету"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Құлыптаулы кезде жасыру"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Жеке бөлмені құлыптаулы кезде жасыру"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Құрылғыңызда жеке бөлменің барын басқа адамдар білмес үшін, оны қолданбалар тізімінен жасыра аласыз."</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Жеке бөлмеге жасырулы кезде кіру"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Іздеу жолағында \"Жеке бөлме\" деп іздеңіз."</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Жеке бөлме бөлшегін түртіңіз."</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Жеке бөлменің құлпын ашыңыз."</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Өшірулі"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Қосулы"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Жүйе"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Жеке бөлме жасау"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Жеке бөлмені жою"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Жеке бөлме жасалды."</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Жеке бөлме бұрыннан бар."</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Жеке бөлме жасалмады."</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Жеке бөлме жойылды."</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Жеке бөлме жойылмады."</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Экран құлпын орнатыңыз"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Жеке бөлмені қолдану үшін құрылғыға экран құлпын орнатыңыз."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Экран құлпын орнату"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Бас тарту"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Бас тарту"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Реттеу"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Жеке бөлмені реттеу"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Жеке қолданбаларды сіз ғана кіре алатын қауіпсіз бөлмеге жасырып қою"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Бұл қалай жұмыс істейді?"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Қолданбалар тізімінің төменгі жағынан жеке бөлмеге кіруге болады."</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Жеке бөлмедегі қолданбалар құлыппен қорғалады."</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Жеке бөлме құлыптаулы кезде, оның қолданбаларынан келетін хабарландырулар жасырылады."</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Жеке бөлме құлыптаулы кезде, \"Жеке бөлме\" қолданбалары \"Рұқсаттарды басқару\" бөлімінде, құпиялық тақтасында және басқа параметрлерде көрсетілмейді."</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Жеке бөлме реттеліп жатыр…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Жеке бөлме құлыппен қорғалған"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Жеке бөлме құлыптаулы кезде, оның қолданбаларын пайдалану туралы ақпарат жасырылады."</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Жеке бөлмеге қолданбалар тізімінен кіру"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Жеке бөлме реттелмеді."</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Қазір қайталап көріңіз немесе бір айналып келіңіз."</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Қайталап көру"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Құлпын ашу үшін экран құлпын пайдалану керек пе?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Жеке бөлме құлпын құрылғы құлпын ашқандай аша аласыз немесе басқа құлып таңдай аласыз."</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Экран құлпын пайдалану"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Жаңа құлып таңдау"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Бәрі дайын!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Жеке бөлмеге кіру үшін экранның төменгі жағынан жоғары қарай сырғытып, содан соң төмен айналдырыңыз."</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Дайын"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Жеке бөлмеге кіру үшін төмен айналдырыңыз."</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Жеке бөлмені реттеу үшін аккаунтқа кіріңіз"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"<xliff:g id="COUNT">%d</xliff:g> саусақ ізіне дейін қосуға болады"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Саусақ іздерінің максималды саны енгізілді"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Қосымша саусақ іздері енгізілмейді"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Жалғау"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Ажырату"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Жұптау және жалғау"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Bluetooth қосып, маңайдағы құрылғылармен байланысуға болады."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Bluetooth қосулы кезде, құрылғыңыз маңайдағы басқа Bluetooth құрылғыларымен байланыс орната алады.\n\nҚұрылғының жұмысын жақсарту үшін қолданбалар мен қызметтер маңайдағы құрылғыларды кез келген уақытта (Bluetooth өшірулі кезде де) іздеуі мүмкін. Бұл, мысалы, локацияға негізделген функциялар мен қызметтерді жақсартуға пайдаланыла алады. Оны Bluetooth іздеу параметрлерінен өзгерте аласыз."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Өзгерту"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Құрылғы мәліметтері"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"ART растау құралына түзетілетін қолданбалардың байт-кодын растауға рұқсат беру"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Жаңарту жылдамдығын көрсету"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Ағымдағы дисплейдің жаңару жылдамдығын көрсету"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"HDR/SDR қатынасын көрсету"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Қазіргі HDR/SDR қатынасын көрсету"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"NFC үшін құрылғы құлпын ашуды талап ету"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Қолданбаларды құрылғының бүктелген күйінде пайдалана беру"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Кейбір контент үшін жаңарту жиілігі 60-тан <xliff:g id="ID_1">%1$s</xliff:g> Гц-ке дейін автоматты түрде артады. Мұндайда батарея заряды тезірек таусылады."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Кейбір контент үшін жаңарту жиілігі <xliff:g id="ID_1">%1$d</xliff:g> Гц-ке дейін автоматты түрде артады. Батарея шығынын көбейтеді."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Ең жоғарғы жаңарту жиілігін қолмен қосу"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Жақсартылған датчик сезгіштігі және анимация сапасына арналған ең жоғарғы жаңарту жиілігі. Батарея заряды тезірек таусылады."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Зейінді экран"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Жалпы параметрлер"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Кіру нүктесін өзгерту"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Кіру нүктесін енгізу"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Қойылмаған"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Орнатылмаған"</string>
     <string name="apn_name" msgid="6677695784108157953">"Атауы"</string>
@@ -1320,6 +1397,8 @@
     <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="network_type" msgid="748590707422733595">"Желі түрі"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Көрсетілмеген"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO түрі"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO мәні"</string>
     <string name="menu_delete" msgid="9199740901584348273">"APN жою"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Ашу үшін арнайы мүмкіндіктер түймесін қолдану"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Ашу үшін дыбыс деңгейі пернелерін басып тұрыңыз"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Ашу үшін экранды үш рет түртіңіз"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Экранды ашу үшін екі саусақпен үш рет түрту"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Ашу үшін қол қимылын пайдалану"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Арнайы мүмкіндік қимылын қолдану"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Бұл функцияны пайдалану үшін экранның төменгі жағындағы арнайы мүмкіндіктер түймесін <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> түртіңіз.\n\nБір функциядан екінші функцияға ауысу үшін арнайы мүмкіндіктер түймесін басып тұрыңыз."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Бұл функцияны пайдалану үшін экрандағы арнайы мүмкіндіктер түймесін түртіңіз."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Бұл функцияны пайдалану үшін дыбыс деңгейі пернелерін басып тұрыңыз."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Ұлғайтуды бастау және тоқтату үшін экранның кез келген жерін үш рет түртіңіз."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Ұлғайту функциясын қосу және тоқтату үшін экранның кез келген жерін екі саусақпен үш рет түртіңіз."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Бұл функцияны пайдалану үшін экранның төменгі жағынан 2 саусағыңызбен жоғары сырғытыңыз.\n\nБір функциядан екіншісіне ауысу үшін 2 саусақпен жоғары қарай сырғытып, ұстап тұрыңыз."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Бұл функцияны пайдалану үшін экранның төменгі жағынан 3 саусағыңызбен жоғары сырғытыңыз.\n\nБір функциядан екіншісіне ауысу үшін 3 саусақпен жоғары қарай сырғытып, ұстап тұрыңыз."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Арнайы мүмкіндіктерді пайдалану үшін экранның төменгі жағынан 2 саусағыңызбен жоғары сырғытыңыз.\n\nБір функциядан екіншісіне ауысу үшін 2 саусақпен жоғары қарай сырғытып, ұстап тұрыңыз."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Дыбыс деңгейі пернелерін басып тұру"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"дыбыс деңгейі пернелерін басып тұру"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Дыбыс деңгейінің екі пернесін бірге басып тұрасыз."</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"Экранды екі саусақпен үш рет түрту"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"экранды екі саусақпен үш рет түрту"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"Экранды екі саусағыңызбен {0,number,integer} рет жылдам түртіңіз."</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Экранды үш рет түрту"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"экранды үш рет түрту"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Экранды {0,number,integer} рет жылдам түртіңіз. Бұл жылдам пәрмен құрылғы жұмысын баяулатуы мүмкін."</string>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Дірілді мен хептиканы пайдалану"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Оятқыш дірілі"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Мультимедиа дірілі"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Пернетақта дірілі"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Қоңырау дірілі"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Хабарландыру дірілі"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Түрту кезіндегі діріл"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> қалды"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"Зарядталғанша <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g>"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Пайдалану уақыты"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Фонда пайдалану уақыты"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Батарея заряды аз."</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Қолданбаға фондық режимде іске қосылуға рұқсат беру"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Фондық режимдегі әрекет шектелсін бе?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Қолданбаның фондық режимдегі әрекетін шектесеңіз, күтпеген әрекет көрсетуі мүмкін."</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Бұл қолданба батареяны оңтайландыруға реттелмегендіктен, оны шектей алмайсыз. \n\nБұл үшін батареяны оңтайландыруды қосыңыз."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Батарея шығынын қадағалау"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Фонды пайдалануға рұқсат ету"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Нақты уақыттағы жаңалықтар алу үшін қосыңыз, батарея қуатын үнемдеу үшін өшіріңіз."</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Шектелмеген"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Оңтайландырылған"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Шектелген"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"соңғы рет толық зарядталғаннан бері"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Жүйелік қолданбалар"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Жойылған қолданбалар"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Басқалар"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Қалған болжалды уақыт"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Толық зарядталғанға дейін"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Барлығы: бір минуттан аз"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Фондық режимде: бір минуттан аз"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Пайдалану уақыты: бір минуттан аз"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Бір минуттан аз"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Барлығы: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Фондық режимде: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Пайдалану уақыты: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Мобильдік интернет пен Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Жеке деректі автосинхрондау"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Жұмыс дерегін автосинхрондау"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Жеке деректерді автоматты синхрондау"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Айналымды өзгерту…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Дерекқор қолдану айналымын қайта реттеу күні:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Бұл уақыт аралығында ешқандай қолданба дерек пайдаланған жоқ."</string>
@@ -2993,7 +3086,7 @@
     <string name="keywords_app_pinning" msgid="1564144561464945019">"экранды бекіту"</string>
     <string name="keywords_profile_challenge" msgid="5135555521652143612">"жұмыс профилін қорғау, жұмыс, профиль"</string>
     <string name="keywords_unification" msgid="2677472004971453468">"жұмыс профилі, басқарылатын профиль, бірыңғайлау, жұмыс, профиль"</string>
-    <string name="keywords_fold_lock_behavior" msgid="6278990772113341581">"ояу, ұйқы, құлыптамау, бүктемелі құрылғыда құлпы ашылған күйде қалу, бүктеу, жабу, бүктеу мүмкіндігі, жабық, экран өшірулі"</string>
+    <string name="keywords_fold_lock_behavior" msgid="6278990772113341581">"ояу, ұйқы, құлыптамау, құрылғының бүктелген күйінде құлпы ашық қалу, бүктеу, жабу, бүктеу мүмкіндігі, жабық, экран өшірулі"</string>
     <string name="keywords_gesture" msgid="3456930847450080520">"қимылдар"</string>
     <string name="keywords_wallet" msgid="3757421969956996972">"Wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"төлеу, түрту, төлемдер"</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"мәтін өлшемі, үлкен жазу, үлкен қаріп, үлкен мәтін, нашар көру қабілеті, мәтінді ұлғайту, қаріпті ұлғайту"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"әрдайым скринсейверде, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, белгі, оқу құралы"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"пернетақта: хептика, діріл"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Дыбыс деңгейі, діріл, Мазаламау режимі"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Mультимeдианың дыбыс деңгейі"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Трансляцияның дыбыс деңгейі"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Хабарландыруды толық көрсету"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Құпия мәліметті құлып ашылғанда ғана көрсету"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Хабарландыруларды мүлде көрсетпеу"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Құлыптаулы экранның қалай көрсетілгенін қалайсыз?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Құлыптаулы экран"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Жұмыс хабарландыруын толық көрсету"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Маңызды жұмыс контентін жасыру"</string>
@@ -3354,6 +3449,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Бұл қолданбада жақсартылған параметрлерге қолдау көрсетілмейді."</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Қосымша параметрлер"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Қолданбада қосымша параметрлер қолжетімді."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Хабарландыру дыбысын бәсеңдету"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Барлық хабарландыруға дыбысты бәсеңдету параметрін қолдану"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Бір қолданбадан кезек-кезек көп хабарландыру келгенде, хабарландыру дыбысын біртіндеп азайта аласыз."</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Барлық әңгімеге дыбысты бәсеңдету параметрін қолдану"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Бір чаттан қысқа уақыт аралығында көп хабар келгенде, хабарландыру дыбысын біртіндеп азайта аласыз."</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Хабарландыру дыбысын бәсеңдету параметрін пайдаланбау"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Бір қолданбадан кезек-кезек келген хабарландырудың санына қарамастан хабарландыру дыбысын ешқашан азайтпаңыз."</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Құлпы ашылғанда дірілдету"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Экран құлпы ашылғанда ғана дірілдету"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Жұмыс профильдеріне қолдану"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Хабарландыру дыбысын бәсеңдету параметрлерін жеке профильден жұмыс профиліне қолдана аласыз."</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Көмекші VR қызметтері"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Орнатылған қолданбалар көмекші VR қызметі ретінде қосылуға рұқсат сұраған жоқ."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"VR қызметіне <xliff:g id="SERVICE">%1$s</xliff:g> пайдалануға рұқсат берілсін бе?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Барлық файлды пайдалануға рұқсат беру"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Қолданбаға осы құрылғыдағы немесе жалғанған сыртқы жад құрылғыларындағы барлық файлды оқуға, өзгертуге немесе жоюға рұқсат береді. Егер осы рұқсат берілсе, қолданба файлдарды сіздің келісіміңізсіз пайдалана алады."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Барлық файлды пайдалана алатын қолданбалар"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Дауыспен іске қосылатын қолданбалар"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Дауыспен іске қосуға рұқсат беру"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Дауыспен іске қосу функциясы дауыстық пәрмен арқылы мақұлданған қолданбаларды, дауыспен басқару мүмкіндігін іске қосады. Орнатылған бейімделгіш сезу функциясы деректерді сізден басқаларға құпия етеді.\n\n"<a href="">"Қорғалған бейімделгіш сезу функциясы туралы толық ақпарат"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Толық экран хабарландырулары"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Осы қолданбаға толық экранды алып тұратын хабарландыруларды көрсетуге рұқсат беру"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Құрылғы құлыптаулы тұрғанда, осы қолданбаға толық экранды алып тұратын хабарландыруларды көрсетуге рұқсат беріңіз. Соның арқасында қолданбалар оятқыштарды, кіріс қоңырауларын немесе шұғыл хабарландыруларды ерекшелей алады."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> қолданбасы фондық режимде батареяны әдеттегіден көп пайдаланды."</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> қолданбасы экран режимінде батареяны көп пайдаланды."</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> қолданбасы экран режимінде батареяны әдеттегіден көп пайдаланды."</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Жоғары батарея шығыны"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Фондық режимдегі жоғары батарея шығыны"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Экран режиміндегі жоғары батарея шығыны"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"жүйе навигациясы, 2 түймемен басқару, 3 түймемен басқару, қимылмен басқару, сырғыту"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Цифрлық көмекші"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Көмекшіні іске қосу үшін сырғыту"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Цифрлық көмекші қолданбасын іске қосу үшін экранның төменгі бұрышынан жоғары қарай сырғытыңыз."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Assistant үшін негізгі экран түймесін басып тұру"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Цифрлық көмекшіні іске қосу үшін негізгі экран түймесін басып тұрыңыз."</string>
     <string name="low_label" msgid="6525629096999711220">"Төмен"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"деректер, кіру кілті, құпия сөз"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"авто, толтыру, автотолтыру, дерек, кіру кілті, құпия сөз"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Осы қолданбаның қауіпсіз екеніне көз жеткізіңіз&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; экранда көрсетілгенді пайдаланып, нені автоматты түрде толтыруға болатынын анықтайды."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&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_autofill_confirmation_message" msgid="843829628024668466">"&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_picker_title" msgid="8191267620665129205">"Құпия сөздер, кіру кілттері мен дерек қызметтері"</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>
@@ -4226,10 +4338,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <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="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>
@@ -4787,13 +4897,11 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Арақатынас"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"Бұл қолданба <xliff:g id="DEVICE_NAME">%1$s</xliff:g> құрылғысына арналып жасалмаған болса, оны көру үшін жаңа арақатынасты пайдаланып көріңіз."</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Бұл қолданба <xliff:g id="DEVICE_NAME">%1$s</xliff:g> құрылғысына арналып жасалмаған болса, оны көру үшін жаңа арақатынасты пайдаланып көріңіз. Кейбір қолданба белгілі бір арақатынастар үшін оңтайландырылмауы мүмкін."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Бұл қолданба <xliff:g id="DEVICE_NAME">%1$s</xliff:g> құрылғысына арналып жасалмаған болса, оны көру үшін жаңа арақатынасты пайдаланып көріңіз."</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Бұл қолданба <xliff:g id="DEVICE_NAME">%1$s</xliff:g> құрылғысына арналып жасалмаған болса, оны көру үшін жаңа арақатынасты пайдаланып көріңіз. Кейбір қолданба белгілі бір арақатынастар үшін оңтайландырылмауы мүмкін."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Ұсынылған қолданбалар"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Өзгертілгендер"</string>
-    <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Әдепкі қолданба"</string>
+    <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Қолданбаның әдепкі мәні"</string>
     <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Толық экран"</string>
     <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Жартылай экран"</string>
     <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Құрылғы арақатынасы"</string>
@@ -4860,4 +4968,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Алдамшы қолданбаларды тексеру"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Қолданбаларды пайдалану тарихында фишинг әрекетінің бар-жоғын тексеру"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Алдамшы қолданбаларды анықтау үшін тексеру функциясын қолданыңыз"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Жұмыс кезінде алдамшы қолданбаларды анықтау үшін тексеру функциясын қолданыңыз"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-km/arrays.xml b/res/values-km/arrays.xml
index e460e2f..d007522f 100644
--- a/res/values-km/arrays.xml
+++ b/res/values-km/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"បន្ទាប់ពី 1 នាទី"</item>
     <item msgid="1574040255478150028">"បន្ទាប់ពី 5 នាទី"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index c77ebc9..50af1e1 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -45,7 +45,7 @@
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"ជានិច្ច"</string>
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"អេក្រង់មុខបើក នៅពេលអ្នកបត់ឧបករណ៍របស់អ្នក"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"ហ្គេម វីដេអូ និងអ្វីៗជាច្រើនទៀតតែប៉ុណ្ណោះ"</string>
-    <string name="selective_stay_awake_summary" msgid="9055967322921984543">"អេក្រង់មុខបើកសម្រាប់កម្មវិធីដែលបញ្ឈប់អេក្រង់របស់អ្នកមិនឱ្យដំណើរការ"</string>
+    <string name="selective_stay_awake_summary" msgid="9055967322921984543">"អេក្រង់មុខបើកសម្រាប់កម្មវិធីដែលរារាំងមិនឱ្យអេក្រង់ចូលសម្ងំ"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"កុំឱ្យសោះ"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"អេក្រង់មុខចាក់សោ នៅពេលអ្នកបត់ឧបករណ៍របស់អ្នក"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"ប្រើ​ការបង្វិលស្វ័យប្រវត្តិ"</string>
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"បិទប៊្លូធូស LE Audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"បិទមុខងារប៊្លូធូស LE Audio ប្រសិនបើ​ឧបករណ៍​អាចប្រើសមត្ថភាព​ហាតវែរ LE audio បាន។"</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"បង្ហាញប៊ូតុងបិទ/បើក LE Audio ក្នុងព័ត៌មានលម្អិតអំពីឧបករណ៍"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"បើក​បញ្ជីអនុញ្ញាត​ប៊្លូធូស LE Audio"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"បើក​មុខងារបញ្ជីអនុញ្ញាត​ប៊្លូធូស LE Audio។"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"រំលងបញ្ជីអនុញ្ញាតប៊្លូធូស LE Audio"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"ប្រើ LE Audio តាមលំនាំដើម ទោះបីជាមិនបានផ្ទៀងផ្ទាត់ឧបករណ៍ខាងក្រៅ LE Audio ដើម្បីឱ្យបំពេញតាមលក្ខខណ្ឌបញ្ជីអនុញ្ញាតក៏ដោយ។"</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"ឧបករណ៍ផ្ទុកទិន្នន័យ"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"ឧបករណ៍​ហៅ​ទូរសព្ទ"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"ឧបករណ៍ផ្សេងទៀត"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"ឧបករណ៍​ដែល​បាន​រក្សាទុក"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"បានភ្ជាប់ជាមួយគណនី"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"បានប្រើជាមួយគណនីកាលពីមុន"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"ប៊្លូធូស​នឹង​បើក​ដើម្បី​ផ្គូផ្គង"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"​ចំណូល​ចិត្ត​នៃការ​ភ្ជាប់"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"បាន​ភ្ជាប់​ពីមុន​"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"សរសេរក្នុងកន្លែងបញ្ចូលអក្សរ"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"កុំអើពើនឹង​ការសង្កត់ប៊ូតុង​ប៊ិកទាំងអស់"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"ប៊ិក"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"ការចែករំលែកសំឡេង"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"ចែករំលែកសំឡេង"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"ការហៅទូរសព្ទ និងម៉ោងរោទ៍"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"កាលបរិច្ឆេទ និង ម៉ោង"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"ប្រូកស៊ី"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"សម្អាត"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"កំពុងផ្ទុក…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"កម្មវិធីដែលមានការអនុញ្ញាត​ឱ្យប្រើឧបករណ៍នៅជិត​អាចកំណត់​ចម្ងាយពាក់ព័ន្ធ​នៃឧបករណ៍​ដែលបានភ្ជាប់។"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ការចូលប្រើ​ទីតាំងត្រូវបានបិទ​សម្រាប់​កម្មវិធី និងសេវាកម្ម។ ទីតាំងឧបករណ៍របស់អ្នកនៅតែអាចត្រូវបានផ្ញើទៅអ្នកសង្គ្រោះបន្ទាន់ដដែល នៅពេលដែលអ្នកហៅទូរសព្ទ ឬផ្ញើសារជាអក្សរទៅលេខសង្គ្រោះបន្ទាន់។"</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ស្វែងយល់បន្ថែម​អំពី​ការកំណត់​ទីតាំង"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"គណនី"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"សុវត្ថិភាព"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"ការ​អ៊ីនគ្រីប និងព័ត៌មានផ្ទៀងផ្ទាត់"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"កម្រងព័ត៌មានការងារ"</string>
     <string name="private_space_title" msgid="7078627930195569767">"បន្ទប់​ឯកជន"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"លាក់កម្មវិធីនៅក្នុងថតឯកជន"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"ដោះសោដោយប្រើមុខងារចាក់សោអេក្រង់"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"បង្ហាញបន្ទប់ឯកជន"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"លាក់នៅពេលជាប់សោ"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"លាក់ Private Space នៅពេលជាប់សោ"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"ដើម្បីបញ្ឈប់អ្នកដទៃមិនឱ្យដឹងថា Private Space ស្ថិតនៅលើឧបករណ៍របស់អ្នក អ្នកអាចលាក់វាបានពីបញ្ជីកម្មវិធីរបស់អ្នក"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"ចូលប្រើ Private Space នៅពេលលាក់"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"ស្វែងរក \'Private Space\' នៅក្នុងរបារស្វែងរក"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"ចុចប្រអប់ Private Space"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"ដោះសោ Private Space របស់អ្នក"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"បិទ"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"បើក"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"ប្រព័ន្ធ"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"បង្កើតបន្ទប់ឯកជន"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"លុបបន្ទប់ឯកជន"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"បានបង្កើតបន្ទប់ឯកជនដោយជោគជ័យ"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"មានបន្ទប់ឯកជនរួចហើយ"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"មិនអាចបង្កើតបន្ទប់ឯកជនបានទេ"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"បានលុបបន្ទប់ឯកជនដោយជោគជ័យ"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"មិនអាចលុបបន្ទប់ឯកជនបានទេ"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"កំណត់​ការចាក់​សោអេក្រង់"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"ដើម្បីប្រើបន្ទប់ឯកជន សូមកំណត់ការចាក់សោអេក្រង់នៅលើឧបករណ៍នេះ។"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"កំណត់​ការចាក់​សោ​អេក្រង់"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"បោះបង់"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"បោះបង់"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"រៀបចំ"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"រៀបចំ Private Space"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"លាក់កម្មវិធីឯកជននៅក្នុងកន្លែងមានសុវត្ថិភាព ដែលអ្នកអាចចូលប្រើតែប៉ុណ្ណោះ"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"របៀបដែលវាដំណើរការ"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"អ្នកអាចចូលប្រើ Private Space ពីផ្នែកខាងក្រោមនៃបញ្ជីកម្មវិធីរបស់អ្នក"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"កម្មវិធីនៅក្នុង Private Space ត្រូវបានការពារដោយសោ"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"ការជូនដំណឹងពីកម្មវិធីនៅក្នុង Private Space ត្រូវបានលាក់ នៅពេលវាត្រូវបានចាក់សោ"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"កម្មវិធីនៅក្នុង Private Space នឹងមិនបង្ហាញនៅក្នុងមុខងារគ្រប់គ្រងការអនុញ្ញាត ផ្ទាំងគ្រប់គ្រងឯកជនភាព និងការកំណត់ផ្សេងទៀតទេ នៅពេល Private Space ត្រូវបានចាក់សោ"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"កំពុងរៀបចំ Private Space…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Private Space ត្រូវបានការពារដោយការចាក់សោ"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"ព័ត៌មានអំពីការប្រើប្រាស់សម្រាប់កម្មវិធីនៅក្នុង Private Space ត្រូវបានលាក់ នៅពេលវាត្រូវបានចាក់សោ"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"ចូលប្រើ Private Space ពីបញ្ជីកម្មវិធីរបស់អ្នក"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"មិនអាចរៀបចំ Private Space បានទេ"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"ព្យាយាមម្ដងទៀតឥឡូវនេះ ឬត្រឡប់មកវិញនៅពេលក្រោយ"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"ព្យាយាមម្ដងទៀត"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"ប្រើការចាក់សោអេក្រង់ ដើម្បីដោះសោឬ?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"អ្នកអាចដោះសោ Private Space តាមវិធីដូចគ្នាដែលអ្នកដោះសោឧបករណ៍របស់អ្នក ឬជ្រើសរើសការចាក់សោផ្សេង"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"ប្រើ​ការ​ចាក់​សោ​អេក្រង់"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"ជ្រើសរើសការចាក់សោថ្មី"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"រួចហើយ!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"ដើម្បីចូលប្រើ Private Space សូមអូសឡើងលើពីផ្នែកខាងក្រោមនៃអេក្រង់ដើមរបស់អ្នក បន្ទាប់មករំកិលចុះក្រោម"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"រួចរាល់"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"រំកិលចុះក្រោម ដើម្បីចូលប្រើ Private Space"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"ចូលគណនី ដើម្បីរៀបចំ Private Space"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"អ្នកអាចបញ្ចូលស្នាមម្រាមដៃបានត្រឹម <xliff:g id="COUNT">%d</xliff:g>"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"អ្នក​បាន​បញ្ចូល​ស្នាម​ម្រាមដៃ​ដល់​ចំនួន​អតិបរមា​ហើយ"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"មិន​អាច​បញ្ចូល​ស្នាម​ម្រាមដៃ​បាន​ទៀត​ទេ"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"តភ្ជាប់"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"ផ្ដាច់"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"ផ្គូផ្គង &amp; តភ្ជាប់"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"នៅពេលបើកប៊្លូធូស ឧបករណ៍របស់អ្នកអាចទាក់ទងជាមួយ​ឧបករណ៍ប៊្លូធូសនៅជិត​ផ្សេងទៀតបាន។"</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"ពេលបើកប៊្លូធូស ឧបករណ៍របស់អ្នកអាចទាក់ទងជាមួយឧបករណ៍ប៊្លូធូសនៅជិតផ្សេងទៀតបាន"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"ឧបករណ៍​របស់អ្នក​អាចភ្ជាប់​ជាមួយ​ឧបករណ៍​ប៊្លូធូស​ដែល​នៅជិត​ផ្សេងទៀត នៅពេល​ប៊្លូធូស​បើក។\n\nដើម្បី​កែលម្អ​បទពិសោធន៍​ប្រើប្រាស់​ឧបករណ៍ កម្មវិធី និង​សេវាកម្ម​នៅតែ​អាច​ស្កេនរកឧបករណ៍​ដែល​នៅជិត​បាន​គ្រប់ពេល ទោះបីជា​នៅពេលបិទ​ប៊្លូធូស​ក៏ដោយ។ ឧទាហរណ៍ សកម្មភាពនេះ​អាច​ត្រូវ​បានប្រើ ដើម្បី​កែលម្អ​មុខងារ និង​សេវាកម្ម​ដែល​ផ្អែក​លើ​ទីតាំង​ជាដើម។ អ្នកអាច​ប្ដូរវា​បាននៅក្នុងការកំណត់​ការស្កេនប៊្លូធូស។"</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"ផ្លាស់ប្ដូរ"</string>
     <string name="device_details_title" msgid="1155622417516195481">"ព័ត៌មានលម្អិត​អំពី​ឧបករណ៍"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"អនុញ្ញាត​ឱ្យ ART ផ្ទៀងផ្ទាត់​កូដបៃ​សម្រាប់​កម្មវិធី​ដែលអាចជួសជុលបាន"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"បង្ហាញ​អត្រា​ផ្ទុក​ឡើងវិញ"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"បង្ហាញអត្រា​ផ្ទុកឡើងវិញ​នៃផ្ទាំងអេក្រង់បច្ចុប្បន្ន"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"បង្ហាញសមាមាត្រ HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"បង្ហាញសមាមាត្រ HDR/SDR បច្ចុប្បន្ន"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"តម្រូវ​ឱ្យ​ដោះសោ​ឧបករណ៍​សម្រាប់ NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android បញ្ជូន"</string>
@@ -1062,7 +1137,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"បន្តប្រើកម្មវិធីនៅពេលបត់"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"បង្កើន​អត្រា​ផ្ទុកឡើងវិញ​ដោយស្វ័យប្រវត្តិ​ពី 60 ទៅ <xliff:g id="ID_1">%1$s</xliff:g> Hz សម្រាប់​ខ្លឹមសារ​មួយចំនួន។ ប្រើប្រាស់ថ្ម​ច្រើន​ជាងមុន។"</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"បង្កើនអត្រា​ផ្ទុកឡើងវិញ​ដោយស្វ័យប្រវត្តិរហូតដល់ <xliff:g id="ID_1">%1$d</xliff:g> Hz សម្រាប់​ខ្លឹមសារ​មួយចំនួន។ ប្រើប្រាស់ថ្ម​ច្រើន​ជាងមុន។"</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"បង្ខំឱ្យប្រើអត្រាផ្ទុក​ឡើងវិញអតិបរមា"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"អត្រា​ផ្ទុកឡើងវិញ​ខ្ពស់បំផុតសម្រាប់​គុណភាពនៃ​រូបមានចលនា និង​ការឆ្លើយតបនៃ​ការចុចប្រសើរជាងមុន។ ប្រើប្រាស់ថ្ម​ច្រើន​ជាងមុន។"</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"ការដឹងថាកំពុងនៅប្រើ"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"ការកំណត់ទូទៅ"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APNs"</string>
     <string name="apn_edit" msgid="2003683641840248741">"កែ​ចំណុច​ចូលប្រើប្រាស់"</string>
+    <string name="apn_add" msgid="9069613192201630934">"បញ្ចូលដុំភ្ជាប់បណ្ដាញឥតខ្សែ"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"មិនបានកំណត់"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"មិនបានកំណត់"</string>
     <string name="apn_name" msgid="6677695784108157953">"ឈ្មោះ"</string>
@@ -1320,6 +1396,8 @@
     <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="network_type" msgid="748590707422733595">"ប្រភេទ​បណ្ដាញ"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"មិនបានបញ្ជាក់"</string>
     <string name="mvno_type" msgid="4734654257494971247">"ប្រភេទ MVNO"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"តម្លៃ MVNO"</string>
     <string name="menu_delete" msgid="9199740901584348273">"លុប APN"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"ប្រើ​ប៊ូតុងភាពងាយស្រួល ដើម្បីបើក"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"សង្កត់​ប៊ូតុង​កម្រិតសំឡេង​ឱ្យជាប់ ដើម្បី​បើក"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"ចុច​អេក្រង់​បីដង ដើម្បី​បើក"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"ចុចអេក្រង់បីដងដោយប្រើម្រាមដៃពីរដើម្បីបើក"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"ប្រើ​ចលនា ដើម្បីបើក"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"ប្រើចលនាភាពងាយស្រួល"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"ដើម្បីប្រើ​មុខងារនេះ សូមចុចប៊ូតុង​ភាពងាយស្រួល <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> នៅ​ផ្នែកខាងក្រោម​នៃអេក្រង់​របស់អ្នក។\n\nដើម្បីប្ដូររវាង​មុខងារផ្សេងៗ សូមចុច​ប៊ូតុង​ភាពងាយស្រួល​ឱ្យជាប់។"</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"ដើម្បីប្រើ​មុខងារនេះ សូមចុចប៊ូតុង​ភាពងាយស្រួល​នៅលើ​អេក្រង់របស់អ្នក។"</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"ដើម្បីប្រើ​មុខងារនេះ សូមចុច​គ្រាប់ចុច​កម្រិតសំឡេង​ទាំងពីរ​ឱ្យជាប់។"</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"ដើម្បី​ចាប់ផ្ដើម និង​បញ្ឈប់​ការពង្រីក សូម​ចុចបីដង​នៅកន្លែងណាមួយ​នៅលើ​អេក្រង់​របស់អ្នក​។"</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"ដើម្បីចាប់ផ្ដើម និងបញ្ឈប់ការពង្រីក សូមចុចបីដងនៅកន្លែងណាមួយនៅលើអេក្រង់របស់អ្នកដោយប្រើម្រាមដៃពីរ។"</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"ដើម្បីប្រើ​មុខងារនេះ សូមអូស​ឡើងលើ​ពីផ្នែកខាងក្រោម​នៃអេក្រង់ ដោយប្រើ​ម្រាមដៃ 2។\n\nដើម្បី​ប្ដូររវាង​មុខងារ​ផ្សេងៗ សូមអូស​ឡើងលើ ដោយប្រើ​ម្រាមដៃ 2 រួច​សង្កត់ឱ្យជាប់។"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"ដើម្បីប្រើ​មុខងារនេះ សូមអូស​ឡើងលើ​ពីផ្នែកខាងក្រោម​នៃអេក្រង់ ដោយប្រើ​ម្រាមដៃ 3។\n\nដើម្បី​ប្ដូររវាង​មុខងារ​ផ្សេងៗ សូមអូស​ឡើងលើ ដោយប្រើ​ម្រាមដៃ 3 រួច​សង្កត់ឱ្យជាប់។"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"ដើម្បីប្រើ​មុខងារ​ភាពងាយប្រើ សូមអូស​ឡើងលើ​ពីផ្នែកខាងក្រោម​នៃអេក្រង់ ដោយប្រើ​ម្រាមដៃ 2។\n\nដើម្បី​ប្ដូររវាង​មុខងារ​ផ្សេងៗ សូមអូស​ឡើងលើ ដោយប្រើ​ម្រាមដៃ 2 រួច​សង្កត់ឱ្យជាប់។"</string>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"សង្កត់គ្រាប់ចុច​កម្រិតសំឡេង​ឱ្យជាប់"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"សង្កត់គ្រាប់ចុច​កម្រិតសំឡេង​ឱ្យជាប់"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"ចុច​គ្រាប់ចុច​កម្រិតសំឡេង​ទាំងពីរ​ឱ្យជាប់"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"ការចុចអេក្រង់បីដងដោយប្រើម្រាមដៃពីរ"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"ការចុចអេក្រង់បីដងដោយប្រើម្រាមដៃពីរ"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"ចុចអេក្រង់យ៉ាងរហ័ស {0,number,integer} ដងដោយប្រើម្រាមដៃពីរ"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"ចុច​អេក្រង់​បីដង"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"ចុច​អេក្រង់​បីដង"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"ចុចអេក្រង់ {0,number,integer} ដងឱ្យរហ័ស។ ផ្លូវកាត់​នេះ​អាច​ធ្វើឱ្យ​ឧបករណ៍​របស់អ្នក​ដើរយឺត"</string>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"ប្រើការ​ញ័រ និងប្រតិកម្មប៉ះ"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"ការញ័រនៃម៉ោងរោទ៍"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"ការញ័រនៃមេឌៀ"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"ការញ័រក្ដារចុច"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"រំញ័រសំឡេងរោទ៍"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"រំញ័រការជូនដំណឹង"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"ប្រតិកម្មតបនឹងការប៉ះ"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"នៅ​សល់ <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> ដើម្បី​បញ្ចូល​ថ្ម"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"រយៈពេលប្រើប្រាស់"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"រយៈពេលនៅផ្ទៃខាងក្រោយ"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"ជិតអស់​ថ្មហើយ"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"អនុញ្ញាត​ឲ្យ​កម្មវិធី​នេះ​ដំណើរការ​នៅ​ផ្ទៃ​ខាង​ក្រោយ"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"ដាក់កម្រិតលើសកម្មភាពផ្ទៃខាងក្រោយ?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"ប្រសិនបើអ្នកដាក់កម្រិតលើសកម្មភាពផ្ទៃខាងក្រោយសម្រាប់កម្មវិធី វាអាចនឹងដំណើរការខុសប្រក្រតី"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"ដោយសារ​កម្មវិធីនេះ​មិនត្រូវ​បានកំណត់ ដើម្បី​បង្កើន​ប្រសិទ្ធភាពថ្ម អ្នកមិន​អាចដាក់​កំហិតវា​បានទេ។\n\nដើម្បី​ដាក់កំហិត​កម្មវិធី សូមបើក​ការបង្កើន​ប្រសិទ្ធភាពថ្ម​ជាមុនសិន។"</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"គ្រប់គ្រងការប្រើប្រាស់ថ្ម"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"អនុញ្ញាតឱ្យមានការប្រើប្រាស់នៅផ្ទៃខាងក្រោយ"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"បើកដើម្បីទទួលបានព័ត៌មានថ្មីៗក្នុងពេលជាក់ស្ដែង បិទដើម្បីសន្សំសំចៃថ្ម"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"គ្មានការដាក់​កំហិត"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"បង្កើន​ប្រសិទ្ធភាព"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"ដាក់កំហិត"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"តាំងពីពេលសាកពេញចុងក្រោយ"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"កម្មវិធី​ប្រព័ន្ធ"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"កម្មវិធីដែលបានលុប"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"ផ្សេងទៀត"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"រយៈពេល​នៅ​សល់​ប៉ាន់​ស្មាន"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"ទៀតទើបសាកថ្មពេញ"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"សរុប៖ តិចជាងមួយនាទី"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"ផ្ទៃខាងក្រោយ៖ តិចជាងមួយនាទី"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"រយៈពេលប្រើប្រាស់៖ តិចជាងមួយនាទី"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"តិចជាងមួយនាទី"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"សរុប៖ <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"ផ្ទៃខាងក្រោយ៖ <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"រយៈពេលប្រើប្រាស់៖ <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"ទិន្នន័យទូរសព្ទ​ចល័ត​ និង Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"សមកាលកម្មទិន្នន័យផ្ទាល់ខ្លួនស្វ័យប្រវត្តិ"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"សមកាលកម្មទិន្នន័យការងារស្វ័យប្រវត្តិ"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"ធ្វើសមកាលកម្មទិន្នន័យឯកជនស្វ័យប្រវត្តិ"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"ប្ដូរ​ខួប…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"ថ្ងៃ​នៃ​ខែ​ត្រូវ​កំណត់​ខួប​ប្រើ​ទិន្នន័យ​ឡើង​វិញ៖"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"គ្មាន​កម្មវិធី​ប្រើ​ទិន្នន័យ​អំឡុង​ពេល​នេះ។"</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"ទំហំអក្សរ ទំហំអក្សរធំ ពុម្ពអក្សរធំ អក្សរធំ ខ្សោយភ្នែក ធ្វើឱ្យអក្សរកាន់តែធំ កម្មវិធីពង្រីកពុម្ពអក្សរ ការពង្រីកពុម្ពអក្សរ"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"បើកអេក្រង់សម្ងំជានិច្ច, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, ស្លាក, កម្មវិធីអាន"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"ក្ដារចុច, ប្រតិកម្មប៉ះ, ញ័រ,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"កម្រិត​សំឡេង ការញ័រ កុំរំខាន"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"កម្រិត​សំឡេង​មេឌៀ"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"កម្រិតសំឡេងនៃការបញ្ជូន"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"បង្ហាញ​ខ្លឹមសារនៃការ​ជូនដំណឹង​ទាំងអស់"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"បង្ហាញ​ខ្លឹមសាររសើប នៅពេលដោះ​សោតែប៉ុណ្ណោះ"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"កុំ​បង្ហាញ​ការ​ជូនដំណឹង​ឱ្យសោះ"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"តើអ្នកចង់ឱ្យ​អេក្រង់ចាក់សោ​បង្ហាញដោយ​របៀបណា?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"អេក្រង់ចាក់សោ"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"បង្ហាញខ្លឹមសារនៃការជូនដំណឹងការងារទាំងអស់"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"លាក់​ខ្លឹមសារ​ការងារ​រសើប"</string>
@@ -3354,6 +3448,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"កម្មវិធីនេះមិនស្គាល់ការកំណត់ដែលប្រសើរឡើងទេ"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"ការកំណត់ច្រើនទៀត"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"អាចប្រើការកំណត់បានច្រើនទៀតនៅក្នុងកម្មវិធីនេះ"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"ការបន្ថយសំឡេងការជូនដំណឹង"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"ដាក់ប្រើការបន្ថយសំឡេងលើការជូនដំណឹងទាំងអស់"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"បន្ថយកម្រិតសំឡេងនៃការជូនដំណឹងបន្តិចម្ដងៗ នៅពេលអ្នកទទួលបានការជូនដំណឹងជាប់ៗគ្នាជាច្រើនពីកម្មវិធីតែមួយ"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"ដាក់ប្រើការបន្ថយសំឡេងលើការសន្ទនា"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"បន្ថយកម្រិតសំឡេងនៃការជូនដំណឹងបន្តិចម្ដងៗ នៅពេលអ្នកទទួលបានសារច្រើនពីការជជែកតែមួយក្នុងរយៈពេលខ្លី"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"កុំប្រើការបន្ថយសំឡេងលើការ​ជូនដំណឹង"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"កុំបន្ថយកម្រិតសំឡេងនៃការជូនដំណឹង ទោះជាមានការជូនដំណឹងជាប់ៗគ្នាប៉ុន្មានក៏ដោយពីកម្មវិធីតែមួយ"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"ញ័រនៅពេលដោះសោ"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"ញ័រតែប៉ុណ្ណោះ នៅពេលអេក្រង់ដោះសោ"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"ដាក់ប្រើលើកម្រងព័ត៌មានការងារ"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"ដាក់ប្រើការកំណត់ការបន្ថយសំឡេងលើការជូនដំណឹងពីកម្រងព័ត៌មានផ្ទាល់ខ្លួនរបស់អ្នកទៅកម្រងព័ត៌មានការងាររបស់អ្នក"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"សេវាកម្មជំនួយ VR"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"មិនមានកម្មវិធីដែលបានដំឡើងត្រូវបានស្នើឲ្យដំណើរការជាសេវាកម្មជំនួយ VR នោះទេ។"</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"អនុញ្ញាតឲ្យសេវាកម្ម VR ចូលដំណើរការ <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"អនុញ្ញាតឱ្យចូលប្រើ ដើម្បីគ្រប់គ្រងឯកសារទាំងអស់"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"អនុញ្ញាតឱ្យ​កម្មវិធី​នេះ​អាន កែសម្រួល និងលុប​ឯកសារ​ទាំងអស់​នៅលើ​ឧបករណ៍​នេះ ឬឧបករណ៍ផ្ទុកទាំងឡាយ​ដែលបានភ្ជាប់។ ប្រសិនបើ​ផ្ដល់​ការអនុញ្ញាត កម្មវិធីនេះ​អាច​ចូលប្រើ​ឯកសារ ដោយ​មិនឱ្យ​អ្នកដឹង។"</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"អាច​ចូលប្រើ​ឯកសារ​ទាំងអស់​បាន"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"កម្មវិធីបើកដំណើរការសំឡេង"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"អនុញ្ញាតការបើកដំណើរការសំឡេង"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"ការបើកដំណើរការសំឡេងបើកកម្មវិធីដែលបានយល់ព្រម ដោយមិនប្រើដៃ ដោយប្រើឃ្លាបញ្ជាដោយសំឡេង។ ការចាប់ដឹងប្រកបដោយភាពបត់បែនដែលភ្ជាប់មកជាមួយស្រាប់ធានាថា ទិន្នន័យស្ថិតនៅជា​លក្ខណៈឯកជន​សម្រាប់តែអ្នកប៉ុណ្ណោះ។\n\n"<a href="">"ព័ត៌មានបន្ថែមអំពីការចាប់ដឹងប្រកបដោយភាពបត់បែនដែលបានការពារ"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"ការជូនដំណឹងពេញអេក្រង់"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"អនុញ្ញាតឱ្យមានការជូនដំណឹងពេញអេក្រង់ពីកម្មវិធីនេះ"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"អនុញ្ញាតឱ្យកម្មវិធីនេះបង្ហាញការជូនដំណឹងពេញអេក្រង់ នៅពេលឧបករណ៍ត្រូវបានចាក់សោ។ កម្មវិធីអាចប្រើការជូនដំណឹងទាំងនេះ ដើម្បីរំលេចម៉ោងរោទ៍ ការហៅចូល ឬការជូនដំណឹងបន្ទាន់ផ្សេងទៀត។"</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> បានប្រើថ្មច្រើនជាងធម្មតា ពេលនៅផ្ទៃខាងក្រោយ"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> បានប្រើថ្មកាន់តែច្រើន ពេលនៅផ្ទៃខាងមុខ"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> បានប្រើថ្មច្រើនជាងធម្មតា ពេលនៅផ្ទៃខាងមុខ"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"ការប្រើប្រាស់ថ្មច្រើន"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"ការប្រើប្រាស់ថ្មច្រើននៅផ្ទៃខាងក្រោយ"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"ការប្រើប្រាស់ថ្មច្រើននៅផ្ទៃខាងមុខ"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"ការរុករក​ក្នុងប្រព័ន្ធ ការរុករក​ដោយប្រើ​ប៊ូតុង 2 ការរុករក​ដោយប្រើ​​ប៊ូតុង 3 ការរុករក​ដោយប្រើ​ចលនា អូស"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"ជំនួយការ​ឌីជីថល"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"អូសដើម្បី​ប្រើជំនួយការ"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"អូសឡើងលើ​ពីជ្រុងខាងក្រោម ដើម្បីចាប់ផ្ដើមកម្មវិធីជំនួយការ​ឌីជីថល។"</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"អូសឡើងលើ​ពីជ្រុងខាងក្រោម ដើម្បីចាប់ផ្ដើមកម្មវិធីជំនួយការ​ឌីជីថល"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"ចុចប៊ូតុងដើមឱ្យជាប់ដើម្បីបើក Assistant"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"ចុចប៊ូតុងដើមឱ្យជាប់ ដើម្បីចាប់ផ្ដើមកម្មវិធីជំនួយការឌីជីថល។"</string>
     <string name="low_label" msgid="6525629096999711220">"ទាប"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"ទិន្នន័យ, កូដសម្ងាត់, ពាក្យ​សម្ងាត់"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"ស្វ័យប្រវត្តិ, បំពេញ, បំពេញស្វ័យប្រវត្តិ, ទិន្នន័យ, កូដសម្ងាត់, ពាក្យ​សម្ងាត់"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;ត្រូវ​ប្រាកដថា​អ្នក​ទុកចិត្ត​កម្មវិធី​នេះ&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google បំពេញស្វ័យប្រវត្តិ&gt;%1$s&lt;/xliff:g&gt; ប្រើប្រាស់​អ្វី​ដែល​មាននៅ​លើ​អេក្រង់​របស់អ្នក ដើម្បី​កំណត់​អ្វីដែល​អាចបំពេញ​ដោយ​ស្វ័យប្រវត្តិ។"</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&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_autofill_confirmation_message" msgid="843829628024668466">"&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_picker_title" msgid="8191267620665129205">"ពាក្យ​សម្ងាត់ កូដសម្ងាត់ និងសេវាកម្មទិន្នន័យ"</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>
@@ -4783,10 +4893,10 @@
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{កម្មវិធីដែលបានដំឡើង # ខែចុងក្រោយ}other{កម្មវិធីដែលបានដំឡើង # ខែចុងក្រោយ}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{កម្មវិធីដែលបានដំឡើង​លើសពី # ខែមុន}other{កម្មវិធីដែលបានដំឡើង​លើសពី # ខែមុន}}"</string>
     <string name="aspect_ratio_title" msgid="2451826875939676101">"សមាមាត្រ"</string>
-    <string name="aspect_ratio_summary" msgid="4056406351663726494">"សាកល្បងសមាមាត្រថ្មី ដើម្បីមើលកម្មវិធីនេះ ប្រសិនបើ​សមាមាត្រនេះ​មិនត្រូវបានកំណត់ឱ្យ​ត្រូវគ្នានឹង <xliff:g id="DEVICE_NAME">%1$s</xliff:g> របស់អ្នកទេ"</string>
-    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"សាកល្បងប្រើ​សមាមាត្រថ្មី ដើម្បីមើលកម្មវិធីនេះ ប្រសិនបើ​សមាមាត្រនេះ​មិនត្រូវបានកំណត់ឱ្យ​ត្រូវគ្នានឹង <xliff:g id="DEVICE_NAME">%1$s</xliff:g> របស់អ្នកទេ។ កម្មវិធីមួយចំនួនអាចនឹងមិនត្រូវបានបង្កើនប្រសិទ្ធភាពសម្រាប់សមាមាត្រជាក់លាក់ទេ។"</string>
-    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"សាកល្បងសមាមាត្រថ្មី ដើម្បីមើលកម្មវិធី ប្រសិនបើ​សមាមាត្រនេះ​មិនត្រូវបានកំណត់ឱ្យ​ត្រូវគ្នានឹង <xliff:g id="DEVICE_NAME">%1$s</xliff:g> របស់អ្នកទេ"</string>
-    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"សាកល្បងប្រើ​សមាមាត្រថ្មី ដើម្បីមើលកម្មវិធី ប្រសិនបើ​សមាមាត្រនេះ​មិនត្រូវបានកំណត់ឱ្យ​ត្រូវគ្នានឹង <xliff:g id="DEVICE_NAME">%1$s</xliff:g> របស់អ្នកទេ។ កម្មវិធីមួយចំនួនអាចនឹងមិនត្រូវបានបង្កើនប្រសិទ្ធភាពសម្រាប់សមាមាត្រជាក់លាក់ទេ។"</string>
+    <string name="aspect_ratio_summary" msgid="4056406351663726494">"សាកល្បងប្រើ​សមាមាត្រថ្មី ដើម្បីមើលកម្មវិធីនេះ ប្រសិនបើ​វាមិនត្រូវបានរចនាឡើងឱ្យ​ប៉ុនគ្នានឹងទំហំ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> របស់អ្នកទេ"</string>
+    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"សាកល្បងប្រើ​សមាមាត្រថ្មី ដើម្បីមើលកម្មវិធីនេះ ប្រសិនបើ​វាមិនត្រូវបានរចនាឡើងឱ្យ​ប៉ុនគ្នានឹងទំហំ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> របស់អ្នកទេ។ កម្មវិធីមួយចំនួនប្រហែលជាមិនស័ក្ដិសមសម្រាប់សមាមាត្រជាក់លាក់ទេ។"</string>
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"សាកល្បងប្រើ​សមាមាត្រថ្មី ដើម្បីមើលកម្មវិធី ប្រសិនបើ​វាមិនត្រូវបានរចនាឡើងឱ្យ​ប៉ុនគ្នានឹងទំហំ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> របស់អ្នកទេ"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"សាកល្បងប្រើ​សមាមាត្រថ្មី ដើម្បីមើលកម្មវិធី ប្រសិនបើ​វា​មិនត្រូវបានរចនាឡើងឱ្យ​ប៉ុនគ្នានឹងទំហំ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> របស់អ្នកទេ។ កម្មវិធីមួយចំនួនប្រហែលជាមិនស័ក្ដិសមសម្រាប់សមាមាត្រជាក់លាក់ទេ។"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"កម្មវិធី​ដែលបានណែនាំ"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"កម្មវិធីដែលបានប្ដូរ"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"លំនាំដើមនៃកម្មវិធី"</string>
@@ -4797,7 +4907,7 @@
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
     <string name="user_aspect_ratio_option_a11y" msgid="1235801996029095219">"<xliff:g id="NUMERATOR">%1$s</xliff:g> ដោយ <xliff:g id="DENOMINATOR">%2$s</xliff:g>"</string>
-    <string name="app_aspect_ratio_footer" msgid="4029509301182067475">"កម្មវិធីនេះ​នឹងចាប់ផ្ដើមឡើងវិញ នៅពេលអ្នកប្ដូរសមាមាត្រ។ អ្នកអាចនឹងបាត់បង់​ការផ្លាស់ប្ដូរ​ដែលមិនបានរក្សាទុក។ កម្មវិធីមួយចំនួនអាចនឹងមិនត្រូវបានបង្កើនប្រសិទ្ធភាពសម្រាប់សមាមាត្រជាក់លាក់ទេ។"</string>
+    <string name="app_aspect_ratio_footer" msgid="4029509301182067475">"កម្មវិធីនេះ​នឹងចាប់ផ្ដើមឡើងវិញ នៅពេលអ្នកប្ដូរសមាមាត្រ។ អ្នកអាចនឹងបាត់បង់​ការផ្លាស់ប្ដូរ​ដែលមិនបានរក្សាទុក។ កម្មវិធីមួយចំនួនប្រហែលជាមិនស័ក្ដិសមសម្រាប់សមាមាត្រជាក់លាក់ទេ។"</string>
     <string name="aspect_ratio_experimental_title" msgid="9088785421062044831">"សមាមាត្រ (ពិសោធន៍)"</string>
     <string name="aspect_ratio_experiment_title" msgid="128614319422121040">"សមាមាត្រ​ (ពិសោធន៍)"</string>
     <string name="aspect_ratio_labs_title" msgid="6733893837442759383">"សមាមាត្រ (Labs)"</string>
@@ -4856,4 +4966,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"ការស្កេនរកកម្មវិធីបោកប្រាស់"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"ពិនិត្យសកម្មភាព​កម្មវិធីរកមើលការ​ដាក់នុយ"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"ប្រើមុខងារស្កេន ដើម្បីរកកម្មវិធីដែលមានលក្ខណៈបោកប្រាស់"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"ប្រើមុខងារស្កេន ដើម្បីរកកម្មវិធីការងារដែលមានលក្ខណៈបោកប្រាស់"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-kn/arrays.xml b/res/values-kn/arrays.xml
index 11e4cea..75a2300 100644
--- a/res/values-kn/arrays.xml
+++ b/res/values-kn/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"1 ನಿಮಿಷದ ನಂತರ"</item>
     <item msgid="1574040255478150028">"5 ನಿಮಿಷಗಳ ನಂತರ"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 066c15b..32dd46d 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -44,7 +44,7 @@
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"ದೊಡ್ಡದಾಗಿಸು"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"ಯಾವಾಗಲೂ"</string>
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"ನಿಮ್ಮ ಸಾಧನವನ್ನು ನೀವು ಫೋಲ್ಡ್ ಮಾಡಿದಾಗ ಫ್ರಂಟ್ ಡಿಸ್‌ಪ್ಲೇ ಆನ್ ಆಗುತ್ತದೆ"</string>
-    <string name="selective_stay_awake_title" msgid="7887645333447645168">"ಗೇಮ್‌ಗಳು, ವೀಡಿಯೊಗಳು ಮತ್ತು ಇನ್ನಷ್ಟು"</string>
+    <string name="selective_stay_awake_title" msgid="7887645333447645168">"ಕೇವಲ ಗೇಮ್‌ಗಳು, ವೀಡಿಯೊಗಳು ಮತ್ತು ಇನ್ನಷ್ಟು"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"ನಿಮ್ಮ ಸ್ಕ್ರೀನ್ ನಿಷ್ಕ್ರಿಯವಾಗುವುದನ್ನು ತಡೆಯುವ ಆ್ಯಪ್‌ಗಳಿಗಾಗಿ ಫ್ರಂಟ್ ಡಿಸ್‌ಪ್ಲೇ ಆನ್ ಆಗುತ್ತದೆ"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"ಎಂದಿಗೂ ಬೇಡ"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"ನಿಮ್ಮ ಸಾಧನವನ್ನು ನೀವು ಫೋಲ್ಡ್ ಮಾಡಿದಾಗ ಫ್ರಂಟ್ ಡಿಸ್‌ಪ್ಲೇ ಲಾಕ್ ಆಗುತ್ತದೆ"</string>
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"ಬ್ಲೂಟೂತ್ LE ಆಡಿಯೋವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"ಸಾಧನವು LE ಆಡಿಯೋ ಹಾರ್ಡ್‌ವೇರ್ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಬೆಂಬಲಿಸಿದರೆ ಬ್ಲೂಟೂತ್ LE ಆಡಿಯೋ ಫೀಚರ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"ಸಾಧನ ವಿವರಗಳಲ್ಲಿ LE ಆಡಿಯೋ ಟಾಗಲ್ ತೋರಿಸಿ"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"ಬ್ಲೂಟೂತ್ LE ಆಡಿಯೋ ಅನುಮತಿ ಪಟ್ಟಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"ಬ್ಲೂಟೂತ್ LE ಆಡಿಯೋ ಅನುಮತಿ ಪಟ್ಟಿ ಫೀಚರ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"ಬೈಪಾಸ್ ಬ್ಲೂಟೂತ್ LE ಆಡಿಯೊ ಅನುಮತಿ ಪಟ್ಟಿ"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"ಅನುಮತಿ ಪಟ್ಟಿ ಮಾನದಂಡಗಳನ್ನು ಪೂರೈಸಲು, LE ಆಡಿಯೊ ಪೆರಿಫೆರಲ್ ಅನ್ನು ದೃಢೀಕರಿಸಿರದಿದ್ದರೂ ಸಹ ಡೀಫಾಲ್ಟ್ ಆಗಿ LE ಆಡಿಯೊ ಬಳಸಿ."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"ಮೀಡಿಯಾ ಸಾಧನಗಳು"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"ಸಾಧನಗಳಿಗೆ ಕರೆಮಾಡಿ"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"ಇತರ ಸಾಧನಗಳು"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"ಉಳಿಸಿರುವ ಸಾಧನಗಳು"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"ಖಾತೆಗೆ ಸಂಬಂಧಿಸಿದೆ"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"ಈ ಹಿಂದೆ ಖಾತೆಯ ಜೊತೆಗೆ ಬಳಸಲಾಗಿದೆ"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"ಜೋಡಿಸಲು ಬ್ಲೂಟೂತ್ ಆನ್ ಆಗುತ್ತದೆ"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"ಕನೆಕ್ಷನ್ ಆದ್ಯತೆಗಳು"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"ಹಿಂದೆ ಸಂಪರ್ಕಗೊಂಡಿರುವುದು"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"ಪಠ್ಯ ಫೀಲ್ಡ್‌ಗಳಲ್ಲಿ ಬರೆಯಿರಿ"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"ಎಲ್ಲಾ ಸ್ಟೈಲಸ್ ಬಟನ್ ಒತ್ತುವಿಕೆಯನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"ಸ್ಟೈಲಸ್"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"ಆಡಿಯೋ ಹಂಚಿಕೊಳ್ಳುವಿಕೆ"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"ಆಡಿಯೋ ಹಂಚಿಕೊಳ್ಳಿ"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"ಕರೆಗಳು ಮತ್ತು ಅಲಾರಾಂಗಳು"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"ದಿನಾಂಕ ಮತ್ತು ಸಮಯ"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"ಪ್ರಾಕ್ಸಿ"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"ತೆರವುಗೊಳಿಸಿ"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"ಲೋಡ್ ಆಗುತ್ತಿದೆ…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"ಸಮೀಪದಲ್ಲಿರುವ ಸಾಧನಗಳ ಅನುಮತಿ ಹೊಂದಿರುವ ಆ್ಯಪ್‌ಗಳು ಕನೆಕ್ಟ್ ಮಾಡಿರುವ ಸಾಧನಗಳ ಸಂಬಂಧಿತ ಸ್ಥಾನವನ್ನು ನಿರ್ಧರಿಸಬಹುದು."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ಆ್ಯಪ್‌ಗಳು ಮತ್ತು ಸೇವೆಗಳಿಗೆ ಸ್ಥಳ ಪ್ರವೇಶಪಡೆಯುವಿಕೆ ಆಫ್ ಆಗಿದೆ. ನೀವು ತುರ್ತು ಸಂಖ್ಯೆಗೆ ಕರೆ ಮಾಡಿದಾಗ ಅಥವಾ ಪಠ್ಯ ಕಳುಹಿಸಿದಾಗ ನಿಮ್ಮ ಸಾಧನದ ಸ್ಥಳವನ್ನು ತುರ್ತಾಗಿ ಪ್ರತಿಕ್ರಿಯಿಸುವವರಿಗೆ ಕಳುಹಿಸಬಹುದು."</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ಸ್ಥಳ ಸೆಟ್ಟಿಂಗ್‌ಗಳ ಕುರಿತು ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"ಖಾತೆಗಳು"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"ಭದ್ರತೆ"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"ಎನ್‌ಕ್ರಿಪ್ಶನ್ &amp; ರುಜುವಾತುಗಳು"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"ಉದ್ಯೋಗ ಪ್ರೊಫೈಲ್"</string>
     <string name="private_space_title" msgid="7078627930195569767">"ಖಾಸಗಿ ಸ್ಪೇಸ್"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"ಖಾಸಗಿ ಫೋಲ್ಡರ್‌ನಲ್ಲಿ ಆ್ಯಪ್‌ಗಳನ್ನು ಮರೆಮಾಡಿ"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಬಳಸಿಕೊಂಡು ಅನ್‌ಲಾಕ್ ಮಾಡಿ"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ತೋರಿಸಿ"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"ಲಾಕ್ ಆಗಿರುವಾಗ ಮರೆಮಾಡಿ"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"ಲಾಕ್ ಆಗಿರುವಾಗ ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ಮರೆಮಾಡಿ"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"ಸಾಧನದಲ್ಲಿ ಖಾಸಗಿ ಸ್ಪೇಸ್‌ ಬಗ್ಗೆ ಇತರರಿಗೆ ತಿಳಿಯದಂತೆ ಮಾಡಲು, ಆ್ಯಪ್ ಪಟ್ಟಿಯಿಂದ ಅದನ್ನು ಮರೆಮಾಡಬಹುದು"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"ಮರೆಮಾಡಿರುವಾಗ ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಿ"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"ಹುಡುಕಾಟ ಪಟ್ಟಿಯಲ್ಲಿ \'ಖಾಸಗಿ ಸ್ಪೇಸ್‌\' ಗಾಗಿ ಹುಡುಕಿ"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"ಖಾಸಗಿ ಸ್ಪೇಸ್ ಟೈಲ್ ಅನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"ನಿಮ್ಮ ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಿ"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"ಆಫ್ ಆಗಿದೆ"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"ಆನ್ ಆಗಿದೆ"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"ಸಿಸ್ಟಂ"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ರಚಿಸಿ"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ಅಳಿಸಿ"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ರಚಿಸಲಾಗಿದೆ"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"ಖಾಸಗಿ ಸ್ಪೇಸ್ ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ರಚಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಅಳಿಸಲಾಗಿದೆ"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ಅಳಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಸೆಟ್ ಮಾಡಿ"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ಬಳಸಲು ಈ ಸಾಧನದಲ್ಲಿ ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಸೆಟ್ ಮಾಡಿ."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಸೆಟ್ ಮಾಡಿ"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"ರದ್ದುಗೊಳಿಸಿ"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"ರದ್ದುಗೊಳಿಸಿ"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"ಸೆಟಪ್ ಮಾಡಿ"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ಸೆಟಪ್ ಮಾಡಿ"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"ನೀವು ಮಾತ್ರ ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಬಹುದಾದ ಸುರಕ್ಷಿತ ಸ್ಪೇಸ್‌ನಲ್ಲಿ ಖಾಸಗಿ ಆ್ಯಪ್‌ಗಳನ್ನು ಮರೆಮಾಡಿ"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"ಅದು ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"ನಿಮ್ಮ ಆ್ಯಪ್‌ಗಳ ಪಟ್ಟಿಯ ಕೆಳಗಿನಿಂದ ನೀವು ಖಾಸಗಿ ಸ್ಪೇಸ್‌ ಅನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಬಹುದು"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"ಖಾಸಗಿ ಸ್ಪೇಸ್‌ನಲ್ಲಿರುವ ಆ್ಯಪ್‌ಗಳನ್ನು ಲಾಕ್‌ ಮೂಲಕ ಸಂರಕ್ಷಿಸಲಾಗಿದೆ"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"ಖಾಸಗಿ ಸ್ಪೇಸ್ ಲಾಕ್ ಆಗಿರುವಾಗ ಅದರಲ್ಲಿರುವ ಆ್ಯಪ್‌ಗಳ ನೋಟಿಫಿಕೇಶನ್‌ಗಳನ್ನು ಮರೆಮಾಡಲಾಗುತ್ತದೆ"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"ಖಾಸಗಿ ಸ್ಪೇಸ್ ಲಾಕ್ ಆಗಿರುವಾಗ ಅನುಮತಿ ನಿರ್ವಾಹಕ, ಗೌಪ್ಯತೆ ಡ್ಯಾಶ್‌ಬೋರ್ಡ್ ಮತ್ತು ಇತರ ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಖಾಸಗಿ ಸ್ಪೇಸ್ ಆ್ಯಪ್‌ಗಳು ಗೋಚರಿಸುವುದಿಲ್ಲ"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ಸೆಟಪ್ ಮಾಡಲಾಗುತ್ತಿದೆ…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ಲಾಕ್‌ ಬಳಸಿ ರಕ್ಷಿಸಲಾಗಿದೆ"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"ಖಾಸಗಿ ಸ್ಪೇಸ್ ಆ್ಯಪ್‌ಗಳ ಬಳಕೆ ಮಾಹಿತಿಯು ಲಾಕ್ ಆಗಿರುವಾಗ ಅದನ್ನು ಮರೆಮಾಡಲಾಗುತ್ತದೆ"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"ನಿಮ್ಮ ಆ್ಯಪ್‌ಗಳ ಪಟ್ಟಿಯಿಂದ ಖಾಸಗಿ ಸ್ಪೇಸ್‌ ಅನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಿ"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ಸೆಟಪ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"ಈಗಲೇ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ ಅಥವಾ ನಂತರ ಮರಳಿ ಬನ್ನಿ"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"ಪುನಃ ಪ್ರಯತ್ನಿಸಿ"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"ಅನ್‌ಲಾಕ್ ಮಾಡಲು ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಬಳಸಬೇಕೆ?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"ನಿಮ್ಮ ಸಾಧನವನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡುವ ರೀತಿಯಲ್ಲಿಯೇ ನೀವು ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಬಹುದು ಅಥವಾ ಬೇರೆ ಲಾಕ್ ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಬಹುದು"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಅನ್ನು ಬಳಸಿ"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"ಹೊಸ ಲಾಕ್ ಆಯ್ಕೆಮಾಡಿ"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"ಎಲ್ಲವೂ ಸಿದ್ಧವಾಗಿದೆ!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"ಖಾಸಗಿ ಸ್ಟೇಸ್ ಅನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು, ನಿಮ್ಮ ಹೋಮ್ ಸ್ಕ್ರೀನ್ ಅನ್ನು ಕೆಳಗಿನಿಂದ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ, ನಂತರ ಕೆಳಗೆ ಸ್ಕ್ರಾಲ್ ಮಾಡಿ"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"ಮುಗಿದಿದೆ"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು ಕೆಳಗೆ ಸ್ಕ್ರಾಲ್ ಮಾಡಿ"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ಸೆಟಪ್ ಮಾಡಲು ಸೈನ್ ಇನ್ ಮಾಡಿ"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"ನೀವು ಗರಿಷ್ಠ <xliff:g id="COUNT">%d</xliff:g> ಫಿಂಗರ್‌ಪ್ರಿಂಟ್‌‌ಗಳನ್ನು ಸೇರಿಸಬಹುದು"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"ನೀವು ಗರಿಷ್ಠ ಸಂಖ್ಯೆಯ ಫಿಂಗರ್ ಪ್ರಿಂಟ್‌ಗಳನ್ನು ಸೇರಿಸಿರುವಿರಿ"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"ಹೆಚ್ಚಿನ ಫಿಂಗರ್ ಪ್ರಿಂಟ್‌ಗಳನ್ನು ಸೇರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"ಸಂಪರ್ಕಿಸಿ"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಿ"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"ಜೋಡಿಸಿ ಮತ್ತು ಸಂಪರ್ಕಪಡಿಸಿ"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"ಬ್ಲೂಟೂತ್‌‌ ಆನ್‌ ಮಾಡಿದಾಗ, ನಿಮ್ಮ ಸಾಧನವು ಇತರ ಸಮೀಪದ ಬ್ಲೂಟೂತ್‌‌ ಸಾಧನಗಳ ಜೊತೆಗೆ ಸಂವಹನ ಮಾಡಬಹುದು."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"ಬ್ಲೂಟೂತ್‌‌ ಆನ್‌ ಆದಾಗ, ಸಾಧನವು ಸಮೀಪದ ಇತರ ಬ್ಲೂಟೂತ್‌‌ ಸಾಧನಗಳ ಜೊತೆ ಸಂವಹನ ಮಾಡಬಹುದು"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"ಬ್ಲೂಟೂತ್ ಆನ್‌ ಮಾಡಿದ ನಂತರ, ನಿಮ್ಮ ಬ್ಲೂಟೂತ್ ಸಾಧನವು ಸಮೀಪದ ಸಾಧನಗಳ ಜೊತೆ ಸಂವಹನ ಮಾಡಬಹುದು. \n\nಸಾಧನದ ಅನುಭವವನ್ನು ಸುಧಾರಿಸಲು, ಬ್ಲೂಟೂತ್‌ ಆಫ್‌ ಆಗಿದ್ದರೂ ಸಹ, ಯಾವ ಸಮಯದಲ್ಲಾದರೂ ಸಮೀಪದ ಸಾಧನಗಳಿಗೆ ಸ್ಕ್ಯಾನ್‌ ಮಾಡಲು ಆ್ಯಪ್‌ಗಳು ಮತ್ತು ಸೇವೆಗಳಿಗೆ ಅನುಮತಿ ನೀಡಿ. ಉದಾಹರಣೆಗೆ, ಸ್ಥಳ ಆಧಾರಿತ ಫೀಚರ್‌ಗಳು ಮತ್ತು ಸೇವೆಗಳನ್ನು ಸುಧಾರಿಸಲು ಇದನ್ನು ಬಳಸಬಹುದಾಗಿದೆ. ನೀವು ಇದನ್ನು ಸ್ಕ್ಯಾನಿಂಗ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಬದಲಾಯಿಸಬಹುದು."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"ಬದಲಾಯಿಸಿ"</string>
     <string name="device_details_title" msgid="1155622417516195481">"ಸಾಧನದ ವಿವರಗಳು"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"ಡೀಬಗ್ ಮಾಡಬಹುದಾದ ಆ್ಯಪ್‌ಗಳಿಗಾಗಿ ಬೈಟ್‌ಕೋಡ್ ಪರಿಶೀಲಿಸಲು ART ಅನುಮತಿಸಿ"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"ರಿಫ್ರೆಶ್ ರೇಟ್ ತೋರಿಸಿ"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"ಪ್ರಸ್ತುತ ಡಿಸ್‌ಪ್ಲೇ ರಿಫ್ರೆಶ್ ರೇಟ್ ಅನ್ನು ತೋರಿಸಿ"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"HDR/SDR ಅನುಪಾತವನ್ನು ತೋರಿಸಿ"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"ಪ್ರಸ್ತುತ HDR/SDR ಅನುಪಾತವನ್ನು ತೋರಿಸಿ"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"NFC ಗಾಗಿ ಸಾಧನ ಅನ್‌ಲಾಕ್ ಅಗತ್ಯವಿದೆ"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android ಬೀಮ್"</string>
@@ -1060,9 +1135,9 @@
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"ಆಫ್"</string>
     <string name="display_white_balance_title" msgid="2624544323029364713">"ವೈಟ್ ಬ್ಯಾಲೆನ್ಸ್ ಪ್ರದರ್ಶಿಸಿ"</string>
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
-    <string name="fold_lock_behavior_title" msgid="786228803694268449">"ಫೋಲ್ಡ್ ಮೇಲೆ ಆ್ಯಪ್‌ಗಳ ಬಳಕೆಯನ್ನು ಮುಂದುವರಿಸಿ"</string>
+    <string name="fold_lock_behavior_title" msgid="786228803694268449">"ಫೋಲ್ಡ್‌ ಮಾಡಿದ ನಂತರ ಆ್ಯಪ್‌ಗಳ ಬಳಕೆಯನ್ನು ಮುಂದುವರಿಸಿ"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"ಸ್ಮೂಥ್ ಡಿಸ್‌ಪ್ಲೇ"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"ಕೆಲವು ವಿಷಯಗಳಿಗೆ ರಿಫ್ರೆಶ್ ರೇಟ್ ಅನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ 60 ರಿಂದ <xliff:g id="ID_1">%1$s</xliff:g>Hz ಗೆ ಹೆಚ್ಚಿಸುತ್ತದೆ. ಬ್ಯಾಟರಿ ಬಳಕೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"ಕೆಲವು ವಿಷಯಗಳಿಗೆ ರಿಫ್ರೆಶ್ ರೇಟ್ ಅನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ <xliff:g id="ID_1">%1$d</xliff:g> Hz ವರೆಗೆ ಹೆಚ್ಚಿಸುತ್ತದೆ. ಬ್ಯಾಟರಿ ಬಳಕೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"ಗರಿಷ್ಠ ರಿಫ್ರೆಶ್ ರೇಟ್ ಅನ್ನು ಅನ್ವಯಿಸಿ"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"ಸುಧಾರಿತ ಸ್ಪರ್ಶ ಪ್ರತಿಕ್ರಿಯೆ ಮತ್ತು ಆ್ಯನಿಮೇಶನ್ ಗುಣಮಟ್ಟಗಳಿಗಾಗಿ ಅತ್ಯಧಿಕ ರಿಫ್ರೆಶ್ ರೇಟ್. ಬ್ಯಾಟರಿ ಬಳಕೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"ಸ್ಕ್ರೀನ್ ಆನ್ ಆಗಿರುವಿಕೆ"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"ಸಮುದಾಯದ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN ಗಳು"</string>
     <string name="apn_edit" msgid="2003683641840248741">"ಆ್ಯಕ್ಸೆಸ್ ಪಾಯಿಂಟ್ ಎಡಿಟ್ ಮಾಡಿ"</string>
+    <string name="apn_add" msgid="9069613192201630934">"ಆ್ಯಕ್ಸೆಸ್ ಪಾಯಿಂಟ್ ಅನ್ನು ಸೇರಿಸಿ"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"ಹೊಂದಿಸಿಲ್ಲ"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"ಹೊಂದಿಸಲಾಗಿಲ್ಲ"</string>
     <string name="apn_name" msgid="6677695784108157953">"ಹೆಸರು"</string>
@@ -1320,6 +1396,8 @@
     <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="network_type" msgid="748590707422733595">"ನೆಟ್‌ವರ್ಕ್‌ ಪ್ರಕಾರ"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"ನಿರ್ದಿಷ್ಟಪಡಿಸದಿರುವುದು"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO ಪ್ರಕಾರ"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO ಮೌಲ್ಯ"</string>
     <string name="menu_delete" msgid="9199740901584348273">"APN ಅಳಿಸಿ"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"ತೆರೆಯಲು ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ ಬಟನ್ ಬಳಸಿ"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"ತೆರೆಯಲು, ವಾಲ್ಯೂಮ್ ಕೀಗಳನ್ನು ಒತ್ತಿಹಿಡಿಯಿರಿ"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"ತೆರೆಯಲು, ಸ್ಕ್ರೀನ್ ಮೇಲೆ ಟ್ರಿಪಲ್-ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"ತೆರೆಯಲು ಎರಡು-ಬೆರಳಿನಿಂದ ಟ್ರಿಪಲ್-ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"ತೆರೆಯಲು ಗೆಸ್ಚರ್ ಬಳಸಿ"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"ಆ್ಯಕ್ಸೆಸ್ಸಿಬಿಲಿಟಿ ಗೆಸ್ಚರ್ ಅನ್ನು ಬಳಸಿ"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"ಈ ಫೀಚರ್ ಬಳಸಲು, ನಿಮ್ಮ ಸ್ಕ್ರೀನ್‌ನ ಕೆಳಭಾಗದಲ್ಲಿರುವ ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ ಬಟನ್ <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> ಟ್ಯಾಪ್ ಮಾಡಿ.\n\nಫೀಚರ್‌ಗಳ ನಡುವೆ ಬದಲಾಯಿಸಲು, ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ ಬಟನ್ ಅನ್ನು ಸ್ಪರ್ಶಿಸಿ ಮತ್ತು ಹೋಲ್ಡ್‌ ಮಾಡಿ."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"ಈ ಫೀಚರ್ ಬಳಸಲು, ನಿಮ್ಮ ಸ್ಕ್ರೀನ್ ಮೇಲಿನ ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ ಬಟನ್ ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"ಈ ಫೀಚರ್ ಬಳಸಲು, ಎರಡೂ ವಾಲ್ಯೂಮ್ ಕೀಗಳನ್ನು ಒತ್ತಿ ಹಿಡಿದುಕೊಳ್ಳಿ."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"ಹಿಗ್ಗಿಸುವಿಕೆಯನ್ನು ಪ್ರಾರಂಭಿಸಲು ಮತ್ತು ನಿಲ್ಲಿಸಲು, ನಿಮ್ಮ ಪರದೆಯ ಮೇಲೆ ಎಲ್ಲಿಯಾದರೂ ಟ್ರಿಪಲ್-ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"ಹಿಗ್ಗಿಸುವಿಕೆ ಪ್ರಾರಂಭಿಸಲು &amp; ನಿಲ್ಲಿಸಲು, ಎರಡು ಬೆರಳಿನಿಂದ ಸ್ಕ್ರೀನ್ ಮೇಲೆ ಎಲ್ಲಿಯಾದರೂ ಟ್ರಿಪಲ್-ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"ಈ ಫೀಚರ್ ಬಳಸಲು, 2 ಬೆರಳುಗಳನ್ನು ಬಳಸಿ ಸ್ಕ್ರೀನ್ ಕೆಳಭಾಗದಿಂದ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ.\n\nವೈಶಿಷ್ಟ್ಯಗಳ ನಡುವೆ ಬದಲಿಸಲು, 2 ಬೆರಳುಗಳನ್ನು ಬಳಸಿ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ ಮತ್ತು ಹೋಲ್ಡ್‌ ಮಾಡಿ."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"ಈ ಫೀಚರ್ ಬಳಸಲು, 3 ಬೆರಳುಗಳನ್ನು ಬಳಸಿ ಸ್ಕ್ರೀನ್ ಕೆಳಭಾಗದಿಂದ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ.\n\nವೈಶಿಷ್ಟ್ಯಗಳ ನಡುವೆ ಬದಲಿಸಲು, 3 ಬೆರಳುಗಳನ್ನು ಬಳಸಿ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ ಮತ್ತು ಹೋಲ್ಡ್‌ ಮಾಡಿ."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ ಫೀಚರ್ ಬಳಸಲು, 2 ಬೆರಳುಗಳನ್ನು ಬಳಸಿ ಸ್ಕ್ರೀನ್ ಕೆಳಭಾಗದಿಂದ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ.\n\nವೈಶಿಷ್ಟ್ಯಗಳ ನಡುವೆ ಬದಲಿಸಲು, 2 ಬೆರಳುಗಳನ್ನು ಬಳಸಿ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ ಮತ್ತು ಹೋಲ್ಡ್‌ ಮಾಡಿ."</string>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"ವಾಲ್ಯೂಮ್ ಕೀಗಳನ್ನು ಹಿಡಿದುಕೊಳ್ಳಿ"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"ವಾಲ್ಯೂಮ್ ಕೀಗಳನ್ನು ಹಿಡಿದುಕೊಳ್ಳಿ"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"ಎರಡೂ ವಾಲ್ಯೂಮ್ ಕೀಗಳನ್ನು ಒತ್ತಿ ಹಿಡಿದುಕೊಳ್ಳಿ"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"ಎರಡು-ಬೆರಳಿನಿಂದ ಸ್ಕ್ರೀನ್ ಅನ್ನು ಟ್ರಿಪಲ್ ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"ಎರಡು-ಬೆರಳಿನಿಂದ ಸ್ಕ್ರೀನ್ ಅನ್ನು ಟ್ರಿಪಲ್ ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"ಎರಡು ಬೆರಳುಗಳಿಂದ ಸ್ಕ್ರೀನ್ ಅನ್ನು {0,number,integer} ಬಾರಿ ತ್ವರಿತವಾಗಿ ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"ಸ್ಕ್ರೀನ್ ಮೇಲೆ ಮೂರು ಬಾರಿ ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"ಸ್ಕ್ರೀನ್ ಮೇಲೆ ಮೂರು ಬಾರಿ ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"ಸ್ಕ್ರೀನ್‌ನ ಮೇಲೆ {0,number,integer} ಸಲ ತ್ವರಿತವಾಗಿ ಟ್ಯಾಪ್ ಮಾಡಿ. ಈ ಶಾರ್ಟ್‌ಕಟ್, ನಿಮ್ಮ ಸಾಧನವನ್ನು ನಿಧಾನಗೊಳಿಸಬಹುದು"</string>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"ವೈಬ್ರೇಷನ್ ಮತ್ತು ಹ್ಯಾಪ್ಟಿಕ್ಸ್ ಬಳಸಿ"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"ಅಲಾರಾಂ ವೈಬ್ರೇಷನ್"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"ಮಾಧ್ಯಮ ವೈಬ್ರೇಷನ್"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"ಕೀಬೋರ್ಡ್ ವೈಬ್ರೇಷನ್"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"ರಿಂಗ್‌ನೊಂದಿಗೆ ವೈಬ್ರೇಷನ್"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"ಅಧಿಸೂಚನೆಯ ವೈಬ್ರೇಷನ್"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"ಸ್ಪರ್ಶ ಪ್ರತಿಕ್ರಿಯೆ"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> ಉಳಿದಿದೆ"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"ಚಾರ್ಜ್‌ ಮಾಡಲು <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g>"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"ವೀಕ್ಷಣಾ ಅವಧಿ"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"ಹಿನ್ನೆಲೆ ಸಮಯ"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"ಬ್ಯಾಟರಿ ಕಡಿಮೆಯಿದೆ"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"ಹಿನ್ನೆಲೆಯಲ್ಲಿ ರನ್ ಆಗಲು ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಅನುಮತಿ ನೀಡಿ"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"ಹಿನ್ನೆಲೆ ಚಟುವಟಿಕೆಯನ್ನು ಸೀಮಿತಗೊಳಿಸುವುದೇ?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"ಒಂದು ಅಪ್ಲಿಕೇಶನ್‌ನ ಹಿನ್ನೆಲೆ ಚಟುವಟಿಕೆಯನ್ನು ನೀವು ಸೀಮಿತಗೊಳಿಸಿದರೆ, ಅದು ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸದಿರಬಹುದು"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"ಬ್ಯಾಟರಿ ಅನ್ನು ಆಪ್ಟಿಮೈಜ್ ಮಾಡಲು ಈ ಅಪ್ಲಿಕೇಶನ್ ಹೊಂದಿಸದ ಕಾರಣ, ನೀವು ಇದನ್ನು ನಿರ್ಬಂಧಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.\n\n ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ನಿರ್ಬಂಧಿಸಲು, ಮೊದಲು ಬ್ಯಾಟರಿ ಆಪ್ಟಿಮೈಸೇಷನ್ ಅನ್ನು ಆನ್ ಮಾಡಿ."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"ಬ್ಯಾಟರಿ ಬಳಕೆಯನ್ನು ನಿರ್ವಹಿಸಿ"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"ಹಿನ್ನೆಲೆ ಬಳಕೆಯನ್ನು ಅನುಮತಿಸಿ"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"ನೈಜ-ಸಮಯದ ಅಪ್‌ಡೇಟ್‌ಗಳಿಗಾಗಿ ಸಕ್ರಿಯಗೊಳಿಸಿ, ಬ್ಯಾಟರಿ ಸೇವ್ ಮಾಡಲು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"ಮಿತಿ ಇಲ್ಲದ್ದು"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"ಆಪ್ಟಿಮೈಸ್ ಮಾಡಲಾಗಿದೆ‌"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"ಕೊನೆಯ ಪೂರ್ಣ ಚಾರ್ಜ್ ನಂತರ"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"ಸಿಸ್ಟಂ ಆ್ಯಪ್‌ಗಳು"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"ಅನ್‌ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿದ ಆ್ಯಪ್‍ಗಳು"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"ಇತರೆ"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"ಅಂದಾಜಿಸಿದ ಸಮಯ ಮುಗಿದಿದೆ"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"ಸಂಪೂರ್ಣ ಚಾರ್ಜ್ ಆಗಲು"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"ಒಟ್ಟು: ಒಂದು ನಿಮಿಷಕ್ಕಿಂತ ಕಡಿಮೆ"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"ಹಿನ್ನೆಲೆ: ಒಂದು ನಿಮಿಷಕ್ಕಿಂತ ಕಡಿಮೆ"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"ವೀಕ್ಷಣಾ ಅವಧಿ: ಒಂದು ನಿಮಿಷಕ್ಕೂ ಕಡಿಮೆ ಸಮಯ"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"ಒಂದು ನಿಮಿಷಕ್ಕಿಂತಲೂ ಕಡಿಮೆ"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"ಒಟ್ಟು: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"ಹಿನ್ನೆಲೆ: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"ವೀಕ್ಷಣಾ ಅವಧಿ: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"ಮೊಬೈಲ್ ಡೇಟಾ ಮತ್ತು ವೈ-ಫೈ"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"ವೈಯಕ್ತಿಕ ಡೇಟಾ ಸ್ವಯಂ-ಸಿಂಕ್ ಮಾಡಿ"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"ಸ್ವಯಂ-ಸಿಂಕ್ ಕೆಲಸದ ಡೇಟಾ"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"ಖಾಸಗಿ ಡೇಟಾ ಸ್ವಯಂ ಸಿಂಕ್ ಮಾಡಿ"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"ಆವರ್ತನವನ್ನು ಬದಲಾಯಿಸು…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"ಡೇಟಾ ಬಳಕೆ ಆವರ್ತನೆಯನ್ನು ಮರುಹೊಂದಿಸಲು ತಿಂಗಳ ದಿನಾಂಕ:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"ಈ ಅವಧಿಯಲ್ಲಿ ಯಾವುದೇ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಡೇಟಾವನ್ನು ಬಳಸಿಕೊಂಡಿಲ್ಲ."</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"ಪಠ್ಯ ಗಾತ್ರ, ದೊಡ್ಡ ಪ್ರಿಂಟ್, ದೊಡ್ಡ ಫಾಂಟ್, ದೊಡ್ಡ ಪಠ್ಯ, ಕಡಿಮೆ ವಿಷನ್‌, ಪಠ್ಯವನ್ನು ದೊಡ್ಡದಾಗಿಸಿ, ಫಾಂಟ್ ಹಿಗ್ಗಿಸುವಿಕೆ, ಫಾಂಟ್ ಹಿಗ್ಗುವಿಕೆ"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"ಯಾವಾಗಲೂ ಆನ್ ಇರುವ ಆ್ಯಂಬಿಯೆಂಟ್ ಡಿಸ್‌ಪ್ಲೇ, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"NFC, ಟ್ಯಾಗ್, ರೀಡರ್"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"ಕೀಬೋರ್ಡ್, ಹ್ಯಾಪ್ಟಿಕ್ಸ್, ವೈಬ್ರೇಟ್,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"ವಾಲ್ಯೂಮ್, ವೈಬ್ರೇಶನ್‌, ಅಡಚಣೆ ಮಾಡಬೇಡಿ"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"ಮಾಧ್ಯಮ ವಾಲ್ಯೂಮ್"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"ವಾಲ್ಯೂಮ್ ಕ್ಯಾಸ್ಟ್ ಮಾಡಿ"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"ಎಲ್ಲಾ ನೋಟಿಫಿಕೇಶನ್‍ ಕಂಟೆಂಟ್ ತೋರಿಸಿ"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"ಅನ್‌ಲಾಕ್ ಮಾಡಿದ ನಂತರ ಮಾತ್ರ ಸೂಕ್ಷ್ಮ ಕಂಟೆಂಟ್‌ ತೋರಿಸಿ"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"ನೋಟಿಫಿಕೇಶನ್‌ಗಳನ್ನು ತೋರಿಸಲೇಬೇಡಿ"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"ಲಾಕ್‌ ಸ್ಕ್ರೀನ್ ಹೇಗೆ ಪ್ರದರ್ಶನವಾಗಬೇಕು ಎಂದು ನೀವು ಬಯಸುತ್ತೀರಿ?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"ಲಾಕ್ ಸ್ಕ್ರೀನ್"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"ಎಲ್ಲಾ ಉದ್ಯೋಗದ ನೋಟಿಫಿಕೇಶನ್ ಕಂಟೆಂಟ್ ತೋರಿಸಿ"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"ಸೂಕ್ಷ್ಮ ಕೆಲಸದ ಕಂಟೆಂಟ್‍ ಅನ್ನು ಮರೆಮಾಡಿ"</string>
@@ -3354,6 +3448,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"ವರ್ಧಿತ ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಈ ಆ್ಯಪ್ ಬೆಂಬಲಿಸುವುದಿಲ್ಲ"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"ಇನ್ನಷ್ಟು ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"ಇನ್ನಷ್ಟು ಸೆಟ್ಟಿಂಗ್‌ಗಳು ಈ ಆ್ಯಪ್‌ನ ಒಳಗೆ ಲಭ್ಯವಿವೆ"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"ನೋಟಿಫಿಕೇಶನ್ ಕೂಲ್‌ಡೌನ್"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"ಎಲ್ಲಾ ನೋಟಿಫಿಕೇಶನ್‌ಗಳಿಗೆ ಕೂಲ್‌ಡೌನ್ ಅನ್ನು ಅನ್ವಯಿಸಿ"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"ಒಂದೇ ಆ್ಯಪ್‌ನಿಂದ ನೀವು ಹಲವಾರು ನೋಟಿಫಿಕೇಶನ್‌ಗಳನ್ನು ನಿರಂತರವಾಗಿ ಸ್ವೀಕರಿಸುತ್ತಿರುವ ಸಮಯದಲ್ಲಿ, ಕ್ರಮೇಣವಾಗಿ ನೋಟಿಫಿಕೇಶನ್ ವಾಲ್ಯೂಮ್ ಅನ್ನು ಕಡಿಮೆ ಮಾಡಿ"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"ಸಂಭಾಷಣೆಗಳಿಗೆ ಕೂಲ್‌ಡೌನ್ ಅನ್ನು ಅನ್ವಯಿಸಿ"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"ಕಡಿಮೆ ಅವಧಿಯಲ್ಲಿ ಒಂದೇ ಚಾಟ್‌ನಿಂದ ನೀವು ಹಲವಾರು ಸಂದೇಶಗಳನ್ನು ಸ್ವೀಕರಿಸುತ್ತಿರುವ ಸಮಯದಲ್ಲಿ, ಕ್ರಮೇಣವಾಗಿ ನೋಟಿಫಿಕೇಶನ್ ವಾಲ್ಯೂಮ್ ಅನ್ನು ಕಡಿಮೆ ಮಾಡಿ"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"ನೋಟಿಫಿಕೇಶನ್ ಕೂಲ್‌ಡೌನ್ ಅನ್ನು ಬಳಸಬೇಡಿ"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"ಒಂದೇ ಆ್ಯಪ್‌ನಿಂದ ನೋಟಿಫಿಕೇಶನ್‌ಗಳನ್ನು ಸತತವಾಗಿ ಸ್ವೀಕರಿಸುತ್ತಿದ್ದರೂ, ಎಂದಿಗೂ ನೋಟಿಫಿಕೇಶನ್ ವಾಲ್ಯೂಮ್ ಅನ್ನು ಕಡಿಮೆ ಮಾಡಬೇಡಿ"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"ಅನ್‌ಲಾಕ್ ಮಾಡಿದಾಗ ವೈಬ್ರೇಟ್ ಆಗುತ್ತದೆ"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"ಸ್ಕ್ರೀನ್ ಅನ್‌ಲಾಕ್ ಆಗಿರುವಾಗ ಮಾತ್ರ ವೈಬ್ರೇಟ್ ಆಗುತ್ತದೆ"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"ಉದ್ಯೋಗದ ಪ್ರೊಫೈಲ್‌ಗಳಿಗೆ ಅನ್ವಯಿಸಿ"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"ನಿಮ್ಮ ವೈಯಕ್ತಿಕ ಪ್ರೊಫೈಲ್‌ನಿಂದ ನಿಮ್ಮ ಉದ್ಯೋಗದ ಪ್ರೊಫೈಲ್‌ಗೆ ನೋಟಿಫಿಕೇಶನ್ ಕೂಲ್‌ಡೌನ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಅನ್ವಯಿಸಿ"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR ಸಹಾಯ ಸೇವೆಗಳು"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"ಯಾವುದೇ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿದ ಆ್ಯಪ್‌ಗಳು VR ಅಸಿಸ್ಟೆಂಟ್ ಸೇವೆಗಳ ರೀತಿಯಲ್ಲಿ ರನ್ ಮಾಡಲು ವಿನಂತಿಸಿಲ್ಲ."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"<xliff:g id="SERVICE">%1$s</xliff:g> ಗೆ VR ಸೇವೆ ಪ್ರವೇಶವನ್ನು ಅನುಮತಿಸುವುದೇ?"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"ಎಲ್ಲಾ ಫೈಲ್‌ ನಿರ್ವಹಿಸಲು, ಪ್ರವೇಶಕ್ಕೆ ಅನುಮತಿಸಿ"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"ಈ ಸಾಧನ ಅಥವಾ ಕನೆಕ್ಟ್ ಮಾಡಿದ ಶೇಖರಣಾ ವಾಲ್ಯೂಮ್‌ಗಳಲ್ಲಿ ಎಲ್ಲಾ ಫೈಲ್‌ಗಳನ್ನು ಓದಲು, ಮಾರ್ಪಡಿಸಲು ಮತ್ತು ಅಳಿಸಲು ಈ ಆ್ಯಪ್‌ಗೆ ಅನುಮತಿಸಿ. ಅನುಮತಿಸಿದರೆ, ಬಳಕೆದಾರರ ಪೂರ್ವಾನುಮತಿ ಇಲ್ಲದೆ ಆ್ಯಪ್‌ಗಳು ಫೈಲ್‌ಗಳನ್ನು ಪ್ರವೇಶಿಸಬಹುದು."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"ಎಲ್ಲಾ ಫೈಲ್‌ಗಳನ್ನು ಪ್ರವೇಶಿಸಬಹುದು"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"ಧ್ವನಿ ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆ ಆ್ಯಪ್‌ಗಳು"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"ಧ್ವನಿ ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆಯನ್ನು ಅನುಮತಿಸಿ"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"ಧ್ವನಿ ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆಯು ಧ್ವನಿ ಆಜ್ಞೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಅನುಮೋದಿತ ಆ್ಯಪ್‌ಗಳು ಮತ್ತು ಹ್ಯಾಂಡ್ಸ್-ಫ್ರೀ ಅನ್ನು ಆನ್ ಮಾಡುತ್ತದೆ. ಅಂತರ್ನಿರ್ಮಿತ ಅಡಾಪ್ಟಿವ್ ಸೆನ್ಸಿಂಗ್ ಡೇಟಾ ನಿಮಗೆ ಮಾತ್ರ ಖಾಸಗಿಯಾಗಿರುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ.\n\n"<a href="">"ಸಂರಕ್ಷಿತ ಅಡಾಪ್ಟಿವ್ ಸೆನ್ಸಿಂಗ್ ಕುರಿತು ಇನ್ನಷ್ಟು"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"ಫುಲ್ ಸ್ಕ್ರೀನ್ ನೋಟಿಫಿಕೇಶನ್‌ಗಳು"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"ಈ ಆ್ಯಪ್‌ನಿಂದ ಫುಲ್ ಸ್ಕ್ರೀನ್ ನೋಟಿಫಿಕೇಶನ್‌ಗಳನ್ನು ಅನುಮತಿಸಿ"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"ಸಾಧನ ಲಾಕ್ ಆಗಿರುವಾಗ ಫುಲ್ ಸ್ಕ್ರೀನ್ ಅನ್ನು ಆವರಿಸಿಕೊಳ್ಳುವ ನೋಟಿಫಿಕೇಶನ್‌ಗಳನ್ನು ತೋರಿಸಲು ಈ ಆ್ಯಪ್‌ಗೆ ಅನುಮತಿಸಿ. ಅಲಾರಾಂಗಳು, ಒಳಬರುವ ಕರೆಗಳು ಅಥವಾ ಇತರ ತುರ್ತಿನ ನೋಟಿಫಿಕೇಶನ್‌ಗಳನ್ನು ಹೈಲೈಟ್ ಮಾಡಲು ಆ್ಯಪ್‌ಗಳು ಇವುಗಳನ್ನು ಬಳಸಬಹುದು."</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ಹಿನ್ನೆಲೆಯಲ್ಲಿ ಇರುವಾಗ ಸಾಮಾನ್ಯಕ್ಕಿಂತ ಹೆಚ್ಚು ಬ್ಯಾಟರಿಯನ್ನು ಬಳಸಲಾಗಿದೆ"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"ಮುನ್ನೆಲೆಯಲ್ಲಿರುವಾಗ <xliff:g id="APP_LABEL">%1$s</xliff:g> ನಿಂದ ಹೆಚ್ಚು ಬ್ಯಾಟರಿಯನ್ನು ಬಳಸಲಾಗಿದೆ"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ಮುನ್ನೆಲೆಯಲ್ಲಿ ಇರುವಾಗ ಸಾಮಾನ್ಯಕ್ಕಿಂತ ಹೆಚ್ಚು ಬ್ಯಾಟರಿಯನ್ನು ಬಳಸಲಾಗಿದೆ"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"ಹೆಚ್ಚು ಬ್ಯಾಟರಿ ಬಳಕೆ"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"ಹಿನ್ನೆಲೆಯಲ್ಲಿ ಹೆಚ್ಚಿನ ಬ್ಯಾಟರಿ ಬಳಕೆ"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"ಮುನ್ನೆಲೆಯಲ್ಲಿ ಹೆಚ್ಚಿನ ಬ್ಯಾಟರಿ ಬಳಕೆ"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"ಸಿಸ್ಟಂ ನ್ಯಾವಿಗೇಶನ್, 2 ಬಟನ್ ನ್ಯಾವಿಗೇಶನ್, 3 ಬಟನ್ ನ್ಯಾವಿಗೇಶನ್, ಗೆಸ್ಚರ್ ನ್ಯಾವಿಗೇಶನ್, ಸ್ವೈಪ್"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"ಡಿಜಿಟಲ್ ಅಸಿಸ್ಟೆಂಟ್"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"ಅಸಿಸ್ಟೆಂಟ್ ಅನ್ನು ಶುರು ಮಾಡಲು ಸ್ವೈಪ್ ಮಾಡಿ"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"ಡಿಜಿಟಲ್ ಅಸಿಸ್ಟೆಂಟ್ ಆ್ಯಪ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ಕೆಳಭಾಗದ ಮೂಲೆಯಿಂದ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ."</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"ಡಿಜಿಟಲ್ ಅಸಿಸ್ಟೆಂಟ್ ಆ್ಯಪ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ಕೆಳಭಾಗದ ಮೂಲೆಯಿಂದ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Assistant ಗಾಗಿ ಹೋಮ್ ಅನ್ನು ಹಿಡಿದಿಟ್ಟುಕೊಳ್ಳಿ"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"ಡಿಜಿಟಲ್ ಅಸಿಸ್ಟೆಂಟ್ ಆ್ಯಪ್ ಅನ್ನು ಶುರು ಮಾಡಲು ಹೋಮ್ ಬಟನ್ ಅನ್ನು ಒತ್ತಿ ಹಿಡಿದುಕೊಳ್ಳಿ."</string>
     <string name="low_label" msgid="6525629096999711220">"ಕಡಿಮೆ"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"ಡೇಟಾ, ಪಾಸ್‌ಕೀ, ಪಾಸ್‌ವರ್ಡ್"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"ಆಟೋ, ಫಿಲ್, ಆಟೋಫಿಲ್, ಡೇಟಾ, ಪಾಸ್‌ಕೀ, ಪಾಸ್‌ವರ್ಡ್"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;ನಿಮಗೆ ಈ ಅಪ್ಲಿಕೇಶನ್ ಮೇಲೆ ವಿಶ್ವಾಸವಿರುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ &lt;/b&gt; &lt;br/&gt; &lt;br/&gt; ಯಾವ ಕ್ಷೇತ್ರಗಳನ್ನು ಸ್ವಯಂ-ಭರ್ತಿ ಮಾಡಬಹುದು ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಲು &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; ನಿಮ್ಮ ಸ್ಕ್ರೀನ್‍ನಲ್ಲಿನ ಮಾಹಿತಿಯನ್ನು ಬಳಸಿಕೊಳ್ಳುತ್ತದೆ."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&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_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Use &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_picker_title" msgid="8191267620665129205">"ಪಾಸ್‌ವರ್ಡ್‌ಗಳು, ಪಾಸ್‌ಕೀಗಳು ಮತ್ತು ಡೇಟಾ ಸೇವೆಗಳು"</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>
@@ -4784,11 +4894,9 @@
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{# ತಿಂಗಳ ಹಿಂದೆ ಆ್ಯಪ್‌ಗಳನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲಾಗಿದೆ}one{# ತಿಂಗಳುಗಳ ಹಿಂದೆ ಆ್ಯಪ್‌ಗಳನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲಾಗಿದೆ}other{# ತಿಂಗಳುಗಳ ಹಿಂದೆ ಆ್ಯಪ್‌ಗಳನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲಾಗಿದೆ}}"</string>
     <string name="aspect_ratio_title" msgid="2451826875939676101">"ದೃಶ್ಯಾನುಪಾತ"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"ಈ ಆ್ಯಪ್ ಅನ್ನು ನಿಮ್ಮ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ಗೆ ಸರಿಹೊಂದುವಂತೆ ವಿನ್ಯಾಸಗೊಳಿಸಿರದಿದ್ದರೆ ಇದನ್ನು ವೀಕ್ಷಿಸಲು ಹೊಸ ದೃಶ್ಯಾನುಪಾತವೊಂದನ್ನು ಪ್ರಯತ್ನಿಸಿ"</string>
-    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"ಈ ಆ್ಯಪ್ ಅನ್ನು ನಿಮ್ಮ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ಗೆ ಸರಿಹೊಂದುವಂತೆ ವಿನ್ಯಾಸಗೊಳಿಸಿರದಿದ್ದರೆ ಇದನ್ನು ವೀಕ್ಷಿಸಲು ಹೊಸ ದೃಶ್ಯಾನುಪಾತವೊಂದನ್ನು ಪ್ರಯತ್ನಿಸಿ. ಕೆಲವು ಆ್ಯಪ್‌ಗಳನ್ನು ನಿರ್ದಿಷ್ಟ ದೃಶ್ಯಾನುಪಾತಗಳಿಗಾಗಿ ಆಪ್ಟಿಮೈಸ್ ಮಾಡದೇ ಇರಬಹುದು."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"ಈ ಆ್ಯಪ್ ಅನ್ನು ನಿಮ್ಮ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ಗೆ ಸರಿಹೊಂದುವಂತೆ ವಿನ್ಯಾಸಗೊಳಿಸಿರದಿದ್ದರೆ ಇದನ್ನು ವೀಕ್ಷಿಸಲು ಹೊಸ ದೃಶ್ಯಾನುಪಾತವೊಂದನ್ನು ಪ್ರಯತ್ನಿಸಿ. ಕೆಲವು ಆ್ಯಪ್‌ಗಳನ್ನು ನಿರ್ದಿಷ್ಟ ದೃಶ್ಯಾನುಪಾತಗಳಿಗಾಗಿ ಆಪ್ಟಿಮೈಸ್ ಮಾಡಿಲ್ಲದಿರಬಹುದು."</string>
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"ಈ ಆ್ಯಪ್ ಅನ್ನು ನಿಮ್ಮ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ಗೆ ಸರಿಹೊಂದುವಂತೆ ವಿನ್ಯಾಸಗೊಳಿಸಿರದಿದ್ದರೆ ಇದನ್ನು ವೀಕ್ಷಿಸಲು ಹೊಸ ದೃಶ್ಯಾನುಪಾತವೊಂದನ್ನು ಪ್ರಯತ್ನಿಸಿ"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"ಈ ಆ್ಯಪ್ ಅನ್ನು ನಿಮ್ಮ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ಗೆ ಸರಿಹೊಂದುವಂತೆ ವಿನ್ಯಾಸಗೊಳಿಸಿರದಿದ್ದರೆ ಇದನ್ನು ವೀಕ್ಷಿಸಲು ಹೊಸ ದೃಶ್ಯಾನುಪಾತವೊಂದನ್ನು ಪ್ರಯತ್ನಿಸಿ. ಕೆಲವು ಆ್ಯಪ್‌ಗಳನ್ನು ನಿರ್ದಿಷ್ಟ ದೃಶ್ಯಾನುಪಾತಗಳಿಗಾಗಿ ಆಪ್ಟಿಮೈಸ್ ಮಾಡದೇ ಇರಬಹುದು."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"ಸೂಚಿಸಿರುವ ಆ್ಯಪ್‌ಗಳು"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"ಬದಲಿಸಲಾದ ಆ್ಯಪ್"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"ಆ್ಯಪ್ ಡೀಫಾಲ್ಟ್"</string>
@@ -4799,7 +4907,7 @@
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
     <string name="user_aspect_ratio_option_a11y" msgid="1235801996029095219">"<xliff:g id="NUMERATOR">%1$s</xliff:g> ಬೈ <xliff:g id="DENOMINATOR">%2$s</xliff:g>"</string>
-    <string name="app_aspect_ratio_footer" msgid="4029509301182067475">"ನೀವು ದೃಶ್ಯಾನುಪಾತವನ್ನು ಬದಲಾಯಿಸಿದಾಗ ಆ್ಯಪ್ ಮರುಪ್ರಾರಂಭವಾಗುತ್ತದೆ. ಸೇವ್ ಮಾಡದಿರುವ ಬದಲಾವಣೆಗಳನ್ನು ನೀವು ಕಳೆದುಕೊಳ್ಳಬಹುದು. ಕೆಲವು ಆ್ಯಪ್‌ಗಳನ್ನು ನಿರ್ದಿಷ್ಟ ದೃಶ್ಯಾನುಪಾತಗಳಿಗಾಗಿ ಆಪ್ಟಿಮೈಸ್ ಮಾಡದೇ ಇರಬಹುದು."</string>
+    <string name="app_aspect_ratio_footer" msgid="4029509301182067475">"ನೀವು ದೃಶ್ಯಾನುಪಾತವನ್ನು ಬದಲಾಯಿಸಿದಾಗ ಆ್ಯಪ್ ಮರುಪ್ರಾರಂಭವಾಗುತ್ತದೆ. ಸೇವ್ ಮಾಡದಿರುವ ಬದಲಾವಣೆಗಳನ್ನು ನೀವು ಕಳೆದುಕೊಳ್ಳಬಹುದು. ಕೆಲವು ಆ್ಯಪ್‌ಗಳನ್ನು ನಿರ್ದಿಷ್ಟ ದೃಶ್ಯಾನುಪಾತಗಳಿಗಾಗಿ ಆಪ್ಟಿಮೈಸ್ ಮಾಡಿಲ್ಲದಿರಬಹುದು."</string>
     <string name="aspect_ratio_experimental_title" msgid="9088785421062044831">"ದೃಶ್ಯಾನುಪಾತ (ಪ್ರಾಯೋಗಿಕ)"</string>
     <string name="aspect_ratio_experiment_title" msgid="128614319422121040">"ದೃಶ್ಯಾನುಪಾತ (ಪ್ರಯೋಗ)"</string>
     <string name="aspect_ratio_labs_title" msgid="6733893837442759383">"ದೃಶ್ಯಾನುಪಾತ (ಲ್ಯಾಬ್ಸ್)"</string>
@@ -4858,4 +4966,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"ಮೋಸಗೊಳಿಸುವ ಆ್ಯಪ್‌ಗಳಿಗಾಗಿ ಸ್ಕ್ಯಾನ್ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"ಫಿಶಿಂಗ್‌ಗಾಗಿ ಆ್ಯಪ್‌ನ ಚಟುವಟಿಕೆಯನ್ನು ಪರಿಶೀಲಿಸಿ"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"ಮೋಸಗೊಳಿಸುವ ಆ್ಯಪ್‌ಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು ಸ್ಕ್ಯಾನಿಂಗ್ ಬಳಸಿ"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"ಕೆಲಸದ ಸ್ಥಳದಲ್ಲಿ ಮೋಸಗೊಳಿಸುವ ಆ್ಯಪ್‌ಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು ಸ್ಕ್ಯಾನಿಂಗ್ ಬಳಸಿ"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-ko/arrays.xml b/res/values-ko/arrays.xml
index e8bd555..c1c4719 100644
--- a/res/values-ko/arrays.xml
+++ b/res/values-ko/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"1분 후"</item>
     <item msgid="1574040255478150028">"5분 후"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index a23b595..cc1118e 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"블루투스 LE 오디오 사용 중지"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"기기가 LE 오디오 하드웨어 기능을 지원하는 경우 블루투스 LE 오디오 기능을 사용 중지합니다."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"기기 세부정보에 LE 오디오 전환 버튼 표시"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"블루투스 LE 오디오 허용 목록 사용 설정"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"블루투스 LE 오디오 허용 목록 기능을 사용 설정합니다."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"블루투스 LE 오디오 허용 목록 우회"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"LE 오디오 주변기기가 허용 목록 기준을 충족하는 것으로 확인되지 않은 경우에도 기본적으로 LE 오디오를 사용합니다."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"미디어 기기"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"통화 기기"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"다른 기기"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"저장된 기기"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"계정과 연결됨"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"이전에 계정에 연결하여 사용한 기기"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"페어링을 위해 블루투스가 켜집니다"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"연결 환경설정"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"이전에 연결됨"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"텍스트 입력란에 작성"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"스타일러스 버튼 누름 모두 무시"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"스타일러스"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"오디오 공유"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"오디오 공유"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"통화 및 알람"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"날짜 및 시간"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"프록시"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"지우기"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"로드 중…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"근처 기기 액세스 권한이 있는 앱은 연결된 기기 간의 상대적인 위치를 파악할 수 있습니다."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"앱 및 서비스에 대한 위치 정보 액세스가 사용 중지되어 있습니다. 그래도 긴급 전화번호로 전화를 걸거나 문자 메시지를 보내면 기기의 위치 정보가 긴급 구조원에게 전달될 수 있습니다."</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"위치 설정에 대해 자세히 알아보기"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"계정"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"보안"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"암호화 및 사용자 인증 정보"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"직장 프로필"</string>
     <string name="private_space_title" msgid="7078627930195569767">"비공개 스페이스"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"비공개 폴더에 앱 숨기기"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"화면 잠금을 사용하여 잠금 해제"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"비공개 스페이스 표시"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"잠겨 있을 때 숨김"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"잠겨 있을 때 비공개 스페이스 숨기기"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"기기에 비공개 스페이스가 있다는 사실을 다른 사람이 알지 못하도록 앱 목록에서 숨길 수 있습니다."</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"숨겨져 있을 때 비공개 스페이스에 액세스"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"검색창에서 \'비공개 스페이스\'를 검색합니다."</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"비공개 스페이스 타일 탭"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"비공개 스페이스 잠금 해제"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"사용 안함"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"사용"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"시스템"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"비공개 스페이스 만들기"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"비공개 스페이스 삭제"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"비공개 스페이스가 생성됨"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"비공개 스페이스가 이미 존재합니다"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"비공개 스페이스를 만들 수 없음"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"비공개 스페이스가 삭제됨"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"비공개 스페이스를 삭제할 수 없음"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"화면 잠금 설정"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"비공개 스페이스를 사용하려면 이 기기에 화면 잠금을 설정하세요."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"화면 잠금 설정"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"취소"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"취소"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"설정"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"비공개 스페이스 설정"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"나만 액세스할 수 있는 안전한 스페이스에 비공개 앱을 숨깁니다."</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"작동 방식"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"앱 목록 하단에서 비공개 스페이스에 액세스할 수 있습니다."</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"잠금을 통해 비공개 스페이스의 앱이 보호됩니다."</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"잠겨 있을 때 비공개 스페이스의 앱에서 보내는 알림은 표시되지 않습니다."</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"비공개 스페이스가 잠겨 있을 때 비공개 스페이스 앱은 권한 관리자, 개인 정보 대시보드, 기타 설정에 표시되지 않습니다."</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"비공개 스페이스 설정 중…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"비공개 스페이스는 잠금 기능으로 보호됨"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"잠긴 경우 비공개 스페이스 앱의 사용 정보가 숨겨짐"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"앱 목록에서 비공개 스페이스에 액세스"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"비공개 스페이스를 설정할 수 없음"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"지금 다시 시도하거나 나중에 다시 시도하세요."</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"다시 시도"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"화면 잠금을 사용하여 잠금 해제하시겠습니까?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"기기를 잠금 해제하는 방식과 동일하게 비공개 스페이스를 잠금 해제하거나 다른 잠금 방식을 선택할 수 있습니다."</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"화면 잠금 사용"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"새 잠금 방식 선택"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"처리가 완료되었습니다"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"비공개 스페이스에 액세스하려면 홈 화면 하단에서 위로 스와이프한 후 아래로 스크롤합니다."</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"완료"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"비공개 스페이스에 액세스하려면 아래로 스크롤하세요."</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"비공개 스페이스를 설정하려면 로그인하세요"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"지문을 <xliff:g id="COUNT">%d</xliff:g>개까지 추가할 수 있습니다."</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"최대 개수의 지문을 추가했습니다."</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"지문을 추가할 수 없습니다."</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"연결"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"연결 끊기"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"페어링 및 연결"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"기기에서 블루투스가 켜져 있으면 주변의 다른 블루투스 기기와 통신할 수 있습니다."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"블루투스가 켜져 있으면 기기가 근처의 다른 블루투스 기기와 통신할 수 있습니다.\n\n기기 사용 환경을 개선하기 위해 블루투스가 꺼져 있을 때도 앱 및 서비스에서 언제든지 근처에 기기가 있는지 검색할 수 있습니다. 예를 들면 위치 기반 기능 및 서비스를 개선하는 데 이 기능이 사용되기도 합니다. 설정을 변경하려면 블루투스 검색 설정으로 이동하세요."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"변경"</string>
     <string name="device_details_title" msgid="1155622417516195481">"기기 세부정보"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"ART가 디버깅 가능한 앱의 바이트코드를 확인하도록 허용"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"새로고침 빈도 보기"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"현재 화면 새로고침 빈도 보기"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"HDR/SDR 비율 표시"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"현재 HDR/SDR 비율 표시"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"NFC 사용 시 기기 잠금 해제 필요"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"접은 상태에서 앱 계속 사용"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"스무스 디스플레이"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"일부 콘텐츠의 화면 재생 빈도를 자동으로 60Hz에서 <xliff:g id="ID_1">%1$s</xliff:g>Hz로 늘립니다. 배터리 사용량이 증가합니다."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"일부 콘텐츠의 화면 재생 빈도를 자동으로 최대 <xliff:g id="ID_1">%1$d</xliff:g>Hz까지 늘립니다. 배터리 사용량이 증가합니다."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"가장 높은 새로고침 빈도 강제 적용"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"향상된 터치 반응 속도 및 애니메이션 품질에 맞는 가장 높은 새로고침 빈도입니다. 배터리 사용량이 증가합니다."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"화면 시선 감지"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"커뮤니티 설정"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"액세스 포인트 수정"</string>
+    <string name="apn_add" msgid="9069613192201630934">"액세스 포인트 추가"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"설정되지 않음"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"설정되지 않음"</string>
     <string name="apn_name" msgid="6677695784108157953">"이름"</string>
@@ -1320,6 +1397,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN 사용"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN 사용 중지됨"</string>
     <string name="bearer" msgid="3231443241639159358">"베어러(Bearer)"</string>
+    <string name="network_type" msgid="748590707422733595">"네트워크 유형"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"명시되지 않음"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO 유형"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO 값"</string>
     <string name="menu_delete" msgid="9199740901584348273">"APN 삭제"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"접근성 버튼을 사용하여 열기"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"볼륨 키를 길게 눌러 열기"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"화면을 세 번 탭하여 열기"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"두 손가락으로 화면을 세 번 탭하여 열기"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"동작을 사용해 열기"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"접근성 동작 사용"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"이 기능을 사용하려면 화면 하단의 접근성 버튼 <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>을 탭하세요.\n\n기능 간에 전환하려면 접근성 버튼을 길게 터치하세요."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"이 기능을 사용하려면 화면에서 접근성 버튼을 탭하세요."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"이 기능을 사용하려면 볼륨 키 2개를 동시에 길게 누르세요."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"확대를 시작 및 중지하려면 화면의 아무 곳이나 세 번 탭하세요."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"확대를 시작 및 중지하려면 화면의 아무 곳이나 두 손가락으로 세 번 탭하세요."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"이 기능을 사용하려면 두 손가락을 사용하여 화면 하단에서 위로 스와이프하세요.\n\n기능 간에 전환하려면 두 손가락을 사용하여 위로 스와이프한 후 잠시 기다립니다."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"이 기능을 사용하려면 세 손가락을 사용하여 화면 하단에서 위로 스와이프하세요.\n\n기능 간에 전환하려면 세 손가락을 사용하여 위로 스와이프한 후 잠시 기다립니다."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"접근성 기능을 사용하려면 두 손가락을 사용하여 화면 하단에서 위로 스와이프하세요.\n\n기능 간에 전환하려면 두 손가락을 사용하여 위로 스와이프한 후 잠시 기다립니다."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"볼륨 키 길게 누르기"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"볼륨 키 길게 누르기"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"볼륨 키 2개를 길게 누릅니다."</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"두 손가락으로 화면 세 번 탭하기"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"두 손가락으로 화면 세 번 탭하기"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"두 손가락으로 화면을 {0, 숫자, 정수}번 빠르게 탭하세요."</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"세 번 탭하기"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"화면 세 번 탭하기"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"화면을 {0,number,integer}번 빠르게 탭합니다. 이 바로가기를 사용하면 기기가 느려질 수 있습니다."</string>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"진동 및 햅틱 사용"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"알람 진동"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"미디어 진동"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"키보드 진동"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"벨소리 진동"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"알림 진동"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"터치 반응"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> 남음"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> 후 완충"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"기기 사용 시간"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"백그라운드 시간"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"배터리 잔량 부족"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"앱이 백그라운드에서 실행되도록 허용"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"백그라운드 활동을 제한하시겠습니까?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"앱의 백그라운드 활동을 제한하면 앱이 정상적으로 작동하지 않을 수도 있습니다."</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"배터리 최적화를 설정하지 않아 이 앱을 제한할 수 없습니다.\n\n앱을 제한하려면 먼저 배터리 최적화를 사용 설정하세요."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"배터리 사용량 관리"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"백그라운드 사용 허용"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"실시간 업데이트를 받으려면 사용 설정, 배터리를 절약하려면 사용 중지"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"제한 없음"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"최적화"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"제한됨"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"마지막으로 완충한 이후"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"시스템 앱"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"앱을 제거했습니다."</string>
     <string name="battery_usage_others" msgid="311793281613609986">"기타"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"남은 예상 시간"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"충전 완료까지 남은 시간"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"총 시간: 1분 미만"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"백그라운드: 1분 미만"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"기기 사용 시간: 1분 미만"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"1분 미만"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"총 시간: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"백그라운드: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"기기 사용 시간: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"모바일 데이터 및 Wi-Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"개인 데이터 자동 동기화"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"직장 데이터 자동 동기화"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"비공개 데이터 자동 동기화"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"주기 변경..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"데이터 사용 주기를 재설정할 날짜:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"이 기간 동안 데이터를 사용한 앱이 없습니다."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"텍스트 크기, 큰 글자, 큰 글꼴, 큰 텍스트, 저시력, 텍스트 크게, 텍스트 확대, 글꼴 확대"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"화면 보호 모드 상시 사용 설정(AOD)"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, 태그, 리더"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"키보드, 햅틱, 진동"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"볼륨, 진동, 방해 금지 모드"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"미디어 볼륨"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"전송 볼륨"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"모든 알림 내용 표시"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"민감한 콘텐츠는 잠금이 해제되었을 때만 표시"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"알림 표시 안함"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"잠금 화면이 어떻게 표시되길 원하시나요?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"잠금 화면"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"모든 직장 알림 내용 표시"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"민감한 직장 콘텐츠 숨기기"</string>
@@ -3354,6 +3449,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"이 앱은 향상된 설정을 지원하지 않습니다."</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"기타 설정"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"앱 안에서 추가 설정을 볼 수 있음"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"알림 쿨다운"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"모든 알림에 쿨다운 적용"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"동일한 앱에서 알림을 연속적으로 많이 받는 경우 알림 볼륨을 서서히 낮춥니다."</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"대화에 쿨다운 적용"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"짧은 시간 동안 동일한 채팅에서 많은 메시지를 받는 경우 알림 볼륨을 서서히 낮춥니다."</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"알림 쿨다운 사용 안함"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"동일한 앱에서 알림을 연속적으로 많이 받더라도 알림 볼륨을 낮추지 않습니다."</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"잠금 해제 시 진동"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"화면이 잠금 해제되었을 때만 진동합니다."</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"직장 프로필에 적용"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"개인 프로필의 알림 쿨다운 설정을 직장 프로필에 적용합니다."</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR 도우미 서비스"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"설치된 앱 중에서 VR 도우미 서비스로 실행되도록 요청한 앱이 없습니다."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"VR 서비스가 <xliff:g id="SERVICE">%1$s</xliff:g>에 액세스하도록 허용하시겠습니까?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"모든 파일 관리 허용"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"앱이 이 기기 또는 연결된 모든 저장장치에 있는 파일을 모두 읽고 수정하고 삭제하도록 허용합니다. 권한을 부여하면 앱이 나에게 명시적으로 알리지 않고도 파일에 액세스할 수 있습니다."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"모든 파일에 액세스 가능"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"음성 활성화 앱"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"음성 활성화 허용"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"음성 활성화는 음성 명령을 통해 핸즈프리로 승인된 앱을 켭니다. 기본 제공되는 적응형 감지를 사용하면 데이터가 나에게만 공개됩니다.\n\n"<a href="">"보호되는 적응형 감지에 관해 알아보기"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"전체 화면 알림"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"이 앱에 전체 화면 알림 허용하기"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"기기가 잠겨 있을 때 앱에서 알림을 전체 화면에 표시할 수 있도록 허용합니다. 앱에서는 이러한 방식으로 알람, 수신 전화 또는 기타 긴급 알림을 강조 표시할 수 있습니다."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> 앱이 백그라운드에서 평소보다 더 많은 배터리를 사용함"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> 앱이 포그라운드에서 더 많은 배터리를 사용함"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> 앱이 포그라운드에서 평소보다 더 많은 배터리를 사용함"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"배터리 사용량 높음"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"백그라운드에서 배터리 사용량 높음"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"포그라운드에서 배터리 사용량 높음"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"시스템 탐색, 2버튼 탐색, 3버튼 탐색, 동작 탐색, 스와이프"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"디지털 어시스턴트"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"스와이프하여 어시스턴트 호출"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"하단 모서리에서 위로 스와이프하여 디지털 어시스턴트 앱을 호출합니다."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"어시스턴트를 사용하려면 홈 버튼 길게 누르기"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"디지털 어시스턴트 앱을 실행하려면 홈 버튼을 길게 누르세요."</string>
     <string name="low_label" msgid="6525629096999711220">"낮음"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"데이터, 패스키, 비밀번호"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"자동, 완성, 자동 완성, 데이터, 패스키, 비밀번호"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;신뢰할 수 있는 앱인지 확인하세요&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt;에서는 자동 완성할 수 있는 항목을 결정하기 위해 화면의 내용을 사용합니다."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&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_autofill_confirmation_message" msgid="843829628024668466">"&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_picker_title" msgid="8191267620665129205">"비밀번호, 패스키, 데이터 서비스"</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>
@@ -4785,10 +4897,8 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"가로세로 비율"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>에 맞지 않게 만들어졌다면 새로운 가로세로 비율로 이 앱을 표시해 보세요."</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>에 맞지 않게 만들어졌다면 새로운 가로세로 비율로 이 앱을 표시해 보세요. 일부 앱은 특정 가로세로 비율에 최적화되어 있지 않을 수 있습니다."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>에 맞지 않게 만들어졌다면 새로운 가로세로 비율로 앱을 표시해 보세요."</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>에 맞지 않게 만들어졌다면 새로운 가로세로 비율로 앱을 표시해 보세요. 일부 앱은 특정 가로세로 비율에 최적화되어 있지 않을 수 있습니다."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"추천 앱"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"변경된 앱"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"앱 기본값"</string>
@@ -4858,4 +4968,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"사기성 앱 검사"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"앱 활동에서 피싱 확인"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"사기성 앱 검사 사용"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"직장용 사기성 앱 검사 사용"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-ky/arrays.xml b/res/values-ky/arrays.xml
index 4b19f1d..de56208 100644
--- a/res/values-ky/arrays.xml
+++ b/res/values-ky/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"1 мүнөттөн кийин"</item>
     <item msgid="1574040255478150028">"5 мүнөттөн кийин"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 35f830f..264ce0d 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -43,9 +43,9 @@
     <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>
-    <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Түзмөгүңүздү бүктөгөнүңүздө алдыңкы экран күйгүзүлөт"</string>
+    <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Түзмөгүңүздү бүктөгөнүңүздө алдыңкы экран күйөт"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Оюндар, видеолор жана башкалар гана"</string>
-    <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Алдыңкы экран экраныңыздын иштебей калышын токтоткон колдонмолор үчүн күйгүзүлөт"</string>
+    <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Алдыңкы экран колдонулуп жаткан экранды күтүү режимине өткөрбөгөн колдонмолор үчүн күйөт"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Эч качан"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Түзмөгүңүздү бүктөгөнүңүздө алдыңкы экран кулпуланат"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Автоматтык түрдө бурулууну иштетүү"</string>
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Bluetooth LE audio\'ну өчүрүү"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Эгер түзмөктө аппараттык мүмкүнчүлүктөр болсо, Bluetooth LE Audio функциясы өчүрүлөт."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Түзмөктүн чоо-жайынан LE Audio которгучун көрсөтүү"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Bluetooth LE Audio Уруксат берилгендердин тизмесин иштетүү"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Bluetooth LE Audio Уруксат берилгендердин тизмеси функциясын иштетиңиз."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Bluetooth LE Audio ак тизмесин кыйгап өтүү"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"LE Audio тышкы түзмөгү ак тизменин талабына жооп берери ырасталбаса да, LE Audio\'ну демейки шартта колдонуңуз."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Медиа түзмөктөр"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Түзмөктөргө чалуу"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Башка түзмөктөр"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Сакталган түзмөктөр"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Аккаунт менен байланыштырылган"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Аккаунт менен буга чейин колдонулган"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth күйгүзүлөт"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Байланыш параметрлери"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Буга чейин туташкан түзмөктөр"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Текст жазылчу жерлерге кол менен жазуу"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Стилус баскычындагы басууларды этибарга албоо"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Стилус"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Аудиону бөлүшүү"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Аудиону бөлүшүү"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Чалуулар жана ойготкучтар"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Күн жана убакыт"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Прокси"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Тазалоо"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Жүктөлүүдө…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Жакын жердеги түзмөктөрдү көрө алган колдонмолор туташкан түзмөктөрдүн абалын аныкташы мүмкүн."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Колдонмолор менен кызматтар түзмөктүн жайгашкан жерин көрө алышпайт. Кырсыктаганда жардамга келчү кызматка чалып же билдирүү жөнөтүп жатканыңызда, ага түзмөгүңүздүн жайгашкан жери көрүнөт."</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Жайгашкан жерди аныктоо параметрлери жөнүндө кеңири маалымат"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Аккаунттар"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Коопсуздук"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Шифрлөө/каттоо маалыматы"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Жумуш профили"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Жеке чөйрө"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Купуя папкадагы колдонмолорду жашыруу"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Экрандын кулпусу менен ачуу"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Жеке чөйрөнү көрсөтүү"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Кулпуланган учурда жашыруу"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Жеке чөйрө кулпуланган учурда аны жашыруу"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Башкалар түзмөгүңүздө Жеке чөйрө орнотулганын билбеши үчүн, аны колдонмолордун тизмесинен жашырыңыз"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Жеке чөйрө жашырылганда аны көрүү"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Издөө тилкесинде \"Жеке чөйрө\" боюнча издей аласыз"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Жеке чөйрөнүн картасын басыңыз"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Жеке чөйрөнүн кулпусун ачыңыз"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Өчүк"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Күйүк"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Система"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Жеке чөйрө түзүү"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Жеке чөйрөнү өчүрүү"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Жеке чөйрө түзүлдү"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Жеке чөйрө бар"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Жеке чөйрө түзүлгөн жок"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Жеке чөйрө өчүрүлдү"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Жеке чөйрө өчүрүлгөн жок"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Экран кулпусун коюп алыңыз"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Жеке чөйрөнү колдонуу үчүн бул түзмөктө экран кулпусун коюңуз."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Экран кулпусун коюу"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Жокко чыгаруу"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Жокко чыгаруу"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Тууралоо"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Жеке чөйрөнү тууралоо"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Жеке колдонмолорду сиз гана көрө ала турган коопсуз жерде жашырыңыз"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Ал кантип иштейт"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Жеке чөйрөнү колдонмолордун тизмесинин ылдый жагынан көрө аласыз"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Жеке чөйрөдөгү колдонмолор кулпу менен корголот"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Жеке чөйрөдөгү колдонмолордун билдирмелери ал кулпуланганда жашырылат"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Жеке чөйрө кулпуланган учурда андагы колдонмолор уруксаттарда, купуялык тактасында жана башка параметрлерде көрүнбөйт"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Жеке чөйрө туураланууда…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Жеке чөйрө кулпу менен корголот"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Жеке чөйрө кулпуланганда, андагы колдонмолордун колдонулушу тууралуу маалымат жашырылат"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Колдонмолоруңуздун тизмесинен Жеке чөйрөнү ачыңыз"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Жеке чөйрө туураланган жок"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Азыр кайталап көрүңүз же кийинчерээк кайтып келиңиз"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Кайталоо"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Экран кулпусун колдоносузбу?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Жеке чөйрө үчүн түзмөгүңүздүн кулпусун ачуу ыкмасын колдонуп же башка кулпуну тандай аласыз"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Экран кулпусун колдонуу"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Жаңы кулпуну тандоо"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Дапдаяр!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Жеке чөйрөнү ачуу үчүн башкы экранды ылдыйдан өйдө карай сүрүп, баракты ылдый сыдырыңыз"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Бүттү"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Жеке чөйрөнү ачуу үчүн баракты ылдый сыдырыңыз"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Жеке чөйрөнү тууралоо үчүн аккаунтуңузга кириңиз"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"<xliff:g id="COUNT">%d</xliff:g> чейин манжа изин кошсоңуз болот"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Кошулган манжа издеринин саны жогорку чегине жетти"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Дагы манжа издерин кошуу мүмкүн эмес"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Туташуу"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Ажыратуу"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Байланыштыруу жана туташтыруу"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Bluetooth күйгүзүлгөндө түзмөгүңүз жакын арадагы башка Bluetooth түзмөктөрү менен байланыша алат."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Башка түзмөктөргө туташуу үчүн Bluetooth\'ду күйгүзүңүз.\n\nЖерлерди тагыраак аныктап, түзмөктүн иштешин жакшыртуу үчүн Bluetooth өчүп турганда да колдонмолор менен кызматтар жакын жердеги түзмөктөрдү издей беришет. Издебесин десеңиз, Bluetooth түзмөктөрүн издөө параметрин өчүрүп коюңуз."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Өзгөртүү"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Түзмөктүн чоо-жайы"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"ART\'га мүчүлүштүктөрдү аныктаган колдонмолордун байт кодун текшерүүгө уруксат берилет"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Жаңыруу жыштыгы"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Экрандын учурдагы жаңыруу жыштыгы көрүнөт"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"HDR/SDR катышын көрсөтүү"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Учурдагы HDR/SDR катышын көрсөтүү"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"NFC\'ни колдонуу үчүн түзмөктүн кулпусун ачуу керек"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1060,9 +1136,9 @@
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Өчүк"</string>
     <string name="display_white_balance_title" msgid="2624544323029364713">"Экрандын ак балансы"</string>
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
-    <string name="fold_lock_behavior_title" msgid="786228803694268449">"Түзмөк бүктөлгөндө колдонмолорду пайдалана бериңиз"</string>
+    <string name="fold_lock_behavior_title" msgid="786228803694268449">"Түзмөк бүктөлгөндө колдонмолорду пайдалана берүү"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Айрым нерселер үчүн экрандын жаңыруу жыштыгы 60 Герцтен <xliff:g id="ID_1">%1$s</xliff:g> Герцке чейин өзгөрөт. Батарея тез отуруп калышы мүмкүн"</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Айрым материалдар үчүн экрандын жаңыруу жыштыгы автоматтык түрдө <xliff:g id="ID_1">%1$d</xliff:g> Герцке көтөрүлөт. Батареяны көбүрөөк керектейт."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Экрандын жаңыруу жыштыгын жогорулатуу"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Сенсордун функциясын жана анимациянын сапатын жакшыртуу үчүн жаңыртуу ылдамдыгы жогорулатылды. Батареянын колдонулушун жогорулатат."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Ыңгайлашуучу көшүү режими"</string>
@@ -1192,7 +1268,7 @@
     <string name="baseband_version" msgid="2600182227599835857">"Радиомодуль версиясы"</string>
     <string name="kernel_version" msgid="3513538109381366881">"Өзөктүн версиясы"</string>
     <string name="build_number" msgid="9009733242117579826">"Курама номери"</string>
-    <string name="module_version" msgid="1787518340082046658">"Google Play тутуму качан жаңырган"</string>
+    <string name="module_version" msgid="1787518340082046658">"Google Play системасын жаңыртуу"</string>
     <string name="battery_info" msgid="7873528123969546728">"Батарея жөнүндө маалымат"</string>
     <string name="device_info_not_available" msgid="4804474466616712326">"Жеткиликтүү эмес"</string>
     <string name="storage_settings" msgid="7472188817781592677">"Сактагыч"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Жалпы параметрлер"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN\'дер"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Байланыш түйүнүн өзгөртүү"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Байланыш түйүнүн кошуу"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Коюлган эмес"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Коюлган эмес"</string>
     <string name="apn_name" msgid="6677695784108157953">"Аталышы"</string>
@@ -1320,6 +1397,8 @@
     <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="network_type" msgid="748590707422733595">"Тармактын түрү"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Көрсөтүлгөн эмес"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO түрү"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO көрсөткүчү"</string>
     <string name="menu_delete" msgid="9199740901584348273">"APN жок кылуу"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Атайын мүмкүнчүлүктөр баскычын басыңыз"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Ачуу үчүн үн баскычтарын коё бербей басып туруңуз"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Ачуу үчүн экранды үч жолу таптаңыз"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Ачуу үчүн экранды эки манжаңыз менен үч жолу таптаңыз"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Ачуу үчүн жаңсаңыз"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Атайын мүмкүнчүлүктөр жаңсоосун колдонуу"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Бул функцияны колдонуу үчүн экрандын ылдый жагындагы атайын мүмкүнчүлүктөр баскычын <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> таптап коюңуз.\n\nБашка функцияга өтүү үчүн Атайын мүмкүнчүлүктөр баскычын басып, кармап туруңуз."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Бул функцияны колдонуу үчүн экрандагы атайын мүмкүнчүлүктөр баскычын басыңыз."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Бул функцияны колдонуу үчүн үндү катуулатуу/акырындатуу баскычтарын коё бербей басып туруңуз."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Чоңойтуп/кичирейтүүнү иштетүү же өчүрүү үчүн экраныңыздын каалаган жерин үч жолу таптаңыз."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Чоңойтууну иштетүү же өчүрүү үчүн экраныңыздын каалаган жерин эки манжаңыз менен үч жолу таптаңыз."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Бул функцияны колдонуу үчүн экранды 2 манжаңыз менен ылдый жагынан өйдө сүрүңүз.\n\nБашка функцияга өтүү үчүн 2 манжаңыз менен өйдө сүрүп, кармап туруңуз."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Бул функцияны колдонуу үчүн экранды 3 манжаңыз менен ылдый жагынан өйдө сүрүңүз.\n\nБашка функцияга өтүү үчүн 3 манжаңыз менен өйдө сүрүп, кармап туруңуз."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Бул атайын мүмкүнчүлүктөр функциясын колдонуу үчүн экранды 2 манжаңыз менен ылдый жагынан өйдө сүрүңүз.\n\nБашка функцияга өтүү үчүн 2 манжаңыз менен өйдө сүрүп, кармап туруңуз."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Үндү катуулатуу/акырындатуу баскычтарын басуу"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"үн баскычтарын басып туруу"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Үндү катуулатуу/акырындатуу баскычтарын коё бербей басып туруңуз"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"Экранды эки манжа менен үч жолу таптоо"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"экранды эки манжа менен үч жолу таптоо"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"Экранды эки манжаңыз менен {0,number,integer} жолу тез таптаңыз"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Экранды үч жолу басуу"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"экранды үч жолу таптоо"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Экранды {0,number,integer} жолу тез басыңыз. Бул ыкчам баскыч түзмөгүңүздү жайлатышы мүмкүн"</string>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Дирилдөөнү жана сенсорлорду колдонуу"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Ойготкучтун дирилдөөсү"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Медианы дирилдетүү"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Баскычтопту дирилдетүү"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Шыңгырдын дирилдөөсү"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Билдирменин дирилдөөсү"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Басып жооп берүү"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> калды"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> кубаттоо"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Түзмөктү колдонуу убакыты"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Фондогу убакыт"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Батареянын кубаты төмөн"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Колдонмо фондо аткарылсын"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Фондогу аракеттери чектелсинби?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Колдонмонун фондогу аракеттери чектелсе, ал туура эмес иштеп калышы мүмкүн"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Бул колдонмодо батареянын үнөмдөлүшү жөндөлбөгөндүктөн, аны чектөөгө болбойт.\n\nКолдонмону чектөө үчүн, адегенде Батареяны үнөмдөө режимин күйгүзүңүз."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Батареянын колдонулушун тескөө"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Фондо колдонууга уруксат берүү"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Анык убакыттагы жаңыртууларды алуу үчүн иштетип, батареянын кубатын үнөмдөө үчүн өчүрүңүз"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Чектелбейт"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Оптималдаштырылган"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Чектелген"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"толук кубатталгандан бери"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Системдик колдонмолор"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Чыгарылып салынган колдонмолор"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Башкалар"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Болжолдуу калган убакыт"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Батарея толгонго чейин калган убакыт"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Жалпысынан: бир мүнөткө жетпейт"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Фондо колдонулушу: бир мүнөткө жетпейт"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Канча убакыт колдонулду: бир мүнөткө жетпейт"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Бир мүнөттөн ашпайт"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Жалпысынан: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Фондо колдонулушу: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Канча убакыт колдонулду: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Мобилдик Интернет жана Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Жеке маалыматтарды авто-шайкештирүү"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Жумуш маалыматын автошайкештирүү"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Купуя маалыматты авто-шайкештирүү"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Циклди өзгөртүү…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Дайындарды колдонуу циклин баштапкы абалга келтире турган күн:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Бул мезгилде колдонмолор трафик сарптаган жок."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"тексттин өлчөмү, чоң өлчөмдө басып чыгаруу, чоң арип, чоң текст, начар көрүү, текстти чоңойтуу, арип чоңойткуч, арипти чоңойтуу"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"динамикалык жарык ар дайым күйүк, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, тег, окугуч"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"баскычтоп, сенсорлор, дирилдөө,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Үн деңгээли, дирилдөө, \"Тынчымды алба\" режими"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Мультимедианын катуулугу"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Үндү алыстан башкаруу"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Билдирме толугу менен көрүнөт"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Купуя маалымат экран ачылганда гана көрүнөт"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Билдирмелер такыр көрүнбөйт"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Билдирмелер кулпуланган экранда кандай көрүнөт?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Кулпуланган экран"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Жумуш билдирмелери толугу менен көрүнөт"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Жумушка байланыштуу купуя нерселер жашырылат"</string>
@@ -3354,6 +3449,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Бул колдонмодо кеңири жөндөөлөр колдоого алынбайт"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Дагы параметрлер"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Бул колдонмодо кошумча параметрлер бар"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Билдирмелердин үнүн басаңдатуу"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Бардык билдирмелердин үнүн басаңдатуу"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Бир колдонмодон катары менен бир нече билдирме келгенде, ар бир кийинки билдирменин үнүн акырындатуу"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Сүйлөшүүлөрдүн үнүн басаңдатуу"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Кыска убакытта бир маекте бир нече билдирүү алганда, ар бир кийинки билдирменин үнүн акырындатуу"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Билдирмелердин үнү басаңдабасын"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Бир колдонмодо катары менен бир нече билдирме келсе да, алардын үнү акырындабасын"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Кулпусу ачылып турганда дирилдесин"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Экрандын кулпусу ачылып турганда гана дирилдесин"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Жумуш профилдерине колдонуу"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Жеке профилден жумуш профилине билдирмелердин үнүн басаңдатуу параметрлерин колдонуу"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR көмөкчү кызматтары"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Орнотулган колдонмолор көмөкчү VR кызматы катары иштөөгө уруксат сураган жок."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"VR кызматына <xliff:g id="SERVICE">%1$s</xliff:g> кызматын жеткиликтүү кыласызбы?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Бардык файлдарды башкарууга уруксат берүү"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Бул колдонмого түзмөктөгү жана башка байланышкан сактагычтардагы бардык файлдарды көрүп, өзгөртүп жана өчүрүүгө уруксат бересизби? Колдонмо файлдарды сизге айтпай пайдалана алат."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Бардык файлдарга мүмкүнчүлүк бар"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Үн менен иштетилген колдонмолор"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Үндү иштетүүгө уруксат берүү"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Ырасталган колдонмолорду үн буйругу менен иштете аласыз. Куралган адаптивдик таануу тутумунун жардамы менен маалыматтар сизге гана жеткиликтүү болот.\n\n"<a href="">"Коопсуз адаптивдик таануу тууралуу кеңири маалымат"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Толук экрандагы билдирмелер"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Бул колдонмого толук экрандагы билдирмелерди көрсөтүүгө уруксат берүү"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Бул колдонмого түзмөк кулпуланып турганда толук экрандагы билдирмелерди көрсөтүүгө уруксат бериңиз. Колдонмолор муну ойготкучтарды, кирүүчү чалууларды же башка шашылыш билдирмелерди көрсөтүү үчүн колдонушат."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> батареяны фондо адаттагыдан көбүрөөк колдонду"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> батареяны активдүү режимде көбүрөөк колдонду"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> батареяны активдүү режимде адаттагыдан көбүрөөк колдонду"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Батарея көбүрөөк колдонулууда."</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Батарея фондо көбүрөөк колдонулууда"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Батарея активдүү режимде көбүрөөк колдонулууда"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"тутум чабыттоосу, 2 баскыч менен чабыттоо, 3 баскыч менен чабыттоо, жаңсап чабыттоо, экранды сүрүп коюу"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Санариптик жардамчы"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Жардамчыны күйгүзүү үчүн экранды сүрүп коюу"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Санариптик жардамчы колдонмосун иштетүү үчүн экрандын төмөнкү бурчун жогору карай сүрүп коюңуз."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Жардамчыны күйгүзүү үчүн Башкы бет баскычын басып туруңуз"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Санариптик жардамчы колдонмосун күйгүзүү үчүн Башкы бет баскычын басып туруңуз."</string>
     <string name="low_label" msgid="6525629096999711220">"Төмөн"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"маалымат, киргизүүчү ачкыч, сырсөз"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"авто, толтуруу, автотолтуруу, маалымат, киргизүүчү ачкыч, сырсөз"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Колдонмонун коопсуз экенин текшериңиз&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; экрандагы нерселерди талдап, автоматтык түрдө толтурула турган саптарды табат."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&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_autofill_confirmation_message" msgid="843829628024668466">"&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_picker_title" msgid="8191267620665129205">"Сырсөздөр, киргизүүчү ачкычтар жана маалымат кызматтары"</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>
@@ -4226,10 +4338,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <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="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>
@@ -4786,11 +4896,9 @@
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{# айдан ашуун убакыт мурун орнотулган колдонмолор}other{# айдан ашуун убакыт мурун орнотулган колдонмолор}}"</string>
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Тараптардын катнашы"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"Эгер колдонмо <xliff:g id="DEVICE_NAME">%1$s</xliff:g> үчүн түзүлбөсө, аны көрүү үчүн жаңы тараптардын катнашын колдонуп көрүңүз"</string>
-    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Эгер колдонмо <xliff:g id="DEVICE_NAME">%1$s</xliff:g> үчүн түзүлгөн эмес болсо, аны көрүү үчүн жаңы тараптардын катнашын колдонуп көрүңүз. Айрым колдонмолор белгилүү бир тараптардын катнаштары үчүн оптималдаштырылбашы мүмкүн."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Эгер колдонмо <xliff:g id="DEVICE_NAME">%1$s</xliff:g> түзмөгүнө туура келбей калса, тараптардын башка катнашын колдонуп көрүңүз. Белгилүү бир тараптардын катнаштары айрым колдонмолорго чак келбей калышы мүмкүн."</string>
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Эгер колдонмо <xliff:g id="DEVICE_NAME">%1$s</xliff:g> үчүн түзүлбөсө, аны көрүү үчүн жаңы тараптардын катнашын колдонуп көрүңүз."</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Эгер колдонмо <xliff:g id="DEVICE_NAME">%1$s</xliff:g> түзмөгүнө туура келбей калса, тараптардын башка катнашын колдонуп көрүңүз. Белгилүү бир тараптардын катнаштары айрым колдонмолорго чак келбей калышы мүмкүн."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Сунушталган колдонмолор"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Өзгөртүлгөндөр"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Колдонмодогу демейки маани"</string>
@@ -4801,7 +4909,7 @@
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
     <string name="user_aspect_ratio_option_a11y" msgid="1235801996029095219">"<xliff:g id="NUMERATOR">%1$s</xliff:g>:<xliff:g id="DENOMINATOR">%2$s</xliff:g>"</string>
-    <string name="app_aspect_ratio_footer" msgid="4029509301182067475">"Тараптардын катнашын өзгөрткөндө бул колдонмо өчүп күйөт. Өзгөртүүлөрүңүз сакталбай калышы мүмкүн. Айрым колдонмолор белгилүү бир тараптардын катнаштары үчүн оптималдаштырылбашы мүмкүн."</string>
+    <string name="app_aspect_ratio_footer" msgid="4029509301182067475">"Тараптардын катнашын өзгөрткөндө бул колдонмо өчүп күйөт. Сакталбаган өзгөрүүлөрүңүз өчүп калышы мүмкүн. Белгилүү бир тараптардын катнаштары айрым колдонмолорго чак келбей калышы мүмкүн."</string>
     <string name="aspect_ratio_experimental_title" msgid="9088785421062044831">"Тараптардын катнашы (сынамык)"</string>
     <string name="aspect_ratio_experiment_title" msgid="128614319422121040">"Тараптардын катнашы (сыноо)"</string>
     <string name="aspect_ratio_labs_title" msgid="6733893837442759383">"Тараптардын катнашы (лабораториялар)"</string>
@@ -4860,4 +4968,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Алдамчы колдонмолор изделүүдө"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Колдонмолордо жасалган аракеттерде фишингди текшерүү"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Алдамчы колдонмолорду издөө"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Алдамчы жумуш колдонмолорун издөө"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-land/dimens.xml b/res/values-land/dimens.xml
index 7a4e1d5..d829637 100644
--- a/res/values-land/dimens.xml
+++ b/res/values-land/dimens.xml
@@ -20,4 +20,9 @@
     <dimen name="biometric_auth_pattern_view_max_size">348dp</dimen>
 
     <dimen name="notif_channel_panel_max_height">300dp</dimen>
+
+    <!-- Text Reading Settings -->
+    <dimen name="text_reading_preview_padding_start">64dp</dimen>
+    <dimen name="text_reading_preview_padding_end">64dp</dimen>
+    <dimen name="text_reading_preview_background_padding_horizontal">72dp</dimen>
 </resources>
diff --git a/res/values-lo/arrays.xml b/res/values-lo/arrays.xml
index a1b07b9..b5a8f8a 100644
--- a/res/values-lo/arrays.xml
+++ b/res/values-lo/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"ຫຼັງຈາກ 1 ນາທີ"</item>
     <item msgid="1574040255478150028">"ຫຼັງຈາກ 5 ນາທີ"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index d14f3b3..3150f4a 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"ປິດການນຳໃຊ້ສຽງ Bluetooth LE"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"ປິດການນຳໃຊ້ຄຸນສົມບັດສຽງ Bluetooth LE ຫາກອຸປະກອນຮອງຮັບຄວາມສາມາດຂອງຮາດແວສຽງ LE."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"ສະແດງການສະຫຼັບສຽງ LE ໃນລາຍລະອຽດອຸປະກອນ"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"ເປີດການນຳໃຊ້ລາຍຊື່ອະນຸຍາດສຽງ Bluetooth LE"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"ເປີດການນຳໃຊ້ຄຸນສົມບັດລາຍຊື່ອະນຸຍາດສຽງ Bluetooth LE."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"ຂ້າມລາຍຊື່ອະນຸຍາດສຽງ Bluetooth LE"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"ໃຊ້ສຽງ LE ໂດຍຄ່າເລີ່ມຕົ້ນເຖິງວ່າອຸປະກອນຕໍ່ພ່ວງສຽງ LE ຈະບໍ່ໄດ້ຮັບການຢັ້ງຢືນວ່າເປັນໄປຕາມເກນລາຍຊື່ອະນຸຍາດກໍຕາມ."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"ອຸປະກອນມີເດຍ"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"ອຸປະກອນໂທ"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"ອຸປະກອນອື່ນໆ"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"ອຸປະກອນທີ່ບັນທຶກໄວ້"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"ເຊື່ອມໂຍງກັບບັນຊີ"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"ເຄີຍໃຊ້ກັບບັນຊີແລ້ວ"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth ຈະເປີດການຈັບຄູ່"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"ການຕັ້ງຄ່າການເຊື່ອມຕໍ່"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"ເຊື່ອມຕໍ່ກ່ອນໜ້ານີ້"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"ຂຽນໃນຊ່ອງຂໍ້ຄວາມ"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"ບໍ່ຕ້ອງສົນໃຈການກົດປຸ່ມປາກກາທັງໝົດ"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"ປາກກາ"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"ການແບ່ງປັນສຽງ"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"ແບ່ງປັນສຽງ"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"ການໂທ ແລະ ແຈ້ງປຸກ"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"ວັນ​ທີ ແລະ ເວ​ລາ"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"ພຣັອກຊີ"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"ລຶບ"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"ກຳລັງໂຫລດ…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"ແອັບທີ່ມີການອະນຸຍາດອຸປະກອນທີ່ຢູ່ໃກ້ຄຽງສາມາດລະບຸສະຖານທີ່ທີ່ກ່ຽວຂ້ອງກັນຂອງອຸປະກອນທີ່ເຊື່ອມຕໍ່ໄດ້."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ການເຂົ້າເຖິງສະຖານທີ່ຖືກປິດໄວ້ສຳລັບແອັບ ແລະ ບໍລິການຕ່າງໆ. ສະຖານທີ່ອຸປະກອນອາດຍັງຄົງຖືກສົ່ງໄປຫາທີມກູ້ໄພເມື່ອທ່ານໂທ ຫຼື ສົ່ງຂໍ້ຄວາມຫາເບີໂທສຸກເສີນ."</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ສຶກສາເພີ່ມເຕີມກ່ຽວກັບການຕັ້ງຄ່າສະຖານທີ່"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"ບັນຊີ"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"ຄວາມ​ປອດ​ໄພ"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"ການເຂົ້າລະຫັດ ແລະ ຂໍ້ມູນການເຂົ້າສູ່ລະບົບ"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"ໂປຣໄຟລ໌ບ່ອນເຮັດວຽກ"</string>
     <string name="private_space_title" msgid="7078627930195569767">"ພື້ນທີ່ສ່ວນຕົວ"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"ເຊື່ອງແອັບໄວ້ໃນໂຟນເດີສ່ວນຕົວ"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"ປົດລັອກໂດຍໃຊ້ການລັອກໜ້າຈໍ"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"ສະແດງພື້ນທີ່ສ່ວນຕົວ"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"ເຊື່ອງເມື່ອລັອກໄວ້"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"ເຊື່ອງພື້ນທີ່ສ່ວນຕົວເມື່ອລັອກໄວ້"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"ເພື່ອບໍ່ໃຫ້ຄົນອື່ນຮູ້ວ່າພື້ນທີ່ສ່ວນຕົວຢູ່ໃນອຸປະກອນຂອງທ່ານ, ທ່ານສາມາດເຊື່ອງມັນຈາກລາຍຊື່ແອັບຂອງທ່ານໄດ້"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"ເຂົ້າເຖິງພື້ນທີ່ສ່ວນຕົວເມື່ອເຊື່ອງໄວ້"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"ຊອກຫາ \'ພື້ນທີ່ສ່ວນຕົວ\' ໃນແຖບຊອກຫາ"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"ແຕະແຜ່ນພື້ນທີ່ສ່ວນຕົວ"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"ປົດລັອກພື້ນທີ່ສ່ວນຕົວຂອງທ່ານ"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"ປິດຢູ່"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"ເປີດຢູ່"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"ລະບົບ"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"ສ້າງພື້ນທີ່ສ່ວນຕົວ"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"ລຶບພື້ນທີ່ສ່ວນຕົວອອກ"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"ສ້າງພື້ນທີ່ສ່ວນຕົວສຳເລັດແລ້ວ"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"ມີພື້ນທີ່ສ່ວນຕົວຢູ່ແລ້ວ"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"ບໍ່ສາມາດສ້າງພື້ນທີ່ສ່ວນຕົວໄດ້"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"ລຶບພື້ນທີ່ສ່ວນຕົວອອກສຳເລັດແລ້ວ"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"ບໍ່ສາມາດລຶບພື້ນທີ່ສ່ວນຕົວອອກໄດ້"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"ຕັ້ງການລັອກໜ້າຈໍ"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"ຕັ້ງການລັອກໜ້າຈໍຢູ່ອຸປະກອນນີ້ເພື່ອໃຊ້ພື້ນທີ່ສ່ວນຕົວ."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"ຕັ້ງການລັອກໜ້າຈໍ"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"ຍົກເລີກ"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"ຍົກເລີກ"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"ຕັ້ງຄ່າ"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"ຕັ້ງຄ່າພື້ນທີ່ສ່ວນຕົວ"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"ເຊື່ອງແອັບສ່ວນຕົວໃນພື້ນທີ່ປອດໄພທີ່ມີແຕ່ທ່ານເທົ່ານັ້ນທີ່ສາມາດເຂົ້າເຖິງໄດ້"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"ມັນເຮັດວຽກແນວໃດ"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"ທ່ານສາມາດເຂົ້າເຖິງພື້ນທີ່ສ່ວນຕົວໄດ້ຈາກລຸ່ມສຸດຂອງລາຍຊື່ແອັບຂອງທ່ານ"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"ແອັບໃນພື້ນທີ່ສ່ວນຕົວໄດ້ຮັບການປົກປ້ອງໂດຍການລັອກ"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"ການແຈ້ງເຕືອນຈາກແອັບໃນພື້ນທີ່ສ່ວນຕົວຈະຖືກເຊື່ອງໄວ້ເມື່ອມັນຖືກລັອກໄວ້"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"ແອັບພື້ນທີ່ສ່ວນຕົວຈະບໍ່ປາກົດໃນຕົວຈັດການສິດອະນຸຍາດ, ແຜງໜ້າປັດຄວາມເປັນສ່ວນຕົວ ແລະ ການຕັ້ງຄ່າອື່ນໆເມື່ອພື້ນທີ່ສ່ວນຕົວຖືກລັອກໄວ້"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"ກຳລັງຕັ້ງຄ່າພື້ນທີ່ສ່ວນຕົວ…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"ພື້ນທີ່ສ່ວນຕົວຖືກປົກປ້ອງໂດຍລັອກ"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"ຂໍ້ມູນການນຳໃຊ້ສຳລັບແອັບພື້ນທີ່ສ່ວນຕົວຖືກເຊື່ອງໄວ້ເມື່ອມັນຖືກລັອກໄວ້"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"ເຂົ້າເຖິງພື້ນທີ່ສ່ວນຕົວຈາກລາຍຊື່ແອັບຂອງທ່ານ"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"ບໍ່ສາມາດຕັ້ງຄ່າພື້ນທີ່ສ່ວນຕົວໄດ້"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"ລອງຕອນນີ້ ຫຼື ກັບຄືນມາພາຍຫຼັງ"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"ລອງໃໝ່"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"ໃຊ້ການລັອກໜ້າຈໍເພື່ອປົດລັອກບໍ?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"ທ່ານສາມາດປົດລັອກພື້ນທີ່ສ່ວນຕົວດ້ວຍວິທີດຽວກັນກັບທີ່ທ່ານປົດລັອກອຸປະກອນຂອງທ່ານ ຫຼື ເລືອກລັອກອື່ນໄດ້"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"ໃຊ້ການລັອກໜ້າຈໍ"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"ເລືອກລັອກໃໝ່"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"ຮຽບຮ້ອຍໝົດແລ້ວ!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"ເພື່ອເຂົ້າເຖິງພື້ນທີ່ສ່ວນຕົວ, ໃຫ້ປັດຂຶ້ນຈາກລຸ່ມສຸດຂອງໂຮມສະກຣີນຂອງທ່ານ, ຈາກນັ້ນເລື່ອນລົງ"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"ແລ້ວໆ"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"ເລື່ອນລົງເພື່ອເຂົ້າເຖິງພື້ນທີ່ສ່ວນຕົວ"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"ເຂົ້າສູ່ລະບົບເພື່ອຕັ້ງຄ່າພື້ນທີ່ສ່ວນຕົວ"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"ທ່ານ​ສາ​ມາດ​ເພີ່ມ​ບໍ່ເກີນ <xliff:g id="COUNT">%d</xliff:g> ລາຍ​ນີ້ວ​ມື​"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"You’ve added the maximum number of fingerprints"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Can’t add more fingerprints"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"ເຊື່ອມຕໍ່"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"ຕັດການເຊື່ອມຕໍ່"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"ຈັບຄູ່ ແລະ ເຊື່ອມຕໍ່"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"ເມື່ອ Bluetooth ຖືກ​ເປີດ​ນຳ​ໃຊ້, ອຸ​ປະ​ກອນ​ຂອງ​ທ່ານ​ຈະ​ສາ​ມາດ​ສື່​ສານ​ກັບ​ອຸ​ປະ​ກອນ Bluetooth ອື່ນ​ທີ່​ຢູ່​ໃກ້​ຄຽງ​ໄດ້."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"ເມື່ອເປີດໃຊ້ Bluetooth ແລ້ວ, ອຸປະກອນຂອງທ່ານຈະສາມາດສື່ສານກັບອຸປະກອນ Bluetooth ອື່ນທີ່ຢູ່ໃກ້ຄຽງໄດ້.\n\nເພື່ອປັບປຸງປະສົບການການນຳໃຊ້ອຸປະກອນ, ແອັບ ແລະ ບໍລິການຕ່າງໆຈະຍັງສາມາດສະແກນຫາອຸປະກອນທີ່ຢູ່ໃກ້ຄຽງໄດ້ທຸກເວລາ, ເຖິງແມ່ນວ່າຈະປິດ Bluetooth ໄວ້ກໍຕາມ. ການຕັ້ງຄ່ານີ້ໃຊ້ເພື່ອເຮັດສິ່ງຕ່າງໆ ຕົວຢ່າງ: ໃຊ້ເພື່ອປັບປຸງຄຸນສົມບັດ ແລະ ບໍລິການທີ່ອ້າງອີງສະຖານທີ່ໄດ້. ທ່ານສາມາດປ່ຽນຕົວເລືອກນີ້ໄດ້ໃນການຕັ້ງຄ່າການສະແກນ Bluetooth."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"ປ່ຽນ"</string>
     <string name="device_details_title" msgid="1155622417516195481">"ລາຍລະອຽດອຸປະກອນ"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"ອະນຸຍາດໃຫ້ ART ຢັ້ງຢືນ bytecode ສຳລັບແອັບທີ່ດີບັກໄດ້"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"ສະແດງອັດຕາການຣີເຟຣຊ"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"ສະແດງອັດຕາການຣີເຟຣຊໜ້າຈໍປັດຈຸບັນ"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"ສະແດງອັດຕາສ່ວນ HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"ສະແດງອັດຕາສ່ວນ HDR/SDR ປັດຈຸບັນ"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"ຕ້ອງປົດລັອກອຸປະກອນສຳລັບ NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"ສືບຕໍ່ໃຊ້ແອັບເມື່ອພັບຢູ່"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"ເພີ່ມອັດຕາການຣີເຟຣຊຈາກ 60 ເປັນ <xliff:g id="ID_1">%1$s</xliff:g> Hz ສຳລັບເນື້ອຫາຈຳນວນໜຶ່ງໂດຍອັດຕະໂນມັດ. ຈະໃຊ້ແບັດເຕີຣີຫຼາຍຂຶ້ນ."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"ເພີ່ມອັດຕາການຣີເຟຣຊສູງສຸດເຖິງ <xliff:g id="ID_1">%1$d</xliff:g> Hz ສຳລັບບາງເນື້ອຫາໂດຍອັດຕະໂນມັດ. ຈະໃຊ້ແບັດເຕີຣີຫຼາຍຂຶ້ນ."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"ບັງຄັບອັດຕາຣີເຟຣຊສູງສຸດ"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"ອັດຕາຣີເຟຣດສູງສຸດເພື່ອປັບປຸງການຕອບສະໜອງການສຳຜັດ ແລະ ຄຸນນະພາບອະນິເມຊັນ. ເພີ່ມການນຳໃຊ້ແບັດເຕີຣີ."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"ການເອົາໃຈໃສ່ໜ້າຈໍ"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"ການຕັ້ງຄ່າສ່ວນກາງ"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APNs"</string>
     <string name="apn_edit" msgid="2003683641840248741">"ແກ້ໄຂຈຸດການເຊື່ອມຕໍ່"</string>
+    <string name="apn_add" msgid="9069613192201630934">"ເພີ່ມຈຸດເຂົ້າເຖິງ"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"ຍັງບໍ່ໄດ້ຕັ້ງ"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"ຍັງບໍ່ໄດ້ຕັ້ງ"</string>
     <string name="apn_name" msgid="6677695784108157953">"ຊື່"</string>
@@ -1320,6 +1397,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN ເປີດໃຊ້ແລ້ວ"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN ຖືກປິດໄວ້"</string>
     <string name="bearer" msgid="3231443241639159358">"Bearer"</string>
+    <string name="network_type" msgid="748590707422733595">"ປະເພດເຄືອຂ່າຍ"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"ບໍ່ໄດ້ລະບຸ"</string>
     <string name="mvno_type" msgid="4734654257494971247">"ປະເພດ MVNO"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"ມູນຄ່າ MVNO"</string>
     <string name="menu_delete" msgid="9199740901584348273">"ລຶບ APN"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"ໃຊ້ປຸ່ມການຊ່ວຍເຂົ້າເຖິງເພື່ອເປີດ"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"ກົດປຸ່ມລະດັບສຽງຄ້າງໄວ້ເພື່ອເປີດ"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"ແຕະໜ້າຈໍສາມເທື່ອເພື່ອເປີດ"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"ແຕະໜ້າຈໍສາມເທື່ອດ້ວຍສອງນິ້ວເພື່ອເປີດ"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"ໃຊ້ທ່າທາງເພື່ອເປີດ"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"ໃຊ້ທ່າທາງການຊ່ວຍເຂົ້າເຖິງ"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"ເພື່ອໃຊ້ຄຸນສົມບັດນີ້, ໃຫ້ແຕະໃສ່ປຸ່ມການຊ່ວຍເຂົ້າເຖິງ <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> ຢູ່ລຸ່ມສຸດຂອງໜ້າຈໍທ່ານ.\n\nເພື່ອສະຫຼັບລະຫວ່າງຄຸນສົມບັດ, ໃຫ້ແຕະໃສ່ປຸ່ມການຊ່ວຍເຂົ້າເຖິງຄ້າງໄວ້."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"ເພື່ອໃຊ້ຄຸນສົມບັດນີ້, ໃຫ້ແຕະປຸ່ມການຊ່ວຍເຂົ້າເຖິງຢູ່ໜ້າຈໍທ່ານ."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"ເພື່ອໃຊ້ຄຸນສົມບັດນີ້, ໃຫ້ກົດປຸ່ມລະດັບສຽງທັງສອງຄ້າງໄວ້."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"ເພື່ອເລີ່ມ ແລະ ຢຸດການຂະຫຍາຍຂອງທ່ານ, ໃຫ້ແຕະສາມເທື່ອໃສ່ບ່ອນໃດກໍໄດ້ຢູ່ໜ້າຈໍທ່ານ."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"ເພື່ອເລີ່ມຕົ້ນ ແລະ ຢຸດການຂະຫຍາຍ, ໃຫ້ແຕະສາມເທື່ອບ່ອນໃດກໍໄດ້ຢູ່ໜ້າຈໍຂອງທ່ານດ້ວຍສອງນິ້ວ."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"ເພື່ອໃຊ້ຄຸນສົມບັດນີ້, ໃຫ້ປັດຂຶ້ນຈາກລຸ່ມສຸດຂອງໜ້າຈໍດ້ວຍ 2 ນິ້ວ.\n\nເພື່ອສະຫຼັບລະຫວ່າງຄຸນສົມບັດ, ໃຫ້ປັດຂຶ້ນດ້ວຍ 2 ນິ້ວຄ້າງໄວ້."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"ເພື່ອໃຊ້ຄຸນສົມບັດນີ້, ໃຫ້ປັດຂຶ້ນຈາກລຸ່ມສຸດຂອງໜ້າຈໍດ້ວຍ 3 ນິ້ວ.\n\nເພື່ອສະຫຼັບລະຫວ່າງຄຸນສົມບັດ, ໃຫ້ປັດຂຶ້ນດ້ວຍ 3 ນິ້ວຄ້າງໄວ້."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"ເພື່ອໃຊ້ຄຸນສົມບັດການຊ່ວຍເຂົ້າເຖິງ, ໃຫ້ປັດຂຶ້ນຈາກລຸ່ມສຸດຂອງໜ້າຈໍດ້ວຍ 2 ນິ້ວ.\n\nເພື່ອສະຫຼັບລະຫວ່າງຄຸນສົມບັດ, ໃຫ້ປັດຂຶ້ນດ້ວຍ 2 ນິ້ວຄ້າງໄວ້."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"ກົດປຸ່ມລະດັບສຽງຄ້າງໄວ້"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"ກົດປຸ່ມລະດັບສຽງຄ້າງໄວ້"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"ກົດປຸ່ມລະດັບສຽງທັງສອງຄ້າງໄວ້"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"ແຕະໜ້າຈໍສາມເທື່ອດ້ວຍສອງນິ້ວ"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"ແຕະໜ້າຈໍສາມເທື່ອດ້ວຍສອງນິ້ວ"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"ແຕະໜ້າຈໍຢ່າງວ່ອງໄວ {0,number,integer} ເທື່ອດ້ວຍສອງນິ້ວ"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"ແຕະໃສ່ໜ້າຈໍສາມເທື່ອ"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"ແຕະໃສ່ໜ້າຈໍສາມເທື່ອ"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"ແຕະໜ້າຈໍໄວໆ {0,number,integer} ເທື່ອ. ທາງລັດນີ້ອາດເຮັດໃຫ້ອຸປະກອນຂອງທ່ານຊ້າລົງ"</string>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"ໃຊ້ການສັ່ນເຕືອນ ແລະ ການສຳຜັດ"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"ການສັ່ນເຕືອນໂມງປຸກ"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"ການສັ່ນເຕືອນມີເດຍ"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"ການສັ່ນເຕືອນຂອງແປ້ນພິມ"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"ສຽງພ້ອມການສັ່ນເຕືອນ"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"ການແຈ້ງເຕືອນແບບສັ່ນເຕືອນ"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"ການຕອບສະໜອງການສຳຜັດ"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"ເຫຼືອອີກ <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> ​ກ່ອນ​ຈະ​ເຕັມ"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"ເວລາໜ້າຈໍ"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"ເວລາທີ່ເຮັດວຽກຢູ່ພື້ນຫຼັງ"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"ແບັດເຕີຣີເຫຼືອໜ້ອຍ"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"ອະນຸຍາດໃຫ້ແອັບເຮັດວຽກໃນພື້ນຫຼັງໄດ້"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"ຈຳກັດການເຄື່ອນໄຫວໃນພື້ນຫຼັງບໍ?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"ຫາກທ່ານຈຳກັດການເຄື່ອນໄຫວໃນພື້ນຫຼັງສຳລັບແອັບໃດໜຶ່ງ, ມັນຈະເຮັດວຽກຜິດປົກກະຕິ"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"ເນື່ອງຈາກແອັບນີ້ຍັງບໍ່ໄດ້ປັບແຕ່ງໃຫ້ໃຊ້ແບັດເຕີຣີໄດ້ຢ່າງເໝາະສົມເທື່ອ, ທ່ານຈຶ່ງບໍ່ສາມາດຈຳກັດມັນໄດ້.\n\nເພື່ອຈຳກັດແອັບດັ່ງກ່າວ, ໃຫ້ເປີດການປັບແຕ່ງແບັດເຕີຣີໃຫ້ເໝາະສົມກ່ອນ."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"ຈັດການການໃຊ້ແບັດເຕີຣີ"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"ອະນຸຍາດການນຳໃຊ້ໃນພື້ນຫຼັງ"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"ເປີດການນຳໃຊ້ເພື່ອໃຫ້ອັບເດດແບບສົດໆ, ປິດການນຳໃຊ້ເພື່ອປະຢັດແບັດເຕີຣີ"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"ບໍ່ຈຳກັດ"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"ປັບໃຫ້ເໝາະສົມ"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"ຈຳກັດ"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"ສາກເຕັມເທື່ອຫຼ້າສຸດ"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"ແອັບລະບົບ"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"ແອັບທີ່ຖອນການຕິດຕັ້ງແລ້ວ"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"ອື່ນໆ"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"ເວລາທີ່ເຫຼືອໂດຍປະມານ"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"ຈົນກວ່າຈະສາກເຕັມ"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"ທັງໝົດ: ໜ້ອຍກວ່າໜຶ່ງນາທີ"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"ພື້ນຫຼັງ: ໜ້ອຍກວ່າ 1 ນາທີ"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"ເວລາໜ້າຈໍ: ໜ້ອຍກວ່າ 1 ນາທີ"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"ໜ້ອຍກວ່າ 1 ນທ"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"ທັງໝົດ: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"ພື້ນຫຼັງ: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"ເວລາໜ້າຈໍ: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"ອິນເຕີເນັດມືຖື ແລະ Wi-Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"ຊິ້ງ​ຂໍ້​ມູນ​ສ່ວນ​ໂຕ​ອັດ​ຕະ​ໂນ​ມັດ"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"​ຊິ້ງ​ຂໍ້​ມູນ​ວຽກ​ອັດ​ຕະ​ໂນ​ມັດ"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"ຊິ້ງຂໍ້ມູນສ່ວນຕົວໂດຍອັດຕະໂນມັດ"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"ປ່ຽນຮອບການນັບ..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"ວັນຂອງເດືອນເພື່ອຕັ້ງຄ່າຮອບຂໍ້ມູນຄືນໃໝ່:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"ບໍ່ມີແອັບຯໃຊ້ຂໍ້ມູນໃນໄລຍະເວລານີ້."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"ຂະໜາດໜ້າຈໍ, ພິມຂະໜາດໃຫຍ່, ຟອນຂະໜາດໃຫຍ່, ຂໍ້ຄວາມຂະໜາດໃຫຍ່, ເບິ່ງເຫັນຍາກ, ເຮັດໃຫ້ຂໍ້ຄວາມໃຫຍ່ຂຶ້ນ, ຕົວຂະຫຍາຍຟອນ, ການຂະຫຍາຍຟອນ"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"ເປີດການສະແດງພາບພັກໜ້າຈໍໄວ້ຕະຫຼອດ, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"NFC, ແທັກ, ຕົວອ່ານ"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"ແປ້ນພິມ, ການສຳຜັດ, ສັ່ນເຕືອນ,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"ລະດັບສຽງ, ການສັ່ນເຕືອນ, ຫ້າມລົບກວນ"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"​ລະ​ດັບ​ສຽງ​ມີ​ເດຍ"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"ສົ່ງສັນຍານລະດັບສຽງ"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"ສະແດງ​ເນື້ອຫາ​ການແຈ້ງເຕືອນ​ທັງໝົດ"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"ສະແດງເນື້ອຫາທີ່ລະອຽດອ່ອນສະເພາະຕອນປົດລັອກແລ້ວ"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"ບໍ່​ສະ​ແດງ​ການ​ແຈ້ງ​ເຕືອນ​ເລີຍ"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"ທ່ານຢາກໃຫ້ສະແດງຂໍ້ມູນຫຍັງໃນໜ້າຈໍລັອກ?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"ໜ້າຈໍລັອກ"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"ສະແດງເນື້ອຫາການແຈ້ງເຕືອນວຽກທັງໝົດ"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"ເຊື່ອງເນື້ອຫາວຽກທີ່ລະອຽດອ່ອນ"</string>
@@ -3354,6 +3449,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"ແອັບນີ້ບໍ່ຮອງຮັບການຕັ້ງຄ່າທີ່ປັບປຸງໃຫ້ດີຂຶ້ນ"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"ການຕັ້ງຄ່າເພີ່ມເຕີມ"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"ການຕັ້ງຄ່າເພີ່ມເຕີມແມ່ນມີໃຫ້ຢູ່ພາຍໃນແອັບ"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"ຄູດາວການແຈ້ງເຕືອນ"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"ນຳໃຊ້ຄູດາວໃສ່ການແຈ້ງເຕືອນທັງໝົດ"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"ຄ່ອຍໆຫຼຸດລະດັບສຽງການແຈ້ງເຕືອນລົງເມື່ອທ່ານໄດ້ຮັບການແຈ້ງເຕືອນຢ່າງຕໍ່ເນື່ອງຈາກແອັບດຽວກັນ"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"ນຳໃຊ້ຄູດາວໃສ່ການສົນທະນາ"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"ຄ່ອຍໆຫຼຸດລະດັບສຽງການແຈ້ງເຕືອນລົງເມື່ອທ່ານໄດ້ຮັບຂໍ້ຄວາມຫຼາຍຂໍ້ຄວາມຈາກການສົນທະນາດຽວກັນພາຍໃນໄລຍະເວລາສັ້ນໆ"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"ຢ່າໃຊ້ຄູດາວການແຈ້ງເຕືອນ"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"ຢ່າຫຼຸດປະລິມານການແຈ້ງເຕືອນລົງ, ໂດຍບໍ່ຄໍານຶງເຖິງຈໍານວນການແຈ້ງເຕືອນຢ່າງຕໍ່ເນື່ອງຈາກແອັບດຽວກັນ"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"ສັ່ນເຕືອນເມື່ອປົດລັອກ"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"ສັ່ນເຕືອນເມື່ອປົດລັອກໜ້າຈໍຢູ່ເທົ່ານັ້ນ"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"ນຳໃຊ້ກັບໂປຣໄຟລ໌ບ່ອນເຮັດວຽກ"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"ນຳໃຊ້ການຕັ້ງຄ່າຄູດາວການແຈ້ງເຕືອນຈາກໂປຣໄຟລ໌ສ່ວນຕົວຂອງທ່ານໃສ່ໂປຣໄຟລ໌ບ່ອນເຮັດວຽກຂອງທ່ານ"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"ບໍລິການຕົວຊ່ວຍ VR"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"ບໍ່ມີແອັບທີ່ຕິດຕັ້ງແລ້ວທີ່ຮ້ອງຂໍໃຫ້ໃຊ້ເປັນບໍລິການຕົວຊ່ວຍ VR."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"ອະນຸຍາດໃຫ້ເຂົ້າເຖິງບໍລິການ VR ສຳລັບ <xliff:g id="SERVICE">%1$s</xliff:g> ບໍ?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"ອະນຸຍາດການເຂົ້າເຖິງເພື່ອຈັດການໄຟລ໌ທັງໝົດ"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"ອະນຸຍາດໃຫ້ແອັບນີ້ອ່ານ, ແກ້ໄຂ ແລະ ລຶບໄຟລ໌ທັງໝົດຢູ່ອຸປະກອນນີ້ ຫຼື ບ່ອນຈັດເກັບຂໍ້ມູນໃດກໍຕາມທີ່ເຊື່ອມຕໍ່ໄວ້. ຫາກໄດ້ຮັບອະນຸຍາດແລ້ວ, ແອັບຈະສາມາດເຂົ້າເຖິງໄຟລ໌ໂດຍແຈ້ງໃຫ້ທ່ານຮັບຮູ້ຢ່າງຈະແຈ້ງໄດ້."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"ສາມາດເຂົ້າເຖິງໄຟລ໌ທັງໝົດ"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"ແອັບການເປີດນຳໃຊ້ດ້ວຍສຽງ"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"ອະນຸຍາດການເປີດນຳໃຊ້ດ້ວຍສຽງ"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"ການເປີດນຳໃຊ້ດ້ວຍສຽງຈະເປີດແອັບທີ່ໄດ້ຮັບອະນຸມັດແບບແຮນຟຣີໂດຍໃຊ້ຄຳສັ່ງສຽງ. ການກວດຈັບແບບປັບອັດຕະໂນມັດໃນຕົວຊ່ວຍໃຫ້ໝັ້ນໃຈໄດ້ວ່າຂໍ້ມູນຈະເປັນສ່ວນຕົວສຳລັບທ່ານເທົ່ານັ້ນ.\n\n"<a href="">"ຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບການກວດຈັບແບບປັບອັດຕະໂນມັດທີ່ມີການປ້ອງກັນ"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"ການແຈ້ງເຕືອນແບບເຕັມຈໍ"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"ອະນຸຍາດໃຫ້ແອັບນີ້ສະແດງການແຈ້ງເຕືອນແບບເຕັມຈໍ"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"ອະນຸຍາດໃຫ້ແອັບນີ້ສະແດງການແຈ້ງເຕືອນແບບເຕັມຈໍເມື່ອອຸປະກອນລັອກຢູ່. ແອັບອາດໃຊ້ການແຈ້ງເຕືອນເຫຼົ່ານີ້ເພື່ອໄຮໄລ້ໂມງປຸກ, ສາຍໂທເຂົ້າ ຫຼື ການແຈ້ງເຕືອນສຸກເສີນອື່ນໆ."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ໃຊ້ແບັດເຕີຣີຫຼາຍກວ່າປົກກະຕິໃນລະຫວ່າງທີ່ເຮັດວຽກພື້ນຫຼັງ"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ໃຊ້ແບັດເຕີຣີຫຼາຍຂຶ້ນໃນລະຫວ່າງທີ່ເຮັດວຽກເບື້ອງໜ້າ"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ໃຊ້ແບັດເຕີຣີຫຼາຍກວ່າປົກກະຕິໃນລະຫວ່າງທີ່ເຮັດວຽກເບື້ອງໜ້າ"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"ການໃຊ້ແບັດເຕີຣີສູງ"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"ການໃຊ້ແບັດເຕີຣີສູງໃນພື້ນຫຼັງ"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"ການໃຊ້ແບັດເຕີຣີສູງໃນເບື້ອງໜ້າ"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"ການນຳທາງລະບົບ, ການນຳທາງແບບ 2 ປຸ່ມ, ການນຳທາງແບບ 3 ປຸ່ມ, ການນຳທາງແບບທ່າທາງ, ປັດ"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"ຜູ້ຊ່ວຍດິຈິຕອນ"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"ປັດເພື່ອເອີ້ນໃຊ້ຜູ້ຊ່ວຍ"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"ປັດຂຶ້ນຈາກມຸມລຸ່ມສຸດເພື່ອເອີ້ນໃຊ້ແອັບຜູ້ຊ່ວຍດິຈິຕອນ."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"ກົດປຸ່ມໜ້າຫຼັກສຳລັບຜູ້ຊ່ວຍ"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"ກົດປຸ່ມໜ້າຫຼັກຄ້າງໄວ້ເພື່ອເອີ້ນໃຊ້ແອັບຜູ້ຊ່ວຍດິຈິຕອນ."</string>
     <string name="low_label" msgid="6525629096999711220">"ຕ່ຳ"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"ຂໍ້ມູນ, ກະແຈຜ່ານ, ລະຫັດຜ່ານ"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"ອັດຕະໂນມັດ, ຕື່ມຂໍ້ມູນ, ການຕື່ມຂໍ້ມູນອັດຕະໂນມັດ, ຂໍ້ມູນ, ກະແຈຜ່ານ, ລະຫັດຜ່ານ"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;ໃຫ້ກວດສອບວ່າທ່ານເຊື່ອແອັບນີ້&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; ຈະໃຊ້ສິ່ງທີ່ຢູ່ໃນໜ້າຈໍຂອງທ່ານເພື່ອກວດເບິ່ງວ່າຈະຕື່ມຂໍ້ມູນຫຍັງອັດຕະໂນມັດ."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&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_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Use &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_picker_title" msgid="8191267620665129205">"ລະຫັດຜ່ານ, ກະແຈຜ່ານ ແລະ ບໍລິການຂໍ້ມູນ"</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>
@@ -4226,7 +4338,7 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- 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" msgid="4648827560023949786">"ທົດລອງ: ເປີດການນຳໃຊ້ ANGLE"</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>
@@ -4856,4 +4968,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"ການສະແກນຫາແອັບຫຼອກລວງ"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"ກວດສອບການເຄື່ອນໄຫວແອັບສຳລັບການຫຼອກເອົາຂໍ້ມູນ"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"ໃຊ້ການສະແກນຫາແອັບທີ່ຫຼອກລວງ"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"ໃຊ້ການສະແກນຫາແອັບທີ່ຫຼອກລວງສຳລັບການເຮັດວຽກ"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-lt/arrays.xml b/res/values-lt/arrays.xml
index 9c66346..5d2eef2 100644
--- a/res/values-lt/arrays.xml
+++ b/res/values-lt/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Po vienos minutės"</item>
     <item msgid="1574040255478150028">"Po penkių minučių"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 22f6db6..b15fbb6 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"„Bluetooth LE Audio“ išjungimas"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Jei įrenginys palaiko „LE Audio“ aparatinės įrangos galimybes, išjungiama funkcija „Bluetooth LE Audio“."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Rodyti „LE Audio“ jungiklį įrenginio informacijoje"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Įgalinti „Bluetooth LE Audio“ leidžiamųjų sąrašą"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Įgalinti „Bluetooth LE Audio“ leidžiamųjų sąrašo funkciją."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"„Bluetooth LE Audio“ leidžiamųjų sąrašo išskyrimas"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Naudoti „LE Audio“ pagal numatytuosius nustatymus, net jei „LE Audio“ išorinis įrenginys nebuvo patvirtintas kaip atitinkantis leidžiamųjų sąrašo kriterijus."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Laikmenos"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Skambinimo įrenginiai"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Kiti įrenginiai"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Išsaugoti įrenginiai"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Susieta su paskyra"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Anksčiau naudota su paskyra"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bus įjungtas „Bluetooth“, kad būtų galima susieti"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Ryšio nuostatos"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Anksčiau susieti"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Rašymas teksto laukuose"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Visų rašiklio mygtuko paspaudimų nepaisymas"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Rašiklis"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Garso bendrinimas"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Bendrinti garsą"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Skambučiai ir signalai"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Data ir laikas"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Tarpinis serveris"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Išvalyti"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Sužinokite daugiau apie vietovės nustatymus."</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Paskyros"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Sauga"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Šifruotė ir prisijungimo duomenys"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Darbo profilis"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Privati erdvė"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Slėpkite programas privačiame aplanke"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Atrakinimas naudojant ekrano užraktą"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Privačios erdvės rodymas"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Slėpimas užrakinus"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Užrakintos privačios erdvės slėpimas"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Jei nenorite, kad kiti žmonės žinotų, jog privati erdvė yra jūsų įrenginyje, galite slėpti ją programų sąraše"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Prieiga prie paslėptos privačios erdvės"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Ieškokite pagal užklausą „Privati erdvė“ paieškos juostoje"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Palieskite privačios erdvės pavadinimą"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Atrakinti privačią erdvę"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Išjungti"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Įjungti"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Sistema"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Privačios erdvės kūrimas"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Privačios erdvės ištrynimas"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Privati erdvė sėkmingai sukurta"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Privati erdvė jau sukurta"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Nepavyko sukurti privačios erdvės"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Privati erdvė sėkmingai ištrinta"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Nepavyko ištrinti privačios erdvės"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Nustatykite ekrano užraktą"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Jei norite naudoti privačią erdvę, nustatykite ekrano užraktą šiame įrenginyje."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Ekrano užrakto nustatymas"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Atšaukti"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Atšaukti"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Nustatyti"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Privačios erdvės nustatymas"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Slėpkite privačias programas saugioje erdvėje, kurią galite pasiekti tik jūs"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Kaip tai veikia"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Privačią erdvę galite pasiekti iš programų sąrašo apačios"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Programos privačioje erdvėje saugomos jas užrakinant"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Pranešimai iš programų privačioje erdvėje slepiami, kai ji užrakinta"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Privačios erdvės programos nebus rodomos leidimų tvarkytuvėje, privatumo informacijos suvestinėje ir kituose nustatymuose, kai privati erdvė bus užrakinta"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Nustatoma privati erdvė…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Privati erdvė saugoma ją užrakinant"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Privačios erdvės programų naudojimo informacija paslėpta, kai užrakinta"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Prieiga prie privačios erdvės iš programų sąrašo"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Nepavyko nustatyti privačios erdvės"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Bandykite dar kartą dabar arba grįžkite vėliau"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Bandyti dar kartą"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Naudoti ekrano užraktą norint atrakinti?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Galite atrakinti privačią erdvę taip pat, kaip atrakinate įrenginį, arba pasirinkti kitą užraktą"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Naudoti ekrano užraktą"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Pasirinkti naują užraktą"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Viskas nustatyta!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Kad pasiektumėte privačią erdvę, perbraukite aukštyn iš pagrindinio ekrano apačios, tada slinkite žemyn"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Atlikta"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Slinkite žemyn, kad pasiektumėte privačią erdvę"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Privačios erdvės nustatymas prisijungus"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Galite pridėti iki <xliff:g id="COUNT">%d</xliff:g> piršto ats."</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Pridėjote maksimalų skaičių kontrolinių kodų"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Negalima pridėti daugiau kontrolinių kodų"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Prijungti"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Atjungti"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Susieti ir jungti"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Kai „Bluetooth“ įj., įreng. gali užm. ryšį su kitais netoliese esančiais „Bluetooth“ įreng."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Kai „Bluetooth“ įjungtas, įrenginys gali užmegzti ryšį su kitais netoliese esančiais „Bluetooth“ įrenginiais.\n\nKad pagerintų įrenginio funkcijas, programos ir paslaugos vis tiek gali bet kada nuskaityti ieškodamos netoliese esančių įrenginių, net kai „Bluetooth“ išjungtas. Tai galima naudoti norint, pvz., tobulinti pagal vietovę teikiamas funkcijas ir paslaugas. Tai galite pakeisti „Bluetooth“ nuskaitymo nustatymuose."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Keisti"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Išsami įrenginio info."</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Leisti ART patvirtinti derinamų programų baitinę programą"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Rodyti atnaujinimo dažnį"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Rodyti dabartinio vaizdo atnaujinimo dažnį"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Rodyti HDR / SDR santykį"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Rodyti dabartinį HDR / SDR santykį"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Norint naudoti NFC reikia panaikinti įrenginio operatoriaus pasirinkimo ribojimą"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Toliau naudoti programas, kai įrenginys sulenktas"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Ekrano glodinimas"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Automatiškai padidinamas kai kurio turinio atnaujinimo dažnis nuo 60 iki <xliff:g id="ID_1">%1$s</xliff:g> Hz. Vartojama daugiau akumuliatoriaus energijos."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Automatiškai padidinamas kai kurio turinio atnaujinimo dažnis iki <xliff:g id="ID_1">%1$d</xliff:g> Hz. Vartojama daugiau akumuliatoriaus energijos."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Priverstinai nustatyti didžiausią atnaujinimo dažnį"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Didžiausias atnaujinimo dažnis, siekiant patobulinti palietimo atsakomumą ir animacijos kokybę. Vartojama daugiau akumuliatoriaus energijos."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Žiūrėjimas į ekraną"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Bendruomenės nustatymai"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Redaguoti prieigos tašką"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Prieigos taško pridėjimas"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Nenustatyta"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Nenustatyta"</string>
     <string name="apn_name" msgid="6677695784108157953">"Pavadinimas"</string>
@@ -1320,6 +1397,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN įgalinta"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN neleidžiama"</string>
     <string name="bearer" msgid="3231443241639159358">"Nešiklis"</string>
+    <string name="network_type" msgid="748590707422733595">"Tinklo tipas"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Nenurodyta"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO tipas"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO vertė"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Ištrinti APN"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Naudokite pritaikomumo mygtuką, kad atidarytumėte"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Norėdami atidaryti, palaikykite garsumo klavišus"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Norėdami atidaryti, triskart palieskite ekraną"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Atidarymas palietus ekraną tris kartus dviem pirštais"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Naudokite gestą, kad atidarytumėte"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Pritaikomumo gesto naudojimas"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Norėdami naudoti šią funkciją, ekrano apačioje palieskite pritaikomumo mygtuką <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>.\n\nJei norite perjungti funkcijas, palieskite ir palaikykite pritaikomumo mygtuką."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Jei norite naudoti šią funkciją, palieskite pritaikomumo mygtuką ekrane."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Norėdami naudoti šią funkciją, paspauskite ir palaikykite abu garsumo klavišus."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Norėdami pradėti ar baigti didinti, triskart palieskite bet kur ekrane."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Jei norite pradėti ar baigti didinti, triskart palieskite bet kurioje ekrano vietoje dviem pirštais."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Norėdami naudoti šią funkciją, perbraukite dviem pirštais aukštyn nuo ekrano apačios.\n\nJei norite perjungti funkcijas, perbraukite aukštyn dviem pirštais ir palaikykite."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Norėdami naudoti šią funkciją, perbraukite trimis pirštais aukštyn nuo ekrano apačios.\n\nJei norite perjungti funkcijas, perbraukite aukštyn trimis pirštais ir palaikykite."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Norėdami naudoti pritaikymo neįgaliesiems funkciją, perbraukite dviem pirštais aukštyn nuo ekrano apačios.\n\nJei norite perjungti funkcijas, perbraukite aukštyn dviem pirštais ir palaikykite."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Laikyti garsumo klavišus"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"laikyti garsumo klavišus"</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_triple_tap" msgid="6687765191490040899">"Ekrano palietimas tris kartus dviem pirštais"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"ekrano palietimas tris kartus dviem pirštais"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"triskart paliesti ekraną"</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>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Vibravimo ir lietimo technologijos naudojimas"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Signalo vibravimas"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Medijos vibravimas"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Klaviatūros vibravimas"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Vibravimas skambant telefonui"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Vibravimas gavus pranešimą"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Lietimo grįžtamasis ryšys"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"Liko: <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"Liko įkrauti: <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g>"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Įrenginio naudojimo laikas"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Laikas fone"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Senka akumuliatorius"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Leiskite vykdyti programą fone"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Apriboti veiklą fone?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Jei apribosite programos veiklą fone, ji gali netinkamai veikti"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Negalite apriboti progr., nes ji nenust. optimiz. akum. naud.\n\nJei norite apr. progr., pirmiausia įj. akum. naud. optimiz."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Akumuliatoriaus energijos vartojimo valdymas"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Leisti naudoti fone"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Įgalinkite, kad gautumėte naujienas realiuoju laiku, arba išjunkite, kad tausotumėte akumuliatoriaus energiją"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Neapribota"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Optimizuota"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Apribota"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"nuo paskutinio visiško įkrovimo"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Sistemos programos"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Pašalintos programos"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Kita"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Liko laiko (numatyta)"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Iki visiško įkrovimo"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Iš viso: mažiau nei minutė"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Fonas: trumpiau nei minutė"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Įrenginio naudojimo laikas: mažiau nei minutė"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Mažiau nei minutė"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Iš viso: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Fonas: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Įrenginio naudojimo laikas: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Mob. r. duom. ir „Wi‑Fi“"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Autom. asmen. duom. sinchron."</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Autom. darbo duom. sinchron."</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Aut. privačių duom. sinchron."</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Keisti ciklą…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Mėnesio diena, kai iš naujo nustatomas naudojimo ciklas:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Šiuo laikotarpiu jokios program. nenaudojo duom."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"teksto dydis, didelis spaudinys, didelis šriftas, didelis tekstas, sutrikusio regėjimo asmuo, padaryti tekstą didesnį, šrifto didinimo priemonė, šrifto padidinimas"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"visada įjungta ekrano užsklanda, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"NFC, žyma, skaitytuvas"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"klaviatūra, lietimo technologija, vibruoti,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Garsumas, vibravimas, netrukdymo režimas"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Medijų garsumas"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Perdavimo garsumas"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Rodyti visą pranešimo turinį"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Neskelbtiną turinį rodyti, tik kai atrakinta"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Visiškai nerodyti pranešimų"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Kaip norite, kad turinys būtų pateiktas užrakinimo ekrane?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Užrakinimo ekranas"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Rodyti visą darbo pranešimų turinį"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Slėpti neskelbtiną darbo turinį"</string>
@@ -3354,6 +3449,17 @@
     <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="6121016426991791557">"Pranešimų neaktyvumo laikotarpis"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Taikyti neaktyvumo laikotarpį visiems pranešimams"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Palaipsniui sumažinti pranešimų garsumą, kai gaunate daug vienas po kito pateikiamų pranešimų iš tos pačios programos"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Taikyti neaktyvumo laikotarpį pokalbiams"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Palaipsniui sumažinti pranešimų garsumą, kai gaunate daug to paties pokalbio pranešimų per trumpą laiką"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Nenaudoti pranešimų neaktyvumo laikotarpio"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Niekada nesumažinti pranešimų garsumo, neatsižvelgiant į vienas po kito pateiktų pranešimų iš tos pačios programos skaičių"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Vibruoti, kai atrakinta"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Vibruoti, tik kai ekranas užrakintas"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Taikyti darbo profiliams"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Taikyti pranešimų neaktyvumo laikotarpio nustatymus iš asmeninio profilio darbo profiliui"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Pagalbinės virtualiosios realybės paslaugos"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Nėra įdiegtų programų, kurios pateikė užklausą būti vykdomos kaip pagalbinės virtualiosios realybės paslaugos."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Leisti „<xliff:g id="SERVICE">%1$s</xliff:g>“ pasiekti virtualiosios realybės paslaugą?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Leisti pasiekti ir tvarkyti visus failus"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Šiai programai leidžiama nuskaityti, keisti ir ištrinti visus failus, esančius šiame įrenginyje ar bet kurioje prijungtoje saugykloje. Jei suteiksite leidimą, programa gali pasiekti failus jūsų tiksliai neinformavus."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Gali pasiekti visus failus"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Suaktyvinimo balsu programos"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Leisti suaktyvinimą balsu"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Aktyvinimo balsu funkcija įjungia patvirtintas programas laisvų rankų režimu naudodama komandą balsu. Integruota prisitaikančio aptikimo funkcija užtikrina, kad duomenis matytumėte tik jūs.\n\n"<a href="">"Daugiau apie apsaugotą prisitaikantį aptikimą"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Pranešimai viso ekrano režimu"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Leisti pranešimus viso ekrano režimu iš šios programos"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Leiskite šiai programai rodyti pranešimus viso ekrano režimu, kai įrenginys užrakintas. Programos gali juos naudoti, kad paryškintų įspėjimus, gaunamuosius skambučius ar kitus skubius pranešimus."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"Programa „<xliff:g id="APP_LABEL">%1$s</xliff:g>“ naudojo daugiau akumuliatoriaus energijos nei įprastai veikdama fone"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"Programa „<xliff:g id="APP_LABEL">%1$s</xliff:g>“ naudojo daugiau akumuliatoriaus energijos veikdama priekiniame plane"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"Programa „<xliff:g id="APP_LABEL">%1$s</xliff:g>“ naudojo daugiau akumuliatoriaus energijos nei įprastai veikdama priekiniame plane"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Didelis akumuliatoriaus energijos vartojimas"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Didelis akumuliatoriaus energijos vartojimas fone"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Didelis akumuliatoriaus energijos vartojimas priekiniame plane"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"sistemos naršymas, naršymas 2 mygtukais, naršymas 3 mygtukais, naršymas gestais, perbraukti"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Skaitmeninis pagelbiklis"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Pagelbiklio iškvietimas perbraukus"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Perbraukite aukštyn iš apatinio kampo, kad iškviestumėte skaitmeninio pagelbiklio programą."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Padėjėjo iškvietimas paspaudus pagrindinio ekrano mygtuką"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Jei norite iškviesti skaitmeninio pagelbiklio programą, paspauskite ir palaikykite pagrindinio ekrano mygtuką."</string>
     <string name="low_label" msgid="6525629096999711220">"Mažas"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"duomenys, „passkey“, slaptažodis"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"automatinis, užpildyti, automatinis pildymas, duomenys, prieigos raktas, slaptažodis"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Įsitikinkite, kad pasitikite šia programa&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=„Google“ automatinis pildymas&gt;%1$s&lt;/xliff:g&gt; naudodamas informaciją ekrane nustato, ką gali užpildyti automatiškai."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Naudoti „&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;“ naudoja ekrane esančią informaciją, kad nustatytų, ką galima automatiškai užpildyti. Nuo šiol čia išsaugomi nauji slaptažodžiai, prieigos raktai ir kita informacija."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Naudokite &lt;xliff:g id=app_name example=„Provider“&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Nuo šiol čia išsaugomi nauji slaptažodžiai, prieigos raktai ir kita informacija. &lt;xliff:g id=app_name example=„Provider“&gt;%1$s&lt;/xliff:g&gt; gali naudoti ekrane esančią informaciją, kad nustatytų, ką galima automatiškai užpildyti."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Slaptažodžiai, prieigos raktai ir duomenų paslaugos"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Išjungti „%1$s“?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Išjungti šį įrenginį?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Išsaugota informacija, pvz., slaptažodžiai, prieigos raktai, mokėjimo metodai ir kita informacija, nebus užpildyta prisijungiant. Jei norite naudoti išsaugotą informaciją, pasirinkite slaptažodį, prieigos raktą arba duomenų paslaugą."</string>
@@ -4226,10 +4338,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <string name="enable_angle_as_system_driver" msgid="4648827560023949786">"Eksperimentas: ANGLE įgalinimas"</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Perspėjimas: įgalinkite ANGLE kaip numatytąją „OpenGL ES“ tvarkyklę. Ši funkcija yra eksperimentinė ir gali būti nesuderinama su kai kuriomis fotoaparato ir vaizdo įrašų programomis."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"Norint pakeisti sistemos „OpenGL ES“ tvarkyklę, būtina paleisti iš naujo"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Programos suderinamumo pakeitimai"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Perjungti programos suderinamumo pakeitimus"</string>
@@ -4860,4 +4970,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Nuskaitoma ieškant apgaulingų programų"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Patikrinkite programų aktyvumą dėl sukčiavimo"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Atlikti apgaulingų programų nuskaitymą"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Atlikti apgaulingų darbo programų nuskaitymą"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-lv/arrays.xml b/res/values-lv/arrays.xml
index fdd5bf8..ca0f276 100644
--- a/res/values-lv/arrays.xml
+++ b/res/values-lv/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Pēc 1 minūtes"</item>
     <item msgid="1574040255478150028">"Pēc 5 minūtēm"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 58ec404..c30fb9f 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Atspējot Bluetooth LE Audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Tiek atspējota Bluetooth LE Audio funkcija, ja ierīcē tiek atbalstītas LE Audio aparatūras iespējas."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"LE Audio slēdzis informācijā par ierīci"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Iespējot Bluetooth LE audio atļaušanas sarakstu"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Iespējojiet funkciju “Bluetooth LE audio atļaušanas saraksts”."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Apiet Bluetooth LE Audio atļaušanas sarakstu"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Pēc noklusējuma izmantot LE Audio, pat ja nav pārbaudīta LE Audio perifērijas ierīces atbilstība atļaušanas saraksta kritērijiem."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Multivides ierīces"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Zvanīšanas ierīces"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Citas ierīces"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Saglabātās ierīces"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Ar kontu saistītās ierīces"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Iepriekš izmantotas ar kontu"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Tiks ieslēgts Bluetooth un izveidots savienojums pārī."</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Savienojuma preferences"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Ierīces, ar kurām savienojums tika izveidots iepriekš"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Rakstīšana teksta laukos"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Vienmēr ignorēt skārienekrāna pildspalvas pogu nospiešanu"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Skārienekrāna pildspalva"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Audio kopīgošana"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Kopīgot audio"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Zvani un signāli"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Datums un laiks"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Starpniekserveris"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Notīrīt"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <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="account_settings_title" msgid="9138880127246241885">"Konti"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Drošība"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Šifrēšana un akreditācijas dati"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Darba profils"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Privātā mape"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Paslēpiet lietotnes privātā mapē."</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Atbloķēt, izmantojot ekrāna bloķēšanas metodi"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Parādīt privāto mapi"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Paslēpšana, kamēr šī mape ir bloķēta"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Privātās mapes paslēpšana, kamēr tā ir bloķēta"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Lai citi nezinātu, ka ierīcē ir privātā mape, varat paslēpt to no lietotņu saraksta."</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Piekļūstiet privātajai mapei, kamēr tā ir paslēpta"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Meklēšanas joslā meklējiet “privātā mape”."</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Pieskarieties elementam “Privātā mape”."</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Atbloķējiet privāto mapi."</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Izslēgta"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Ieslēgta"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Sistēma"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Izveidot privātu mapi"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Dzēst privāto mapi"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Privātā mape ir sekmīgi izveidota."</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Privātā mape jau pastāv."</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Privāto mapi nevarēja izveidot."</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Privātā mape ir sekmīgi izdzēsta."</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Privāto mapi nevarēja izdzēst."</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Ekrāna bloķēšanas iestatīšana"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Lai izmantotu privāto mapi, iestatiet ekrāna bloķēšanu šajā ierīcē."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Iestatīt ekrāna bloķēšanu"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Atcelt"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Atcelt"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Iestatīt"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Privātās mapes iestatīšana"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Paslēpiet privātas lietotnes drošā vietā, kam varēsiet piekļūt tikai jūs."</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Darbības principi"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Varat piekļūt privātajai mapei lietotņu saraksta apakšdaļā."</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Bloķēšana aizsargā privātajā mapē ievietotās lietotnes."</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Kamēr privātā mape ir bloķēta, paziņojumi no tajā ievietotajām lietotnēm tiek slēpti."</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Kamēr privātā mape ir bloķēta, tajā ievietotās lietotnes netiek rādītas atļauju pārvaldniekā, konfidencialitātes informācijas panelī un citos iestatījumos."</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Notiek privātās mapes iestatīšana…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Privātā mape tiek aizsargāta, izmantojot bloķēšanu"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Lietojuma informācija par privātās mapes lietotnēm tiek slēpta, kamēr mape ir bloķēta"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Varat piekļūt privātajai mapei lietotņu sarakstā"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Nevarēja iestatīt privāto mapi"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Mēģiniet vēlreiz tūlīt vai atgriezieties vēlāk."</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Mēģināt vēlreiz"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Vai atbloķēt ar ekrāna bloķēšanas opciju?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Varat atbloķēt privāto mapi tāpat kā ierīci vai izvēlēties citu bloķēšanas metodi."</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Izmantot ekrāna bloķēšanas opciju"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Izvēlēties jaunu bloķēšanas metodi"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Gatavs!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Lai piekļūtu privātajai mapei, velciet augšup no sākuma ekrāna apakšdaļas un pēc tam ritiniet lejup."</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Gatavs"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Lai piekļūtu privātajai mapei, ritiniet lejup."</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Pierakstieties, lai iestatītu privātu telpu"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Varat pievienot līdz <xliff:g id="COUNT">%d</xliff:g> pirkstu nospiedumiem."</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Jūs esat pievienojis maksimālo pirkstu nospiedumu skaitu."</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Nevar pievienot citus pirkstu nospiedumus."</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Izveidot savienojumu"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Atvienot"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Izveidot pāri un savienojumu"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Kad Bluetooth ir ieslēgts, ierīce var sazināties ar citām Bluetooth ierīcēm tuvumā."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Kad ir ieslēgts Bluetooth savienojums, jūsu ierīce var sazināties ar tuvumā esošām Bluetooth ierīcēm.\n\nLai uzlabotu ierīču izmantošanas iespējas, lietotnes un pakalpojumi var meklēt tuvumā esošas ierīces jebkurā laikā, pat ja Bluetooth savienojums ir izslēgts. Šo iestatījumu var izmantot, piemēram, lai uzlabotu ar atrašanās vietu saistītas funkcijas un pakalpojumus, un to var mainīt Bluetooth meklēšanas iestatījumos."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Mainīt"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Ierīces dati"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Atļaut ART verificēt atkļūdojamu lietotņu bitu kodu"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Rādīt atsvaidzin. biežumu"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Rādīt pašreizējo displeja atsvaidzināšanas biežumu"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Rādīt HDR/SDR attiecību"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Rādīt pašreizējo HDR/SDR attiecību"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Pieprasīt ierīces atbloķēšanu tehnoloģijai NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Turpināt izmantot lietotnes, kad ierīce ir salocīta"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Noteikta satura atsvaidzināšanas biežums tiek automātiski palielināts no 60 līdz <xliff:g id="ID_1">%1$s</xliff:g> Hz. Tas palielina akumulatora lietojumu."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Noteikta satura atsvaidzināšanas biežums tiek automātiski palielināts līdz <xliff:g id="ID_1">%1$d</xliff:g> Hz. Tas palielina akumulatora lietojumu."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Piespiedu maksimālais atsvaidzināšanas biežums"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Augstākais atsvaidzināšanas biežums uzlabotai reakcijai uz pieskārienu un labākai animācijas kvalitātei. Tas palielina akumulatora lietojumu."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Atpazīšana ekrānā"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Kopīgie iestatījumi"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Rediģēt piekļuves punktu"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Piekļuves punkta pievienošana"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Nav iestatīts"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Nav iestatīts"</string>
     <string name="apn_name" msgid="6677695784108157953">"Nosaukums"</string>
@@ -1320,6 +1397,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN ir iespējots"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN ir atspējots"</string>
     <string name="bearer" msgid="3231443241639159358">"Nesējs"</string>
+    <string name="network_type" msgid="748590707422733595">"Tīkla veids"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Nav norādīts"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO veids"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO vērtība"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Dzēst APN"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Pieejamības pogas izmantošana atvēršanai"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Lai atvērtu, turiet nospiestas skaļuma pogas"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Lai atvērtu, trīsreiz pieskarieties ekrānam"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Lai atvērtu, ar diviem pirkstiem trīsreiz pieskarieties ekrānam"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Žesta izmantošana atvēršanai"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Pieejamības žesta izmantošana"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Lai izmantotu šo funkciju, ekrāna apakšdaļā pieskarieties pieejamības pogai <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>.\n\nLai pārslēgtu funkcijas, pieskarieties pieejamības pogai un turiet to."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Lai izmantotu šo funkciju, pieskarieties ekrānā esošajai pieejamības pogai."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Lai izmantotu šo funkciju, nospiediet un turiet abas skaļuma pogas."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Lai sāktu un apturētu palielināšanu, trīsreiz pieskarieties jebkurā ekrāna vietā."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Lai sāktu un apturētu palielināšanu, ar diviem pirkstiem trīsreiz pieskarieties jebkur ekrānā."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Lai izmantotu šo funkciju, ar diviem pirkstiem velciet augšup no ekrāna apakšdaļas.\n\nLai pārslēgtu funkcijas, velciet augšup ar diviem pirkstiem un turiet."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Lai izmantotu šo funkciju, ar trīs pirkstiem velciet augšup no ekrāna apakšdaļas.\n\nLai pārslēgtu funkcijas, velciet augšup ar trīs pirkstiem un turiet."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Lai izmantotu pieejamības funkciju, ar diviem pirkstiem velciet augšup no ekrāna apakšdaļas.\n\nLai pārslēgtu funkcijas, velciet augšup ar diviem pirkstiem un turiet."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Turēt nospiestas skaļuma pogas"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"turiet nospiestus 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_triple_tap" msgid="6687765191490040899">"Trīskāršais skāriens uz ekrāna ar diviem pirkstiem"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"trīskāršais skāriens uz ekrāna ar diviem pirkstiem"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"trīsreiz pieskarieties ekrānam"</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>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Izmantot vibrāciju un vibrāciju pieskaroties"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Signāla vibrācija"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Multivides atskaņošanas vibrācija"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Tastatūras vibrācija"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Zvana vibrācija"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Paziņojuma vibrācija"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Pieskarieties vienumam Atsauksmes"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> — <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"Vēl <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"Atlikušais uzlādes laiks: <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g>"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Izmantošanas ilgums"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Lietošanas fonā ilgums"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Zems akumulatora uzlādes līmenis"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Atļaut lietotnei darboties fonā"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Vai ierobežot darbību fonā?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Ierobežojot lietotnes darbību fonā, var rasties šīs lietotnes darbības traucējumi."</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Lietotnei nav iestatīta akumulatora optimizācija, tāpēc to nevar ierobežot.\n\nVispirms iestatiet akumulatora optimizāciju."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Akumulatora lietojuma pārvaldība"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Atļauja lietojumam fonā"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Iespējojiet, lai saņemtu reāllaika atjauninājumus; atspējojiet, lai taupītu akumulatora enerģiju."</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Neierobežots"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Optimizēts"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Ierobežoti"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"kopš pēdējās pilnās uzlādes"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Sistēmas lietotnes"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Atinstalētas lietotnes"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Citi"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Plānotais atlikušais laiks"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Līdz pilnai uzlādei"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Kopā: mazāk par minūti"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Fonā: mazāk par minūti"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Izmantošanas ilgums: mazāk par minūti"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Mazāk nekā minūti"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Kopā: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Fonā: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Izmantošanas ilgums: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Mobilie dati un Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Autom. sinhronizēt pers. datus"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Autom. sinhronizēt darba datus"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Automātiski sinhronizēt privātus datus"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Mainīt ciklu..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Mēneša diena, kad tiks atiestatīts datu izmantošanas cikls:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Šajā periodā lietotnes neizmantoja datus."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"teksta lielums, lieli burti, lieli fonti, liels teksts, vājredzība, padarīt tekstu lielāku, fontu palielinātājs, fontu palielināšana"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"vienmēr ieslēgts ambientajā režīmā, nepārtraukti aktīvs displejs"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, atzīme, lasītājs"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"tastatūra, haptiskā tehnoloģija, vibrācija,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Skaļums, vibrācija, režīms “Netraucēt”"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Multivides skaļums"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Apraides skaļums"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Rādīt visu paziņojumu saturu"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Rādīt sensitīvu saturu tikai, kad atbloķēts"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Nerādīt paziņojumus vispār"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Kā rādīt paziņojumus bloķēšanas ekrānā?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Bloķēšanas ekrāns"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Rādīt visu saturu darba profila paziņojumos"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Paslēpt sensitīvu darba profila saturu"</string>
@@ -3354,6 +3449,17 @@
     <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="6121016426991791557">"Nogaidīšanas periods paziņojumiem"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Lietot nogaidīšanas periodu visiem paziņojumiem"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Pakāpeniski samazināt paziņojumu skaitu, ja saņemat daudz secīgu paziņojumu no vienas lietotnes"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Lietot nogaidīšanas periodu sarunām"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Pakāpeniski samazināt paziņojumu skaitu, ja saņemat daudz ziņojumu vienā sarunā īsā laika periodā"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Neizmantot nogaidīšanas periodu paziņojumiem"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Nekad nesamazināt paziņojumu skaitu neatkarīgi no tā, cik daudz secīgu paziņojumu saņemat no vienas lietotnes"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Vibrēt atbloķējot"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Tikai vibrēt, kad ekrāns tiek atbloķēts"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Lietot darba profiliem"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Lietot darba profilā iestatījumus no personīgā profila attiecībā uz nogaidīšanas periodu paziņojumiem"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR palīga pakalpojumi"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Nevienai instalētajai lietotnei nav pieprasīta palaišana kā VR palīga pakalpojumam."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Vai atļaut VR pakalpojumam piekļūt pakalpojumam <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Atļaut piekļuvi visu failu pārvaldībai"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Atļaujiet šai lietotnei lasīt, pārveidot un dzēst visus failus šajā ierīcē vai pievienotajās atmiņas ierīcēs. Ja piešķirsiet atļauju, lietotne varēs piekļūt failiem, jums par to nezinot."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Var piekļūt visiem failiem"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Ar balsi aktivizētas lietotnes"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Atļaut aktivizāciju ar balsi"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Izmantojot aktivizāciju ar balsi, brīvroku režīmā ar balss komandu tiek ieslēgtas apstiprinātās lietotnes. Iebūvētā adaptīvā klātbūtnes noteikšana nodrošina, ka datiem varat piekļūt tikai jūs.\n\n"<a href="">"Plašāka informācija par aizsargāto adaptīvo klātbūtnes noteikšanu"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Pilnekrāna paziņojumi"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Atļaut šīs lietotnes pilnekrāna paziņojumus"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Atļaujiet šai lietotnei rādīt paziņojumus pilnekrāna režīmā, kad ierīce ir bloķēta. Lietotnes var šādi izcelt signālus, ienākošos zvanus vai citus svarīgus paziņojumus."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> patērēja vairāk akumulatora enerģijas nekā parasti, darbojoties fonā"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> patērēja vairāk akumulatora enerģijas, darbojoties priekšplānā"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> patērēja vairāk akumulatora enerģijas nekā parasti, darbojoties priekšplānā"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Augsts akumulatora lietojums"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Augsts akumulatora lietojums fonā"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Augsts akumulatora lietojums priekšplānā"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"sistēmas navigācija, 2 pogu navigācija, 3 pogu navigācija, žestu navigācija, vilkšana"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Digitālais asistents"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Vilkšana, lai izsauktu asistentu"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Lai izsauktu digitālā asistenta lietotni, velciet augšup no apakšējā stūra."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Lai izsauktu Asistentu, nospiediet un turiet pogu Sākums"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Nospiediet un turiet pogu Sākums, lai izsauktu digitālā asistenta lietotni."</string>
     <string name="low_label" msgid="6525629096999711220">"Zems"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"dati, piekļuves atslēga, parole"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"automātiskā aizpilde, automātiski aizpildīt, dati, piekļuves atslēga, parole"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Pārliecinieties, ka šī lietotne ir uzticama&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google automātiskā aizpilde&gt;%1$s&lt;/xliff:g&gt; izmanto ekrānā redzamo, lai noteiktu, kādu informāciju aizpildīt automātiski."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Izmantojiet lietotni &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Lietotne &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; izmanto ekrānā redzamo saturu, lai noteiktu, kādu informāciju var aizpildīt automātiski. Turpmāk jaunās paroles, piekļuves atslēgas un cita informācija tiks saglabāta šeit."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Izmantojiet lietotni &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Turpmāk jaunās paroles, piekļuves atslēgas un cita informācija tiks saglabāta šeit. Lietotne &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; var izmantot ekrānā redzamo saturu, lai noteiktu, kādu informāciju var aizpildīt automātiski."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Paroles, piekļuves atslēgas un datu pakalpojumi"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Vai izslēgt pakalpojumu %1$s?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Vai izslēgt šo pakalpojumu?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Pierakstoties netiks aizpildīta saglabātā informācija, piemēram, paroles, piekļuves atslēgas, maksājumu veidi un cita informācija. Lai izmantotu saglabāto informāciju, izvēlieties paroli, piekļuves atslēgu vai datu pakalpojumu."</string>
@@ -4226,10 +4338,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <string name="enable_angle_as_system_driver" msgid="4648827560023949786">"Eksperimentāla funkcija: iespējojiet ANGLE"</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Brīdinājums: iespējojiet ANGLE kā noklusējuma OpenGL ES draiveri. Šī funkcija ir eksperimentāla un var nebūt saderīga ar noteiktām kameras un video lietotnēm."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"Lai mainītu sistēmas OpenGL ES draiveri, nepieciešama atkārtota palaišana."</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Lietotņu saderības iestatījumu izmaiņas"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Pārslēdziet lietotņu saderības iestatījumu izmaiņas"</string>
@@ -4788,10 +4898,8 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Malu attiecība"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"Ja šīs lietotnes noformējums neatbilst jūsu ierīces (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>) izmēriem, lietotnes skatīšanai izmēģiniet jaunu malu attiecību."</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Ja šīs lietotnes noformējums neatbilst jūsu ierīces (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>) izmēriem, lietotnes skatīšanai izmēģiniet jaunu malu attiecību. Dažas lietotnes var nebūt optimizētas noteiktām malu attiecībām."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Ja lietotnes noformējums neatbilst jūsu ierīces (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>) izmēriem, lietotnes skatīšanai izmēģiniet jaunu malu attiecību."</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Ja lietotnes noformējums neatbilst jūsu ierīces (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>) izmēriem, lietotnes skatīšanai izmēģiniet jaunu malu attiecību. Dažas lietotnes var nebūt optimizētas noteiktām malu attiecībām."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Ieteiktās lietotnes"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Mainītās lietotnes"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Lietotnes noklusējums"</string>
@@ -4861,4 +4969,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Meklēt maldinošas lietotnes"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Pārbaudīt, vai lietotnē tiek veikta pikšķerēšana"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Izmantot maldinošu lietotņu meklēšanu"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Izmantot maldinošu darba lietotņu meklēšanu"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-mk/arrays.xml b/res/values-mk/arrays.xml
index 25a86b2..4e3b715 100644
--- a/res/values-mk/arrays.xml
+++ b/res/values-mk/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"По 1 минута"</item>
     <item msgid="1574040255478150028">"По 5 минути"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 73bebd7..29981e1 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Оневозможи Bluetooth LE Audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Ја оневозможува функцијата Bluetooth LE Audio ако уредот поддржува хардверски способности за LE Audio."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Прекинувач за LE Audio во „Детали за уредот“"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Овозможи список со дозволени за Bluetooth LE Audio"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Овозможи ја функцијата за список со дозволени за Bluetooth LE Audio."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Игнорирај го списокот со дозволени за Bluetooth LE Audio"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Користи LE Audio стандардно дури и ако не е потврдено дека периферното LE Audio ги исполнува критериумите на списокот со дозволени."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Преносливи уреди"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Уреди за повикување"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Други уреди"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Зачувани уреди"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Поврзано со сметка"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Претходно користено со сметката"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth ќе се вклучи за спарување"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Поставки за врски"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Претходно поврзани"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Пишувајте во текстуалните полиња"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Игнорирајте ги сите притискања на копчето на пенкалото"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Пенкало"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Споделување аудио"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Споделете го аудиото"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Повици и аларми"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Датум и време"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Прокси"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Избриши"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Се вчитува…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Апликациите со дозвола за пристап до уредите во близина може да ја утврдуваат релативната положба на поврзаните уреди."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Пристапот до локацијата е исклучен за апликации и услуги. Сепак, можно е локацијата на уредот да се испрати до службите за спасување во итни случаи кога ќе ги повикате или кога ќе испратите порака на број за итни случаи."</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Дознајте повеќе за „Поставките за локација“"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Сметки"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Безбедност"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Шифрирање и акредитиви"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Работен профил"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Приватен простор"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Скријте ги апликациите во приватна папка"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Отклучете со заклучувањето екран"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Прикажи „Приватен простор“"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Скриј кога уредот е заклучен"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Скриј го „Приватниот простор“ кога е заклучен"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"За да спречите други луѓе да знаат дека „Приватниот простор“ е на вашиот уред, може да го скриете од списокот со апликации"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Пристапете до „Приватен простор“ кога е скриен"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Пребарајте „Приватен простор“ во полето за пребарување"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Допрете ја плочката „Приватен простор“"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Отклучете го вашиот „Приватен простор“"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Исклучено"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Вклучено"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Систем"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Создајте „Приватен простор“"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Избришете го „Приватниот простор“"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"„Приватниот простор“ е успешно создаден"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"„Приватниот простор“ веќе постои"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"„Приватниот простор“ не можеше да се создаде"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"„Приватниот простор“ е успешно избришан"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"„Приватниот простор“ не можеше да се избрише"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Поставете заклучување екран"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"За да користите „Приватен простор“, поставете заклуч. екран."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Поставете заклучување екран"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Откажи"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Откажи"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Постави"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Поставете „Приватен простор“"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Скријте ги приватните апликации во безбеден простор до кој може да пристапите само вие"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Како функционира"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Може да пристапите до „Приватен простор“ од дното на списокот со апликации"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Апликациите во „Приватен простор“ се заштитени со заклучување"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Известувањата од апликациите во „Приватниот простор“ се скриени кога е заклучен"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Апликациите во „Приватниот простор“ нема да се појавуваат во управникот со дозволи, контролната табла за приватност и другите поставки кога „Приватен простор“ е заклучен"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Се поставува „Приватен простор“…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"„Приватниот простор“ е заштитен со заклучување"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Податоците за користењето за апликациите во „Приватниот простор“ се скриени кога е заклучен"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Пристапете до „Приватен простор“ од списокот со апликации"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Не можеше да се постави „Приватен простор“"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Обидете се повторно сега или вратете се подоцна"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Обиди се пак"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Да се користи заклучување екран за отклучување?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Може да го отклучите „Приватен простор“ исто како што го отклучувате уредот или да изберете друг начин на заклучување"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Користете заклучување екран"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Изберете нов начин на заклучување"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Готово!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"За да пристапите до „Приватен простор“, повлечете нагоре од дното на почетниот екран, а потоа лизгајте надолу"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Готово"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Лизгајте надолу за да пристапите до „Приватен простор“"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Најавете се за да поставите „Приватен простор“"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Може да додадете до <xliff:g id="COUNT">%d</xliff:g> отпечатоци"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Додадовте максимален број на отпечатоци"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Не може да се додадат повеќе отпечатоци"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Поврзи се"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Прекини врска"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Спари и поврзи"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Кога е вклучен Bluetooth, уредот може да комуницира со други уреди со Bluetooth во близина."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Кога Bluetooth е вклучен, вашиот уред може да комуницира со другите уреди со Bluetooth во близина.\n\nЗа да се подобри доживувањето со уредот, апликациите и услугите сепак може да скенираат уреди во близина во секое време, дури и кога Bluetooth е исклучен. Ова може да се користи, на пример, за да се подобрат функциите и услугите според локација. Може да го промените во поставките за „Скенирање за Bluetooth“."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Промени"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Детали за уредот"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Дозволете ART да го потврдува бајт-кодот за апликациите од кои може да се отстрануваат грешки"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Прикажувај стапка на освежување"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Прикажувај ја тековната стапка на освежување на екранот"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Прикажи сооднос HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Прикажи го тековниот сооднос HDR/SDR"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Барај уредот да биде отклучен за NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Продолжете да ги користите апликациите при преклопување"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Течен приказ"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Автоматски ја зголемува стапката на освежување од 60 на <xliff:g id="ID_1">%1$s</xliff:g> Hz за некои содржини. Го зголемува користењето на батеријата."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Автоматски ја зголемува стапката на освежување до <xliff:g id="ID_1">%1$d</xliff:g> Hz за одредени содржини. Го зголемува користењето на батеријата."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Наметни максимална стапка на освежување"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Највисока стапка на освежување за подобрена реакција на допир и квалитет на анимацијата. Го зголемува користењето на батеријата."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Вклучен екран"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Заеднички поставки"</string>
     <string name="apn_settings" msgid="4295467389400441299">"Поставки за APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Изменете ја пристапната точка"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Додајте пристапна точка"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Не е поставено"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Не е поставено"</string>
     <string name="apn_name" msgid="6677695784108157953">"Име"</string>
@@ -1320,6 +1397,8 @@
     <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="network_type" msgid="748590707422733595">"Тип мрежа"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Неодреденo"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Тип MVNO"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"Вредност на MVNO"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Избриши APN"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Отворање со копчето за пристапност"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Држете ги копчињата за јачина на звук за отворање"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Допрете го екранот трипати за отворање"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Допрете на екранот трипати со два прста за да отворите"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Користете движење за да отворите"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Користете го движењето за пристапност"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"За да ја користите функцијава, допрете го копчето за пристапност <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> на дното на екранот.\n\nЗа префрлање помеѓу функциите, допрете и задржете го копчето за пристапност."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"За да ја користите функцијава, допрете го копчето за пристапност на екранот."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"За да ја користите функцијава, притиснете и задржете ги двете копчиња за јачина на звук."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"За почеток и крај на зголемувањето, допрете трипати каде било на екранот."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"За да го започнете и запрете зголемувањето, допрете каде било на екранот трипати со два прста."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"За да ја користите функцијава, повлечете нагоре од дното на екранот со два прста.\n\nЗа да се префрлите на друга функција, повлечете нагоре со два прста и задржете."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"За да ја користите функцијава, повлечете нагоре од дното на екранот со три прста.\n\nЗа префрлање помеѓу функциите, повлечете нагоре со три прста и задржете."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"За да користите функција за пристапност, повлечете нагоре од дното на екранот со два прста.\n\nЗа да се префрлите на друга функција, повлечете нагоре со два прста и задржете."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Задржете ги копчињата за јачина на звук"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"задржете ги копчињата за јачина на звук"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Притиснете и задржете ги двете копчиња за јачина на звук"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"Допрете го екранот трипати со два прста"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"допрете го екранот трипати со два прста"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"Брзо допрете го екранот {0,number,integer} пати со два прста"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Троен допир на екранот"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"допрете трипати на екранот"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Брзо допрете го екранот {0,number,integer} пати Оваа кратенка може да го забави уредот"</string>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Користи вибрации и хаптика"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Вибрации за аларм"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Вибрации за аудиовизуелни содржини"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Вибрации на тастатурата"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Вибрации при ѕвонење"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Вибрации при известување"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Вибрации при допир"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"Преостануваат <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> до полнење"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Време на користење"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Време во заднина"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Слаба батерија"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Дозволете апликацијата да работи во заднина"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Да се ограничи активноста во заднина?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Апликацијата може да се однесува необично ако ја ограничите нејзината активност во заднина"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Апликацијава не е оптимизирана и не може да се ограничи.\n\nЗа да ја ограничите, прво вклучете оптимизација на батеријата."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Управувајте со користењето на батеријата"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Овозможете користење во заднина"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Овозможете за ажурирања во реално време, оневозможете за да заштедите батерија"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Неограничено"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Оптимизирано"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Ограничено"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"од последното целосно полнење"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Системски апликации"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Деинсталирани апликации"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Други"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Проценето преостанато време"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"До целосно полнење"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Вкупно: помалку од една минута"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Во заднина: помалку од минута"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Време на користење: помалку од минута"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Помалку од една минута"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Вкупно: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Во заднина: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Време на користење: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Мобилен интернет и Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Авто. синхрон. лични подат."</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Авто. синхрон. службени подат."</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Авто. синхр. на прив. податоци"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Промени циклус..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Ден од месецот за ресетирање циклус на користење на интернет:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Нема податоци за користење апликации во овој период."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"големина на текст, големи букви, голем фонт, голем текст, слаб вид, зголемување текст, фонт, зголеми, зголеми фонт"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"секогаш вклучено амбиентален екран, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"NFC, ознака, читач"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"тастатура, хаптика, вибрации,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Јачина на звук, вибрации и „Не вознемирувај“"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Јачина на аудио/видео звук"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Јачина на звук на емитување"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Прикажувај ги сите содржини од известувањата"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Прикажувај чувствителни содржини само кога е отклучен"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Воопшто не прикажувај известувања"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Што сакате да се прикажува на заклучениот екран?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Заклучен екран"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Прикажувај ги сите известувања од работниот профил"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Скриј чувствителни работни содржини"</string>
@@ -3354,6 +3449,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Апликацијава не поддржува подобрени поставки"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Повеќе поставки"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Повеќе поставки се достапни во апликацијава"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Намалување на известувањата"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Намали ги сите известувања"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Постепено намалувајте ја јачината на звукот на известувањата кога добивате многу последователни известувања од истата апликација"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Намали ги разговорите"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Постепено намалувајте ја јачината на звукот на известувањата кога добивате многу пораки од истиот разговор за кус период"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Не намалувај ги известувањата"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Никогаш не намалувајте ја јачината на звукот на известувањата, независно од бројот последователни известувања од истата апликација"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Вибрирај кога е отклучен"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Вибрирај само кога екранот е отклучен"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Примени на работни профили"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Применете ги поставките за намалување на известувањата од приватниот на работниот профил"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR помошни услуги"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Ниедна инсталирана апликација не побара да се извршува како VR помошните услуги."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Да се дозволи пристап до VR-услугата за <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Дозволи пристап за управување со датотеки"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Дозволете апликацијава да ги чита, менува и брише сите датотеки на уредов или на поврзаните мемориски уреди. Ако се дозволи, апликацијата може да пристапува до датотеките без ваше изречно знаење."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Може да пристапува до сите датотеки"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Апликации со активирање со глас"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Дозволете активирање со глас"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Активирањето со глас ги вклучува одобрените апликации, без користење на рацете, со гласовна наредба. Вградениот адаптивен сензор гарантира дека податоците ќе останат приватни само за вас.\n\n"<a href="">"Дознајте повеќе за заштитениот адаптивен сензор"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Известувања на цел екран"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Дозволете известувања на цел екран од оваа апликација"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Дозволете апликацијава да прикажува известувања што го заземаат целиот екран кога уредот е заклучен. Апликациите може да ги користат овие известувања за да ги истакнуваат алармите, дојдовните повици или други итни известувања."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> троши повеќе батерија од вообичаено додека работи во заднина"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> троши повеќе батерија додека работи во преден план"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> троши повеќе батерија од вообичаено додека работи во преден план"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Голема потрошувачка на батеријата"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Голема потрошувачка на батеријата во заднина"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Голема потрошувачка на батеријата во преден план"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"навигација на системот, навигација со 2 копчиња, навигација со 3 копчиња, навигација со движење, повлечи"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Дигитален помошник"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Повлечете за да го повикате помошникот"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Повлечете нагоре од долниот агол за да ја повикате апликацијата за дигитален помошник."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Задржете го копчето за почетен екран за „Помошник“"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Притиснете и задржете го копчето за почетен екран за да ја повикате апликацијата за дигитален помошник."</string>
     <string name="low_label" msgid="6525629096999711220">"Ниска"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"мобилен интернет, криптографски клуч, лозинка"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"автоматски, пополнување, автоматско пополнување, податоци, криптографски клуч, лозинка"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Проверете дали е ова апликација на која ѝ верувате&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=„Автоматско пополнување на Google“&gt;%1$s&lt;/xliff:g&gt; го користи она што е на екранот за да утврди што може автоматски да се пополни."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&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_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Use &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_picker_title" msgid="8191267620665129205">"Услуги за лозинки, криптографски клучеви и податоци"</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>
@@ -4226,10 +4338,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <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="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>
@@ -4858,4 +4968,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Скенирање измамнички апликации"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Проверка на активноста во апликацијата за фишинг"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Користи скенирање за измамнички апликации"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Користи скенирање за измамнички апликации за работа"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-ml/arrays.xml b/res/values-ml/arrays.xml
index b233808..b2f97f8 100644
--- a/res/values-ml/arrays.xml
+++ b/res/values-ml/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"ഒരു മിനിറ്റിന് ശേഷം"</item>
     <item msgid="1574040255478150028">"5 മിനിറ്റിന് ശേഷം"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 031da88..53ea501 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Bluetooth LE ഓഡിയോ പ്രവർത്തനരഹിതമാക്കുക"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"ഉപകരണം LE ഓഡിയോ ഹാർഡ്‌വെയർ ശേഷികളെ പിന്തുണയ്‌ക്കുന്നുണ്ടെങ്കിൽ Bluetooth LE ഓഡിയോ ഫീച്ചർ പ്രവർത്തനരഹിതമാക്കുന്നു."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"ഉപകരണ വിശദാംശങ്ങളിൽ LE ഓഡിയോ ടോഗിൾ കാണിക്കൂ"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Bluetooth LE ഓഡിയോ അനുവദനീയ ലിസ്റ്റ് പ്രവർത്തനക്ഷമമാക്കുക"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Bluetooth LE ഓഡിയോ അനുവദനീയ ലിസ്റ്റ് ഫീച്ചർ പ്രവർത്തനക്ഷമമാക്കുക."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Bluetooth LE ഓഡിയോ വൈറ്റ്ലിസ്റ്റ് ബൈപാസ് ചെയ്യുക"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"LE ഓഡിയോ പെരിഫറൽ, വൈറ്റ്ലിസ്റ്റ് മാനദണ്ഡം പാലിക്കുന്നുണ്ടോയെന്ന് പരിശോധിച്ചുറപ്പിച്ചിട്ടില്ലെങ്കിലും ഡിഫോൾട്ടായി LE ഓഡിയോ ഉപയോഗിക്കുക."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"മീഡിയ ഉപകരണങ്ങൾ"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"കോൾ ഉപകരണങ്ങൾ"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"മറ്റ് ഉപകരണങ്ങൾ"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"സംരക്ഷിച്ച ഉപകരണങ്ങൾ"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"അക്കൗണ്ടുമായി ബന്ധപ്പെടുത്തിയിരിക്കുന്നു"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"മുമ്പ് അക്കൗണ്ടിൽ ഉപയോഗിച്ചത്"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"ജോടിയാക്കുന്നതിന് Bluetooth ഓണാക്കും"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"കണക്ഷൻ മുൻഗണനകൾ"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"മുമ്പ് കണക്‌റ്റ് ചെയ്‌തവ"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"ടെക്‌സ്‌റ്റ് ഫീൽഡുകളിൽ എഴുതുക"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"സ്‌റ്റൈലസ് ബട്ടൺ അമർത്തൽ ഒഴിവാക്കുക"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"സ്‌റ്റൈലസ്"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"ഓഡിയോ പങ്കിടൽ"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"ഓഡിയോ പങ്കിടൂ"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"കോളുകളും അലാറങ്ങളും"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"തീയതിയും സമയവും"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"പ്രോക്‌സി"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"മായ്‌ക്കുക"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"ലോഡ് ചെയ്യുന്നു…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"സമീപമുള്ള ഉപകരണങ്ങളുടെ അനുമതിയുള്ള ആപ്പുകൾക്ക്, കണക്‌റ്റ് ചെയ്‌തിരിക്കുന്ന ഉപകരണങ്ങളുടെ ആപേക്ഷിക സ്ഥാനം നിർണ്ണയിക്കാനാകും."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ആപ്പുകൾക്കും സേവനങ്ങൾക്കും ലൊക്കേഷൻ ആക്‌സസ് ഓഫാണ്. നിങ്ങൾ അടിയന്തര നമ്പറിലേക്ക് കോൾ ചെയ്യുമ്പോഴോ ടെക്‌സ്‌റ്റ് ചെയ്യുമ്പോഴോ നിങ്ങളുടെ ഉപകരണ ലൊക്കേഷൻ, അടിയന്തര സാഹചര്യത്തിൽ പ്രതികരിക്കുന്നവർക്ക് തുടർന്നും അയച്ചേക്കാം."</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ലൊക്കേഷൻ ക്രമീകരണത്തെക്കുറിച്ച് കൂടുതലറിയുക"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"അക്കൗണ്ടുകൾ"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"സുരക്ഷ"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"എൻക്രിപ്‌ഷനും ക്രെഡന്‍ഷ്യലുകളും"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"ഔദ്യോഗിക പ്രൊഫൈൽ"</string>
     <string name="private_space_title" msgid="7078627930195569767">"സ്വകാര്യ Space"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"സ്വകാര്യ ഫോൾഡറിൽ ആപ്പുകൾ മറയ്‌ക്കുക"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"സ്ക്രീൻ ലോക്ക് ഉപയോഗിച്ച് അൺലോക്ക് ചെയ്യുക"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"സ്വകാര്യ Space കാണിക്കുക"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"ലോക്ക് ചെയ്‌തിരിക്കുമ്പോൾ മറയ്ക്കൂ"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"ലോക്ക് ചെയ്തിരിക്കുമ്പോൾ സ്വകാര്യ സ്പേസ് മറയ്ക്കുക"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"ഉപകരണത്തിലെ സ്വകാര്യ സ്പേസ് ആരും അറിയാതിരിക്കാൻ ആപ്പ് ലിസ്റ്റിൽ നിന്ന് അത് മറയ്ക്കാം"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"മറച്ചിരിക്കുമ്പോൾ സ്വകാര്യ സ്പേസ് ആക്സസ് ചെയ്യൂ"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"തിരയൽ ബാറിൽ \'സ്വകാര്യ സ്പേസ്\' എന്ന് തിരയുക"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"സ്വകാര്യ സ്പേസ് ടൈൽ ടാപ്പ് ചെയ്യുക"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"നിങ്ങളുടെ സ്വകാര്യ സ്പേസ് അൺലോക്ക് ചെയ്യുക"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"ഓഫാണ്"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"ഓണാണ്"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"സിസ്റ്റം"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"സ്വകാര്യ Space സൃഷ്ടിക്കുക"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"സ്വകാര്യ Space ഇല്ലാതാക്കുക"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"സ്വകാര്യ Space സൃഷ്ടിച്ചു"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"സ്വകാര്യ Space നിലവിലുണ്ട്"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"സ്വകാര്യ Space സൃഷ്ടിക്കാനായില്ല"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"സ്വകാര്യ Space ഇല്ലാതാക്കി"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"സ്വകാര്യ Space ഇല്ലാതാക്കാനായില്ല"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"സ്‌ക്രീൻ ലോക്ക് സജ്ജീകരിക്കൂ"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"സ്വകാര്യ സ്പേസിന് ഈ ഉപകരണത്തിൽ സ്ക്രീൻ ലോക്ക് സജ്ജീകരിക്കൂ."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"സ്‌ക്രീൻ ലോക്ക് സജ്ജീകരിക്കൂ"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"റദ്ദാക്കൂ"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"റദ്ദാക്കുക"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"സജ്ജീകരിക്കുക"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"സ്വകാര്യ സ്പേസ് സജ്ജീകരിക്കുക"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"നിങ്ങൾക്ക് മാത്രം ആക്സസ് ചെയ്യാൻ കഴിയുന്ന സുരക്ഷിതമായ ഒരിടത്ത് സ്വകാര്യ ആപ്പുകൾ മറയ്ക്കുക"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"ഇതെങ്ങനെ പ്രവർത്തിക്കുന്നു"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"നിങ്ങളുടെ ആപ്പ് ലിസ്‌റ്റിന്റെ താഴെ നിന്ന് സ്വകാര്യ സ്പേസ് ആക്സസ് ചെയ്യാം"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"സ്വകാര്യ സ്പേസിലെ ആപ്പുകൾ ലോക്ക് ഉപയോഗിച്ച് പരിരക്ഷിച്ചിരിക്കുന്നു"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"സ്വകാര്യ സ്പേസ് ലോക്ക് ചെയ്തിരിക്കുമ്പോൾ, അതിലെ ആപ്പുകളിൽ നിന്നുള്ള അറിയിപ്പുകൾ മറയ്ക്കും"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"സ്വകാര്യ സ്പേസ് ലോക്ക് ചെയ്തിരിക്കുമ്പോൾ അനുമതി മാനേജർ, സ്വകാര്യതാ ഡാഷ്ബോർഡ്, മറ്റ് ക്രമീകരണം എന്നിവയിൽ സ്വകാര്യ സ്പേസ് ആപ്പുകൾ ദൃശ്യമാകില്ല"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"സ്വകാര്യ സ്പേസ് സജ്ജീകരിക്കുന്നു…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"സ്വകാര്യ സ്പേസ് ലോക്ക് ഉപയോഗിച്ച് പരിരക്ഷിച്ചിരിക്കുന്നു"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"സ്വകാര്യ സ്പേസ് ലോക്ക് ചെയ്തിരിക്കുമ്പോൾ, അതിലെ ആപ്പുകളുടെ ഉപയോഗ വിവരങ്ങൾ മറച്ചിരിക്കും"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"ആപ്പ് ലിസ്റ്റിൽ നിന്ന് സ്വകാര്യ സ്പേസ് ആക്സസ് ചെയ്യുക"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"സ്വകാര്യ സ്പേസ് സജ്ജീകരിക്കാനായില്ല"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"ഇപ്പോൾ വീണ്ടും ശ്രമിക്കുക അല്ലെങ്കിൽ പിന്നീട് മടങ്ങി വരിക"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"വീണ്ടും ശ്രമിക്കുക"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"അൺലോക്ക് ചെയ്യാൻ സ്‌ക്രീൻ ലോക്ക് ഉപയോഗിക്കണോ?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"ഉപകരണം അൺലോക്ക് ചെയ്യുന്ന അതേ രീതിയിൽ നിങ്ങൾക്ക് സ്വകാര്യ സ്പേസ് അൺലോക്ക് ചെയ്യാം അല്ലെങ്കിൽ മറ്റൊരു ലോക്ക് തിരഞ്ഞെടുക്കാം"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"സ്‌ക്രീൻ ലോക്ക് ഉപയോഗിക്കുക"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"പുതിയ ലോക്ക് തിരഞ്ഞെടുക്കുക"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"എല്ലാം സജ്ജീകരിച്ചു!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"സ്വകാര്യ സ്പേസ് ആക്സസ് ചെയ്യാൻ, നിങ്ങളുടെ ഹോം സ്‌ക്രീനിന്റെ താഴെ നിന്ന് മുകളിലോട്ട് സ്വൈപ്പ് ചെയ്യുക, തുടർന്ന് താഴേക്ക് സ്‍ക്രോൾ ചെയ്യുക"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"പൂർത്തിയായി"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"സ്വകാര്യ സ്പേസ് ആക്സസ് ചെയ്യാൻ താഴേക്ക് സ്‍ക്രോൾ ചെയ്യുക"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"സ്വകാര്യ സ്പേസ് സജ്ജീകരിക്കാൻ സൈൻ ഇൻ ചെയ്യൂ"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"നിങ്ങൾക്ക് <xliff:g id="COUNT">%d</xliff:g> ഫിംഗർപ്രിന്റുകൾ വരെ ചേർക്കാം"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"നിങ്ങൾ പരമാവധി എണ്ണം ഫിംഗർപ്രിന്റുകൾ ചേർത്തിട്ടുണ്ട്"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"കൂടുതൽ ഫിംഗർപ്രിന്റുകൾ ചേർക്കാൻ കഴിയില്ല"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"കണക്റ്റ് ചെയ്യുക"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"വിച്ഛേദിക്കുക"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"ജോടിയാക്കി കണ‌ക്‌റ്റുചെയ്യുക"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Bluetooth ഓണായിരിക്കുമ്പോൾ, സമീപമുള്ള മറ്റു Bluetooth ഉപകരണങ്ങളുമായി നിങ്ങളുടെ ഉപകരണത്തിന് ആശയവിനിമയം നടത്താനാകും."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Bluetooth ഓണാണെങ്കിൽ, സമീപമുള്ള മറ്റു Bluetooth ഉപകരണങ്ങളുമായി നിങ്ങളുടെ ഉപകരണത്തിന് ആശയവിനിമയം നടത്താം"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Bluetooth ഓണാക്കിയിരിക്കുമ്പോൾ, സമീപമുള്ള മറ്റ് Bluetooth ഉപകരണങ്ങളുമായി ആശയവിനിമയം നടത്താൻ നിങ്ങളുടെ ഉപകരണത്തിന് കഴിയും.\n\nഉപകരണ അനുഭവം മെച്ചപ്പെടുത്താൻ, Bluetooth ഓഫാക്കിയിരിക്കുമ്പോൾ പോലും സമീപമുള്ള ഉപകരണങ്ങൾ കണ്ടെത്താൻ ആപ്പുകൾക്കും സേവനങ്ങൾക്കും ഏത് സമയത്തും സ്‌കാൻ ചെയ്യാനാകും. ഉദാഹരണത്തിന്, ലൊക്കേഷൻ അധിഷ്‌ഠിത ഫീച്ചറുകളും സേവനങ്ങളും മെച്ചപ്പെടുത്താൻ ഇത് ഉപയോഗിക്കാം. Bluetooth സ്കാനിംഗ് ക്രമീകരണത്തിൽ നിങ്ങൾക്ക് ഇത് മാറ്റാനാകും."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"മാറ്റുക"</string>
     <string name="device_details_title" msgid="1155622417516195481">"ഉപകരണ വിശദാംശങ്ങൾ"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"ഡീബഗ്ഗ് ചെയ്യാവുന്ന ആപ്പുകൾക്കായി ബൈറ്റ്‌കോഡ് പരിശോധിക്കാൻ ART-യെ അനുവദിക്കുക"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"റീഫ്രഷ് റേറ്റ് കാണിക്കൂ"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"നിലവിലെ ഡിസ്‌പ്ലേ റീഫ്രഷ് നിരക്ക് കാണിക്കൂ"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"HDR/SDR അനുപാതം കാണിക്കുക"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"നിലവിലെ HDR/SDR അനുപാതം കാണിക്കുക"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"NFC-യ്ക്ക് ഉപകരണം അൺലോക്ക് ചെയ്യൽ നിർബന്ധമാക്കുക"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android ബീം"</string>
@@ -1062,7 +1137,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"ഫോൾഡിൽ ആപ്പുകൾ ഉപയോഗിക്കുന്നത് തുടരുക"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"സ്‌മൂത്ത് ഡിസ്പ്ലേ"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"ചില ഉള്ളടക്കങ്ങളുടെ റീഫ്രഷ് തോത് 60-ൽ നിന്നും <xliff:g id="ID_1">%1$s</xliff:g> Hz-ലേക്ക് സ്വയമേവ ഉയർത്തുന്നു. ബാറ്ററി ഉപയോഗം വർദ്ധിപ്പിക്കുന്നു."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"ചില ഉള്ളടക്കങ്ങളുടെ റീഫ്രഷ് തോത് <xliff:g id="ID_1">%1$d</xliff:g> Hz വരെ സ്വയമേവ ഉയർത്തുന്നു. ബാറ്ററി ഉപയോഗം വർദ്ധിപ്പിക്കുന്നു."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"പരമാവധി റീഫ്രഷ് നിരക്ക് നിർബന്ധിതമാക്കുക"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"മെച്ചപ്പെട്ട സ്‌പർശന പ്രതികരണശേഷി, ആനിമേഷൻ നിലവാരം എന്നിവയ്‌ക്കുള്ള ഉയർന്ന റീഫ്രഷ് നിരക്ക്. ബാറ്ററി ഉപയോഗം വർദ്ധിപ്പിക്കുന്നു."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"സ്ക്രീൻ ശ്രദ്ധ"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"കമ്മ്യൂണൽ ക്രമീകരണങ്ങൾ"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN-കൾ"</string>
     <string name="apn_edit" msgid="2003683641840248741">"ആക്‌സസ് പോയിന്റ് എഡിറ്റ് ചെയ്യുക"</string>
+    <string name="apn_add" msgid="9069613192201630934">"ആക്സസ് പോയിന്റ് ചേർക്കുക"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"സജ്ജീകരിച്ചിട്ടില്ല"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"സജ്ജീകരിച്ചിട്ടില്ല"</string>
     <string name="apn_name" msgid="6677695784108157953">"പേര്"</string>
@@ -1320,6 +1396,8 @@
     <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="network_type" msgid="748590707422733595">"നെറ്റ്‌വർക്ക് തരം"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"വ്യക്തമാക്കാത്തത്"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO തരം"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO മൂല്യം"</string>
     <string name="menu_delete" msgid="9199740901584348273">"APN ഇല്ലാതാക്കുക"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"തുറക്കാൻ ഉപയോഗസഹായി ബട്ടൺ ഉപയോഗിക്കുക"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"തുറക്കുന്നതിന് വോളിയം കീകൾ അമർത്തിപ്പിടിക്കുക"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"തുറക്കുന്നതിന് സ്ക്രീൻ മൂന്ന് തവണ ടാപ്പ് ചെയ്യുക"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"തുറക്കാൻ, രണ്ട് വിരലുകൾ ഉപയോഗിച്ച് സ്ക്രീനിൽ മൂന്ന് തവണ ടാപ്പ് ചെയ്യുക"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"തുറക്കാൻ വിരൽചലനം ഉപയോഗിക്കുക"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"ഉപയോഗസഹായി ജെസ്ച്ചർ ഉപയോഗിക്കുക"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"ഈ ഫീച്ചർ ഉപയോഗിക്കാൻ, നിങ്ങളുടെ സ്ക്രീനിന്റെ ചുവടെയുള്ള ഉപയോഗസഹായി ബട്ടൺ <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> ടാപ്പ് ചെയ്യുക.\n\nഫീച്ചറുകൾക്കിടയിൽ മാറാൻ, ഉപയോഗസഹായി ബട്ടൺ സ്‌പർശിച്ച് പിടിക്കുക."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"ഈ ഫീച്ചർ ഉപയോഗിക്കാൻ, നിങ്ങളുടെ സ്ക്രീനിലുള്ള ഉപയോഗസഹായി ബട്ടൺ ടാപ്പുചെയ്യുക."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"ഈ ഫീച്ചർ ഉപയോഗിക്കാൻ, രണ്ട് വോളിയം കീകളും അമർത്തിപ്പിടിക്കുക."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"മാഗ്നിഫിക്കേഷൻ ആരംഭിക്കാനും നിർത്താനും സ്ക്രീനിൽ എവിടെയെങ്കിലും മൂന്ന് തവണ ടാപ്പ് ചെയ്യുക."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"മാഗ്നിഫിക്കേഷൻ ആരംഭിക്കാനും നിർത്താനും രണ്ട് വിരലുകൾ ഉപയോഗിച്ച് സ്ക്രീനിൽ മൂന്ന് തവണ ടാപ്പ് ചെയ്യുക."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"ഈ ഫീച്ചർ ഉപയോഗിക്കാൻ, സ്ക്രീനിന്റെ ചുവടെ നിന്ന് രണ്ട് വിരലുകൾ ഉപയോഗിച്ച് മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്യുക.\n\nഫീച്ചറുകൾക്കിടയിൽ മാറാൻ, രണ്ട് വിരലുകൾ ഉപയോഗിച്ച് മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്‌ത് പിടിക്കുക."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"ഈ ഫീച്ചർ ഉപയോഗിക്കാൻ,സ്ക്രീനിന്റെ ചുവടെ നിന്ന് മൂന്ന് വിരലുകൾ ഉപയോഗിച്ച് മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്യുക.\n\nഫീച്ചറുകൾക്കിടയിൽ മാറാൻ, രണ്ട് വിരലുകൾ ഉപയോഗിച്ച് മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്‌ത് പിടിക്കുക."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"ഉപയോഗസഹായി ഫീച്ചർ ഉപയോഗിക്കാൻ, സ്ക്രീനിന്റെ ചുവടെ നിന്ന് രണ്ട് വിരലുകൾ ഉപയോഗിച്ച് മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്യുക.\n\nഫീച്ചറുകൾക്കിടയിൽ മാറാൻ, രണ്ട് വിരലുകൾ ഉപയോഗിച്ച് മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്‌ത് പിടിക്കുക."</string>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"വോളിയം കീകൾ അമർത്തിപ്പിടിക്കുക"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"വോളിയം കീകൾ പിടിക്കുക"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"രണ്ട് വോളിയം കീകളും അമർത്തിപ്പിടിക്കുക"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"രണ്ട് വിരലുകൾ ഉപയോഗിച്ച് സ്ക്രീനിൽ മൂന്ന് തവണ ടാപ്പ് ചെയ്യുക"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"രണ്ട് വിരലുകൾ ഉപയോഗിച്ച് സ്ക്രീനിൽ മൂന്ന് തവണ ടാപ്പ് ചെയ്യുക"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"രണ്ട് വിരലുകൾ ഉപയോഗിച്ച് സ്ക്രീനിൽ {0,number,integer} തവണ വേഗത്തിൽ ടാപ്പ് ചെയ്യുക"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"സ്ക്രീൻ മൂന്ന് തവണ ടാപ്പ് ചെയ്യുക"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"സ്ക്രീനിൽ മൂന്ന് തവണ ടാപ്പ് ചെയ്യുക"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"സ്ക്രീനിൽ {0,number,integer} തവണ വേഗത്തിൽ ടാപ്പ് ചെയ്യുക. ഈ കുറുക്കുവഴി നിങ്ങളുടെ ഉപകരണത്തിന്റെ വേഗത കുറച്ചേക്കാം"</string>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"വെെബ്രേഷനും ഹാപ്റ്റിക്സും ഉപയോഗിക്കുക"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"അലാറം വെെബ്രേഷൻ"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"മീഡിയ വൈബ്രേഷൻ"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"കീബോർഡ് വൈബ്രേഷൻ"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"റിംഗ് വൈബ്രേഷൻ"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"അറിയിപ്പ് വൈബ്രേഷൻ"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"സ്‌പർശന ഫീഡ്ബാക്ക്"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> ശേഷിക്കുന്നു"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"ചാർജ്ജാകാനുള്ള സമയം <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g>"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"സ്ക്രീൻ സമയം"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"പശ്ചാത്തല സമയം"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"ബാറ്ററി ചാർജ് കുറവാണ്"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"പശ്ചാത്തലത്തിൽ റൺ ചെയ്യുന്നതിന് ആപ്പിനെ അനുവദിക്കുക"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"പശ്ചാത്തല പ്രവർത്തനം പരിമിതപ്പെടുത്തണോ?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"നിങ്ങൾ ഒരു ആപ്പിനായി പശ്ചാത്തല പ്രവർത്തനം പരിമിതപ്പെടുത്തുകയാണെങ്കിൽ, അത് ശരിയായി പ്രവർത്തിക്കാനിടയില്ല."</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"ബാറ്ററി ഓപ്‌റ്റിമൈസ് ചെയ്യാൻ ഈ ആപ്പ് സജ്ജീകരിക്കാത്തതിനാൽ, നിങ്ങൾക്ക് ഇത് നിയന്ത്രിക്കാനാവില്ല.\n\nആപ്പ് നിയന്ത്രിക്കാൻ, ആദ്യം ബാറ്ററി ഓപ്‌റ്റിമൈസേഷൻ ഓണാക്കുക."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"ബാറ്ററി ഉപയോഗം മാനേജ് ചെയ്യുക"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"പശ്ചാത്തലത്തിലെ ഉപയോഗം അനുവദിക്കുക"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"തത്സമയ അപ്‌ഡേറ്റുകൾക്കായി പ്രവർത്തനക്ഷമമാക്കുക, ബാറ്ററി സംരക്ഷിക്കാൻ പ്രവർത്തനരഹിതമാക്കുക"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"നിയന്ത്രണമില്ലാത്തത്"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"ഒപ്റ്റിമൈസ് ചെയ്തത്"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"നിയന്ത്രിതം"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"പൂർണ്ണമായും ചാർജ് ആയതുമുതൽ"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"സിസ്‌റ്റം ആപ്പുകൾ"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"അൺഇൻസ്റ്റാൾ ചെയ്‌ത ആപ്പുകൾ"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"മറ്റുള്ളവ"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"അവശേഷിക്കുന്ന ഏകദേശ സമയം"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"പൂർണ്ണമായി ചാർജ്ജുചെയ്യുന്നത് വരെ"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"ആകെ: ഒരു മിനിറ്റിൽ താഴെ"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"പശ്ചാത്തലം: ഒരു മിനിറ്റിൽ താഴെ"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"സ്ക്രീൻ സമയം: ഒരു മിനിറ്റിൽ താഴെ"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"ഒരു മിനിറ്റിൽ താഴെ"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"ആകെ: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"പശ്ചാത്തലം: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"സ്ക്രീൻ സമയം: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"മൊബൈൽ ഡാറ്റ, വൈഫൈ"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"വ്യക്തിപരമായ ഡാറ്റ സ്വയമേവ സമന്വയിപ്പിക്കുക"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"ഔദ്യോഗിക ഡാറ്റ സ്വയമേവ സമന്വയിപ്പിക്കുക"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"സ്വകാര്യ ഡാറ്റ സമന്വയിപ്പിക്കൂ"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"സൈക്കിൾ മാറ്റുക..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"ഡാറ്റ ഉപയോഗ സൈക്കിൾ പുനഃസജ്ജീകരിക്കുന്നതിനുള്ള മാസത്തിലെ ദിവസം:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"ഇക്കാലയളവിൽ ഒരു ആപ്പും ഡാറ്റ ഉപയോഗിച്ചിട്ടില്ല."</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"ടെക്‌സ്റ്റ് വലുപ്പം, വലിയ പ്രിന്റ്, വലിയ ഫോണ്ട്, വലിയ ടെക്‌സ്റ്റ്, കുറഞ്ഞ കാഴ്ച, ടെക്‌സ്റ്റ് കൂടുതൽ വലുതാക്കുക, ഫോണ്ട് വലുതാക്കൽ, ഫോണ്ടിന്റെ വലുപ്പം കൂട്ടൽ"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"എപ്പോഴും ഓണായിരിക്കുന്ന ആമ്പിയന്റ് ഡിസ്പ്ലേ, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"NFC, ടാഗ്, റീഡർ"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"കീബോർഡ്, ഹാപ്റ്റിക്‌സ്, വൈബ്രേറ്റ് ചെയ്യൽ,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"ശബ്ദം, വൈബ്രേഷൻ, ശല്യപ്പെടുത്തരുത്"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"മീഡിയാ വോളിയം"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"വോളിയം കാസ്‌റ്റ് ചെയ്യുക"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"എല്ലാ അറിയിപ്പുകളും ഉള്ളടക്കം സഹിതം കാണിക്കുക"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"അൺലോക്കായാൽ മാത്രം സെൻസിറ്റീവ് ഉള്ളടക്കം കാണിക്കുക"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"ഒരു അറിയിപ്പും കാണിക്കരുത്"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"ലോക്ക് സ്ക്രീൻ എങ്ങനെ പ്രദർശിപ്പിക്കാനാണ് നിങ്ങൾ താൽപ്പര്യപ്പെടുന്നത്?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"ലോക്ക് സ്‌ക്രീൻ"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"എല്ലാ ഔദ്യോഗിക അറിയിപ്പ് ഉള്ളടക്കങ്ങളും കാണിക്കുക"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"രഹസ്യാത്മകമായ ഔദ്യോഗിക ഉള്ളടക്കം അദൃശ്യമാക്കുക"</string>
@@ -3354,6 +3448,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"മെച്ചപ്പെടുത്തിയ ക്രമീകരണത്തെ ഈ ആപ്പ് പിന്തുണയ്ക്കുന്നില്ല"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"കൂടുതൽ ക്രമീകരണം"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"ഈ ആപ്പിനുള്ളിൽ കൂടുതൽ ക്രമീകരണം ലഭ്യമാണ്"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"അറിയിപ്പിന്റെ കൂൾഡൗൺ"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"എല്ലാ അറിയിപ്പിനും കൂൾഡൗൺ ബാധകമാക്കുക"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"ഒരേ ആപ്പിൽ നിന്ന് തുടർച്ചയായി നിരവധി അറിയിപ്പുകൾ ലഭിക്കുമ്പോൾ അറിയിപ്പിന്റെ ശബ്ദം ക്രമേണ കുറയ്ക്കുക"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"സംഭാഷണങ്ങൾക്ക് കൂൾഡൗൺ ബാധകമാക്കുക"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"ഒരേ ചാറ്റിൽ നിന്ന് ചുരുങ്ങിയ സമയത്തിനുള്ളിൽ നിങ്ങൾക്ക് നിരവധി സന്ദേശങ്ങൾ ലഭിക്കുമ്പോൾ അറിയിപ്പിന്റെ ശബ്ദം ക്രമേണ കുറയ്ക്കുക"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"അറിയിപ്പിനുള്ള കൂൾഡൗൺ ഉപയോഗിക്കരുത്"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"ഒരേ ആപ്പിൽ നിന്ന് തുടർച്ചയായി അറിയിപ്പുകൾ ലഭിച്ചാലും, അറിയിപ്പിന്റെ ശബ്‌ദം കുറയ്ക്കരുത്"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"അൺലോക്കിൽ വൈബ്രേറ്റ് ചെയ്യുക"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"സ്‌ക്രീൻ അൺലോക്ക് ആയിരിക്കുമ്പോൾ മാത്രം വൈബ്രേറ്റ് ചെയ്യുക"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"ഔദ്യോഗിക പ്രൊഫൈലുകളിൽ ബാധകമാക്കുക"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"വ്യക്തിപരമായ പ്രൊഫൈലിൽ നിന്നുള്ള അറിയിപ്പ് കൂൾഡൗൺ ക്രമീകരണം നിങ്ങളുടെ ഔദ്യോഗിക പ്രൊഫൈലിലേക്ക് ബാധകമാക്കുക"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR സഹായി സേവനങ്ങൾ"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"ഇൻസ്റ്റാൾ ചെയ്ത ആപ്പുകളൊന്നും VR സഹായി സേവനങ്ങളായി റൺ ചെയ്യുന്നതിന് അഭ്യർത്ഥിച്ചിട്ടില്ല."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"<xliff:g id="SERVICE">%1$s</xliff:g> എന്ന സേവനത്തിന് VR സേവന ആക്‌സസ് അനുവദിക്കണോ?"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"എല്ലാ ഫയലുകളും മാനേജ് ചെയ്യാൻ ആക്സസ് അനുവദിക്കൂ"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"ഈ ഉപകരണത്തിലെയോ ഇതുമായി ബന്ധിപ്പിച്ചിട്ടുള്ള ഏതെങ്കിലും സ്‌റ്റോറേജുകളിലെയോ എല്ലാ ഫയലുകളും വായിക്കാനും പരിഷ്ക്കരിക്കാനും ഇല്ലാതാക്കാനും ഈ ആപ്പിനെ അനുവദിക്കുക. അനുമതി നൽകിയിട്ടുണ്ടെങ്കിൽ, നിങ്ങളുടെ അറിവില്ലാതെ തന്നെ ആപ്പ് ഫയലുകൾ ആക്സസ് ചെയ്തേക്കാം."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"എല്ലാ ഫയലുകളും ആക്സസ് ചെയ്യാനാവും"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"വോയ്‌സ് ആക്റ്റിവേഷൻ ആപ്പുകൾ"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"വോയ്‌സ് ആക്റ്റിവേഷൻ അനുവദിക്കുക"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"അംഗീകൃത ആപ്പുകൾ ശബ്‌ദ കമാൻഡ് ഉപയോഗിച്ച് വോയ്‌സ് ആക്റ്റിവേഷൻ ഹാൻഡ്‌സ്-ഫ്രീ ആയി ഓണാക്കുന്നു. ഡാറ്റ നിങ്ങൾക്ക് മാത്രം കാണാവുന്ന തരത്തിൽ സ്വകാര്യമായി നിലനിൽക്കുമെന്ന് ബിൽറ്റ് ഇൻ അഡാപ്റ്റീവ് സെൻസിംഗ് ഉറപ്പാക്കുന്നു.\n\n"<a href="">"സംരക്ഷിത അഡാപ്റ്റീവ് സെൻസിംഗിനെ കുറിച്ചുള്ള കൂടുതൽ കാര്യങ്ങൾ"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"പൂർണ്ണ സ്ക്രീനിലുള്ള അറിയിപ്പുകൾ"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"ഈ ആപ്പിൽ നിന്നുള്ള പൂർണ്ണ സ്ക്രീൻ അറിയിപ്പുകൾ അനുവദിക്കുക"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"ഉപകരണം ലോക്ക് ചെയ്‌തിരിക്കുമ്പോൾ അറിയിപ്പുകൾ പൂർണ്ണ സ്‌ക്രീനിൽ കാണിക്കാൻ ഈ ആപ്പിനെ അനുവദിക്കുക. അലാറങ്ങൾ, ഇൻകമിംഗ് കോളുകൾ അല്ലെങ്കിൽ മറ്റ് അടിയന്തര അറിയിപ്പുകൾ ഹെെലെെറ്റ് ചെയ്യാൻ ആപ്പുകൾ ഇവ ഉപയോഗിച്ചേക്കാം."</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> പശ്ചാത്തലത്തിൽ പ്രവർത്തിക്കുമ്പോൾ സാധാരണയിൽ കൂടുതൽ ബാറ്ററി ചാർജ്ജ് ഉപയോഗിച്ചു"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ഫോർഗ്രൗണ്ടിൽ പ്രവർത്തിക്കുമ്പോൾ കൂടുതൽ ബാറ്ററി ചാർജ്ജ് ഉപയോഗിച്ചു"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ഫോർഗ്രൗണ്ടിൽ പ്രവർത്തിക്കുമ്പോൾ സാധാരണയിൽ കൂടുതൽ ബാറ്ററി ചാർജ്ജ് ഉപയോഗിച്ചു"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"ഉയർന്ന ബാറ്ററി ഉപയോഗം"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"പശ്ചാത്തലത്തിൽ ഉയർന്ന ബാറ്ററി ഉപയോഗം നടക്കുന്നു"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"ഫോർഗ്രൗണ്ടിൽ ഉയർന്ന ബാറ്ററി ഉപയോഗം നടക്കുന്നു"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"സിസ്‌റ്റം നാവിഗേഷൻ, 2 ബട്ടൺ നാവിഗേഷൻ, 3 ബട്ടൺ നാവിഗേഷൻ, വിരൽചലന നാവിഗേഷൻ, സ്വൈപ്പ് ചെയ്യുക"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"ഡിജിറ്റൽ അസിസ്‌റ്റന്റ്"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"അസിസ്‌റ്റന്റ് ആപ്പ് പ്രവർത്തനക്ഷമമാക്കാൻ സ്വൈപ്പ് ചെയ്യുക"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"ഡിജിറ്റൽ അസിസ്‌റ്റന്റ് ആപ്പ് പ്രവർത്തനക്ഷമമാക്കാൻ താഴെ മൂലയിൽ നിന്ന് മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്യുക."</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"ഡിജിറ്റൽ അസിസ്‌റ്റന്റ് ആപ്പ് പ്രവർത്തനക്ഷമമാക്കാൻ താഴെ മൂലയിൽ നിന്ന് മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്യുക"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"അസിസ്‌റ്റന്റിനെ പ്രവർത്തിപ്പിക്കാൻ ഹോം അമർത്തിപ്പിടിക്കുക"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"ഡിജിറ്റൽ അസിസ്‌റ്റന്റ് ആപ്പ് പ്രവർത്തിപ്പിക്കാൻ ഹോം ബട്ടൺ അമർത്തിപ്പിടിക്കുക."</string>
     <string name="low_label" msgid="6525629096999711220">"കുറഞ്ഞത്"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"ഡാറ്റ, പാസ്‌കീ, പാസ്‌വേഡ്"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"സ്വയമേവ, പൂരിപ്പിക്കുക, സ്വയമേവ പൂരിപ്പിക്കൽ, ഡാറ്റ, പാസ്‌കീ, പാസ്‌വേഡ്"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;ഈ ആപ്പിനെ നിങ്ങൾ വിശ്വസിക്കുന്നുണ്ടെന്ന് ഉറപ്പുവരുത്തുക&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; സ്വയമേവ പൂരിപ്പിക്കേണ്ടത് എന്താണെന്ന് നിർണ്ണയിക്കുന്നതിന് &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; നിങ്ങളുടെ സ്‌ക്രീനിൽ ഉള്ളത് ഉപയോഗിക്കുന്നു."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&amp;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_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Use &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_picker_title" msgid="8191267620665129205">"പാസ്‌വേഡുകൾ, പാസ്‌കീകൾ, ഡാറ്റാ സേവനങ്ങൾ എന്നിവ"</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>
@@ -4856,4 +4966,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"വഞ്ചനാപരമായ ആപ്പ് ആണോയെന്ന് സ്‌കാൻ ചെയ്യുന്നു"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"ഫിഷിംഗ് ആണോയെന്ന് അറിയാൻ ആപ്പ് ആക്‌റ്റിവിറ്റി പരിശോധിക്കുക"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"വഞ്ചനാപരമായ ആപ്പുകൾ കണ്ടെത്താൻ സ്‌കാനിംഗ് ഉപയോഗിക്കുക"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"ഔദ്യോഗിക ആപ്പുകളിൽ വഞ്ചനാപരമായവ കണ്ടെത്താൻ സ്‌കാനിംഗ് ഉപയോഗിക്കുക"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-mn/arrays.xml b/res/values-mn/arrays.xml
index 77912e9..6cc296c 100644
--- a/res/values-mn/arrays.xml
+++ b/res/values-mn/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"1 минутын дараа"</item>
     <item msgid="1574040255478150028">"5 минутын дараа"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 5317c62..8363995 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Bluetooth LE аудиог идэвхгүй болгох"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Хэрэв төхөөрөмж LE аудио техник хангамжийн чадамжийг дэмждэг бол Bluetooth LE аудио онцлогийг идэвхгүй болгоно."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Төхөөрөмжийн дэлгэрэнгүйд LE аудионы асаах/унтраахыг харуул"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Bluetooth LE аудиогийн зөвшөөрөгдсөн жагсаалтыг идэвхжүүлэх"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Bluetooth LE аудиогийн зөвшөөрөгдсөн жагсаалтын онцлогийг идэвхжүүлнэ үү."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Bluetooth LE Аудиогийн зөвшөөрсөн жагсаалтыг алгасах"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"LE Аудиогийн нэмэлт хэрэгслийг Зөвшөөрсөн жагсаалтын шалгуурт нийцэж байгаа эсэхийг баталгаажуулаагүй байсан ч өгөгдмөлөөр LE Аудиог ашиглана уу."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Медиа төхөөрөмжүүд"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Дуудлага хийх төхөөрөмжүүд"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Бусад төхөөрөмж"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Хадгалсан төхөөрөмж"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Бүртгэлтэй холбоотой"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Өмнө нь бүртгэлтэй холбож ашигласан"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth холбогдохын тулд асна"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Холболтын тохируулга"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Өмнө нь холбогдсон"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Текстийн талбарт бичих"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Бүх мэдрэгч үзгийн товчлуур даралтыг үл хэрэгсэнэ үү"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Мэдрэгч үзэг"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Аудио хуваалцах"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Аудиог хуваалцах"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Дуудлага болон сэрүүлгүүд"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Огноо, цаг"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Прокси"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Цэвэрлэх"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Ачаалж байна…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Ойролцоох төхөөрөмжүүдийн зөвшөөрөлтэй аппууд холбогдсон төхөөрөмжүүдийн харгалзах байрлалыг тодорхойлох боломжтой."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Аппууд болон үйлчилгээнүүдэд байршлын хандалт унтраалттай байна. Таныг яаралтай тусламжийн утасны дугаар луу залгах эсвэл мессеж бичих үед таны төхөөрөмжийн байршлыг яаралтай тусламжийн үйлчилгээ үзүүлэгчид рүү илгээсэн хэвээр байж магадгүй."</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Байршлын тохиргооны талаар нэмэлт мэдээлэл авах"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Бүртгэл"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Аюулгүй байдал"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Шифр, мандат үнэмлэх"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Ажлын профайл"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Хувийн орон зай"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Аппуудыг хувийн фолдерт нуух"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Дэлгэцийн түгжээг ашиглан түгжээг тайлах"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Хувийн орон зайг харуулах"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Түгжсэн үед нуух"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Түгжээтэй үед Private Space-г нуух"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Таны төхөөрөмжид Private Space байгааг бусад хүнд мэдэгдэхгүй байхын тулд та үүнийг аппуудынхаа жагсаалтаас нууж болно"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Нуусан үед Private Space-т хандах"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Хайлтын талбарт \'Private Space\'-г хайна уу"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Private Space-н хавтанг товшино уу"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Өөрийн Private Space-н түгжээг тайлна уу"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Унтраалттай"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Асаалттай"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Систем"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Хувийн орон зай үүсгэх"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Хувийн орон зайг устгах"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Хувийн орон зайг амжилттай үүсгэсэн"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Хувийн орон зай аль хэдийн байна"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Хувийн орон зайг үүсгэж чадсангүй"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Хувийн орон зайг амжилттай устгасан"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Хувийн орон зайг устгаж чадсангүй"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Дэлгэцийн түгжээг тохируулах"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Хувийн орон зайг ашиглах бол уг төхөөрөмжид дэлгэцийн түгжээ тохируулна уу."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Дэлгэцийн түгжээ тохируулах"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Цуцлах"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Цуцлах"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Тохируулах"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Private Space-г тохируулах"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Хувийн аппуудыг зөвхөн та өөрөө хандах боломжтой аюулгүй газарт нууна уу"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Энэ хэрхэн ажилладаг вэ?"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Та Private Space-т аппуудын жагсаалтынхаа доод талаас хандах боломжтой"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Private Space-н аппуудыг түгжээгээр хамгаалдаг"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Private Space түгжээтэй үед түүний аппуудын мэдэгдлийг нуудаг"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Private Space түгжээтэй үед Private Space-н аппууд зөвшөөрлийн менежер, нууцлалын хяналтын самбар болон бусад тохиргоонд харагдахгүй"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Private Space-г тохируулж байна…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Private Space-г түгжээгээр хамгаалдаг"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Private Space-г түгжээтэй үед түүний аппуудын ашиглалтын мэдээллийг нуудаг"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Аппуудын жагсаалтаасаа Private Space-т хандах"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Private Space-г тохируулж чадсангүй"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Одоо дахин оролдох эсвэл дараа буцаж ирнэ үү"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Дахин оролдох"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Түгжээг тайлахад дэлгэцийн түгжээг ашиглах уу?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Та Private Space-н түгжээг төхөөрөмжийнхөө түгжээг тайлдагтайгаа ижил аргаар тайлах эсвэл өөр түгжээ сонгох боломжтой"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Дэлгэцийн түгжээг ашиглах"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Шинэ түгжээ сонгох"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Тохируулж дууслаа!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Private Space-т хандахын тулд үндсэн нүүрнийхээ доод талаас дээш шударч, дараа нь доош гүйлгэнэ үү"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Болсон"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Private Space-т хандахын тулд доош гүйлгэнэ үү"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Private Space-г тохируулахаар нэвтрэх"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Та <xliff:g id="COUNT">%d</xliff:g> хүртэлх хурууны хээ нэмж болно"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Таны зөвшөөрөгдсөн хурууны хээний тоо гүйцсэн байна"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Өөр хурууны хээ нэмэх боломжгүй байна"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Холбох"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Салгах"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Хослуулах ба холбох"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Bluetooth-г идэвхжүүлсэн үед таны төхөөрөмж ойролцоо байгаа Bluetooth төхөөрөмжүүдтэй холбогдох боломжтой болно."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Bluetooth-г асаасан үед таны төхөөрөмж ойролцоох бусад Bluetooth төхөөрөмжтэй холбогдох боломжтой.\n\nТөхөөрөмжийн хэрэглээг сайжруулахын тулд аппууд болон үйлчилгээнүүд нь хүссэн үед буюу Bluetooth-г унтраалттай байсан ч ойролцоох төхөөрөмжүүдийг скан хийх боломжтой хэвээр байна. Үүнийг байршилд суурилсан онцлогууд болон үйлчилгээнүүдийг сайжруулах зэргээр ашиглаж болно. Та үүнийг Bluetooth-н скан хийх тохиргоонд өөрчлөх боломжтой."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Өөрчлөх"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Төхөөрөмжийн дэлгэрэнгүй"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"ART-д алдааг нь засах боломжтой аппуудын байт кодыг бататгахыг зөвшөөрөх"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Сэргээх хурдыг харуулах"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Одоогийн дэлгэцийн сэргээх хурдыг харуулах"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"HDR/SDR-н харьцааг харуулах"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"HDR/SDR-н одоогийн харьцааг харуулах"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"NFC-н төхөөрөмжийн түгжээг тайлах шаардлагатай"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Эвхэгддэг дэлгэцэд аппуудыг үргэлжлүүлэн ашиглах"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Зарим контентын сэргээх хурдыг автоматаар 60-с <xliff:g id="ID_1">%1$s</xliff:g> Гц болгож өсгөнө. Батарей ашиглалтыг нэмэгдүүлнэ."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Зарим контентын сэргээх хурдыг <xliff:g id="ID_1">%1$d</xliff:g> Гц болгож автоматаар өсгөнө. Батарей ашиглалтыг нэмэгдүүлнэ."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Сэргээх хамгийн өндөр хурдыг хүчлэх"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Хүрэлтийн хариу үйлдэл болон анимацийн чанарыг сайжруулахад зориулсан хамгийн өндөр сэргээх хурд юм. Батарей ашиглалтыг нэмэгдүүлнэ."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Соргог дэлгэц"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Нийтийн тохиргоо"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APNs"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Хандалтын цэгийг засах"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Хандалтын цэг нэмэх"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Тохируулаагүй"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Тохируулаагүй"</string>
     <string name="apn_name" msgid="6677695784108157953">"Нэр"</string>
@@ -1320,6 +1397,8 @@
     <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="network_type" msgid="748590707422733595">"Сүлжээний төрөл"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Тодорхойлоогүй"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO төрөл"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO утга"</string>
     <string name="menu_delete" msgid="9199740901584348273">"APN устгах"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Нээхийн тулд хандалтын товчлуурыг ашиглах"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Нээхийн тулд дууны түвшний түлхүүрүүдийг удаан дар"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Нээхийн тулд дэлгэцийг гурав товшино уу"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Нээхийн тулд хоёр хуруугаараа дэлгэцийг гурав товшино уу"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Нээхийн тулд зангааг ашиглах"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Хандалтын зангаа ашиглах"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Энэ онцлогийг ашиглахын тулд дэлгэцийнхээ доод хэсэгт байрлах хандалтын товчлуур <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> дээр товшино уу.\n\nОнцлогуудын хооронд сэлгэхийн тулд хандалтын товчлуур дээр удаан дарна уу."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Энэ онцлогийг ашиглахын тулд дэлгэц дээрх хандалтын товчлуурыг товшино уу."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Энэ онцлогийг ашиглахын тулд дууны түвшний түлхүүрүүдийг зэрэг удаан дарна уу."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Томруулахыг эхлүүлэх болон зогсоохын тулд дэлгэцийнхээ аль нэг хэсэгт гурав товшино уу."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Томруулахыг эхлүүлэх болон зогсоохын тулд хоёр хуруугаараа дэлгэцийнхээ аль нэг хэсэгт гурав товш."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Энэ онцлогийг ашиглахын тулд дэлгэцийн доод хэсгээс 2 хуруугаараа дээш шударна уу.\n\nОнцлогуудын хооронд сэлгэхийн тулд 2 хуруугаараа дээш шударч, удаан дарна уу."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Энэ онцлогийг ашиглахын тулд дэлгэцийн доод хэсгээс 3 хуруугаараа дээш шударна уу.\n\nОнцлогуудын хооронд сэлгэхийн тулд 3 хуруугаараа дээш шударч, удаан дарна уу."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Хандалтын онцлогийг ашиглахын тулд дэлгэцийн доод хэсгээс 2 хуруугаараа дээш шударна уу.\n\nОнцлогуудын хооронд сэлгэхийн тулд 2 хуруугаараа дээш шударч, удаан дарна уу."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Дууны түвшний товчийг удаан дарах"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"дууны түвшний түлхүүрийг удаан дарах"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Дууны түвшний хоёр товчийг зэрэг удаан дарна уу"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"Дэлгэцийг хоёр хуруугаараа гурав товшино уу"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"дэлгэцийг хоёр хуруугаараа гурав товшино уу"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"Дэлгэцийг хоёр хуруугаараа {0,number,integer} удаа шуурхай товшино уу"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Дэлгэцийг гурав товших"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"дэлгэцийг гурав товших"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Дэлгэцийг {0,number,integer} удаа хурдан товшино уу. Энэ товчлол таны төхөөрөмжийг удаашруулж магадгүй."</string>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Чичиргээ болон хүртэхүйг ашиглах"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Сэрүүлгийн чичиргээ"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Медиагийн чичиргээ"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Гарын чичиргээ"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Хонхны чичиргээ"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Мэдэгдлийн чичиргээ"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Хүрэхэд хариу чичрэх"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> үлдсэн"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> цэнэглэх хүртэл"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Дэлгэцийн цаг"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Дэвсгэрийн цаг"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Батарей бага байна"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Аппад цаана ажиллах зөвшөөрөл олгоно уу"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Арын үйл ажиллагааг хязгаарлах уу?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Та арын үйл ажиллагааг аппад хязгаарласан тохиолдолд апп буруу ажиллаж болзошгүй"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Энэ аппыг батарейг оновчлохоор тохируулаагүй тул та үүнийг хязгаарлах боломжгүй.\n\nАппыг хязгаарлахын тулд эхлээд батарейны оновчлолыг асаана уу."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Батарей ашиглалтыг удирдах"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Дэвсгэрийн ашиглалтыг зөвшөөрөх"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Тухайн агшны шинэчлэлт авахыг идэвхжүүлж, батарейг хэмнэхийг идэвхгүй болгоно уу"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Хязгаарлаагүй"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Оновчилсон"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Хязгаарласан"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"сүүлд бүрэн цэнэглэснээс хойш"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Системийн аппууд"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Устгасан аппууд"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Бусад"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Барагцаалсан үлдсэн хугацаа"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Бүрэн цэнэглэх хүртэл"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Нийт: нэг минутаас доош"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Дэвсгэр: нэг минутаас доош"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Дэлгэцийн цаг: минутаас бага"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Минутаас бага"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Нийт: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Дэвсгэр: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Дэлгэцийн цаг: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Мобайл дата ба Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Хувийн өгөгдлийг автоматаар синк хийх"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Ажлын өгөгдлийг автоматаар синк хийх"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Хувийн өгөгдлийг автоматаар синк хийх"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Циклийг өөрчлөх…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Дата ашиглалтын циклийг шинэчлэх сарын өдөр:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Энэ хугацаанд дата ашигласан апп байхгүй."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"текстийн хэмжээ, том хэвлэл, том фонт, том текст, сул хараа, текстийг илүү том болгох, фонт томруулагч, фонт томруулалт"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"дэлгэц амраагчид үргэлж, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, шошго, уншигч"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"гар, хүртэхүй, чичиргээ,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Түвшин, чичиргээ, Бүү саад бол"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Медиа дууны түвшин"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Дамжуулах түвшин"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Бүх мэдэгдлийн агуулгыг харуулах"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Эмзэг контентыг зөвхөн түгжээг тайлсан үед харуулах"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Огт мэдэгдэл харуулахгүй"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Та мэдэгдлийг түгжээтэй дэлгэцэд хэрхэн харуулах хүсэлтэй байна вэ?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Түгжээтэй дэлгэц"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Ажлын мэдэгдлийн бүх агуулгыг харуулах"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Ажлын эмзэг, хурц агуулгыг нуух"</string>
@@ -3354,6 +3449,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Энэ апп нь сайжруулсан тохиргоог дэмждэггүй"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Бусад тохиргоо"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Энэ аппад бусад тохиргоо боломжтой"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Мэдэгдлийн хөргөлт"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Бүх мэдэгдэлд хөргөлт хэрэгжүүлэх"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Та нэг аппаас амжилттай олон мэдэгдэл авах үедээ мэдэгдлийн дууны түвшнийг аажмаар бууруулаарай"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Харилцан яриануудад хөргөлт хэрэгжүүлэх"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Та нэг чатаас богино хугацаанд олон мессеж авах үедээ мэдэгдлийн дууны түвшнийг аажмаар бууруулаарай"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Мэдэгдлийн хөргөлтийг бүү ашигла"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Нэг аппаас олон амжилттай мэдэгдэл авсан ч бай мэдэгдлийн дууны түвшнийг хэзээ ч бүү бууруул"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Түгжээг тайлсан үед чичрэх"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Зөвхөн дэлгэцийн түгжээг тайлсан үед чичрэх"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Ажлын профайлуудад хэрэгжүүлэх"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Хувийн профайлаасаа мэдэгдлийн хөргөлтийн тохиргоог ажлын профайлдаа хэрэгжүүлээрэй"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR туслагч үйлчилгээ"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Суулгасан апп-с VR туслагч үйлчилгээгээр ажиллах хүсэлт гаргаагүй байна."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"VR үйлчилгээг <xliff:g id="SERVICE">%1$s</xliff:g>-д хандахыг зөвшөөрөх үү?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Бүх файлыг удирдахын тулд хандахыг зөвшөөрөх"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Энэ аппад энэ төхөөрөмж дээрх эсвэл холбогдсон дурын хадгалах сангийн бүх файлыг унших, өөрчлөх болон устгахыг зөвшөөрөх. Зөвшөөрөл олгогдсон бол апп нь танд тодорхойлон мэдэгдэлгүйгээр файлд хандаж болзошгүй."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Бүх файлд хандах боломжтой"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Дуут идэвхжүүлэлтийн аппууд"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Дуут идэвхжүүлэлтийг зөвшөөрөх"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Дуут идэвхжүүлэлт дуут тушаалыг ашиглан гараас хамаарахгүйгээр зөвшөөрөгдсөн аппуудыг асаана. Бүрэлдэхүүн дасан зохицох мэдрэгч нь өгөгдөл зөвхөн танд хувийн байхыг баталгаажуулдаг.\n\n"<a href="">"Хамгаалалттай дасан зохицох мэдрэгчийн талаарх дэлгэрэнгүй"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Бүтэн дэлгэцийн мэдэгдэл"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Энэ аппаас бүтэн дэлгэцийн мэдэгдлийг зөвшөөрөх"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Төхөөрөмжийг түгжээтэй үед энэ аппад бүтэн дэлгэцийг эзлэх мэдэгдэл харуулахыг зөвшөөрнө үү. Сэрүүлэг, ирсэн дуудлага эсвэл бусад яаралтай мэдэгдлийг онцлоход аппууд эдгээрийг ашиглаж магадгүй."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ард байхдаа ердийнхөөс илүү их батарей ашигласан"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> нүүрэн талд байхдаа илүү их батарей ашигласан"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> нүүрэн талд байхдаа ердийнхөөс илүү их батарей ашигласан"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Батарейн их хэмжээний ашиглалт"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Батарейн дэвсгэр дэх их хэмжээний ашиглалт"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Батарейн нүүрэн тал дахь их хэмжээний ашиглалт"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"системийн навигац, 2 товчлуурт навигац, 3 товчлуурт навигац, зангааны навигац, шудрах"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Дижитал туслах"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Туслахыг дуудахын тулд шудрах"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Дижитал туслах аппыг дуудахын тулд доод булангаас дээш шударна уу."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Туслахыг идэвхжүүлэхийн тулд Нүүр хуудасны товчлуур дээр удаан дарна уу"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Дижитал туслах аппыг дуудахын тулд Нүүр хуудасны товчлуурыг удаан дарна уу."</string>
     <string name="low_label" msgid="6525629096999711220">"Бага"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"өгөгдөл, passkey, нууц үг"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"автомат, бөглөх, автоматаар бөглөх хэсэг, өгөгдөл, нэвтрэх түлхүүр, нууц үг"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Энэ апп-д итгэдэг эсэхээ шалгана уу&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google автоматаар бөглөх&gt;%1$s&lt;/xliff:g&gt; таны дэлгэцэд автоматаар бөглөх зүйлийг илрүүлэхийн тулд ашигладаг."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&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_autofill_confirmation_message" msgid="843829628024668466">"&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_picker_title" msgid="8191267620665129205">"Нууц үг, нэвтрэх түлхүүр болон өгөгдлийн үйлчилгээнүүд"</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>
@@ -4618,7 +4730,7 @@
     <string name="category_name_display_controls" msgid="7046581691184725216">"Дэлгэцийн бусад хяналт"</string>
     <string name="category_name_general" msgid="7737273712848115886">"Ерөнхий"</string>
     <string name="dark_theme_main_switch_title" msgid="4045147031947562280">"Бараан загварыг ашиглах"</string>
-    <string name="bluetooth_main_switch_title" msgid="8409835540311309632">"Bluetooth-г ашиглах"</string>
+    <string name="bluetooth_main_switch_title" msgid="8409835540311309632">"Bluetooth ашиглах"</string>
     <string name="prevent_ringing_main_switch_title" msgid="4726252811262086643">"Хонх дуугаргахаас сэргийлэхийг ашиглах"</string>
     <string name="use_wifi_hotsopt_main_switch_title" msgid="3909731167290690539">"Wi-Fi сүлжээний цэгийг ашиглах"</string>
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Апп бэхлэхийг ашиглах"</string>
@@ -4785,10 +4897,8 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Харьцаа"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"Хэрэв энэ аппыг таны <xliff:g id="DEVICE_NAME">%1$s</xliff:g>-д таарахаар бүтээгээгүй бол үүнийг харахын тулд шинэ харьцаа туршиж үзнэ үү"</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Хэрэв энэ аппыг таны <xliff:g id="DEVICE_NAME">%1$s</xliff:g>-д таарахаар бүтээгээгүй бол үүнийг харахын тулд шинэ харьцаа туршиж үзнэ үү. Зарим аппыг тодорхой харьцаануудад оновчлохгүй байж магадгүй."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Хэрэв энэ аппыг таны <xliff:g id="DEVICE_NAME">%1$s</xliff:g>-д таарахаар бүтээгээгүй бол үүнийг харахын тулд шинэ харьцаа туршиж үзнэ үү"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Хэрэв энэ аппыг таны <xliff:g id="DEVICE_NAME">%1$s</xliff:g>-д таарахаар бүтээгээгүй бол үүнийг харахын тулд шинэ харьцаа туршиж үзнэ үү. Зарим аппыг тодорхой харьцаануудад оновчлохгүй байж магадгүй."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Санал болгосон аппууд"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Өөрчилсөн апп"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Аппын өгөгдмөл"</string>
@@ -4858,4 +4968,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Хууран мэхлэх аппууд байгаа эсэхийг скан хийх"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Фишинг байгаа эсэхийг аппын үйл ажиллагаанаас шалгана уу"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Хууран мэхэлсэн аппууд байгаа эсэхийг шалгахад скан хийхийг ашиглана уу"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Ажлын хууран мэхэлсэн аппууд байгаа эсэхийг шалгахад скан хийхийг ашиглана уу"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-mr/arrays.xml b/res/values-mr/arrays.xml
index b83f493..ee84068 100644
--- a/res/values-mr/arrays.xml
+++ b/res/values-mr/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"एका मिनिटानंतर"</item>
     <item msgid="1574040255478150028">"पाच मिनिटांनंतर"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 980e84f..735b4f6 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"ब्लूटूथ LE ऑडिओ बंद करा"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"डिव्हाइसला LE ऑडिओ हार्डवेअरसंबंधित क्षमतांचा सपोर्ट असल्यास, ब्लूटूथ LE ऑडिओ वैशिष्‍ट्य बंद करते."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"डिव्हाइस तपशील यांत LE ऑडिओ टॉगल दाखवा"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"ब्लूटूथ LE ऑडिओ अनुमती सूची सुरू करा"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"ब्लूटूथ LE ऑडिओ अनुमती सूची वैशिष्‍ट्य सुरू करा."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"ब्लूटूथ LE ऑडिओ अनुमती सूची बायपास करा"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"अनुमती सूचीच्या निकषांची पूर्तता करण्यासाठी LE ऑडिओ पेरिफेरलची पडताळणी केली नसली, तरीही बाय डीफॉल्ट LE ऑडिओ वापरा."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"मीडिया डिव्हाइस"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"कॉल डिव्हाइस"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"इतर डिव्हाइस"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"सेव्ह केलेली डिव्हाइस"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"खात्याशी संबंधित"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"याआधी खात्यासह वापरले"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"पेअर करण्यासाठी ब्लूटूथ सुरू होईल"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"कनेक्शन प्राधान्ये"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"याआधी कनेक्ट केलेले"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"मजकूर फील्डमध्ये लिहा"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"सर्व स्टायलस बटण दाबण्याकडे दुर्लक्ष करा"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"स्टायलस"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"ऑडिओ शेअरिंग"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"ऑडिओ शेअर करा"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"कॉल आणि अलार्म"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"तारीख आणि वेळ"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"प्रॉक्सी"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"साफ करा"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"लोड करत आहे…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"जवळपासच्या डिव्हाइसची परवानगी असणारी ॲप्स कनेक्ट केलेल्या डिव्हाइसचे संबंधित स्थान निर्धारित करू शकतात."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ॲप्स आणि सेवांसाठी स्थान अ‍ॅक्सेस बंद आहे. तुम्ही आणीबाणी नंबरवर कॉल केल्यास किंवा एसएमएस पाठवल्यास तुमच्या डिव्हाइसचे स्थान आणीबाणी प्रतिसादकर्त्यांना अद्याप पाठवले जाऊ शकते."</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"स्थान सेटिंग्जबद्दल अधिक जाणून घ्या"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"खाती"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"सुरक्षा"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"एंक्रिप्शन आणि क्रेडेंशियल"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"कार्य प्रोफाइल"</string>
     <string name="private_space_title" msgid="7078627930195569767">"खाजगी स्पेस"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"खाजगी फोल्डरमध्ये ॲप्स लपवा"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"स्क्रीन लॉक वापरून अनलॉक करा"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"खाजगी स्पेस दाखवा"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"लॉक केलेली असताना लपवा"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"खाजगी स्पेस लॉक केलेली असताना ती लपवा"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"डिव्‍हाइसवर खाजगी स्पेस आहे हे इतरांना कळू नये यासाठी ॲप्स सूचीतून ती लपवता येते"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"तुमची खाजगी स्पेस लपवलेली असताना अ‍ॅक्सेस करा"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"शोध बारमध्ये \'खाजगी स्पेस\' शोधा"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"खाजगी स्पेस च्या टाइलवर टॅप करा"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"तुमची खाजगी स्पेस अनलॉक करा"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"बंद आहे"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"सुरू आहे"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"सिस्टीम"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"खाजगी स्पेस तयार करा"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"खाजगी स्पेस हटवा"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"खाजगी स्पेस यशस्वीरीत्या तयार केली आहे"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"खाजगी स्पेस आधीपासून अस्तित्वात आहे"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"खाजगी स्पेस तयार केली जाऊ शकत नाही"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"खाजगी स्पेस यशस्वीरीत्या हटवली आहे"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"खाजगी स्पेस हटवली जाऊ शकत नाही"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"स्क्रीन लॉक सेट करा"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"खाजगी जागा वापरण्यासाठी, या डिव्हाइसवर स्क्रीन लॉक सेट करा."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"स्क्रीन लॉक सेट करा"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"रद्द करा"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"रद्द करा"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"सेट करा"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"खाजगी स्पेस सेट करा"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"फक्त तुम्ही अ‍ॅक्सेस करू शकता अशा सुरक्षित जागी खाजगी ॲप्स लपवा"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"ती कशी काम करते"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"तुम्ही तुमच्या अ‍ॅप्स सूचीच्या तळाशी खाजगी स्पेस अ‍ॅक्सेस करू शकता"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"खाजगी स्पेस मधील ॲप्स लॉकद्वारे संरक्षित केलेली असतात"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"खाजगी स्पेस लॉक केलेली असताना त्यामधील ॲप्सच्या सूचना लपवल्या जातात"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"खाजगी स्पेस लॉक केलेली असताना, त्यामधील ॲप्स ही परवानगी व्यवस्थापक, गोपनीयता डॅशबोर्ड आणि इतर सेटिंग्जमध्ये दिसणार नाहीत"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"खाजगी स्पेस सेट करत आहे…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"खाजगी स्पेस ही लॉकद्वारे संरक्षित केलेली आहे"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"खाजगी स्पेस ॲप्सची वापर माहिती लॉक केल्यावर लपवली जाते"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"तुमच्या अ‍ॅप सूचीमधून खाजगी स्पेस अ‍ॅक्सेस करा"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"खाजगी स्पेस सेट करता आली नाही"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"आता पुन्हा प्रयत्न करा किंवा नंतर परत या"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"पुन्हा प्रयत्न करा"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"अनलॉक करण्यासाठी स्क्रीन लॉक वापरायचे आहे का?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"तुम्ही तुमचे डिव्हाइस अनलॉक करता त्याच प्रकारे तुमची खाजगी स्पेस अनलॉक करू शकता किंवा दुसरे लॉक निवडू शकता"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"स्क्रीन लॉक वापरा"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"नवीन लॉक निवडा"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"सर्व तयार आहे!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"खाजगी स्पेस अ‍ॅक्सेस करण्यासाठी, तुमच्या होम स्क्रीनच्या तळापासून वर स्वाइप करा, त्यानंतर खाली स्क्रोल करा"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"पूर्ण झाली"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"खाजगी स्पेस अ‍ॅक्सेस करण्यासाठी खाली स्क्रोल करा"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"खाजगी स्पेस सेट करण्यासाठी साइन इन करा"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"तुम्ही <xliff:g id="COUNT">%d</xliff:g> पर्यंत फिंगरप्रिंट जोडू शकता"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"तुम्ही जास्तीत जास्त फिंगरप्रिंट जोडले आहेत"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"आणखी फिंगरप्रिंट जोडू शकत नाही"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"कनेक्ट करा"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"‍डिस्कनेक्ट करा"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"पेअर करा आणि कनेक्ट करा"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"ब्लूटूथ सुरू असते तेव्हा, तुमचे डिव्हाइस इतर जवळच्या ब्लूटूथ डिव्हाइस सह संवाद करू शकते."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"ब्लूटूथ सुरू केल्यावर, डिव्हाइस हे जवळील ब्लूटूथ डिव्‍हाइसशी संवाद साधेल"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"ब्‍लूटूथ सुरू असते, तेव्हा तुमचे डिव्‍हाइस इतर जवळपासच्‍या ब्‍लूटूथ डिव्‍हाइसशी संवाद साधू शकते.\n\nडिव्‍हाइसच्या अनुभवामध्ये सुधारणा करण्‍यासाठी, ब्‍लूटूथ बंद असतानादेखील, अ‍ॅप्स आणि सेवा जवळपासची डिव्‍हाइस कधीही स्‍कॅन करू शकतात. उदाहरणार्थ, हे स्थानावर आधारित वैशिष्ट्ये आणि सेवांमध्ये सुधारणा करण्यासाठी वापरले जाऊ शकते. तुम्‍ही हे ब्लूटूथ स्‍कॅनिंग सेटिंग्‍जमध्‍ये जाऊन बदलू शकता."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"बदला"</string>
     <string name="device_details_title" msgid="1155622417516195481">"डिव्हाइस तपशील"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"डीबग करण्यायोग्य ॲप्ससाठी बाइटकोडची पडताळणी करण्यासाठी ART ला अनुमती द्या"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"रिफ्रेश रेट दाखवा"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"सध्याचा प्रदर्शन रिफ्रेश रेट दाखवा"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"HDR/SDR रेशो दाखवा"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"सध्याचा HDR/SDR रेशो दाखवा"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"NFC साठी डिव्हाइस अनलॉक आवश्यक आहे"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android बीम"</string>
@@ -1062,7 +1137,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"फोल्डवर ॲप्स वापरणे पुढे सुरू ठेवा"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"स्मूथ डिस्प्ले"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"काही आशयासाठी रिफ्रेश रेट ६० ते <xliff:g id="ID_1">%1$s</xliff:g> Hz पर्यंत आपोआप वाढवते. बॅटरी वापर वाढवते."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"काही आशयासाठी रिफ्रेश रेट कमाल <xliff:g id="ID_1">%1$d</xliff:g> Hz पर्यंत आपोआप वाढवते. बॅटरी वापर वाढवते."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"सक्तीने सर्वोच्च रिफ्रेश रेट गाठा"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"सुधारित स्पर्श प्रतिसाद आणि अ‍ॅनिमेशन गुणवत्तेसाठी उच्चतम रिफ्रेश रेट. बॅटरी वापर वाढवतो."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"स्क्रीन अटेंशन"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"सामुदायिक सेटिंग्ज"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"अ‍ॅक्सेस पॉइंट संपादित करा"</string>
+    <string name="apn_add" msgid="9069613192201630934">"ॲक्सेस पॉइंट जोडा"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"सेट नाही"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"सेट केलेले नाही"</string>
     <string name="apn_name" msgid="6677695784108157953">"नाव"</string>
@@ -1320,6 +1396,8 @@
     <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="network_type" msgid="748590707422733595">"नेटवर्कचा प्रकार"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"नमूद केलेला नाही"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO प्रकार"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO मूल्य"</string>
     <string name="menu_delete" msgid="9199740901584348273">"APN हटवा"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"उघडण्यासाठी अ‍ॅक्सेसिबिलिटी बटण वापरा"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"उघडण्यासाठी व्हॉल्यूम की धरून ठेवा"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"उघडण्यासाठी स्क्रीनवर तीनदा टॅप करा"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"उघडण्यासाठी स्क्रीनवर दोन बोटांनी तीन वेळा टॅप करा"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"उघडण्यासाठी जेश्चर वापरा"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"ॲक्सेसिबिलिटी जेश्चर वापरा"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"हे वैशिष्ट्य वापरण्यासाठी, तुमच्या स्क्रीनच्या तळाशी असलेले ॲक्सेसिबिलिटी बटणावर <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> टॅप करा.\n\nवैशिष्टयांदरम्यान स्विच करण्यासाठी ॲक्सेसिबिलिटी बटणाला स्पर्श करा आणि धरून ठेवा."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"हे वैशिष्ट्य वापरण्यासाठी, तुमच्या स्क्रीनवरील अ‍ॅक्सेसिबिलिटी बटणावर टॅप करा."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"हे वैशिष्ट्य वापरण्यासाठी, दोन्ही व्हॉल्यूम की प्रेस करून धरून ठेवा."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"मॅग्निफिकेशन सुरू करण्यासाठी आणि थांबवण्यासाठी तुमच्या स्क्रीनवर कुठेही तीनदा टॅप करा."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"मॅग्निफिकेशन सुरू करण्यासाठी आणि थांबवण्यासाठी तुमच्या स्क्रीनवर दोन बोटांनी कुठेही तीनदा टॅप करा."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"हे वैशिष्ट्य वापरण्यासाठी, दोन बोटांनी स्क्रीनच्या तळापासून वर स्वाइप करा.\n\nवैशिष्ट्यांदरम्यान स्विच करण्यासाठी दोन बोटांनी वर स्वाइप करा आणि धरून ठेवा."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"हे वैशिष्ट्य वापरण्यासाठी, तीन बोटांनी स्क्रीनच्या तळापासून वर स्वाइप करा.\n\nवैशिष्ट्यांदरम्यान स्विच करण्यासाठी तीन बोटांनी वर स्वाइप करा आणि धरून ठेवा."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"ॲक्सेसिबिलिटी वैशिष्ट्य वापरण्यासाठी, दोन बोटांनी स्क्रीनच्या तळापासून वर स्वाइप करा.\n\nवैशिष्ट्यांदरम्यान स्विच करण्यासाठी दोन बोटांनी वर स्वाइप करा आणि धरून ठेवा."</string>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"व्हॉल्यूम की प्रेस करून ठेवा"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"व्हॉल्यूम की प्रेस करून ठेवा"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"दोन्ही व्हॉल्यूम की प्रेस करून धरून ठेवा"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"स्क्रीनवर दोन बोटांनी तीन वेळा टॅप करा"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"स्क्रीनवर दोन बोटांनी तीन वेळा टॅप करा"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"दोन बोटांनी स्क्रीनवर {0,number,integer} वेळा झटपट टॅप करा"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"स्क्रीनवर तीन वेळा टॅप करा"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"स्क्रीनवर तीन वेळा टॅप करा"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"स्क्रीनवर झटपट {0,number,integer} वेळा टॅप करा. हा शॉर्टकट तुमच्या डिव्हाइसचा वेग कमी करू शकताे"</string>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"व्हायब्रेशन आणि हॅप्टिक वापरा"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"अलार्म व्हायब्रेशन"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"मीडिया व्हायब्रेशन"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"कीबोर्ड व्हायब्रेशन"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"रिंग व्हायब्रेशन"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"सूचना व्हायब्रेशन"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"टच फीडबॅक"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> शिल्लक"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"चार्ज करण्यासाठी <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g>"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"स्क्रीनचा वेळ"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"बॅकग्राउंडचा वेळ"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"बॅटरी कमी आहे"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"अ‍ॅपला पार्श्वभूमीत चालण्याची अनुमती द्या"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"बॅकग्राउंड ॲक्टिव्हिटी मर्यादित ठेवायची?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"तुम्‍ही एखाद्या ॲपसाठी बॅकग्राउंड ॲक्टिव्हिटी मर्यादित ठेवल्‍यास, ते व्‍यवस्थित न चालण्‍याची शक्‍यता आहे"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"हे अ‍ॅप बॅटरी ऑप्टिमाइझ करण्यासाठी सेट केलेले नसल्याने, तुम्ही ते प्रतिबंधित करू शकत नाही.\n\nअ‍ॅप प्रतिबंधित करण्यासाठी, प्रथम बॅटरी ऑप्टिमायझेशन सुरू करा"</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"बॅटरीचा वापर व्यवस्थापित करा"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"बॅकग्राउंडमधील वापराला अनुमती द्या"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"रीअल-टाइम अपडेटसाठी सुरू करा, बॅटरीची बचत करण्यासाठी बंद करा"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"कोणताही प्रतिबंध नाही"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"ऑप्टिमाइझ केली"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"प्रतिबंधित"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"शेवटचे पूर्ण चार्ज झाल्यापासून"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"सिस्टीम अ‍ॅप्स"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"अनइंस्टॉल केलेली अ‍ॅप्स"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"इतर"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"अंदाजे शिल्लक वेळ"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"पूर्ण चार्ज होईपर्यंत"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"एकूण: एका मिनिटापेक्षा कमी"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"बॅकग्राउंड: एका मिनिटापेक्षा कमी"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"स्क्रीन वेळ: कमाल एक मिनिट"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"एका मिनिटापेक्षा कमी"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"एकूण: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"बॅकग्राउंड: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"स्क्रीन वेळ: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"मोबाइल डेटा आणि वाय-फाय"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"वैयक्तिक डेटा ऑटो-सिंक करा"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"कार्य डेटा ऑटो-सिंक करा"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"खाजगी डेटा आपोआप सिंक करा"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"आवर्तन बदला…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"डेटा वापर चक्र रीसेट करण्यासाठी महिन्याचा दिवस:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"या कालावधी दरम्यान कोणत्याही अ‍ॅप्स नी डेटा वापरला नाही."</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"मजकुराचा आकार, मोठी प्रिंट, मोठा फॉंट, मोठा मजकूर, कमी दृश्यमानता, मजकूर आणखी मोठा करा, फॉंटचा आकार मोठा करणारा, फॉंटचा आकार मोठा करणे"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"नेहमी सुरू अँबियंट डिस्प्ले, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"NFC, टॅग, रीडर"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"कीबोर्ड, हॅप्टिक, व्हायब्रेट,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"आवाज, व्हायब्रेट, व्यत्यय आणू नका"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"मीडिया व्हॉल्यूम"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"व्हॉल्यूम कास्ट करा"</string>
@@ -3267,7 +3360,7 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"सूचनेतील सर्व आशय दाखवा"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"संवेदनशील आशय केवळ अनलॉक केलेले असताना दाखवा"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"सूचना अजिबात दाखवू नका"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"तुम्ही लॉक स्क्रीन कशी प्रदर्शित करू इच्छिता?"</string>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"तुम्हाला तुमच्या लॉक स्क्रीनने काय दाखवावे असे वाटते?"</string>
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"लॉक स्क्रीन"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"सर्व कार्य सूचना आशय दर्शवा"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"संवेदनशील कार्य आशय लपवा"</string>
@@ -3354,6 +3447,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"हे ॲप वर्धित सेटिंग्जना सपोर्ट करत नाही"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"अधिक सेटिंग्ज"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"या अ‍ॅपमध्ये अधिक सेटिंग्ज उपलब्ध आहेत"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"सूचना कूलडाउन"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"सर्व सूचनांना कूलडाउन लागू करा"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"तुम्हाला एकाच अ‍ॅपवरून अनेक सूचना मिळतात, तेव्हा सूचनांची संख्या हळूहळू कमी करा"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"संभाषणांना कूलडाउन लागू करा"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"तुम्हाला एकाच चॅटद्वारे कमी कालावधीमध्ये अनेक मेसेज मिळतात, तेव्हा सूचनांची संख्या हळूहळू कमी करा"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"सूचना कूलडाउन वापरू नका"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"एकाच अ‍ॅपवरून लागोपाठ कितीही सूचना आल्या, तरीही सूचनांची संख्या कधीही कमी करू नका"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"अनलॉक केल्यावर व्हायब्रेट करा"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"स्क्रीन अनलॉक केल्यावरच व्हायब्रेट करा"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"कार्य प्रोफाइलला लागू करा"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"तुमच्या वैयक्तिक प्रोफाइलवरून तुमच्या कार्य प्रोफाइलवर सूचना कूलडाउन सेटिंग्ज लागू करा"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR मदतनीस सेवा"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"कोणत्याही इंस्टॉल केलेल्या अ‍ॅप्सनी VR मदतनीस सेवा म्हणून चालवण्यासाठी विनंती केली नाही."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"<xliff:g id="SERVICE">%1$s</xliff:g> साठी VR सेवा प्रवेशाची अनुमती द्यायची?"</string>
@@ -3745,6 +3849,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"सर्व फाइल व्यवस्थापनासाठी अ‍ॅक्सेस द्या"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"या ॲपला या डिव्हाइसवरील किंवा कनेक्ट केलेल्या स्टोरेज व्‍हॉल्‍यूममधील सर्व फाइल वाचण्याची, सुधारित करण्याची आणि हटवण्याची अनुमती द्या. अनुमती दिली असल्यास, ॲप कदाचित तुम्हाला न विचारता फाइलला अ‍ॅक्सेस करू शकते"</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"सर्व फाइल अ‍ॅक्सेस करू शकते"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"व्हॉइस ॲक्टिव्हेशनशी संबंधित अ‍ॅप्स"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"व्हॉइस ॲक्टिव्हेशनला अनुमती द्या"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"व्हॉइस ॲक्टिव्हेशन हे व्हॉइस कमांड वापरून मंजूर केलेली ॲप्स, हँड्स-फ्री सुरू करते. बिल्ट-इन संरक्षित अडॅप्टिव्ह सेन्सिंग हे डेटा फक्त तुमच्यासाठी खाजगी राहील याची खात्री करते.\n\n"<a href="">"संरक्षित अडॅप्टिव्ह सेन्सिंगविषयी आणखी"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"फुल स्क्रीन सूचना"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"या ॲपवरील फुल स्क्रीन सूचनांना अनुमती द्या"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"डिव्‍हाइस लॉक असताना या ॲपला फुल स्क्रीन वापरणाऱ्या सूचना दाखवण्‍याची अनुमती द्या. ॲप्स यांचा वापर अलार्म, इनकमिंग कॉल किंवा इतर तातडीच्या सूचना हायलाइट करण्यासाठी करू शकतात."</string>
@@ -3908,6 +4015,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"बॅकग्राउंडमध्ये असताना <xliff:g id="APP_LABEL">%1$s</xliff:g> ने नेहमीपेक्षा अधिक बॅटरी वापरली आहे"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"फोरग्राउंडमध्ये असताना <xliff:g id="APP_LABEL">%1$s</xliff:g> ने अधिक बॅटरी वापरली आहे"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"फोरग्राउंडमध्ये असताना <xliff:g id="APP_LABEL">%1$s</xliff:g> ने नेहमीपेक्षा अधिक बॅटरी वापरली आहे"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"बॅटरीचा अधिक वापर"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"बॅकग्राउंडमध्ये बॅटरीचा अधिक वापर"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"फोरग्राउंडमध्ये बॅटरीचा अधिक वापर"</string>
@@ -4005,7 +4114,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"सिस्टम नेव्हिगेशन, दोन बटण नेव्हिगेशन, तीन बटण नेव्हिगेशन, जेश्चर नेव्हिगेशन, स्‍वाइप"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"डिजिटल असिस्टंट"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"असिस्टंट अ‍ॅक्टिव्हेट करण्यासाठी स्वाइप करा"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"डिजिटल असिस्टंट अ‍ॅप अ‍ॅक्टिव्हेट करण्यासाठी तळाच्या कोपऱ्यापासून वर स्वाइप करा."</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"डिजिटल असिस्टंट अ‍ॅपची विनंती करण्यासाठी तळाच्या कोपऱ्यापासून वर स्वाइप करा"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"असिस्टंट अ‍ॅक्टिव्हेट करण्यासाठी होम बटण धरून ठेवा"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"डिजिटल असिस्टंट अ‍ॅप अ‍ॅक्टिव्हेट करण्यासाठी होम बटण प्रेस करून धरून ठेवा."</string>
     <string name="low_label" msgid="6525629096999711220">"कमी"</string>
@@ -4172,7 +4281,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"डेटा, पासकी, पासवर्ड"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"ऑटो, भरा, ऑटोफिल, डेटा, पासकी, पासवर्ड"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;तुमचा या ॲपवर विश्वास असल्याची खात्री करा&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; ऑटोफिल काय होऊ शकते हे ठरवण्यासाठी तुमच्या स्क्रीनवर काय आहे याचा वापर करते."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&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_autofill_confirmation_message" msgid="843829628024668466">"&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_picker_title" msgid="8191267620665129205">"पासवर्ड, पासकी आणि डेटा सेवा"</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>
@@ -4226,8 +4335,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- 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">"चेतावणी: डीफॉल्ट OpenGL ES ड्रायव्हर म्हणून ANGLE सुरू करा. या वैशिष्ट्यावर प्रयोग सुरू आहे आणि काही कॅमेरा व व्हिडिओ अ‍ॅप्सशी कंपॅटिबल नसू शकते."</string>
+    <string name="enable_angle_as_system_driver" msgid="4648827560023949786">"प्रायोगिक: Enable सुरू करा"</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"चेतावणी: डीफॉल्ट OpenGL ES ड्रायव्हर म्हणून ANGLE सुरू करा. या वैशिष्ट्यावर प्रयोग सुरू आहे आणि ते काही कॅमेरा व व्हिडिओ अ‍ॅप्सशी कंपॅटिबल नसू शकते."</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>
@@ -4856,4 +4965,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"फसव्या अ‍ॅप्ससाठी स्कॅन करत आहे"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"फिशिंगसाठी अ‍ॅप अ‍ॅक्टिव्हिटी तपासा"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"फसव्या अ‍ॅप्ससाठी स्कॅनिंग वापरा"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"कामासंबंधित फसव्या अ‍ॅप्ससाठी स्कॅनिंग वापरा"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-ms/arrays.xml b/res/values-ms/arrays.xml
index eff1ab3..ff1b598 100644
--- a/res/values-ms/arrays.xml
+++ b/res/values-ms/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Selepas 1 minit"</item>
     <item msgid="1574040255478150028">"Selepas 5 minit"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 3d1bd3f..b073490 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -45,7 +45,7 @@
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Sentiasa"</string>
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Paparan depan dihidupkan semasa anda melipatkan peranti anda"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Hanya permainan, video dan pelbagai lagi"</string>
-    <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Paparan hadapan dihidupkan untuk apl yang menghentikan skrin anda daripada melahu"</string>
+    <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Paparan depan dihidupkan untuk apl yang menghentikan skrin anda daripada melahu"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Jangan sekali-kali"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Paparan depan dikunci semasa anda melipatkan peranti anda"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Gunakan autoputar"</string>
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Lumpuhkan Bluetooth LE Audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Melumpuhkan ciri Bluetooth LE Audio jika peranti menyokong keupayaan perkakasan LE Audio."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Tunjukkan togol LE Audio pada Butiran Peranti"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Dayakan Senarai Dibenarkan untuk Bluetooth LE audio"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Dayakan ciri senarai dibenarkan untuk Bluetooth LE Audio."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Senarai Dibenarkan Bluetooth LE Audio Pintasan"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Gunakan LE Audio secara lalai walaupun persisian LE Audio belum disahkan sebagai memenuhi kriteria Senarai Dibenarkan."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Peranti media"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Panggil peranti"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Peranti lain"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Peranti disimpan"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Dikaitkan dengan akaun"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Digunakan sebelum ini dengan akaun"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth akan dihidupkan untuk bergandingan"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Pilihan sambungan"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Disambungkan sebelum ini"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Tulis dalam medan teks"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Abaikan semua tekanan butang stilus"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Stilus"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Perkongsian audio"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Kongsi audio"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Panggilan dan penggera"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Tarikh &amp; masa"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proksi"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Padam bersih"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Ketahui lebih lanjut tentang tetapan Lokasi"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Akaun"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Keselamatan"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Penyulitan &amp; bukti kelayakan"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Profil kerja"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Ruang Peribadi"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Sembunyikan apl dalam folder peribadi"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Buka kunci menggunakan kunci skrin"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Tunjukkan Ruang Peribadi"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Sembunyikan apabila dikunci"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Sembunyikan Ruang Peribadi apabila dikunci"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Sembunyikan Ruang Peribadi daripada senarai apl anda supaya tidak diketahui pengguna lain"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Akses Ruang Peribadi apabila disembunyikan"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Cari \'Ruang Peribadi\' dalam bar carian"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Ketik jubin Ruang Peribadi"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Buka kunci Ruang Peribadi anda"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Mati"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Hidup"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Sistem"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Buat Ruang Peribadi"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Padamkan Ruang Peribadi"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Ruang Peribadi berjaya dibuat"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Ruang Peribadi sudah wujud"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Ruang Peribadi tidak dapat dibuat"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Ruang Peribadi berjaya dipadamkan"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Ruang Peribadi tidak dapat dipadamkan"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Tetapkan kunci skrin"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Untuk Ruang Peribadi, tetapkan kunci skrin pada peranti ini."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Tetapkan kunci skrin"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Batal"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Batal"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Persediaan"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Sediakan Ruang Peribadi"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Sembunyikan apl peribadi dalam ruang selamat yang hanya boleh diakses oleh anda"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Cara apl ini berfungsi"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Anda boleh mengakses Ruang Peribadi daripada bahagian bawah senarai apl anda"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Apl dalam Ruang Peribadi dilindungi dengan kunci"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Pemberitahuan daripada apl dalam Ruang Peribadi disembunyikan apabila apl dikunci"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Apl Ruang Peribadi tidak dipaparkan dalam pengurus kebenaran, papan pemuka privasi dan tetapan lain apabila Ruang Peribadi dikunci"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Menyediakan Ruang Peribadi…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Ruang Peribadi dilindungi dengan kunci"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Maklumat penggunaan untuk apl Ruang Peribadi disembunyikan apabila ap dikunci"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Akses Ruang Peribadi daripada senarai apl anda"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Tidak dapat menyediakan Ruang Peribadi"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Cuba lagi sekarang atau kembali sebentar lagi"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Cuba Lagi"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Gunakan kunci skrin untuk membuka kunci?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Anda boleh membuka kunci Ruang Peribadi menggunakan cara yang sama seperti anda membuka kunci peranti anda atau memilih kunci yang lain"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Gunakan kunci skrin"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Pilih kunci baharu"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Siap!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Untuk mengakses Ruang Peribadi, leret ke atas dari bahagian bawah skrin utama anda, kemudian tatal ke bawah"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Selesai"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Tatal ke bawah untuk mengakses Ruang Peribadi"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Log masuk untuk menyediakan Ruang Peribadi"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Anda boleh menambah sehingga <xliff:g id="COUNT">%d</xliff:g> cap jari"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Anda telah menambahkan bilangan maksimum cap jari"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Tidak boleh menambahkan lagi cap jari"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Sambung"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Putus sambungan"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Gandingkan &amp; sambung"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Apabila Bluetooth dihidupkan, peranti anda boleh berkomunikasi dengan peranti Bluetooth lain yang berhampiran."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Apabila Bluetooth dihidupkan, peranti anda boleh berkomunikasi dengan peranti Bluetooth lain yang berdekatan"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Apabila Bluetooth dihidupkan, peranti anda dapat berkomunikasi dengan peranti Bluetooth lain yang berada berdekatan.\n\nUntuk meningkatkan pengalaman peranti, apl dan perkhidmatan masih dapat melakukan pengimbasan untuk mengesan peranti berdekatan pada bila-bila masa, meskipun apabila Bluetooth dimatikan. Tetapan ini boleh digunakan, contohnya, untuk meningkatkan ciri dan perkhidmatan berasaskan lokasi. Anda boleh menukar tetapan ini dalam tetapan pengimbasan Bluetooth."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Tukar"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Butiran peranti"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Benarkan ART mengesahkan kod bait apl boleh dinyahpepijat"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Tunjukkan kadar muat semula"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Tunjukkan kadar muat semula paparan semasa"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Tunjukkan nisbah HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Tunjukkan nisbah HDR/SDR semasa"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Memerlukan buka kunci peranti untuk NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1137,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Terus menggunakan apl semasa dilipat"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Meningkatkan kadar segar semula daripada 60 kepada <xliff:g id="ID_1">%1$s</xliff:g> Hz untuk sesetengah kandungan secara automatik. Meningkatkan penggunaan bateri."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Meningkatkan kadar segar semula hingga <xliff:g id="ID_1">%1$d</xliff:g> Hz untuk sesetengah kandungan secara automatik. Meningkatkan penggunaan bateri."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Paksa kadar muat semula puncak"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Kadar muat semula tertinggi untuk keresponsifan sentuhan &amp; kualiti animasi yang dipertingkat. Meningkatkan penggunaan bateri."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Perhatian skrin"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Tetapan umum"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Edit titik capaian"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Tambahkan titik akses"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Tidak ditetapkan"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Tidak ditetapkan"</string>
     <string name="apn_name" msgid="6677695784108157953">"Nama"</string>
@@ -1320,6 +1396,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN didayakan"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN dilumpuhkan"</string>
     <string name="bearer" msgid="3231443241639159358">"Pembawa"</string>
+    <string name="network_type" msgid="748590707422733595">"Jenis rangkaian"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Tidak dinyatakan"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Jenis MVNO"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"Nilai MVNO"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Padam APN"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Gunakan butang kebolehaksesan untuk buka"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Tahan kekunci kelantangan untuk buka"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Ketik skrin tiga kali untuk buka"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Ketik skrin tiga kali menggunakan dua jari untuk membuka"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Gunakan gerak isyarat untuk buka"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Gunakan gerak isyarat kebolehaksesan"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Untuk menggunakan ciri ini, ketik butang kebolehaksesan <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> di bahagian bawah skrin anda.\n\nUntuk menukar antara ciri, sentuh &amp; tahan butang kebolehaksesan."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Untuk menggunakan ciri ini, ketik butang kebolehaksesan pada skrin anda."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Untuk menggunakan ciri ini, tekan &amp; tahan kedua-dua kekunci kelantangan."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Untuk memulakan dan menghentikan pembesaran, ketik tiga kali di mana-mana bahagian skrin anda."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Untuk memulakan dan menghentikan pembesaran, ketik tiga kali pada skrin anda menggunakan dua jari."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Untuk menggunakan ciri ini, leret ke atas dari bahagian bawah skrin dengan menggunakan 2 jari.\n\nUntuk menukar antara ciri, leret ke atas dengan menggunakan 2 jari dan tahan."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Untuk menggunakan ciri ini, leret ke atas dari bahagian bawah skrin dengan menggunakan 3 jari.\n\nUntuk menukar antara ciri, leret ke atas dengan menggunakan 3 jari dan tahan."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Untuk menggunakan ciri kebolehcapaian, leret ke atas dari bahagian bawah skrin dengan menggunakan 2 jari.\n\nUntuk menukar antara ciri, leret ke atas dengan menggunakan 2 hari dan tahan."</string>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Tahan kekunci kelantangan"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"tahan 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_triple_tap" msgid="6687765191490040899">"Ketik skrin tiga kali menggunakan dua jari"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"ketik skrin tiga kali menggunakan dua jari"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"ketik tiga kali pada skrin"</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>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Gunakan getaran &amp; haptik"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Getaran penggera"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Getaran media"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Getaran papan kekunci"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Getaran deringan"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Getaran pemberitahuan"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Maklum balas sentuhan"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> yang tinggal"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> untuk mengecas"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Masa skrin"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Masa latar"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Bateri lemah"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Benarkan apl berjalan di latar belakang"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Hadkan aktiviti latar belakang?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Jika anda mengehadkan aktiviti latar belakang untuk apl, fungsi apl itu mungkin terganggu"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Apl ini tidak boleh dihadkan kerana tidak ditetapkan untuk mengoptimumkan bateri.\n\nHidupkan pengoptimuman bateri dahulu."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Urus penggunaan bateri"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Benarkan penggunaan latar"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Dayakan kemaskinian masa nyata, lumpuhkan ciri untuk menjimatkan bateri"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Tiada sekatan"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Dioptimumkan"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Terhad"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"sejak cas penuh terakhir"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Apl sistem"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Apl yang dinyahpasang"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Lain-lain"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Anggaran baki masa"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Sehingga dicas penuh"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Jumlah: kurang dari seminit"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Latar: kurang daripada seminit"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Masa skrin: kurang daripada seminit"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Kurang daripada seminit"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Jumlah: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Latar: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Masa skrin: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Data mudah alih &amp; Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Auto segerak data peribadi"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Auto segerak data kerja"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Autosegerakkan data peribadi"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Tukar kitaran..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Hari dalam bulan untuk menetapkan semula kitaran penggunaan data:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Tiada aplikasi menggunakan data dalam tempoh ini."</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"saiz teks, huruf cetak besar, fon besar, teks besar, rabun, jadikan teks lebih besar, besarkan teks, pembesaran fon"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"paparan ambien sentiasa hidup, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, tag, pembaca"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"papan kekunci, haptik, getaran,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Kelantangan, getaran, Jangan Ganggu"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Kelantangan media"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Kelantangan penghantaran"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Tunjukkan semua kandungan pemberitahuan"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Tunjukkan kandungan sensitif ketika tidak berkunci"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Jangan tunjukkan pemberitahuan sama sekali"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Bagaimanakah paparan skrin kunci yang anda inginkan?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Skrin kunci"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Tunjukkan semua kandungan pemberitahuan kerja"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Sembunyikan kandungan kerja yang sensitif"</string>
@@ -3354,6 +3448,17 @@
     <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="6121016426991791557">"Tempoh bertenang pemberitahuan"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Gunakan tempoh bertenang pada semua pemberitahuan"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Rendahkan kelantangan pemberitahuan secara berperingkat apabila anda menerima pemberitahuan daripada apl yang sama secara berturutan"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Gunakan tempoh bertenang pada perbualan"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Rendahkan kelantangan pemberitahuan secara berperingkat apabila anda menerima mesej daripada sembang yang sama dalam tempoh masa yang singkat"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Jangan gunakan tempoh bertenang pemberitahuan"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Jangan sesekali merendahkan kelantangan pemberitahuan tanpa mengira jumlah pemberitahuan daripada apl yang sama secara berturutan"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Bergetar apabila tidak berkunci"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Hanya bergetar apabila skrin tidak berkunci"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Gunakan pada profil kerja"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Gunakan tetapan tempoh bertenang pemberitahuan daripada profil peribadi anda pada profil kerja anda"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Perkhidmatan pembantu VR"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Tiada apl terpasang yang telah meminta untuk dijalankan sebagai perkhidmatan pembantu VR."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Benarkan akses perkhidmatan VR untuk <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Benarkan akses untuk mengurus semua fail"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Benarkan apl ini membaca, mengubah suai dan memadamkan semula fail pada peranti ini atau mana-mana unit storan yang disambungkan. Jika dibenarkan, apl mungkin mengakses fail tanpa pengetahuan anda secara jelas."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Boleh mengakses semua fail"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Apl pengaktifan suara"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Benarkan pengaktifan suara"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Pengaktifan suara menghidupkan apl yang diluluskan, secara bebas tangan menggunakan perintah suara. Pengesanan boleh suai terbina dalam memastikan data kekal peribadi kepada anda.\n\n"<a href="">"Maklumat lanjut tentang pengesanan boleh suai yang dilindungi"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Pemberitahuan skrin penuh"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Benarkan pemberitahuan skrin penuh daripada apl ini"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Benarkan apl ini untuk memaparkan pemberitahuan menggunakan skrin penuh apabila peranti dikunci. Apl mungkin menggunakan ciri ini untuk menyerlahkan penggera, panggilan masuk atau pemberitahuan mustahak yang lain."</string>
@@ -3783,7 +3891,7 @@
     <string name="memory_summary" msgid="8221954450951651735">"Purata <xliff:g id="USED_MEMORY">%1$s</xliff:g> daripada <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> memori digunakan"</string>
     <string name="users_summary" msgid="8473589474976307510">"Dilog masuk sebagai <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
     <string name="android_version_summary" msgid="7818952662015042768">"Dikemaskinikan kepada Android <xliff:g id="VERSION">%1$s</xliff:g>"</string>
-    <string name="android_version_pending_update_summary" msgid="5404532347171027730">"Kemas kini tersedia"</string>
+    <string name="android_version_pending_update_summary" msgid="5404532347171027730">"Kemaskinian tersedia"</string>
     <string name="disabled_by_policy_title" msgid="6852347040813204503">"Disekat oleh dasar kerja"</string>
     <string name="disabled_by_policy_title_adjust_volume" msgid="1669689058213728099">"Kelantangan tidak boleh ditukar"</string>
     <string name="disabled_by_policy_title_outgoing_calls" msgid="400089720689494562">"Tidak dapat membuat panggilan"</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> menggunakan lebih banyak kuasa bateri daripada biasa semasa dalam latar"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> menggunakan lebih banyak kuasa bateri semasa dalam latar depan"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> menggunakan lebih banyak kuasa bateri daripada biasa semasa dalam latar depan"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Penggunaan kuasa bateri yang tinggi"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Penggunaan kuasa bateri yang tinggi dalam latar"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Penggunaan kuasa bateri yang tinggi dalam latar depan"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"navigasi sistem, navigasi 2 butang, navigasi 3 butang, navigasi gerak isyarat, leret"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Pembantu digital"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Leret untuk menggunakan pembantu"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Leret ke atas dari sudut bawah untuk menggunakan apl pembantu digital."</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Leret ke atas dari sudut bawah untuk menggunakan apl pembantu digital"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Tahan butang Skrin Utama untuk menggunakan Assistant"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Tekan dan tahan butang Skrin Utama untuk menggunakan apl pembantu digital."</string>
     <string name="low_label" msgid="6525629096999711220">"Rendah"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"data, kunci laluan, kata laluan"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"automatik, isi, autolengkap, data, kunci laluan, kata laluan"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Pastikan anda mempercayai apl ini&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; menggunakan item yang terdapat pada skrin anda untuk menentukan perkara yang boleh dilengkapkan secara automatik."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Gunakan &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; menggunakan maklumat pada skrin untuk menentukan pengisian data automatik. Kata laluan baharu, kunci laluan dan maklumat lain akan disimpan di sini mulai sekarang."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Use &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Kata laluan baharu, kunci laluan dan maklumat lain akan disimpan di sini mulai sekarang. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; mungkin menggunakan maklumat pada skrin anda untuk menentukan pengisian data automatik."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Kata laluan, kunci laluan dan perkhidmatan data"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Matikan %1$s?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Matikan perkhidmatan ini?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Maklumat yang disimpan seperti kata laluan, kunci laluan, kaedah pembayaran dan maklumat lain tidak akan diisikan apabila anda log masuk. Untuk menggunakan maklumat anda yang disimpan, pilih kata laluan, kunci laluan atau perkhidmatan data."</string>
@@ -4856,4 +4966,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Mengimbas untuk mengesan apl yang mengelirukan"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Semak aktiviti apl untuk mengesan pancingan data"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Gunakan ciri pengimbasan untuk mengesan apl yang mengelirukan"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Gunakan ciri pengimbasan untuk mengesan apl yang mengelirukan untuk kerja"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-my/arrays.xml b/res/values-my/arrays.xml
index f400fc3..382eb36 100644
--- a/res/values-my/arrays.xml
+++ b/res/values-my/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"၁ မိနစ်နောက်ပိုင်း"</item>
     <item msgid="1574040255478150028">"၅ မိနစ်နောက်ပိုင်း"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index d40baf8..feb5b61 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"‘ဘလူးတုသ် LE Audio’ ပိတ်ရန်"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"စက်က LE Audio ဟာ့ဒ်ဝဲစွမ်းရည်များကို ပံ့ပိုးလျှင် ဘလူးတုသ် LE Audio အင်္ဂါရပ်ကို ပိတ်သည်။"</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"‘စက်အသေးစိတ်’ တွင် LE audio ခလုတ်ပြရန်"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"ဘလူးတုသ် LE Audio ခွင့်ပြုစာရင်း ဖွင့်ရန်"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"ဘလူးတုသ် LE Audio ခွင့်ပြုစာရင်း အင်္ဂါရပ်ကို ဖွင့်သည်။"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"‘ဘလူးတုသ် LE Audio ခွင့်ပြုစာရင်း’ ကို ရှောင်ကွင်းရန်"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"LE Audio အရံပစ္စည်းကို ‘ခွင့်ပြုစာရင်း’ သတ်မှတ်ချက်နှင့် ကိုက်ညီသည်ဟု အတည်ပြုမထားလျှင်ပင် LE Audio ကို မူရင်းသတ်မှတ်ချက်အတိုင်း သုံးနိုင်သည်။"</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"မီဒီယာ စက်ပစ္စည်းများ"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"ခေါ်ဆိုမှု စက်ပစ္စည်းများ"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"အခြား စက်ပစ္စည်းများ"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"သိမ်းထားသည့် စက်ပစ္စည်းများ"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"အကောင့်နှင့် သက်ဆိုင်သည်"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"အကောင့်နှင့် ယခင်က တွဲဖက်အသုံးပြုထားသည့်စက်များ"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"တွဲချိတ်ရန် ဘလူးတုသ်ကို ဖွင့်ပါမည်"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"ချိတ်ဆက်မှု ဦးစားပေးများ"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"ယခင် ချိတ်ဆက်ထားသည်များ"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"စာသားအကွက်များတွင် ရေးခြင်း"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"စတိုင်လပ်စ်ခလုတ်နှိပ်ခြင်းအားလုံးကို လစ်လျူရှုခြင်း"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"စတိုင်လပ်စ်"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"အသံမျှဝေခြင်း"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"အသံမျှဝေရန်"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"ခေါ်ဆိုမှုနှင့် နှိုးစက်များ"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"ရက်စွဲနှင့် အချိန်"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"ပရောက်စီ"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"ရှင်းရန်"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"ဖွင့်နေသည်…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"အနီးတစ်ဝိုက်ရှိ စက်များ၏ ခွင့်ပြုချက်ကိုရထားသော အက်ပ်များက ချိတ်ဆက်ထားသောစက်များ၏ ဆက်စပ်နေရာကို သတ်မှတ်နိုင်သည်။"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"အက်ပ်နှင့် ဝန်ဆောင်မှုများအတွက် တည်နေရာသုံးခွင့်ကို ပိတ်ထားသည်။ သင် အရေးပေါ် နံပါတ်ကို ဖုန်းဆက်သောအခါ (သို့) စာတိုပို့သောအခါ သင့်စက်၏တည်နေရာကို အရေးပေါ်ဆောင်ရွက်ပေးသူများထံ ပို့နိုင်ပါသည်။"</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"တည်နေရာပြ ဆက်တင်များအကြောင်း ပိုမိုလေ့လာရန်"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"အကောင့်များ"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"လုံခြုံရေး"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"အသွင်ဝှက်ခြင်းနှင့် အထောက်အထားများ"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"အလုပ်ပရိုဖိုင်"</string>
     <string name="private_space_title" msgid="7078627930195569767">"သီးသန့်ချတ်ခန်း"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"အက်ပ်များကို သီးသန့်ဖိုင်တွဲတွင် ဖျောက်နိုင်သည်"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"ဖန်သားပြင်လော့ခ်သုံး၍ ဖွင့်ရန်"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"‘သီးသန့်ချတ်ခန်း’ ပြပါ"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"လော့ခ်ချထားချိန်တွင် ဖျောက်ရန်"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"‘သီးသန့်ချတ်ခန်း’ လော့ခ်ချထားချိန်တွင် ဖျောက်ရန်"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"သင့်စက်၌ ‘သီးသန့်ချတ်ခန်း’ ရှိကြောင်း အခြားသူများ မသိတော့စေရန် ၎င်းကို သင့်အက်ပ်စာရင်းမှ ဖျောက်နိုင်သည်"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"‘သီးသန့်ချတ်ခန်း’ ကို ဖျောက်ထားချိန်တွင် သုံးခြင်း"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"ရှာဖွေမှုဘားတွင် ‘သီးသန့်ချတ်ခန်း’ ရှာရန်"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"‘သီးသန့်ချတ်ခန်း’ အကွက်ငယ်ကို တို့ရန်"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"‘သီးသန့်ချတ်ခန်း’ ကို ဖွင့်ရန်"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"ပိတ်"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"ဖွင့်"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"စနစ်"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"‘သီးသန့်ချတ်ခန်း’ ပြုလုပ်ရန်"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"‘သီးသန့်ချတ်ခန်း’ ဖျက်ရန်"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"‘သီးသန့်ချတ်ခန်း’ ပြုလုပ်ပြီးပြီ"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"‘သီးသန့်ချတ်ခန်း’ ရှိပြီးသားဖြစ်သည်"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"‘သီးသန့်ချတ်ခန်း’ ပြုလုပ်၍မရပါ"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"‘သီးသန့်ချတ်ခန်း’ ကိုဖျက်ပြီးပါပြီ"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"‘သီးသန့်ချတ်ခန်း’ ကိုဖျက်၍မရပါ"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"ဖန်သားပြင်လော့ခ် သတ်မှတ်ပါ"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"‘သီးသန့်ချတ်ခန်း’ သုံးရန် ဤစက်၌ ဖန်သားပြင်လော့ခ် သတ်မှတ်ပါ။"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"ဖန်သားပြင်လော့ခ် သတ်မှတ်ရန်"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"မလုပ်တော့"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"မလုပ်တော့"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"စနစ်ထည့်သွင်းရန်"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"‘သီးသန့်ချတ်ခန်း’ ကို စနစ်ထည့်သွင်းပါ"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"သင်သာ ဝင်နိုင်သည့် လုံခြုံသောချတ်ခန်းရှိ သီးသန့်အက်ပ်များကို ဖျောက်ပါ"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"အလုပ်လုပ်ပုံ"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"‘သီးသန့်ချတ်ခန်း’ ကို သင့်အက်ပ်စာရင်းအောက်ခြေမှ ဝင်နိုင်သည်"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"‘သီးသန့်ချတ်ခန်း’ ရှိ အက်ပ်များကို လော့ခ်ဖြင့် ကာကွယ်ထားသည်"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"‘သီးသန့်ချတ်ခန်း’ လော့ခ်ချထားချိန်တွင် ၎င်းရှိ အက်ပ်များမှ အကြောင်းကြားချက်များကို ဖျောက်ထားသည်"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"‘သီးသန့်ချတ်ခန်း’ လော့ခ်ချထားချိန်တွင် ‘သီးသန့်ချတ်ခန်း’ အက်ပ်များကို ခွင့်ပြုချက်စီမံစနစ်၊ ကိုယ်ရေးအချက်အလက် လုံခြုံမှု ဒက်ရှ်ဘုတ်နှင့် အခြားဆက်တင်များတွင် မြင်ရမည်မဟုတ်ပါ"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"‘သီးသန့်ချတ်ခန်း’ ကို စနစ်ထည့်သွင်းနေသည်…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"‘သီးသန့်ချတ်ခန်း’ ကို လော့ခ်ဖြင့် ကာကွယ်ထားသည်"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"လော့ခ်ချထားသောအခါ ‘သီးသန့်ချတ်ခန်း’ အက်ပ်များအတွက် အသုံးပြုမှုအချက်အလက်ကို ဖျောက်ထားသည်"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"သင့်အက်ပ်စာရင်းမှ ‘သီးသန့်ချတ်ခန်း’ သုံးခြင်း"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"‘သီးသန့်ချတ်ခန်း’ ကို စနစ်ထည့်သွင်း၍မရပါ"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"ယခု ထပ်စမ်းကြည့်ပါ (သို့) နောက်မှပြန်လာပါ"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"ထပ်စမ်းရန်"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"ဖွင့်ရန် ဖန်သားပြင်လော့ခ် သုံးမလား။"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"သင့်စက်ကို ဖွင့်သည့်နည်းတူ ‘သီးသန့်ချတ်ခန်း’ ကို ဖွင့်နိုင်သည် (သို့) အခြားလော့ခ်တစ်ခု ရွေးနိုင်သည်"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"ဖန်သားပြင်လော့ခ် သုံးရန်"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"လော့ခ်အသစ် ရွေးရန်"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"အားလုံး အသင့်ပါ။"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"‘သီးသန့်ချတ်ခန်း’ သုံးရန် သင့်ပင်မစာမျက်နှာအောက်ခြေမှ အပေါ်သို့ ပွတ်ဆွဲပြီး အောက်သို့လှိမ့်ပါ"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"ပြီးပြီ"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"‘သီးသန့်ချတ်ခန်း’ သုံးရန် အောက်လှိမ့်ပါ"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"‘သီးသန့်ချတ်ခန်း’ ကိုစနစ်ထည့်သွင်းရန် လက်မှတ်ထိုးဝင်ပါ"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"လက်ဗွေ <xliff:g id="COUNT">%d</xliff:g> ခု အထိ ထည့်နိုင်သည်"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"အများဆုံးထည့်နိုင်သည့် လက်ဗွေရာအရေအတွက်အထိ ထည့်သွင်းပြီးဖြစ်သည်"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"နောက်ထပ်လက်ဗွေရာများ ထည့်၍မရတော့ပါ"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"ချိတ်ဆက်ရန်"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"ချိတ်ဆက်မှု ဖြုတ်ရန်"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"တွဲချိတ်ပြီးနောက် ချိတ်ဆက်ရန်"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"ဘလူးတုသ်ကိုဖွင့်ထားလျှင် သင်၏စက်သည် အနီးရှိ အခြားဘလူးတုသ်ကိရိယာများနှင့် ဆက်သွယ်နိုင်သည်။"</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"ဘလူးတုသ်ဖွင့်ထားသည့်အခါ သင့်စက်သည် အနီးတစ်ဝိုက်ရှိ အခြား ဘလူးတုသ်သုံးစက်များနှင့် ချိတ်ဆက်နိုင်သည်။\n\nစက်ကို ပိုမိုကောင်းမွန်စွာ သုံးနိုင်ရန် ဘလူးတုသ်ပိတ်ထားသည့်အခါတွင်ပင် အက်ပ်နှင့် ဝန်ဆောင်မှုများသည် အနီးတစ်ဝိုက်ရှိစက်များကို အချိန်မရွေးရှာနိုင်သည်။ ဥပမာ- တည်နေရာအခြေခံသည့် တူးလ်နှင့် ဝန်ဆောင်မှုများအတွက် ၎င်းကို သုံးနိုင်သည်။ ၎င်းကို ဘလူးတုသ်ရှာသည့် ဆက်တင်များတွင် ပြောင်းနိုင်သည်။"</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"ပြောင်းရန်"</string>
     <string name="device_details_title" msgid="1155622417516195481">"စက်အသေးစိတ်များ"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"အမှားရှာပြင်နိုင်သော အက်ပ်များအတွက် ဘိုက်ကုဒ် စိစစ်ရန် ART ကိုခွင့်ပြုသည်"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"ပြန်လည်စတင်သည့် မြန်နှုန်းကို ပြရန်"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"လက်ရှိ ပြကွက် ပြန်လည်စတင်သည့် မြန်နှုန်းကို ပြသည်"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"HDR/SDR အချိုးပြပါ"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"လက်ရှိ HDR/SDR အချိုးပြပါ"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"NFC အတွက် စက်ပစ္စည်းကို ဖွင့်ရန် လိုအပ်သည်"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"ခေါက်ထားချိန် အက်ပ်များကို ဆက်သုံးရန်"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"အကြောင်းအရာအချို့အတွက် ပြန်လည်စတင်နှုန်းကို ၆၀ မှ <xliff:g id="ID_1">%1$s</xliff:g> Hz သို့ အလိုအလျောက် တိုးပေးသည်။ ဘက်ထရီ အသုံးပြုမှု များလာမည်။"</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"အကြောင်းအရာအချို့အတွက် ပြန်လည်စတင်နှုန်းကို <xliff:g id="ID_1">%1$d</xliff:g> Hz အထိ အလိုအလျောက် တိုးပေးသည်။ ဘက်ထရီ အသုံးပြုမှု ပိုများလာပါမည်။"</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"အမြင့်ဆုံး ပြန်လည် စတင်နှုန်းသို့ တွန်းအားပေးရန်"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"ထိတွေ့မှု တုံ့ပြန်အားနှင့် ကာတွန်းပုံအရည်အသွေးပိုကောင်းလာရန် အမြင့်ဆုံးပြန်ဖွင့်မှုနှုန်း။ ဘက်ထရီ အသုံးပြုမှု တိုးလာပါမည်။"</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"ဖန်သားပြင်ကို အာရုံစိုက်ခြင်း"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"အများသုံး ဆက်တင်များ"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APNs"</string>
     <string name="apn_edit" msgid="2003683641840248741">"အဝင်ပွိုင့် ပြင်ဆင်ရန်"</string>
+    <string name="apn_add" msgid="9069613192201630934">"ချိတ်ဆက်ရန်နေရာ ထည့်ရန်"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"သတ်မှတ်မထားပါ"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"သတ်မှတ်မထားပါ"</string>
     <string name="apn_name" msgid="6677695784108157953">"အမည်"</string>
@@ -1320,6 +1397,8 @@
     <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="network_type" msgid="748590707422733595">"ကွန်ရက်အမျိုးအစား"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"သတ်မှတ်မထားပါ"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO အမျိုးအစား"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO တန်ဖိုး"</string>
     <string name="menu_delete" msgid="9199740901584348273">"APNကိုဖျက်မည်"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"သုံးနိုင်မှုခလုတ်ဖြင့် ဖွင့်ခြင်း"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"အသံခလုတ်များကို နှိပ်၍ဖွင့်ခြင်း"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"ဖွင့်ရန် သုံးချက်တို့ခြင်း"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"ဖွင့်ရန် ဖန်သားပြင်ကို လက်နှစ်ချောင်းဖြင့် သုံးချက်တို့ခြင်း"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"ဖွင့်ရန် လက်ဟန်ကို အသုံးပြုပါ"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"အများသုံးနိုင်မှု လက်ဟန်ကို သုံးပါ"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"ဤဝန်ဆောင်မှု အသုံးပြုရန် သင့်ဖန်သားပြင် အောက်ခြေရှိ သုံးနိုင်မှုခလုတ် <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> ကို တို့ပါ။\n\nဝန်ဆောင်မှုများအကြား ပြောင်းရန် သုံးနိုင်မှုခလုတ်ကို ဖိထားပါ။"</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"ဤဝန်ဆောင်မှုကိုသုံးရန် သင့်ဖန်သားပြင်ပေါ်ရှိ သုံးနိုင်မှုခလုတ်ကို တို့ပါ။"</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"ဤဝန်ဆောင်မှု အသုံးပြုရန် အသံခလုတ် နှစ်ခုလုံးကို နှိပ်ထားပါ။"</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"ချဲ့ခြင်း စတင်ရန်၊ ရပ်ရန် သင့်ဖန်သားပြင်ပေါ် တစ်နေရာရာတွင် သုံးချက်တို့ပါ။"</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"ချဲ့ခြင်း စတင်ရန်၊ ရပ်ရန် သင့်ဖန်သားပြင်ပေါ် တစ်နေရာရာတွင် လက်နှစ်ချောင်းဖြင့် သုံးချက်တို့ပါ။"</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"ဤဝန်ဆောင်မှု အသုံးပြုရန် လက် ၂ ချောင်းဖြင့် ဖန်သားပြင်အောက်ခြေမှ အပေါ်သို့ပွတ်ဆွဲပါ။\n\nဝန်ဆောင်မှုများအကြား ပြောင်းရန် လက် ၂ ချောင်းဖြင့် အပေါ်သို့ပွတ်ဆွဲပြီး ဖိထားပါ။"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"ဤဝန်ဆောင်မှု အသုံးပြုရန် လက် ၃ ချောင်းဖြင့် ဖန်သားပြင်အောက်ခြေမှ အပေါ်သို့ပွတ်ဆွဲပါ။\n\nဝန်ဆောင်မှုများအကြား ပြောင်းရန် လက် ၃ ချောင်းဖြင့် အပေါ်သို့ပွတ်ဆွဲပြီး ဖိထားပါ။"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"အများသုံးနိုင်သည့် ဝန်ဆောင်မှုတစ်ခု အသုံးပြုရန် လက် ၂ ချောင်းဖြင့် ဖန်သားပြင်အောက်ခြေမှ အပေါ်သို့ပွတ်ဆွဲပါ။\n\nဝန်ဆောင်မှုများအကြား ပြောင်းရန် လက် ၂ ချောင်းဖြင့် အပေါ်သို့ပွတ်ဆွဲပြီး ဖိထားပါ။"</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"အသံအတိုးအလျှော့ခလုတ်များကို ဖိထားခြင်း"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"အသံခလုတ်များကို ဖိထားမည်"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"အသံခလုတ်နှစ်ခုလုံးကို နှိပ်ထားပါ"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"ဖန်သားပြင်ကို လက်နှစ်ချောင်းဖြင့် သုံးချက်တို့ခြင်း"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"ဖန်သားပြင်ကို လက်နှစ်ချောင်းဖြင့် သုံးချက်တို့ရန်"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"ဖန်သားပြင်ကို {0,number,integer} ကြိမ် လက်နှစ်ချောင်းဖြင့် အမြန်တို့ပါ"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"မျက်နှာပြင်ကို သုံးချက်တို့ပါ"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"ဖန်သားပြင်ကို သုံးချက်တို့ရန်"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"ဖန်သားပြင်ကို {0,number,integer} ကြိမ် အမြန်တို့ပါ။ ဤဖြတ်လမ်းလင့်ခ်သည် သင့်စက်ကို နှေးသွားစေနိုင်သည်"</string>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"တုန်ခါမှုနှင့် ထိတွေ့တုံ့ပြန်မှုများ သုံးရန်"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"နှိုးစက်တုန်ခါမှု"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"မီဒီယာဖြင့် တုန်ခါမှု"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"ကီးဘုတ်တုန်ခါမှု"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"ဖုန်းမြည်သံ တုန်ခါမှု"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"အကြောင်းကြားချက် တုန်ခါမှု"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"ထိတွေ့ တုံ့ပြန်ချက်"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> ကျန်ရှိနေ"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> အားသွင်းမည်"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"အသုံးပြုချိန်"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"နောက်ခံအချိန်"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"ဘက်ထရီ အားနည်းနေသည်"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"အက်ပ်ကို နောက်ခံတွင် ဖွင့်ခွင့်ပြုပါ"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"နောက်ခံလုပ်ဆောင်ချက်ကို ကန့်သတ်လိုပါသလား။"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"အက်ပ်အတွက် နောက်ခံလုပ်ဆောင်ချက်ကို ကန့်သတ်လိုက်ပါက ပုံမှန်အလုပ်လုပ်မည် မဟုတ်ပါ"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"ဤအက်ပ်ကို ဘက်ထရီချိန်ညှိသုံးရန် သတ်မှတ်မထားသဖြင့် ကန့်သတ်၍မရပါ။\n\nအက်ပ်ကိုကန့်သတ်ရန် ဘက်ထရီချိန်ညှိသုံးခြင်း အရင်ဖွင့်ပါ။"</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"ဘက်ထရီ အသုံးပြုမှုကို စီမံရန်"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"နောက်ခံတွင် သုံးခွင့်ပြုရန်"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"အချိန်နှင့်တစ်ပြေးညီ အပ်ဒိတ်များအတွက် ဖွင့်နိုင်သည်။ ဘက်ထရီချွေတာရန် ပိတ်နိုင်သည်"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"အကန့်အသတ်မဲ့"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"ပိုကောင်းအောင်လုပ်ရန်"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"ကန့်သတ်ရန်"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"နောက်ဆုံးအကြိမ် အားအပြည့်သွင်းပြီးသည့် အချိန်မှစ၍"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"စနစ် အက်ပ်များ"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"ဖယ်ရှားထားသော အက်ပ်များ"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"အခြား"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"ခန့်မှန်း ကျန်ရှိချိန်"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"အားပြည့်ရန် လိုအပ်ချိန်"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"စုစုပေါင်း- တစ်မိနစ်အောက်"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"နောက်ခံအချိန်- တစ်မိနစ်ထက် နည်းသည်"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"အသုံးပြုချိန်- တစ်မိနစ်အောက်"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"တစ်မိနစ်အောက်"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"စုစုပေါင်း- <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"နောက်ခံအချိန်- <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"အသုံးပြုချိန်- <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"မိုဘိုင်းဒေတာနှင့် Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"ကိုယ်ရေးဒေတာကို အော်တိုစင့်ခ်လုပ်ရန်"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"အလုပ်ဒေတာ အော်တိုစင့်ခ်လုပ်ရန်"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"သီးသန့်ဒေတာ အော်တိုစင့်ခ်လုပ်ရန်"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"ရက်သတ်မှတ်နှုန်းကို ပြောင်းရန်"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"ဒေတာအသုံးပြုခြင်း လည်ပတ်မှုအား ပြန်လည်စတင်စေမည့် လ၏နေ့ရက်"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"ဤအချိန်ကာလအတွင်း မည်သည့်အပလီကေးရှင်းမှ ဒေတာကိုအသုံးမပြုပါ"</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"စာသားအရွယ်အစား၊ ပုံနှိပ်အကြီး၊ ဖောင့်အကြီး၊ စာသားအကြီး၊ အမြင်အာရုံချို့တဲ့ခြင်း၊ စာသားကို ပိုကြီးအောင်လုပ်ခြင်း၊ ဖောင့်ပိုကြီးအောင် ချဲ့ခြင်း၊ ဖောင့် ပုံကြီးချဲ့ခြင်း"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"ဝန်းကျင်အလိုက်သင့် ပြသခြင်း အမြဲတမ်းဖွင့်ထားသည်၊ AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc၊ တဂ်၊ ဖတ်ရှုစနစ်"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"ကီးဘုတ်၊ ထိတွေ့တုံ့ပြန်မှု၊ တုန်ခါမှု၊"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"အသံအတိုးအကျယ်၊ တုန်ခါမှု၊ မနှောင့်ယှက်ရ"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"မီဒီယာ အသံအတိုးအကျယ်"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"ကာ့စ်အသံ အတိုးအကျယ်"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"အကြောင်းကြားချက်ပါ အရာအားလုံး ပြပါ"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"သတိထားရမည့် အကြောင်းအရာကို လော့ခ်ဖွင့်မှသာ ပြပါ"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"အကြောင်းကြားချက်များ လုံးဝမပြပါနှင့်"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"လော့ခ်မျက်နှာပြင်ကို မည်သို့ပြသစေလိုပါသလဲ။"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"လော့ခ်မျက်နှာပြင်"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"အလုပ်အကြောင်းကြားချက် အားလုံးကို ပြပါ"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"သတိထားရမည့် အလုပ်အကြောင်းအရာကို ဝှက်ထားရန်"</string>
@@ -3354,6 +3449,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"ဤအက်ပ်က အဆင့်မြှင့်ထားသော ဆက်တင်များကို မပံ့ပိုးပါ"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"နောက်ထပ်ဆက်တင်များ"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"ဤအက်ပ်အတွင်း ဆက်တင်များ ရရှိနိုင်သည်"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"အကြောင်းကြားချက် အသံလျော့ချမှု"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"အကြောင်းကြားချက်အားလုံးတွင် အသံလျော့ချမှု သတ်မှတ်ရန်"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"အက်ပ်တစ်ခုတည်းမှ အကြောင်းကြားချက်များ ဆက်တိုက်ရသောအခါ အကြောင်းကြားချက်အသံကို တဖြည်းဖြည်းလျှော့ပေးသည်"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"စကားဝိုင်းများတွင် အသံလျော့ချမှု သတ်မှတ်ရန်"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"ချတ်တစ်ခုတည်းမှ အချိန်တိုအတွင်း မက်ဆေ့ဂျ်များ ရသောအခါ အကြောင်းကြားချက်အသံကို တဖြည်းဖြည်းလျှော့ပေးသည်"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"အကြောင်းကြားချက် အသံလျော့ချမှုကို မသုံးပါနှင့်"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"အက်ပ်တစ်ခုတည်းမှ အကြောင်းကြားချက်များ မည်မျှပင် ဆက်တိုက်ရသည်ဖြစ်စေ အကြောင်းကြားချက်အသံကို လုံးဝ လျှော့ပေးမည်မဟုတ်ပါ"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"ဖွင့်ထားသောအခါ တုန်ခါရန်"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"စခရင်ဖွင့်ထားသောအခါမှသာ တုန်ခါရန်"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"အလုပ်ပရိုဖိုင်များတွင် သုံးရန်"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"သင့်ကိုယ်ပိုင်ပရိုဖိုင်မှ အကြောင်းကြားချက်အသံလျော့ချမှု ဆက်တင်များကို အလုပ်ပရိုဖိုင်တွင် သုံးသည်"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR အထောက်အကူပြု ဝန်ဆောင်မှုများ"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"ထည့်သွင်းထားသည့် မည်သည့်အက်ပ်ကိုမျှ VR အထောက်အကူပြု ဝန်ဆောင်မှုများအဖြစ် ဖွင့်ရန် တောင်းဆိုမထားပါ။"</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"<xliff:g id="SERVICE">%1$s</xliff:g> အတွက် VR ဝန်ဆောင်မှု အသုံးပြုခွင့်ပြုမလား။"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"ဖိုင်အားလုံးကို စီမံရန် သုံးခွင့်ပေးပါ"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"ဤစက်ပစ္စည်း (သို့) ချိတ်ဆက်ထားသော သိုလှောင်နေရာရှိ ဖိုင်များအားလုံးကို ဖတ်ရန်၊ ပြင်ဆင်ရန်နှင့် ဖျက်ရန် ဤအက်ပ်ကို ခွင့်ပြုပါ။ ခွင့်ပြုပြီးပါက အက်ပ်သည် သင့်အား အသိမပေးဘဲ ဖိုင်များကို အသုံးပြုနိုင်ပါမည်။"</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"ဖိုင်အားလုံးကို အသုံးပြုနိုင်သည်"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"အသံဖြင့်ဖွင့်ထားသည့် အက်ပ်များ"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"အသံဖြင့်ဖွင့်ခြင်း ခွင့်ပြုရန်"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"အသံဖြင့်ဖွင့်ခြင်းသည် အတည်ပြုထားသောအက်ပ်များကို အသံကွန်မန်းဖြင့် ဖွင့်ပေးပြီး လက်လွတ်ဆောင်ရွက်နိုင်သည်။ အသင့်ပါသည့် အလိုက်သင့်အာရုံခံခြင်းသည် ဒေတာကို သင့်အတွက်သာ သီးသန့်ရှိစေသည်။\n\n"<a href="">"အကာအကွယ်ပေးထားသည့် အလိုက်သင့်အာရုံခံခြင်းအကြောင်း နောက်ထပ်အချက်အလက်များ"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"ဖန်သားပြင်အပြည့် အကြောင်းကြားချက်များ"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"ဤအက်ပ်မှ ဖန်သားပြင်အပြည့် အကြောင်းကြားချက် ခွင့်ပြုရန်"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"စက်ပစ္စည်းလော့ခ်ချထားစဉ် ဖန်သားပြင်အပြည့် နေရာယူမည့် အကြောင်းကြားချက်များကို ဤအက်ပ်အား ပြသခွင့်ပြုနိုင်သည်။ နှိုးစက်၊ အဝင်ခေါ်ဆိုမှု (သို့) အခြားအရေးတကြီး အကြောင်းကြားချက်များကို မြင်သာအောင်လုပ်ရန် အက်ပ်များက ၎င်းတို့ကို သုံးနိုင်သည်။"</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"နောက်ခံတွင် <xliff:g id="APP_LABEL">%1$s</xliff:g> သည် ပုံမှန်ထက် ဘက်ထရီ ပိုသုံးထားသည်"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"မျက်နှာစာတွင် <xliff:g id="APP_LABEL">%1$s</xliff:g> သည် ဘက်ထရီ ပိုသုံးထားသည်"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"မျက်နှာစာတွင် <xliff:g id="APP_LABEL">%1$s</xliff:g> သည် ပုံမှန်ထက် ဘက်ထရီ ပိုသုံးထားသည်"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"ဘက်ထရီ အသုံးပြုမှု များသည်"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"နောက်ခံတွင် ဘက်ထရီ အသုံးပြုမှု များသည်"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"မျက်နှာစာတွင် ဘက်ထရီ အသုံးပြုမှု များသည်"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"စနစ် လမ်းညွှန်ခြင်း၊ ခလုတ် ၂ ခု ဖြင့် လမ်းညွှန်ခြင်း၊ ခလုတ် ၃ ခု ဖြင့် လမ်းညွှန်ခြင်း၊ လက်ဟန်ဖြင့် လမ်းညွှန်ခြင်း၊ ပွတ်ဆွဲခြင်း"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"ဒစ်ဂျစ်တယ် Assistant"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Assistant ကို ညွှန်ကြားရန် ပွတ်ဆွဲပါ"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"ဒစ်ဂျစ်တယ် Assistant အက်ပ်ကို ညွှန်ကြားရန် အောက်ခြေထောင့်မှ အပေါ်သို့ ပွတ်ဆွဲပါ။"</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Assistant အတွက် ပင်မခလုတ် နှိပ်ထားခြင်း"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"ဒစ်ဂျစ်တယ် Assistant အက်ပ်ကို ညွှန်ကြားရန် ပင်မခလုတ် နှိပ်ထားပါ။"</string>
     <string name="low_label" msgid="6525629096999711220">"နိမ့်"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"ဒေတာ၊ လျှို့ဝှက်ကီး၊ စကားဝှက်"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"အလိုအလျောက်၊ ဖြည့်ခြင်း၊ အလိုအလျောက်ဖြည့်ခြင်း၊ ဒေတာ၊ လျှို့ဝှက်ကီး၊ စကားဝှက်"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;သင်သည် ဤအက်ပ်ကို ယုံကြည်စိတ်ချရကြောင်း သေချာပါစေ&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; သည် သင်၏ဖန်သားပြင်ပေါ်ရှိ အရာများကို အသုံးပြု၍ မည်သည့်အရာများကို အော်တိုဖြည့်နိုင်ကြောင်း ဆုံးဖြတ်သည်။"</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&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_autofill_confirmation_message" msgid="843829628024668466">"&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_picker_title" msgid="8191267620665129205">"စကားဝှက်၊ လျှို့ဝှက်ကီးနှင့် ဒေတာဝန်ဆောင်မှုများ"</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>
@@ -4226,8 +4338,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- 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" msgid="4648827560023949786">"စမ်းသပ်ဆဲ- ANGLE ဖွင့်ရန်"</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>
@@ -4856,4 +4968,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"လှည့်ဖြားသည့် အက်ပ်များကို စကင်ဖတ်ခြင်း"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"အယောင်ဆောင် ဖြားယောင်းခြင်းအတွက် အက်ပ်အသုံးပြုမှုကို စစ်ဆေးရန်"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"စကင်ဖတ်ခြင်းဖြင့် လှည့်စားတတ်သော အက်ပ်များ ရှာရန်"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"စကင်ဖတ်ခြင်းဖြင့် လှည့်စားတတ်သော အက်ပ်များ အလုပ်ပရိုဖိုင်အတွက် ရှာရန်"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-nb/arrays.xml b/res/values-nb/arrays.xml
index 8e35bb7..1a26b4b 100644
--- a/res/values-nb/arrays.xml
+++ b/res/values-nb/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Etter 1 minutt"</item>
     <item msgid="1574040255478150028">"Etter 5 minutter"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 73c9cd2..51a6868 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Slå av Bluetooth LE-lyd"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Slår av Bluetooth LE-lydfunksjonen hvis enheten støtter maskinvarefunksjoner for LE-lyd."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Vis LE-lyd-av/på-bryter i Enhetsdetaljer"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Slå på tillatelseslisten for Bluetooth LE-lyd"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Slå på funksjonen for tillatelseslisten for Bluetooth LE-lyd."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Omgå godkjenningsliste for Bluetooth LE-lyd"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Bruk LE-lyd som standard, selv om det ikke er bekreftet at den eksterne LE-lydenheten overholder kriteriene for godkjenningslisten."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Medieenheter"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Ringeenheter"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Andre enheter"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Lagrede enheter"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Tilknyttet kontoen"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Tidligere brukt med kontoen"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth slås på for å koble til"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Tilkoblingsvalg"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Tidligere tilkoblet"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Skriv i tekstfelt"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignorer alle knappetrykk på pekepennen"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Pekepenn"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Lyddeling"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Del lyd"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Anrop og alarmer"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Dato og klokkeslett"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy-tjener"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Tøm"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Finn ut mer om posisjonsinnstillinger"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Kontoer"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Sikkerhet"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Kryptering og legitimasjon"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Jobbprofil"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Private Space"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Skjul apper i en privat mappe"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Lås opp med skjermlås"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Vis Private Space"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Skjul når låst"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Skjul Private Space når låst"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"For å unngå at andre ser at du har Private Space på telefonen, kan du skjule den i applisten"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Gå til Private Space når den er skjult"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Søk etter «Private Space» i søkefeltet"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Trykk på Private Space-brikken"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Lås opp Private Space"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Av"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"På"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"System"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Opprett Private Space"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Slett Private Space"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Private Space er opprettet"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Private Space finnes allerede"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Kunne ikke opprette Private Space"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Private Space er slettet"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Kunne ikke slette Private Space"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Konfigurer en skjermlås"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"For å bruke Private Space, angi en skjermlås på enheten."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Konfigurer en skjermlås"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Avbryt"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Avbryt"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Konfigurer"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Konfigurer Private Space"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Skjul private apper på et sikkert sted bare du kan gå til"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Slik fungerer det"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Du kan gå til Private Space fra bunnen av applisten"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Apper i Private Space er beskyttet med en lås"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Varsler fra apper i Private Space er skjult når den er låst"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Private Space-apper vises ikke i tillatelseskontroll, personvernoversikt eller andre innstillinger når Private Space er låst"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Konfigurerer Private Space …"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Private Space er beskyttet av en lås"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Bruksinformasjon for Private Space-apper er skjult når den er låst"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Åpne Private Space fra applisten"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Kunne ikke konfigurere Private Space"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Prøv igjen nå, eller kom tilbake senere"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Prøv på nytt"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Vil du bruke skjermlås for å låse opp?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Du kan låse opp Private Space på samme måte som du låser opp enheten, eller du kan velge en annen lås"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Bruk skjermlåsen"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Velg en ny lås"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Alt er klart!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"For å åpne Private Space, sveip opp fra bunnen av startskjermen og rull ned"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Ferdig"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Rull ned for å åpne Private Space"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Logg på for å konfigurere Private Space"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Du kan legge til opptil <xliff:g id="COUNT">%d</xliff:g> fingeravtrykk"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Du har lagt til maksimalt antall fingeravtrykk"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Kan ikke legge til flere fingeravtrykk"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Koble til"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Koble fra"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Koble sammen"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Når Bluetooth er slått på, kan enheten kommunisere med andre Bluetooth-enheter i nærheten."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Når Bluetooth er på, kan enheten kommunisere med andre Bluetooth-enheter i nærheten"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Når Bluetooth er slått på, kan enheten kommunisere med Bluetooth-enheter i nærheten.\n\nFor å gi deg en bedre enhetsopplevelse kan apper og tjenester søke etter enheter i nærheten når som helst – selv når Bluetooth er slått av. Dette kan for eksempel brukes for å forbedre posisjonsbaserte funksjoner og tjenester. Du kan endre dette i innstillingene for Bluetooth-skanning."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Endre"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Enhetsdetaljer"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Tillat at ART bekrefter bytekode for feilsøkbare apper"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Vis oppdateringsfrekvens"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Vis skjermens nåværende oppdateringsfrekvens"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Vis HDR/SDR-forhold"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Vis det gjeldende HDR/SDR-forholdet"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Krev opplåst enhet for NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1137,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Fortsett å bruke apper etter sammenlegging"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Øker oppdateringsfrekvensen automatisk fra 60 til <xliff:g id="ID_1">%1$s</xliff:g> Hz for noe innhold. Øker batteribruken."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Øker oppdateringsfrekvensen automatisk til <xliff:g id="ID_1">%1$d</xliff:g> Hz for noe innhold. Dette øker batteribruken."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Maks oppdateringsfrekvens"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Maksimal oppdateringsfrekvens for bedre trykkfølsomhet og animasjonskvalitet. Øker batteribruken."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Skjermoppmerksomhet"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Fellesinnstillinger"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Rediger tilgangspunkt"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Legg til tilgangspunkt"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Ikke angitt"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Ikke angitt"</string>
     <string name="apn_name" msgid="6677695784108157953">"Navn"</string>
@@ -1320,6 +1396,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN er på"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN er av"</string>
     <string name="bearer" msgid="3231443241639159358">"Bærer"</string>
+    <string name="network_type" msgid="748590707422733595">"Nettverkstype"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Uspesifisert"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO-type"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO-verdi"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Slett APN"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Bruk Tilgjengelighet-knappen for å åpne"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Hold volumtastene for å åpne"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Trippeltrykk på skjermen for å åpne"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Trippeltrykk på skjermen med to fingre for å åpne"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Bruk bevegelse for å åpne"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Bruk tilgjengelighetsbevegelse"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"For å bruke denne funksjonen må du trykke på Tilgjengelighet-knappen <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> nederst på skjermen.\n\nFor å bytte mellom funksjoner, trykk og hold på Tilgjengelighet-knappen."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"For å bruke denne funksjonen, trykk på Tilgjengelighet-knappen på skjermen."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"For å bruke denne funksjonen, trykk og hold inne begge volumtastene."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"For å starte og stoppe forstørrelse, trippeltrykk hvor som helst på skjermen."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"For å starte og stoppe forstørring, trippeltrykk hvor som helst på skjermen med to fingre."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"For å bruke denne funksjonen, 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_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"For å bruke denne funksjonen, 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_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"For å bruke en tilgjengelighetsfunksjon, sveip opp fra bunnen av skjermen med to fingre.\n\nFor å bytte mellom funksjoner, sveip opp med to fingre og hold."</string>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Hold inne volumtastene"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"hold inne volumtastene"</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_triple_tap" msgid="6687765191490040899">"Trippeltrykk på skjermen med to fingre"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"trippeltrykk på skjermen med to fingre"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"trippeltrykk på skjermen"</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>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Bruk vibrering og fysisk tilbakemelding"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Alarmvibrering"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Medievibrering"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Tastaturvibrering"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Ringevibrering"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Varselvibrering"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Tilbakemelding ved berøring"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> gjenstår"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"Batteriet er fulladet om <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g>"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Tid på skjermen"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Tid i bakgrunnen"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Lavt batteri"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"La appen kjøre i bakgrunnen"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Vil du begrense bakgrunnsaktivitet?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Hvis du begrenser bakgrunnsaktivitet for en app, kan det oppstå problemer"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Du kan ikke begrense appen siden den ikke er satt til å optimalisere batteriet.\n\nFor å begrense appen, slå på batterioptimalisering."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Administrer batteribruk"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Tillat bruk i bakgrunnen"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Slå på for å få oppdateringer i sanntid, slå av for å spare batteri"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Ubegrenset"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Optimalisert"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Begrenset"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"siden sist batteriet var fulladet"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Systemapper"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Avinstallerte apper"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Annet"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Anslått tid som er igjen"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Til det er fulladet"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Totalt: mindre enn ett minutt"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Bakgrunn: mindre enn ett minutt"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Skjermtid: mindre enn ett minutt"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Under ett minutt"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Totalt: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Bakgrunn: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Skjermtid: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Mobildata og wifi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Autosynkroniser persondata"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Autosynkroniser jobbdata"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Autosynkroniser private data"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Endre syklus …"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Dag i måneden for å tilbakestille databruksyklusen:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Ingen apper brukte data i denne perioden."</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"tekststørrelse, stor skrift, stor skrifttype, stor tekst, nedsatt synsevne, gjør tekst større, tekstforstørrer, forstørring av tekst"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"skjermsparer som alltid er på, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"NFC, brikke, leser"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"tastatur, haptisk teknologi, vibrer,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Volum, vibrasjon, ikke forstyrr"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Medievolum"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Castevolum"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Vis alt innhold i varsler"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Bare vis sensitivt innhold når enheten er låst opp"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Ikke vis varsler i det hele tatt"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Hvordan vil du vise låseskjermen?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Låseskjerm"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Vis alt innhold i jobbvarsler"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Skjul sensitivt jobbinnhold"</string>
@@ -3354,6 +3448,17 @@
     <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="6121016426991791557">"Nedkjøling for varsler"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Bruk nedkjøling for alle varsler"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Reduserer varselsvolumet gradvis når du får for mange varsler etter hverandre fra samme app"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Bruk nedkjøling for samtaler"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Reduserer varselsvolumet gradvis når du får for mange meldinger fra samme chat i løpet av en kort tidsperiode"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Ikke bruk nedkjøling for varsler"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Aldri reduser varselsvolumet – uavhengig av hvor mange varsler som kommer etter hverandre fra samme app"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Vibrer når låst opp"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Bare vibrer når skjermen er låst opp"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Bruk for jobbprofiler"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Bruk innstillingene for nedkjøling av varsler fra den personlige profilen for jobbprofilen"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Hjelpetjenester for VR"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Ingen av de installerte appene har bedt om å bli kjørt som hjelpetjeneste for VR."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Vil du tillate tjenestetilgang for VR for <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Kan administrere alle filer"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Gi denne appen tillatelse til å lese, endre og slette alle filer på denne enheten eller tilkoblede lagringsvolum. Hvis du gir appen denne tillatelsen, kan den få tilgang til filer uten at du er klar over det."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Har tilgang til alle filer"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Apper som kan taleaktiveres"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Tillat taleaktivering"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Stemmeaktivering slår på godkjente apper med en stemmekommando. Innebygd adaptiv registrering sikrer at data holdes private bare for deg.\n\n"<a href="">"Mer om beskyttet adaptiv registrering"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Fullskjermvarsler"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Tillat fullskjermvarsler fra denne appen"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"La denne appen vise varsler som fyller hele skjermen, når enheten er låst. Apper kan bruke disse til å fremheve alarmer, innkommende anrop eller andre viktige varsler."</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> brukte mer batteri enn vanlig da den var i bakgrunnen"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> brukte mer batteri da den var i forgrunnen"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> brukte mer batteri enn vanlig da den var i forgrunnen"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Høy batteribruk"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Høy batteribruk i bakgrunnen"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Høy batteribruk i forgrunnen"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"systemnavigasjon, navigasjon med to knapper, navigasjon med tre knapper, navigasjon med bevegelser, sveip"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Digital assistent"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Sveip for å kalle opp assistenten"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Sveip opp fra et av de nederste hjørnene for å kalle opp den digitale assistenten."</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Sveip opp fra et av de nederste hjørnene for å åpne den digitale assistenten"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Hold på hjemknappen for å åpne assistenten"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Trykk og hold inne hjemknappen for å kalle opp den digitale assistenten."</string>
     <string name="low_label" msgid="6525629096999711220">"Lav"</string>
@@ -4169,10 +4279,10 @@
     <string name="credman_credentials" msgid="4931371941253324143">"Andre leverandører"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# passord}other{# passord}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"auto, fyll, autofyll, passord"</string>
-    <string name="credman_keywords" msgid="8305600680836806170">"data, tilgangsnøkkel, passord"</string>
+    <string name="credman_keywords" msgid="8305600680836806170">"data, passnøkkel, passord"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"auto, fyll, autofyll, data, passnøkkel, passord"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Stoler du på denne appen?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google autofyll&gt;%1$s&lt;/xliff:g&gt; bruker det som er på skjermen, til å fastslå hva som kan fylles ut automatisk."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Vil du bruke &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; bruker det som er på skjermen din, til å avgjøre hva som kan autofylles. Nye passord, passnøkler og annen informasjon lagres her fra nå av."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Vil du bruke &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Fra nå av blir nye passord, nye passnøkler og annen informasjon lagret her. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; kan bruke det som er på skjermen, for å avgjøre hva som kan fylles ut automatisk."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Passord, passnøkler og datatjenester"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Vil du slå av %1$s?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Vil du slå av denne tjenesten?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Lagret informasjon som passord, passnøkler, betalingsmåter og andre ting fylles ikke ut når du logger på. For å bruke informasjonen du har lagret, velg et passord, en passnøkkel eller en datatjeneste."</string>
@@ -4226,10 +4336,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <string name="enable_angle_as_system_driver" msgid="4648827560023949786">"På forsøksstadiet: Aktiver ANGLE"</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Varsel: Aktiver ANGLE som standard OpenGL ES-driver. Denne funksjonen er på forsøksstadiet og er muligens ikke kompatibel med enkelte kamera- og videoapper."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"En omstart kreves for å endre OpenGL ES-driveren for systemet"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Endringer av appkompatibilitet"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Slå endringer av appkompatibilitet på/av"</string>
@@ -4787,10 +4895,8 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Høyde/bredde-forhold"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"Hvis ikke denne appen er laget for å passe til <xliff:g id="DEVICE_NAME">%1$s</xliff:g>, kan du prøve et nytt høyde/bredde-forhold for å se appen."</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Hvis ikke denne appen er laget for å passe til <xliff:g id="DEVICE_NAME">%1$s</xliff:g>, kan du prøve et nytt høyde/bredde-forhold for å se appen. Enkelte apper er kanskje ikke optimalisert for visse høyde/bredde-forhold."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Hvis en app ikke er laget for å passe til <xliff:g id="DEVICE_NAME">%1$s</xliff:g>, kan du prøve et nytt høyde/bredde-forhold for å se appen"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Hvis en app ikke er laget for å passe til <xliff:g id="DEVICE_NAME">%1$s</xliff:g>, kan du prøve et nytt høyde/bredde-forhold for å se appen. Enkelte apper er kanskje ikke optimalisert for visse høyde/bredde-forhold."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Foreslåtte apper"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Endrede apper"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Appstandard"</string>
@@ -4860,4 +4966,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Skanner etter villedende apper"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Kontroller appaktivitet for å oppdage nettfisking"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Bruk skanning etter villedende apper"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Bruk skanning etter villedende apper for jobb"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-ne/arrays.xml b/res/values-ne/arrays.xml
index c37cd09..638b42b 100644
--- a/res/values-ne/arrays.xml
+++ b/res/values-ne/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"१ मिनेटपछि"</item>
     <item msgid="1574040255478150028">"५ मिनेटपछि"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 57e02fa..770fe38 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -45,7 +45,7 @@
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"सधैँ"</string>
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"तपाईंले आफ्नो डिभाइस फोल्ड गरेपछि अगाडिको डिस्प्ले अन हुन्छ"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"केवल गेम, भिडियो र अन्य कुराहरू"</string>
-    <string name="selective_stay_awake_summary" msgid="9055967322921984543">"तपाईंको डिभाइसको स्क्रिनलाई निष्क्रिय अवस्थामा राख्न नदिने एपहरूमा अगाडिको डिस्प्ले अन हुन्छ"</string>
+    <string name="selective_stay_awake_summary" msgid="9055967322921984543">"तपाईंको डिभाइसको स्क्रिनलाई अफ हुन नदिने एपहरूमा अगाडिको डिस्प्ले अन हुन्छ"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"कहिल्यै पनि होइन"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"तपाईंले आफ्नो डिभाइस फोल्ड गरेपछि अगाडिको डिस्प्ले लक हुन्छ"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"अटो-रोटेट प्रयोग गर्नुहोस्"</string>
@@ -88,7 +88,7 @@
     <string name="bluetooth_notif_ticker" msgid="209515545257862858">"ब्लुटुथ जोडा मिलाउन अनुरोध"</string>
     <string name="bluetooth_notif_title" msgid="1196532269131348647">"कनेक्ट गर्ने अनुरोध"</string>
     <string name="bluetooth_notif_message" msgid="5584717784198086653">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> सँग कनेक्ट गर्न ट्याप गर्नुहोस्।"</string>
-    <string name="bluetooth_devices_card_off_title" msgid="1320149821945129127">"ब्लुटुथ निष्क्रिय छ"</string>
+    <string name="bluetooth_devices_card_off_title" msgid="1320149821945129127">"ब्लुटुथ अफ छ"</string>
     <string name="bluetooth_devices_card_off_summary" msgid="2276527382891105858">"यसलाई सक्रिय गर्न ट्याप गर्नुहोस्"</string>
     <string name="device_picker" msgid="2427027896389445414">"ब्लुटुथ डिभाइस छान्नुहोस्"</string>
     <string name="bluetooth_ask_enablement" msgid="1529030199895339199">"<xliff:g id="APP_NAME">%1$s</xliff:g> ब्लुटुथ सक्रिय गर्न चाहन्छ"</string>
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"\"ब्लुटुथ लो इनर्जी अडियो\" अफ गरियोस्"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"डिभाइसमा LE अडियो हार्डवेयर चलाउन मिल्छ भने \"ब्लुटुथ लो इनर्जी अडियो\" सुविधा अफ हुन्छ।"</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"डिभाइसको विवरणमा LE अडियोको टगल देखाइयोस्"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"ब्लुटुथ लो इनर्जी अडियोको श्वेतसूची अन गरियोस्"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"ब्लुटुथ लो इनर्जी अडियोको श्वेतसूचीसम्बन्धी सुविधा अन गर्नुहोस्।"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"ब्लुटुथ लो इनर्जी अडियोको श्वेतसूची बाइपास गरियोस्"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"LE अडियो पेरिफरलले श्वेतसूचीको मापदण्ड पूरा गर्छ भन्ने कुरा पुष्टि नगरिए तापनि LE अडियो डिफल्ट रूपमा प्रयोग गरियोस्।"</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"मिडियासम्बन्धी यन्त्रहरू"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"कल गर्ने सुविधा भएका यन्त्रहरू"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"अन्य डिभाइसहरू"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"सेभ गरिएका डिभाइस"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"खातासँग लिंक गरिएको"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"यसअघि खातासँग प्रयोग गरिएको"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"कनेक्ट गर्नका लागि ब्लुटुथ अन हुने छ"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"कनेक्सनका प्राथमिकताहरू"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"यसअघि कनेक्ट गरिएका डिभाइस"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"टेक्स्ट फिल्डमा लेख्नुहोस्"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"स्टाइलसमार्फत थिचिने सबै बटन बेवास्ता गरियोस्"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"स्टाइलस"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"अडियो सेयरिङ"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"अडियो सेयर गर्नुहोस्"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"कल तथा अलार्महरू"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"मिति र समय"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"प्रोक्सी"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"मेटाउनुहोस्"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"लोड गर्दै…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"वरपर रहेका ब्लुटुथ चल्ने डिभाइसहरू खोज्ने अनुमति दिइएका एपहरूले कनेक्ट गरिएका डिभाइसहरूको सापेक्ष लोकेसन पत्ता लगाउन सक्छन्।"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"एप तथा सेवाहरूलाई लोकेसन प्रयोग गर्ने अनुमति दिइएको छैन। तपाईंले कुनै आपत्‌कालीन नम्बरमा कल गर्दा वा टेक्स्ट म्यासेज पठाउँदा भने आपत्‌कालीन सेवा प्रदान गर्ने निकायलाई तपाईंको डिभाइसको लोकेसन पठाइन सक्छ।"</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"लोकेसन सेटिङका बारेमा थप जान्नुहोस्"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"खाताहरू"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"सुरक्षा"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"इन्क्रिप्सन र क्रिडेन्सियल"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"कार्य प्रोफाइल"</string>
     <string name="private_space_title" msgid="7078627930195569767">"निजी स्पेस"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"एपहरू निजी फोल्डरमा लुकाउनुहोस्"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"स्क्रिन लक प्रयोग गरेर अनलक गर्नुहोस्"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"निजी स्पेस देखाउनुहोस्"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"लक गरिएको बेलामा लुकाउनुहोस्"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"निजी स्पेस लक गरिएको बेलामा उक्त स्पेस लुकाउनुहोस्"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"अन्य मानिसहरूलाई तपाईंको डिभाइसमा निजी स्पेस छ भन्ने कुरा थाहा नदिन तपाईं आफ्नो एपको सूचीकरणबाट उक्त स्पेस लुकाउन सक्नुहुन्छ"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"निजी स्पेस लुकाइएको बेलामा उक्त स्पेस एक्सेस गर्नुहोस्"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"सर्च बारमा गई \"निजी स्पेस\" खोज्नुहोस्"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"निजी स्पेसको टाइलमा ट्याप गर्नुहोस्"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"आफ्नो निजी स्पेस अनलक गर्नुहोस्"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"अफ छ"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"अन छ"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"सिस्टम"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"निजी स्पेस बनाउनुहोस्"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"निजी स्पेस मेटाउनुहोस्"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"निजी स्पेस बनाइएको छ"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"निजी स्पेस बनाइसकिएको छ"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"निजी स्पेस बनाउन सकिएन"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"निजी स्पेस मेटाइएको छ"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"निजी स्पेस मेटाउन सकिएन"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"स्क्रिन लक सेट गर्नुहोस्"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"निजी स्पेस प्रयोग गर्न यो डिभाइसमा स्क्रिन लक सेट गर्नुहोस्।"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"स्क्रिन लक सेट गर्नुहोस्"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"रद्द गर्नुहोस्"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"रद्द गर्नुहोस्"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"सेटअप गर्नुहोस्"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"निजी स्पेस सेटअप गर्नुहोस्"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"तपाईंले मात्र एक्सेस गर्न सक्ने सुरक्षित स्पेसमा निजी एपहरू लुकाउनुहोस्"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"यसले काम गर्ने तरिका"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"तपाईं आफ्नो एपको सूचीकरणको फेदबाट निजी स्पेस एक्सेस गर्न सक्नुहुन्छ"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"निजी स्पेसमा एपहरू लक प्रयोग गरी सुरक्षित रूपमा राखिएका हुन्छन्"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"निजी स्पेस लक गरिएका बेला निजी स्पेसका एपबाट प्राप्त सूचनाहरू लुकाइन्छन्"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"निजी स्पेस लक गरिएका बेला अनुमति म्यानेजर, गोपनीयतासम्बन्धी ड्यासबोर्ड र अन्य सेटिङमा निजी स्पेसका एपहरू देखा पर्दैनन्"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"निजी स्पेस सेटअप गरिँदै छ…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"लक प्रयोग गरी निजी स्पेस सुरक्षित राखिन्छ"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"लक गरिएका बेला निजी स्पेसका एपहरूको प्रयोगसम्बन्धी जानकारी लुकाइन्छ"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"एपहरूको सूचीबाट निजी स्पेस एक्सेस गर्नुहोस्"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"निजी स्पेस सेटअप गर्न सकिएन"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"अहिले नै फेरि प्रयास गर्नुहोस् वा पछि फेरि आउनुहोस्"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"फेरि प्रयास गर्नुहोस्"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"अनलक गर्न स्क्रिन लक प्रयोग गर्ने हो?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"तपाईं आफूले आफ्नो डिभाइस अनलक गरे जसरी नै निजी स्पेस अनलक गर्न वा अर्कै लक छनौट गर्न सक्नुहुन्छ"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"स्क्रिन लक प्रयोग गर्नुहोस्"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"नयाँ लक छनौट गर्नुहोस्"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"सबै तयार भयो!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"निजी स्पेस एक्सेस गर्न होम स्क्रिनको पुछारबाट माथितिर स्वाइप गर्नुहोस् अनि तलतिर स्क्रोल गर्नुहोस्"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"पूरा भयो"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"निजी स्पेस एक्सेस गर्न तलतिर स्क्रोल गर्नुहोस्"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"निजी स्पेस सेटअप गर्न साइन इन गर्नुहोस्"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"तपाईं बढीमा <xliff:g id="COUNT">%d</xliff:g> वटा फिंगरप्रिन्टहरू हाल्न सक्नुहुन्छ"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"तपाईंले अधिकतम संख्यामा फिंगरप्रिन्टहरू थप्नुभएको छ"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"थप फिंगरप्रिन्टहरू थप्न सकिँदैन"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"कनेक्ट गर्नुहोस्"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"डिस्कनेक्ट गर्नुहोस्"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"पेयर गर्नुहोस् र कनेक्ट गर्नुहोस्"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"ब्लुटुथ अन हुँदा तपाईंको डिभाइस नजिकैका अन्य ब्लुटुथ डिभाइससँग कनेक्ट हुन सक्छ"</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"ब्लुटुथ अन हुँदा तपाईंको डिभाइसले नजिकैका अन्य ब्लुटुथ डिभाइससँग सम्पर्क गर्न सक्छ"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"ब्लुटुथ अन गरिएका बेला तपाईंको डिभाइस नजिकै रहेका ब्लुटुथ चल्ने अन्य डिभाइससँग कनेक्ट हुन सक्छ। \n\nडिभाइसका सुविधाहरूको गुणस्तर सुधार गर्ने प्रयोजनका लागि एप तथा सेवाहरूले ब्लुटुथ अफ भएका बेला र अरू बेला नजिकैका डिभाइसहरू स्क्यान गर्न सक्छन्। यसलाई लोकेसनमा आधारित सुविधा तथा सेवाहरूको गुणस्तर सुधार गर्ने जस्ता कार्यहरू गर्नका लागि प्रयोग गर्न सकिन्छ। तपाईं ब्लुटुथ स्क्यान गर्नेसम्बन्धी सेटिङमा गई यो कुरा परिवर्तन गर्न सक्नुहुन्छ।"</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"बदल्नुहोस्"</string>
     <string name="device_details_title" msgid="1155622417516195481">"डिभाइसको विवरण"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"ART लाई डिबग गर्न मिल्ने एपको बाइटकोड पुष्टि गर्न दिइयोस्"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"रिफ्रेस रेट देखाइयोस्"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"हालको डिस्प्लेको रिफ्रेस रेट देखाइयोस्"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"HDR/SDR रेसियो देखाउनुहोस्"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"हालको HDR/SDR रेसियो देखाउनुहोस्"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"डिभाइस अनलक गरेपछि मात्र NFC प्रयोग गर्न मिल्ने बनाइयोस्"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"एन्ड्रोइड बिम"</string>
@@ -1062,7 +1137,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"फोल्ड गर्दा एपहरू प्रयोग गरिराखियोस्"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"केही सामग्रीका हकमा रिफ्रेस रेट स्वतः ६० हर्जबाट बढाएर <xliff:g id="ID_1">%1$s</xliff:g> हर्ज बनाउँछ। यसले गर्दा ब्याट्रीको खपत बढ्छ।"</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"यसले केही सामग्रीका हकमा रिफ्रेस रेट स्वतः बढाएर <xliff:g id="ID_1">%1$d</xliff:g> हर्जसम्म बनाउँछ। यसले गर्दा ब्याट्रीको खपत बढ्छ।"</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"रिफ्रेस गर्ने दर बलपूर्वक सबैभन्दा बढी बनाउनुहोस्"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"स्क्रिनमा छुँदा स्क्रिनले जनाउने प्रतिक्रिया र एनिमेसनको गुणस्तर सुधार्न उच्चतम रिफ्रेस रेट। ब्याट्रीको खपत बढाउँछ।"</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"स्क्रिनमा हेरिरहँदा"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"समुदायसम्बन्धी सेटिङ"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APNs"</string>
     <string name="apn_edit" msgid="2003683641840248741">"एक्सेस पोइन्ट सम्पादन गर्नुहोस्"</string>
+    <string name="apn_add" msgid="9069613192201630934">"एक्सेस पोइन्ट हाल्नुहोस्"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"सेट गरिएको छैन"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"सेट गरिएको छैन"</string>
     <string name="apn_name" msgid="6677695784108157953">"नाम"</string>
@@ -1320,6 +1396,8 @@
     <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="network_type" msgid="748590707422733595">"नेटवर्कको प्रकार"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"नतोकिएको"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO को प्रकार"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO मान"</string>
     <string name="menu_delete" msgid="9199740901584348273">"APN मेटाउनुहोस्"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"खोल्नका लागि एक्सेसिबिलिटी बटन प्रयोग गर्नुहोस्"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"खोल्नका लागि भोल्युम कीहरू थिचिराख्नुहोस्"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"यसलाई खोल्न स्क्रिनमा तीन पटक ट्याप गर्नुहोस्"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"खोल्न स्क्रिनमा दुई वटा औँलाले ट्रिपल ट्याप गर्नुहोस्"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"खोल्नका लागि इसाराको प्रयोग गर्नुहोस्"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"एक्सेसिबिलिटी जेस्चर प्रयोग गर्नुहोस्"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"यो सुविधा प्रयोग गर्न आफ्नो स्क्रिनको पुछारमा रहेको पहुँचसम्बन्धी बटन <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> मा ट्याप गर्नुहोस्।\n\n एउटा सुविधाबाट अर्को सुविधामा जान पहुँचसम्बन्धी बटनमा थिचिराख्नुहोस्।"</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"यो सुविधा प्रयोग गर्न स्क्रिनमा भएको एक्सेसिबिलिटी बटनमा ट्याप गर्नुहोस्।"</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"यो सुविधा प्रयोग गर्न दुवै भोल्युम की थिचिराख्नुहोस्।"</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"म्याग्निफिकेसन सुविधा सुरु गर्न वा रोक्न आफ्नो स्क्रिनमा कतै तीन पटक ट्याप गर्नुहोस्।"</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"जुम इन गर्ने सुविधा अन तथा अफ गर्न स्क्रिनको जुनसुकै ठाउँमा दुई वटा औँलाले ट्रिपल ट्याप गर्नुहोस्।"</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"यो सुविधा प्रयोग गर्न २ वटा औँलाले स्क्रिनको पुछारबाट माथितिर स्वाइप गर्नुहोस्।\n\nएउटा सुविधाबाट अर्को सुविधामा जान २ वटा औँलाले माथितिर स्वाइप गरी स्क्रिनमा थिचिराख्नुहोस्।"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"यो सुविधा प्रयोग गर्न ३ वटा औँलाले स्क्रिनको पुछारबाट माथितिर स्वाइप गर्नुहोस्।\n\nएउटा सुविधाबाट अर्को सुविधामा जान ३ वटा औँलाले माथितिर स्वाइप गरी स्क्रिनमा थिचिराख्नुहोस्।"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"पहुँचसम्बन्धी कुनै सुविधा प्रयोग गर्न २ वटा औँलाले स्क्रिनको पुछारबाट माथितिर स्वाइप गर्नुहोस्।\n\nएउटा सुविधाबाट अर्को सुविधामा जान २ वटा औँलाले माथितिर स्वाइप गरी स्क्रिनमा थिचिराख्नुहोस्।"</string>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"भोल्युम कीहरू थिचिरहनुहोस्"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"भोल्युम कीहरू थिचिराख्नुहोस्"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"दुवै भोल्युम की थिचिराख्नुहोस्"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"स्क्रिनमा दुई वटा औँलाले ट्रिपल ट्याप गर्नुहोस्"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"स्क्रिनमा दुई वटा औँलाले ट्रिपल ट्याप गर्नुहोस्"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"स्क्रिनमा दुई वटा औँलाले {0,number,integer} पटक छिटो छिटो ट्याप गर्नुहोस्"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"स्क्रिनमा तीन पटक ट्याप गर्नुहोस्"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"स्क्रिनमा तीन पटक ट्याप गर्नुहोस्"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"स्क्रिनमा द्रुत रूपमा {0,number,integer} पटक ट्याप गर्नुहोस्। यो सर्टकट प्रयोग गर्दा तपाईंको डिभाइस ढिलो चल्न सक्छ"</string>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"भाइब्रेसन र ह्याप्टिक्स प्रयोग गरियोस्"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"अलार्म भाइब्रेसन"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"मिडिया भाइब्रेसन"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"किबोर्ड भाइब्रेसन"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"घन्टीको भाइब्रेसन"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"सूचना आएको जनाउन भाइब्रेट हुँदा"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"टच गर्दाको भाइब्रेसन"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> बाँकी"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> चार्जमा"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"स्क्रिन टाइम"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"ब्याकग्राउन्ड टाइम"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"ब्याट्री कम छ"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"एपलाई पृष्ठभूमिमा चल्न अनुमति दिनुहोस्"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"पृष्ठभूमिको गतिविधिलाई सीमित गर्ने हो?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"तपाईंले कुनै एपको पृष्ठभूमिको गतिविधिलाई सीमित गर्नुभयो भने यसले सही तरिकाले काम नगर्न सक्छ"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"यो एपलाई ब्याट्री अप्टिमाइज गर्न भनी सेट नगरिएको हुनाले तपाईं यसमा बन्देज लगाउन सक्नुहुन्न।\n\nएपमा बन्देज लगाउन पहिले ब्याट्री अप्टिमाइजेसन सुविधा अन गर्नुहोस्।"</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"ब्याट्रीको खपत व्यवस्थापन गर्नुहोस्"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"ब्याकग्राउन्डमा प्रयोग गर्न दिनुहोस्"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"रियल टाइममा अद्यावधिक जानकारी प्राप्त गर्न अन गर्नुहोस्, ब्याट्री बढी टिकाउन अफ गर्नुहोस्"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"असीमित"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"अप्टिमाइज गरिएको"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"प्रतिबन्धित"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"पछिल्लो पटक पूरा चार्ज गरेदेखि अहिलेसम्म"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"सिस्टम एपहरू"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"अनइन्स्टल गरिएका एपहरू"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"अन्य"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"अनुमानित बाँकी समय"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"पूर्ण चार्ज नभएसम्म"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"कुल समय: एक मिनेटभन्दा कम"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"ब्याकग्राउन्डमा चलाइएको समय: एक मिनेटभन्दा कम"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"स्क्रिन टाइम: एक मिनेटभन्दा कम"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"एक मिनेटभन्दा कम समय"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"कुल समय: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"ब्याकग्राउन्डमा चलाइएको समय: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"स्क्रिन टाइम: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"मोबाइल डेटा तथा Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"व्यक्तिगत डेटा अटोसिंक गरियोस्"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"कार्यसम्बन्धी डेटा अटोसिंक गरियोस्"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"निजी डेटा स्वतः सिंक गरियोस्"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"साइकल परिवर्तन गर्नुहोस्..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"महिनाको दिनमा डेटाको प्रयोग चक्र रिसेट गर्ने:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"यस समयमा कुनै अनुप्रयोगले डेटाको प्रयोग गरेन।"</string>
@@ -2916,7 +3008,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>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"पाठको आकार, ठुलो आकारको पाठ, ठुलो फन्ट, ठुलो पाठ, कमजोर दृष्टि, पाठ अझ ठुलो बनाउनुहोस्, फन्ट ठुलो बनाउने टुल, फन्ट ठुलो बनाउने प्रक्रिया"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"सधैँ अन हुने एम्बियन्ट डिस्प्ले, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, ट्याग, रिडर"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"किबोर्ड, ह्याप्टिक्स, भाइब्रेट"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"भोल्युम, भाइब्रेसन, Do Not Disturb"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"मिडियाको भोल्युम"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"भोल्युम cast गर्नुहोस्"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"सबै सूचना देखाइयोस्"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"अनलक गरिँदा मात्र संवेदनशील जानकारी देखाइयोस्"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"कुनै सूचना नदेखाइयोस्"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"तपाईं लक स्क्रिन कसरी देखियोस् भन्ने चाहनुहुन्छ?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"लक स्क्रिन"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"कार्यसम्बन्धी सबै सूचना देखाइयोस्"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"कार्यसम्बन्धी संवेदनशील सामग्री लुकाइयोस्"</string>
@@ -3354,6 +3448,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"यो एपमा परिष्कृत सेटिङ प्रयोग गर्न मिल्दैन"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"थप सेटिङ"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"यस एपभित्र थप सेटिङ उपलब्ध छन्"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"नोटिफिकेसन कुलडाउन"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"सबै सूचनाहरूमा कुलडाउन लागू गर्नुहोस्"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"तपाईंलाई एउटै एपबाट लगातार धेरै वटा सूचना प्राप्त भएमा सूचना आउँदा बज्ने घन्टीको भोल्युम बिस्तारै कम गर्नुहोस्"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"वार्तालापहरूमा कुलडाउन लागू गर्नुहोस्"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"तपाईंलाई छोटो अवधिमा एउटै च्याटबाट धेरै वटा म्यासेज प्राप्त भएमा सूचना आउँदा बज्ने घन्टीको भोल्युम बिस्तारै कम गर्नुहोस्"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"नोटिफिकेसन कुलडाउन प्रयोग नगर्नुहोस्"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"एउटै एपबाट बारम्बार सूचनाहरू आइरहे पनि, कहिल्यै सूचनाको भोल्यूम कम नगर्नुहोस्"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"अनलक भएका बेलामा मात्र भाइब्रेट गरियोस्"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"स्क्रिन अनलक भएका बेलामा मात्र भाइब्रेट गरियोस्"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"कार्य प्रोफाइलहरूमा लागू गर्नुहोस्"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"आफ्नो व्यक्तिगत प्रोफाइलमा लागू भएका नोटिफिकेसन कुलडाउन सेटिङ कार्य प्रोफाइलमा पनि लागू गर्नुहोस्"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR का सहायक सेवाहरू"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"इन्स्टल गरिएका कुनै पनि एपहरूले VR का सहायक सेवाहरूको रूपमा चल्ने अनुरोध गरेका छैनन्।"</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"<xliff:g id="SERVICE">%1$s</xliff:g> लाई VR सेवा चलाउने अनुमति दिने हो?"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"सबै फाइलहरूको व्यवस्थापन गर्ने अनुमति दिइयोस्"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"यो एपलाई यो डिभाइस वा जोडिएको कुनै भण्डारणमा रहेका सबै फाइलहरू पढ्ने, परिमार्जन गर्ने तथा मेट्ने अनुमति दिनुहोस्। अनुमति दिइएका खण्डमा यो एपले तपाईंको स्पष्ट अनुमतिविनै फाइलहरू प्रयोग गर्नसक्छ।"</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"सबै फाइलहरूमाथि पहुँच राख्न सक्छ।"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"बोलेर एक्टिभेट गर्न सकिने एपहरू"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"बोलेर एक्टिभेट गर्न दिइयोस्"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"बोलेर एक्टिभेट गर्ने सुविधाले बोलेर निर्देशन दिएकै भरमा अनुमति दिइएका एपहरू ह्यान्ड्सफ्री तरिकाले अन गर्छ। अन्तर्निर्मित एड्याप्टिभ सेन्सिङले तपाईंको जानकारी तपाईं मात्र हेर्न सक्नुहुन्छ भन्ने कुरा सुनिश्चित गर्छ।\n\n"<a href="">"प्रोटेक्टेड एड्याप्टिभ सेन्सिङका बारेमा थप जानकारी"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"फुल स्क्रिनमा सूचनाहरू देखाउने अनुमति"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"यो एपलाई सूचनाहरू फुल स्क्रिनमा देखाउने अनुमति दिनुहोस्"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"यो एपलाई डिभाइस लक भएका बेला फुल स्क्रिन ढाक्ने खालका सूचनाहरू देखाउने अनुमति दिनुहोस्। एपहरूले अलार्म, आगमन कल वा अन्य महत्त्वपूर्ण सूचनाहरू हाइलाइट गर्ने प्रयोजनका लागि फुल स्क्रिनमा सूचनाहरू देखाउन सक्छन्।"</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ले ब्याकग्राउन्डमा सामान्यभन्दा धेरै ब्याट्री खपत गरेको छ"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ले फोरग्राउन्डमा धेरै ब्याट्री खपत गरेको छ"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ले फोरग्राउन्डमा सामान्यभन्दा धेरै ब्याट्री खपत गरेको छ"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"धेरै ब्याट्री खपत गर्ने एप"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"ब्याकग्राउन्डमा धेरै ब्याट्री खपत गर्ने एप"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"फोर्टफोरग्राउन्डमा धेरै ब्याट्री खपत गर्ने एप"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"सिस्टम नेभिगेसन, २ बटनमार्फत गरिने नेभिगेसन, ३ बटनमार्फत गरिने नेभिगेसन, इसाराले गरिने नेभिगेसन, स्वाइप"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"डिजिटल सहायक"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"स्वाइप गर्दा सहायक सुरु होस्"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"डिजिटल सहायक एप चलाउन थाल्न स्क्रिनको फेदको कुनाबाट माथितिर स्वाइप गर्नुहोस्।"</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"डिजिटल सहायक एप सुरु गर्न स्क्रिनको फेदको कुनाबाट माथितिर स्वाइप गर्नुहोस्"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"सहायक खोल्न होम बटन थिचिराख्नुहोस्"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"डिजिटल सहायक एप खोल्न होम बटन थिचिराख्नुहोस्।"</string>
     <string name="low_label" msgid="6525629096999711220">"न्यून"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"डेटा, पासकी, पासवर्ड"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"अटो, फिल, अटोफिल, डेटा, पासकी, पासवर्ड"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;तपाईं यो एपमाथि भरोसा गर्नुहुन्छ भन्ने कुरा पक्का गर्नुहोस्&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; यस एपले अटोफिल गर्न सकिने कुराहरूको निर्धारण गर्न तपाईंको स्क्रिनमा भएका वस्तुहरूको प्रयोग गर्छ।"</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&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_autofill_confirmation_message" msgid="843829628024668466">"&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_picker_title" msgid="8191267620665129205">"पासवर्ड, पासकी र डेटासम्बन्धी सेवा"</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>
@@ -4226,10 +4336,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <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="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>
@@ -4858,4 +4966,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"छलकपट गर्ने उद्देश्यले बनाइएका एपहरू छन् कि छैनन् भन्ने कुरा पत्ता लगाउन स्क्यान गरिँदै छ"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"फिसिङसम्बन्धी गतिविधि गरिएको छ कि छैन भन्ने कुरा पत्ता लगाउनका निम्ति एपमा गरिएका गतिविधि हेर्नुहोस्"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"छलकपट गर्ने उद्देश्यले बनाइएका एपहरू पत्ता लगाउन स्क्यान गर्ने सुविधा प्रयोग गरियोस्"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"छलकपट गर्ने उद्देश्यले बनाइएका कामसम्बन्धी एपहरू पत्ता लगाउन स्क्यान गर्ने सुविधा प्रयोग गरियोस्"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-night/colors.xml b/res/values-night/colors.xml
index 7888191..9334d19 100644
--- a/res/values-night/colors.xml
+++ b/res/values-night/colors.xml
@@ -16,8 +16,6 @@
 
 <resources
     xmlns:androidprv="http://schemas.android.com/apk/prv/res/android">
-    <color name="switchbar_switch_track_tint">#82000000</color>
-    <color name="switchbar_switch_thumb_tint">@android:color/black</color>
     <color name="homepage_accessibility_background">#783BE5</color>
     <color name="homepage_support_background">#3F5FBD</color>
     <color name="contextual_card_background">@*android:color/material_grey_900</color>
@@ -58,6 +56,9 @@
     <!-- Icon tint color for battery usage system icon -->
     <color name="battery_usage_system_icon_color">@android:color/white</color>
 
+    <!-- Power anomaly color for icons, button and text -->
+    <color name="power_anomaly_app_warning_hint_color">#FDD663</color>
+    <color name="power_anomaly_primary_button_text_color">#2E3300</color>
 
     <!-- UDFPS colors -->
     <color name="udfps_enroll_icon">#7DA7F1</color>
diff --git a/res/values-night/styles.xml b/res/values-night/styles.xml
index f69c952..a93c981 100644
--- a/res/values-night/styles.xml
+++ b/res/values-night/styles.xml
@@ -19,15 +19,4 @@
     <style name="Widget.ActionBar.Base" parent="@android:style/Widget.DeviceDefault.ActionBar.Solid">
         <item name="android:background">?android:attr/colorPrimaryDark</item>
     </style>
-
-    <style name="TextAppearance.SimConfirmDialogList" parent="@style/TextAppearance.DialogMessage">
-      <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
-      <item name="android:textColor">?android:attr/textColorPrimaryInverse</item>
-    </style>
-
-    <style name="TextAppearance.SimConfirmDialogList.Summary">
-        <item name="android:textAppearance">?android:attr/textAppearanceSmall</item>
-        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
-        <item name="android:textColor">?android:attr/textColorSecondaryInverse</item>
-    </style>
 </resources>
\ No newline at end of file
diff --git a/res/values-nl/arrays.xml b/res/values-nl/arrays.xml
index 6e2ca64..c2fcbea 100644
--- a/res/values-nl/arrays.xml
+++ b/res/values-nl/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Na 1 minuut"</item>
     <item msgid="1574040255478150028">"Na 5 minuten"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index c3cd67e..00a8632 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Bluetooth LE Audio uitzetten"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Hiermee zet je de functie voor Bluetooth LE Audio uit als het apparaat hardwaremogelijkheden voor LE Audio ondersteunt."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Schakelaar voor LE Audio tonen in Apparaatgegevens"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Toelatingslijst voor Bluetooth LE Audio aanzetten"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Functie voor toelatingslijst voor Bluetooth LE Audio aanzetten."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Toelatingslijst voor Bluetooth LE Audio negeren"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Maak standaard gebruik van LE Audio, ook als niet is geverifieerd of LE Audio-randapparatuur voldoet aan de criteria van de toelatingslijst."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Media-apparaten"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Apparaten voor gesprekken"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Andere apparaten"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Opgeslagen apparaten"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Gekoppeld aan account"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Eerder gebruikt met account"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth wordt aangezet om te koppelen"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Verbindings­voorkeuren"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Eerder verbonden"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Schrijven in tekstvelden"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Indrukken van stylusknop negeren"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Stylus"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Audio delen"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Audio delen"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Gesprekken en alarmen"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Datum en tijd"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Wissen"</string>
@@ -191,13 +205,13 @@
     <string name="default_string_of_regional_preference" msgid="3428899072914884203">"Standaard gebruiken"</string>
     <string name="celsius_temperature_unit" msgid="8896459071273084507">"Celsius (°C)"</string>
     <string name="fahrenheit_temperature_unit" msgid="1118677820614569801">"Fahrenheit (°F)"</string>
-    <string name="sunday_first_day_of_week" msgid="7644548348295686051">"zondag"</string>
-    <string name="monday_first_day_of_week" msgid="7244698610476506771">"maandag"</string>
-    <string name="tuesday_first_day_of_week" msgid="5085370946936582391">"dinsdag"</string>
-    <string name="wednesday_first_day_of_week" msgid="6544537589727042869">"woensdag"</string>
-    <string name="thursday_first_day_of_week" msgid="3035885630945594833">"donderdag"</string>
-    <string name="friday_first_day_of_week" msgid="7074795061812083541">"vrijdag"</string>
-    <string name="saturday_first_day_of_week" msgid="3702282590450322727">"zaterdag"</string>
+    <string name="sunday_first_day_of_week" msgid="7644548348295686051">"Zondag"</string>
+    <string name="monday_first_day_of_week" msgid="7244698610476506771">"Maandag"</string>
+    <string name="tuesday_first_day_of_week" msgid="5085370946936582391">"Dinsdag"</string>
+    <string name="wednesday_first_day_of_week" msgid="6544537589727042869">"Woensdag"</string>
+    <string name="thursday_first_day_of_week" msgid="3035885630945594833">"Donderdag"</string>
+    <string name="friday_first_day_of_week" msgid="7074795061812083541">"Vrijdag"</string>
+    <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Zaterdag"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Als een app geen regionale voorkeuren ondersteunt, worden de standaard landinstellingen van de app gebruikt."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Meer informatie over taalvoorkeuren"</string>
     <string name="category_title_terms_of_address" msgid="4309422700380895278">"Aanvullende voorkeuren"</string>
@@ -273,8 +287,7 @@
     <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_location_off" msgid="8568995909147566720">"Toegang tot de locatie staat uit voor apps en services. De locatie van je apparaat kan nog steeds worden verstuurd naar nooddiensten als je een alarmnummer belt of sms\'t."</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Meer informatie over locatie-instellingen"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Accounts"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Beveiliging"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Versleuteling en inloggegevens"</string>
@@ -408,7 +421,7 @@
     <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Hoe het werkt"</string>
     <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Je smartwatch moet ontgrendeld zijn, om je pols zitten en in de buurt van deze telefoon zijn. Zolang je je smartwatch om je pols draagt, hoef je deze niet opnieuw te ontgrendelen."</string>
     <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Als deze telefoon wordt ontgrendeld, krijg je een melding op je smartwatch. Als de ontgrendeling per ongeluk was, tik je op de melding om de telefoon weer te vergrendelen."</string>
-    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Jij hebt het voor het zeggen"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Jij hebt de controle"</string>
     <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Je kunt je smartwatch op elk moment uit Ontgrendelen via smartwatch verwijderen in Instellingen"</string>
     <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Tik op een melding"</string>
     <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Swipe omhoog op het vergrendelscherm"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Werkprofiel"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Privéruimte"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Apps verbergen in een privémap"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Ontgrendelen met schermvergrendeling"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Privéruimte tonen"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Verbergen indien vergrendeld"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Privéruimte verbergen indien vergrendeld"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Als je niet wilt dat andere mensen weten dat Privéruimte op je apparaat staat, kun je deze verbergen in de lijst met apps"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Toegang krijgen tot Privéruimte indien verborgen"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Zoek naar Privéruimte in de zoekbalk"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Tik op de tegel Privéruimte"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Je Privéruimte ontgrendelen"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Uit"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Aan"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Systeem"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Privéruimte maken"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Privéruimte verwijderen"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Privéruimte gemaakt"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Privéruimte bestaat al"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Privéruimte kan niet worden gemaakt"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Privéruimte verwijderd"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Privéruimte kan niet worden verwijderd"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Schermvergrendeling instellen"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Als je Privéruimte wilt gebruiken, stel je een schermvergrendeling op dit apparaat in."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Schermvergrendeling instellen"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Annuleren"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Annuleren"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Instellen"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Privéruimte instellen"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Verberg privé-apps in een beveiligde ruimte die alleen toegankelijk is voor jou"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Hoe het werkt"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Je kunt toegang tot Privéruimte krijgen vanaf de onderkant van de lijst met apps"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Apps in Privéruimte worden beschermd door een vergrendeling"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Meldingen van apps in Privéruimte worden verborgen als Privéruimte vergrendeld is"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Apps in Privéruimte verschijnen niet in rechtenbeheer, privacydashboard en andere instellingen als Privéruimte vergrendeld is"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Privéruimte instellen…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Privéruimte wordt beschermd door een vergrendeling"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Gebruiksinformatie voor apps in Privéruimte is verborgen als Privéruimte vergrendeld is"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Toegang krijgen tot Privéruimte vanuit je lijst met apps"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Kan Privéruimte niet instellen"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Probeer het nu of kom later terug"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Opnieuw proberen"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Schermvergrendeling gebruiken voor ontgrendeling?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Je kunt Privéruimte op dezelfde manier ontgrendelen als je apparaat of een andere vergrendeling kiezen"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Schermvergrendeling gebruiken"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Nieuwe vergrendeling kiezen"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Je bent nu helemaal klaar"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Swipe omhoog vanaf de onderkant van het scherm en scroll omlaag om toegang tot Privéruimte te krijgen"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Klaar"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Scroll omlaag om toegang tot Privéruimte te krijgen"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Log in om Privéruimte in te stellen"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Je kunt maximaal <xliff:g id="COUNT">%d</xliff:g> vingerafdrukken toevoegen"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Je hebt het maximale aantal vingerafdrukken toegevoegd"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Kan geen extra vingerafdrukken toevoegen"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Verbinden"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Verbinding verbreken"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Koppelen en verbinden"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Als bluetooth aanstaat, kan je apparaat communiceren met andere bluetooth-apparaten in de buurt."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Als bluetooth aanstaat, kan je apparaat communiceren met andere bluetooth-apparaten in de buurt"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Als bluetooth aanstaat, kan je apparaat communiceren met andere bluetooth-apparaten in de buurt.\n\nApps en services kunnen nog steeds op elk moment naar apparaten in de buurt scannen om de apparaatfunctionaliteit te verbeteren, zelfs als bluetooth uitstaat. Dit kan worden gebruikt om bijvoorbeeld locatiegebaseerde functies en services te verbeteren. Je kunt dit wijzigen in de instellingen voor bluetooth-scannen."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Wijzigen"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Apparaatgegevens"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Sta ART toe de bytecode te verifiëren voor apps waarop foutopsporing kan worden toegepast"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Vernieuwingssnelheid tonen"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Toon huidige vernieuwingssnelheid van scherm"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"HDR/SDR-ratio tonen"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Toon de huidige HDR/SDR-ratio"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Apparaatontgrendeling vereisen voor NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1137,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Apps blijven gebruiken bij vouwen"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Hiermee wordt de vernieuwingssnelheid automatisch verhoogd van 60 naar <xliff:g id="ID_1">%1$s</xliff:g> Hz voor bepaalde content. Het batterijgebruik neemt toe."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Verhoogt de vernieuwingssnelheid automatisch naar <xliff:g id="ID_1">%1$d</xliff:g> Hz voor bepaalde content. Het batterijgebruik neemt toe."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Piekvernieuwingssnelheid afdwingen"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"De hoogste vernieuwingssnelheid voor verbeterde responsiviteit voor aanraking en animatiekwaliteit. Het batterijgebruik neemt toe."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Schermaandacht"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Gemeenschappelijke instellingen"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN\'s"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Toegangspunt bewerken"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Toegangspunt toevoegen"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Niet ingesteld"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Niet ingesteld"</string>
     <string name="apn_name" msgid="6677695784108157953">"Naam"</string>
@@ -1320,6 +1396,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN staat aan"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN staat uit"</string>
     <string name="bearer" msgid="3231443241639159358">"Drager"</string>
+    <string name="network_type" msgid="748590707422733595">"Netwerktype"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Niet aangegeven"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO-type"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO-waarde"</string>
     <string name="menu_delete" msgid="9199740901584348273">"APN verwijderen"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Knop Toegankelijkheid gebruiken om te openen"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Houd de volumetoetsen ingedrukt om te openen"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Tik 3 keer op het scherm om te openen"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"3·keer op het scherm tikken met 2 vingers om te openen"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Gebaar gebruiken om te openen"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Toegankelijkheidsgebaar gebruiken"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Als je deze functie wilt gebruiken, tik je onderaan het scherm op de knop Toegankelijkheid <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>.\n\nTik op de knop Toegankelijkheid en houd deze vast om tussen functies te schakelen."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Tik op de knop Toegankelijkheid op het scherm om deze functie te gebruiken."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Als je deze functie wilt gebruiken, houd je beide volumetoetsen ingedrukt."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Tik ergens op je scherm om de vergroting te starten of te stoppen."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Tik ergens 3 keer op het scherm met 2 vingers om de vergroting te starten of te stoppen."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Als je deze functie wilt gebruiken, swipe je 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_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Als je deze functie wilt gebruiken, swipe je 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_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Als je een toegankelijkheidsfunctie wilt gebruiken, swipe je 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>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Volumetoetsen ingedrukt houden"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"volumetoetsen ingedrukt houden"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Houd beide volumetoetsen ingedrukt"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"3·keer op het scherm tikken met 2 vingers"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"3·keer op het scherm tikken met 2 vingers"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"drie keer op het scherm 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>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Trillen en haptische technologie gebruiken"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Trilling bij wekker"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Trilling bij media"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Toetsenbordtrilling"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Trilling bij bellen"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Trilling bij melding"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Tikfeedback"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> tot batterij leeg is"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> tot batterij is opgeladen"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Schermtijd"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Achtergrondtijd"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Batterij bijna leeg"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Toestaan dat de app wordt uitgevoerd op de achtergrond"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Achtergrondactiviteit beperken?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Als je de achtergrondactiviteit voor een app beperkt, functioneert de app mogelijk niet meer correct"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Batterijoptimalisatie is niet ingesteld voor deze app. Je kunt de app dus niet beperken.\n\nZet eerst batterijoptimalisatie aan als je de app wilt beperken."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Batterijgebruik beheren"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Achtergrondgebruik toestaan"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Zet aan voor realtime updates, zet uit om de batterij te sparen"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Onbeperkt"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Geoptimaliseerd"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Beperkt"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"sinds laatste volledige lading"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Systeem-apps"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Verwijderde apps"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Anders"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Geschatte resterende tijd"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Tot volledige lading"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Totaal: minder dan een minuut"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Achtergrond: minder dan een minuut"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Schermtijd: minder dan een minuut"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Minder dan een minuut"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Totaal: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Achtergrond: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Schermtijd: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Mobiele data en wifi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Persoonsgegevens autom. synchr."</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Werkgegevens autom. synchr."</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Privégegevens automatisch synchroniseren"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Cyclus aanpassen..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Dag van maand voor resetten van datagebruikscyclus:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Geen gegevens gebruikt tijdens deze periode."</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"tekstgrootte, grote letters, groot lettertype, grote tekst, slechtziend, tekst groter maken, lettertype vergroten, vergroting van lettertype"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"inactief scherm altijd aan, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, tag, lezer"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"toetsenbord, haptische technologie, trillen"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Volume, trillen, niet storen"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Mediavolume"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Castvolume"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Toon alle content van meldingen"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Toon gevoelige content alleen indien ontgrendeld"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Toon helemaal geen meldingen"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Hoe wil je dat het vergrendelscherm wordt weergegeven?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Vergrendelscherm"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Content van alle werkmeldingen tonen"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Verberg gevoelige werkcontent"</string>
@@ -3354,6 +3448,17 @@
     <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="6121016426991791557">"Afkoelperiode voor meldingen"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Afkoelperiode toepassen op alle meldingen"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Het meldingsvolume geleidelijk verlagen als je veel opeenvolgende meldingen van dezelfde app krijgt"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Afkoelperiode toepassen op gesprekken"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Het meldingsvolume geleidelijk verlagen als je in korte tijd veel berichten van dezelfde chat krijgt"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Afkoelperiode voor meldingen niet gebruiken"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Meldingsvolume nooit verlagen, ongeacht het aantal opeenvolgende meldingen van dezelfde app"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Trillen indien ontgrendeld"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Alleen trillen als het scherm ontgrendeld is"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Toepassen op werkprofielen"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"De instellingen voor de afkoelperiode voor meldingen van je persoonlijke profiel toepassen op je werkprofiel"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR-helperservices"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Er zijn geen geïnstalleerde apps die hebben gevraagd om te worden uitgevoerd als VR-helperservices."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"VR-servicetoegang toestaan voor <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Toegang geven om alle bestanden te beheren"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Sta toe dat deze app alle bestanden op dit apparaat of gekoppelde opslagvolumes kan lezen, aanpassen of verwijderen. Als je dit toestaat, kan de app zonder jouw medeweten toegang tot bestanden krijgen."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Mag toegang tot alle bestanden hebben"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Apps met spraakactivering"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Spraakactivering toestaan"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Met spraakactivering zet je goedgekeurde apps handsfree aan met spraakopdrachten. Dankzij ingebouwde adaptieve detectie blijven gegevens privé.\n\n"<a href="">"Meer informatie over beveiligde adaptieve detectie"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Meldingen op volledig scherm"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Meldingen op volledig scherm van deze app toestaan"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Toestaan dat deze app meldingen op het volledige scherm toont als het apparaat is vergrendeld. Apps kunnen zo alarmen, inkomende gesprekken of andere urgente meldingen onder de aandacht brengen."</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> heeft op de achtergrond meer batterij dan normaal gebruikt"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> heeft op de voorgrond meer batterij gebruikt"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> heeft op de voorgrond meer batterij dan normaal gebruikt"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Hoog batterijgebruik"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Hoog batterijgebruik op de achtergrond"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Hoog batterijgebruik op de voorgrond"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"systeemnavigatie, navigatie met 2 knoppen, navigatie met 3 knoppen, navigatie met gebaren, swipen, vegen"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Digitale assistent"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Swipen om assistent aan te roepen"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Swipe omhoog vanuit een benedenhoek om de digitale assistent-app aan te roepen"</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Swipe omhoog vanuit een benedenhoek om de digitale assistent-app aan te roepen"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Startknop vasthouden voor de Assistent"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Tik op de startknop en houd vast om de app voor de digitale assistent te starten"</string>
     <string name="low_label" msgid="6525629096999711220">"Laag"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"gegevens, toegangssleutel, wachtwoord"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"automatisch, invullen, automatisch invullen, gegevens, toegangssleutel, wachtwoord"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Zorg dat je deze app vertrouwt&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; maakt gebruik van de content op je scherm om te bepalen wat automatisch kan worden aangevuld."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;&lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; gebruiken?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; gebruikt wat er op je scherm staat om te bepalen wat automatisch kan worden ingevuld. Nieuwe wachtwoorden, toegangssleutels en andere informatie worden vanaf nu hier opgeslagen."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;&lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; gebruiken?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Nieuwe wachtwoorden, toegangssleutels en andere informatie worden vanaf nu hier opgeslagen. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; kan wat er op je scherm staat gebruiken om te bepalen wat automatisch kan worden ingevuld."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Wachtwoorden, toegangssleutels en gegevensservices"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$s uitzetten?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Deze service uitzetten?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Opgeslagen informatie zoals wachtwoorden, toegangssleutels, betaalmethoden en andere informatie wordt niet automatisch ingevuld als je inlogt. Kies een wachtwoord, toegangssleutel of gegevensservice om je opgeslagen informatie te gebruiken."</string>
@@ -4227,7 +4337,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">"Experimenteel: ANGLE aanzetten"</string>
-    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Waarschuwing: Zet ANGLE aan als standaard OpenGL ES-stuurprogramma. Deze functie is in een experimentele fase en werkt misschien niet met bepaalde camera- en video-apps."</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Waarschuwing: ANGLE wordt aangezet als standaard OpenGL ES-stuurprogramma. Deze functie is in een experimentele fase en werkt misschien niet met bepaalde camera- en video-apps."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"Je moet opnieuw opstarten om het OpenGL ES-stuurprogramma van het systeem te wijzigen"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"App-compatibiliteitswijzigingen"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Zet app-compatibiliteitswijzigingen aan/uit"</string>
@@ -4785,10 +4895,8 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Beeldverhouding"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"Probeer een nieuwe beeldverhouding om deze app te bekijken als die niet is ontworpen voor je <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Probeer een nieuwe beeldverhouding om deze app te bekijken als die niet is ontworpen voor je <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Sommige apps zijn misschien niet geoptimaliseerd voor bepaalde beeldverhoudingen."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Probeer een nieuwe beeldverhouding om een app te bekijken als die niet is ontworpen voor je <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Probeer een nieuwe beeldverhouding om een app te bekijken als die niet is ontworpen voor je <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Sommige apps zijn misschien niet geoptimaliseerd voor bepaalde beeldverhoudingen."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Voorgestelde apps"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Gewijzigde apps"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"App-standaard"</string>
@@ -4858,4 +4966,10 @@
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Je apparaatnaam is zichtbaar voor apps die je hebt geïnstalleerd. De apparaatnaam kan ook door andere mensen worden gezien 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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Scannen op misleidende apps"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"App-activiteit checken op phishing"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Scannen gebruiken om misleidende apps te vinden"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Scannen gebruiken om misleidende apps voor werk te vinden"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-or/arrays.xml b/res/values-or/arrays.xml
index 563d018..60319c1 100644
--- a/res/values-or/arrays.xml
+++ b/res/values-or/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"1 ମିନିଟ ପରେ"</item>
     <item msgid="1574040255478150028">"5 ମିନିଟ ପରେ"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 751636a..45eddf9 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"ବ୍ଲୁଟୁଥ LE ଅଡିଓକୁ ଅକ୍ଷମ କରନ୍ତୁ"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"ଯଦି ଡିଭାଇସ LE ଅଡିଓ ହାର୍ଡୱେର କ୍ଷମତାକୁ ସମର୍ଥନ କରେ ତେବେ ଏହା ବ୍ଲୁଟୁଥ LE ଅଡିଓ ଫିଚରକୁ ଅକ୍ଷମ କରେ।"</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"ଡିଭାଇସ ବିବରଣୀରେ LE ଅଡିଓ ଟୋଗଲ ଦେଖାନ୍ତୁ"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"ବ୍ଲୁଟୁଥ LE ଅଡିଓ ଅନୁମତି ତାଲିକାକୁ ସକ୍ଷମ କରନ୍ତୁ"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"ବ୍ଲୁଟୁଥ LE ଅଡିଓ ଅନୁମତି ତାଲିକା ଫିଚରକୁ ସକ୍ଷମ କରନ୍ତୁ।"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"ବାଇପାସ ବ୍ଲୁଟୁଥ LE ଅଡିଓ ଆଲାଉଲିଷ୍ଟ"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"ଆଲାଉଲିଷ୍ଟ ମାନଦଣ୍ଡ ପୂରଣ କରିବାକୁ LE ଅଡିଓ ପେରିଫେରାଲକୁ ଯାଞ୍ଚ କରାଯାଇନଥିଲେ ମଧ୍ୟ ଡିଫଲ୍ଟ ଭାବେ LE ଅଡିଓ ବ୍ୟବହାର କରନ୍ତୁ।"</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"ମିଡିଆ ଡିଭାଇସ୍‌ଗୁଡ଼ିକ"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"କଲ୍ ଡିଭାଇସ୍‌ଗୁଡ଼ିକ"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"ଅନ୍ୟ ଡିଭାଇସ୍‌ଗୁଡ଼ିକ"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"ସେଭ ହୋଇଥିବା ଡିଭାଇସଗୁଡ଼ିକ"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"ଆକାଉଣ୍ଟ ସହ ସମ୍ବନ୍ଧିତ"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"ପୂର୍ବରୁ ବ୍ୟବହାର କରାଯାଇଥିବା ଆକାଉଣ୍ଟ"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"ପେୟାର କରିବା ପାଇଁ ବ୍ଲୁଟୁଥ ଚାଲୁ ହେବ"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"କନେକ୍ସନ ପସନ୍ଦଗୁଡ଼ିକ"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"ପୂର୍ବରୁ ସଂଯୋଗ ହୋ‍ଇଛି"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"ଟେକ୍ସଟ ଫିଲ୍ଡଗୁଡ଼ିକରେ ଲେଖନ୍ତୁ"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"ସମସ୍ତ ଷ୍ଟାଇଲସ ବଟନ ଦାବିବାକୁ ଅଣଦେଖା କରନ୍ତୁ"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"ଷ୍ଟାଇଲସ"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"ଅଡିଓ ସେୟାରିଂ"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"ଅଡିଓ ସେୟାର କରନ୍ତୁ"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"କଲ ଏବଂ ଆଲାରାମଗୁଡ଼ିକ"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"ତାରିଖ ଓ ସମୟ"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"ପ୍ରକ୍ସି"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"ଖାଲି କରନ୍ତୁ"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"ଲୋଡ୍ ହେଉଛି…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"ଆଖପାଖର ଡିଭାଇସଗୁଡ଼ିକ ପାଇଁ ଅନୁମତି ଥିବା ଆପ୍ସ କନେକ୍ଟ ହୋଇଥିବା ଡିଭାଇସଗୁଡ଼ିକର ଆପେକ୍ଷିକ ଅବସ୍ଥିତିକୁ ନିର୍ଦ୍ଧାରଣ କରିପାରିବ।"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ଆପ୍ସ ଓ ସେବାଗୁଡ଼ିକ ପାଇଁ ଲୋକେସନ ଆକ୍ସେସ ବନ୍ଦ ଅଛି। ଆପଣ ଏକ ଜରୁରୀକାଳୀନ ନମ୍ବରକୁ କଲ କରିବା କିମ୍ବା ଟେକ୍ସଟ ମେସେଜ ପଠାଇବା ସମୟରେ ଆପଣଙ୍କ ଡିଭାଇସର ଲୋକେସନ ଏବେ ବି ଜରୁରୀକାଳୀନ ଉତ୍ତରଦାତାମାନଙ୍କୁ ପଠାଯାଇପାରେ।"</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ଲୋକେସନ ସେଟିଂସ ବିଷୟରେ ଅଧିକ ଜାଣନ୍ତୁ"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"ଆକାଉଣ୍ଟ"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"ସୁରକ୍ଷା"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"ଏନକ୍ରିପ୍ସନ ଓ କ୍ରେଡେନସିଆଲ"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"ୱାର୍କ ପ୍ରୋଫାଇଲ"</string>
     <string name="private_space_title" msgid="7078627930195569767">"ପ୍ରାଇଭେଟ ସ୍ପେସ"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"ଏକ ପ୍ରାଇଭେଟ ଫୋଲ୍ଡରରେ ଆପ୍ସକୁ ଲୁଚାନ୍ତୁ"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"ସ୍କ୍ରିନ ଲକ ବ୍ୟବହାର କରି ଅନଲକ କରନ୍ତୁ"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"ପ୍ରାଇଭେଟ ସ୍ପେସ ଦେଖାନ୍ତୁ"</string>
-    <string name="private_space_category_system" msgid="1286843321867285700">"ସିଷ୍ଟମ୍"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"ପ୍ରାଇଭେଟ ସ୍ପେସ ତିଆରି କରନ୍ତୁ"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"ଲକ ଥିବା ସମୟରେ ଲୁଚାନ୍ତୁ"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"ପ୍ରାଇଭେଟ ସ୍ପେସ ଲକ ଥିବା ସମୟରେ ଏହାକୁ ଲୁଚାନ୍ତୁ"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"ଡିଭାଇସରେ ପ୍ରାଇଭେଟ ସ୍ପେସ ଥିବା ଅନ୍ୟ ଲୋକମାନଙ୍କୁ ନଜଣାଇବାକୁ ଆପଣ ଆପ୍ସ ତାଲିକାରୁ ଏହାକୁ ଲୁଚାଇପାରିବେ"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"ପ୍ରାଇଭେଟ ସ୍ପେସ ଲୁକ୍କାୟିତ ଥିବା ସମୟରେ ଏହାକୁ ଆକ୍ସେସ କରନ୍ତୁ"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"ସର୍ଚ୍ଚ ବାରରେ \'ପ୍ରାଇଭେଟ ସ୍ପେସ\' ସର୍ଚ୍ଚ କରନ୍ତୁ"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"ପ୍ରାଇଭେଟ ସ୍ପେସ ଟାଇଲରେ ଟାପ କରନ୍ତୁ"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"ଆପଣଙ୍କ ପ୍ରାଇଭେଟ ସ୍ପେସକୁ ଅନଲକ କରନ୍ତୁ"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"ବନ୍ଦ ଅଛି"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"ଚାଲୁ ଅଛି"</string>
+    <string name="private_space_category_system" msgid="1286843321867285700">"ସିଷ୍ଟମ"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"ପ୍ରାଇଭେଟ ସ୍ପେସ ଡିଲିଟ କରନ୍ତୁ"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"ପ୍ରାଇଭେଟ ସ୍ପେସ ସଫଳତାର ସହ ତିଆରି କରାଯାଇଛି"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"ପ୍ରାଇଭେଟ ସ୍ପେସ ପୂର୍ବରୁ ଅଛି"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"ପ୍ରାଇଭେଟ ସ୍ପେସ ତିଆରି କରାଯାଇପାରିଲା ନାହିଁ"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"ପ୍ରାଇଭେଟ ସ୍ପେସ ସଫଳତାର ସହ ଡିଲିଟ କରାଯାଇଛି"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"ପ୍ରାଇଭେଟ ସ୍ପେସ ଡିଲିଟ କରାଯାଇପାରିଲା ନାହିଁ"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"ଏକ ସ୍କ୍ରିନ ଲକ ସେଟ କରନ୍ତୁ"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"ପ୍ରାଇଭେଟ ସ୍ପେସ ବ୍ୟବହାର ପାଇଁ ଏ ଡିଭାଇସରେ ଏକ ସ୍କ୍ରିନ ଲକ ସେଟ କର।"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"ସ୍କ୍ରିନ ଲକ ସେଟ କରନ୍ତୁ"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"ବାତିଲ କରନ୍ତୁ"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"ବାତିଲ କରନ୍ତୁ"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"ସେଟ ଅପ କରନ୍ତୁ"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"ପ୍ରାଇଭେଟ ସ୍ପେସ ସେଟ ଅପ କରନ୍ତୁ"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"ପ୍ରାଇଭେଟ ଆପ୍ସକୁ କେବଳ ଆପଣ ଆକ୍ସେସ କରିପାରୁଥିବା ଏକ ସୁରକ୍ଷିତ ସ୍ପେସରେ ଲୁଚାନ୍ତୁ"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"ଏହା କିପରି କାମ କରେ"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"ଆପଣ ଆପଣଙ୍କ ଆପ୍ସ ତାଲିକାର ନିମ୍ନରୁ ପ୍ରାଇଭେଟ ସ୍ପେସକୁ ଆକ୍ସେସ କରିପାରିବେ"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"ପ୍ରାଇଭେଟ ସ୍ପେସରେ ଥିବା ଆପ୍ସ ଏକ ଲକ ଦ୍ୱାରା ସୁରକ୍ଷିତ ଅଟେ"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Private Space ଲକ ଥିବା ସମୟରେ ଏଥିରେ ଥିବା ଆପ୍ସରୁ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ଲୁଚାଯାଇଥାଏ"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Private Space ଲକ ଥିବା ବେଳେ ଅନୁମତି ପରିଚାଳକ, ଗୋପନୀୟତା ଡେସବୋର୍ଡ ଏବଂ ଅନ୍ୟ ସେଟିଂସରେ Private Space ଆପ୍ସ ଦେଖାଯିବ ନାହିଁ"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Private Space ସେଟ ଅପ କରାଯାଉଛି…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Private Space ଏକ ଲକ ଦ୍ୱାରା ସୁରକ୍ଷିତ ଅଟେ"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Private Space ଆପ୍ସ ଲକ ଥିବା ବେଳେ ଏହାର ବ୍ୟବହାର ସୂଚନା ଲୁକ୍କାୟିତ ରହିଥାଏ"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"ଆପଣଙ୍କ ଆପ୍ସ ତାଲିକାରୁ Private Spaceକୁ ଆକ୍ସେସ କରନ୍ତୁ"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Private Space ସେଟ ଅପ କରାଯାଇପାରିବ ନାହିଁ"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"ବର୍ତ୍ତମାନ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ କିମ୍ୱା ପରେ ଫେରନ୍ତୁ"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"ଅନଲକ କରିବା ପାଇଁ ସ୍କ୍ରିନ ଲକ ବ୍ୟବହାର କରିବେ?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"ଆପଣଙ୍କ ଡିଭାଇସକୁ ଆପଣ ଅନଲକ କରିବା ପରି Private Spaceକୁ ଅନଲକ କରିପାରିବେ କିମ୍ୱା ଏକ ଭିନ୍ନ ଲକ ବାଛିପାରିବେ"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"ସ୍କ୍ରିନ ଲକ ବ୍ୟବହାର କରନ୍ତୁ"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"ନୂଆ ଲକ ବାଛନ୍ତୁ"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"ସମ୍ପୂର୍ଣ୍ଣ ଭାବେ ପ୍ରସ୍ତୁତ!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Private Spaceକୁ ଆକ୍ସେସ କରିବା ପାଇଁ ଆପଣଙ୍କ ହୋମ ସ୍କ୍ରିନର ତଳୁ ଉପରକୁ ସ୍ୱାଇପ କରି ତା\'ପରେ ତଳକୁ ସ୍କ୍ରୋଲ କରନ୍ତୁ"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"ହୋଇଗଲା"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Private Spaceକୁ ଆକ୍ସେସ କରିବା ପାଇଁ ତଳକୁ ସ୍କ୍ରୋଲ କରନ୍ତୁ"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"ପ୍ରାଇଭେଟ ସ୍ପେସ ସେଟ ଅପ କରିବା ପାଇଁ ସାଇନ ଇନ କରନ୍ତୁ"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"ଆପଣ ସର୍ବାଧିକ <xliff:g id="COUNT">%d</xliff:g> ଟିପଚିହ୍ନ ଯୋଗ କରିପାରିବେ"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"ଆପଣ ସର୍ବାଧିକ ସଂଖ୍ୟାର ଆଙ୍ଗୁଠି ଚିହ୍ନ ଯୋଡିଛନ୍ତି"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"ଆଉ ଅଧିକ ଟିପଚିହ୍ନ ଯୋଡିପାରିବ ନାହିଁ"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"କନେକ୍ଟ କରନ୍ତୁ"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"ଡିସକନେକ୍ଟ କରନ୍ତୁ"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"ପେୟାର୍‌ ଓ ସଂଯୋଗ"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"ଆପଣଙ୍କ ବ୍ଲୁଟୁଥ ଚାଲୁଥିବା ବେଳେ ଆପଣଙ୍କ ଡିଭାଇସ ଆଖପାଖରେ ଥିବା ବ୍ଲୁଟୁଥ ଡିଭାଇସଗୁଡ଼ିକ ସହ ଯୋଗାଯୋଗ କରିପାରିବ।"</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"ବ୍ଲୁଟୁଥ ଚାଲୁ ଥିଲେ ଆପଣଙ୍କ ଡିଭାଇସ ଆଖପାଖର ବ୍ଲୁଟୁଥ ଡିଭାଇସଗୁଡ଼ିକ ସହ କମ୍ୟୁନିକେଟ କରିପାରିବ"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"ବ୍ଲୁଟୁଥ ଚାଲୁ ଥିବା ବେଳେ ଆପଣଙ୍କ ଡିଭାଇସ ଆଖପାଖରେ ଥିବା ଅନ୍ୟ ବ୍ଲୁଟୁଥ ଡିଭାଇସଗୁଡ଼ିକ ସହ କମ୍ୟୁନିକେଟ କରିପାରିବ।\n\nଡିଭାଇସ ଅନୁଭୂତିକୁ ଉନ୍ନତ କରିବା ପାଇଁ, ବ୍ଲୁଟୁଥ ବନ୍ଦ ଥିଲେ ମଧ୍ୟ ଆପ୍ସ ଓ ସେବାଗୁଡ଼ିକ ଯେ କୌଣସି ସମୟରେ ଆଖପାଖର ଡିଭାଇସଗୁଡ଼ିକ ପାଇଁ ଏବେ ବି ସ୍କାନ କରିପାରିବ। ଉଦାହରଣ ସ୍ଵରୂପ, ଲୋକେସନ-ଆଧାରିତ ଫିଚର ଓ ସେବାଗୁଡ଼ିକୁ ଉନ୍ନତ କରିବା ପାଇଁ ଏହାକୁ ବ୍ୟବହାର କରାଯାଇପାରିବ। ଆପଣ ଏହାକୁ ବ୍ଲୁଟୁଥ ସ୍କାନିଂ ସେଟିଂସରେ ପରିବର୍ତ୍ତନ କରିପାରିବେ।"</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"ପରିବର୍ତ୍ତନ କରନ୍ତୁ"</string>
     <string name="device_details_title" msgid="1155622417516195481">"ଡିଭାଇସର ବିବରଣୀ"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"debuggable ଆପ୍ସ ପାଇଁ bytecode ଯାଞ୍ଚ କରିବାକୁ ART ଅନୁମତି ଦିଅନ୍ତୁ"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"ରିଫ୍ରେସ୍ ରେଟ୍ ଦେଖାନ୍ତୁ"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"ବର୍ତ୍ତମାନର ଡିସପ୍ଲେ ରିଫ୍ରେସ ରେଟ ଦେଖାନ୍ତୁ"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"HDR/SDR ଅନୁପାତ ଦେଖାନ୍ତୁ"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"ବର୍ତ୍ତମାନର HDR/SDR ଅନୁପାତ ଦେଖାନ୍ତୁ"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"NFC ପାଇଁ ଡିଭାଇସ୍ ଅନଲକ୍ ଆବଶ୍ୟକ"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android ବିମ୍‌"</string>
@@ -1062,7 +1137,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"ଫୋଲ୍ଡରେ ଥିବା ଆପ୍ସ ବ୍ୟବହାର କରିବା ଜାରି ରଖନ୍ତୁ"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"ସ୍ମୁଥ୍ ଡିସପ୍ଲେ"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"କିଛି ବିଷୟବସ୍ତୁ ପାଇଁ ରିଫ୍ରେସ ରେଟକୁ ସ୍ୱଚାଳିତ ଭାବରେ 60ରୁ <xliff:g id="ID_1">%1$s</xliff:g> Hz ପର୍ଯ୍ୟନ୍ତ ବଢ଼ାଇଥାଏ। ବେଟେରୀର ବ୍ୟବହାର ବଢ଼ାଇଥାଏ।"</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"କିଛି ବିଷୟବସ୍ତୁ ପାଇଁ ରିଫ୍ରେସ ରେଟକୁ ସ୍ୱତଃ <xliff:g id="ID_1">%1$d</xliff:g> Hz ପର୍ଯ୍ୟନ୍ତ ବଢ଼ାଇଥାଏ। ବେଟେରୀର ବ୍ୟବହାର ବଢ଼ାଇଥାଏ।"</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"ସର୍ବାଧିକ ରିଫ୍ରେସ୍ ହାରକୁ ଲାଗୁ କରନ୍ତୁ"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"ଉନ୍ନତ ସ୍ପର୍ଶ ପ୍ରତିକ୍ରିୟା ଓ ଆନିମେସନ ଗୁଣବତ୍ତା ପାଇଁ ସର୍ବାଧିକ ରିଫ୍ରେସ ରେଟ। ବେଟେରୀର ବ୍ୟବହାର ବଢ଼ାଇଥାଏ।"</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"ସ୍କ୍ରିନ୍ ଆଟେନ୍‌ସନ୍"</string>
@@ -1192,7 +1267,7 @@
     <string name="baseband_version" msgid="2600182227599835857">"ବେସ୍‌ବ୍ୟାଣ୍ଡ ଭର୍ସନ୍‌"</string>
     <string name="kernel_version" msgid="3513538109381366881">"କର୍ଣ୍ଣେଲ ସଂସ୍କରଣ"</string>
     <string name="build_number" msgid="9009733242117579826">"ବିଲ୍ଡ ନମ୍ବର"</string>
-    <string name="module_version" msgid="1787518340082046658">"Google Play ସିଷ୍ଟମ୍ ଅପ୍‌ଡେଟ୍"</string>
+    <string name="module_version" msgid="1787518340082046658">"Google Play ସିଷ୍ଟମ ଅପଡେଟ"</string>
     <string name="battery_info" msgid="7873528123969546728">"ବେଟେରୀ ସୂଚନା"</string>
     <string name="device_info_not_available" msgid="4804474466616712326">"ଉପଲବ୍ଧ ନାହିଁ"</string>
     <string name="storage_settings" msgid="7472188817781592677">"ଷ୍ଟୋରେଜ"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"କମ୍ୟୁନାଲ ସେଟିଂସ"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APNs"</string>
     <string name="apn_edit" msgid="2003683641840248741">"ଆକ୍ସେସ ପଏଣ୍ଟକୁ ଏଡିଟ କରନ୍ତୁ"</string>
+    <string name="apn_add" msgid="9069613192201630934">"ଆକ୍ସେସ ପଏଣ୍ଟ ଯୋଗ କରନ୍ତୁ"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"ସେଟ ହୋଇନାହିଁ"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"ସେଟ କରାଯାଇନାହିଁ"</string>
     <string name="apn_name" msgid="6677695784108157953">"ନାମ"</string>
@@ -1320,6 +1396,8 @@
     <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="network_type" msgid="748590707422733595">"ନେଟୱାର୍କ ପ୍ରକାର"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"ଅନିର୍ଦ୍ଦିଷ୍ଟ"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO ପ୍ରକାର"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO ଭାଲ୍ୟୁ"</string>
     <string name="menu_delete" msgid="9199740901584348273">"APN ଡିଲିଟ୍‌ କରନ୍ତୁ"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"ଖୋଲିବା ପାଇଁ ଆକ୍ସେସିବିଲିଟୀ ବଟନ ବ୍ୟବହାର କରନ୍ତୁ"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"ଖୋଲିବାକୁ ଭଲ୍ୟୁମ୍ କୀ\'ଗୁଡ଼ିକୁ ଧରି ରଖନ୍ତୁ"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"ଖୋଲିବାକୁ ସ୍କ୍ରିନରେ ତିନି ଥର ଟାପ୍ କରନ୍ତୁ"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"ଖୋଲିବା ପାଇଁ ଦୁଇଟି ଆଙ୍ଗୁଠିରେ ସ୍କ୍ରିନକୁ ତିନିଥର ଟାପ କରନ୍ତୁ"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"ଖୋଲିବା ପାଇଁ ଜେଶ୍ଚର୍ ବ୍ୟବହାର କରନ୍ତୁ"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"ଆକ୍ସେସିବିଲିଟୀ ଜେଶ୍ଚର ବ୍ୟବହାର କରନ୍ତୁ"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"ଏହି ଫିଚର୍ ବ୍ୟବହାର କରିବାକୁ ଆପଣଙ୍କ ସ୍କ୍ରିନର ନିମ୍ନରେ ଥିବା ଆକ୍ସେସିବିଲିଟୀ ବଟନ୍ <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>ରେ ଟାପ୍ କରନ୍ତୁ। \n\n ଫିଚରଗୁଡ଼ିକ ମଧ୍ୟରେ ସ୍ୱିଚ୍ କରିବାକୁ ଆକ୍ସେସିବିଲିଟୀ ବଟନକୁ ଦାବି ଧରନ୍ତୁ।"</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"ଏହି ଫିଚରକୁ ବ୍ୟବହାର କରିବା ପାଇଁ, ଆପଣଙ୍କ ସ୍କ୍ରିନରେ ଥିବା ଆକ୍ସେସିବିଲିଟୀ ବଟନକୁ ଟାପ୍ କରନ୍ତୁ।"</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"ଏହି ଫିଚର୍ ବ୍ୟବହାର କରିବାକୁ, ଉଭୟ ଭଲ୍ୟୁମ୍ କୀ’କୁ ଦବାଇ ଧରନ୍ତୁ।"</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"ମେଗ୍ନିଫିକେସନ ଆରମ୍ଭ ଏବଂ ବନ୍ଦ କରିବାକୁ, ଆପଣଙ୍କ ସ୍କ୍ରିନର ଯେ କୌଣସି ସ୍ଥାନରେ ତିନି ଥର-ଟାପ କରନ୍ତୁ।"</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"ମେଗ୍ନିଫିକେସନ ଆରମ୍ଭ ଓ ବନ୍ଦ କରିବାକୁ ନିଜ ସ୍କ୍ରିନର ଯେ କୌଣସି ସ୍ଥାନରେ ଦୁଇଟି ଆଙ୍ଗୁଠିରେ ତିନିଥର-ଟାପ କରନ୍ତୁ।"</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"ଏହି ଫିଚର୍ ବ୍ୟବହାର କରିବାକୁ 2ଟି ଆଙ୍ଗୁଠିରେ ସ୍କ୍ରିନର ତଳୁ ଉପରକୁ ସ୍ୱାଇପ୍ କରନ୍ତୁ।\n\nଫିଚରଗୁଡ଼ିକ ମଧ୍ୟରେ ସ୍ୱିଚ୍ କରିବାକୁ, 2ଟି ଆଙ୍ଗୁଠିରେ ଉପରକୁ ସ୍ୱାଇପ୍ କରି ଧରି ରଖନ୍ତୁ।"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"ଏହି ଫିଚର୍ ବ୍ୟବହାର କରିବାକୁ 3ଟି ଆଙ୍ଗୁଠିରେ ସ୍କ୍ରିନର ତଳୁ ଉପରକୁ ସ୍ୱାଇପ୍ କରନ୍ତୁ।\n\nଫିଚରଗୁଡ଼ିକ ମଧ୍ୟରେ ସ୍ୱିଚ୍ କରିବାକୁ, 3ଟି ଆଙ୍ଗୁଠିରେ ଉପରକୁ ସ୍ୱାଇପ୍ କରି ଧରି ରଖନ୍ତୁ।"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"ଏକ ଆକ୍ସେସବିଲିଟୀ ଫିଚର୍ ବ୍ୟବହାର କରିବାକୁ 2ଟି ଆଙ୍ଗୁଠିରେ ସ୍କ୍ରିନର ତଳୁ ଉପରକୁ ସ୍ୱାଇପ୍ କରନ୍ତୁ।\n\nଫିଚରଗୁଡ଼ିକ ମଧ୍ୟରେ ସ୍ୱିଚ୍ କରିବାକୁ, 2ଟି ଆଙ୍ଗୁଠିରେ ଉପରକୁ ସ୍ୱାଇପ୍ କରି ଧରି ରଖନ୍ତୁ।"</string>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"ଭଲ୍ୟୁମ୍ କୀ\'ଗୁଡ଼ିକୁ ଧରି ରଖନ୍ତୁ"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"ଭଲ୍ୟୁମ୍ କୀ\'ଗୁଡ଼ିକୁ ଧରି ରଖନ୍ତୁ"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"ଉଭୟ ଭଲ୍ୟୁମ୍ କୀ’କୁ ଦବାଇ ଧରି ରଖନ୍ତୁ"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"ଦୁଇଟି-ଆଙ୍ଗୁଠିରେ ସ୍କ୍ରିନକୁ ତିନିଥର-ଟାପ କରନ୍ତୁ"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"ଦୁଇଟି-ଆଙ୍ଗୁଠିରେ ସ୍କ୍ରିନକୁ ତିନିଥର-ଟାପ କରନ୍ତୁ"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"ଦୁଇଟି ଆଙ୍ଗୁଠିରେ ସ୍କ୍ରିନକୁ ଶୀଘ୍ର {0,number,integer} ଥର ଟାପ କରନ୍ତୁ"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"ଟ୍ରିପଲ୍ ଟାପ୍ ସ୍କ୍ରିନ୍"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"ଟ୍ରିପଲ୍-ଟାପ୍ ସ୍କ୍ରିନ୍"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"ସ୍କ୍ରିନରେ ଶୀଘ୍ର {0,number,integer} ଥର ଟାପ୍ କରନ୍ତୁ। ଏହି ସର୍ଟକଟ୍ ଆପଣଙ୍କ ଡିଭାଇସକୁ ଧୀର କରିପାରେ"</string>
@@ -1978,7 +2061,7 @@
     <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&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;"</string>
     <string name="accessibility_button_description" msgid="7669538706120092399">"&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;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"ବଟନ୍ କିମ୍ବା ଜେଶ୍ଚର୍ ବ୍ୟବହାର କରନ୍ତୁ"</string>
-    <string name="accessibility_button_location_title" msgid="7182107846092304942">"ଲୋକେସନ୍"</string>
+    <string name="accessibility_button_location_title" msgid="7182107846092304942">"ଲୋକେସନ"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"ଆକାର"</string>
     <string name="accessibility_button_fade_title" msgid="8081993897680588829">"ବ୍ୟବହାରରେ ନଥିବା ବେଳେ ଫିକା ଦେଖାଯାଏ"</string>
     <string name="accessibility_button_fade_summary" msgid="7865950833524973709">"କିଛି ସମୟ ପରେ ବଟନଟି ଫିକା ହୋଇଯିବା ଯୋଗୁଁ ଆପଣଙ୍କ ସ୍କ୍ରିନକୁ ଦେଖିବା ସହଜ ହୋଇଥାଏ"</string>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"ଭାଇବ୍ରେସନ ଏବଂ ହାପଟିକ୍ସ ବ୍ୟବହାର କରନ୍ତୁ"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"ଆଲାରାମ ଭାଇବ୍ରେସନ"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"ମିଡିଆ ଭାଇବ୍ରେସନ"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"କୀବୋର୍ଡ ଭାଇବ୍ରେସନ"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"ରିଙ୍ଗ ଭାଇବ୍ରେସନ୍"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"ବିଜ୍ଞପ୍ତି ଭାଇବ୍ରେସନ୍"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"ଟଚ୍ ଫିଡବ୍ୟାକ୍"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> ଅବଶିଷ୍ଟ ଅଛି"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"ଚାର୍ଜ କରିବା ପାଇଁ <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> ଲାଗିବ"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"ସ୍କ୍ରିନ ସମୟ"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"ପୃଷ୍ଠପଟ ସମୟ"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"ବ୍ୟାଟେରୀ ସ୍ତର କମ୍ ଅଛି"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"ଆପ୍‌ଟିକୁ ବ୍ୟାକ୍‌ଗ୍ରାଉଣ୍ଡରେ ଚାଲିବାକୁ ଦିଅନ୍ତୁ"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"ବ୍ୟାକ୍‌ଗ୍ରାଉଣ୍ଡ କାର୍ଯ୍ୟକଳାପ ସୀମିତ କରିବେ?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"ଯଦି ଆପଣ ଗୋଟିଏ ଆପ୍‌ର ବ୍ୟାକ୍‌ଗ୍ରାଉଣ୍ଡ କାର୍ଯ୍ୟକଳାପକୁ ସୀମିତ କରିବେ, ଏହା ଠିକ୍‍ ଭାବରେ କାମ କରିନପାରେ"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"ବ୍ୟାଟେରୀକୁ ଅପ୍ଟିମାଇଜ୍ କରିବା ପାଇଁ ଯେହେତୁ ଏହି ଆପ୍‍କୁ ସେଟ୍ କରାଯାଇନାହିଁ, ତେଣୁ ଆପଣ ଏହାକୁ ସୀମାବଦ୍ଧ କରିପାରିବେ ନାହିଁ। \n\nଆପ୍‍କୁ ସୀମାବଦ୍ଧ କରିବା ପାଇଁ ପ୍ରଥମେ ବ୍ୟାଟେରୀ ଅପ୍ଟିମାଇଜେସନ୍‍କୁ ଚାଲୁ କରନ୍ତୁ।"</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"ବ୍ୟାଟେରୀ ବ୍ୟବହାର ପରିଚାଳନା କରନ୍ତୁ"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"ପୃଷ୍ଠପଟରେ ବ୍ୟବହାର କରିବାକୁ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"ରିଅଲ-ଟାଇମ ଅପଡେଟ ପାଇଁ ସକ୍ଷମ କରନ୍ତୁ, ବେଟେରୀର ଚାର୍ଜ ସେଭ କରିବାକୁ ଅକ୍ଷମ କରନ୍ତୁ"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"ଅପ୍ରତିବନ୍ଧିତ"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"ଅପ୍ଟିମାଇଜ କରାଯାଇଛି"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"ପ୍ରତିବନ୍ଧିତ"</string>
@@ -2329,7 +2418,7 @@
     <string name="power_screen" msgid="4596900105850963806">"ସ୍କ୍ରିନ୍"</string>
     <string name="power_cpu" msgid="1820472721627148746">"CPU"</string>
     <string name="power_flashlight" msgid="8993388636332573202">"ଫ୍ଲାସ୍‍ଲାଇଟ୍"</string>
-    <string name="power_camera" msgid="4778315081581293923">"କ୍ୟାମେରା"</string>
+    <string name="power_camera" msgid="4778315081581293923">"କେମେରା"</string>
     <string name="power_gps" msgid="6352380895542498164">"GPS"</string>
     <string name="power_wifi" msgid="4614007837288250325">"ୱାଇ-ଫାଇ"</string>
     <string name="power_bluetooth" msgid="5085900180846238196">"ବ୍ଲୁଟୁଥ"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"ସମ୍ପୂର୍ଣ୍ଣ ଚାର୍ଜ ହେବା ପରଠାରୁ"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"ସିଷ୍ଟମ ଆପ୍ସ"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"ଅନଇନଷ୍ଟଲ କରାଯାଇଥିବା ଆପ୍ସ"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"ଅନ୍ୟ"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"ଆନୁମାନିକ ବଳକା ସମୟ"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"ପୂର୍ଣ୍ଣ ଚାର୍ଜ ହେବା ପାଇଁ"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"ମୋଟ: ଏକ ମିନିଟରୁ କମ୍"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"ପୃଷ୍ଠପଟ: ଏକ ମିନିଟରୁ କମ"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"ସ୍କ୍ରିନ ସମୟ: ଏକ ମିନିଟରୁ କମ"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"ଏକ ମିନିଟରୁ କମ"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"ମୋଟ: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"ପୃଷ୍ଠପଟ: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"ସ୍କ୍ରିନ ସମୟ: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"ମୋବାଇଲ ଡାଟା ଏବଂ ୱାଇ-ଫାଇ"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"ବ୍ୟକ୍ତିଗତ ଡାଟା ଅଟୋ-ସିଙ୍କ କରନ୍ତୁ"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"ୱାର୍କ ଡାଟାକୁ ଅଟୋ-ସିଙ୍କ କରନ୍ତୁ"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"ଅଟୋ-ସିଙ୍କ ପ୍ରାଇଭେଟ ଡାଟା"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"ଡାଟା ବ୍ୟବହାର ଚକ୍ର ପରିବର୍ତ୍ତନ କରନ୍ତୁ…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"ଡାଟା ବ୍ୟବହାର ସାଇକେଲ ରିସେଟ କରିବା ପାଇଁ ମାସକୁ ଧାର୍ଯ୍ୟ କରିଥିବା ଦିନ:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"ଏହି ଅବଧିରେ କୌଣସି ଆପ୍‌ ଦ୍ୱାରା ଡାଟା ବ୍ୟବହାର ହୋଇନାହିଁ।"</string>
@@ -2942,7 +3034,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>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"ଟେକ୍ସଟର ଆକାର, ବଡ଼ ପ୍ରିଣ୍ଟ, ବଡ଼ ଫଣ୍ଟ, ବଡ଼ ଟେକ୍ସଟ୍, କମ୍ ଦେଖାଯାଉଥିବା, ଟେକ୍ସଟ୍ ଆହୁରି ବଡ଼ କରନ୍ତୁ, ଫଣ୍ଟର ଆକାର ବଡ଼ କରୁଥିବା ଟୁଲ୍, ଫଣ୍ଟର ଆକାର ବଡ଼ କରିବା"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"ସର୍ବଦା ଚାଲୁ ଆମ୍ବିଏଣ୍ଟ ଡିସପ୍ଲେ, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"NFC, ଟାଗ, ରିଡର"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"କୀବୋର୍ଡ, ହାପଟିକ୍ସ, ଭାଇବ୍ରେଟ,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"ଭଲ୍ୟୁମ୍, ଭାଇବ୍ରେସନ୍, ବିରକ୍ତ କରନ୍ତୁ ନାହିଁ"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"ମିଡିଆ ଭଲ୍ୟୁମ"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"କାଷ୍ଟ ଭଲ୍ୟୁମ୍‌"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"ସମସ୍ତ ବିଜ୍ଞପ୍ତି ବିଷୟବସ୍ତୁ ଦେଖାନ୍ତୁ"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"ସମ୍ବେଦନଶୀଳ ବିଷୟବସ୍ତୁ ଅନଲକ ଥିବା ବେଳେ ହିଁ ଦେଖାନ୍ତୁ"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ଆଦୌ ଦେଖାନ୍ତୁ ନାହିଁ"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"ଲକ ସ୍କ୍ରିନ କିପରି ଡିସପ୍ଲେ ହେଉ ବୋଲି ଆପଣ ଚାହିଁବେ?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"ଲକ ସ୍କ୍ରିନ"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"ସମସ୍ତ ୱାର୍କ ବିଜ୍ଞପ୍ତି ବିଷୟବସ୍ତୁ ଦେଖାନ୍ତୁ"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"ସମ୍ବେଦନଶୀଳ ୱାର୍କ ବିଷୟବସ୍ତୁକୁ ଲୁଚାନ୍ତୁ"</string>
@@ -3354,6 +3448,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"ଏହି ଆପ ଉନ୍ନତ ସେଟିଂସକୁ ସମର୍ଥନ କରେ ନାହିଁ"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"ଅଧିକ ସେଟିଂସ"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"ଏହି ଆପରେ ଅଧିକ ସେଟିଂସ ଉପଲବ୍ଧ ଅଛି"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"ବିଜ୍ଞପ୍ତି କୁଲଡାଉନ"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"ସମସ୍ତ ବିଜ୍ଞପ୍ତିରେ କୁଲଡାଉନ ଲାଗୁ କରନ୍ତୁ"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"ଆପଣ ସମାନ ଆପରୁ ଅଧିକ କ୍ରମିକ ବିଜ୍ଞପ୍ତି ପାଇଲେ ବିଜ୍ଞପ୍ତିର ଭଲ୍ୟୁମକୁ ଧୀରେ ଧୀରେ କମାନ୍ତୁ"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"ବାର୍ତ୍ତାଳାପରେ କୁଲଡାଉନ ଲାଗୁ କରନ୍ତୁ"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"ଆପଣ ସମାନ ଚାଟରୁ ଅଳ୍ପ ସମୟ ମଧ୍ୟରେ ଅଧିକ ମେସେଜ ପାଇଲେ ବିଜ୍ଞପ୍ତିର ଭଲ୍ୟୁମକୁ ଧୀରେ ଧୀରେ କମାନ୍ତୁ"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"ବିଜ୍ଞପ୍ତି କୁଲଡାଉନକୁ ବ୍ୟବହାର କରନ୍ତୁ ନାହିଁ"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"ସମାନ ଆପରୁ କ୍ରମିକ ବିଜ୍ଞପ୍ତିର ପରିମାଣ ଯାହା ହୋଇଥାଉ ନା କାହିଁକି ବିଜ୍ଞପ୍ତିର ଭଲ୍ୟୁମକୁ କେବେ ବି କମାନ୍ତୁ ନାହିଁ"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"ଅନଲକ ଥିବା ସମୟରେ ଭାଇବ୍ରେଟ କରନ୍ତୁ"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"ସ୍କ୍ରିନ ଅନଲକ ଥିବା ସମୟରେ କେବଳ ଭାଇବ୍ରେଟ କରନ୍ତୁ"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"ୱାର୍କ ପ୍ରୋଫାଇଲରେ ଲାଗୁ କରନ୍ତୁ"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"ଆପଣଙ୍କ ୱାର୍କ ପ୍ରୋଫାଇଲରେ ଆପଣଙ୍କର ବ୍ୟକ୍ତିଗତ ପ୍ରୋଫାଇଲରୁ ବିଜ୍ଞପ୍ତି କୁଲଡାଉନ ସେଟିଂସ ଲାଗୁ କରନ୍ତୁ"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR ସାହାଯ୍ୟକାରୀ ସେବାଗୁଡ଼ିକ"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"VR ସାହାଯ୍ୟକାରୀ ସେବାଗୁଡ଼ିକ ଭାବରେ ଚଲାଯିବା ପାଇଁ, ଇନଷ୍ଟଲ ହୋଇଥିବା କୌଣସି ଆପ୍ସ ଅନୁରୋଧ କରିନାହିଁ।"</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"<xliff:g id="SERVICE">%1$s</xliff:g> ପାଇଁ VR ସେବା ଆକ୍ସେସକୁ ଅନୁମତି ଦେବେ?"</string>
@@ -3549,7 +3654,7 @@
     <string name="screen_pinning_title" msgid="6927227272780208966">"ଆପ ପିନିଂ"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"ବର୍ତ୍ତମାନର ଆପକୁ ଆପଣ ଅନପିନ୍ ନକରିବା ପର୍ଯ୍ୟନ୍ତ ଏହାକୁ ସ୍କ୍ରିନରେ ଦେଖାଇବା ପାଇଁ ଆପ୍ ପିନିଂ ଆପଣଙ୍କୁ ଅନୁମତି ଦିଏ। ଏହି ଫିଚର୍ ଏହି କ୍ଷେତ୍ରରେ ବ୍ୟବହୃତ ହୋଇପାରେ, ଉଦାହରଣ ସ୍ଵରୂପ, ଜଣେ ବିଶ୍ୱସ୍ତ ସାଙ୍ଗକୁ ଏକ ନିର୍ଦ୍ଦିଷ୍ଟ ଗେମ୍ ଖେଳିବାକୁ ଦେବା।"</string>
     <string name="screen_pinning_description" msgid="5822120806426139396">"କୌଣସି ଆପ ପିନ କରାଗଲେ, ପିନ ହୋଇଥିବା ଆପଟି ଅନ୍ୟ ଆପ୍ସକୁ ଖୋଲିପାରେ ଏବଂ ବ୍ୟକ୍ତିଗତ ଡାଟା ଆକ୍ସେସ ଯୋଗ୍ୟ ହୋଇପାରେ। \n\nଆପ ପିନିଂ ବ୍ୟବହାର କରିବାକୁ: 	\n{0,number,integer}। ଆପ ପିନିଂ ଚାଲୁ କରନ୍ତୁ 	\n{1,number,integer}। ଓଭରଭ୍ୟୁ ଖୋଲନ୍ତୁ 	\n{2,number,integer}। ସ୍କ୍ରିନର ଶୀର୍ଷରେ ଥିବା ଆପ ଆଇକନରେ ଟାପ କରି \'ପିନ କରନ୍ତୁ\'ରେ ଟାପ କରନ୍ତୁ"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"କୌଣସି ଆପ ପିନ କରାଗଲେ, ପିନ ହୋଇଥିବା ଆପଟି ଅନ୍ୟ ଆପ୍ସକୁ ଖୋଲିପାରେ ଏବଂ ବ୍ୟକ୍ତିଗତ ଡାଟା ଆକ୍ସେସ ଯୋଗ୍ୟ ହୋଇପାରେ। \n\nଯଦି ଆପଣ କୌଣସି ବ୍ୟକ୍ତିଙ୍କ ସହ ଆପଣଙ୍କ ଡିଭାଇସ୍ ସୁରକ୍ଷିତ ଭାବେ ସେୟାର୍ କରିବାକୁ ଚାହୁଁଛନ୍ତି, ତେବେ ଏହା ପରିବର୍ତ୍ତେ ଜଣେ ଅତିଥି ଉପଯୋଗକର୍ତ୍ତା ବ୍ୟବହାର କରି ଦେଖନ୍ତୁ। \n\nଆପ ପିନିଂ ବ୍ୟବହାର କରିବାକୁ: 	\n{0,number,integer}। ଆପ ପିନିଂ ଚାଲୁ କରନ୍ତୁ 	\n{1,number,integer}। ଓଭରଭ୍ୟୁ ଖୋଲନ୍ତୁ 	\n{2,number,integer}। ସ୍କ୍ରିନର ଶୀର୍ଷରେ ଥିବା ଆପ ଆଇକନରେ ଟାପ କରି \'ପିନ କରନ୍ତୁ\'ରେ ଟାପ କରନ୍ତୁ"</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"କୌଣସି ଆପ ପିନ କରାଗଲେ, ପିନ ହୋଇଥିବା ଆପଟି ଅନ୍ୟ ଆପ୍ସକୁ ଖୋଲିପାରେ ଏବଂ ବ୍ୟକ୍ତିଗତ ଡାଟା ଆକ୍ସେସ ଯୋଗ୍ୟ ହୋଇପାରେ। \n\nଯଦି ଆପଣ କୌଣସି ବ୍ୟକ୍ତିଙ୍କ ସହ ଆପଣଙ୍କ ଡିଭାଇସକୁ ସୁରକ୍ଷିତ ଭାବେ ସେୟାର କରିବାକୁ ଚାହୁଁଛନ୍ତି, ତେବେ ଏହା ପରିବର୍ତ୍ତେ ଜଣେ ଅତିଥି ୟୁଜରଙ୍କୁ ବ୍ୟବହାର କରି ଦେଖନ୍ତୁ। \n\nଆପ ପିନିଂ ବ୍ୟବହାର କରିବାକୁ: 	\n{0,number,integer}। ଆପ ପିନିଂ ଚାଲୁ କରନ୍ତୁ 	\n{1,number,integer}। ଓଭରଭ୍ୟୁ ଖୋଲନ୍ତୁ 	\n{2,number,integer}। ସ୍କ୍ରିନର ଶୀର୍ଷରେ ଥିବା ଆପ ଆଇକନରେ ଟାପ କରି \'ପିନ କରନ୍ତୁ\'ରେ ଟାପ କରନ୍ତୁ"</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"ଆପ୍ ପିନ୍ କରାଗଲେ: \n\n•		ବ୍ୟକ୍ତିଗତ ଡାଟାକୁ ଆକ୍ସେସ୍ କରାଯାଇପାରେ \n		(ଯେପରିକି ଯୋଗାଯୋଗଗୁଡ଼ିକ ଏବଂ ଇମେଲ୍ ବିଷୟବସ୍ତୁ) \n•		ପିନ୍ ହୋଇଥିବା ଆପ ଅନ୍ୟ ଆପଗୁଡ଼ିକୁ ଖୋଲିପାରେ \n\nକେବଳ ଆପଣ ବିଶ୍ୱାସ କରୁଥିବା ଲୋକମାନଙ୍କ ସହ ଆପ୍ ପିନିଂ ବ୍ୟବହାର କରନ୍ତୁ।"</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"ଅନ୍‌ପିନ୍‌ କରିବା ପୂର୍ବରୁ ଅନ୍‌ଲକ୍ ପାଟର୍ନ ପାଇଁ ପଚାରନ୍ତୁ"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"ଅନ୍‌ପିନ୍‌ କରିବା ପୂର୍ବରୁ PIN ମାଗନ୍ତୁ"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"ସମସ୍ତ ଫାଇଲକୁ ପରିଚାଳନା ପାଇଁ ଆକ୍ସେସ୍ ଦିଅନ୍ତୁ"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"ଏହି ଡିଭାଇସ୍ କିମ୍ବା ଯେ କୌଣସି ସଂଯୁକ୍ତ ଥିବା ଷ୍ଟୋରେଜ୍ ଭଲ୍ୟୁମରେ ଥିବା ସମସ୍ତ ଫାଇଲକୁ ପଢ଼ିବା, ପରିବର୍ତ୍ତନ କରିବା ଏବଂ ଡିଲିଟ୍ କରିବା ପାଇଁ ଏହି ଆପକୁ ଅନୁମତି ଦିଅନ୍ତୁ। ଯଦି ଅନୁମତି ଦିଆଯାଏ, ତେବେ ଆପ୍ ଆପଣଙ୍କୁ ସ୍ପଷ୍ଟ ନକରି ଫାଇଲଗୁଡ଼ିକୁ ଆକ୍ସେସ୍ କରିପାରେ।"</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"ସମସ୍ତ ଫାଇଲକୁ ଆକ୍ସେସ୍ କରିପାରିବ"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"ଭଏସ ସକ୍ରିୟକରଣ ଆପ୍ସ"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"ଭଏସ ସକ୍ରିୟକରଣକୁ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"ଭଏସ ସକ୍ରିୟକରଣ ଭଏସ କମାଣ୍ଡ ବ୍ୟବହାର କରି ଅନୁମୋଦିତ ଆପ୍ସ, ହେଣ୍ଡ୍ସ-ଫ୍ରିକୁ ଚାଲୁ କରେ। କେବଳ ଆପଣଙ୍କ ପାଇଁ ଡାଟା ପ୍ରାଇଭେଟ ରହୁ ବୋଲି ବିଲ୍ଟ-ଇନ ଆଡେପ୍ଟିଭ ସେନ୍ସିଂ ସୁନିଶ୍ଚିତ କରେ।\n\n"<a href="">"ସୁରକ୍ଷିତ ଆଡେପ୍ଟିଭ ସେନ୍ସିଂ ବିଷୟରେ ଅଧିକ"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"ଏହି ଆପରୁ ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"ଡିଭାଇସ ଲକ ହେଲେ ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନରେ ଦେଖାଯାଉଥିବା ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ଦେଖାଇବା ପାଇଁ ଏହି ଆପକୁ ଅନୁମତି ଦିଅନ୍ତୁ। ଆଲାରାମ, ଇନକମିଂ କଲ କିମ୍ବା ଅନ୍ୟ ଜରୁରୀ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ହାଇଲାଇଟ କରିବା ପାଇଁ ଆପ୍ସ ଏଗୁଡ଼ିକୁ ବ୍ୟବହାର କରିପାରେ।"</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"ପୃଷ୍ଠପଟରେ ଥିବା ସମୟରେ <xliff:g id="APP_LABEL">%1$s</xliff:g> ସାଧାରଣ ଅପେକ୍ଷା ଅଧିକ ବେଟେରୀ ବ୍ୟବହାର କରିଛି"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"ଫୋରଗ୍ରାଉଣ୍ଡରେ ଥିବା ସମୟରେ <xliff:g id="APP_LABEL">%1$s</xliff:g> ଅଧିକ ବେଟେରୀ ବ୍ୟବହାର କରିଛି"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"ଫୋରଗ୍ରାଉଣ୍ଡରେ ଥିବା ସମୟରେ <xliff:g id="APP_LABEL">%1$s</xliff:g> ସାଧାରଣ ଅପେକ୍ଷା ଅଧିକ ବେଟେରୀ ବ୍ୟବହାର କରିଛି"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"ଅଧିକ ବେଟେରୀ ବ୍ୟବହାର"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"ପୃଷ୍ଠପଟରେ ଅଧିକ ବେଟେରୀ ବ୍ୟବହାର"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"ଫୋରଗ୍ରାଉଣ୍ଡରେ ଅଧିକ ବେଟେରୀ ବ୍ୟବହାର"</string>
@@ -3957,7 +4067,7 @@
     <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>
+    <string name="page_tab_title_support" msgid="3235725053332345773">"ଟିପ୍ସ ଓ ସହାୟତା"</string>
     <string name="developer_smallest_width" msgid="632354817870920911">"ସବୁଠାରୁ ଛୋଟ ଓସାର"</string>
     <string name="premium_sms_none" msgid="8737045049886416739">"ଇନ୍‌ଷ୍ଟଲ୍‌ ହୋଇଥିବା କୌଣସି ଆପ୍‌ ପ୍ରିମିୟମ୍‌ SMS ଆକସେସ୍‌ ଅନୁରୋଧ କରିନାହାଁନ୍ତି"</string>
     <string name="premium_sms_warning" msgid="2192300872411073324">"ପ୍ରିମିୟମ୍‌ SMSରେ ଆପଣଙ୍କୁ ଖର୍ଚ୍ଚ କରିବାକୁ ପଡ଼ିପାରେ ଏବଂ ତାହା ଆପଣଙ୍କର କେରିଅର୍‌ ବିଲ୍‌ରେ ଯୋଡ଼ି ହୋଇଯିବ। ଯଦି ଆପଣ ଗୋଟିଏ ଆପ୍‌ ପାଇଁ ଅନୁମତି ଦେଇଛନ୍ତି, ତେବେ ସେହି ଆପ୍‌ ବ୍ୟବହାର କରି ଆପଣ ପ୍ରିମିୟମ୍‌ SMS ପଠାଇପାରିବେ।"</string>
@@ -3988,7 +4098,7 @@
     <string name="automatic_storage_manager_days_title" msgid="5077286114860539367">"ଫୋଟୋ ଓ ଭିଡିଓଗୁଡ଼ିକ କାଢ଼ିଦିଅନ୍ତୁ"</string>
     <string name="automatic_storage_manager_preference_title" msgid="3483357910142595444">"ଷ୍ଟୋରେଜ୍‌ ମ୍ୟାନେଜର୍"</string>
     <string name="automatic_storage_manager_primary_switch_title" msgid="9131959126462101994">"ଷ୍ଟୋରେଜ୍ ମ୍ୟାନେଜର୍ ବ୍ୟବହାର କରନ୍ତୁ"</string>
-    <string name="gesture_preference_title" msgid="8291899281322647187">"ଜେଶ୍ଚର୍"</string>
+    <string name="gesture_preference_title" msgid="8291899281322647187">"ଜେଶ୍ଚର"</string>
     <string name="double_tap_power_for_camera_title" msgid="7982364144330923683">"ଶୀଘ୍ର କ୍ୟାମେରା ଖୋଲନ୍ତୁ"</string>
     <string name="double_tap_power_for_camera_summary" msgid="1100926048598415509">"କେମେରା ଶୀଘ୍ର ଖୋଲିବା ପାଇଁ ପାୱାର ବଟନକୁ ଦୁଇଥର ଦବାନ୍ତୁ। ଯେ କୌଣସି ସ୍କ୍ରିନରୁ ଏହା କାମ କରେ।"</string>
     <string name="double_twist_for_camera_mode_title" msgid="472455236910935684">"ସେଲଫି ପାଇଁ କ୍ୟାମେରା ଫ୍ଲିପ୍ କରନ୍ତୁ"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"ସିଷ୍ଟମ୍ ନାଭିଗେସନ୍, 2 ବଟନ୍ ନାଭିଗେସନ୍, 3 ବଟନ୍ ନାଭିଗେସନ୍, ଜେଶ୍ଚର୍ ନାଭିଗେସନ୍, ସ୍ୱାଇପ୍"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"ଡିଜିଟାଲ ଆସିଷ୍ଟାଣ୍ଟ"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"ଆସିଷ୍ଟାଣ୍ଟ ଆରମ୍ଭ କରିବାକୁ ସ୍ୱାଇପ କରନ୍ତୁ"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"ଡିଜିଟାଲ ଆସିଷ୍ଟାଣ୍ଟ ଆପ ଆରମ୍ଭ କରିବା ପାଇଁ ନିମ୍ନର ଏକ କୋଣରୁ ଉପରକୁ ସ୍ୱାଇପ କରନ୍ତୁ।"</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"ଡିଜିଟାଲ Assistant ଆପ ଆରମ୍ଭ କରିବା ପାଇଁ ନିମ୍ନର ଏକ କୋଣରୁ ଉପରକୁ ସ୍ୱାଇପ କରନ୍ତୁ"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Assistant ଆରମ୍ଭ କରିବା ପାଇଁ ହୋମ ବଟନକୁ ଧରି ରଖନ୍ତୁ"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"ଡିଜିଟାଲ ଆସିଷ୍ଟାଣ୍ଟ ଆପ ଆରମ୍ଭ କରିବା ପାଇଁ ହୋମ ବଟନକୁ ଦବାଇ ଧରି ରଖନ୍ତୁ।"</string>
     <string name="low_label" msgid="6525629096999711220">"କମ୍"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"ଡାଟା, ପାସକୀ, ପାସୱାର୍ଡ"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"ସ୍ୱତଃ, ପୂରଣ, ଅଟୋଫିଲ, ଡାଟା, ପାସକୀ, ପାସୱାର୍ଡ"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;ଆପଣ ଏହି ଆପ୍‌କୁ ବିଶ୍ୱାସ କରୁଥିବା ନିଶ୍ଚିତ କରନ୍ତୁ&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; କ\'ଣ ଅଟୋଫିଲ୍‌ କରାଯାଇପାରିବ ନିର୍ଦ୍ଧାରଣ କରିବା ପାଇଁ, Google Autofill ଆପଣଙ୍କ ସ୍କ୍ରୀନ୍‌ରେ ଯାହା ଥାଏ, ତାହା ବ୍ୟବହାର କରେ।"</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"କଣ ଅଟୋଫିଲ କରାଯାଇପାରିବ ତାହା ସ୍ଥିର କରିବାକୁ &lt;b&gt;Use &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_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Use &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_picker_title" msgid="8191267620665129205">"ପାସୱାର୍ଡ, ପାସକୀ ଏବଂ ଡାଟା ସେବାଗୁଡ଼ିକ"</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>
@@ -4785,10 +4895,8 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"ଚଉଡ଼ା ଓ ଉଚ୍ଚତାର ଅନୁପାତ"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"ଆପଣଙ୍କ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ସହ ଫିଟ ହେବା ପାଇଁ ଯଦି ଏହି ଆପକୁ ଡିଜାଇନ କରାଯାଇନାହିଁ ତେବେ ଏହାକୁ ଭ୍ୟୁ କରିବା ପାଇଁ ଏକ ନୂଆ ଚଉଡ଼ା ଓ ଉଚ୍ଚତାର ଅନୁପାତ ବ୍ୟବହାର କରି ଦେଖନ୍ତୁ"</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"ଆପଣଙ୍କ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ସହ ଫିଟ ହେବା ପାଇଁ ଯଦି ଏହି ଆପକୁ ଡିଜାଇନ କରାଯାଇନାହିଁ ତେବେ ଏହାକୁ ଭ୍ୟୁ କରିବା ପାଇଁ ଏକ ନୂଆ ଚଉଡ଼ା ଓ ଉଚ୍ଚତାର ଅନୁପାତ ବ୍ୟବହାର କରି ଦେଖନ୍ତୁ। ନିର୍ଦ୍ଦିଷ୍ଟ ଚଉଡ଼ା ଓ ଉଚ୍ଚତାର ଅନୁପାତ ପାଇଁ କିଛି ଆପ୍ସ ଅପ୍ଟିମାଇଜ ହୋଇନପାରେ।"</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"ଆପଣଙ୍କ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ସହ ଫିଟ ହେବା ପାଇଁ ଯଦି କୌଣସି ଆପକୁ ଡିଜାଇନ କରାଯାଇନାହିଁ ତେବେ ଏହାକୁ ଭ୍ୟୁ କରିବା ପାଇଁ ଏକ ନୂଆ ଚଉଡ଼ା ଓ ଉଚ୍ଚତାର ଅନୁପାତ ବ୍ୟବହାର କରି ଦେଖନ୍ତୁ"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"ଆପଣଙ୍କ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ସହ ଫିଟ ହେବା ପାଇଁ ଯଦି କୌଣସି ଆପକୁ ଡିଜାଇନ କରାଯାଇନାହିଁ ତେବେ ଏହାକୁ ଭ୍ୟୁ କରିବା ପାଇଁ ଏକ ନୂଆ ଚଉଡ଼ା ଓ ଉଚ୍ଚତାର ଅନୁପାତ ବ୍ୟବହାର କରି ଦେଖନ୍ତୁ। ନିର୍ଦ୍ଦିଷ୍ଟ ଚଉଡ଼ା ଓ ଉଚ୍ଚତାର ଅନୁପାତ ପାଇଁ କିଛି ଆପ୍ସ ଅପ୍ଟିମାଇଜ ହୋଇନପାରେ।"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"ପ୍ରସ୍ତାବିତ ଆପ୍ସ"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"ବଦଳିଥିବା ଆପ୍ସ"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"ଆପ ଡିଫଲ୍ଟ"</string>
@@ -4858,4 +4966,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"ପ୍ରତାରଣାପୂର୍ଣ୍ଣ ଆପ୍ସ ପାଇଁ ସ୍କାନିଂ"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"ଫିସିଂ ପାଇଁ ଆପ କାର୍ଯ୍ୟକଳାପ ଯାଞ୍ଚ କରନ୍ତୁ"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"ପ୍ରତାରଣାପୂର୍ଣ୍ଣ ଆପ୍ସ ପାଇଁ ସ୍କାନିଂ ବ୍ୟବହାର କରନ୍ତୁ"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"ୱାର୍କ ପାଇଁ ପ୍ରତାରଣାପୂର୍ଣ୍ଣ ଆପ୍ସ ନିମନ୍ତେ ସ୍କାନିଂ ବ୍ୟବହାର କରନ୍ତୁ"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-pa/arrays.xml b/res/values-pa/arrays.xml
index 13330f5..ea99fe0 100644
--- a/res/values-pa/arrays.xml
+++ b/res/values-pa/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"1 ਮਿੰਟ ਬਾਅਦ"</item>
     <item msgid="1574040255478150028">"5 ਮਿੰਟਾਂ ਬਾਅਦ"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index b766af9..2ac9299 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -44,7 +44,7 @@
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"ਵੱਡਾ ਕਰੋ"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"ਹਮੇਸ਼ਾਂ"</string>
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"ਜਦੋਂ ਤੁਸੀਂ ਆਪਣੇ ਡੀਵਾਈਸ ਨੂੰ ਫੋਲਡ ਕਰਦੇ ਹੋ, ਤਾਂ ਅਗਲੀ ਡਿਸਪਲੇ ਚਾਲੂ ਹੋ ਜਾਂਦੀ ਹੈ"</string>
-    <string name="selective_stay_awake_title" msgid="7887645333447645168">"ਸਿਰਫ਼ ਗੇਮਾਂ, ਵੀਡੀਓ ਅਤੇ ਹੋਰ ਚੀਜ਼ਾਂ"</string>
+    <string name="selective_stay_awake_title" msgid="7887645333447645168">"ਸਿਰਫ਼ ਗੇਮਾਂ ਅਤੇ ਵੀਡੀਓ ਵਗੈਰਾ ਲਈ"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"ਸਕ੍ਰੀਨ ਨੂੰ ਬੰਦ ਹੋਣ ਤੋਂ ਰੋਕਣ ਵਾਲੀਆਂ ਐਪਾਂ ਦੇ ਲਈ ਅਗਲੀ ਡਿਸਪਲੇ ਚਾਲੂ ਹੋ ਜਾਂਦੀ ਹੈ"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"ਕਦੇ ਵੀ ਨਹੀਂ"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"ਜਦੋਂ ਤੁਸੀਂ ਆਪਣੇ ਡੀਵਾਈਸ ਨੂੰ ਫੋਲਡ ਕਰਦੇ ਹੋ, ਤਾਂ ਅਗਲੀ ਡਿਸਪਲੇ ਲਾਕ ਹੋ ਜਾਂਦੀ ਹੈ"</string>
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Bluetooth LE Audio ਨੂੰ ਬੰਦ ਕਰੋ"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"ਡੀਵਾਈਸ ਵੱਲੋਂ LE ਆਡੀਓ ਹਾਰਡਵੇਅਰ ਸਮਰੱਥਾਵਾਂ ਦਾ ਸਮਰਥਨ ਕਰਨ \'ਤੇ Bluetooth LE Audio ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਬੰਦ ਕਰਦਾ ਹੈ।"</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"ਡੀਵਾਈਸ ਵੇਰਵਿਆਂ ਵਿੱਚ LE ਆਡੀਓ ਟੌਗਲ ਦਿਖਾਓ"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Bluetooth LE Audio ਪ੍ਰਵਾਨਿਤ ਸੂਚੀ ਨੂੰ ਚਾਲੂ ਕਰੋ"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Bluetooth LE Audio ਪ੍ਰਵਾਨਿਤ ਸੂਚੀ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਚਾਲੂ ਕਰੋ।"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"ਬਲੂਟੁੱਥ LE ਆਡੀਓ ਪ੍ਰਵਾਨਿਤ ਸੂਚੀ ਨੂੰ ਬਾਈਪਾਸ ਕਰੋ"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"LE ਆਡੀਓ ਨੂੰ ਪੂਰਵ-ਨਿਰਧਾਰਿਤ ਤੌਰ \'ਤੇ ਵਰਤੋ, ਭਾਵੇਂ LE ਆਡੀਓ ਪੈਰੀਫੈਰਲ ਦੀ ਆਗਿਆ ਸੂਚੀ ਦੇ ਮਾਪਦੰਡਾਂ ਨੂੰ ਪੂਰਾ ਕਰਨ ਲਈ ਪ੍ਰਮਾਣਿਤ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੈ।"</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"ਮੀਡੀਆ ਡੀਵਾਈਸਾਂ"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"ਕਾਲ ਡੀਵਾਈਸ"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"ਹੋਰ ਡੀਵਾਈਸ"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"ਰੱਖਿਅਤ ਕੀਤੇ ਡੀਵਾਈਸ"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"ਖਾਤੇ ਨਾਲ ਸੰਬੰਧਿਤ"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"ਖਾਤੇ ਨਾਲ ਪਹਿਲਾਂ ਵੀ ਵਰਤਿਆ ਗਿਆ ਹੈ"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"ਜੋੜਾਬੱਧ ਕਰਨ ਲਈ ਬਲੂਟੁੱਥ ਚਾਲੂ ਹੋਵੇਗਾ"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"ਕਨੈਕਸ਼ਨ ਤਰਜੀਹਾਂ"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"ਪਹਿਲਾਂ ਤੋਂ ਕਨੈਕਟ"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"ਲਿਖਤ ਖੇਤਰਾਂ ਵਿੱਚ ਲਿਖੋ"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"ਸਟਾਈਲਸ ਨਾਲ ਦਬਾਏ ਗਏ ਸਾਰੇ ਬਟਨਾਂ ਨੂੰ ਅਣਡਿੱਠ ਕਰੋ"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"ਸਟਾਈਲਸ"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"ਆਡੀਓ ਸਾਂਝਾਕਰਨ"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"ਆਡੀਓ ਨੂੰ ਸਾਂਝਾ ਕਰੋ"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"ਕਾਲ ਅਤੇ ਅਲਾਰਮ"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"ਤਾਰੀਖ ਅਤੇ ਸਮਾਂ"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"ਪ੍ਰੌਕਸੀ"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"ਕਲੀਅਰ ਕਰੋ"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"ਨਜ਼ਦੀਕੀ ਡੀਵਾਈਸਾਂ ਦੀਆਂ ਇਜਾਜ਼ਤਾਂ ਵਾਲੀਆਂ ਐਪਾਂ ਕਨੈਕਟ ਕੀਤੇ ਡੀਵਾਈਸਾਂ ਦੀ ਸੰਬੰਧਿਤ ਸਥਿਤੀ ਨਿਰਧਾਰਿਤ ਕਰ ਸਕਦੀਆਂ ਹਨ।"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ਐਪਾਂ ਅਤੇ ਸੇਵਾਵਾਂ ਲਈ ਟਿਕਾਣਾ ਪਹੁੰਚ ਬੰਦ ਹੈ। ਤੁਹਾਡੇ ਵੱਲੋਂ ਕਿਸੇ ਐਮਰਜੈਂਸੀ ਨੰਬਰ \'ਤੇ ਕਾਲ ਕਰਨ ਜਾਂ ਲਿਖਤ ਸੁਨੇਹਾ ਭੇਜਣ \'ਤੇ ਹਾਲੇ ਵੀ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦੀ ਟਿਕਾਣਾ ਜਾਣਕਾਰੀ ਐਮਰਜੈਂਸੀ ਮਦਦਗਾਰਾਂ ਨੂੰ ਭੇਜੀ ਜਾ ਸਕਦੀ ਹੈ।"</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ਟਿਕਾਣਾ ਸੈਟਿੰਗਾਂ ਬਾਰੇ ਹੋਰ ਜਾਣੋ"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"ਖਾਤੇ"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"ਸੁਰੱਖਿਆ"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"ਇਨਕ੍ਰਿਪਸ਼ਨ ਅਤੇ ਕ੍ਰੀਡੈਂਸ਼ੀਅਲ"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ"</string>
     <string name="private_space_title" msgid="7078627930195569767">"ਨਿੱਜੀ ਸਪੇਸ"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"ਨਿੱਜੀ ਫੋਲਡਰ ਵਿੱਚ ਐਪਾਂ ਲੁਕਾਓ"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"ਸਕ੍ਰੀਨ ਲਾਕ ਦੀ ਵਰਤੋਂ ਕਰ ਕੇ ਅਣਲਾਕ ਕਰੋ"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"ਨਿੱਜੀ ਸਪੇਸ ਦਿਖਾਓ"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"ਲਾਕ ਹੋਣ \'ਤੇ ਲੁਕਾਓ"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"ਲਾਕ ਹੋਣ \'ਤੇ ਨਿੱਜੀ ਸਪੇਸ ਨੂੰ ਲੁਕਾਓ"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"ਹੋਰ ਲੋਕਾਂ ਤੋਂ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦੀ ਨਿੱਜੀ ਸਪੇਸ ਲੁਕਾਉਣ ਲਈ, ਇਸਨੂੰ ਤੁਹਾਡੀ ਐਪ ਸੂਚੀ ਵਿੱਚੋਂ ਲੁਕਾ ਸਕਦੇ ਹੋ"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"ਅਦਿੱਖ ਹੋਣ \'ਤੇ ਨਿੱਜੀ ਸਪੇਸ ਤੱਕ ਪਹੁੰਚ ਕਰੋ"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"ਖੋਜ ਪੱਟੀ ਵਿੱਚ \'ਨਿੱਜੀ ਸਪੇਸ\' ਨੂੰ ਖੋਜੋ"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"ਨਿੱਜੀ ਸਪੇਸ ਦੀ ਟਾਇਲ \'ਤੇ ਟੈਪ ਕਰੋ"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"ਆਪਣੀ ਨਿੱਜੀ ਸਪੇਸ ਨੂੰ ਅਣਲਾਕ ਕਰੋ"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"ਬੰਦ ਹੈ"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"ਚਾਲੂ ਹੈ"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"ਸਿਸਟਮ"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"ਨਿੱਜੀ ਸਪੇਸ ਬਣਾਓ"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"ਨਿੱਜੀ ਸਪੇਸ ਮਿਟਾਓ"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"ਨਿੱਜੀ ਸਪੇਸ ਨੂੰ ਸਫਲਤਾਪੂਰਵਕ ਬਣਾ ਲਿਆ ਗਿਆ ਹੈ"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"ਨਿੱਜੀ ਸਪੇਸ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"ਨਿੱਜੀ ਸਪੇਸ ਨੂੰ ਬਣਾਇਆ ਨਹੀਂ ਜਾ ਸਕਿਆ"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"ਨਿੱਜੀ ਸਪੇਸ ਨੂੰ ਸਫਲਤਾਪੂਰਵਕ ਮਿਟਾ ਦਿੱਤਾ ਗਿਆ ਹੈ"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"ਨਿੱਜੀ ਸਪੇਸ ਨੂੰ ਮਿਟਾਇਆ ਨਹੀਂ ਜਾ ਸਕਿਆ"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"ਸਕ੍ਰੀਨ ਲਾਕ ਸੈੱਟ ਕਰੋ"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"ਨਿੱਜੀ ਸਪੇਸ ਵਰਤਣ ਲਈ, ਇਸ ਡੀਵਾਈਸ \'ਤੇ ਸਕ੍ਰੀਨ ਲਾਕ ਸੈੱਟ ਕਰੋ।"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"ਸਕ੍ਰੀਨ ਲਾਕ ਸੈੱਟ ਕਰੋ"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"ਰੱਦ ਕਰੋ"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"ਰੱਦ ਕਰੋ"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"ਸੈੱਟਅੱਪ ਕਰੋ"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"ਨਿੱਜੀ ਸਪੇਸ ਦਾ ਸੈੱਟਅੱਪ ਕਰੋ"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"ਨਿੱਜੀ ਐਪਾਂ ਨੂੰ ਇੱਕ ਸੁਰੱਖਿਅਤ ਥਾਂ ਵਿੱਚ ਲੁਕਾਓ ਜਿਸ ਤੱਕ ਸਿਰਫ਼ ਤੁਸੀਂ ਹੀ ਪਹੁੰਚ ਕਰ ਸਕਦੇ ਹੋ"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"ਇਸਦੇ ਕੰਮ ਕਰਨ ਦਾ ਤਰੀਕਾ"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"ਤੁਸੀਂ ਆਪਣੀ ਐਪਾਂ ਦੀ ਸੂਚੀ ਦੇ ਹੇਠਾਂ ਦਿੱਤੀ ਨਿੱਜੀ ਸਪੇਸ ਤੱਕ ਪਹੁੰਚ ਕਰ ਸਕਦੇ ਹੋ"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"ਨਿੱਜੀ ਸਪੇਸ ਵਿੱਚ ਮੌਜੂਦ ਐਪਾਂ ਨੂੰ ਲਾਕ ਨਾਲ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"ਨਿੱਜੀ ਸਪੇਸ ਦੇ ਲਾਕ ਹੋਣ \'ਤੇ, ਨਿੱਜੀ ਸਪੇਸ ਵਿੱਚ ਮੌਜੂਦ ਐਪਾਂ ਦੀਆਂ ਸੂਚਨਾਵਾਂ ਲੁਕੀਆਂ ਹੁੰਦੀਆਂ ਹਨ"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"ਨਿੱਜੀ ਸਪੇਸ ਦੇ ਲਾਕ ਹੋਣ \'ਤੇ, ਨਿੱਜੀ ਸਪੇਸ ਐਪਾਂ ਇਜਾਜ਼ਤ ਪ੍ਰਬੰਧਕ, ਪਰਦੇਦਾਰੀ ਸੰਬੰਧੀ ਡੈਸ਼ਬੋਰਡ ਅਤੇ ਹੋਰ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਦਿਖਾਈ ਨਹੀਂ ਦੇਣਗੀਆਂ"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"ਨਿੱਜੀ ਸਪੇਸ ਦਾ ਸੈੱਟਅੱਪ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"ਨਿੱਜੀ ਸਪੇਸ ਨੂੰ ਲਾਕ ਨਾਲ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"ਨਿੱਜੀ ਸਪੇਸ ਦੇ ਲਾਕ ਹੋਣ \'ਤੇ, ਨਿੱਜੀ ਸਪੇਸ ਐਪਾਂ ਦੀ ਵਰਤੋਂ ਸੰਬੰਧੀ ਜਾਣਕਾਰੀ ਲੁਕੀ ਹੁੰਦੀ ਹੈ"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"ਆਪਣੀ ਐਪ ਸੂਚੀ ਤੋਂ ਨਿੱਜੀ ਸਪੇਸ ਤੱਕ ਪਹੁੰਚ ਕਰੋ"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"ਨਿੱਜੀ ਸਪੇਸ ਦਾ ਸੈੱਟਅੱਪ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"ਹੁਣੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜਾਂ ਬਾਅਦ ਵਿੱਚ ਵਾਪਸ ਆਓ"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"ਕੀ ਅਣਲਾਕ ਕਰਨ ਲਈ ਸਕ੍ਰੀਨ ਲਾਕ ਵਰਤਣਾ ਹੈ?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"ਤੁਸੀਂ ਨਿੱਜੀ ਸਪੇਸ ਨੂੰ ਉਸੇ ਤਰੀਕੇ ਨਾਲ ਅਣਲਾਕ ਕਰ ਸਕਦੇ ਹੋ ਜਿਸ ਤਰ੍ਹਾਂ ਤੁਸੀਂ ਆਪਣੇ ਡੀਵਾਈਸ ਨੂੰ ਅਣਲਾਕ ਕਰਦੇ ਹੋ, ਜਾਂ ਕੋਈ ਵੱਖਰਾ ਲਾਕ ਚੁਣੋ"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"ਸਕ੍ਰੀਨ ਲਾਕ ਵਰਤੋ"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"ਨਵਾਂ ਲਾਕ ਚੁਣੋ"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"ਸਭ ਹੋ ਗਿਆ!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"ਨਿੱਜੀ ਸਪੇਸ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਲਈ, ਆਪਣੀ ਹੋਮ ਸਕ੍ਰੀਨ ਦੇ ਹੇਠਾਂ ਤੋਂ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰੋ, ਫਿਰ ਹੇਠਾਂ ਵੱਲ ਸਕ੍ਰੋਲ ਕਰੋ"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"ਹੋ ਗਿਆ"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"ਨਿੱਜੀ ਸਪੇਸ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਲਈ ਹੇਠਾਂ ਵੱਲ ਸਕ੍ਰੋਲ ਕਰੋ"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"ਨਿੱਜੀ ਸਪੇਸ ਦਾ ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ ਸਾਈਨ-ਇਨ ਕਰੋ"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"ਤੁਸੀਂ <xliff:g id="COUNT">%d</xliff:g> ਤੱਕ ਫਿੰਗਰਪ੍ਰਿੰਟ ਸ਼ਾਮਲ ਕਰ ਸਕਦੇ ਹੋ"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"ਤੁਸੀਂ ਫਿੰਗਰਪ੍ਰਿੰਟਾਂ ਦੀ ਅਧਿਕਤਮ ਸੰਖਿਆ ਨੂੰ ਸ਼ਾਮਲ ਕੀਤਾ ਹੋਇਆ ਹੈ"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"ਹੋਰ ਫਿੰਗਰਪ੍ਰਿੰਟਾਂ ਨੂੰ ਸ਼ਾਮਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"ਕਨੈਕਟ ਕਰੋ"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"ਡਿਸਕਨੈਕਟ ਕਰੋ"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"ਜੋੜਾਬੱਧ ਕਰਕੇ ਕਨੈਕਟ ਕਰੋ"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"ਬਲੂਟੁੱਥ ਚਾਲੂ ਹੋਣ \'ਤੇ, ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਨਜ਼ਦੀਕੀ ਬਲੂਟੁੱਥ ਡੀਵਾਈਸਾਂ ਨਾਲ ਸੰਚਾਰ ਕਰ ਸਕਦਾ ਹੈ।"</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"ਬਲੂਟੁੱਥ ਚਾਲੂ ਕਰਨ \'ਤੇ, ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਦੂਜੇ ਨਜ਼ਦੀਕੀ ਬਲੂਟੁੱਥ ਡੀਵਾਈਸਾਂ ਨਾਲ ਸੰਚਾਰ ਕਰ ਸਕਦਾ ਹੈ"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"ਬਲੂਟੁੱਥ ਚਾਲੂ ਹੋਣ \'ਤੇ, ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਹੋਰ ਨਜ਼ਦੀਕੀ ਬਲੂਟੁੱਥ ਡੀਵਾਈਸਾਂ ਨਾਲ ਸੰਚਾਰ ਕਰ ਸਕਦਾ ਹੈ।\n\nਡੀਵਾਈਸ ਦੇ ਅਨੁਭਵ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ, ਐਪਾਂ ਅਤੇ ਸੇਵਾਵਾਂ ਕਿਸੇ ਵੇਲੇ ਵੀ ਨਜ਼ਦੀਕੀ ਡੀਵਾਈਸਾਂ ਲਈ ਸਕੈਨ ਕਰ ਸਕਦੀਆਂ ਹਨ, ਭਾਵੇਂ ਬਲੂਟੁੱਥ ਬੰਦ ਹੀ ਕਿਉਂ ਨਾ ਹੋਵੇ। ਇਸ ਦੀ ਵਰਤੋਂ ਟਿਕਾਣਾ-ਆਧਾਰਿਤ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਅਤੇ ਸੇਵਾਵਾਂ ਵਰਗੀਆਂ ਚੀਜ਼ਾਂ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ। ਤੁਸੀਂ ਇਸ ਨੂੰ ਬਲੂਟੁੱਥ ਸਕੈਨਿੰਗ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਬਦਲ ਸਕਦੇ ਹੋ।"</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"ਬਦਲੋ"</string>
     <string name="device_details_title" msgid="1155622417516195481">"ਡੀਵਾਈਸ ਦੇ ਵੇਰਵੇ"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"ਡੀਬੱਗਯੋਗ ਐਪਾਂ ਲਈ ART ਨੂੰ ਬਾਈਟਕੋਡ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਦਿਓ"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"ਰਿਫ੍ਰੈਸ਼ ਦਰ ਦਿਖਾਓ"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"ਹਾਲੀਆ ਡਿਸਪਲੇ ਦੀ ਰਿਫ੍ਰੈਸ਼ ਦਰ ਦਿਖਾਓ"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"HDR/SDR ਅਨੁਪਾਤ ਦਿਖਾਓ"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"ਮੌਜੂਦਾ HDR/SDR ਅਨੁਪਾਤ ਦਿਖਾਓ"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"NFC ਲਈ ਡੀਵਾਈਸ ਦਾ ਅਣਲਾਕ ਹੋਣਾ ਲੋੜੀਂਦਾ ਹੈ"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android ਬੀਮ"</string>
@@ -1062,7 +1137,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"ਫੋਲਡ ਕਰਨ \'ਤੇ ਵੀ ਐਪਾਂ ਨੂੰ ਵਰਤਣਾ ਜਾਰੀ ਰੱਖੋ"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"ਸਮੂਥ ਡਿਸਪਲੇ"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਕੁਝ ਸਮੱਗਰੀਆਂ ਲਈ ਰਿਫ੍ਰੈਸ਼ ਦਰ ਨੂੰ 60 ਤੋਂ ਵਧਾ ਕੇ <xliff:g id="ID_1">%1$s</xliff:g> Hz ਕਰ ਦਿੰਦਾ ਹੈ। ਬੈਟਰੀ ਵਰਤੋਂ ਵੱਧ ਜਾਂਦੀ ਹੈ।"</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਕੁਝ ਸਮੱਗਰੀ ਲਈ ਰਿਫ੍ਰੈਸ਼ ਦਰ ਨੂੰ ਵਧਾ ਕੇ <xliff:g id="ID_1">%1$d</xliff:g> Hz ਤੱਕ ਕਰ ਦਿੰਦੀ ਹੈ। ਬੈਟਰੀ ਵਰਤੋਂ ਵੱਧ ਜਾਂਦੀ ਹੈ।"</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"ਉੱਚ ਰਿਫ੍ਰੈਸ਼ ਦਰ ਸੈੱਟ ਕਰੋ"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"ਬਿਹਤਰ ਸਪਰਸ਼ ਪ੍ਰਤੀਕਿਰਿਆ ਅਤੇ ਐਨੀਮੇਸ਼ਨ ਕੁਆਲਿਟੀ ਲਈ ਉੱਚਤਮ ਰਿਫ੍ਰੈਸ਼ ਦਰ। ਬੈਟਰੀ ਵਰਤੋਂ ਵੱਧ ਜਾਂਦੀ ਹੈ।"</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"ਸਕ੍ਰੀਨ ਦਾ ਚੌਕੰਨਾਪਣ"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"ਭਾਈਚਾਰਕ ਸੈਟਿੰਗਾਂ"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"ਪਹੁੰਚ ਬਿੰਦੂ ਦਾ ਸੰਪਾਦਨ ਕਰੋ"</string>
+    <string name="apn_add" msgid="9069613192201630934">"ਪਹੁੰਚ ਬਿੰਦੂ ਨੂੰ ਸ਼ਾਮਲ ਕਰੋ"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"ਸੈੱਟ ਨਹੀਂ ਹੈ"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"ਸੈੱਟ ਨਹੀਂ ਹੈ"</string>
     <string name="apn_name" msgid="6677695784108157953">"ਨਾਮ"</string>
@@ -1320,6 +1396,8 @@
     <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="network_type" msgid="748590707422733595">"ਨੈੱਟਵਰਕ ਦੀ ਕਿਸਮ"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"ਨਿਰਧਾਰਿਤ ਨਹੀਂ"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO ਦੀ ਕਿਸਮ"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO ਮੁੱਲ"</string>
     <string name="menu_delete" msgid="9199740901584348273">"APN ਮਿਟਾਓ"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"ਖੋਲ੍ਹਣ ਲਈ ਪਹੁੰਚਯੋਗਤਾ ਬਟਨ ਵਰਤੋ"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"ਖੋਲ੍ਹਣ ਲਈ ਅਵਾਜ਼ ਕੁੰਜੀਆਂ ਦਬਾਈ ਰੱਖੋ"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"ਖੋਲ੍ਹਣ ਲਈ ਸਕ੍ਰੀਨ \'ਤੇ ਟ੍ਰਿਪਲ ਟੈਪ ਕਰੋ"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"ਖੋਲ੍ਹਣ ਲਈ ਦੋ-ਉਂਗਲਾਂ ਨਾਲ ਟ੍ਰਿਪਲ-ਟੈਪ ਕਰੋ"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"ਖੋਲ੍ਹਣ ਲਈ ਸੰਕੇਤ ਵਰਤੋ"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"ਪਹੁੰਚਯੋਗਤਾ ਸੰਬੰਧੀ ਇਸ਼ਾਰਾ ਵਰਤੋ"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਵਰਤਣ ਲਈ, ਆਪਣੀ ਸਕ੍ਰੀਨ ਦੇ ਹੇਠਾਂ ਪਹੁੰਚਯੋਗਤਾ ਬਟਨ <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> \'ਤੇ ਟੈਪ ਕਰੋ।\n\nਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਵਿਚਾਲੇ ਅਦਲਾ-ਬਦਲੀ ਕਰਨ ਲਈ, ਪਹੁੰਚਯੋਗਤਾ ਬਟਨ ਨੂੰ ਦਬਾ ਕੇ ਰੱਖੋ।"</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਵਰਤਣ ਲਈ, ਆਪਣੀ ਸਕ੍ਰੀਨ \'ਤੇ ਦਿੱਤੇ ਪਹੁੰਚਯੋਗਤਾ ਬਟਨ \'ਤੇ ਟੈਪ ਕਰੋ।"</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਵਰਤਣ ਲਈ, ਦੋਵੇਂ ਅਵਾਜ਼ ਕੁੰਜੀਆਂ ਨੂੰ ਦਬਾਈ ਰੱਖੋ।"</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"ਵੱਡਦਰਸ਼ੀਕਰਨ ਨੂੰ ਸ਼ੁਰੂ ਅਤੇ ਬੰਦ ਕਰਨ ਲਈ, ਸਕ੍ਰੀਨ \'ਤੇ ਕਿਤੇ ਵੀ ਟ੍ਰਿਪਲ-ਟੈਪ ਕਰੋ।"</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"ਵੱਡਦਰਸ਼ੀਕਰਨ ਨੂੰ ਸ਼ੁਰੂ ਅਤੇ ਬੰਦ ਕਰਨ ਲਈ, ਆਪਣੀ ਸਕ੍ਰੀਨ \'ਤੇ ਦੋ ਉਂਗਲਾਂ ਨਾਲ ਕਿਤੇ ਵੀ ਟ੍ਰਿਪਲ-ਟੈਪ ਕਰੋ।"</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਵਰਤਣ ਲਈ, 2 ਉਂਗਲਾਂ ਨਾਲ ਸਕ੍ਰੀਨ ਦੇ ਹੇਠਾਂ ਤੋਂ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰੋ।\n\nਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਵਿਚਾਲੇ ਅਦਲਾ-ਬਦਲੀ ਕਰਨ ਲਈ, 2 ਉਂਗਲਾਂ ਨਾਲ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰਕੇ ਦਬਾਈ ਰੱਖੋ।"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਵਰਤਣ ਲਈ, 3 ਉਂਗਲਾਂ ਨਾਲ ਸਕ੍ਰੀਨ ਦੇ ਹੇਠਾਂ ਤੋਂ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰੋ।\n\nਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਵਿਚਾਲੇ ਅਦਲਾ-ਬਦਲੀ ਕਰਨ ਲਈ, 3 ਉਂਗਲਾਂ ਨਾਲ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰਕੇ ਦਬਾਈ ਰੱਖੋ।"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"ਕਿਸੇ ਪਹੁੰਚਯੋਗਤਾ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਵਰਤਣ ਲਈ, 2 ਉਂਗਲਾਂ ਨਾਲ ਸਕ੍ਰੀਨ ਦੇ ਹੇਠਾਂ ਤੋਂ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰੋ।\n\nਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਵਿਚਾਲੇ ਅਦਲਾ-ਬਦਲੀ ਕਰਨ ਲਈ, 2 ਉਂਗਲਾਂ ਨਾਲ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰਕੇ ਦਬਾਈ ਰੱਖੋ।"</string>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"ਅਵਾਜ਼ ਕੁੰਜੀਆਂ ਨੂੰ ਦਬਾ ਕੇ ਰੱਖੋ"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"ਅਵਾਜ਼ ਕੁੰਜੀਆਂ ਨੂੰ ਦਬਾ ਕੇ ਰੱਖੋ"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"ਦੋਵੇਂ ਅਵਾਜ਼ ਕੁੰਜੀਆਂ ਨੂੰ ਦਬਾਈ ਰੱਖੋ"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"ਦੋ-ਉਂਗਲਾਂ ਨਾਲ ਟ੍ਰਿਪਲ-ਟੈਪ ਕਰੋ"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"ਦੋ-ਉਂਗਲਾਂ ਨਾਲ ਟ੍ਰਿਪਲ-ਟੈਪ ਕਰੋ"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"ਤੇਜ਼ੀ ਨਾਲ ਸਕ੍ਰੀਨ \'ਤੇ ਦੋ ਉਂਗਲਾਂ ਨਾਲ {0,number,integer} ਵਾਰ ਟੈਪ ਕਰੋ"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"ਸਕ੍ਰੀਨ \'ਤੇ ਟ੍ਰਿਪਲ ਟੈਪ ਕਰੋ"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"ਸਕ੍ਰੀਨ \'ਤੇ ਟ੍ਰਿਪਲ ਟੈਪ ਕਰੋ"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"ਸਕ੍ਰੀਨ \'ਤੇ ਤੇਜ਼ੀ ਨਾਲ {0,number,integer} ਵਾਰ ਟੈਪ ਕਰੋ। ਇਹ ਸ਼ਾਰਟਕੱਟ ਸ਼ਾਇਦ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਨੂੰ ਹੌਲੀ ਕਰ ਦੇਵੇ"</string>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"ਥਰਥਰਾਹਟ ਅਤੇ ਹੈਪਟਿਕਸ ਵਰਤੋ"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"ਅਲਾਰਮ ਥਰਥਰਾਹਟ"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"ਮੀਡੀਆ ਥਰਥਰਾਹਟ"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"ਕੀ-ਬੋਰਡ ਥਰਥਰਾਹਟ"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"ਘੰਟੀ ਦੀ ਥਰਥਰਾਹਟ"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"ਸੂਚਨਾ ਦੀ ਥਰਥਰਾਹਟ"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"ਸਪਰਸ਼ ਸੰਬੰਧੀ ਪ੍ਰਤੀਕਰਮ"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> ਬਾਕੀ"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"ਚਾਰਜ ਕਰਨ ਲਈ <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g>"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"ਸਕ੍ਰੀਨ ਸਮਾਂ"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"ਬੈਕਗ੍ਰਾਊਂਡ ਸਮਾਂ"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"ਬੈਟਰੀ ਘੱਟ ਹੈ"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"ਐਪ ਨੂੰ ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਚੱਲਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿਓ"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"ਕੀ ਬੈਕਗ੍ਰਾਊਂਡ ਸਰਗਰਮੀ ਸੀਮਿਤ ਕਰਨੀ ਹੈ?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"ਜੇਕਰ ਤੁਸੀਂ ਕਿਸੇ ਐਪ ਦੀ ਬੈਕਗ੍ਰਾਊਂਡ ਸਰਗਰਮੀ ਨੂੰ ਸੀਮਿਤ ਕਰਦੇ ਹੋ, ਤਾਂ ਉਹ ਅਜੀਬ ਢੰਗ ਨਾਲ ਵਰਤਾਅ ਕਰ ਸਕਦੀ ਹੈ"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"ਇਹ ਐਪ ਬੈਟਰੀ ਨੂੰ ਸੁਯੋਗ ਕਰੋ \'ਤੇ ਸੈੱਟ ਨਾ ਕੀਤੀ ਹੋਣ ਕਰਕੇ, ਤੁਸੀਂ ਇਸ \'ਤੇ ਪਾਬੰਧੀ ਨਹੀਂ ਲਗਾ ਸਕਦੇ।\n\nਐਪ \'ਤੇ ਪਾਬੰਧੀ ਲਗਾਉਣ ਲਈ, ਪਹਿਲਾਂ ਬੈਟਰੀ ਸੁਯੋਗਕਰਨ ਨੂੰ ਚਾਲੂ ਕਰੋ।"</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"ਬੈਟਰੀ ਵਰਤੋਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਵਰਤੋਂ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿਓ"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"ਅਸਲ-ਸਮੇਂ ਦੇ ਅੱਪਡੇਟਾਂ ਨੂੰ ਚਾਲੂ ਕਰੋ, ਬੈਟਰੀ ਬਚਾਉਣ ਲਈ ਬੰਦ ਕਰੋ"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"ਅਣ-ਪ੍ਰਤਿਬੰਧਿਤ"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"ਸੁਯੋਗ ਬਣਾਈ ਗਈ"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"ਪ੍ਰਤਿਬੰਧਿਤ"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"ਪਿਛਲੀ ਵਾਰ ਪੂਰਾ ਚਾਰਜ ਕਰਨ ਤੋਂ ਬਾਅਦ"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"ਸਿਸਟਮ ਐਪਾਂ"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"ਅਣਸਥਾਪਤ ਕੀਤੀਆਂ ਐਪਾਂ"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"ਹੋਰ"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"ਅਨੁਮਾਨਿਤ ਬਾਕੀ ਸਮਾਂ"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"ਪੂਰਾ ਚਾਰਜ ਹੋਣ ਲਈ"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"ਕੁੱਲ: ਇੱਕ ਮਿੰਟ ਤੋਂ ਵੀ ਘੱਟ ਸਮਾਂ"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"ਬੈਕਗ੍ਰਾਊਂਡ: ਇੱਕ ਮਿੰਟ ਤੋਂ ਵੀ ਘੱਟ ਸਮਾਂ"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"ਸਕ੍ਰੀਨ ਸਮਾਂ: ਇੱਕ ਮਿੰਟ ਤੋਂ ਵੀ ਘੱਟ"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"ਇੱਕ ਮਿੰਟ ਤੋਂ ਘੱਟ"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"ਕੁੱਲ: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"ਬੈਕਗ੍ਰਾਊਂਡ: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"ਸਕ੍ਰੀਨ ਸਮਾਂ: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"ਮੋਬਾਈਲ ਡਾਟਾ ਅਤੇ ਵਾਈ-ਫਾਈ"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"ਨਿੱਜੀ ਡਾਟਾ ਸਵੈ-ਸਿੰਕ ਕਰਨਾ"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"ਕੰਮ ਸੰਬੰਧੀ ਡਾਟਾ ਸਵੈ-ਸਿੰਕ ਕਰੋ"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"ਨਿੱਜੀ ਡਾਟੇ ਨੂੰ ਸਵੈ-ਸਿੰਕ ਕਰੋ"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"ਸਾਈਕਲ ਬਦਲੋ..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"ਡਾਟਾ ਵਰਤੋਂ ਸਾਈਕਲ ਰੀਸੈੱਟ ਕਰਨ ਲਈ ਮਹੀਨੇ ਦਾ ਦਿਨ:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"ਇਸ ਮਿਆਦ ਦੇ ਦੌਰਾਨ ਕਿਸੇ ਐਪਸ ਨੇ  ਡਾਟਾ  ਨਹੀਂ ਵਰਤਿਆ।"</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"ਲਿਖਤ ਦਾ ਆਕਾਰ, ਵੱਡਾ ਪ੍ਰਿੰਟ, ਵੱਡਾ ਫ਼ੌਂਟ, ਵੱਡੀ ਲਿਖਤ, ਘੱਟ ਨਜ਼ਰ, ਲਿਖਤ ਵੱਡੀ ਕਰੋ, ਫ਼ੌਂਟ ਵੱਡਾ ਕਰੋ, ਫ਼ੌਂਟ ਵੱਡਾ ਕਰਨਾ"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"ਹਮੇਸ਼ਾਂ ਚਾਲੂ ਐਂਬੀਅੰਟ ਡਿਸਪਲੇ, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"NFC, ਟੈਗ, ਰੀਡਰ"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"ਕੀ-ਬੋਰਡ, ਹੈਪਟਿਕਸ, ਥਰਥਰਾਹਟ,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"ਅਵਾਜ਼, ਥਰਥਰਾਹਟ, ਪਰੇਸ਼ਾਨ ਨਾ ਕਰੋ"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"ਮੀਡੀਆ ਦੀ ਅਵਾਜ਼"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"ਅਵਾਜ਼ ਕਾਸਟ ਕਰੋ"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"ਸਾਰੀ ਸੂਚਨਾ ਸਮੱਗਰੀ ਦਿਖਾਓ"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"ਸਿਰਫ਼ ਅਣਲਾਕ ਹੋਣ \'ਤੇ ਹੀ ਸੰਵੇਦਨਸ਼ੀਲ ਸਮੱਗਰੀ ਦਿਖਾਓ"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"ਬਿਲਕੁਲ ਵੀ ਸੂਚਨਾਵਾਂ ਨਾ ਦਿਖਾਓ"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"ਤੁਹਾਨੂੰ ਲਾਕ ਸਕ੍ਰੀਨ ਦੀ ਕਿਹੜੀ ਦਿੱਖ ਪਸੰਦ ਹੈ?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"ਲਾਕ ਸਕ੍ਰੀਨ"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"ਕੰਮ ਸੰਬੰਧੀ ਸਾਰੀ ਸੂਚਨਾ ਸਮੱਗਰੀ ਨੂੰ ਦਿਖਾਓ"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"ਸੰਵੇਦਨਸ਼ੀਲ ਕਾਰਜ ਸਮੱਗਰੀ ਲੁਕਾਓ"</string>
@@ -3354,6 +3448,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"ਇਹ ਐਪ ਵਿਸਤ੍ਰਿਤ ਸੈਟਿੰਗਾਂ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੀ"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"ਹੋਰ ਸੈਟਿੰਗਾਂ"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"ਇਸ ਐਪ ਵਿੱਚ ਹੋਰ ਸੈਟਿੰਗਾਂ ਉਪਲਬਧ ਹਨ"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"ਸੂਚਨਾ ਦੀ ਕੂਲਡਾਊਨ ਸੈਟਿੰਗ"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"ਸਾਰੀਆਂ ਸੂਚਨਾਵਾਂ \'ਤੇ ਕੂਲਡਾਊਨ ਮੋਡ ਲਾਗੂ ਕਰੋ"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"ਇੱਕੋ ਐਪ ਤੋਂ ਲਗਾਤਾਰ ਕਈ ਸੂਚਨਾਵਾਂ ਮਿਲਣ \'ਤੇ ਸੂਚਨਾ ਦੀ ਸੰਖਿਆ ਨੂੰ ਹੌਲੀ-ਹੌਲੀ ਘੱਟ ਕਰੋ"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"ਗੱਲਾਂਬਾਤਾਂ \'ਤੇ ਕੂਲਡਾਊਨ ਮੋਡ ਲਾਗੂ ਕਰੋ"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"ਇੱਕੋ ਚੈਟ ਤੋਂ ਬਹੁਤ ਘੱਟ ਸਮੇਂ ਵਿੱਚ ਕਈ ਸੁਨੇਹੇ ਮਿਲਣ \'ਤੇ ਸੂਚਨਾ ਦੀ ਸੰਖਿਆ ਨੂੰ ਹੌਲੀ-ਹੌਲੀ ਘੱਟ ਕਰੋ"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"ਸੂਚਨਾ \'ਤੇ ਕੂਲਡਾਊਨ ਮੋਡ ਦੀ ਵਰਤੋਂ ਨਾ ਕਰੋ"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"ਸੂਚਨਾ ਦੀ ਸੰਖਿਆ ਨੂੰ ਕਦੇ ਵੀ ਘੱਟ ਨਾ ਕਰੋ, ਭਾਵੇ ਇੱਕੋ ਐਪ ਤੋਂ ਲਗਾਤਾਰ ਮਿਲਣ ਵਾਲੀਆਂ ਸੂਚਨਾਵਾਂ ਦੀ ਸੰਖਿਆ ਕੁਝ ਵੀ ਹੋਵੇ"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"ਅਣਲਾਕ ਹੋਣ \'ਤੇ ਥਰਥਰਾਹਟ ਕਰੋ"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"ਸਿਰਫ਼ ਸਕ੍ਰੀਨ ਦੇ ਅਣਲਾਕ ਹੋਣ \'ਤੇ ਥਰਥਰਾਹਟ ਕਰੋ"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"ਕਾਰਜ ਪ੍ਰੋਫਾਈਲਾਂ ਦੇ ਲਾਗੂ ਕਰੋ"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"ਆਪਣੇ ਨਿੱਜੀ ਪ੍ਰੋਫਾਈਲ ਤੋਂ ਆਪਣੇ ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ \'ਤੇ ਸੂਚਨਾ ਕੂਲਡਾਊਨ ਸੈਟਿੰਗਾਂ ਨੂੰ ਲਾਗੂ ਕਰੋ"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR ਮਦਦਗਾਰ ਸੇਵਾਵਾਂ"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"ਕਿਸੇ ਵੀ ਸਥਾਪਤ ਐਪ ਵੱਲੋਂ VR ਮਦਦਗਾਰ ਸੇਵਾਵਾਂ ਵਜੋਂ ਚਲਾਉਣ ਦੀ ਬੇਨਤੀ ਨਹੀਂ ਕੀਤੀ ਗਈ।"</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"ਕੀ <xliff:g id="SERVICE">%1$s</xliff:g> ਲਈ VR ਸੇਵਾ ਪਹੁੰਚ ਨੂੰ ਆਗਿਆ ਦੇਣੀ ਹੈ?"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"ਸਾਰੀਆਂ ਫ਼ਾਈਲਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਦਿਓ"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"ਇਸ ਐਪ ਨੂੰ ਇਸ ਡੀਵਾਈਸ ਜਾਂ ਇਸ ਨਾਲ ਕਨੈਕਟ ਕਿਸੇ ਵੀ ਸਟੋਰੇਜ ਭਾਗ ਦੀਆਂ ਸਾਰੀਆਂ ਫ਼ਾਈਲਾਂ ਨੂੰ ਪੜ੍ਹਨ, ਸੋਧਣ ਅਤੇ ਮਿਟਾਉਣ ਦੀ ਆਗਿਆ ਦਿਓ। ਜੇ ਇਜਾਜ਼ਤ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਐਪ ਤੁਹਾਨੂੰ ਸੂਚਿਤ ਕੀਤੇ ਬਿਨਾਂ ਫ਼ਾਈਲਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰ ਸਕਦੀ ਹੈ।"</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"ਇਹ ਸਾਰੀਆਂ ਫ਼ਾਈਲਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰ ਸਕਦੀ ਹੈ"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"ਅਵਾਜ਼ੀ ਕਿਰਿਆਸ਼ੀਲਤਾ ਦੀ ਸੁਵਿਧਾ ਵਾਲੀਆਂ ਐਪਾਂ"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"ਅਵਾਜ਼ੀ ਕਿਰਿਆਸ਼ੀਲਤਾ ਦੀ ਆਗਿਆ ਦਿਓ"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"ਅਵਾਜ਼ੀ ਕਿਰਿਆਸ਼ੀਲਤਾ ਦੀ ਸੁਵਿਧਾ ਅਵਾਜ਼ੀ ਆਦੇਸ਼ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਐਪਾਂ ਨੂੰ ਬਿਨਾਂ ਹੱਥ ਲਾਏ ਚਾਲੂ ਕਰਦੀ ਹੈ। ਬਿਲਟ-ਇਨ ਸੁਰੱਖਿਅਤ ਅਡੈਪਟਿਵ ਸੈਂਸਿੰਗ ਇਹ ਪੱਕਾ ਕਰਦੀ ਹੈ ਕਿ ਡਾਟਾ ਸਿਰਫ਼ ਤੁਹਾਡੇ ਲਈ ਹੀ ਨਿੱਜੀ ਰਹਿੰਦਾ ਹੈ।\n\n"<a href="">"ਸੁਰੱਖਿਅਤ ਅਡੈਪਟਿਵ ਸੈਂਸਿੰਗ ਬਾਰੇ ਹੋਰ ਜਾਣਕਾਰੀ"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"ਪੂਰੀ ਸਕ੍ਰੀਨ ਸੂਚਨਾਵਾਂ"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"ਇਸ ਐਪ ਤੋਂ ਪੂਰੀ ਸਕ੍ਰੀਨ ਸੂਚਨਾਵਾਂ ਦੀ ਆਗਿਆ ਦਿਓ"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"ਇਸ ਐਪ ਨੂੰ ਉਹ ਸੂਚਨਾਵਾਂ ਦਿਖਾਉਣ ਦੀ ਆਗਿਆ ਦਿਓ ਜੋ ਡੀਵਾਈਸ ਲਾਕ ਹੋਣ \'ਤੇ ਪੂਰੀ ਸਕ੍ਰੀਨ ਵਿੱਚ ਦਿਖਾਈ ਦਿੰਦੀਆਂ ਹਨ। ਐਪਾਂ ਇਨ੍ਹਾਂ ਦੀ ਵਰਤੋਂ ਅਲਾਰਮਾਂ, ਇਨਕਮਿੰਗ ਕਾਲਾਂ ਜਾਂ ਹੋਰ ਜ਼ਰੂਰੀ ਸੂਚਨਾਵਾਂ ਨੂੰ ਉਜਾਗਰ ਕਰਨ ਲਈ ਕਰ ਸਕਦੀਆਂ ਹਨ।"</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ਨੇ ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਆਮ ਨਾਲੋਂ ਜ਼ਿਆਦਾ ਬੈਟਰੀ ਵਰਤੀ ਹੈ"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ਨੇ ਫੋਰਗ੍ਰਾਊਂਡ ਵਿੱਚ ਜ਼ਿਆਦਾ ਬੈਟਰੀ ਵਰਤੀ ਹੈ"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ਨੇ ਫੋਰਗ੍ਰਾਊਂਡ ਵਿੱਚ ਆਮ ਨਾਲੋਂ ਜ਼ਿਆਦਾ ਬੈਟਰੀ ਵਰਤੀ ਹੈ"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"ਉੱਚ ਬੈਟਰੀ ਵਰਤੋਂ"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਉੱਚ ਬੈਟਰੀ ਵਰਤੋਂ"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"ਫੋਰਗ੍ਰਾਊਂਡ ਵਿੱਚ ਉੱਚ ਬੈਟਰੀ ਵਰਤੋਂ"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"ਸਿਸਟਮ ਨੈਵੀਗੇਸ਼ਨ, 2-ਬਟਨ ਨੈਵੀਗੇਸ਼ਨ, 3-ਬਟਨ ਨੈਵੀਗੇਸ਼ਨ, ਇਸ਼ਾਰਾ ਨੈਵੀਗੇਸ਼ਨ, ਸਵਾਈਪ"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"ਡਿਜੀਟਲ ਸਹਾਇਕ"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"ਸਹਾਇਕ ਐਪ ਨੂੰ ਚਾਲੂ ਕਰਨ ਲਈ ਸਵਾਈਪ ਕਰੋ"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"ਡਿਜੀਟਲ ਸਹਾਇਕ ਐਪ ਨੂੰ ਚਾਲੂ ਕਰਨ ਲਈ ਹੇਠਲੇ ਕੋਨੇ ਤੋਂ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰੋ।"</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"ਡਿਜੀਟਲ ਸਹਾਇਕ ਐਪ ਨੂੰ ਚਾਲੂ ਕਰਨ ਲਈ ਹੇਠਲੇ ਕੋਨੇ ਤੋਂ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰੋ"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Assistant ਲਈ ਹੋਮ ਬਟਨ ਨੂੰ ਦਬਾਈ ਰੱਖੋ"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"ਡਿਜੀਟਲ ਸਹਾਇਕ ਐਪ ਨੂੰ ਚਾਲੂ ਕਰਨ ਲਈ ਹੋਮ ਬਟਨ ਨੂੰ ਦਬਾਈ ਰੱਖੋ।"</string>
     <string name="low_label" msgid="6525629096999711220">"ਘੱਟ"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"ਡਾਟਾ, ਪਾਸਕੀ, ਪਾਸਵਰਡ"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"ਆਟੋ, ਫਿਲ, ਆਟੋਫਿਲ, ਡਾਟਾ, ਪਾਸਕੀ, ਪਾਸਵਰਡ"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;ਪੱਕਾ ਕਰੋ ਕਿ ਤੁਸੀਂ ਇਸ ਐਪ \'ਤੇ ਭਰੋਸਾ ਕਰਦੇ ਹੋ&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; ਆਪਣੇ-ਆਪ ਭਰੀਆਂ ਜਾ ਸਕਣ ਵਾਲੀਆਂ ਚੀਜ਼ਾਂ ਦਾ ਪਤਾ ਲਗਾਉਣ ਲਈ ਤੁਹਾਡੀ ਸਕ੍ਰੀਨ \'ਤੇ ਮੌਜੂਦ ਚੀਜ਼ਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ।"</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&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_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Use &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_picker_title" msgid="8191267620665129205">"ਪਾਸਵਰਡ, ਪਾਸਕੀਆਂ ਅਤੇ ਡਾਟਾ ਸੇਵਾਵਾਂ"</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>
@@ -4856,4 +4966,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"ਧੋਖੇਬਾਜ਼ ਐਪਾਂ ਲਈ ਸਕੈਨ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"ਫ਼ਿਸ਼ਿੰਗ ਲਈ ਐਪ ਸਰਗਰਮੀ ਦੀ ਜਾਂਚ ਕਰੋ"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"ਧੋਖਾਧੜੀ ਵਾਲੀਆਂ ਐਪਾਂ ਲਈ ਸਕੈਨਿੰਗ ਦੀ ਵਰਤੋਂ ਕਰੋ"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"ਧੋਖਾਧੜੀ ਵਾਲੀਆਂ ਐਪਾਂ ਲਈ ਸਕੈਨਿੰਗ ਦੀ ਕੰਮ ਵਾਸਤੇ ਵਰਤੋਂ ਕਰੋ"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-pl/arrays.xml b/res/values-pl/arrays.xml
index a51b5c4..785be2a 100644
--- a/res/values-pl/arrays.xml
+++ b/res/values-pl/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Po minucie"</item>
     <item msgid="1574040255478150028">"Po 5 minutach"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index fd21fcf..e070ff8 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Wyłącz Bluetooth LE Audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Wyłącza funkcję Bluetooth LE Audio, jeśli urządzenie obsługuje sprzętowe funkcje LE Audio"</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Pokazuj przełącznik LE Audio w Szczegółach urządzenia"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Włącz listę dozwolonych urządzeń Bluetooth LE Audio"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Funkcja włączania listy dozwolonych urządzeń Bluetooth LE Audio"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Omijaj listę dozwolonych Bluetooth LE Audio"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Używaj domyślnie technologii LE Audio, nawet jeśli urządzenie peryferyjne LE Audio nie zostało zweryfikowane jako spełniające kryteria listy dozwolonych."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Nośniki danych"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Urządzenia telefoniczne"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Inne urządzenia"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Zapisane urządzenia"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Powiązane z kontem"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Poprzednio używane z kontem"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth włączy się, by sparować urządzenia"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Ustawienia połączeń"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Wcześniej połączone"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Pisz w polach tekstowych"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignoruj wszystkie naciśnięcia przycisku rysika"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Rysik"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Udostępnianie dźwięku"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Udostępniaj dźwięk"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Połączenia i alarmy"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Data i godzina"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Serwer proxy"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Wyczyść"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Więcej informacji o ustawieniach lokalizacji"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Konta"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Zabezpieczenia"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Szyfrowanie i dane logowania"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Profil służbowy"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Obszar prywatny"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Ukryj aplikacje w prywatnym folderze"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Odblokuj za pomocą blokady ekranu"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Pokaż obszar prywatny"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Ukryj po zablokowaniu"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Ukryj Obszar prywatny po jego zablokowaniu"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Aby inni nie wiedzieli, że na urządzeniu jest Obszar prywatny, można ukryć go na liście aplikacji"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Dostęp do Obszaru prywatnego po jego ukryciu"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"W pasku wyszukiwania wyszukaj „Obszar prywatny”"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Kliknij kafelek Obszar prywatny"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Odblokuj Obszar prywatny"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Wyłączono"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Włączono"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"System"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Utwórz obszar prywatny"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Usuń obszar prywatny"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Utworzono obszar prywatny"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Obszar prywatny już istnieje"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Nie udało się utworzyć obszaru prywatnego"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Usunięto obszar prywatny"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Nie udało się usunąć obszaru prywatnego"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Ustaw blokadę ekranu"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Aby korzystać z obszaru prywatnego, ustaw na tym urządzeniu blokadę ekranu."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Ustaw blokadę ekranu"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Anuluj"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Anuluj"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Skonfiguruj"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Konfiguracja Obszaru prywatnego"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Ukryj aplikacje prywatne w bezpiecznym obszarze, do którego tylko Ty masz dostęp"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Jak to działa"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Dostęp do Obszaru prywatnego można uzyskać z dołu listy aplikacji"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Aplikacje w Obszarze prywatnym są chronione blokadą"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Powiadomienia z aplikacji w Obszarze prywatnym są ukryte, gdy jest on zablokowany"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Aplikacje w Obszarze prywatnym nie będą wyświetlane w menedżerze uprawnień, panelu prywatności ani innych ustawieniach, gdy Obszar prywatny jest zablokowany"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Konfiguruję Obszar prywatny…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Obszar prywatny jest chroniony blokadą"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Informacje o wykorzystaniu aplikacji w Obszarze prywatnym są ukryte, gdy jest on zablokowany"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Dostęp do Obszaru prywatnego z listy aplikacji"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Nie udało się skonfigurować Obszaru prywatnego"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Spróbuj ponownie teraz lub wróć później"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Spróbuj ponownie"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Używać blokady ekranu do odblokowywania?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Obszar prywatny można odblokować w ten sam sposób, w jaki odblokowuje się urządzenie, lub wybrać inną blokadę"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Używaj blokady ekranu"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Wybierz nową blokadę"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Wszystko gotowe."</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Aby uzyskać dostęp do Obszaru prywatnego, przesuń palcem z dołu ekranu głównego w górę, a następnie przewiń ekran w dół"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Gotowe"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Przewiń w dół, aby uzyskać dostęp do Obszaru prywatnego"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Zaloguj się, aby skonfigurować obszar prywatny"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Możesz dodać do <xliff:g id="COUNT">%d</xliff:g> odcisków palców"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Dodano maksymalną liczbę odcisków palców"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Nie można dodać więcej odcisków palców"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Połącz"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Rozłącz"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Sparuj i połącz"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Po włączeniu Bluetootha urządzenie może komunikować się z innymi urządzeniami Bluetooth w pobliżu."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Po włączeniu Bluetootha urządzenie może komunikować się z innymi urządzeniami Bluetooth w pobliżu.\n\nAby zwiększyć komfort korzystania z urządzenia, aplikacje i usługi mogą wyszukiwać urządzenia w pobliżu nawet wtedy, gdy Bluetooth jest wyłączony. Może to np. pomóc usprawnić działanie funkcji i usług opartych na lokalizacji. Możesz zmienić tę opcję w ustawieniach skanowania Bluetooth."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Zmień"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Szczegóły urządzenia"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Zezwalaj ART na sprawdzanie kodu bajtowego aplikacji do debugowania"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Pokazuj częstotliwość odświeżania"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Pokazuj bieżącą częstotliwość odświeżania"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Pokaż format obrazu HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Pokaż bieżący format obrazu HDR/SDR"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"Komunikacja NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"NFC wymaga odblokowania urządzenia"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1060,9 +1136,9 @@
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Wył."</string>
     <string name="display_white_balance_title" msgid="2624544323029364713">"Balans bieli wyświetlacza"</string>
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
-    <string name="fold_lock_behavior_title" msgid="786228803694268449">"Używaj aplikacji nadal po złożeniu"</string>
+    <string name="fold_lock_behavior_title" msgid="786228803694268449">"Nadal używaj aplikacji po złożeniu"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Płynne wyświetlanie"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"W przypadku niektórych treści automatycznie podwyższa częstotliwość odświeżania z 60 na <xliff:g id="ID_1">%1$s</xliff:g> Hz. Zwiększa zużycie baterii."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"W przypadku niektórych treści automatycznie podwyższa częstotliwość odświeżania do <xliff:g id="ID_1">%1$d</xliff:g> Hz. Zwiększa wykorzystanie baterii."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Wymuszaj częstotliwość odświeżania na najwyższym poziomie"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Najszybsza częstotliwość odświeżania zapewnia szybszą reakcję na dotyk i wyższą jakość animacji, ale zwiększa zużycie baterii"</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Aktywność ekranu"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Wspólne ustawienia"</string>
     <string name="apn_settings" msgid="4295467389400441299">"Nazwy APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Edytuj punkt dostępu"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Dodaj punkt dostępu"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Nie ustawiono"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Nie ustawiono"</string>
     <string name="apn_name" msgid="6677695784108157953">"Nazwa"</string>
@@ -1320,6 +1397,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN włączony"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN wyłączona"</string>
     <string name="bearer" msgid="3231443241639159358">"Nośnik"</string>
+    <string name="network_type" msgid="748590707422733595">"Typ sieci"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Nieokreślony"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Typ MVNO"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"Wartość MVNO"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Usuń APN"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Otwieraj przyciskiem ułatwień dostępu"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Aby otworzyć, przytrzymaj przyciski głośności"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Aby otworzyć, trzy razy kliknij ekran"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Otwarcie przez dotknięcie ekranu 3 razy 2 palcami"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Otwieranie gestem"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Użyj gestu ułatwień dostępu"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Aby użyć tej funkcji, kliknij przycisk ułatwień dostępu <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> u dołu ekranu.\n\nAby przełączać się między funkcjami, naciśnij i przytrzymaj przycisk ułatwień dostępu."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Aby użyć tej funkcji, kliknij przycisk ułatwień dostępu na ekranie."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Aby użyć tej funkcji, naciśnij i przytrzymaj oba przyciski głośności."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Aby włączyć lub wyłączyć powiększenie, kliknij trzykrotnie w dowolnym miejscu na ekranie."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Aby włączyć lub wyłączyć powiększenie, dotknij 3 razy 2 palcami dowolnego miejsca na ekranie."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Aby użyć tej funkcji, przesuń 2 palcami z dołu ekranu w górę.\n\nAby przełączać się między funkcjami, przesuń 2 palcami w górę i przytrzymaj."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Aby użyć tej funkcji, przesuń 3 palcami z dołu ekranu w górę.\n\nAby przełączać się między funkcjami, przesuń 3 palcami w górę i przytrzymaj."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Aby użyć ułatwień dostępu, przesuń 2 palcami z dołu ekranu w górę.\n\nAby przełączać się między funkcjami, przesuń 2 palcami w górę i przytrzymaj."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Przytrzymaj przyciski głośności"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"przytrzymaj klawisze 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_triple_tap" msgid="6687765191490040899">"Dotknięcie ekranu 3 razy 2 palcami"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"dotknięcie ekranu 3 razy 2 palcami"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"Szybko dotknij ekranu {0,number,integer} razy 2 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="6863958573135995927">"trzykrotnie kliknij ekran"</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>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Używaj wibracji i reakcji haptycznych"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Wibracje przy alarmie"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Wibracje przy multimediach"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Wibracje klawiatury"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Wibracje przy dzwonku"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Wibracje przy powiadomieniu"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Reakcje na dotyk"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"Pozostało: <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> do naładowania"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Czas korzystania z urządzenia"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Czas działania w tle"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Słaba bateria"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Pozwól aplikacji działać w tle"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Ograniczyć aktywność w tle?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Jeśli ograniczysz aktywność aplikacji w tle, może ona działać nieprawidłowo"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Ta aplikacja nie jest skonfigurowana do optymalnego wykorzystywania baterii, więc nie możesz wprowadzić dla niej ograniczeń.\n\nAby wprowadzić ograniczenia dla aplikacji, najpierw włącz optymalizację baterii."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Zarządzaj wykorzystaniem baterii"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Zezwól na użycie w tle"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Włącz, aby otrzymywać aktualizacje w czasie rzeczywistym, wyłącz w celu oszczędzania baterii"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Bez ograniczeń"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Z optymalizacją"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Z ograniczeniami"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"od ostatniego pełnego naładowania"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Aplikacje systemowe"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Odinstalowane aplikacje"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Inne"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Szacowany pozostały czas"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Do pełnego naładowania"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Łącznie: mniej niż minuta"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"W tle: mniej niż minuta"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Czas korzystania z urządzenia: mniej niż minuta"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Mniej niż minuta"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Łącznie: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"W tle: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Czas korzystania z urządzenia: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Dane komórkowe i Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Autosynchronizacja: osobiste"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Autosynchronizacja: służbowe"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Autosynchronizacja danych prywatnych"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Zmień cykl"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Resetowanie cyklu użycia danych – dzień miesiąca:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"W tym okresie aplikacje nie pobierały danych."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"rozmiar tekstu, duży druk, duża czcionka, duży tekst, niedowidzenie, powiększenie tekstu, powiększenie czcionki"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"wygaszacz z powiadomieniami zawsze włączony, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, tag, czytnik"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"klawiatura, czujnik haptyczny, wibracje,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Głośność, wibracje, Nie przeszkadzać"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Głośność multimediów"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Głośność przesyłania"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Pokazuj całą treść powiadomień"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Pokazuj poufne treści tylko po odblokowaniu"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Nie pokazuj żadnych powiadomień"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Co ma się wyświetlać na ekranie blokady?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Ekran blokady"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Pokazuj w całości powiadomienia związane z pracą"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Ukryj poufne informacje związane z pracą"</string>
@@ -3354,6 +3449,17 @@
     <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="6121016426991791557">"Okres oczekiwania powiadomień"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Zastosuj okres oczekiwania do wszystkich powiadomień"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Stopniowo zmniejszaj głośność powiadomień, gdy przychodzi dużo kolejnych powiadomień z tej samej aplikacji"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Zastosuj okres oczekiwania do rozmów"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Stopniowo zmniejszaj głośność powiadomień, gdy przychodzi dużo kolejnych wiadomości z tego samego czatu w krótkim czasie"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Nie stosuj okresu oczekiwania do powiadomień"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Nigdy nie zmniejszaj głośności powiadomień niezależnie od liczby kolejnych powiadomień z tej samej aplikacji"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Wibruj, gdy nie ma blokady"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Wibruj tylko wtedy, gdy telefon jest odblokowany"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Zastosuj do profili służbowych"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Zastosuj ustawienia okresu oczekiwania powiadomień z profilu osobistego do profilu służbowego"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Usługi pomocnicze rzeczywistości wirtualnej"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Żadne zainstalowane aplikacje nie prosiły o uruchomienie w trybie usług pomocniczych rzeczywistości wirtualnej."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Zezwalasz usłudze <xliff:g id="SERVICE">%1$s</xliff:g> na dostęp do usług VR?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Zezwól na zarządzanie wszystkimi plikami"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Zezwól tej aplikacji na odczytywanie, modyfikowanie i usuwanie plików na tym urządzeniu oraz wszelkich połączonych woluminach pamięci. Aplikacje z tymi uprawnieniami mogą korzystać z dostępu do plików bez konieczności wyraźnego informowania Cię o tym."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Ma dostęp do wszystkich plików"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Aplikacje aktywowane głosem"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Zezwalaj na aktywację głosową"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Aktywacja głosem pozwala włączać zatwierdzone aplikacje bez użycia rąk – tylko przy użyciu polecenia głosowego. Wbudowane wykrywanie adaptacyjne zapewnia prywatność danych.\n\n"<a href="">"Więcej informacji o chronionym wykrywaniu adaptacyjnym"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Powiadomienia pełnoekranowe"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Zezwól na powiadomienia pełnoekranowe z tej aplikacji"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Zezwalaj na wyświetlanie przez tę aplikację powiadomień zajmujących cały ekran, gdy urządzenie jest zablokowane. Aplikacje mogą używać tych uprawnień do powiadamiania o alarmach, połączeniach przychodzących i innych pilnych sprawach."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"Aplikacja <xliff:g id="APP_LABEL">%1$s</xliff:g> zwiększyła wykorzystanie baterii względem zwykłego poziomu w tle"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"Aplikacja <xliff:g id="APP_LABEL">%1$s</xliff:g> zwiększyła wykorzystanie baterii na pierwszym planie"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"Aplikacja <xliff:g id="APP_LABEL">%1$s</xliff:g> zwiększyła wykorzystanie baterii względem zwykłego poziomu na pierwszym planie"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Wysokie wykorzystanie baterii"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Wysokie wykorzystanie baterii w tle"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Wysokie wykorzystanie baterii na pierwszym planie"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"nawigacja w systemie, nawigacja przy użyciu dwóch przycisków, nawigacja przy użyciu trzech przycisków, nawigacja przy użyciu gestów, przesuwanie"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Asystent cyfrowy"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Przesuń palcem, aby wywołać asystenta"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Przesuń palcem z dolnego rogu ekranu w górę, aby wywołać aplikację cyfrowego asystenta"</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Przytrzymaj przycisk ekranu głównego, aby uruchomić Asystenta"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Jeśli chcesz wywołać cyfrowego asystenta, naciśnij i przytrzymaj przycisk ekranu głównego"</string>
     <string name="low_label" msgid="6525629096999711220">"Niska"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"dane, klucze, hasła"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"automatyczne, uzupełnianie, autouzupełnianie, dane, klucz dostępu, hasło"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Sprawdź, czy ta aplikacja jest zaufana&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Autouzupełnianie Google&gt;%1$s&lt;/xliff:g&gt; na podstawie zawartości ekranu określa, co można uzupełnić automatycznie."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Używać &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; używa treści wyświetlanych na ekranie do określania, co można uzupełnić automatycznie. Od tej pory w tym miejscu będą zachowywane nowe hasła, klucze dostępu i inne informacje."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Używać aplikacji &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Od tej pory w tym miejscu będą zachowywane nowe hasła, klucze i inne informacje. Aplikacja &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; używa treści wyświetlanych na ekranie do określania, co można uzupełnić automatycznie."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Usługi haseł, kluczy i danych"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Wyłączyć usługę %1$s?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Wyłączyć tę usługę?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Zapisane informacje, takie jak hasła, klucze dostępu, formy płatności i inne dane, nie będą wypełniane, gdy się zalogujesz. Aby używać zapisanych informacji, wybierz usługę haseł, kluczy dostępu lub danych."</string>
@@ -4226,10 +4338,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <string name="enable_angle_as_system_driver" msgid="4648827560023949786">"Funkcja eksperymentalna: włącz ANGLE"</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Ostrzeżenie: włącz ANGLE jako domyślny sterownik OpenGL ES. Funkcja jest w fazie eksperymentalnej i może nie być zgodna z niektórymi aplikacjami aparatu i do filmów."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"Zmiana systemowego sterownika OpenGL ES wymaga ponownego uruchomienia"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Zmiany zgodności aplikacji"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Przełączanie zmian zgodności aplikacji"</string>
@@ -4789,10 +4899,8 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Format obrazu"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"Wypróbuj nowy format obrazu przy wyświetlaniu tej aplikacji, jeśli nie została zaprojektowana w sposób dopasowany do Twojego urządzenia <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Wypróbuj nowy format obrazu przy wyświetlaniu tej aplikacji, jeśli nie została zaprojektowana w sposób dopasowany do Twojego urządzenia <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Niektóre aplikacje mogą nie być zoptymalizowane pod kątem wszystkich formatów obrazu."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Wypróbuj nowy format obrazu przy wyświetlaniu aplikacji, jeśli nie została zaprojektowana w sposób dopasowany do Twojego urządzenia <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Wypróbuj nowy format obrazu przy wyświetlaniu aplikacji, jeśli nie została zaprojektowana w sposób dopasowany do Twojego urządzenia <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Niektóre aplikacje mogą nie być zoptymalizowane pod kątem wszystkich formatów obrazu."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Sugerowane aplikacje"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Ze zmianą"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Ustawienie domyślne aplikacji"</string>
@@ -4862,4 +4970,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Skanuj w poszukiwaniu podejrzanych aplikacji"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Sprawdzaj aktywność w aplikacjach pod kątem phishingu"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Skanuj pod kątem podejrzanych aplikacji"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Skanuj pod kątem podejrzanych aplikacji do pracy"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-pt-rBR/arrays.xml b/res/values-pt-rBR/arrays.xml
index c144b2b..cd9c222 100644
--- a/res/values-pt-rBR/arrays.xml
+++ b/res/values-pt-rBR/arrays.xml
@@ -361,7 +361,7 @@
   </string-array>
   <string-array name="vpn_states">
     <item msgid="2262719249581510939">"Desconectado"</item>
-    <item msgid="9141074028293812365">"Inicializando..."</item>
+    <item msgid="9141074028293812365">"Iniciando…"</item>
     <item msgid="2234425878608626285">"Conectando..."</item>
     <item msgid="27547778933579155">"Conectado"</item>
     <item msgid="893506841727300393">"Tempo limite"</item>
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Depois de um minuto"</item>
     <item msgid="1574040255478150028">"Depois de cinco minutos"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 2af553a..d2dbe4d 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -86,7 +86,7 @@
     <string name="progress_scanning" msgid="2564746192843011826">"Pesquisar"</string>
     <string name="bluetooth_no_devices_found" msgid="7704539337219953182">"Nenhum dispositivo Bluetooth encontrado."</string>
     <string name="bluetooth_notif_ticker" msgid="209515545257862858">"Solicitação de pareamento Bluetooth"</string>
-    <string name="bluetooth_notif_title" msgid="1196532269131348647">"Solicitação de pareamento"</string>
+    <string name="bluetooth_notif_title" msgid="1196532269131348647">"Pedido de pareamento"</string>
     <string name="bluetooth_notif_message" msgid="5584717784198086653">"Toque para parear com <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_devices_card_off_title" msgid="1320149821945129127">"Bluetooth desativado"</string>
     <string name="bluetooth_devices_card_off_summary" msgid="2276527382891105858">"Toque para ativar"</string>
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Desativar LE Audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Desativa o recurso de áudio Bluetooth de baixo consumo caso o hardware do dispositivo tenha essa opção."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Mostrar a chave do LE Audio nos Detalhes do dispositivo"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Ativar a lista de permissões de LE Audio"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Ative o recurso de lista de permissões de áudio Bluetooth de baixo consumo."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Ignorar lista de permissões do áudio Bluetooth de baixo consumo"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Usar o LE Audio por padrão, mesmo que o periférico dele não tenha sido verificado para atender aos critérios da lista de permissões."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Dispositivos portáteis de mídia"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Dispositivos de chamada"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Outros dispositivos"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Dispositivos salvos"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Associado com a conta"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Usado anteriormente com a conta"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"O Bluetooth será ativado para o pareamento"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Preferências de conexão"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Conectados anteriormente"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Escreva nos campos de texto"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignorar todos os pressionamentos de botão com a stylus"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Stylus"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Compartilhamento de áudio"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Compartilhar áudio"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Ligações e alarmes"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Data e hora"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Limpar"</string>
@@ -273,8 +287,7 @@
     <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_location_off" msgid="8568995909147566720">"O acesso à localização está desativado para apps e serviços. A localização do dispositivo ainda poderá ser enviada aos socorristas quando você ligar ou enviar uma mensagem de texto para um número de emergência."</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Saiba mais sobre as configurações de localização"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Contas"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Segurança"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Criptografia e credenciais"</string>
@@ -407,7 +420,7 @@
     <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Mais"</string>
     <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Como funciona"</string>
     <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"O relógio precisa estar desbloqueado, no pulso e perto do smartphone. Não é necessário desbloquear o relógio novamente enquanto ele está no seu pulso."</string>
-    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Quando este smartphone estiver desbloqueado, você vai receber uma notificação no relógio. Se ele foi desbloqueado sem querer, toque na notificação para bloquear o dispositivo de novo."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Quando este smartphone for desbloqueado, você vai receber uma notificação no relógio. Se ele foi desbloqueado sem querer, toque na notificação para bloquear o dispositivo de novo."</string>
     <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Você no controle"</string>
     <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Você pode remover seu relógio do recurso \"Desbloqueio do relógio\" a qualquer momento nas Configurações."</string>
     <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Toque em uma notificação"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Perfil de trabalho"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Espaço particular"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Ocultar apps em uma pasta particular"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Desbloquear usando o bloqueio de tela"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Mostrar o Espaço particular"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Ocultar quando bloqueado"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Ocultar o Espaço particular quando bloqueado"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Oculte o Espaço particular na sua lista de apps para que outras pessoas não saibam que ele está no dispositivo"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Acessar o Espaço particular quando oculto"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Pesquisar \"Espaço particular\" na barra de pesquisa"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Tocar no bloco Espaço particular"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Desbloquear seu Espaço particular"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Desativado"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Ativado"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Sistema"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Criar Espaço particular"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Excluir o Espaço particular"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"O Espaço particular foi criado"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"O Espaço particular já existe"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Não foi possível criar um Espaço particular"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"O Espaço particular foi excluído"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Não foi possível excluir o Espaço particular"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Defina um bloqueio de tela"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Para usar o Espaço particular, defina um bloqueio de tela neste dispositivo."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Definir bloqueio de tela"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Cancelar"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Cancelar"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Configurar"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Configurar o Espaço particular"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Oculte apps particulares em um espaço seguro que só você pode acessar"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Como funciona"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Você pode acessar o Espaço particular na parte de baixo da sua lista de apps"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Os apps no Espaço particular ficam protegidos por um bloqueio"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"As notificações de apps no Espaço particular ficam ocultas quando ele está bloqueado"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Os apps do Espaço particular não aparecem na Gestão de permissões, no painel de privacidade e em outras configurações quando esse espaço está bloqueado"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Configurando Espaço particular…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"O Espaço particular fica protegido por um bloqueio"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"As informações de uso de apps do Espaço particular ficam ocultas quando ele está bloqueado"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Acessar o Espaço particular da sua lista de apps"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Não foi possível configurar o Espaço particular"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Tente de novo ou volte mais tarde"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Tentar de novo"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Usar bloqueio de tela para desbloquear?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Você pode desbloquear o Espaço particular da mesma maneira que desbloqueia seu dispositivo ou escolher um bloqueio diferente"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Usar bloqueio de tela"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Escolher novo bloqueio"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Tudo pronto!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Para acessar o Espaço particular, deslize de baixo para cima na tela inicial e role para baixo"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Concluído"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Role a tela para baixo para acessar o Espaço particular"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Faça login para configurar o Espaço particular"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"É possível adicionar até <xliff:g id="COUNT">%d</xliff:g> digitais"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Você adicionou o número máximo de impressões digitais"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Não é possível adicionar mais impressões digitais"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Conectar"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Desconectar"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Parear e conectar"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Com o Bluetooth ativado, o dispositivo pode se comunicar com dispositivos próximos."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Com o Bluetooth ativado, o dispositivo pode se comunicar com dispositivos próximos"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Quando o Bluetooth está ativado, seu dispositivo pode se comunicar com outros dispositivos Bluetooth por perto.\n\nPara melhorar a experiência, os apps e serviços ainda podem procurar dispositivos por perto a qualquer momento, mesmo com o Bluetooth desativado. Isso pode ser usado, por exemplo, para aprimorar serviços e recursos baseados na localização. Mude essa opção nas configurações de busca por Bluetooth."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Mudar"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Detalhes do dispositivo"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Permitir que o ART verifique o bytecode de apps depuráveis"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Mostrar taxa de atualização"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Mostrar a taxa de atualização de tela atual"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Mostrar a proporção HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Mostrar a proporção HDR/SDR atual"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Exigir desbloqueio de dispositivo para usar a NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -792,7 +867,7 @@
     <string name="wifi_configure_settings_preference_summary_wakeup_on" msgid="7822368955551467382">"O Wi‑Fi é reativado automaticamente"</string>
     <string name="wifi_configure_settings_preference_summary_wakeup_off" msgid="5710203586018223864">"O Wi‑Fi não é reativado automaticamente"</string>
     <string name="wifi_menu_p2p" msgid="5234165837732940385">"Wi-Fi Direct"</string>
-    <string name="wifi_empty_list_wifi_off" msgid="7697422506708419298">"Para ver as redes disponíveis, ative o Wi-Fi."</string>
+    <string name="wifi_empty_list_wifi_off" msgid="7697422506708419298">"Para acessar as redes disponíveis, ative o Wi-Fi."</string>
     <string name="wifi_empty_list_wifi_on" msgid="2448010040478321376">"Procurando redes…"</string>
     <string name="wifi_empty_list_user_restricted" msgid="454861411536708709">"Você não tem permissão para alterar a rede Wi-Fi."</string>
     <string name="wifi_settings_scanning_required_title" msgid="1088663325396007484">"Ativar a busca por Wi‑Fi?"</string>
@@ -1062,7 +1137,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Continuar usando apps com a tela dobrada"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Aumenta automaticamente a taxa de atualização de 60 para <xliff:g id="ID_1">%1$s</xliff:g> Hz em alguns conteúdos. Maior uso da bateria."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Aumenta automaticamente a taxa de atualização para <xliff:g id="ID_1">%1$d</xliff:g> Hz para alguns conteúdos. Maior uso da bateria."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Forçar taxa de atualização máxima"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Maior taxa de atualização para melhoria na resposta tátil e na qualidade das animações. Maior uso da bateria."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Reconhecimento de tela em uso"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Configurações compartilhadas"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APNs"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Editar ponto de acesso"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Adicionar ponto de acesso"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Sem definição"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Não definido"</string>
     <string name="apn_name" msgid="6677695784108157953">"Nome"</string>
@@ -1320,6 +1396,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN ativado"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN desativado"</string>
     <string name="bearer" msgid="3231443241639159358">"Portador"</string>
+    <string name="network_type" msgid="748590707422733595">"Tipo de rede"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Não especificado"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Tipo de MVNO"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"Valor de MVNO"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Excluir APN"</string>
@@ -1429,7 +1507,7 @@
     <string name="location_app_permission_summary_location_on" msgid="7552095451731948984">"{count,plural, =1{# app de {total} tem acesso à localização}one{# app de {total} tem acesso à localização}other{# apps de {total} têm acesso à localização}}"</string>
     <string name="location_category_recent_location_access" msgid="2558063524482178146">"Acesso recente"</string>
     <string name="location_recent_location_access_see_all" msgid="4203102419355323325">"Ver tudo"</string>
-    <string name="location_recent_location_access_view_details" msgid="5803264082558504544">"Ver detalhes"</string>
+    <string name="location_recent_location_access_view_details" msgid="5803264082558504544">"Mais detalhes"</string>
     <string name="location_no_recent_apps" msgid="6814206631456177033">"Nenhum app solicitou a localização recentemente"</string>
     <string name="location_no_recent_accesses" msgid="6031735777805464247">"Nenhum app acessou a localização recentemente"</string>
     <string name="location_high_battery_use" msgid="4277318891200626524">"Uso da bateria elevado"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Usar o botão de acessibilidade para abrir"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Mantenha as teclas de volume pressionadas para abrir"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Toque três vezes na tela para abrir"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Tocar três vezes na tela com dois dedos para abrir"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Usar gesto para abrir"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Usar o gesto de acessibilidade"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Para usar esse recurso, toque no botão de acessibilidade <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> na parte inferior da tela.\n\nPara alternar entre os recursos, toque no botão de acessibilidade e o pressione."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Para usar esse recurso, toque no botão de acessibilidade na sua tela."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Para usar esse recurso, toque nas duas teclas de volume e as mantenha pressionadas."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Para iniciar ou interromper a ampliação, toque três vezes em qualquer lugar da tela."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Para iniciar ou interromper a ampliação, toque três vezes em qualquer lugar da tela com dois dedos."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Para usar esse recurso, deslize de baixo para cima na tela com dois dedos.\n\nPara alternar entre os recursos, deslize de baixo para cima com dois dedos, sem soltar."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Para usar esse recurso, deslize de baixo para cima na tela com três dedos.\n\nPara alternar entre os recursos, deslize de baixo para cima com três dedos, sem soltar."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Para usar um recurso de acessibilidade, deslize de baixo para cima na tela com dois dedos.\n\nPara alternar entre recursos, deslize de baixo para cima com dois dedos, sem soltar."</string>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Manter as teclas de volume pressionadas"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"manter as teclas de volume pressionadas"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Toque nas duas teclas de volume e as mantenha pressionadas"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"Tocar três vezes na tela com dois dedos"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"tocar três vezes na tela com dois dedos"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"tocar na tela 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>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Usar vibração e retorno tátil"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Vibração do alarme"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Vibração de mídia"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Vibração do teclado"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Vibração do toque"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Vibração das notificações"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Feedback por toque"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> restantes"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> até carregar"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Tempo de tela"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Tempo em segundo plano"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Bateria fraca"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Permitir que o app seja executado em segundo plano"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Limitar atividade em segundo plano?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Se você limitar as atividades em segundo plano de um app, ele poderá apresentar mau funcionamento"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Como o app não está configurado para otimizar bateria, não é possível restringi-lo.\n\nPara restringir, ative a otimização."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Gerenciar uso da bateria"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Permitir o uso em segundo plano"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Ative para receber atualizações em tempo real ou desative para economizar bateria"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Sem restrições"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Otimizado"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Restrito"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"desde a última carga completa"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Apps do sistema"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Apps desinstalados"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Outros"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Tempo restante estimado"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Até a carga completa"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Total: menos de um minuto"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Segundo plano: menos de um minuto"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Tempo de uso: menos de um minuto"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Menos de um minuto"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Total: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Segundo plano: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Tempo de uso: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Dados móveis e Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Sincronizar dados pessoais"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Sincronizar dados de trabalho automaticamente"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Sincronizar dados particulares automaticamente"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Alterar ciclo..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Dia do mês para redefinir o ciclo de uso dos dados:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Nenhum app usou dados durante o período."</string>
@@ -2747,8 +2839,8 @@
     <string name="ssl_ca_cert_warning" msgid="3898387588657346106">"A rede pode ser monitorada"</string>
     <string name="done_button" msgid="6269449526248267">"Concluído"</string>
     <string name="ssl_ca_cert_dialog_title" msgid="1032088078702042090">"{count,plural, =1{Confiar ou remover certificado}one{Confiar ou remover certificado}other{Confiar ou remover certificados}}"</string>
-    <string name="ssl_ca_cert_info_message_device_owner" msgid="7528581447864707873">"{numberOfCertificates,plural, =1{A organização {orgName} instalou uma autoridade certificadora no seu dispositivo, o que pode permitir que ela monitore sua atividade na rede dele, incluindo e-mails, apps e sites seguros.\n\nPara ver mais informações sobre esse certificado, entre em contato com o administrador.}one{A organização {orgName} instalou uma autoridade certificadora no seu dispositivo, o que pode permitir que ela monitore sua atividade na rede dele, incluindo e-mails, apps e sites seguros.\n\nPara ver mais informações sobre esse certificado, entre em contato com o administrador.}other{A organização {orgName} instalou autoridades certificadoras no seu dispositivo, o que pode permitir que ela monitore sua atividade na rede dele, incluindo e-mails, apps e sites seguros.\n\nPara ver mais informações sobre esses certificados, entre em contato com o administrador.}}"</string>
-    <string name="ssl_ca_cert_info_message" msgid="3111724430981667845">"{numberOfCertificates,plural, =1{A organização {orgName} instalou uma autoridade certificadora para seu perfil de trabalho, o que pode permitir que ela monitore sua atividade profissional na rede, incluindo e-mails, apps e sites seguros.\n\nPara ver mais informações sobre esse certificado, entre em contato com o administrador.}one{A organização {orgName} instalou uma autoridade certificadora para seu perfil de trabalho, o que pode permitir que ela monitore sua atividade profissional na rede, incluindo e-mails, apps e sites seguros.\n\nPara ver mais informações sobre esse certificado, entre em contato com o administrador.}other{A organização {orgName} instalou autoridades certificadoras para seu perfil de trabalho, o que pode permitir que ela monitore sua atividade profissional na rede, incluindo e-mails, apps e sites seguros.\n\nPara ver mais informações sobre esses certificados, entre em contato com o administrador.}}"</string>
+    <string name="ssl_ca_cert_info_message_device_owner" msgid="7528581447864707873">"{numberOfCertificates,plural, =1{A organização {orgName} instalou uma autoridade certificadora no seu dispositivo, o que pode permitir que ela monitore sua atividade na rede dele, incluindo e-mails, apps e sites seguros.\n\nPara acessar mais informações sobre esse certificado, entre em contato com o administrador.}one{A organização {orgName} instalou uma autoridade certificadora no seu dispositivo, o que pode permitir que ela monitore sua atividade na rede dele, incluindo e-mails, apps e sites seguros.\n\nPara acessar mais informações sobre esse certificado, entre em contato com o administrador.}other{A organização {orgName} instalou autoridades certificadoras no seu dispositivo, o que pode permitir que ela monitore sua atividade na rede dele, incluindo e-mails, apps e sites seguros.\n\nPara acessar mais informações sobre esses certificados, entre em contato com o administrador.}}"</string>
+    <string name="ssl_ca_cert_info_message" msgid="3111724430981667845">"{numberOfCertificates,plural, =1{A organização {orgName} instalou uma autoridade certificadora para seu perfil de trabalho, o que pode permitir que ela monitore sua atividade profissional na rede, incluindo e-mails, apps e sites seguros.\n\nPara acessar mais informações sobre esse certificado, entre em contato com o administrador.}one{A organização {orgName} instalou uma autoridade certificadora para seu perfil de trabalho, o que pode permitir que ela monitore sua atividade profissional na rede, incluindo e-mails, apps e sites seguros.\n\nPara acessar mais informações sobre esse certificado, entre em contato com o administrador.}other{A organização {orgName} instalou autoridades certificadoras para seu perfil de trabalho, o que pode permitir que ela monitore sua atividade profissional na rede, incluindo e-mails, apps e sites seguros.\n\nPara acessar mais informações sobre esses certificados, entre em contato com o administrador.}}"</string>
     <string name="ssl_ca_cert_warning_message" msgid="4374052724815563051">"Sua atividade na rede, incluindo e-mails, apps e websites seguros, pode ser monitorada por terceiros.\n\nUma credencial confiável instalada no dispositivo permite isso."</string>
     <string name="ssl_ca_cert_settings_button" msgid="2044927302268394991">"{count,plural, =1{Verificar certificado}one{Verificar certificado}other{Verificar certificados}}"</string>
     <string name="user_settings_title" msgid="6550866465409807877">"Vários usuários"</string>
@@ -2942,7 +3034,7 @@
     <string name="cloned_app_created_summary" msgid="7277912971544890710">"Clonado"</string>
     <string name="cloned_app_creation_toast_summary" msgid="3854494347144867870">"Criando clone de <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="cloned_app_created_toast_summary" msgid="755225403495544163">"O clone de <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> foi criado"</string>
-    <string name="system_dashboard_summary" msgid="7400745270362833832">"Idiomas, gestos, tempo, backup"</string>
+    <string name="system_dashboard_summary" msgid="7400745270362833832">"Idiomas, gestos, hora, backup"</string>
     <string name="languages_setting_summary" msgid="2650807397396180351">"Idiomas do sistema, idiomas do app, preferências regionais, fala"</string>
     <string name="keywords_wifi" msgid="8156528242318351490">"wifi, Wi-Fi, conexão de rede, Internet, sem fio, dados, wi fi"</string>
     <string name="keywords_wifi_notify_open_networks" msgid="6580896556389306636">"Notificação de Wi‑Fi, notificação de wifi"</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"tamanho do texto, letras grandes, fonte grande, texto grande, baixa visão, aumentar texto, ampliador de fonte, aumento de fonte"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"tela ambiente sempre ativada, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, etiqueta, leitor"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"teclado, retorno tátil, vibrar,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Volume, vibração, Não perturbe"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Volume de mídia"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Volume da transmissão"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Mostrar todo o conteúdo das notificações"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Só mostrar conteúdo sensível quando desbloqueado"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Não mostrar nenhuma notificação"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Como você quer mostrar as notificações na tela de bloqueio?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Tela de bloqueio"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Mostre todo o conteúdo de notificação de trabalho"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Ocultar conteúdo de trabalho confidencial"</string>
@@ -3354,6 +3448,17 @@
     <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="6121016426991791557">"Período de espera para notificações"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Aplicar um período de espera a todas as notificações"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Diminuir gradualmente o volume de notificações quando você receber muitas seguidas do mesmo app"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Aplicar um período de espera a conversas"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Diminuir gradualmente o volume de notificações quando você receber muitas mensagens seguidas da mesma conversa em um curto período"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Não usar o período de espera para notificações"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Nunca diminuir o volume de notificações, independente da quantidade de notificações seguidas do mesmo app"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Vibrar quando desbloqueado"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Vibrar apenas quando a tela estiver desbloqueada"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Aplicar a perfis de trabalho"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Aplique as configurações de período de espera para notificações do seu perfil pessoal ao seu perfil de trabalho"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Serviços de ajuda para RV"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Nenhum app instalado solicitou ser executado como serviço de ajuda para RV."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Permitir acesso ao serviço de RV para <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Acesso para gerenciar todos os arquivos"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Permitir que o app leia, modifique e exclua todos os arquivos deste dispositivo ou de qualquer volume de armazenamento conectado. Se a permissão for concedida, o app poderá acessar arquivos sem nenhum aviso prévio."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Pode acessar todos os arquivos"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Apps com ativação por voz"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Permitir ativação por voz"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"A ativação por voz ativa apps aprovados usando comando de voz. A detecção adaptativa integrada garante a privacidade dos seus dados.\n\n"<a href="">"Saiba mais sobre a detecção adaptativa"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Notificações em tela cheia"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Permitir que esse app mostre notificações em tela cheia"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Permita que o app mostre notificações que ocupam a tela inteira quando o dispositivo estiver bloqueado. Os apps poderão usar essa permissão para destacar alarmes, ligações recebidas ou outras notificações urgentes."</string>
@@ -3781,7 +3889,7 @@
     <string name="storage_summary" msgid="5903562203143572768">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> usado - <xliff:g id="FREE_SPACE">%2$s</xliff:g> livres"</string>
     <string name="display_dashboard_summary" msgid="1599453894989339454">"Tema escuro, tamanho da fonte, brilho"</string>
     <string name="memory_summary" msgid="8221954450951651735">"Média de <xliff:g id="USED_MEMORY">%1$s</xliff:g> de <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> de memória usados"</string>
-    <string name="users_summary" msgid="8473589474976307510">"Conectado como <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
+    <string name="users_summary" msgid="8473589474976307510">"Conta conectada: <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
     <string name="android_version_summary" msgid="7818952662015042768">"Atualizado para o Android <xliff:g id="VERSION">%1$s</xliff:g>"</string>
     <string name="android_version_pending_update_summary" msgid="5404532347171027730">"Atualização disponível"</string>
     <string name="disabled_by_policy_title" msgid="6852347040813204503">"Ação bloqueada pela política de trabalho"</string>
@@ -3878,7 +3986,7 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Atualizado há <xliff:g id="ID_1">^2</xliff:g>"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Atualizado pela <xliff:g id="ID_1">^1</xliff:g> agora mesmo"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Atualizado agora"</string>
-    <string name="launch_wifi_text" msgid="976421974332512894">"Ver detalhes"</string>
+    <string name="launch_wifi_text" msgid="976421974332512894">"Mais detalhes"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Economia de dados"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Dados ilimitados"</string>
     <string name="restrict_background_blocklisted" msgid="2308345280442438232">"Os dados em segundo plano estão desativados"</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> usou bateria além do normal em segundo plano"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> usou mais bateria em primeiro plano"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> usou bateria além do normal em primeiro plano"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Alto uso da bateria"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Alto uso da bateria em segundo plano"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Alto uso da bateria em primeiro plano"</string>
@@ -3995,7 +4105,7 @@
     <string name="double_twist_for_camera_mode_summary" msgid="592503740044744951"></string>
     <string name="system_navigation_title" msgid="4890381153527184636">"Modo de navegação"</string>
     <string name="swipe_up_to_switch_apps_title" msgid="6677266952021118342">"Navegação com dois botões"</string>
-    <string name="swipe_up_to_switch_apps_summary" msgid="1415457307836359560">"Para mudar de app, deslize o botão home para cima. Para ver todos os apps, deslize para cima novamente. Para retornar, toque no botão \"Voltar\"."</string>
+    <string name="swipe_up_to_switch_apps_summary" msgid="1415457307836359560">"Para mudar de app, deslize o botão home para cima. Para acessar todos os apps, deslize para cima novamente. Para retornar, toque no botão \"Voltar\"."</string>
     <string name="emergency_settings_preference_title" msgid="6183455153241187148">"Segurança e emergência"</string>
     <string name="emergency_dashboard_summary" msgid="401033951074039302">"SOS de emergência, informações de saúde, alertas"</string>
     <string name="edge_to_edge_navigation_title" msgid="714427081306043819">"Navegação por gestos"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"navegação no sistema, navegação com dois botões, navegação com três botões, navegação por gestos, deslizar"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Assistente digital"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Deslize para invocar o assistente"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Deslize de baixo para cima no canto da tela para invocar o app assistente digital."</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Deslize de baixo para cima no canto da tela para invocar o app assistente digital"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Pressione o botão home para ativar o Google Assistente"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Toque e pressione o botão home para invocar o app assistente digital."</string>
     <string name="low_label" msgid="6525629096999711220">"Baixa"</string>
@@ -4030,9 +4140,9 @@
     <string name="one_handed_action_pull_down_screen_summary" msgid="7582432473450036628">"A parte superior da tela se moverá para ficar ao alcance do seu polegar."</string>
     <string name="one_handed_action_show_notification_title" msgid="8789305491485437130">"Mostrar notificações"</string>
     <string name="one_handed_action_show_notification_summary" msgid="8281689861222000436">"As notificações e configurações serão exibidas."</string>
-    <string name="ambient_display_summary" msgid="2650326740502690434">"Para ver a hora, as notificações e outras informações, toque duas vezes na tela."</string>
+    <string name="ambient_display_summary" msgid="2650326740502690434">"Para acessar a hora, as notificações e outras informações, toque duas vezes na tela."</string>
     <string name="ambient_display_wake_screen_title" msgid="7637678749035378085">"Ativar a tela"</string>
-    <string name="ambient_display_tap_screen_summary" msgid="4480489179996521405">"Para ver a hora, as notificações e outras informações, toque na tela."</string>
+    <string name="ambient_display_tap_screen_summary" msgid="4480489179996521405">"Para acessar a hora, as notificações e outras informações, toque na tela."</string>
     <string name="emergency_gesture_screen_title" msgid="3280543310204360902">"SOS de emergência"</string>
     <string name="emergency_gesture_switchbar_title" msgid="7421353963329899514">"Usar o SOS de emergência"</string>
     <string name="emergency_gesture_screen_summary" msgid="6640521030845132507">"Pressione o botão liga/desliga rapidamente cinco vezes ou mais para iniciar as ações abaixo"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"dados, chave de acesso, senha"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"automático, preenchimento, preenchimento automático, dados, chave de acesso, senha"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Você precisa confiar nesse app&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=O Preenchimento automático do Google&gt;%1$s&lt;/xliff:g&gt; usa o que está na sua tela para determinar o que pode ser preenchido automaticamente."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Usar o &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt;O &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; usa o que aparece na sua tela para determinar o que pode ser preenchido automaticamente. Novas senhas, chaves de acesso e outras informações serão salvas aqui a partir de agora."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Usar &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Senhas, chaves de acesso e outras informações novas serão salvas aqui a partir de agora. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; pode usar o que aparece na tela para determinar o que pode ser preenchido automaticamente."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Senhas, chaves de acesso e serviços de dados"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Desativar %1$s?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Desativar este serviço?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Senhas, chaves de acesso, formas de pagamento e outras informações salvas não serão preenchidas quando você fizer login. Para usar suas informações salvas, escolha uma senha, uma chave de acesso ou um serviço de dados."</string>
@@ -4226,10 +4336,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <string name="enable_angle_as_system_driver" msgid="4648827560023949786">"Experimental: ativar ANGLE"</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Atenção: ative o ANGLE como o driver padrão do OpenGL ES. Esse recurso é experimental e pode não ser compatível com alguns apps de câmera e vídeo."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"É necessário reiniciar o dispositivo para mudar o driver do OpenGL ES do sistema"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Mudanças na compatibilidade do app"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Alternar mudanças de compatibilidade do app"</string>
@@ -4787,10 +4895,8 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Proporção"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"Teste uma nova proporção para esse app caso ele não tenha sido criado para caber no seu dispositivo <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Teste uma nova proporção para esse app caso ele não tenha sido criado para caber no seu dispositivo <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Talvez alguns apps não estejam otimizados para algumas proporções."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Teste uma nova proporção para um app caso ele não tenha sido criado para caber no seu dispositivo <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Teste uma nova proporção para um app caso ele não tenha sido criado para caber no seu dispositivo <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Talvez alguns apps não estejam otimizados para certas proporções."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Apps sugeridos"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Apps modificados"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Padrão do app"</string>
@@ -4860,4 +4966,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Verificação de apps enganosos"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Verificar atividades no app para detectar phishing"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Usar o recurso de verificação para detectar apps enganosos"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Usar o recurso de verificação para detectar apps enganosos que podem ser usados no perfil de trabalho"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-pt-rPT/arrays.xml b/res/values-pt-rPT/arrays.xml
index 521acfc..d0a1f45 100644
--- a/res/values-pt-rPT/arrays.xml
+++ b/res/values-pt-rPT/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Após 1 minuto"</item>
     <item msgid="1574040255478150028">"Após 5 minutos"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index c7fb9aa..314824d 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Desativar Bluetooth LE Audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Desativa a funcionalidade Bluetooth LE Audio se o dispositivo suportar as capacidades de hardware LE Audio."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Botão LE Audio – Detalhes do dispositivo"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Ativar lista de autorizações do Bluetooth LE Audio"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Ative a funcionalidade da lista de autorizações do Bluetooth LE Audio."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Contornar lista de autorizações do Bluetooth LE Audio"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Use o LE Audio por predefinição, mesmo se o cumprimento dos critérios da lista de autorizações pelo periférico com LE Audio não tiver sido validado."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Dispositivos multimédia"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Dispositivos de chamada"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Outros dispositivos"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Dispositivos guardados"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Associado à conta"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Usado anteriormente com a conta"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"O Bluetooth será ativado para a sincronização"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Preferências de ligação"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Ligados anteriormente"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Escrever em campos de texto"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignorar todos os botões premidos com a caneta stylus"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Caneta stylus"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Partilha de áudio"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Partilhar áudio"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Chamadas e alarmes"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Data e hora"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Limpar"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Saiba mais acerca das definições de localização"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Contas"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Segurança"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Encriptação/credenciais"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Perfil de trabalho"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Espaço privado"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Oculte as apps numa pasta privada"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Desbloquear com o bloqueio de ecrã"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Mostrar espaço privado"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Ocultar quando bloqueado"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Ocultar espaço privado quando bloqueado"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Para não saberem que o espaço privado está no seu dispositivo, oculte-o da lista de apps"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Aceda ao espaço privado quando estiver oculto"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Pesquise \"espaço privado\" na barra de pesquisa"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Toque no mosaico do espaço privado"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Desbloqueie o seu espaço privado"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Desativado"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Ativado"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Sistema"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Criar espaço privado"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Eliminar espaço privado"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Espaço privado criado com êxito"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"O espaço privado já existe"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Não foi possível criar o espaço privado"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Espaço privado eliminado com êxito"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Não foi possível eliminar o espaço privado"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Defina um bloqueio de ecrã"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Para usar o espaço privado, defina bloqueio de ecrã no disp."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Definir bloqueio de ecrã"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Cancelar"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Cancelar"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Configurar"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Configurar espaço privado"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Oculte as apps privadas num espaço seguro que pode ser acedido apenas por si"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Como funciona"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Pode aceder ao espaço privado a partir da parte inferior da sua lista de apps"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"As apps no espaço privado são protegidas por um bloqueio"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Quando o espaço privado estiver bloqueado, as notificações das respetivas apps são ocultadas"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"As apps do espaço privado não vão aparecer no Gestor de autorizações, no painel de privacidade nem noutras definições quando o espaço privado estiver bloqueado"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"A configurar o espaço privado…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"O espaço privado está protegido por um bloqueio"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Quando o espaço privado estiver bloqueado, as informações de utilização das respetivas apps são ocultadas"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Aceda ao espaço privado a partir da sua lista de apps"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Não foi possível configurar o espaço privado"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Tente novamente agora ou volte mais tarde"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Tentar novamente"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Usar bloqueio de ecrã para desbloquear?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Pode desbloquear o espaço privado da mesma forma que desbloqueia o seu dispositivo ou escolher um bloqueio diferente"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Usar bloqueio de ecrã"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Escolher novo bloqueio"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Tudo pronto!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Para aceder ao espaço privado, deslize rapidamente para cima a partir da parte inferior do ecrã principal e, em seguida, desloque o ecrã para baixo"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Concluir"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Desloque o ecrã para baixo para aceder ao espaço privado"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Inicie sessão para configurar o espaço privado"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Pode adicionar até <xliff:g id="COUNT">%d</xliff:g> impressões digitais"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Adicionou o número máximo de impressões digitais"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Não é possível adicionar mais impressões digitais"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Ligar"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Desligar"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Emparelhar e ligar"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Com o Bluetooth ativado, o dispositivo pode comunicar com dispositivos próximos."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Com o Bluetooth ativado, o dispositivo pode comunicar com dispositivos próximos"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Quando o Bluetooth está ativado, o dispositivo pode comunicar com outros dispositivos Bluetooth próximos.\n\nPara melhorar a experiência do dispositivo, as apps e os serviços podem continuar a procurar dispositivos próximos em qualquer altura, mesmo quando o Bluetooth 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 Bluetooth."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Altere"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Detalhes do dispositivo"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Permite que o ART valide o bytecode para apps depuráveis"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Mostrar taxa de atualização"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Mostrar taxa de atualização de apresentação atual"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Mostrar relação HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Mostrar a relação HDR/SDR atual"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Pedir o desbloqueio do dispositivo para o NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1137,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Continuar a usar apps ao dobrar"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Aumenta automaticamente a taxa de atualização de 60 para <xliff:g id="ID_1">%1$s</xliff:g> Hz para algum conteúdo. Aumenta a utilização da bateria."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Aumenta automaticamente a taxa de atualização para <xliff:g id="ID_1">%1$d</xliff:g> Hz para algum conteúdo. Aumenta a utilização da bateria."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Forçar taxa de atualização de pico"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"A taxa de atualização mais elevada para uma capacidade de resposta tátil e uma qualidade de animação melhoradas. Aumenta a utilização da bateria."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Atenção ao ecrã"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Definições coletivas"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APNs"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Editar ponto de acesso"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Adicione o ponto de acesso"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Não definido"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Não definido"</string>
     <string name="apn_name" msgid="6677695784108157953">"Nome"</string>
@@ -1320,6 +1396,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN ativado"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN desativado"</string>
     <string name="bearer" msgid="3231443241639159358">"Portador"</string>
+    <string name="network_type" msgid="748590707422733595">"Tipo de rede"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Não especificado"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Tipo de MVNO"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"Valor da MVNO (Operadora Móvel com Rede Virtual)"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Eliminar APN"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Use o botão de acessibilidade para abrir"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Mantenha premidas as teclas de volume para abrir"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Toque três vezes no ecrã para abrir"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Toque três vezes no ecrã com dois dedos para abrir"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Utilize gestos para abrir"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Usar gesto de acessibilidade"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Para usar esta funcionalidade, toque no botão Acessibilidade <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> na parte inferior do seu ecrã.\n\nPara alternar entre funcionalidades, toque sem soltar no botão Acessibilidade."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Para usar esta funcionalidade, toque no botão Acessibilidade no seu ecrã."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Para usar esta funcionalidade, prima sem soltar as teclas de volume."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Para iniciar e parar a ampliação, toque três vezes em qualquer parte do ecrã."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Para iniciar e parar a ampliação, toque três vezes em qualquer parte do ecrã com dois dedos."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Para usar esta funcionalidade, 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_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Para usar esta funcionalidade, 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_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Para utilizar uma funcionalidade de acessibilidade, 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>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Manter premidas as teclas de volume"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"mantenha premidas as 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_triple_tap" msgid="6687765191490040899">"Toque três vezes no ecrã com dois dedos"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"toque três vezes no ecrã com dois dedos"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"toque três vezes no ecrã"</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>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Usar vibração e funcionalidade tátil"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Vibração do alarme"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Vibração de multimédia"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Vibração do teclado"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Vibração do toque"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Vibração de notificações"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Respostas por toque"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> restante(s)"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> a cobrar"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Tempo ao ecrã"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Tempo em segundo plano"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Bateria fraca"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Permitir que a aplicação seja executada em segundo plano"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Quer limitar a atividade em segundo plano?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Se limitar a atividade em segundo plano de uma aplicação, esta pode apresentar um comportamento anormal."</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"A app não está def. p/ otimizar a bateria, não a pode restringir.\n\nP/ restringir a app, ative a otimiz. da bateria."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Faça a gestão da utilização da bateria"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Permita a utilização em segundo plano"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Ative para atualizações em tempo real, desative para poupar bateria"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Sem restrições"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Otimizada"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Restrita"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"desde a última carga completa"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Apps do sistema"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Apps desinstaladas"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Outros"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Tempo restante estimado"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Até ficar totalmente carregada"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Total: menos de um min"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Em segundo plano: menos de um min"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Tempo de utilização: menos de um minuto"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Menos de um min"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Total: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Em segundo plano: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Tempo de utilização: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Dados móveis e Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Sincronizar automaticamente dados pessoais"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Sincronizar dados de trabalho automaticamente"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Sincroniz. dados privados aut."</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Alterar ciclo..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Dia do mês para repor o ciclo de utilização de dados:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Nenhuma app util. dados durante este período."</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"tamanho do texto, formato·grande, tipo de letra grande, texto grande, visão reduzida, aumentar o texto, aumentar o tipo de letra, aumento do tipo de letra"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"ecrã ambiente sempre ativado, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"NFC, etiqueta, leitor"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"teclado, funcionalidade tátil, vibrar"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Volume, vibração, Não incomodar"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Volume de multimédia"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Volume de transmissão"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Mostrar conteúdos de todas as notificações"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Mostrar conteúdo confidencial apenas se desbloqueado"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Não mostrar notificações"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Como quer que o ecrã de bloqueio seja apresentado?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Ecrã de bloqueio"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Mostrar todo o conteúdo de notificações de trabalho"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Ocultar conteúdo de trabalho confidencial"</string>
@@ -3354,6 +3448,17 @@
     <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="6121016426991791557">"Repouso das notificações"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Aplicar o repouso a todas as notificações"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Diminua gradualmente o volume das notificações quando receber muitas notificações sucessivas da mesma app"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Aplicar o repouso às conversas"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Diminua gradualmente o volume das notificações quando receber muitas mensagens do mesmo chat num curto espaço de tempo"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Não usar o repouso das notificações"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Nunca diminua o volume das notificações, independentemente da quantidade de notificações sucessivas da mesma app"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Vibrar quando estiver desbloqueado"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Só vibra quando o ecrã está desbloqueado"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Aplicar aos perfis de trabalho"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Aplique as definições de repouso das notificações do perfil pessoal ao perfil de trabalho"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Serviços de assistente de RV"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Nenhuma app instalada pediu para ser executada como serviço de assistente de RV."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Permitir que o serviço de RV tenha acesso a <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Permitir acesso para gerir todos os ficheiros"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Permita que esta app leia, modifique e elimine todos os ficheiros neste dispositivo ou em qualquer volume de armazenamento ligado. Se a autorização for concedida, a app poderá aceder aos ficheiros sem o seu conhecimento explícito."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Pode aceder a todos os ficheiros"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Apps com ativação por voz"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Permitir ativação por voz"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"A ativação por voz ativa as apps aprovadas, em modo mãos-livres, usando o comando de voz. A deteção adaptável integrada garante que os dados permanecem privados apenas para si.\n\n"<a href="">"Mais sobre a deteção adaptável protegida"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Notificações em ecrã inteiro"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Permitir notificações desta app em ecrã inteiro"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Permita que esta app mostre notificações que ocupam o ecrã inteiro quando o dispositivo está bloqueado. As apps podem usá-las para destacar alarmes, chamadas recebidas ou outras notificações urgentes."</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"A app <xliff:g id="APP_LABEL">%1$s</xliff:g> consumiu mais bateria do que o habitual em segundo plano"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"A app <xliff:g id="APP_LABEL">%1$s</xliff:g> consumiu mais bateria em primeiro plano"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"A app <xliff:g id="APP_LABEL">%1$s</xliff:g> consumiu mais bateria do que o habitual em primeiro plano"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Elevada utilização da bateria"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Elevada utilização da bateria em segundo plano"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Elevada utilização da bateria em primeiro plano"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"navegação no sistema, navegação com 2 botões, navegação com 3 botões, navegação por gestos, deslizar rapidamente"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Assistente digital"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Deslizar rapidamente para invocar assistente"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Deslize rapidamente para cima a partir de um canto inferior para invocar a app de assistente digital."</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Deslize rapidamente para cima a partir de um canto inferior para invocar a app de assistente digital"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Prima sem soltar Página inicial para chamar o Assistente"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Prima sem soltar o botão página inicial para invocar a app de assistente digital."</string>
     <string name="low_label" msgid="6525629096999711220">"Baixa"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"dados, chave de acesso, palavra-passe"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"automático, preenchimento, preenchimento automático, dados, chave de acesso, palavra-passe"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Certifique-se de que confia nesta app&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=O Preenchimento automático do Google&gt;%1$s&lt;/xliff:g&gt; utiliza o que está no ecrã para determinar o que pode ser preenchido automaticamente."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Usar a &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; A &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; usa o que está no ecrã para determinar o que pode ser preenchido automaticamente. Entre outras informações, a partir de agora, as palavras-passe e as chaves de acesso novas vão ser guardadas aqui."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Use a app &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Entre outras informações, a partir de agora, as palavras-passe e as chaves de acesso novas vão ser guardadas aqui. A app &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; pode usar o que está no ecrã para determinar o que pode ser preenchido automaticamente."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Palavras-passe, chaves de acesso e serviços de dados"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Desativar %1$s?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Desativar este serviço?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; As informações guardadas, como palavras-passe, chaves de acesso, métodos de pagamento e outras informações, não vão ser preenchidas quando iniciar sessão. Para usar as informações guardadas, escolha uma palavra-passe, uma chave de acesso ou um serviço de dados."</string>
@@ -4226,10 +4336,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <string name="enable_angle_as_system_driver" msgid="4648827560023949786">"Experimental: ativar ANGLE"</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Aviso: ative o ANGLE como controlador predefinido do OpenGL ES. Esta funcionalidade é uma experiência e pode não ser compatível com algumas apps de câmara e vídeo."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"É necessário reiniciar para alterar o controlador do OpenGL ES do sistema"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Alterações de compatibilidade da aplicação"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Ativar/desativar alterações de compatibilidade das apps"</string>
@@ -4858,4 +4966,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Análise de apps enganadoras"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Verifique a atividade de apps para detetar phishing"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Usar análise para detetar apps enganadoras"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Usar análise para detetar apps enganadoras no perfil de trabalho"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-pt/arrays.xml b/res/values-pt/arrays.xml
index c144b2b..cd9c222 100644
--- a/res/values-pt/arrays.xml
+++ b/res/values-pt/arrays.xml
@@ -361,7 +361,7 @@
   </string-array>
   <string-array name="vpn_states">
     <item msgid="2262719249581510939">"Desconectado"</item>
-    <item msgid="9141074028293812365">"Inicializando..."</item>
+    <item msgid="9141074028293812365">"Iniciando…"</item>
     <item msgid="2234425878608626285">"Conectando..."</item>
     <item msgid="27547778933579155">"Conectado"</item>
     <item msgid="893506841727300393">"Tempo limite"</item>
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Depois de um minuto"</item>
     <item msgid="1574040255478150028">"Depois de cinco minutos"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 2af553a..d2dbe4d 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -86,7 +86,7 @@
     <string name="progress_scanning" msgid="2564746192843011826">"Pesquisar"</string>
     <string name="bluetooth_no_devices_found" msgid="7704539337219953182">"Nenhum dispositivo Bluetooth encontrado."</string>
     <string name="bluetooth_notif_ticker" msgid="209515545257862858">"Solicitação de pareamento Bluetooth"</string>
-    <string name="bluetooth_notif_title" msgid="1196532269131348647">"Solicitação de pareamento"</string>
+    <string name="bluetooth_notif_title" msgid="1196532269131348647">"Pedido de pareamento"</string>
     <string name="bluetooth_notif_message" msgid="5584717784198086653">"Toque para parear com <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_devices_card_off_title" msgid="1320149821945129127">"Bluetooth desativado"</string>
     <string name="bluetooth_devices_card_off_summary" msgid="2276527382891105858">"Toque para ativar"</string>
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Desativar LE Audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Desativa o recurso de áudio Bluetooth de baixo consumo caso o hardware do dispositivo tenha essa opção."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Mostrar a chave do LE Audio nos Detalhes do dispositivo"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Ativar a lista de permissões de LE Audio"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Ative o recurso de lista de permissões de áudio Bluetooth de baixo consumo."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Ignorar lista de permissões do áudio Bluetooth de baixo consumo"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Usar o LE Audio por padrão, mesmo que o periférico dele não tenha sido verificado para atender aos critérios da lista de permissões."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Dispositivos portáteis de mídia"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Dispositivos de chamada"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Outros dispositivos"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Dispositivos salvos"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Associado com a conta"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Usado anteriormente com a conta"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"O Bluetooth será ativado para o pareamento"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Preferências de conexão"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Conectados anteriormente"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Escreva nos campos de texto"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignorar todos os pressionamentos de botão com a stylus"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Stylus"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Compartilhamento de áudio"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Compartilhar áudio"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Ligações e alarmes"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Data e hora"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Limpar"</string>
@@ -273,8 +287,7 @@
     <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_location_off" msgid="8568995909147566720">"O acesso à localização está desativado para apps e serviços. A localização do dispositivo ainda poderá ser enviada aos socorristas quando você ligar ou enviar uma mensagem de texto para um número de emergência."</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Saiba mais sobre as configurações de localização"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Contas"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Segurança"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Criptografia e credenciais"</string>
@@ -407,7 +420,7 @@
     <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Mais"</string>
     <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Como funciona"</string>
     <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"O relógio precisa estar desbloqueado, no pulso e perto do smartphone. Não é necessário desbloquear o relógio novamente enquanto ele está no seu pulso."</string>
-    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Quando este smartphone estiver desbloqueado, você vai receber uma notificação no relógio. Se ele foi desbloqueado sem querer, toque na notificação para bloquear o dispositivo de novo."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Quando este smartphone for desbloqueado, você vai receber uma notificação no relógio. Se ele foi desbloqueado sem querer, toque na notificação para bloquear o dispositivo de novo."</string>
     <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Você no controle"</string>
     <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Você pode remover seu relógio do recurso \"Desbloqueio do relógio\" a qualquer momento nas Configurações."</string>
     <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Toque em uma notificação"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Perfil de trabalho"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Espaço particular"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Ocultar apps em uma pasta particular"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Desbloquear usando o bloqueio de tela"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Mostrar o Espaço particular"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Ocultar quando bloqueado"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Ocultar o Espaço particular quando bloqueado"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Oculte o Espaço particular na sua lista de apps para que outras pessoas não saibam que ele está no dispositivo"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Acessar o Espaço particular quando oculto"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Pesquisar \"Espaço particular\" na barra de pesquisa"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Tocar no bloco Espaço particular"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Desbloquear seu Espaço particular"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Desativado"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Ativado"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Sistema"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Criar Espaço particular"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Excluir o Espaço particular"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"O Espaço particular foi criado"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"O Espaço particular já existe"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Não foi possível criar um Espaço particular"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"O Espaço particular foi excluído"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Não foi possível excluir o Espaço particular"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Defina um bloqueio de tela"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Para usar o Espaço particular, defina um bloqueio de tela neste dispositivo."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Definir bloqueio de tela"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Cancelar"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Cancelar"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Configurar"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Configurar o Espaço particular"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Oculte apps particulares em um espaço seguro que só você pode acessar"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Como funciona"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Você pode acessar o Espaço particular na parte de baixo da sua lista de apps"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Os apps no Espaço particular ficam protegidos por um bloqueio"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"As notificações de apps no Espaço particular ficam ocultas quando ele está bloqueado"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Os apps do Espaço particular não aparecem na Gestão de permissões, no painel de privacidade e em outras configurações quando esse espaço está bloqueado"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Configurando Espaço particular…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"O Espaço particular fica protegido por um bloqueio"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"As informações de uso de apps do Espaço particular ficam ocultas quando ele está bloqueado"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Acessar o Espaço particular da sua lista de apps"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Não foi possível configurar o Espaço particular"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Tente de novo ou volte mais tarde"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Tentar de novo"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Usar bloqueio de tela para desbloquear?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Você pode desbloquear o Espaço particular da mesma maneira que desbloqueia seu dispositivo ou escolher um bloqueio diferente"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Usar bloqueio de tela"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Escolher novo bloqueio"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Tudo pronto!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Para acessar o Espaço particular, deslize de baixo para cima na tela inicial e role para baixo"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Concluído"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Role a tela para baixo para acessar o Espaço particular"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Faça login para configurar o Espaço particular"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"É possível adicionar até <xliff:g id="COUNT">%d</xliff:g> digitais"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Você adicionou o número máximo de impressões digitais"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Não é possível adicionar mais impressões digitais"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Conectar"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Desconectar"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Parear e conectar"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Com o Bluetooth ativado, o dispositivo pode se comunicar com dispositivos próximos."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Com o Bluetooth ativado, o dispositivo pode se comunicar com dispositivos próximos"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Quando o Bluetooth está ativado, seu dispositivo pode se comunicar com outros dispositivos Bluetooth por perto.\n\nPara melhorar a experiência, os apps e serviços ainda podem procurar dispositivos por perto a qualquer momento, mesmo com o Bluetooth desativado. Isso pode ser usado, por exemplo, para aprimorar serviços e recursos baseados na localização. Mude essa opção nas configurações de busca por Bluetooth."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Mudar"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Detalhes do dispositivo"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Permitir que o ART verifique o bytecode de apps depuráveis"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Mostrar taxa de atualização"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Mostrar a taxa de atualização de tela atual"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Mostrar a proporção HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Mostrar a proporção HDR/SDR atual"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Exigir desbloqueio de dispositivo para usar a NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -792,7 +867,7 @@
     <string name="wifi_configure_settings_preference_summary_wakeup_on" msgid="7822368955551467382">"O Wi‑Fi é reativado automaticamente"</string>
     <string name="wifi_configure_settings_preference_summary_wakeup_off" msgid="5710203586018223864">"O Wi‑Fi não é reativado automaticamente"</string>
     <string name="wifi_menu_p2p" msgid="5234165837732940385">"Wi-Fi Direct"</string>
-    <string name="wifi_empty_list_wifi_off" msgid="7697422506708419298">"Para ver as redes disponíveis, ative o Wi-Fi."</string>
+    <string name="wifi_empty_list_wifi_off" msgid="7697422506708419298">"Para acessar as redes disponíveis, ative o Wi-Fi."</string>
     <string name="wifi_empty_list_wifi_on" msgid="2448010040478321376">"Procurando redes…"</string>
     <string name="wifi_empty_list_user_restricted" msgid="454861411536708709">"Você não tem permissão para alterar a rede Wi-Fi."</string>
     <string name="wifi_settings_scanning_required_title" msgid="1088663325396007484">"Ativar a busca por Wi‑Fi?"</string>
@@ -1062,7 +1137,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Continuar usando apps com a tela dobrada"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Aumenta automaticamente a taxa de atualização de 60 para <xliff:g id="ID_1">%1$s</xliff:g> Hz em alguns conteúdos. Maior uso da bateria."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Aumenta automaticamente a taxa de atualização para <xliff:g id="ID_1">%1$d</xliff:g> Hz para alguns conteúdos. Maior uso da bateria."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Forçar taxa de atualização máxima"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Maior taxa de atualização para melhoria na resposta tátil e na qualidade das animações. Maior uso da bateria."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Reconhecimento de tela em uso"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Configurações compartilhadas"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APNs"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Editar ponto de acesso"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Adicionar ponto de acesso"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Sem definição"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Não definido"</string>
     <string name="apn_name" msgid="6677695784108157953">"Nome"</string>
@@ -1320,6 +1396,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN ativado"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN desativado"</string>
     <string name="bearer" msgid="3231443241639159358">"Portador"</string>
+    <string name="network_type" msgid="748590707422733595">"Tipo de rede"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Não especificado"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Tipo de MVNO"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"Valor de MVNO"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Excluir APN"</string>
@@ -1429,7 +1507,7 @@
     <string name="location_app_permission_summary_location_on" msgid="7552095451731948984">"{count,plural, =1{# app de {total} tem acesso à localização}one{# app de {total} tem acesso à localização}other{# apps de {total} têm acesso à localização}}"</string>
     <string name="location_category_recent_location_access" msgid="2558063524482178146">"Acesso recente"</string>
     <string name="location_recent_location_access_see_all" msgid="4203102419355323325">"Ver tudo"</string>
-    <string name="location_recent_location_access_view_details" msgid="5803264082558504544">"Ver detalhes"</string>
+    <string name="location_recent_location_access_view_details" msgid="5803264082558504544">"Mais detalhes"</string>
     <string name="location_no_recent_apps" msgid="6814206631456177033">"Nenhum app solicitou a localização recentemente"</string>
     <string name="location_no_recent_accesses" msgid="6031735777805464247">"Nenhum app acessou a localização recentemente"</string>
     <string name="location_high_battery_use" msgid="4277318891200626524">"Uso da bateria elevado"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Usar o botão de acessibilidade para abrir"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Mantenha as teclas de volume pressionadas para abrir"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Toque três vezes na tela para abrir"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Tocar três vezes na tela com dois dedos para abrir"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Usar gesto para abrir"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Usar o gesto de acessibilidade"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Para usar esse recurso, toque no botão de acessibilidade <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> na parte inferior da tela.\n\nPara alternar entre os recursos, toque no botão de acessibilidade e o pressione."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Para usar esse recurso, toque no botão de acessibilidade na sua tela."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Para usar esse recurso, toque nas duas teclas de volume e as mantenha pressionadas."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Para iniciar ou interromper a ampliação, toque três vezes em qualquer lugar da tela."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Para iniciar ou interromper a ampliação, toque três vezes em qualquer lugar da tela com dois dedos."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Para usar esse recurso, deslize de baixo para cima na tela com dois dedos.\n\nPara alternar entre os recursos, deslize de baixo para cima com dois dedos, sem soltar."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Para usar esse recurso, deslize de baixo para cima na tela com três dedos.\n\nPara alternar entre os recursos, deslize de baixo para cima com três dedos, sem soltar."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Para usar um recurso de acessibilidade, deslize de baixo para cima na tela com dois dedos.\n\nPara alternar entre recursos, deslize de baixo para cima com dois dedos, sem soltar."</string>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Manter as teclas de volume pressionadas"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"manter as teclas de volume pressionadas"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Toque nas duas teclas de volume e as mantenha pressionadas"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"Tocar três vezes na tela com dois dedos"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"tocar três vezes na tela com dois dedos"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"tocar na tela 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>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Usar vibração e retorno tátil"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Vibração do alarme"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Vibração de mídia"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Vibração do teclado"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Vibração do toque"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Vibração das notificações"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Feedback por toque"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> restantes"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> até carregar"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Tempo de tela"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Tempo em segundo plano"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Bateria fraca"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Permitir que o app seja executado em segundo plano"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Limitar atividade em segundo plano?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Se você limitar as atividades em segundo plano de um app, ele poderá apresentar mau funcionamento"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Como o app não está configurado para otimizar bateria, não é possível restringi-lo.\n\nPara restringir, ative a otimização."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Gerenciar uso da bateria"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Permitir o uso em segundo plano"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Ative para receber atualizações em tempo real ou desative para economizar bateria"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Sem restrições"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Otimizado"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Restrito"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"desde a última carga completa"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Apps do sistema"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Apps desinstalados"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Outros"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Tempo restante estimado"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Até a carga completa"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Total: menos de um minuto"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Segundo plano: menos de um minuto"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Tempo de uso: menos de um minuto"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Menos de um minuto"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Total: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Segundo plano: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Tempo de uso: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Dados móveis e Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Sincronizar dados pessoais"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Sincronizar dados de trabalho automaticamente"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Sincronizar dados particulares automaticamente"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Alterar ciclo..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Dia do mês para redefinir o ciclo de uso dos dados:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Nenhum app usou dados durante o período."</string>
@@ -2747,8 +2839,8 @@
     <string name="ssl_ca_cert_warning" msgid="3898387588657346106">"A rede pode ser monitorada"</string>
     <string name="done_button" msgid="6269449526248267">"Concluído"</string>
     <string name="ssl_ca_cert_dialog_title" msgid="1032088078702042090">"{count,plural, =1{Confiar ou remover certificado}one{Confiar ou remover certificado}other{Confiar ou remover certificados}}"</string>
-    <string name="ssl_ca_cert_info_message_device_owner" msgid="7528581447864707873">"{numberOfCertificates,plural, =1{A organização {orgName} instalou uma autoridade certificadora no seu dispositivo, o que pode permitir que ela monitore sua atividade na rede dele, incluindo e-mails, apps e sites seguros.\n\nPara ver mais informações sobre esse certificado, entre em contato com o administrador.}one{A organização {orgName} instalou uma autoridade certificadora no seu dispositivo, o que pode permitir que ela monitore sua atividade na rede dele, incluindo e-mails, apps e sites seguros.\n\nPara ver mais informações sobre esse certificado, entre em contato com o administrador.}other{A organização {orgName} instalou autoridades certificadoras no seu dispositivo, o que pode permitir que ela monitore sua atividade na rede dele, incluindo e-mails, apps e sites seguros.\n\nPara ver mais informações sobre esses certificados, entre em contato com o administrador.}}"</string>
-    <string name="ssl_ca_cert_info_message" msgid="3111724430981667845">"{numberOfCertificates,plural, =1{A organização {orgName} instalou uma autoridade certificadora para seu perfil de trabalho, o que pode permitir que ela monitore sua atividade profissional na rede, incluindo e-mails, apps e sites seguros.\n\nPara ver mais informações sobre esse certificado, entre em contato com o administrador.}one{A organização {orgName} instalou uma autoridade certificadora para seu perfil de trabalho, o que pode permitir que ela monitore sua atividade profissional na rede, incluindo e-mails, apps e sites seguros.\n\nPara ver mais informações sobre esse certificado, entre em contato com o administrador.}other{A organização {orgName} instalou autoridades certificadoras para seu perfil de trabalho, o que pode permitir que ela monitore sua atividade profissional na rede, incluindo e-mails, apps e sites seguros.\n\nPara ver mais informações sobre esses certificados, entre em contato com o administrador.}}"</string>
+    <string name="ssl_ca_cert_info_message_device_owner" msgid="7528581447864707873">"{numberOfCertificates,plural, =1{A organização {orgName} instalou uma autoridade certificadora no seu dispositivo, o que pode permitir que ela monitore sua atividade na rede dele, incluindo e-mails, apps e sites seguros.\n\nPara acessar mais informações sobre esse certificado, entre em contato com o administrador.}one{A organização {orgName} instalou uma autoridade certificadora no seu dispositivo, o que pode permitir que ela monitore sua atividade na rede dele, incluindo e-mails, apps e sites seguros.\n\nPara acessar mais informações sobre esse certificado, entre em contato com o administrador.}other{A organização {orgName} instalou autoridades certificadoras no seu dispositivo, o que pode permitir que ela monitore sua atividade na rede dele, incluindo e-mails, apps e sites seguros.\n\nPara acessar mais informações sobre esses certificados, entre em contato com o administrador.}}"</string>
+    <string name="ssl_ca_cert_info_message" msgid="3111724430981667845">"{numberOfCertificates,plural, =1{A organização {orgName} instalou uma autoridade certificadora para seu perfil de trabalho, o que pode permitir que ela monitore sua atividade profissional na rede, incluindo e-mails, apps e sites seguros.\n\nPara acessar mais informações sobre esse certificado, entre em contato com o administrador.}one{A organização {orgName} instalou uma autoridade certificadora para seu perfil de trabalho, o que pode permitir que ela monitore sua atividade profissional na rede, incluindo e-mails, apps e sites seguros.\n\nPara acessar mais informações sobre esse certificado, entre em contato com o administrador.}other{A organização {orgName} instalou autoridades certificadoras para seu perfil de trabalho, o que pode permitir que ela monitore sua atividade profissional na rede, incluindo e-mails, apps e sites seguros.\n\nPara acessar mais informações sobre esses certificados, entre em contato com o administrador.}}"</string>
     <string name="ssl_ca_cert_warning_message" msgid="4374052724815563051">"Sua atividade na rede, incluindo e-mails, apps e websites seguros, pode ser monitorada por terceiros.\n\nUma credencial confiável instalada no dispositivo permite isso."</string>
     <string name="ssl_ca_cert_settings_button" msgid="2044927302268394991">"{count,plural, =1{Verificar certificado}one{Verificar certificado}other{Verificar certificados}}"</string>
     <string name="user_settings_title" msgid="6550866465409807877">"Vários usuários"</string>
@@ -2942,7 +3034,7 @@
     <string name="cloned_app_created_summary" msgid="7277912971544890710">"Clonado"</string>
     <string name="cloned_app_creation_toast_summary" msgid="3854494347144867870">"Criando clone de <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="cloned_app_created_toast_summary" msgid="755225403495544163">"O clone de <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> foi criado"</string>
-    <string name="system_dashboard_summary" msgid="7400745270362833832">"Idiomas, gestos, tempo, backup"</string>
+    <string name="system_dashboard_summary" msgid="7400745270362833832">"Idiomas, gestos, hora, backup"</string>
     <string name="languages_setting_summary" msgid="2650807397396180351">"Idiomas do sistema, idiomas do app, preferências regionais, fala"</string>
     <string name="keywords_wifi" msgid="8156528242318351490">"wifi, Wi-Fi, conexão de rede, Internet, sem fio, dados, wi fi"</string>
     <string name="keywords_wifi_notify_open_networks" msgid="6580896556389306636">"Notificação de Wi‑Fi, notificação de wifi"</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"tamanho do texto, letras grandes, fonte grande, texto grande, baixa visão, aumentar texto, ampliador de fonte, aumento de fonte"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"tela ambiente sempre ativada, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, etiqueta, leitor"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"teclado, retorno tátil, vibrar,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Volume, vibração, Não perturbe"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Volume de mídia"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Volume da transmissão"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Mostrar todo o conteúdo das notificações"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Só mostrar conteúdo sensível quando desbloqueado"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Não mostrar nenhuma notificação"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Como você quer mostrar as notificações na tela de bloqueio?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Tela de bloqueio"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Mostre todo o conteúdo de notificação de trabalho"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Ocultar conteúdo de trabalho confidencial"</string>
@@ -3354,6 +3448,17 @@
     <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="6121016426991791557">"Período de espera para notificações"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Aplicar um período de espera a todas as notificações"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Diminuir gradualmente o volume de notificações quando você receber muitas seguidas do mesmo app"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Aplicar um período de espera a conversas"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Diminuir gradualmente o volume de notificações quando você receber muitas mensagens seguidas da mesma conversa em um curto período"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Não usar o período de espera para notificações"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Nunca diminuir o volume de notificações, independente da quantidade de notificações seguidas do mesmo app"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Vibrar quando desbloqueado"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Vibrar apenas quando a tela estiver desbloqueada"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Aplicar a perfis de trabalho"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Aplique as configurações de período de espera para notificações do seu perfil pessoal ao seu perfil de trabalho"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Serviços de ajuda para RV"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Nenhum app instalado solicitou ser executado como serviço de ajuda para RV."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Permitir acesso ao serviço de RV para <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Acesso para gerenciar todos os arquivos"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Permitir que o app leia, modifique e exclua todos os arquivos deste dispositivo ou de qualquer volume de armazenamento conectado. Se a permissão for concedida, o app poderá acessar arquivos sem nenhum aviso prévio."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Pode acessar todos os arquivos"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Apps com ativação por voz"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Permitir ativação por voz"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"A ativação por voz ativa apps aprovados usando comando de voz. A detecção adaptativa integrada garante a privacidade dos seus dados.\n\n"<a href="">"Saiba mais sobre a detecção adaptativa"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Notificações em tela cheia"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Permitir que esse app mostre notificações em tela cheia"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Permita que o app mostre notificações que ocupam a tela inteira quando o dispositivo estiver bloqueado. Os apps poderão usar essa permissão para destacar alarmes, ligações recebidas ou outras notificações urgentes."</string>
@@ -3781,7 +3889,7 @@
     <string name="storage_summary" msgid="5903562203143572768">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> usado - <xliff:g id="FREE_SPACE">%2$s</xliff:g> livres"</string>
     <string name="display_dashboard_summary" msgid="1599453894989339454">"Tema escuro, tamanho da fonte, brilho"</string>
     <string name="memory_summary" msgid="8221954450951651735">"Média de <xliff:g id="USED_MEMORY">%1$s</xliff:g> de <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> de memória usados"</string>
-    <string name="users_summary" msgid="8473589474976307510">"Conectado como <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
+    <string name="users_summary" msgid="8473589474976307510">"Conta conectada: <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
     <string name="android_version_summary" msgid="7818952662015042768">"Atualizado para o Android <xliff:g id="VERSION">%1$s</xliff:g>"</string>
     <string name="android_version_pending_update_summary" msgid="5404532347171027730">"Atualização disponível"</string>
     <string name="disabled_by_policy_title" msgid="6852347040813204503">"Ação bloqueada pela política de trabalho"</string>
@@ -3878,7 +3986,7 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Atualizado há <xliff:g id="ID_1">^2</xliff:g>"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Atualizado pela <xliff:g id="ID_1">^1</xliff:g> agora mesmo"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Atualizado agora"</string>
-    <string name="launch_wifi_text" msgid="976421974332512894">"Ver detalhes"</string>
+    <string name="launch_wifi_text" msgid="976421974332512894">"Mais detalhes"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Economia de dados"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Dados ilimitados"</string>
     <string name="restrict_background_blocklisted" msgid="2308345280442438232">"Os dados em segundo plano estão desativados"</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> usou bateria além do normal em segundo plano"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> usou mais bateria em primeiro plano"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> usou bateria além do normal em primeiro plano"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Alto uso da bateria"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Alto uso da bateria em segundo plano"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Alto uso da bateria em primeiro plano"</string>
@@ -3995,7 +4105,7 @@
     <string name="double_twist_for_camera_mode_summary" msgid="592503740044744951"></string>
     <string name="system_navigation_title" msgid="4890381153527184636">"Modo de navegação"</string>
     <string name="swipe_up_to_switch_apps_title" msgid="6677266952021118342">"Navegação com dois botões"</string>
-    <string name="swipe_up_to_switch_apps_summary" msgid="1415457307836359560">"Para mudar de app, deslize o botão home para cima. Para ver todos os apps, deslize para cima novamente. Para retornar, toque no botão \"Voltar\"."</string>
+    <string name="swipe_up_to_switch_apps_summary" msgid="1415457307836359560">"Para mudar de app, deslize o botão home para cima. Para acessar todos os apps, deslize para cima novamente. Para retornar, toque no botão \"Voltar\"."</string>
     <string name="emergency_settings_preference_title" msgid="6183455153241187148">"Segurança e emergência"</string>
     <string name="emergency_dashboard_summary" msgid="401033951074039302">"SOS de emergência, informações de saúde, alertas"</string>
     <string name="edge_to_edge_navigation_title" msgid="714427081306043819">"Navegação por gestos"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"navegação no sistema, navegação com dois botões, navegação com três botões, navegação por gestos, deslizar"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Assistente digital"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Deslize para invocar o assistente"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Deslize de baixo para cima no canto da tela para invocar o app assistente digital."</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Deslize de baixo para cima no canto da tela para invocar o app assistente digital"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Pressione o botão home para ativar o Google Assistente"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Toque e pressione o botão home para invocar o app assistente digital."</string>
     <string name="low_label" msgid="6525629096999711220">"Baixa"</string>
@@ -4030,9 +4140,9 @@
     <string name="one_handed_action_pull_down_screen_summary" msgid="7582432473450036628">"A parte superior da tela se moverá para ficar ao alcance do seu polegar."</string>
     <string name="one_handed_action_show_notification_title" msgid="8789305491485437130">"Mostrar notificações"</string>
     <string name="one_handed_action_show_notification_summary" msgid="8281689861222000436">"As notificações e configurações serão exibidas."</string>
-    <string name="ambient_display_summary" msgid="2650326740502690434">"Para ver a hora, as notificações e outras informações, toque duas vezes na tela."</string>
+    <string name="ambient_display_summary" msgid="2650326740502690434">"Para acessar a hora, as notificações e outras informações, toque duas vezes na tela."</string>
     <string name="ambient_display_wake_screen_title" msgid="7637678749035378085">"Ativar a tela"</string>
-    <string name="ambient_display_tap_screen_summary" msgid="4480489179996521405">"Para ver a hora, as notificações e outras informações, toque na tela."</string>
+    <string name="ambient_display_tap_screen_summary" msgid="4480489179996521405">"Para acessar a hora, as notificações e outras informações, toque na tela."</string>
     <string name="emergency_gesture_screen_title" msgid="3280543310204360902">"SOS de emergência"</string>
     <string name="emergency_gesture_switchbar_title" msgid="7421353963329899514">"Usar o SOS de emergência"</string>
     <string name="emergency_gesture_screen_summary" msgid="6640521030845132507">"Pressione o botão liga/desliga rapidamente cinco vezes ou mais para iniciar as ações abaixo"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"dados, chave de acesso, senha"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"automático, preenchimento, preenchimento automático, dados, chave de acesso, senha"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Você precisa confiar nesse app&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=O Preenchimento automático do Google&gt;%1$s&lt;/xliff:g&gt; usa o que está na sua tela para determinar o que pode ser preenchido automaticamente."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Usar o &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt;O &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; usa o que aparece na sua tela para determinar o que pode ser preenchido automaticamente. Novas senhas, chaves de acesso e outras informações serão salvas aqui a partir de agora."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Usar &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Senhas, chaves de acesso e outras informações novas serão salvas aqui a partir de agora. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; pode usar o que aparece na tela para determinar o que pode ser preenchido automaticamente."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Senhas, chaves de acesso e serviços de dados"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Desativar %1$s?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Desativar este serviço?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Senhas, chaves de acesso, formas de pagamento e outras informações salvas não serão preenchidas quando você fizer login. Para usar suas informações salvas, escolha uma senha, uma chave de acesso ou um serviço de dados."</string>
@@ -4226,10 +4336,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <string name="enable_angle_as_system_driver" msgid="4648827560023949786">"Experimental: ativar ANGLE"</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Atenção: ative o ANGLE como o driver padrão do OpenGL ES. Esse recurso é experimental e pode não ser compatível com alguns apps de câmera e vídeo."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"É necessário reiniciar o dispositivo para mudar o driver do OpenGL ES do sistema"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Mudanças na compatibilidade do app"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Alternar mudanças de compatibilidade do app"</string>
@@ -4787,10 +4895,8 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Proporção"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"Teste uma nova proporção para esse app caso ele não tenha sido criado para caber no seu dispositivo <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Teste uma nova proporção para esse app caso ele não tenha sido criado para caber no seu dispositivo <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Talvez alguns apps não estejam otimizados para algumas proporções."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Teste uma nova proporção para um app caso ele não tenha sido criado para caber no seu dispositivo <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Teste uma nova proporção para um app caso ele não tenha sido criado para caber no seu dispositivo <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Talvez alguns apps não estejam otimizados para certas proporções."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Apps sugeridos"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Apps modificados"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Padrão do app"</string>
@@ -4860,4 +4966,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Verificação de apps enganosos"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Verificar atividades no app para detectar phishing"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Usar o recurso de verificação para detectar apps enganosos"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Usar o recurso de verificação para detectar apps enganosos que podem ser usados no perfil de trabalho"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-ro/arrays.xml b/res/values-ro/arrays.xml
index 02b5f3d..f18525f 100644
--- a/res/values-ro/arrays.xml
+++ b/res/values-ro/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"După un minut"</item>
     <item msgid="1574040255478150028">"După cinci minute"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 866366c..de03c18 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Dezactivează Bluetooth LE Audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Dezactivează funcția Bluetooth LE Audio dacă dispozitivul acceptă capacitățile de hardware LE Audio."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Comutator LE Audio în Detalii dispozitiv"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Activează Lista cu acces permis pentru Bluetooth LE Audio"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Activează funcția Listă cu acces permis pentru Bluetooth LE Audio."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Omite lista cu acces permis Bluetooth LE Audio"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Folosește în mod prestabilit LE Audio chiar dacă dispozitivul periferic LE Audio nu a fost confirmat ca respectând criteriile Allowlist."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Dispozitive media"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Dispozitive de apel"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Alte dispozitive"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Dispozitive salvate"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Asociate cu contul"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Folosit anterior cu contul"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth se va activa pentru asociere"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Preferințe pentru conexiune"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Conectat anterior"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Scrie în câmpurile text"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignoră toate apăsările de butoane ale creionului"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Creion"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Trimiterea audio"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Trimite audio"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Apeluri și alarme"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Data și ora"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Șterge"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Află mai multe despre Setările privind locația"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Conturi"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Securitate"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Criptare și date de conectare"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Profil de serviciu"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Spațiu privat"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Ascunde aplicații într-un dosar privat"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Deblochează folosind blocarea ecranului"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Afișează Spațiul privat"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Ascunde când este blocat"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Ascunde Spațiul privat când este blocat"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Pentru ca alții să nu știe că ai un Spațiu privat pe dispozitiv, ascunde-l din lista de aplicații"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Accesează Spațiul privat când este ascuns"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Caută „Spațiu privat” în bara de căutare"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Atinge cardul Spațiu privat"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Deblochează Spațiul privat"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Dezactivat"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Activat"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Sistem"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Creează un Spațiu privat"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Șterge Spațiul privat"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Spațiul privat a fost creat"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Spațiul privat există deja"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Spațiul privat nu a putut fi creat"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Spațiul privat a fost șters"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Spațiul privat nu a putut fi șters"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Setează o blocare a ecranului"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Ca să folosești Spațiul privat, setează blocarea ecranului."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Setează blocarea ecranului"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Anulează"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Anulează"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Configurează"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Configurează Spațiul privat"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Ascunde aplicațiile private într-un loc sigur la care numai tu ai acces"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Cum funcționează"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Poți accesa Spațiul privat din partea de jos a listei de aplicații"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Aplicațiile din Spațiul privat sunt protejate de o blocare"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Notificările de la aplicațiile din Spațiul privat sunt ascunse atunci când acesta este blocat"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Aplicațiile din Spațiul privat nu vor apărea în managerul de permisiuni, în tabloul de bord de confidențialitate și în alte setări atunci când Spațiul privat este blocat"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Se configurează Spațiul privat…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Spațiul privat este protejat de o blocare"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Informațiile despre utilizarea aplicațiilor din Spațiul privat sunt ascunse atunci când este blocat"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Accesează Spațiul privat din lista de aplicații"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Nu s-a putut configura Spațiul privat"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Încearcă din nou acum sau revino mai târziu"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Încearcă din nou"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Folosești blocarea ecranului pentru deblocare?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Poți să deblochezi Spațiul privat la fel cum deblochezi dispozitivul sau să alegi altă blocare"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Folosește blocarea ecranului"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Alege o nouă blocare"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Gata!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Pentru a accesa Spațiul privat, glisează în sus din partea de jos a ecranului de pornire, apoi derulează în jos"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Gata"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Derulează în jos pentru a accesa Spațiul privat"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Conectează-te pentru a configura Spațiul privat"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Poți să adaugi până la <xliff:g id="COUNT">%d</xliff:g> amprente"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Ai adăugat numărul maxim de amprente digitale"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Nu se mai pot adăuga amprente digitale"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Conectează-te"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Deconectează"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Asociază și conectează"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Activarea Bluetooth facilitează comunicarea cu alte dispozitive Bluetooth din apropiere."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Când Bluetooth este activat, dispozitivul poate să comunice cu alte dispozitive Bluetooth din apropiere.\n\nPentru a îmbunătăți experiența dispozitivului, aplicațiile și serviciile pot să caute în continuare dispozitive din apropiere chiar și atunci când Bluetooth este dezactivat. Această opțiune poate fi folosită, de exemplu, pentru a îmbunătăți funcțiile și serviciile bazate pe locație. Poți să-ți schimbi preferințele în setările pentru căutarea prin Bluetooth."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Modifică"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Detalii despre dispozitiv"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Permite ART să verifice bytecode-ul pentru aplicațiile care pot fi depanate"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Rata de actualizare"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Afișează rata de actualizare a ecranului"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Afișează raportul HDR / SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Afișează raportul HDR / SDR actual"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Solicită deblocarea dispozitivului pentru NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Continuă să folosești aplicațiile după pliere"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Ridică automat rata de actualizare de la 60 la <xliff:g id="ID_1">%1$s</xliff:g> Hz pentru unele tipuri de conținut. Mărește utilizarea bateriei."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Crește automat rata de actualizare până la <xliff:g id="ID_1">%1$d</xliff:g> Hz pentru anumite tipuri de conținut. Utilizarea bateriei crește."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Forțează rata maximă de actualizare"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Cea mai ridicată rată de actualizare, pentru receptivitate la atingere îmbunătățită și animații de calitate. Mărește utilizarea bateriei."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Atenție la ecran"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Setări comune"</string>
     <string name="apn_settings" msgid="4295467389400441299">"Nume APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Modifică punctul de acces"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Adaugă un punct de acces"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Nesetat(ă)"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Nesetată"</string>
     <string name="apn_name" msgid="6677695784108157953">"Nume"</string>
@@ -1320,6 +1397,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN activat"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN dezactivat"</string>
     <string name="bearer" msgid="3231443241639159358">"Purtător"</string>
+    <string name="network_type" msgid="748590707422733595">"Tip de rețea"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Nespecificată"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Tip MVNO"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"Valoare MVNO"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Ștergeți APN"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Folosește butonul de accesibilitate pentru a deschide"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Apasă lung butoanele de volum pentru a deschide"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Atinge ecranul de trei ori ca să deschizi"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Atinge de trei ori ecranul cu două degete pentru a deschide"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Folosește un gest pentru a deschide"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Folosește gestul de accesibilitate"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Ca să folosești această funcție, atinge butonul de accesibilitate <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> din partea de jos a ecranului.\n\nCa să comuți între funcții, atinge lung butonul de accesibilitate."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Ca să folosești această funcție, atinge butonul de accesibilitate de pe ecran."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Ca să folosești această funcție, apasă lung ambele butoane de volum."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Pentru a porni și a opri mărirea, atinge de trei ori oriunde pe ecran."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Pentru a porni și a opri mărirea, atinge de trei ori oriunde pe ecran cu două degete."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Ca să folosești această funcție, glisează în sus cu două degete din partea de jos a ecranului.\n\nCa să comuți între funcții, glisează în sus cu două degete și ține apăsat."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Ca să folosești această funcție, glisează în sus cu trei degete din partea de jos a ecranului.\n\nCa să comuți între funcții, glisează în sus cu trei degete și ține apăsat."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Ca să folosești o funcție de accesibilitate, glisează în sus cu două degete din partea de jos a ecranului.\n\nCa să comuți între funcții, glisează în sus cu două degete și ține apăsat."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Apasă lung butoanele de volum"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"apasă lung butoanele 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_triple_tap" msgid="6687765191490040899">"Atinge de trei ori ecranul cu două degete"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"atinge de trei ori ecranul cu două degete"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"atinge ecranul 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>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Folosește vibrațiile și feedbackul tactil"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Vibrație pentru alarmă"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Vibrație pentru conținut media"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Vibrația tastaturii"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Vibrațiile soneriei"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Vibrații la notificare"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Feedback la atingere"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"Timp rămas: <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> până la finalizarea încărcării"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Durata de folosire a dispozitivului"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Timpul în fundal"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Nivel scăzut al bateriei"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Permite aplicației să ruleze în fundal"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Limitezi activitatea de fundal?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Dacă limitezi activitatea de fundal pentru o aplicație, aceasta se poate comporta necorespunzător"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Aplicația nu optimizează bateria, deci nu o poți restricționa.\n\nPentru a o restricționa, activează optimizarea bateriei."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Gestionează utilizarea bateriei"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Permite folosirea în fundal"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Activează pentru actualizări în timp real, dezactivează pentru a economisi bateria"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Fără restricții"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Optimizată"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Limitată"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"de la ultima încărcare completă"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Aplicații de sistem"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Aplicații dezinstalate"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Altele"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Timp estimat rămas"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Până la încărcarea completă"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Total: mai puțin de un minut"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"În fundal: mai puțin de un minut"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Durata de folosire a dispozitivului: mai puțin de un minut"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Mai puțin de un minut"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Total: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"În fundal: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Durata de folosire a dispozitivului: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Date mobile și Wi-Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Sincronizare automată a datelor"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Autosincronizare date serviciu"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Sincronizează automat datele private"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Schimbă data ciclului..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Ziua din lună pentru resetarea ciclului de utilizare a datelor:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Nicio aplic. nu a utilizat date în ac. perioadă."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"dimensiunea textului, caractere mari, font mare, text mare, vedere slabă, mărește textul, instrument de mărire a fontului, mărirea fontului"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"afișaj ambiental activat permanent, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, etichetă, cititor"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"tastatură, feedback tactil, vibrație"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Volum, vibrații, Nu deranja"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Volum media"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Volumul proiectării"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Afișează integral conținutul notificărilor"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Afișează conținutul sensibil doar când ecranul este deblocat"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Nu afișa nicio notificare"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Cum vrei să se afișeze ecranul de blocare?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Ecran de blocare"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Afișează tot conținutul notificărilor de serviciu"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Ascunde conținutul de lucru sensibil"</string>
@@ -3354,6 +3449,17 @@
     <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="6121016426991791557">"Reducerea volumului notificărilor"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Aplică reducerea volumului tuturor notificărilor"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Redu treptat volumul notificărilor când primești multe notificări succesive de la aceeași aplicație"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Aplică reducerea volumului conversațiilor"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Redu treptat volumul notificărilor când primești multe mesaje din același chat într-un interval de timp scurt"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Nu folosi reducerea volumului notificărilor"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Nu reduce niciodată volumul notificărilor, indiferent de numărul de notificări succesive de la aceeași aplicație"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Vibrează la deblocare"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Vibrează doar când ecranul este deblocat"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Aplică profilurilor de serviciu"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Aplică setările pentru reducerea volumului notificărilor din profilul personal în profilul de serviciu"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Servicii de ajutor pentru RV"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Nicio aplicație instalată nu a solicitat să fie rulată ca un serviciu de ajutor pentru RV."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Permiți accesul la serviciul RV pentru <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Permite gestionarea fișierelor"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Permite aplicației să citească, să modifice și să șteargă toate fișierele de pe dispozitiv sau din spațiile de stocare conectate. Dacă îi permiți, aplicația poate accesa fișierele fără consimțământul tău explicit."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Poate accesa toate fișierele"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Aplicații cu activare vocală"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Permite activarea vocală"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Activarea vocală pornește aplicațiile aprobate în modul hands-free, prin comenzi vocale. Detectarea adaptivă protejată încorporată se asigură că datele tale rămân private și doar tu poți să le vezi.\n\n"<a href="">"Mai multe despre detectarea adaptivă protejată"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Notificări pe ecran complet"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Permite notificările pe ecran complet de la această aplicație"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Permite aplicației să afișeze notificări care ocupă întregul ecran când dispozitivul e blocat. Aplicațiile le pot folosi pentru a evidenția alarme, apeluri primite sau alte informații urgente."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> a consumat mai multă baterie decât de obicei în fundal"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> a consumat mai multă baterie în prim-plan"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> a consumat mai multă baterie decât de obicei în prim-plan"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Utilizare intensă a bateriei"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Utilizare intensă a bateriei în fundal"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Utilizare intensă a bateriei în prim-plan"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"navigarea sistemului, navigare cu 2 butoane, navigare cu 3 butoane, navigare prin gesturi, glisare"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Asistent digital"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Glisează pentru a invoca asistentul"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Glisează în sus dintr-un colț de jos pentru a invoca aplicația asistent digital."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Ține apăsat butonul ecran de pornire pentru Asistent"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Apasă lung butonul ecran de pornire pentru a invoca aplicația asistent digital."</string>
     <string name="low_label" msgid="6525629096999711220">"Scăzută"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"date, cheie de acces, parolă"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"auto, completare, completare automată, date, cheie de acces, parolă"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Asigură-te că ai încredere în această aplicație&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Completarea automată Google&gt;%1$s&lt;/xliff:g&gt; folosește conținutul de pe ecran pentru a stabili ce se poate completa automat."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Folosești &lt;xliff:g id=app_name example=Furnizorul&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Furnizorul&gt;%1$s&lt;/xliff:g&gt; folosește elementele de pe ecran pentru a stabili ce se poate completa automat. De acum înainte, parolele noi, cheile de acces și alte informații se vor salva aici."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Folosește &lt;xliff:g id=app_name example=Furnizorul&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Noile parole, chei de acces și alte informații se vor salva aici de acum înainte. &lt;xliff:g id=app_name example=Furnizorul&gt;%1$s&lt;/xliff:g&gt; poate folosi ce se află pe ecran pentru a stabili ce se poate completa automat."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Parole, chei de acces și servicii de date"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Dezactivezi %1$s?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Dezactivezi serviciul?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Informațiile salvate, cum ar fi parole, chei de acces, metode de plată și altele, nu vor fi completate când te conectezi. Pentru a folosi informațiile salvate, alege o parolă, o cheie de acces sau un serviciu de date."</string>
@@ -4227,7 +4339,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">"Experimental: activează ANGLE"</string>
-    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Avertisment: activează ANGLE ca driver OpenGL ES prestabilit. Funcția este în varianta experimentală și poate să nu fie compatibilă cu unele aplicații video și pentru camera foto."</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Avertisment: activează ANGLE ca driver OpenGL ES prestabilit. Funcția este experimentală și poate să nu fie compatibilă cu unele aplicații pentru camera foto și pentru videoclipuri."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"Este nevoie de o repornire pentru a schimba driverul de sistem OpenGL ES"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Modificări ale compatibilității aplicației"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Activează / dezactivează modificările compatibilității aplicației"</string>
@@ -4786,10 +4898,8 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Raport de dimensiuni"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"Încearcă un nou raport de dimensiuni ca să vezi aplicația dacă nu a fost creată pentru a se potrivi cu <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Încearcă un nou raport de dimensiuni ca să vezi aplicația dacă nu a fost creată pentru a se potrivi cu <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Unele aplicații pot să nu fie optimizate pentru anumite raporturi de dimensiuni."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Încearcă un nou raport de dimensiuni ca să vezi aplicația dacă nu a fost creată pentru a se potrivi cu <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Încearcă un nou raport de dimensiuni ca să vezi aplicația dacă nu a fost creată pentru a se potrivi cu <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Unele aplicații pot să nu fie optimizate pentru anumite raporturi de dimensiuni."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Aplicații sugerate"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Ap. modificate"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Prestabilit pentru aplicație"</string>
@@ -4859,4 +4969,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Se caută aplicații înșelătoare"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Verifică activitatea în aplicații pentru phishing"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Folosește detectarea aplicațiilor înșelătoare"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Folosește detectarea aplicațiilor înșelătoare pentru serviciu"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-ru/arrays.xml b/res/values-ru/arrays.xml
index b4b05f1..762be14 100644
--- a/res/values-ru/arrays.xml
+++ b/res/values-ru/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Через 1 минуту"</item>
     <item msgid="1574040255478150028">"Через 5 минут"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 5cb93fe..21ea3aa 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Отключить Bluetooth LE Audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Отключить Bluetooth LE Audio, если доступны аппаратные возможности"</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Переключатель LE Audio в сведениях об устройстве"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Включить список разрешений Bluetooth LE Audio"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Включить функцию \"Список разрешений Bluetooth LE Audio\""</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Обходить белый список Bluetooth LE Audio"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Использовать LE Audio по умолчанию, даже если периферийное устройство LE Audio не соответствует критериям белого списка"</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Медиаустройства"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Устройства для совершения звонков"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Другие устройства"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Сохраненные устройства"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Связано с аккаунтом"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Уже использовались с аккаунтом"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Будет включен Bluetooth"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Настройки подключения"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Ранее подключенные устройства"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Разрешить рукописный ввод в текстовых полях"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Игнорировать нажатия кнопок стилусом"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Стилус"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Передача аудио"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Передавать аудио"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Звонки и будильники"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Дата и время"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Прокси-сервер"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Очистить"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Загрузка…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Приложения с доступом к устройствам поблизости могут определять относительное местоположение подключенных устройств."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Доступ к данным о местоположении для приложений и сервисов отключен. Если вы позвоните по номеру экстренной службы или отправите на него сообщение, данные о местоположении вашего устройства могут быть переданы спасателям."</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Подробнее о настройках местоположения…"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Аккаунты"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Безопасность"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Шифрование и учетные данные"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Рабочий профиль"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Личное пространство"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Папка, в которую можно прятать приложения"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Открыть, используя способ разблокировки экрана"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Показать личное пространство"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Скрывать, когда доступ заблокирован"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Скрыть личное пространство, если доступ к нему заблокирован"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Вы можете скрыть личное пространство из списка приложений"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Доступ к личному пространству, когда оно скрыто"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Введите запрос \"Личное пространство\" в строку поиска"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Выберите параметр \"Личное пространство\""</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Разблокируйте личное пространство"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Отключено"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Включено"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Система"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Создать личное пространство"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Удалить личное пространство"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Личное пространство создано."</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Личное пространство уже создано."</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Не удалось создать личное пространство."</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Личное пространство удалено."</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Не получилось удалить личное пространство."</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Настройте блокировку экрана"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Она нужна, чтобы использовать личное пространство."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Настроить"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Отмена"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Отмена"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Настройка"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Настройки личного пространства"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Если вы хотите, чтобы некоторые приложения были видны только вам, добавьте их в личное пространство"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Как это работает"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Вы можете перейти в личное пространство в нижней части списка приложений"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Доступ к приложениям в личном пространстве можно заблокировать"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Когда доступ к личному пространству заблокирован, уведомления из добавленных в него приложений скрываются."</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Когда доступ к личному пространству заблокирован, приложения в нем не видны в меню и панели управления разрешениями, а также в других настройках."</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Настройка личного пространства…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Доступ к личному пространству можно заблокировать"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Когда личное пространство заблокировано, информация об использовании приложений в нем скрыта"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Открывайте личное пространство из списка приложений"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Не удалось создать личное пространство"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Повторите попытку или вернитесь позже."</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Повторить"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Использовать разблокировку экрана?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Вы можете использовать тот же способ разблокировки, который используется для экрана, или выбрать другой."</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Использовать блокировку экрана"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Выбрать другой способ"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Готово!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Чтобы перейти в личное пространство, проведите по главному экрану снизу вверх и прокрутите страницу вниз."</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Готово"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Чтобы перейти в личное пространство, прокрутите экран вниз."</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Войдите в аккаунт, чтобы настроить личное пространство"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Максимальное количество отпечатков пальца, которые можно добавить: <xliff:g id="COUNT">%d</xliff:g>"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Вы уже добавили максимальное количество отпечатков"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Больше нельзя добавить отпечатки пальцев"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Подключить"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Отключить"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Установить соединение и подключить"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Функция Bluetooth позволяет устанавливать подключение к другим Bluetooth-устройствам."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Функция Bluetooth позволяет устанавливать подключение к устройствам Bluetooth поблизости.\n\nОбратите внимание, что для улучшения работы устройства, например повышения точности геолокации, приложения и сервисы могут искать устройства поблизости, даже если вы отключили Bluetooth. Чтобы запретить им это, отключите поиск устройств Bluetooth."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Изменить"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Об устройстве"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Разрешить ART проверять байт-код приложений, доступных для отладки"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Частота обновления"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Показывать текущую частоту обновления экрана"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Показывать отношение HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Показывать текущее отношение HDR/SDR"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Запрашивать разблокировку устройства для использования NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Продолжать использовать приложения при складывании"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Плавный экран"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Автоматически изменять частоту обновления экрана с 60 до <xliff:g id="ID_1">%1$s</xliff:g> Гц для некоторых типов контента. При этом батарея будет разряжаться быстрее."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Автоматически увеличивать частоту обновления экрана до <xliff:g id="ID_1">%1$d</xliff:g> Гц для некоторых типов контента. При этом батарея будет разряжаться быстрее."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Использовать пиковую частоту обновления"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Высокая частота обновления экрана улучшает ответ на касания и делает анимацию более плавной. При этом батарея разряжается быстрее."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Адаптивный спящий режим"</string>
@@ -1151,8 +1227,8 @@
     <string name="force_bold_text" msgid="4620929631102086716">"Полужирный шрифт"</string>
     <string name="title_font_size" msgid="570613010306330622">"Размер шрифта"</string>
     <string name="short_summary_font_size" msgid="8444689613442419978">"Изменение размера текста"</string>
-    <string name="sim_lock_settings" msgid="7331982427303002613">"Настройки привязки к региону/оператору"</string>
-    <string name="sim_lock_settings_category" msgid="6475255139493877786">"Привязка к региону или оператору"</string>
+    <string name="sim_lock_settings" msgid="7331982427303002613">"Настройки блокировки SIM-карты"</string>
+    <string name="sim_lock_settings_category" msgid="6475255139493877786">"Блокировка SIM-карты"</string>
     <string name="sim_pin_toggle" msgid="6814489621760857328">"Блокировать SIM-карту"</string>
     <string name="sim_pin_change" msgid="5978881209990507379">"Изменить PIN-код SIM-карты"</string>
     <string name="sim_enter_pin" msgid="8235202785516053253">"PIN-код SIM-карты"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Совместные настройки"</string>
     <string name="apn_settings" msgid="4295467389400441299">"Точки доступа"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Изменить точку доступа"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Добавить точку доступа"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Не задано"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Не указано"</string>
     <string name="apn_name" msgid="6677695784108157953">"Название"</string>
@@ -1320,6 +1397,8 @@
     <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="network_type" msgid="748590707422733595">"Тип сети"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Не указан"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Тип MVNO"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"Значение MVNO"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Удалить APN"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Используйте кнопку специальных возможностей"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Для запуска удерживайте кнопки громкости"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Для запуска нажмите трижды на экран"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Чтобы открыть, трижды нажмите на экран двумя пальцами"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Используйте жесты"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Используйте жест специальных возможностей"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Чтобы включить эту функцию, нажмите кнопку специальных возможностей <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> в нижней части экрана.\n\nДля переключения между функциями нажмите и удерживайте эту кнопку."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Чтобы включить эту функцию, нажмите кнопку специальных возможностей."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Чтобы включить эту функцию, нажмите и удерживайте обе кнопки регулировки громкости."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Чтобы включить или отключить увеличение, трижды нажмите на любую область экрана."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Чтобы включить или отключить увеличение, трижды нажмите на любую область экрана двумя пальцами."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Чтобы включить эту функцию, проведите вверх от нижнего края экрана двумя пальцами.\n\nДля переключения между функциями проведите по экрану снизу вверх двумя пальцами и задержите их."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Чтобы включить эту функцию, проведите вверх от нижнего края экрана тремя пальцами.\n\nДля переключения между функциями проведите по экрану снизу вверх тремя пальцами и задержите их."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Чтобы воспользоваться специальной возможностью, проведите вверх от нижнего края экрана двумя пальцами.\n\nДля переключения между функциями проведите по экрану снизу вверх двумя пальцами и задержите их."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Удерживать кнопки регулировки громкости"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"удерживание кнопок регулировки громкости"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Нажмите и удерживайте обе кнопки регулировки громкости"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"Тройное нажатие двумя пальцами"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"тройное нажатие двумя пальцами"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"Быстро нажмите на экран двумя пальцами {0,number,integer} раза"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Тройное нажатие на экран"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"тройное нажатие на экран"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Быстро коснитесь экрана {0,number,integer} раза (этот жест может замедлить работу устройства)."</string>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Вибрация и виброотклик"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Вибрация при срабатывании будильника"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Вибрация при воспроизведении медиаконтента"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Вибрация клавиатуры"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Вибрация при звонке"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Вибрация при уведомлении"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Вибрация при касании"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"Батарея будет разряжена через <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"Батарея будет заряжена через <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g>"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Время в активном режиме"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Время в фоновом режиме"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Низкий заряд батареи"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Разрешить приложению работать в фоновом режиме"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Ограничить работу в фоновом режиме?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Это действие может привести к неправильной работе приложения."</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Оптимизация расхода заряда батареи для этого приложения не настроена.\n\nВключите ее, чтобы установить ограничения."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Управление расходом заряда"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Разрешить использование в фоновом режиме"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Включите, чтобы получать обновления в реальном времени, или отключите, чтобы снизить расход заряда."</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Без ограничений"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"С оптимизацией"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Ограничено"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"с момента последней полной зарядки"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Системные приложения"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Удаленные приложения"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Другое"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Расчетное время работы без подзарядки"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"До полной зарядки"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Всего: меньше минуты"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"В фоновом режиме: меньше минуты"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Время использования устройства: меньше минуты"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Менее минуты"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Всего: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"В фоновом режиме: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Время использования: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Мобильный интернет и Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Автосинхронизация личных данных"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Автосинхронизация рабочих данных"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Автосинхронизация личн. данных"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Изменить…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"День месяца, когда сбрасывается цикл использования данных:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"В этот период не было трафика от приложений."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"размер текста, крупный шрифт, большой шрифт, большой текст, слабое зрение, увеличить текст, увеличить шрифт, увеличение шрифта"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"информация на заблокированном экране, автоматическое включение экрана"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"NFC, метка, считыватель"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"клавиатура, тактильная обратная связь, вибрация, вибрировать"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Громкость, вибрация, режим \"Не беспокоить\""</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Музыка, видео, игры"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Громкость трансляции"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Показывать уведомления полностью"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Показывать конфиденциальные данные только после разблокировки"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Не показывать уведомления"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Настройте показ уведомлений на заблокированном экране."</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Заблокированный экран"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Показывать рабочие уведомления полностью"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Скрыть конфиденциальные рабочие данные"</string>
@@ -3354,6 +3449,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"В этом приложении не поддерживаются расширенные настройки."</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Дополнительные настройки"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Дополнительные настройки доступны в приложении"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Снижение громкости уведомлений"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Снижать громкость всех уведомлений"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Когда приходит много уведомлений подряд от одного приложения, постепенно снижать их громкость"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Снижать громкость для разговоров"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Когда приходит много сообщений подряд из одного чата, постепенно снижать громкость уведомлений о них"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Не снижать громкость уведомлений"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Не снижать громкость, даже если приходит много уведомлений подряд от одного приложения"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Вибрация при разблокированном экране"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Когда экран разблокирован, использовать только вибросигнал"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Применить к рабочим профилям"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Снижать громкость уведомлений в рабочем профиле в соответствии с настройками личного"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Вспомогательные VR-сервисы"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Установленные приложения не запрашивали доступ для работы в качестве вспомогательного VR-сервиса."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Разрешить VR-сервису доступ к сервису \"<xliff:g id="SERVICE">%1$s</xliff:g>\"?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Разрешить доступ к управлению всеми файлами"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Приложение сможет читать, изменять и удалять все файлы на этом устройстве и любых подключенных носителях. Доступ к файлам будет осуществляться без дополнительного уведомления."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Приложения, имеющие доступ ко всем файлам"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Приложения, включающиеся голосом"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Разрешить активацию голосом"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Вы сможете запускать выбранные приложения с помощью голосовых команд. Благодаря встроенной адаптивной системе распознавания доступ к вашим данным будет только у вас.\n\nПодробнее "<a href="">"о защищенном адаптивном распознавании"</a>"…"</string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Уведомления в полноэкранном режиме"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Разрешить уведомления в полноэкранном режиме от этого приложения"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Разрешить этому приложению показывать уведомления в полноэкранном режиме, когда устройство заблокировано. Так приложение сможет сообщать о будильниках, входящих вызовах и других срочных уведомлениях."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"У приложения \"<xliff:g id="APP_LABEL">%1$s</xliff:g>\" энергопотребление в фоновом режиме выше, чем обычно"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"У приложения \"<xliff:g id="APP_LABEL">%1$s</xliff:g>\" высокое энергопотребление в активном режиме"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"У приложения \"<xliff:g id="APP_LABEL">%1$s</xliff:g>\" энергопотребление в активном режиме выше, чем обычно"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Высокий расход заряда батареи"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Высокий расход заряда батареи в фоновом режиме"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Высокий расход заряда батареи в активном режиме"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"навигация в системе, навигация с помощью двух кнопок, навигация с помощью трех кнопок, навигация с помощью жестов, пролистывание"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Цифровой помощник"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Жест вызова помощника"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Чтобы вызвать цифрового помощника, проведите по экрану из нижнего угла вверх"</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Чтобы вызвать Ассистента, удерживайте кнопку главного экрана"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Чтобы вызвать цифрового помощника, нажмите и удерживайте кнопку главного экрана."</string>
     <string name="low_label" msgid="6525629096999711220">"Низкая"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"данные, ключ доступа, пароль"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"авто, заполнение, автозаполнение, данные, ключ доступа, пароль"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Подтвердите, что вы доверяете этому приложению&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; анализирует содержимое экрана и находит поля, которые можно заполнить автоматически."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&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_autofill_confirmation_message" msgid="843829628024668466">"&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_picker_title" msgid="8191267620665129205">"Сервисы для паролей, ключей доступа и данных"</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>
@@ -4226,10 +4338,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <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="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>
@@ -4787,14 +4897,12 @@
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Приложения, установленные в течение # последнего месяца}one{Приложения, установленные в течение # последнего месяца}few{Приложения, установленные в течение # последних месяцев}many{Приложения, установленные в течение # последних месяцев}other{Приложения, установленные в течение # последнего месяца}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Приложения, установленные более # месяца назад}one{Приложения, установленные более # месяца назад}few{Приложения, установленные более # месяцев назад}many{Приложения, установленные более # месяцев назад}other{Приложения, установленные более # месяца назад}}"</string>
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Соотношение сторон"</string>
-    <string name="aspect_ratio_summary" msgid="4056406351663726494">"Если приложение не адаптировано для устройства <xliff:g id="DEVICE_NAME">%1$s</xliff:g>, выберите другое соотношение сторон"</string>
-    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Если приложение не адаптировано для устройства <xliff:g id="DEVICE_NAME">%1$s</xliff:g>, выберите другое соотношение сторон. Не все приложения оптимизированы для определенного соотношения сторон."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
-    <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Подходящие приложения"</string>
-    <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"С изменениями"</string>
+    <string name="aspect_ratio_summary" msgid="4056406351663726494">"Если приложение неправильно отображается на устройстве <xliff:g id="DEVICE_NAME">%1$s</xliff:g>, попробуйте другое соотношение сторон."</string>
+    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Если приложение неправильно отображается на устройстве <xliff:g id="DEVICE_NAME">%1$s</xliff:g>, попробуйте другое соотношение сторон. Некоторые приложения оптимизированы не для всех соотношений сторон."</string>
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Если приложение неправильно отображается на устройстве <xliff:g id="DEVICE_NAME">%1$s</xliff:g>, попробуйте другое соотношение сторон."</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Если приложение неправильно отображается на устройстве <xliff:g id="DEVICE_NAME">%1$s</xliff:g>, попробуйте другое соотношение сторон. Некоторые приложения оптимизированы не для всех соотношений сторон."</string>
+    <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Рекомендуемые приложения"</string>
+    <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Измененные приложения"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Значение по умолчанию в приложении"</string>
     <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Весь экран"</string>
     <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Половина экрана"</string>
@@ -4803,7 +4911,7 @@
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
     <string name="user_aspect_ratio_option_a11y" msgid="1235801996029095219">"<xliff:g id="NUMERATOR">%1$s</xliff:g> на <xliff:g id="DENOMINATOR">%2$s</xliff:g>"</string>
-    <string name="app_aspect_ratio_footer" msgid="4029509301182067475">"Когда вы обновите соотношение сторон, приложение перезапустится. Несохраненные изменения могут быть потеряны. Не все приложения оптимизированы для определенного соотношения сторон."</string>
+    <string name="app_aspect_ratio_footer" msgid="4029509301182067475">"Когда вы обновите соотношение сторон, приложение перезапустится. Несохраненные изменения могут быть потеряны. Некоторые приложения оптимизированы не для всех соотношений сторон."</string>
     <string name="aspect_ratio_experimental_title" msgid="9088785421062044831">"Соотношение сторон (экспериментальная функция)"</string>
     <string name="aspect_ratio_experiment_title" msgid="128614319422121040">"Соотношение сторон (эксперимент)"</string>
     <string name="aspect_ratio_labs_title" msgid="6733893837442759383">"Соотношение сторон (экспериментальные функции)"</string>
@@ -4862,4 +4970,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Сканировать на наличие приложений, вводящих в заблуждение"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Проверять историю действий в приложении на фишинг"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Сканировать на наличие вводящих в заблуждение приложений"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Сканировать на наличие вводящих в заблуждение приложений для работы"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-si/arrays.xml b/res/values-si/arrays.xml
index c1e87a2..4bd0f64 100644
--- a/res/values-si/arrays.xml
+++ b/res/values-si/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"මිනිත්තු 1කට පසුව"</item>
     <item msgid="1574040255478150028">"මිනිත්තු 5කට පසුව"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index c6b8f4e..b87acc8 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"බ්ලූටූත් LE ශ්‍රව්‍ය අබල කරන්න"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"උපාංගය LE ශ්‍රව්‍ය දෘඨාංග හැකියා වෙත සහාය දක්වන්නේ නම් බ්ලූටූත් LE ශ්‍රව්‍ය විශේෂාංගය අබල කරයි."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"උපාංග විස්තරවල LE ශ්‍රව්‍ය ටොගල පෙන්වන්න"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"බ්ලූටූත් LE ශ්‍රව්‍ය අවසර ලැයිස්තුව සබල කරන්න"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"බ්ලූටූත් LE ශ්‍රව්‍ය අවසර ලැයිස්තු විශේෂාංගය සබල කරන්න."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"බ්ලූටූත් LE ශ්‍රව්‍ය ඉඩ දුන් ලැයිස්තුව මඟහරින්න"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"ඉඩ දුන් ලැයිස්තුවේ නිර්ණායක සපුරාලීමට LE ශ්‍රව්‍ය පර්යන්තය සත්‍යාපනය කර නොමැති වුවත් පෙරනිමියෙන් LE ශ්‍රව්‍ය භාවිතා කරන්න."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"මාධ්‍ය උපාංග"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"ඇමතුම් උපාංග"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"වෙනත් උපාංග"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"සුරැකි උපාංග"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"ගිණුම සමග සම්බන්ධයි"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"ගිණුම සමග කලින් භාවිතා කරන ලදි"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"යුගල කිරීමට බ්ලූටූත් ක්‍රියාත්මක කරනු ඇත"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"සම්බන්ධතා මනාප"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"පෙර සම්බන්ධිත"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"පෙළ ක්ෂේත්‍රවල ලියන්න"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"සියලු පන්හිඳ බොත්තම් එබීම නොසලකා හරින්න"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"පන්හිඳ"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"ශ්‍රව්‍ය බෙදා ගැනීම"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"ශ්‍රව්‍ය බෙදා ගන්න"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"ඇමතුම් සහ එලාම්"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"දිනය සහ වේලාව"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"නියුතු"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"හිස් කරන්න"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"පූරණය වේ…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"අවට උපාංගවල සාපේක්ෂ පිහිටීම තීරණය කිරීමට අවට උපාංග අවසරය ඇති යෙදුම්වලට හැකිය."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"යෙදුම් සහ සේවා සඳහා ස්ථාන ප්‍රවේශය ක්‍රියාවිරහිතයි. ඔබ හදිසි අවස්ථා අංකයක් අමතන විට හෝ කෙටි පණිවිඩයක් යැවීමේදී ඔබගේ උපාංගයේ ස්ථානය හදිසි අවස්ථා ප්‍රතිචාර දක්වන්නන්ට තවම යැවිය හැකිය."</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ස්ථාන සැකසීම් පිළිබඳව තව දැන ගන්න"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"ගිණුම්"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"ආරක්ෂාව"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"සංකේතනය සහ අක්තපත්‍ර"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"කාර්යාල පැතිකඩ"</string>
     <string name="private_space_title" msgid="7078627930195569767">"පෞද්ගලික ඉඩ"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"පෞද්ගලික ෆෝල්ඩරයක යෙදුම් සඟවන්න"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"තිර අගුල භාවිතයෙන් අගුළු හරින්න"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"පෞද්ගලික ඉඩ පෙන්වන්න"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"අගුළු දැමූ විට සඟවන්න"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"අගුළු දමා ඇති විට පෞද්ගලික අවකාශය සඟවන්න"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"ඔබේ උපාංගයෙහි පෞද්ගලික අවකාශය ඇති බව වෙනත් පුද්ගලයින් දැන ගැනීම නැවැත්වීමට, ඔබට එය ඔබේ යෙදුම් ලැයිස්තුවෙන් සැඟවිය හැක"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"සැඟවුණු විට පෞද්ගලික අවකාශයට ප්‍රවේශ වන්න"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"සෙවීම් තීරුවේ \'පෞද්ගලික අවකාශය\' සඳහා සොයන්න"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"පෞද්ගලික අවකාශයේ ටයිලය තට්ටු කරන්න"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"ඔබේ පෞද්ගලික අවකාශය අගුළු හරින්න"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"ක්‍රියාවිරහිතයි"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"ක්‍රියාත්මකයි"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"පද්ධතිය"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"පෞද්ගලික ඉඩ තනන්න"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"පෞද්ගලික ඉඩ මකන්න"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"පෞද්ගලික ඉඩ සාර්ථකව තනන ලදි"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"පෞද්ගලික ඉඩ දැනටමත් පවතී"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"පෞද්ගලික ඉඩ තැනීම කළ නොහැක"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"පෞද්ගලික ඉඩ සාර්ථකව මකා ඇත"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"පෞද්ගලික ඉඩ මැකීමට නොහැකි විය"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"තිර අගුලක් සකසන්න"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"පෞද්ගලික අවකාශය භාවිතා කිරීමට, මෙම උපාංගයේ තිර අගුලක් සකසන්න."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"තිර අගුල සකසන්න"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"අවලංගු කරන්න"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"අවලංගු කරන්න"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"පිහිටුවන්න"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"පෞද්ගලික අවකාශය පිහිටුවන්න"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"ඔබට පමණක් ප්‍රවේශ විය හැකි සුරක්ෂිත ඉඩක පෞද්ගලික යෙදුම් සඟවන්න"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"එය ක්‍රියා කරන ආකාරය"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"ඔබට ඔබේ යෙදුම් ලැයිස්තුවේ පහළින් පෞද්ගලික අවකාශය වෙත ප්‍රවේශ විය හැක"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"පෞද්ගලික අවකාශයේ යෙදුම් අගුලකින් ආරක්ෂා කර ඇත"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"පෞද්ගලික අවකාශය තුළ යෙදුම්වලින් ලැබෙන දැනුම්දීම් එය අගුළු දමා ඇති විට සඟවනු ලැබේ"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"පෞද්ගලික අවකාශය අගුළු දමා ඇති විට අවසර කළමනාකරු, පෞද්ගලිකත්ව උපකරණ පුවරුව, සහ වෙනත් සැකසීම් තුළ පෞද්ගලික අවකාශ යෙදුම් දිස් නොවනු ඇත"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"පෞද්ගලික අවකාශය පිහිටුවමින්…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"පෞද්ගලික අවකාශය අගුලකින් ආරක්ෂා කර ඇත"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"පෞද්ගලික අවකාශ යෙදුම් සඳහා භාවිත තොරතුරු එය අගුළු දමා ඇති විට සඟවා ඇත"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"ඔබේ යෙදුම් ලැයිස්තුවෙන් පෞද්ගලික අවකාශය වෙත ප්‍රවේශ වන්න"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"පෞද්ගලික අවකාශය පිහිටුවීමට නොහැකි විය"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"දැන් නැවත උත්සාහ කරන්න, නැතහොත් පසුව ආපසු එන්න"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"නැවත උත්සාහ කරන්න"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"අගුළු හැරීමට තිර අගුල භාවිත කරන්න ද?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"ඔබට ඔබේ උපාංගය අගුළු හරින ආකාරයටම පෞද්ගලික අවකාශය අගුළු ඇරීමට හෝ වෙනත් අගුලක් තෝරා ගැනීමට හැක"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"තිර අගුල භාවිතා කරන්න"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"නව අගුලක් තෝරා ගන්න"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"සියල්ල සූදානම්!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"පෞද්ගලික අවකාශය වෙත ප්‍රවේශ වීමට, ඔබේ මුල් තිරයේ පහළ සිට ඉහළට ස්වයිප් කර, පසුව පහළට අනුචලනය කරන්න"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"නිමයි"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"පෞද්ගලික අවකාශයට ප්‍රවේශ වීමට පහළට අනුචලනය කරන්න"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"පෞද්ගලික ඉඩ සැකසීමට පුරන්න"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"ඔබට ඇඟිලි සලකුණු <xliff:g id="COUNT">%d</xliff:g> දක්වා එකතු කළ හැකිය"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"ඔබ ඇඟිලි සලකුණු උපරිම සංඛ්‍යාව එක් කර ඇත"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"තවත් ඇඟිලි සලකුණු එක් කළ නොහැකිය"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"සම්බන්ධ කරන්න"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"විසන්ධි කරන්න"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"යුගල කරන්න සහ සම්බන්ධ කරන්න"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"බ්ලූටූත් සබල විට, ඔබගේ උපාංගයට අවට ඇති බ්ලූටූත් උපාංග සමඟ සන්නිවේදනය කළ හැක."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"බ්ලූටූත් ක්‍රියාත්මක විට, ඔබේ උපාංගයට වෙනත් අවට බ්ලූටූත් උපාංග සමග සන්නිවේදනය කළ හැක.\n\nඋපාංග අත්දැකීම වැඩි දියුණු කිරීම සඳහා, යෙදුම් සහ සේවාවලට බ්ලූටූත් ක්‍රියාවිරහිත වූ විට පවා, ඕනෑම වේලාවක දී අවට උපාංග සඳහා ස්කෑන් කළ හැක. උදාහරණයක් ලෙස, ස්ථානය පදනම් වූ විශේෂාංග සහ සේවා වැඩි දියුණු කිරීමට මෙය භාවිතා කළ හැක. ඔබට මෙය බ්ලූටූත් ස්කෑන් කිරීමේ සැකසීම් තුළ වෙනස් කළ හැක."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"වෙනස් කරන්න"</string>
     <string name="device_details_title" msgid="1155622417516195481">"උපාංග විස්තර"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"දෝෂ නිරාකරණ කළ හැකි යෙදුම් සඳහා බයිට්කේතය සත්‍යාපන කිරීමට ART හට ඉඩ දෙන්න"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"නැවුම් අනුපාතය පෙන්වන්න"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"වත්මන් සංදර්ශක නැවුම් කිරීමේ අනුපාතය පෙන්වන්න"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"HDR/SDR අනුපාතය පෙන්වන්න"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"වත්මන් HDR/SDR අනුපාතය පෙන්වන්න"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"NFC සඳහා උපාංග අගුලු ඇරීම අවශ්‍යය"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android බීම්"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"නැවීම මත යෙදුම් භාවිතය දිගටම කරගෙන යන්න"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"සුමට සංදර්ශකය"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"සමහර අන්තර්ගත සඳහා නැවුම් කිරීමේ අනුපාතය 60 සිට <xliff:g id="ID_1">%1$s</xliff:g> Hz දක්වා ස්වයංක්‍රීයව ඉහළ නංවයි. බැටරි භාවිතය වැඩි කරයි."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"සමහර අන්තර්ගතය සඳහා නැවුම් කිරීමේ අනුපාතය <xliff:g id="ID_1">%1$d</xliff:g> දක්වා ස්වයංක්‍රීයව ඉහළ නංවයි. බැටරි භාවිතය වැඩි කරයි."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"කාර්යබහුල යළි නැවුම් කිරීමේ අනුපාතය බල කරන්න"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"වැඩි දියුණු කළ ස්පර්ශ ප්‍රතිචාර සඳහා ඉහළම යළි නැවුම් කිරීමේ අනුපාතය සහ සජීවිකරණ ගුණාත්මකභාවය. බැටරි භාවිතය වැඩි කරයි."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"තිර අවධානය"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"වාර්ගික සැකසීම්"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"ප්‍රවේශ ස්ථානය සංස්කරණය"</string>
+    <string name="apn_add" msgid="9069613192201630934">"ප්‍රවේශ ස්ථානය එක් කරන්න"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"පිහිටුවා නැත"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"සකසා නැත"</string>
     <string name="apn_name" msgid="6677695784108157953">"නම‍"</string>
@@ -1320,6 +1397,8 @@
     <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="network_type" msgid="748590707422733595">"ජාල වර්ගය"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"සඳහන් නොකළ"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO මාදිලිය"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO අගය"</string>
     <string name="menu_delete" msgid="9199740901584348273">"APN මකන්න"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"විවෘත කිරීමට ප්‍රවේශ්‍යතා බොත්තම භාවිත කරන්න"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"විවෘත කිරීමට හඬ පරිමා යතුරු අල්ලාගෙන සිටින්න"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"විවෘත කිරීමට තිරය තෙවරක් තට්ටු කරන්න"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"විවෘත කිරීමට ඇඟිලි දෙකකින් තිරය තට්ටු කරන්න"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"විවෘත කිරීමට ඉංගිතය භාවිත කරන්න"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"ප්‍රවේශ්‍යතා ඉංගිතය භාවිත කරන්න"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"මෙම විශේෂාංගය භාවිත කිරීමට, ඔබේ තිරයේ පහළ ඇති <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> ප්‍රවේශ්‍යතා බොත්තම තට්ටු කරන්න.\n\nවිශේෂාංග අතර මාරු වීමට, ප්‍රවේශ්‍යතා බොත්තම ස්පර්ශ කර අල්ලාගෙන සිටින්න."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"මෙම විශේෂාංගය භාවිත කිරීමට, ඔබගේ තිරයේ ඇති ප්‍රවේශ්‍යතා බොත්තම තට්ටු කරන්න."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"මෙම විශේෂාංගය භාවිත කිරීමට, හඬ පරිමා යතුරු දෙකම ඔබා අල්ලාගෙන සිටින්න"</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"විශාලනය ආරම්භ කිරීමට සහ නතර කිරීමට, ඔබේ තිරයේ ඕනෑම තැනක තෙවරක් තට්ටු කරන්න."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"විශාලනය ආරම්භ කිරීමට සහ නැවැත්වීමට, ඇඟිලි දෙකකින් ඔබේ තිරයේ ඕනෑම තැනක තෙවරක් තට්ටු කරන්න."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"මෙම විශේෂාංගය භාවිත කිරීමට, ඇඟිලි 2කින් තිරයේ පහළ සිට ඉහළට ස්වයිප් කරන්න.\n\nවිශේෂාංග අතර මාරු වීමට, ඇඟිලි 2කින් ඉහළට ස්වයිප් කර අල්ලාගෙන සිටින්න."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"මෙම විශේෂාංගය භාවිත කිරීමට, ඇඟිලි 3කින් තිරයේ පහළ සිට ඉහළට ස්වයිප් කරන්න.\n\nවිශේෂාංග අතර මාරු වීමට, ඇඟිලි 3කින් ඉහළට ස්වයිප් කර අල්ලාගෙන සිටින්න."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"ප්‍රවේශ්‍යතා විශේෂාංගයක් භාවිත කිරීමට, ඇඟිලි 2කින් තිරයේ පහළ සිට ඉහළට ස්වයිප් කරන්න.\n\nවිශේෂාංග අතර මාරු වීමට, ඇඟිලි 2කින් ඉහළට ස්වයිප් කර අල්ලාගෙන සිටින්න."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"හඬ පරිමා යතුරු අල්ලාගන්න"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"හඬ පරිමා යතුරු අල්ලාගන්න"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"හඬ පරිමා යතුරු දෙකම ඔබා අල්ලාගෙන සිටින්න"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"ඇඟිලි දෙකේ ත්‍රිත්ව තට්ටු තිරය"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"ඇඟිලි දෙකේ ත්‍රිත්ව තට්ටු තිරය"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"ඇඟිලි දෙකකින් තිරය {0,number,integer} වාරයක් ඉක්මනින් තට්ටු කරන්න"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"තිරය තෙවරක් තට්ටු කරන්න"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"තිරය තෙවරක් තට්ටු කරන්න"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"තිරය ඉක්මනින් වාර {0,number,integer}ක් තට්ටු කරන්න. මෙම කෙටි මග ඔබගේ උපාංගය මන්දගාමී කළ හැකිය"</string>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"කම්පනය සහ ස්පර්ශ භාවිත කරන්න"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"එලාම කම්පනය"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"මාධ්‍ය කම්පනය"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"යතුරු පුවරු කම්පනය"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"නාද කම්පනය"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"දැනුම්දීම් කම්පනය"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"ප්‍රතිපෝෂණය ස්පර්ශ කරන්න"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> ක් ඉතිරියි"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> වෙත වෙනස් කරන්න"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"තිර කාලය"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"පසුබිම් කාලය"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"බැටරිය අඩුයි"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"පසුබිමේ ධාවනය කිරීමට යෙදුමට අවසර දෙන්න"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"පසුබිම් ක්‍රියාකාරිත්වය සීමා කරන්නද?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"ඔබ යෙදුමක පසුබිම් ක්‍රියාකාරිත්වය සීමා කළහොත්, එය වැරදි ලෙස ක්‍රියා කරනු ඇත"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"මෙම යෙදුම බැටරිය ප්‍රශස්ත කිරීමට සකසා නැති නිසා, ඔබට එය සීමා කළ නොහැකිය. \n\nයෙදුම සීමා කිරීම සඳහා, පළමුව බැටරි ප්‍රශස්තකරණය ක්‍රියාත්මක කරන්න."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"බැටරි භාවිතය කළමනාකරණය"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"පසුබිම් භාවිතයට ඉඩ දෙන්න"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"සැබෑ කාලීන යාවත්කාලීන සඳහා සබල කරන්න, බැටරිය සුරැකීමට අබල කරන්න"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"සීමා නොකළ"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"ප්‍රශස්ත කළ"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"සීමා කළ"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"අවසන් පූර්ණ ආරෝපණයේ පටන්"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"පද්ධති යෙදුම්"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"අස්ථාපනය කළ යෙදුම්"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"වෙනත්"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"ඇස්තමේන්තුගත ඉතිරි කාලය"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"පූර්ණ ආරෝපණය වන තෙක්"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"මුළු: මිනිත්තුවකට වඩා අඩුය"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"පසුබිම: මිනිත්තුවකට වඩා අඩුය"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"තිර කාලය: මිනිත්තුවකට වඩා අඩුයි"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"මිනිත්තුවකට වඩා අඩු"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"එකතුව: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"පසුබිම: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"තිර කාලය: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"ජංගම දත්ත සහ Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"ස්වයංක්‍රිය-සමමුහුර්ත වන පුද්ගලික දත්ත"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"ස්වයංක්‍රිය-සමමුහුර්ත වන වැඩ දත්ත"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"පෞද්ගලික දත්ත ස්වයං සමමුහුර්ත කරන්න"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"රවුම වෙනස් කරන්න…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"දත්ත භාවිතා චක්‍රය නැවත සැකසීමට මාසයේ දිනය:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"මෙම කාල සීමාවෙහි යෙදුම් දත්ත භාවිතා කර නැත."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"පෙළ ප්‍රමාණය, විශාල මුද්‍රණය, විශාල අකුරු, විශාල පෙළ, අඩු දෘශ්‍යතාව, පෙළ වඩා විශාල කරන්න, අකුරු වඩා විශාල කරන්න, අකුරු විශාල කිරීම"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"හැම විට ම ක්‍රියාත්මක හාත්පස සංදර්ශකය, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"NFC ලේබලය, කියවනය"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"යතුරු පුවරුව, ස්පර්ශ, කම්පනය,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"හඬ, කම්පනය, බාධා නොකරන්න"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"මාධ්‍ය ශබ්දය"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"විකාශන හඬ"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"සියලුම දැනුම්දීමේ අන්තර්ගත පෙන්වන්න"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"අඟුලු ඇර තිබියදී පමණක් සංවේදී අන්තර්ගතය පෙන්වන්න"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"කිසිවිටක දැනුම්දීම් පෙන්වන්න එපා"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"ඔබට අඟුලු තිරය සංදර්ශන විය යුත්තේ කෙසේද?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"අඟුලු තිරය"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"සියලු කාර්යාල දැනුම්දීම් අන්තර්ගතය පෙන්වන්න"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"සංවේදී වැඩ අන්තර්ගතය සඟවන්න"</string>
@@ -3354,6 +3449,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"මෙම යෙදුම වැඩිදියුණු කළ සැකසීම් සඳහා සහාය නොදක්වයි"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"තව සැකසීම්"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"මෙම යෙදුම තුළ තවත් සැකසීම් තිබේ"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"දැනුම්දීම් සිසිල් කිරීම"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"සියලු දැනුම්දීම් වලට සිසිල් වීම යොදන්න"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"ඔබට එකම යෙදුමෙන් අනුක්‍රමික දැනුම්දීම් බොහොමයක් ලැබෙන විට දැනුම්දීම් පරිමාව ක්‍රමයෙන් අඩු කරන්න"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"සංවාද සඳහා සිසිල් කිරීම යොදන්න"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"කෙටි කාලයක් තුළ එකම කතාබස් වලින් ඔබට බොහෝ පණිවිඩ ලැබෙන විට දැනුම්දීම් පරිමාව ක්‍රමයෙන් අඩු කරන්න"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"දැනුම්දීම් සිසිල් කිරීම භාවිතා නොකරන්න"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"එකම යෙදුමෙන් අනුක්‍රමික දැනුම්දීම් ප්‍රමාණය නොසලකා කිසිවිටක දැනුම්දීම් පරිමාව අඩු නොකරන්න"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"අගුළු හරින විට කම්පනය කරන්න"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"තිරය අගුළු හැර ඇති විට පමණක් කම්පනය කරන්න"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"කාර්යාල පැතිකඩ සඳහා යොදන්න"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"ඔබේ පුද්ගලික පැතිකඩේ සිට ඔබේ කාර්යාල පැතිකඩ වෙත දැනුම්දීම් සිසිල් කිරීමේ සැකසීම් යොදන්න"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR උදවුකරු සේවා"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"ස්ථාපිත යෙදුම් කිසිවක් VR උදවුකරු සේවා ලෙස ධාවනය කිරීමට ඉල්ලා නැත."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"<xliff:g id="SERVICE">%1$s</xliff:g> සඳහා VR සේවා ප්‍රවේශය ඉඩ දෙන්නද?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"සියලු ගොනු කළමනාකරණය කිරීමට ප්‍රවේශය ඉඩ දෙන්න"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"මෙම යෙදුමට මෙම උපාංගයේ හෝ ඕනෑම සබැඳුණු ගබඩා ධාරිතාවක ඇති සියලු ගොනු කියවීමට, වෙනස් කිරීමට සහ මැකීමට ඉඩ දෙන්න. ප්‍රදානය කළහොත්, ඔබේ ප්‍රකාශිත දැනුම රහිතව යෙදුමට ගොනු වෙත ප්‍රවේශ විය හැකිය."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"සියලු ගොනු වෙත ප්‍රවේශ විය හැකිය"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"හඬ සක්‍රිය කිරීමේ යෙදුම්"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"හඬ සක්‍රිය කිරීමට ඉඩ දෙන්න"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"හඬ ක්‍රියාත්මක කිරීම හඬ විධානය භාවිත කර අනුමත යෙදුම්, දෑත් නොයොදන සක්‍රීය කරයි. තිළැලි අනුවර්තන සංවේදනය දත්ත ඔබට පමණක් පුද්ගලිකව පවතින බව සහතික කරයි.\n\n"<a href="">"ආරක්ෂිත අනුවර්තන සංවේදනය පිළිබඳ තව විස්තර"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"පූර්ණ තිර දැනුම්දීම්"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"මෙම යෙදුමෙන් පූර්ණ තිර දැනුම්දීම්වලට ඉඩ දෙන්න"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"උපාංගය අගුළු දමා ඇති විට පූර්ණ තිරය ගන්නා දැනුම්දීම් පෙන්වීමට මෙම යෙදුමට ඉඩ දෙන්න. එලාම්, එන ඇමතුම්, හෝ වෙනත් හදිසි දැනුම්දීම් උද්දීපනය කිරීමට යෙදුම් මේවා භාවිතා කිරීමට ඉඩ ඇත."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> පසුබිමේ තිබියදී වෙනදාට වඩා බැටරිය භාවිත කරන ලදි"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> පෙරබිමේ තිබියදී වැඩි බැටරියක් භාවිත කරන ලදි"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> පෙරබිමේ තිබියදී වෙනදාට වඩා බැටරිය භාවිත කරන ලදි"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"ඉහළ බැටරි භාවිතය"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"පසුබිමේ ඉහළ බැටරි භාවිතය"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"පෙරබිමෙහි ඉහළ බැටරි භාවිතය"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"පද්ධති සංචාලනය, බොත්තම්-2 සංචාලනය, බොත්තම්-3 සංචාලනය, අභින සංචාලනය, ස්වයිප් කිරීම"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"ඩිජිටල් සහායක"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"සහායක ඉල්ලීමට ස්වයිප් කරන්න"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"ඩිජිටල් සහායක යෙදුම ඉල්ලීමට පහළ කෙළවරේ සිට ඉහළට ස්වයිප් කරන්න."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"සහායක සඳහා මුල් පිටුව අල්ලාගෙන සිටින්න"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"ඩිජිටල් සහායක යෙදුම ආරම්භ කිරීමට මුල් පිටු බොත්තම ඔබා අල්ලාගෙන සිටින්න."</string>
     <string name="low_label" msgid="6525629096999711220">"අඩු"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"දත්ත, මුරයතුර, මුරපදය"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"ස්වයංක්‍රීය, පුරවන්න, ස්වයං පිරවුම, දත්ත, මුරයතුර, මුරපදය"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;ඔබ මෙම යෙදුම විශ්වාස කරන බව සහතික කර ගන්න&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; ස්වයං පිරවිය හැකි දේවල් නිර්ණය කිරීමට ඔබේ තිරයෙහි ඇති දේවල් භාවිත කරයි."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Use &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_autofill_confirmation_message" msgid="843829628024668466">"&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_picker_title" msgid="8191267620665129205">"මුරපද, මුරයතුරු සහ දත්ත සේවා"</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>
@@ -4856,4 +4968,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"රැවටිලිකාර යෙදුම් සඳහා ස්කෑන් කිරීම"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"තතුබෑම් සඳහා යෙදුම් ක්‍රියාකාරකම් පරීක්ෂා කරන්න"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"රැවටිලිකාර යෙදුම් සඳහා ස්කෑන් කිරීම භාවිතා කරන්න"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"වැඩ සඳහා රැවටිලිකාර යෙදුම් සඳහා ස්කෑන් කිරීම භාවිතා කරන්න"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-sk/arrays.xml b/res/values-sk/arrays.xml
index 4f0b91f..47ff940 100644
--- a/res/values-sk/arrays.xml
+++ b/res/values-sk/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Po 1 minúte"</item>
     <item msgid="1574040255478150028">"Po 5 minútach"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index fc1a555..23614a2 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Deaktivovať Bluetooth LE Audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Deaktivovať funkciu Bluetooth LE Audio, keď zariadenie podporuje možnosti hardvéru LE Audio"</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Zobrazovať LE Audio v podr. o zariadení"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Povoliť zoznam povolených s prístupom k funkcii Bluetooth LE Audio"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Povoliť funkciu zoznamu povolených s prístupom k funkcii Bluetooth LE Audio"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Obísť zoznam povolených aplikácie Bluetooth LE Audio"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Používajte LE Audio predvolene, aj keď nebolo overené, či periféria LE Audio spĺňa kritériá zoznamu povolených."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Mediálne zariadenia"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Zariadenia na telefonovanie"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Iné zariadenia"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Uložené zariadenia"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Spojené s účtom"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Použité v minulosti s účtom"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Na párovanie sa zapne Bluetooth"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Nastavenia pripojenia"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Predtým pripojené zariadenia"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Písanie v textových poliach"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignorovať všetky stlačenia tlačidla dotykového pera"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Dotykové pero"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Zdieľanie zvuku"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Zdieľať zvuk"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Hovory a budíky"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Dátum a čas"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy server"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Vymazať"</string>
@@ -273,8 +287,7 @@
     <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_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á pracovníkom záchranného systému, keď zavoláte na tiesňovú linku alebo na ňu pošlete textovú správu."</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Ďalšie informácie o nastaveniach polohy"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Účty"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Zabezpečenie"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Šifrovanie a poverenia"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Pracovný profil"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Súkromný priestor"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Skrytie aplikácií do súkromného priečinka"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Odomknutie zámkou obrazovky"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Zobrazenie súkromného priestoru"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Skryť pri uzamknutí"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Skrytie súkromného priestoru pri uzamknutí"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Ak chcete zabrániť ostatným ľuďom, aby sa dozvedeli, že v zariadení máte Súkromný priestor, môžete ho skryť zo zoznamu aplikácií"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Prístup do Súkromného priestoru, keď je skrytý"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Vyhľadajte vo vyhľadávacom paneli položku Súkromný priestor"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Klepnutím zobrazíte dlaždicu Súkromného priestoru"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Odomknite svoj Súkromný priestor"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Vypnuté"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Zapnuté"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Systém"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Vytvorenie súkromného priestoru"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Odstránenie súkromného priestoru"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Súkromný priestor bol úspešne vytvorený"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Súkromný priestor už existuje"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Súkromný priestor sa nepodarilo vytvoriť"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Súkromný priestor bol úspešne odstránený"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Súkromný priestor sa nepodarilo odstrániť"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Nastavte zámku obrazovky"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Ak chcete používať Súkromný priestor, nastavte v tomto zariadení zámku obrazovky."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Nastaviť zámku obrazovky"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Zrušiť"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Zrušiť"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Nastaviť"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Nastavenie Súkromného priestoru"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Skryte súkromné aplikácie do zabezpečeného priestoru, ku ktorému máte prístup len vy"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Ako to funguje"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Do Súkromného priestoru môžete prejsť z dolnej časti zoznamu aplikácií"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Aplikácie v súkromnom priestore sú chránené zámkou"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Keď je súkromný priestor uzamknutý, upozornenia z jeho aplikácií sú skryté"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Keď je súkromný priestor uzamknutý, jeho aplikácie sa nebudú zobrazovať v sekcii Správca povolení, na paneli ochrany súkromia ani v ďalších nastaveniach"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Nastavuje sa súkromný priestor…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Súkromný priestor je chránený zámkou"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Keď je súkromný priestor uzamknutý, informácie o využití jeho aplikácií sú skryté"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Prístup k súkromnému priestoru v zozname aplikácií"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Súkromný priestor sa nepodarilo nastaviť"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Skúste to znova alebo sa vráťte neskôr"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Skúsiť znova"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Chcete odomykať pomocou zámky obrazovky?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Súkromný priestor môžete uzamknúť rovnakým spôsobom ako svoje zariadenie, prípadne môžete vybrať inú zámku"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Používať zámku obrazovky"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Vybrať novú zámku"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Hotovo!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Ak chcete získať prístup k súkromnému priestoru, potiahnite nahor zdola obrazovky a potom sa posuňte nadol"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Hotovo"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Posunutím nadol získajte prístup k súkromnému priestoru"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Prihláste sa a nastavte súkromný priestor"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Maximálny počet odtlačkov, ktoré môžete pridať: <xliff:g id="COUNT">%d</xliff:g>"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Pridali ste maximálny počet odtlačkov prstov"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Nie je možné pridať ďalšie odtlačky prstov"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Pripojiť"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Odpojiť"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Spárovať a pripojiť"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Keď je zapnuté pripojenie Bluetooth, zariadenie môže komunikovať s ostatnými zariadeniami s funkciou Bluetooth v okolí."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Keď je zapnuté rozhranie Bluetooth, zariadenie môže komunikovať s ostatnými zariadeniami s rozhraním Bluetooth v okolí.\n\nNa zlepšenie prostredia zariadenia môžu aplikácie a služby kedykoľvek vyhľadávať zariadenia v okolí, a to aj vtedy, keď je rozhranie Bluetooth vypnuté. Vďaka tomu je napríklad možné zlepšiť funkcie a služby podmienené polohou. Môžete to zmeniť v nastaveniach vyhľadávania rozhraním Bluetooth."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Zmeniť"</string>
     <string name="device_details_title" msgid="1155622417516195481">"O zariadení"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Povoliť nástroju ART overovať bajtkód laditeľných aplikácií"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Zobraziť frekvenciu obnovenia"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Zobraziť aktuálnu frekvenciu obnovenia obrazovky"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Zobrazovať pomer HDR a SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Zobrazovať aktuálny pomer HDR a SDR"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Vyžadovať odomknutie zariadenia pre NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Pokračovať v používaní aplikácií po zložení"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Plynulý obraz"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Automaticky zvyšuje frekvenciu obnovenia zo 60 na <xliff:g id="ID_1">%1$s</xliff:g> Hz pre určitý obsah. Zvýši sa spotreba batérie."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Automaticky zvýši frekvenciu obnovenia v prípade určitého obsahu až na <xliff:g id="ID_1">%1$d</xliff:g> Hz. Zvýši sa spotreba batérie."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Vynútiť vrcholovú frekvenciu obnovenia"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Najvyššia frekvencia obnovenia zlepšujúca dotykovú odozvu a kvalitu animácií. Zvýši sa spotreba batérie."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Vnímavá obrazovka"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Spoločné nastavenia"</string>
     <string name="apn_settings" msgid="4295467389400441299">"Prístupové body"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Upraviť prístupový bod"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Pridanie prístupového bodu"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Nenastavené"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Nenastavené"</string>
     <string name="apn_name" msgid="6677695784108157953">"Názov"</string>
@@ -1320,6 +1397,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"Prístupový bod zapnutý"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"Prístupový bod vypnutý"</string>
     <string name="bearer" msgid="3231443241639159358">"Nositeľ"</string>
+    <string name="network_type" msgid="748590707422733595">"Typ siete"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Neurčený"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Typ MVNO"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"Hodnota MVNO"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Odstrániť názov prístupového bodu (APN)"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Otváranie tlačidlom dostupnosti"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Otvorte pridržaním tlačidiel hlasitosti"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Otvorenie troma klepnutiami na obrazovku"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Otvorte trojitým klepnutím dvoma prstami na obrazovku"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Otváranie gestom"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Použitie gesta dostupnosti"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Ak chcete použiť túto funkciu, klepnite na tlačidlo dostupnosti <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> v dolnej časti obrazovky.\n\nFunkcie prepnete pridržaním tlačidla dostupnosti."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Ak chcete túto funkciu použiť, klepnite na tlačidlo dostupnosti na obrazovke."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Túto funkciu použijete tak, že pridržíte obe tlačidlá hlasitosti."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Ak chcete spustiť alebo zastaviť zväčšenie, klepnite trikrát na ľubovoľné miesto na obrazovke."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Ak chcete spustiť či zastaviť zväčšenie, klepnite trikrát dvoma prstami kdekoľvek na obrazovku."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Ak chcete použiť túto funkciu, 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_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Ak chcete použiť túto funkciu, 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_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Ak chcete použiť funkciu dostupnosti, potiahnite dvoma prstami z dolnej časti obrazovky nahor.\n\nFunkcie prepnete potiahnutím dvoma prstami smerom nahor a pridržaním."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Pridržanie tlačidiel hlasitosti"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"podržanie tlačidiel 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_triple_tap" msgid="6687765191490040899">"Trikrát klepnite dvoma prstami na obrazovku"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"trikrát klepnite dvoma prstami na obrazovku"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"tri klepnutia na obrazovku"</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>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Použiť vibrácie a hmatovú spätnú väzbu"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Vibrovanie pri budíku"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Vibrovanie pri médiách"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Vibrovanie klávesnice"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Vibrovanie pri zvonení"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Vibrovanie pri upozornení"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Odozva pri klepnutí"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"Zostáva <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> do nabitia"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Čas používania"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Čas na pozadí"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Nízky stav batérie"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Povoliť aplikácii spúšťať sa na pozadí"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Obmedziť aktivitu na pozadí?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Ak obmedzíte aktivitu aplikácie na pozadí, nemusí fungovať správne"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Aplikácia nemá nastavenú optimalizáciu batérie, preto ju nemôžete obmedziť.\n\nAk ju chcete obmedziť, zapnite optimalizáciu."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Správa spotreby batérie"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Povolenie používania na pozadí"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Zapnite pre aktualizácie v reálnom čase, vypnite na úsporu batérie"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Bez obmedzení"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Optimalizované"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Obmedzené"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"od posledného úplného nabitia"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Systémové aplikácie"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Odinštalované aplikácie"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Iné"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Odhadovaný zostávajúci čas:"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Do úplného dobitia"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Celkove: menej ako minúta"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Na pozadí: menej ako minúta"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Čas používania: menej ako minúta"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Menej ako minúta"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Celkove: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Na pozadí: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Čas používania: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Mobilné dáta a Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Autom. synchr. osobné údaje"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Autom. synchr. pracovné údaje"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Aut. synchrizovať súkr. údaje"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Zmeniť cyklus..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Deň v mesiaci, kedy sa má resetovať cyklus spotreby:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"V tomto období nevyužili dátové pripojenie žiadne aplikácie."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"veľkosť textu, veľkoformátová tlač, veľké písmo, veľký text, slabozrakosť, zväčšenie textu, zväčšovač písma, zväčšenie písma"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"vždy zapnuté ambientné zobrazenie"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, štítok, čítačka"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"klávesnica, hmatová spätná väzba, vibrovať,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Hlasitosť, vibrovanie, režim bez vyrušení"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Hlasitosť médií"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Hlasitosť prenášania"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Zobrazovať kompletné upozornenia"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Zobrazovať citlivý obsah iba po odomknutí"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Nezobrazovať upozornenia"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Ako chcete zobrazovať uzamknutú obrazovku?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Uzamknutá obrazovka"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Zobrazovať všetok obsah pracovných upozornení"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Skryť citlivý pracovný obsah"</string>
@@ -3354,6 +3449,17 @@
     <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="6121016426991791557">"Stlmenie upozornení"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Použiť stlmenie na všetky upozornenia"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Postupne znížiť hlasitosti upozornení, keď dostanete veľa po sebe idúcich upozornení z tej istej aplikácie"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Použiť stlmenie na všetky konverzácie"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Postupne znížiť hlasitosti upozornení, keď v krátkom čase dostanete veľa správ z toho istého četu"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Nepoužívať stlmenie upozornení"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Nikdy neznížiť hlasitosť upozornení bez ohľadu na počet po sebe idúcich upozornení z tej istej aplikácie"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Vibrovanie pri odomknutí"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Vibrovať iba pri odomknutej obrazovke"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Použiť na pracovné profily"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Použiť nastavenia stlmenia upozornení z osobného profilu na pracovný profil"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Pomocné služby VR"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Žiadne nainštalované aplikácie nežiadali, aby boli spúšťané ako pomocné služby VR."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Umožniť službe VR prístup do služby <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3676,7 +3782,7 @@
     <string name="usb_transcode_files_summary" msgid="307102635711961513">"Videá sa budú prehrávať vo viacerých prehrávačoch médií, ale ich kvalita môže byť znížená"</string>
     <string name="usb_use_tethering" msgid="2897063414491670531">"Tethering cez USB"</string>
     <string name="usb_use_MIDI" msgid="8621338227628859789">"MIDI"</string>
-    <string name="usb_use" msgid="6783183432648438528">"Používať USB na"</string>
+    <string name="usb_use" msgid="6783183432648438528">"Používať USB pre"</string>
     <string name="usb_default_label" msgid="3372838450371060750">"Predvolená konfigurácia USB"</string>
     <string name="usb_default_info" msgid="167172599497085266">"Tieto nastavenia sa použijú, keď bude pripojené ďalšie zariadenie a telefón bude odomknutý. Pripájajte sa iba k dôveryhodným zariadeniam."</string>
     <string name="usb_power_title" msgid="5602112548385798646">"Možnosti napájania"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Povoliť prístup na správu všetkých súborov"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Povoľte tejto aplikácii čítať, upravovať a odstraňovať všetky súbory v tomto zariadení alebo akýchkoľvek pripojených úložiskách. Po udelení tohto povolenia bude môcť aplikácia používať súbory bez vášho vedomia."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Má prístup k všetkým súborom"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Aplikácie na aktiváciu hlasom"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Povoliť aktiváciu hlasom"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Aktivácia hlasom zapne schválené aplikácie handsfree hlasovým príkazom. Vstavané adaptívne zisťovanie zaistí, že údaje zostanú súkromné, teda iba pre vás.\n\n"<a href="">"Viac o chránenom adaptívnom zisťovaní"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Upozornenia na celej obrazovke"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Povoliť zobrazovanie upozornení z tejto aplikácie na celej obrazovke"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Povoľte tejto aplikácii zobrazovať upozornenia na celú obrazovku, keď bude zariadenie uzamknuté. Aplikácie vás môžu pomocou nich informovať o budíkoch, prichádzajúcich hovoroch a ďalších dôležitých upozorneniach."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"Aplikácia <xliff:g id="APP_LABEL">%1$s</xliff:g> využívala batériu viac než zvyčajne na pozadí"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"Aplikácia <xliff:g id="APP_LABEL">%1$s</xliff:g> využívala batériu vo vyššej miere na popredí"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"Aplikácia <xliff:g id="APP_LABEL">%1$s</xliff:g> využívala batériu viac než zvyčajne na popredí"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Vysoká spotreba batérie"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Vysoká spotreba batérie na pozadí"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Vysoká spotreba batérie na popredí"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"navigácia v systéme, navigácia dvoma tlačidlami, navigácia troma tlačidlami, navigácia gestami, potiahnutie"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Digitálny asistent"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Aktivovať asistenta potiahnutím"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Aktivovať aplikáciu digitálneho asistenta potiahnutím nahor z dolného rohu"</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Aktivovať Asistenta pridržaním tlačidla plochy"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Pridržaním tlačidla plochy spustiť digitálneho asistenta"</string>
     <string name="low_label" msgid="6525629096999711220">"Nízka"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"údaje, prístupový kľúč, heslo"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"automatické, dopĺňanie, automatické dopĺňanie, údaje, prístupový kľúč, heslo"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Skontrolujte, či ide o dôveryhodnú aplikáciu&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Automatické dopĺňanie Google&gt;%1$s&lt;/xliff:g&gt; určuje na základe obsahu obrazovky, čo je možné automaticky vyplniť."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Chcete použiť &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; určuje, čo treba automaticky doplniť, pomocou obsahu na obrazovke. Odteraz sa tu budú ukladať nové heslá, prístupové kľúče a ďalšie informácie."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Use &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Tu sa budú odteraz ukladať nové heslá, prístupové kľúče a ďalšie informácie. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; môže určovať, čo treba automaticky doplniť, pomocou obsahu na obrazovke."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Heslá, prístupové kľúče a služby poskytujúce údaje"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Chcete službu %1$s vypnúť?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Chcete túto službu vypnúť?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Keď sa prihlásite, uložené informácie, ako sú heslá, prístupové kľúče, spôsoby platby a iné, sa nebudú dopĺňať. Ak chcete používať uložené údaje, vyberte heslo, prístupový kľúč alebo službu poskytujúcu údaje."</string>
@@ -4226,10 +4338,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <string name="enable_angle_as_system_driver" msgid="4648827560023949786">"Experimentálne: povoľte ANGLE"</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Upozornenie: Povoľte ovládač ANGLE ako predvolený ovládač OpenGL ES. Táto funkcia je experimentálna a nemusí byť kompatibilná s niektorými aplikáciami na ovládanie kamery a tvorbu videa."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"Zmena systémového ovládača OpenGL ES vyžaduje reštart"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Zmeny v kompatibilite aplikácie"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Prepínať zmeny kompatibility aplikácie"</string>
@@ -4787,14 +4897,12 @@
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Aplikácie nainštalované za posledný # mesiac}few{Aplikácie nainštalované za posledné # mesiace}many{Aplikácie nainštalované za posledného # mesiaca}other{Aplikácie nainštalované za posledných # mesiacov}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Aplikácie nainštalované pred viac než # mesiacom}few{Aplikácie nainštalované pred viac než # mesiacmi}many{Aplikácie nainštalované pred viac než # mesiaca}other{Aplikácie nainštalované pred viac než # mesiacmi}}"</string>
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Pomer strán"</string>
-    <string name="aspect_ratio_summary" msgid="4056406351663726494">"Vyskúšajte nový pomer strán na zobrazenie tejto aplikácie, keď nebola navrhnutá pre displej zariadenia <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Vyskúšajte nový pomer strán na zobrazenie tejto aplikácie, keď nebola navrhnutá pre displej zariadenia <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Niektoré aplikácie sa nemusia dať optimalizovať na určité pomery strán."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary" msgid="4056406351663726494">"Vyskúšajte nový pomer strán, v ktorom sa bude aplikácia zobrazovať, ak nie je navrhnutá pre rozmer obrazovky vášho zariadenia <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Vyskúšajte nový pomer strán, v ktorom sa bude aplikácia zobrazovať, ak nie je navrhnutá pre rozmer obrazovky vášho zariadenia <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Niektoré aplikácie nemusia byť optimalizované pre určité pomery strán."</string>
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Vyskúšajte nový pomer strán na zobrazenie aplikácie, keď nebola navrhnutá pre zariadenie <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Vyskúšajte nový pomer strán na zobrazenie aplikácie, keď nebola navrhnutá pre zariadenie <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Niektoré aplikácie sa nemusia dať optimalizovať na určité pomery strán."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Navrhované aplikácie"</string>
-    <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Zmenené aplik."</string>
+    <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Zmenené aplikácie"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Predvolené nastavenie aplikácie"</string>
     <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Celá obrazovka"</string>
     <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Polovica obrazovky"</string>
@@ -4803,7 +4911,7 @@
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
     <string name="user_aspect_ratio_option_a11y" msgid="1235801996029095219">"<xliff:g id="NUMERATOR">%1$s</xliff:g> – <xliff:g id="DENOMINATOR">%2$s</xliff:g>"</string>
-    <string name="app_aspect_ratio_footer" msgid="4029509301182067475">"Keď zmeníte pomer strán, aplikácia sa reštartuje. Môžete prísť o neuložené zmeny. Niektoré aplikácie sa nemusia dať optimalizovať na určité pomery strán."</string>
+    <string name="app_aspect_ratio_footer" msgid="4029509301182067475">"Keď zmeníte pomer strán, aplikácia sa reštartuje. Môžete prísť o neuložené zmeny. Niektoré aplikácie nemusia byť optimalizované pre určité pomery strán."</string>
     <string name="aspect_ratio_experimental_title" msgid="9088785421062044831">"Pomer strán (experimentálne)"</string>
     <string name="aspect_ratio_experiment_title" msgid="128614319422121040">"Pomer strán (experiment)"</string>
     <string name="aspect_ratio_labs_title" msgid="6733893837442759383">"Pomer strán (laboratóriá)"</string>
@@ -4862,4 +4970,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Kontrola prítomnosti klamlivých aplikácií"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Kontrola aktivity v aplikácii, či nedochádza k phishingu"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Používať detekciu podvodných aplikácií"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Používať detekciu podvodných pracovných aplikácií"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-sl/arrays.xml b/res/values-sl/arrays.xml
index 7291e8e..4d4ca2b 100644
--- a/res/values-sl/arrays.xml
+++ b/res/values-sl/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Po 1 minuti"</item>
     <item msgid="1574040255478150028">"Po 5 minutah"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 54c92f4..f7eabcb 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Onemogoči funkcijo Bluetooth LE zvok"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Onemogoči funkcijo Bluetooth LE zvok, če naprava podpira strojno opremo za LE zvok."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Pokaži preklopnik za LE zvok v podrobnostih o napravi"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Omogoči seznam dovoljenih za Bluetooth LE zvok"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Omogoči funkcijo seznama dovoljenih za Bluetooth LE zvok."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Zaobidenje seznama dovoljenih za funkcijo Bluetooth LE zvok"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Privzeta uporaba funkcije LE zvok, tudi če dodatna oprema LE zvok ni potrjena, da izpolnjuje merila za uvrstitev na seznam dovoljenih."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Predstavnostne naprave"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Klicne naprave"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Druge naprave"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Shranjene naprave"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Povezano s tem računom"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Že uporabljeno z računom"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth bo vklopljen, da bo omogočeno seznanjanje."</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Nastavitve povezave"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Predhodno povezane naprave"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Pisanje v besedilnih poljih"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Prezri vse pritiske gumbov pisala"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Pisalo"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Deljenje zvoka"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Deli zvok"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Klici in alarmi"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Datum in ura"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Strežnik proxy"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Počisti"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Preberite več o nastavitvah lokacije"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Računi"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Varnost"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Šifriranje in poverilnice"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Delovni profil"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Zasebni prostor"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Skrivanje aplikacij v zasebni mapi"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Odklepanje z načinom za odklepanje zaslona"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Prikaz zasebnega prostora"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Skrivanje, kadar je zaklenjeno"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Skrivanje zasebnega prostora, kadar je zaklenjen"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Če ne želite, da bi druge osebe vedele, da je v napravi zasebni prostor, ga lahko skrijete, da ni prikazan na seznamu aplikacij"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Dostop do zasebnega prostora, kadar je skrit"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"V vrstici za iskanje poiščite izraz »Zasebni prostor«"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Dotaknite se ploščice »Zasebni prostor«"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Odklepanje zasebnega prostora"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Izklopljeno"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Vklopljeno"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Sistem"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Ustvarjanje zasebnega prostora"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Brisanje zasebnega prostora"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Zasebni prostor je bil uspešno ustvarjen"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Zasebni prostor že obstaja"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Zasebnega prostora ni bilo mogoče ustvariti"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Zasebni prostor je bil uspešno izbrisan"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Zasebnega prostora ni bilo mogoče izbrisati"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Nastavite zaklepanje zaslona"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Če želite uporabljati zasebni prostor, v napravi nastavite zaklepanje zaslona."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Nastavite zaklepanje zaslona"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Prekliči"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Prekliči"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Nastavi"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Nastavitev zasebnega prostora"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Skrivanje zasebnih aplikacij na varnem mestu, ki je dostopno samo vam"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Kako deluje"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Do zasebnega prostora lahko dostopate z dna seznama aplikacij"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Aplikacije v zasebnem prostoru so zaščitene z zaklepanjem"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Obvestila aplikacij v zasebnem prostoru so skrita, kadar je zasebni prostor zaklenjen"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Aplikacije v zasebnem prostoru ne bodo prikazane v upravitelju dovoljenj, na nadzorni plošči za zasebnost in v drugih nastavitvah, kadar je zasebni prostor zaklenjen"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Nastavljanje zasebnega prostora …"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Zasebni prostor je zaščiten z zaklepanjem"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Podatki o uporabi aplikacij v zasebnem prostoru so skriti, kadar je zasebni prostor zaklenjen"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Dostop do zasebnega prostora s seznama aplikacij"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Zasebnega prostora ni bilo mogoče nastaviti"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Poskusite znova zdaj ali se vrnite pozneje"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Poskusi znova"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Želite odklepati z načinom za odklepanje zaslona?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Zasebni prostor lahko odklepate na enak način kot napravo, lahko pa izberete drug način zaklepanja"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Uporabi način za odklepanje zaslona"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Izberite nov način zaklepanja"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Končano"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Za dostop do zasebnega prostora povlecite navzgor z dna začetnega zaslona in se nato pomaknite navzdol."</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Končano"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Za dostop do zasebnega prostora se pomaknite navzdol"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Če želite nastaviti zasebni prostor, se prijavite"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Dodate lahko do toliko prstnih odtisov: <xliff:g id="COUNT">%d</xliff:g>"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Dodali ste največje dovoljeno število prstnih odtisov"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Prstnih odtisov ni več mogoče dodati"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Vzpostavi povezavo"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Prekini povezavo"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Seznani in poveži"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Kadar je Bluetooth vklopljen, lahko vaša naprava komunicira z drugimi napravami Bluetooth v bližini."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Ko je Bluetooth vklopljen, lahko vaša naprava komunicira z drugimi napravami Bluetooth v bližini.\n\nZa izboljšano izkušnjo pri uporabi naprave lahko aplikacije in storitve še vedno kadar koli iščejo naprave v bližini, tudi ko je Bluetooth izklopljen. To se na primer uporablja za izboljšanje funkcij in storitev, ki pri delovanju uporabljajo lokacijo. Izbiro lahko spremenite v nastavitvah iskanja naprav Bluetooth."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Spremeni"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Podrobnosti o napravi"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Preverjevalniku ART dovoli preverjanje bitne kode aplikacij, ki podpirajo odpravljanje napak."</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Pokaži hitrost osveževanja"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Prikaži trenutno hitrost osveževanja zaslona."</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Prikaz razmerja HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Prikaz trenutnega razmerja HDR/SDR"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Zahtevaj odklep naprave pred uporabo NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Še naprej uporabljaj aplikacije po zlaganju naprave"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Tekoč prikaz"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Samodejno povečanje hitrosti osveževanja s 60 na <xliff:g id="ID_1">%1$s</xliff:g> Hz za nekatere vsebine. Poveča porabo energije baterije."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Samodejno poveča hitrost osveževanja do največ <xliff:g id="ID_1">%1$d</xliff:g> Hz za nekatere vsebine. Poveča porabo energije baterije."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Vsili največjo hitrost osveževanja"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Višja hitrost osveževanja za izboljšano odzivnost na dotik in kakovost animacij. Povečana poraba energije baterije."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Zaznavanje pogleda na zaslon"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Skupne nastavitve"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN-ji"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Urejanje dostopne točke"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Dodajanje dostopne točke"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Ni nastavljeno"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Ni nastavljeno"</string>
     <string name="apn_name" msgid="6677695784108157953">"Ime"</string>
@@ -1320,6 +1397,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN omogočen"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN onemogočen"</string>
     <string name="bearer" msgid="3231443241639159358">"Nosilec"</string>
+    <string name="network_type" msgid="748590707422733595">"Vrsta omrežja"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Neopredeljeno"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Vrsta MVNO"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"Vrednost MVNO"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Izbriši APN"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Odpiranje z gumbom za dostopnost"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Za odpiranje pridržite tipki za glasnost"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Za odpiranje se trikrat dotaknite zaslona"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Trikratni dotik zaslona z dvema prstoma za odpiranje"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Odpiranje s potezo"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Uporaba poteze za dostopnost"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Če želite uporabljati to funkcijo, se na dnu zaslona dotaknite gumba za dostopnost <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>.\n\nČe želite preklopiti med funkcijami, se dotaknite gumba za dostopnost in ga pridržite."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Za uporabo te funkcije se na zaslonu dotaknite gumba za dostopnost."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Če želite uporabljati to funkcijo, pritisnite obe tipki za glasnost in ju pridržite."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Če želite vklopiti ali izklopiti povečavo, se trikrat dotaknite poljubnega mesta na zaslonu."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Za vklop ali izklop povečave se z dvema prstoma trikrat dotaknite poljubnega mesta na zaslonu."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Če želite uporabljati to funkcijo, 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_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Če želite uporabljati to funkcijo, 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_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Če želite uporabljati funkcijo za dostopnost, z dvema prstoma povlecite z dna zaslona navzgor.\n\nČe želite preklopiti med funkcijami, z dvema prstoma povlecite navzgor in pridržite."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Pridržanje tipk za glasnost"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"pridržanje tipk 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_triple_tap" msgid="6687765191490040899">"Trikratni dotik zaslona z dvema prstoma"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"trikratni dotik zaslona z dvema prstoma"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"trikratni dotik zaslona"</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>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Uporabi vibriranje in tipni odziv"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Vibriranje alarma"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Vibriranje predstavnosti"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Vibriranje tipkovnice"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Vibriranje pri zvonjenju"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Vibriranje pri obvestilih"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Odziv na dotik"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"Preostali čas: <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> do napolnjenosti"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Čas uporabe"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Čas izvajanja v ozadju"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Skoraj prazna baterija"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Dovoli, da se aplikacija izvaja v ozadju"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Želite omejiti dejavnost v ozadju?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Če boste omejili dejavnost aplikacije v ozadju, morda ne bo pravilno delovala"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Ker za to aplikacijo ni izbrana nastavitev optimiziranja porabe baterije, je ni mogoče omejiti.\n\nČe želite omejiti aplikacijo, najprej vklopite optimizacijo baterije."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Upravljanje porabe energije baterije"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Dovoli uporabo v ozadju"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Omogoči za sprotne posodobitve, onemogoči za varčevanje z energijo baterije"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Neomejeno"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Optimizirano"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Omejeno"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"od zadnje polne napolnjenosti"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Sistemske aplikacije"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Odmeščene aplikacije"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Drugo"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Približni preostali čas"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Do napolnjenosti"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Skupno: manj kot minuta"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"V ozadju: manj kot minuta"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Čas uporabe: manj kot min"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Manj kot minuta"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Skupno: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"V ozadju: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Čas uporabe: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Mobilni podatki in Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Samod. sinhron. oseb. podatkov"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Samod. sinhr. delov. podatkov"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Samodejna sinhronizacija zasebnih podatkov"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Spremeni cikel ..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Dan za ponastavitev cikla porabe podatkov:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"V tem obdobju ni podatkov uporabljala nobena aplikacija."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"velikost besedila, velika pisava, velike črke, veliko besedilo, slabovidnost, povečaj besedilo, povečevalnik pisave, povečanje pisave"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"stalno vklopljen ambientalni ohranjevalnik zaslona, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, oznaka, bralnik"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"tipkovnica, tipna tehnologija, vibriranje"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Glasnost, vibriranje, ne moti"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Glasnost predstavnosti"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Glasnost predvajanja"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Prikaži vso vsebino obvestil"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Prikaži občutljivo vsebino samo na odklenjenem zaslonu"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Sploh ne prikazuj obvestil"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Kaj naj bo prikazano na zaklenjenem zaslonu?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Zaklenjen zaslon"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Pokaži vso vsebino obvestil za delovni profil."</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Skrij občutljivo vsebino za delovni profil."</string>
@@ -3354,6 +3449,17 @@
     <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="6121016426991791557">"Zmanjševanje glasnosti za obvestila"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Zmanjševanje glasnosti za vsa obvestila"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Postopno zmanjševanje glasnosti obvestil pri prejemanju številnih zaporednih obvestil iz iste aplikacije"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Zmanjševanje glasnosti za pogovore"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Postopno zmanjševanje glasnosti obvestil pri prejemanju številnih sporočil iz istega klepeta v kratkem času"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Brez uporabe zmanjševanja glasnosti za obvestila"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Brez zmanjševanja glasnosti obvestil ne glede na število zaporednih obvestil iz iste aplikacije"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Vibriranje pri odklenjenem zaslonu"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Vibriranje samo pri odklenjenem zaslonu"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Uporaba za delovne profile"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Uporaba nastavitev zmanjševanja glasnosti za obvestila iz osebnega profila v delovnem profilu"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Storitve za pomoč za VR"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Nobena nameščena aplikacija ni zahtevala izvajanja kot storitev za pomoč za VR."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Dovolite storitvi <xliff:g id="SERVICE">%1$s</xliff:g> dostop do storitve za VR?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Dovoli dostop za upravljanje vseh datotek"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Tej aplikaciji dovolite, da bere, spreminja in briše vse datoteke v tej napravi ali drugih povezanih nosilcih za shranjevanje. Če daste to dovoljenje, bo aplikacija morda dostopala do datotek brez vaše vednosti."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Lahko dostopa do vseh datotek"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Aplikacije za glasovno aktiviranje"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Dovoli glasovno aktiviranje"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Glasovno aktiviranje vam omogoča, da z glasovnim ukazom prostoročno vklopite odobrene aplikacije. Vgrajeno prilagodljivo zaznavanje poskrbi, da bodo vaši podatki ostali zasebni.\n\n"<a href="">"Več o zaščitenem prilagodljivem zaznavanju"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Celozaslonska obvestila"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Dovoli celozaslonska obvestila te aplikacije"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Dovolite, da ta aplikacija prikazuje obvestila, ki zavzamejo celoten zaslon, ko je naprava zaklenjena. Aplikacije lahko z njimi izpostavijo alarme, dohodne klice ali druga nujna obvestila."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"Aplikacija <xliff:g id="APP_LABEL">%1$s</xliff:g> je porabljala več energije baterije kot običajno, ko se je izvajala v ozadju"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"Aplikacija <xliff:g id="APP_LABEL">%1$s</xliff:g> je porabljala več energije baterije, ko se je izvajala v ospredju"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"Aplikacija <xliff:g id="APP_LABEL">%1$s</xliff:g> je porabljala več energije baterije kot običajno, ko se je izvajala v ospredju"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Visoka poraba energije baterije"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Visoka poraba energije baterije v ozadju"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Visoka poraba energije v ospredju"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"krmarjenje po sistemu, krmarjenje z dvema gumboma, krmarjenje s tremi gumbi, krmarjenje s potezami, vlečenje"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Digitalni pomočnik"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Vlečenje za sproženje pomočnika"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Če želite sprožiti digitalnega pomočnika, s prstom povlecite navzgor iz spodnjega kota."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Priklic Pomočnika s pridržanjem gumba za začetni zaslon"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Pridržite gumb za začetni zaslon, če želite priklicati digitalnega pomočnika."</string>
     <string name="low_label" msgid="6525629096999711220">"Nizka"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"podatki, ključ za dostop, geslo"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"samodejno, izpolnjevanje, samodejno izpolnjevanje, podatki, ključ za dostop, geslo"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Prepričajte se, da zaupate tej aplikaciji&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Samodejno izpolnjevanje&gt;%1$s&lt;/xliff:g&gt; iz elementov na zaslonu ugotovi, kaj je mogoče samodejno izpolniti."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Uporabi aplikacijo &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; na podlagi prikaza na zaslonu ugotovi, kaj se lahko samodejno izpolni. Nova gesla, ključi za dostop in drugi podatki bodo odslej shranjeni tukaj."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Uporabi aplikacijo &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Nova gesla, ključi za dostop in drugi podatki bodo odslej shranjeni tukaj. Aplikacija &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; lahko na podlagi prikaza na zaslonu ugotovi, kaj se lahko samodejno izpolni."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Gesla, ključi za dostop in podatkovne storitve"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Želite izklopiti »%1$s«?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Želite izklopiti to storitev?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Shranjeni podatki, kot so gesla, ključi za dostop, plačilna sredstva in drugo, ne bodo izpolnjeni ob prijavi. Za uporabo shranjenih podatkov izberite geslo, ključ za dostop ali podatkovno storitev."</string>
@@ -4858,4 +4970,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Iskanje zavajajočih aplikacij"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Iskanje znakov lažnega predstavljanja v dejavnostih v aplikacijah"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Uporabi iskanje zavajajočih aplikacij"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Uporabi iskanje zavajajočih aplikacij v delovnem profilu"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-sq/arrays.xml b/res/values-sq/arrays.xml
index 5111be2..e8903c0 100644
--- a/res/values-sq/arrays.xml
+++ b/res/values-sq/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Pas 1 minute"</item>
     <item msgid="1574040255478150028">"Pas 5 minutash"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 2d32218..acd8c7d 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Çaktivizo Bluetooth LE Audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Çaktivizon veçorinë Bluetooth LE Audio nëse pajisja mbështet aftësitë e harduerit të LE Audio."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Shfaq çelësin për LE Audio te \"Detajet e pajisjes\""</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Aktivizo listën e autorizimeve të Bluetooth LE Audio"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Aktivizo veçorinë e listës së autorizimeve të Bluetooth LE Audio."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Anashkalo \"Listën e lejimeve\" të Bluetooth LE Audio"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Përdor LE Audio si parazgjedhje edhe nëse LE Audio periferike nuk është verifikuar se i ka plotësuar kriteret e \"Listës së lejimeve\"."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Pajisjet për median"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Pajisjet për telefonata"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Pajisjet e tjera"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Pajisjet e ruajtura"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Lidhur me llogarinë"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Të përdorura më parë me llogari"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth-i do të aktivizohet për çiftimin"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Preferencat e lidhjes"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Të lidhura më parë"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Shkruaj në fushat e tekstit"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Shpërfill të gjitha shtypjet e butonave me stilolapsin"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Stilolapsi"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Ndarja e audios"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Ndaj audion"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Telefonatat dhe alarmet"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Data dhe ora"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Pastro"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Mëso më shumë për \"Cilësimet e vendndodhjes\""</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Llogaritë"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Siguria"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Enkriptimi dhe kredencialet"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Profili i punës"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Hapësira private"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Fshih aplikacionet në një dosje private"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Shkyç duke përdorur kyçjen e ekranit"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Shfaq \"Hapësirën private\""</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Fshih kur është e kyçur"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Fshih \"Hapësirën private\" kur është e kyçur"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Për të ndaluar që të tjerët të dinë se \"Hapësira private\" është në pajisjen tënde, mund ta fshehësh nga lista jote e aplikacioneve"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Qasu te \"Hapësira private\" kur është e fshehur"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Kontrollo për \"Hapësirën private\" në shiritin e kërkimit"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Trokit te pllakëza e \"Hapësirës private\""</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Shkyç \"Hapësirën private\""</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Joaktive"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Aktive"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Sistemi"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Krijo \"Hapësirën private\""</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Fshi \"Hapësirën private\""</string>
-    <string name="private_space_created" msgid="2978055968937762232">"\"Hapësira private\" u krijua me sukses"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"\"Hapësira private\" ekziston tashmë"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"\"Hapësira private\" nuk mund të krijohej"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"\"Hapësira private\" u fshi me sukses"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"\"Hapësira private\" nuk mund të fshihej"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Cakto një kyçje ekrani"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Për të përdorur \"Hapësirën private\", cakto një kyçje ekrani në këtë pajisje."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Cakto kyçjen e ekranit"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Anulo"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Anulo"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Konfiguro"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Konfiguro \"Hapësirën private\""</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Fshih aplikacionet private në një hapësirë të sigurt ku vetëm ti mund të qasesh"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Si funksionon"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Mund të qasesh te \"Hapësira private\" nga fundi i listës së aplikacioneve"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Aplikacionet në \"Hapësirën private\" janë të mbrojtura me një kyçje"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Njoftimet nga aplikacionet në \"Hapësirën private\" janë të fshehura kur ajo është e kyçur"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Aplikacionet e \"Hapësirës private\" nuk do të shfaqen te menaxheri i lejeve, paneli i privatësisë dhe në cilësime të tjera kur \"Hapësira private\" është e kyçur"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"\"Hapësira private\" po konfigurohet…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"\"Hapësira private\" është e mbrojtur me një kyçje"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Informacionet e përdorimit për aplikacionet e \"Hapësirës private\" janë të fshehura kur ajo është e kyçur"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Qasu te \"Hapësira private\" nga lista jote e aplikacioneve"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"\"Hapësira private\" nuk mund të konfigurohej"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Provo përsëri tani ose kthehu më vonë"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Provo përsëri"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Të përdoret kyçja e ekranit për ta shkyçur?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"\"Hapësirën private\" mund ta shkyçësh në të njëjtën mënyrë që shkyç pajisjen tënde ose mund të zgjedhësh një kyçje tjetër"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Përdor kyçjen e ekranit"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Zgjidh një kyçje të re"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Plotësisht gati!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Për t\'u qasur te \"Hapësira private\", rrëshqit shpejt lart nga fundi i ekranit bazë dhe më pas lëviz poshtë"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"U krye"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Lëviz poshtë për t\'u qasur te \"Hapësira private\""</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Identifikohu për të konfiguruar \"Hapësirën private\""</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Mund të shtosh deri në <xliff:g id="COUNT">%d</xliff:g> gjurmë gishtash"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Ke shtuar numrin maksimal të gjurmëve të gishtave"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Nuk mund të shtohen gjurmë të tjera të gishtave"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Lidh"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Shkëput"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Ҫifto dhe lidh"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Kur Bluetooth-i është i aktivizuar, pajisja jote mund të komunikojë me pajisjet e tjera me Bluetooth në afërsi."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Kur Bluetooth-i është i aktivizuar, pajisja jote mund të komunikojë me pajisje të tjera me Bluetooth në afërsi.\n\nPër të përmirësuar përvojën e pajisjes, aplikacionet dhe shërbimet mund të vazhdojnë të skanojnë për pajisje në afërsi në çdo kohë, edhe kur Bluetooth-i është joaktiv. Kjo mund të përdoret, për shembull, për të përmirësuar funksionet dhe shërbimet e bazuara te vendndodhja. Mund ta ndryshosh këtë te cilësimet e skanimit me Bluetooth."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Ndrysho"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Detajet e pajisjes"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Lejo që ART të verifikojë kodin me bajte për aplikacionet e korrigjueshme"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Shfaq shpejtësinë e rifreskimit"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Shfaq shpejtësinë aktuale të rifreskimit të ekranit"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Shfaq raportin e HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Shfaq raportin aktual të HDR/SDR"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Kërkohet shkyçja e pajisjes për NFC-në"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Dërgimi me rreze i Androidit"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Vazhdo të përdorësh aplikacionet në Fold"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Ngre automatikisht shpejtësinë e rifreskimit nga 60 në <xliff:g id="ID_1">%1$s</xliff:g> Hz për disa përmbajtje. Rrit përdorimin e baterisë."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Rrit automatikisht shpejtësinë e rifreskimit deri në <xliff:g id="ID_1">%1$d</xliff:g> Hz për disa përmbajtje. Rrit përdorimin e baterisë."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Detyro shpejtësinë maksimale të rifreskimit"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Shpejtësia më e lartë e rifreskimit për përmirësimin e reagueshmërisë së prekjes dhe cilësisë së animacioneve. Rrit përdorimin e baterisë."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Vëmendja ndaj ekranit"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Cilësimet e përbashkëta"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN-të"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Redakto pikën e qasjes"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Shto pikën e qasjes"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Nuk është caktuar"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Nuk është caktuar"</string>
     <string name="apn_name" msgid="6677695784108157953">"Emri"</string>
@@ -1320,6 +1397,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"Rrjeti APN u aktivizua"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"Rrjeti APN u çaktivizua"</string>
     <string name="bearer" msgid="3231443241639159358">"Bartësi"</string>
+    <string name="network_type" msgid="748590707422733595">"Lloji i rrjetit"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"I papërcaktuar"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Lloji i MVNO-së"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"Vlera e MVNO-së"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Fshi APN-në"</string>
@@ -1930,19 +2009,21 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Përdor butonin e qasshmërisë për të hapur"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Mbaj shtypur tastet e volumit për ta hapur"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Trokit tri herë në ekran për ta hapur"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Trokit tri herë me dy gishta në ekran për të hapur"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Përdor gjestin për të hapur"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Përdor gjestin e qasshmërisë"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Për ta përdorur këtë veçori, trokit te butoni i qasshmërisë <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> në fund të ekranit.\n\nPër të ndërruar mes veçorive, mbaj të shtypur butonin e qasshmërisë."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Për të përdorur këtë veçori, trokit te butoni i qasshmërisë në ekranin tënd."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Për ta përdorur këtë veçori, mbaj shtypur të dyja tastet e volumit."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Për të filluar dhe ndaluar zmadhimin, trokit tri herë diku në ekran."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Për të filluar dhe ndaluar zmadhimin, trokit tri herë me dy gishta diku në ekran."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Për ta përdorur këtë veçori, rrëshqit shpejt lart nga fundi i ekranit me 2 gishta.\n\nPër të ndërruar mes veçorive, rrëshqit shpejt lart me 2 gishta dhe mbaje të shtypur."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Për ta përdorur këtë veçori, rrëshqit shpejt lart nga fundi i ekranit me 3 gishta.\n\nPër të ndërruar mes veçorive, rrëshqit shpejt lart me 3 gishta dhe mbaje të shtypur."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Për të përdorur një veçori të qasshmërisë, rrëshqit shpejt lart nga fundi i ekranit me 2 gishta.\n\nPër të ndërruar mes veçorive, rrëshqit shpejt lart me 2 gishta dhe mbaje të shtypur."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Për të përdorur një veçori të qasshmërisë, rrëshqit shpejt lart nga fundi i ekranit me 3 gishta.\n\nPër të ndërruar mes veçorive, rrëshqit shpejt lart me 3 gishta dhe mbaje të shtypur."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"E kuptova"</string>
     <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Cilësimet e butonit"</string>
-    <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Shkurtorja për: <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
+    <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Shkurtorja për <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Butoni i qasshmërisë"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Gjesti i qasshmërisë"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_gesture" msgid="8078659880723370597">"Rrëshqit lart me 2 gishta"</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Mbaj shtypur tastet e volumit"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"mbaj shtypur 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_triple_tap" msgid="6687765191490040899">"Trokit tri herë me dy gishta në ekran"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"trokit tri herë me dy gishta në ekran"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"trokit tri herë mbi ekran"</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>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Përdor dridhjen dhe prekjen"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Dridhja e alarmit"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Dridhja e medias"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Dridhja e tastierës"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Dridhja e ziles"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Dridhja e njoftimit"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Reagimi me prekje"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> të mbetura"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> për të karikuar"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Koha para ekranit"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Koha në sfond"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Bateria në nivel të ulët"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Lejo që aplikacioni të ekzekutohet në sfond"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Të kufizohet aktiviteti në sfond?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Nëse e kufizon aktivitetin në sfond për një aplikacion, mund të ketë çrregullime në funksionimin e tij"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Duke qenë se ky aplikacion nuk është caktuar për të optimizuar baterinë, nuk mund ta kufizosh atë.\n\nPër të kufizuar aplikacionin, në fillim aktivizo optimizimin e baterisë."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Menaxho përdorimin e baterisë"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Lejo përdorimin në sfond"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Aktivizo për përditësime në kohë reale; çaktivizo për të kursyer bateri"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Pa kufizim"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"I optimizuar"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"I kufizuar"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"që nga karikimi i fundit i plotë"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Aplikacionet e sistemit"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Aplikacionet e çinstaluara"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Të tjera"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Koha e vlerësuar e mbetur"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Deri në ngarkimin e plotë"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Në total: më pak se një minutë"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Në sfond: më pak se një minutë"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Koha para ekranit: më pak se një minutë"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Më pak se një minutë"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Në total: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Në sfond: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Koha para ekranit: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Të dhënat celulare dhe Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Sinkronizo automatikisht të dhënat personale"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Sinkronizo automatikisht të dhënat e punës"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Sinkronizo të dhënat private"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Ndrysho ciklin…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Dita për rivendosjen e ciklit të përdorimit të të dhënave:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Nuk janë përdorur të dhëna gjatë kësaj periudhe."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"madhësia e tekstit, shkronja të mëdha, fonti i madh, teksti i madh, shikim i dobët, bëje tekstin më të madh, zmadhuesi i fontit, zmadhimi i fontit"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"shfaqja e ambientit gjithmonë aktive, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, etiketë, lexues"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"tastierë, prekje, dridhje,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Volum, dridhje, \"Mos shqetëso\""</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Volumi i medias"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Volumi i transmetimit"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Shfaq të gjithë përmbajtjen e njoftimit"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Shfaq përmbajtjet delikate vetëm pasi ta shkyçësh"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Mos shfaq asnjë njoftim"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Si dëshiron të shfaqet ekrani i kyçjes?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Ekrani i kyçjes"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Shfaq të gjitha përmbajtjet e njoftimeve të punës"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Fshih përmbajtjet delikate të punës"</string>
@@ -3354,6 +3449,17 @@
     <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="6121016426991791557">"Reduktimi i njoftimeve"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Zbato reduktimin për të gjitha njoftimet"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Ul gradualisht volumin e njoftimeve kur merr shumë njoftime të njëpasnjëshme nga i njëjti aplikacion"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Zbato reduktimin për bisedat"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Ul gradualisht volumin e njoftimeve kur merr shumë mesazhe nga e njëjta bisedë brenda një periudhe të shkurtër kohore"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Mos e përdor reduktimin e njoftimeve"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Mos e ul asnjëherë volumin e njoftimeve, pavarësisht sasisë së njoftimeve të njëpasnjëshme nga i njëjti aplikacion"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Lësho dridhje kur është i shkyçur"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Lësho dridhje vetëm kur ekrani është i shkyçur"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Zbato në profilet e punës"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Zbato cilësimet e reduktimit të njoftimeve nga profili yt personal tek ai i punës"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Shërbimet e ndihmësit VR"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Asnjë aplikacion i instaluar nuk ka kërkuar të ekzekutohet si shërbim ndihmësi VR."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Të lejohet qasja e shërbimit VR për <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Lejo qasjen për të menaxhuar të gjithë skedarët"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Lejo që ky aplikacion të lexojë, modifikojë dhe fshijë të gjithë skedarët në këtë pajisje ose në çdo volum hapësire ruajtjeje të lidhur. Nëse lejohet, aplikacioni mund të ketë qasje te skedarët pa dijeninë tënde të qartë."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Mund të ketë qasje te të gjithë skedarët"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Aplikacionet e aktivizuara me zë"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Lejo aktivizimin me zë"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Aktivizimi i zërit aktivizon aplikacionet e miratuara, pa përdorur duart, me anë të komandave zanore. Monitorimi i integruar me përshtatje siguron që të dhënat të qëndrojnë private, te dukshme vetëm për ty.\n\n"<a href="">"Më shumë rreth monitorimit të mbrojtur me përshtatje"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Njoftimet në ekranin e plotë"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Të lejohen njoftimet në ekranin e plotë nga ky aplikacion"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Lejo këtë aplikacion të shfaqë njoftime që zënë ekranin e plotë kur pajisja është e kyçur. Aplikacionet mund t’i përdorin këto për të vendosur në fokus alarmet, telefonatat hyrëse apo njoftimet e tjera urgjente."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ka përdorur më shumë bateri se zakonisht ndërkohë që ka qenë në sfond"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ka përdorur më shumë bateri ndërkohë që ka qenë në plan të parë"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ka përdorur më shumë bateri se zakonisht ndërkohë që ka qenë në plan të parë"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Përdorim i lartë i baterisë"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Përdorim i lartë i baterisë në sfond"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Përdorim i lartë i baterisë në plan të parë"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"navigimi i sistemit, navigimi me 2 butona, navigimi me 3 butona, navigimi me gjeste, rrëshqit shpejt"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Asistenti dixhital"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Rrëshqit shpejt për të aktivizuar asistentin"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Rrëshqit shpejt lart nga këndi i poshtëm për të aktivizuar aplikacionin e asistentit dixhital."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Mbaj shtypur \"Kreun\" për \"Asistentin\""</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Shtyp dhe mbaj shtypur butonin \"Kreu\" për të thirrur aplikacionin e asistentit dixhital."</string>
     <string name="low_label" msgid="6525629096999711220">"E ulët"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"të dhëna, çelës kalimi, fjalëkalim"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"automatik, plotëso, plotësimi automatik, të dhënat, çelësi i kalimit, fjalëkalimi"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Sigurohu që ke besim te ky aplikacion&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Plotësimi automatik i Google&gt;%1$s&lt;/xliff:g&gt; përdor atë që ndodhet në ekranin tënd për të përcaktuar se çfarë mund të plotësohet automatikisht."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Përdor &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; përdor ato që janë në ekranin tënd për të përcaktuar se çfarë mund të plotësohet automatikisht. Fjalëkalimet, çelësat e kalimit dhe informacionet e tjera të reja do të ruhen këtu nga tani e tutje."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Use &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Fjalëkalimet, çelësat e kalimit dhe informacionet e tjera të reja do të ruhen këtu nga tani e tutje. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; mund të përdorë ato që janë në ekranin tënd për të përcaktuar se çfarë mund të plotësohet automatikisht."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Fjalëkalimet, çelësat e kalimit dhe shërbimet e të dhënave"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Të çaktivizohet %1$s?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Të çaktivizohet shërbimi?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Informacionet e ruajtura si fjalëkalimet, çelësat e kalimit, mënyrat e pagesës dhe informacione të tjera nuk do të plotësohen kur të identifikohesh. Për të përdorur informacionin tënd të ruajtur, zgjidh një fjalëkalim, çelës kalimi ose shërbim të dhënash."</string>
@@ -4785,10 +4897,8 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Raporti i pamjes"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"Provo një raport të ri pamjeje për ta parë këtë aplikacion nëse nuk është projektuar për t\'u përshtatur me pajisjen tënde <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Provo një raport të ri pamjeje për ta parë këtë aplikacion nëse nuk është projektuar për t\'u përshtatur me pajisjen tënde <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Disa aplikacione mund të mos jenë të optimizuara për raporte të caktuara të pamjes."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Provo një raport të ri pamjeje për të parë një aplikacion nëse nuk është projektuar për t\'u përshtatur me pajisjen tënde <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Provo një raport të ri pamjeje për të parë një aplikacion nëse nuk është projektuar për t\'u përshtatur me pajisjen tënde <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Disa aplikacione mund të mos jenë të optimizuara për raporte të caktuara të pamjes."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Aplikacionet e sugjeruara"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Të ndryshuarat"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Parazgjedhja e aplikacionit"</string>
@@ -4858,4 +4968,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Po skanon për aplikacione mashtruese"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Kontrollo aktivitetin e aplikacioneve për mashtrime"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Përdor skanimin për aplikacionet mashtruese"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Përdor skanimin për aplikacionet mashtruese për punë"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-sr/arrays.xml b/res/values-sr/arrays.xml
index 831fbee..20b1cff 100644
--- a/res/values-sr/arrays.xml
+++ b/res/values-sr/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"После 1 минута"</item>
     <item msgid="1574040255478150028">"После 5 минута"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 47eac1f..25c2607 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Онемогући Bluetooth LE audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Онемогућава функцију Bluetooth LE audio ако уређај подржава могућности LE audio хардвера."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"LE Audio прекидач у детаљима о уређају"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Омогући Bluetooth LE Audio листу дозвола"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Омогућава функцију Bluetooth LE Audio листу дозвола."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Заобиђи Bluetooth LE Audio листу дозвољених"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Подразумевано користи LE Audio чак и ако није потврђено да LE Audio периферни уређај задовољава критеријуме листе дозвољених."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Медијски уређаји"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Уређаји за позивање"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Други уређаји"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Сачувани уређаји"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Повезано са налогом"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Претходно коришћено са налогом"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth ће се укључити ради упаривања"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Подешавања повезивања"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Претходно повезани"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Пишите у пољима за текст"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Игнориши сва притискања дугмета помоћу писаљке"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Писаљка"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Дељење звука"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Дели звук"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Позиви и аларми"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Датум и време"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Прокси"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Обриши"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Учитава се…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Апликације са дозволом за уређаје у близини могу да одреде приближан положај повезаних уређаја."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Приступ локацији је искључен за апликације и услуге. Локација уређаја може и даље да се шаље екипама хитних служби када позовете број за хитне случајеве или пошаљете SMS на њега."</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Сазнајте више о подешавањима локације"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Налози"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Безбедност"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Шифровање и акредитиви"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Пословни профил"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Приватни простор"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Сакриј апликације у приватном фолдеру"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Откључај помоћу откључавања екрана"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Сакриј приватни простор"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Сакриј кад је закључан"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Сакријте приватни простор кад је закључан"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Приватни простор можете да сакријете са листе апликација"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Приступите приватном простору кад је сакривен"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Потражите Приватни простор на траци за претрагу"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Додирните плочицу Приватни простор"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Откључајте приватни простор"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Искључено"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Укључeно"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Систем"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Направи приватни простор"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Избриши приватни простор"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Приватни простор је направљен"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Приватни простор већ постоји"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Прављење приватног простора није успело"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Приватни простор је избрисан"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Брисање приватног простора није успело"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Подесите закључавање екрана"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"За приватни простор подесите закључавање екрана на уређају."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Подеси закључавање екрана"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Откажи"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Откажи"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Подеси"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Подесите приватни простор"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Сакријте приватне апликације у безбедном простору ком само ви можете да приступите"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Принцип рада"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Приватном простору можете да приступите са дна листе апликација"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Апликације у приватном простору су закључане"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Обавештења из апликација приватног простора су скривена кад је он закључан"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Апликације приватног простора неће се појавити у менаџеру дозвола, на контролној табли за приватност и у другим подешавањима кад је приватни простор закључан"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Подешава се приватни простор…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Приватни простор је заштићен закључавањем"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Информације о коришћењу за апликације из приватног простора су скривене када је закључан"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Приступајте приватном простору са листе апликација"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Подешавање приватног простора није успело"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Пробајте поново сада или се вратите касније"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Пробај поново"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Желите да откључате помоћу откључавања екрана?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Можете да откључавате приватни простор исто као што откључавате уређај или да одаберете другачији тип откључавања"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Користи откључавање екрана"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Одабери нови тип закључавања"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Готово!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Да бисте приступали приватном простору, превуците нагоре од дна почетног екрана, па скролујте надоле"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Готово"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Скролујте надоле да бисте приступали приватном простору"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Пријавите се да бисте подесили приватни простор"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Можете да их додате до <xliff:g id="COUNT">%d</xliff:g>"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Додали сте максималан број отисака прстију"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Не можете да додате још отисака прстију"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Повежи"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Прекини везу"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Упари и повежи"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Када је Bluetooth укључен, уређај може да комуницира са другим Bluetooth уређајима у близини."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Када је Bluetooth укључен, уређај може да комуницира са другим Bluetooth уређајима у близини"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Када је Bluetooth укључен, уређај може да комуницира са другим Bluetooth уређајима у близини.\n\nРади бољег доживљаја уређаја, апликације и услуге и даље могу да траже уређаје у близини у било ком тренутку, чак и када је Bluetooth искључен. Ово може да се користи, на пример, за побољшање функција и услуга заснованих на локацији. То можете да промените у подешавањима Bluetooth скенирања."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Промени"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Детаљи о уређају"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Дозволи да ART потврди бинарни кôд апликација из којих могу да се отклоне грешке"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Прикажи учесталост освежавања"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Приказује актуелну учесталост освежавања екрана"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Прикажи HDR или SDR размеру"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Приказује актуелну HDR или SDR размеру"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Тражи да се откључа уређај за коришћење NFC-а"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1137,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Настави са коришћењем апликација при преклапању"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Течан приказ"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Аутоматски подиже учесталост освежавања са 60 на <xliff:g id="ID_1">%1$s</xliff:g> Hz за одређени садржај. Повећава потрошњу батерије."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Аутоматски подиже учесталост освежавања до <xliff:g id="ID_1">%1$d</xliff:g> Hz за одређени садржај. Повећава потрошњу батерије."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Наметни максималну учесталост освежавања"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Највећа учесталост освежавања за побољшан одзив на додир и квалитет анимације. Повећава потрошњу батерије."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Пажња екрана"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Заједничка подешавања"</string>
     <string name="apn_settings" msgid="4295467389400441299">"Називи приступних тачака"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Измена приступне тачке"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Додајте приступну тачку"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Није подешено"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Није подешено"</string>
     <string name="apn_name" msgid="6677695784108157953">"Назив"</string>
@@ -1320,6 +1396,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"Назив приступне тачке је омогућен"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"Назив приступне тачке је онемогућен"</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>
     <string name="mvno_match_data" msgid="5213193073684321156">"Вредност MVNO-а"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Избриши назив приступне тачке"</string>
@@ -1506,7 +1584,7 @@
     <string name="lockpassword_choose_your_password_header_for_biometrics" msgid="2053366309272487015">"Подесите лозинку да бисте користили лице или отисак прста"</string>
     <string name="lockpassword_choose_your_pattern_header_for_biometrics" msgid="4038476475293734905">"Подесите шаблон да бисте користили лице или отисак прста"</string>
     <string name="lockpassword_choose_your_pin_header_for_biometrics" msgid="9086039918921009380">"Подесите PIN да бисте користили лице или отисак прста"</string>
-    <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Заборавили сте лозинку?"</string>
+    <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Заборављена лозинка?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Заборавили сте шаблон?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Заборавили сте PIN?"</string>
     <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Нацртајте шаблон да бисте наставили"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Отварајте помоћу дугмета за приступачност"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Задржите тастере за јачину звука да бисте отворили"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Трипут додирните екран да бисте отворили"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Додирните екран три пута помоћу два прста да бисте отворили"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Отварајте помоћу покрета"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Користите покрет за приступачност"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Да бисте користили ову функцију, додирните дугме Приступачност <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> у дну екрана.\n\nДа бисте прелазили са једне функције на другу, додирните и задржите дугме Приступачност."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Да бисте користили ову функцију, додирните дугме Приступачност на екрану."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Да бисте користили ову функцију, притисните и задржите оба тастера за јачину звука."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Да бисте покренули и зауставили увећање, трипут додирните било где на екрану."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Да бисте покренули и зауставили увећање, додирните три пута било где на екрану помоћу два прста."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Да бисте користили ову функцију, превуците нагоре од дна екрана помоћу 2 прста.\n\nДа бисте прелазили са једне функције на другу, превуците нагоре помоћу 2 прста и задржите."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Да бисте користили ову функцију, превуците нагоре од дна екрана помоћу 3 прста.\n\nДа бисте прелазили са једне функције на другу, превуците нагоре помоћу 3 прста и задржите."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Да бисте користили функцију приступачности, превуците нагоре од дна екрана помоћу 2 прста.\n\nДа бисте прелазили са једне функције на другу, превуците нагоре помоћу 2 прста и задржите."</string>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Задржите тастере за јачину звука"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"задржите тастере за јачину звука"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Притисните и задржите оба тастера за јачину звука"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"Додирните екран три пута помоћу два прста"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"додирните екран три пута помоћу два прста"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"Брзо додирните екран {0,number,integer} пута помоћу два прста"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Додирните екран трипут"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"додирните екран трипут"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Брзо додирните екран {0,number,integer} пута. Ова пречица може да успори уређај"</string>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Користи вибрирање и хаптику"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Вибрирање аларма"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Вибрирање медија"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Вибрација тастатуре"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Вибрирање звона"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Вибрирање обавештења"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Тактилни одзив"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"Још <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"Пуни се још <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g>"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Време на екрану"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Време у позадини"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Низак ниво батерије"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Дозволите апликацији да се покреће у позадини"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Желите ли да ограничите активности у позадини?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Ако ограничите активности апликације у позадини, можда ће се понашати неочекивано."</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Апл. није подешена за оптимизацију батерије, па не можете да је ограничите. \n\nЗа огр. апл. укључите оптимизацију батерије."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Управљајте потрошњом батерије"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Дозволи коришћење у позадини"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Омогућите за ажурирања у реалном времену, онемогућите да бисте уштедели батерију"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Неограничено"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Оптимизовано"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Ограничено"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"од последњег потпуног пуњења"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Системске апликације"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Деинсталиране апликације"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Друго"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Процењено преостало време"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"До потпуног пуњења"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Укупно: мање од минут"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Позадина: мање од минут"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Време испред екрана: мање од минута"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Мање од минута"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Укупно: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Позадина: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Време испред екрана: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Мобилни подаци и WiFi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Аутом. синхрон. личне податке"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Аутом. синхр. податке за посао"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Синхронизуј приватне податке"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Промена циклуса..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Дан у месецу када се поново поставља циклус потрошње података:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"У овом периоду апликације нису користиле податке."</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"величина текста, велика слова, велик фонт, велик текст, слабовидост, повећање текста, увећавање фонта, повећање фонта"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"звек укључен амбијентални приказ, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, ознака, читач"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"тастатура, хаптика, вибрација,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Јачина звука, вибрација, Не узнемиравај"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Јачина звука медија"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Јачина звука за пребацивање"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Прикажи сав садржај обавештења"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Прикажи осетљив садржај само када је откључан"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Не приказуј уопште обавештења"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Како желите да се приказује садржај на закључаном екрану?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Закључан екран"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Приказуј сав садржај обавештења о пословном профилу"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Сакриј осетљив садржај пословног профила"</string>
@@ -3354,6 +3448,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Ова апликација не подржава побољшана подешавања"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Још подешавања"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Доступно је још подешавања у апликацији"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Мировање за обавештења"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Примени мировање на сва обавештења"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Постепено смањује јачину звука обавештења када добијете много узастопних обавештења из исте апликације"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Примени мировање на све конверзације"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Постепено смањује јачину звука обавештења када добијете много порука из истог ћаскања у кратком периоду"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Не користи мировање за обавештења"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Никада не смањује јачину звука обавештења, без обзира на број узастопних порука из исте апликације"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Вибрирај када је екран откључан"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Вибрира само када је екран откључан"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Примени на пословне профиле"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Примењује подешавања мировања за обавештења са личног профила на пословни профил"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Услуге помагача за виртуелну реалност"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Ниједна инсталирана апликација није захтевала да се покрене као услуга помагача за виртуелну реалност."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Дозвољавате приступ услузи виртуелне реалности за <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Дозволи приступ за управљање свим датотекама"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Дозволите да ова апликација чита, мења и брише све датотеке на овом уређају или свим повезаним уређајима за складиштење. Ако то дозволите, апликација може да приступа датотекама без вашег знања."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Може да приступа свим датотекама"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Апликације са активацијом гласом"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Дозволи активацију гласом"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Гласовна активација укључује одобрене апликације хендсфри помоћу гласовне команде. Уграђено прилагодљиво откривање гарантује да ће ваши подаци остати приватни.\n\n"<a href="">"Још о заштићеном прилагодљивом откривању"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Обавештења преко целог екрана"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Дозволите обавештења преко целог екрана од ове апликације"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Дозволите овој апликацији да приказује обавештења преко целог екрана када је уређај закључан. Апликације могу да их користе ради истицања аларма, долазних позива или других хитних обавештења."</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> користи више батерије него обично док је у позадини"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> користи више енергије док је у првом плану"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> користи више енергије него обично док је у првом плану"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Велика потрошња батерије"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Велика потрошња батерије у позадини"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Велика потрошња батерије у првом плану"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"навигација кроз систем, навигација помоћу 2 дугмета, навигација помоћу 3 дугмета, навигација помоћу покрета, превлачење"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Дигитални помоћник"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Превуците да бисте покренули помоћник"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Превуците нагоре из неког од доњих улова да бисте покренули апликацију дигиталног помоћника."</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Превуците нагоре из неког од доњих улова да бисте покренули апликацију дигиталног помоћника"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"За покретање Помоћника задржите дугме за почетни екран"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Притисните и задржите дугме за почетни екран да бисте покренули апликацију дигиталног помоћника."</string>
     <string name="low_label" msgid="6525629096999711220">"Ниска"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"подаци, приступни кôд, лозинка"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"аутоматски, попуњавање, аутоматско попуњавање, подаци, приступни кључ, лозинка"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Уверите се да је ова апликација поуздана&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google аутоматско попуњавање&gt;%1$s&lt;/xliff:g&gt; користи садржај екрана за утврђивање података који могу аутоматски да се попуне."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&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_autofill_confirmation_message" msgid="843829628024668466">"&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_picker_title" msgid="8191267620665129205">"Услуге за лозинке, приступне кодове и податке"</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>
@@ -4227,7 +4337,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>
@@ -4784,12 +4894,12 @@
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Апликације инсталиране у последњих месец дана}one{Апликације инсталиране у последњих # месеци}few{Апликације инсталиране у последња # месеца}other{Апликације инсталиране у последњих # месеци}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Апликације које су инсталиране пре више од # месеца}one{Апликације које су инсталиране пре више од # месеца}few{Апликације које су инсталиране пре више од # месеца}other{Апликације које су инсталиране пре више од # месеци}}"</string>
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Размера"</string>
-    <string name="aspect_ratio_summary" msgid="4056406351663726494">"Испробајте нову размеру да бисте прегледали садржај ове апликације ако није дизајнирана да стаје на уређај <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Испробајте нову размеру да бисте прегледали садржај ове апликације ако није дизајнирана да стаје на уређај <xliff:g id="DEVICE_NAME">%1$s</xliff:g> Неке апликације можда неће бити оптимизоване за одређене размере."</string>
-    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Испробајте нову размеру да бисте прегледали садржај ове апликације ако није дизајнирана да стаје на уређај <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Испробајте нову размеру да бисте прегледали садржај ове апликације ако није дизајнирана да стаје на уређај <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Неке апликације можда неће бити оптимизоване за одређене размере."</string>
+    <string name="aspect_ratio_summary" msgid="4056406351663726494">"Испробајте нову размеру да бисте прегледали садржај ове апликације ако није дизајнирана да стаје на: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Испробајте нову размеру да бисте прегледали садржај ове апликације ако није дизајнирана да стаје на: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Неке апликације можда неће бити оптимизоване за одређене размере."</string>
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Испробајте нову размеру да бисте прегледали садржај ове апликације ако није дизајнирана да стаје на: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Испробајте нову размеру да бисте прегледали садржај ове апликације ако није дизајнирана да стаје на: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Неке апликације можда неће бити оптимизоване за одређене размере."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Предложене апликације"</string>
-    <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Измењене апл."</string>
+    <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Измењене апликације"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Подразумевана за апликације"</string>
     <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Цео екран"</string>
     <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"На пола екрана"</string>
@@ -4857,4 +4967,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Провера ради откривања обмањујућих апликација"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Проверите активности у апликацијама ради откривања „пецања“"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Користи скенирање за обмањујуће апликације"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Користи скенирање за обмањујуће апликације за посао"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-sv/arrays.xml b/res/values-sv/arrays.xml
index e4c73a8..0c509bf 100644
--- a/res/values-sv/arrays.xml
+++ b/res/values-sv/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Efter 1 minut"</item>
     <item msgid="1574040255478150028">"Efter 5 minuter"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 3526634..2cc3454 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Inaktivera Bluetooth LE Audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Inaktiverar Bluetooth LE Audio-funktionen om enheten har stöd för funktioner för LE Audio-maskinvara."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Visa reglage för LE Audio i Enhetsinfo"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Aktivera godkännandelista för Bluetooth LE Audio"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Aktivera funktionen för godkännandelista för Bluetooth LE Audio."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Hoppa över godkännandelistan för Bluetooth LE Audio"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Använd LE Audio som standard även om LE Audio-kringutrustningen inte har bekräftats uppfylla kraven för godkännandelistan."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Medieenheter"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Telefonenheter"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Andra enheter"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Sparade enheter"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Kopplad till kontot"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Användes tidigare med kontot"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth aktiveras för parkoppling"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Anslutningsval"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Tidigare anslutna enheter"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Skriv i textfälten"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignorera alla knapptryckningar på e-pennan"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"E-penna"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Ljuddelning"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Dela ljud"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Samtal och alarm"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Datum och tid"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Rensa"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Läs mer om platsinställningar"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Konton"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Säkerhet"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Kryptering och användaruppgifter"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Jobbprofil"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Privat rum"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Dölj appar i en privat mapp"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Lås upp med skärmlåset"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Visa privat rum"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Dölj när det är låst"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Dölj privat rum när det är låst"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Du kan dölja privat rum i applistan så andra inte ser det"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Kom åt privat rum när det är dolt"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Sök efter privat rum i sökfältet"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Tryck på rutan för privat rum"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Lås upp ditt privata rum"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Av"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"På"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"System"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Skapa privat rum"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Radera privat rum"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Det privata rummet har skapats"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Det privata rummet finns redan"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Det gick inte att skapa det privata rummet"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Det privata rummet har raderats"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Det gick inte att radera det privata rummet"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Ställ in skärmlås"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Ange ett skärmlås för enheten om du vill använda Privat rum."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Konfigurera skärmlås"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Avbryt"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Avbryt"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Ställ in"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Ställ in privat rum"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Dölj privata appar i ett säkert rum som bara du kan komma åt"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Så fungerar det"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Du kan komma åt privat rum längst ned i applistan"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Appar i privat rum skyddas av ett lås"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Aviseringar från appar i privat rum döljs när det är låst"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Appar i privat rum visas inte i behörighetshanteringen, integritetsöversikten eller andra inställningar när privat rum är låst"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Konfigurera privat rum …"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Privat rum är skyddat med ett lås"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Användarinformation för appar i privat rum döljs när det är låst"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Åtkomst till Privat rum från din applista"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Det gick inte att konfigurera privat rum"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Försök igen nu eller kom tillbaka senare"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Försök igen"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Vill du använda skärmlåset för att låsa upp?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Du kan låsa upp privat rum på samma sätt som du låser upp din enhet, eller så väljer du ett annat lås"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Använd skärmlås"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Välj ett nytt lås"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Klart!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Svep uppåt från startskärmens nederkant och scrolla sedan nedåt för att få åtkomst till Privat rum"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Klar"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Scrolla nedåt för att få åtkomst till privat rum"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Logga in för att konfigurera privat rum"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Du kan lägga till upp till <xliff:g id="COUNT">%d</xliff:g> fingeravtryck"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Du har lagt till det högsta tillåtna antalet fingeravtryck"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Det går inte att lägga till fler fingeravtryck"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Anslut"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Koppla ifrån"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Parkoppla och anslut"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"När Bluetooth har aktiverats kan enheten kommunicera med andra Bluetooth-enheter i närheten."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"När Bluetooth är aktiverat kan enheten kommunicera med andra Bluetooth-enheter i närheten.\n\nÄven när Bluetooth är inaktiverat kan appar och tjänster när som helst söka efter enheter i närheten för att förbättra användningen av enheten. Funktionen kan till exempel användas till att förbättra platsbaserade funktioner och tjänster. Du kan ändra inställningen i genomsökningsinställningarna för Bluetooth."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Ändring"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Enhetsinformation"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Verifiera bytekod för felsökningsbara appar genom att tillåta ART"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Visa uppdateringsfrekvens"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Visa skärmens aktuella uppdateringsfrekvens"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Visa HDR/SDR-förhållande"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Visa aktuellt HDR/SDR-förhållande"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Enheten måste låsas upp för NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Fortsätt att använda appar i hopvikt läge"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Höjer automatiskt uppdateringsfrekvensen från 60 till <xliff:g id="ID_1">%1$s</xliff:g> Hz för visst innehåll. Ökar batteriförbrukningen."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Höjer automatiskt uppdateringsfrekvensen till <xliff:g id="ID_1">%1$d</xliff:g> Hz för visst innehåll. Ökar batteriförbrukningen."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Tvinga att den högsta uppdateringsfrekvensen körs"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Den högsta uppdateringsfrekvensen ger bättre tryckkänslighet och animationskvalitet. Ökar batteriförbrukningen."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Blickavkänning"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Allmänna inställningar"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN:er"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Redigera åtkomstpunkt"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Lägg till åtkomstpunkt"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Ej fastställt"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Har inte angetts"</string>
     <string name="apn_name" msgid="6677695784108157953">"Namn"</string>
@@ -1320,6 +1397,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN aktiverat"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN inaktiverat"</string>
     <string name="bearer" msgid="3231443241639159358">"Bearer"</string>
+    <string name="network_type" msgid="748590707422733595">"Nätverkstyp"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Ej angiven"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO-typ"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO-värde"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Ta bort APN"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Öppna med tillgänglighetsknappen"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Öppna genom att hålla ned volymknapparna"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Öppna genom att trycka snabbt tre gånger"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Tryck snabbt tre gånger på skärmen med två fingrar för att öppna"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Öppna med rörelse"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Använda tillgänglighetsrörelser"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Tryck på tillgänglighetsknappen <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> längst ned på skärmen om du vill använda denna funktion.\n\nByt funktion genom att hålla in tillgänglighetsknappen."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Tryck på tillgänglighetsknappen på skärmen om du vill använda den här funktionen."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Håll båda volymknapparna nedtryckta om du vill använda den här funktionen."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Tryck snabbt tre gånger någonstans på skärmen för att starta och avsluta förstoring."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Tryck snabbt tre gånger någonstans på skärmen med två fingrar för att starta och avsluta förstoring."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Svep uppåt med två fingrar från skärmens nederkant om du vill använda den här funktionen.\n\nByt funktion genom att svepa uppåt med två fingrar och hålla kvar dem."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Svep uppåt med tre fingrar från skärmens nederkant om du vill använda den här funktionen.\n\nByt funktion genom att svepa uppåt med tre fingrar och hålla kvar dem."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Svep uppåt med två fingrar från skärmens nederkant om du vill använda en tillgänglighetsfunktion.\n\nByt funktion genom att svepa uppåt med två fingrar och hålla kvar dem."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Håll ned volymknapparna"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"håll ned volymknapparna"</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_triple_tap" msgid="6687765191490040899">"Skärm för snabbt tryck tre gånger med två fingrar"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"skärm för snabbt tryck tre gånger med två fingrar"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"tryck snabbt tre gånger på skärmen"</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>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Använd vibration och haptik"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Vibration för alarm"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Vibration för medieinnehåll"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Tangentbordsvibration"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Vibration för ringsignal"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Vibration för aviseringar"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Tryckåterkoppling"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> återstår"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"Ladda i <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> till"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Skärmtid"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Bakgrundstid"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Låg batterinivå"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Tillåt att appen körs i bakgrunden"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Vill du begränsa bakgrundsaktivitet?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Om du begränsar bakgrundaktiviteten för en app kanske den inte fungerar som den ska"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Appen kan inte begränsas eftersom batterioptimering inte har angetts.\n\nAktivera batterioptimering för att begränsa appen."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Hantera batterianvändning"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Tillåt bakgrundsanvändning"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Aktivera för uppdateringar i realtid – inaktivera för att spara batteri"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Obegränsad"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Optimerad"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Begränsad"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"sedan senaste fulladdningen"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Systemappar"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Avinstallerade appar"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Annat"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Beräknad återstående tid"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Tills fulladdad"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Totalt: mindre än en minut"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"I bakgrunden: mindre än en minut"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Skärmtid: mindre än en minut"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Under en minut"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Totalt: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"I bakgrunden: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Skärmtid: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Mobildata och wifi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Autosynka personuppgifter"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Autosynka arbetsuppgifter"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Synka privat data automatiskt"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Ändra cykel…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Dag i månaden för att återställa dataanvändningscykeln:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Inga data användes i appar under den här perioden."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"textstorlek, stora tecken, stort teckensnitt, stor text, nedsatt syn, göra texten större, teckenförstoring, förstora teckensnitt"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"aktiv låsskärm alltid på, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, etikett, läsare"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"tangentbord, haptik, vibrera,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Volym, vibrera, stör ej"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Medievolym"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Castvolym"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Visa allt aviseringsinnehåll"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Visa känsligt innehåll endast i upplåst läge"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Visa inga aviseringar alls"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Hur vill du att låsskärmen ska visas?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Låsskärm"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Visa allt innehåll i jobbaviseringarna"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Dölj känsligt jobbinnehåll"</string>
@@ -3354,6 +3449,17 @@
     <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="6121016426991791557">"Gradvis sänkning – aviseringar"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Använd gradvis sänkning för alla aviseringar"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Sänker gradvis volymen för aviseringar när du får många aviseringar i rad från samma app"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Använd gradvis sänkning för alla konversationer"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Sänker gradvis volymen för aviseringar när du får många meddelanden i rad från samma chatt"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Använd inte gradvis sänkning för aviseringar"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Sänk aldrig aviseringsvolymen, oavsett hur många aviseringar i rad du får från samma app"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Vibrera när enheten är upplåst"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Vibrera endast när skärmen är upplåst"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Använd för jobbprofiler"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Använd inställningarna för gradvis sänkning för aviseringar från den privata profilen i jobbprofilen"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Hjälptjänster för VR"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Inga installerade appar har begärt att få köras som hjälptjänster för VR."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Vill du tillåta att tjänsten för VR får tillgång till <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Tillåt hanteringsåtkomst för alla filer"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Tillåt att den här appen får läsa, redigera och radera alla filer på enheten och eventuella anslutna lagringsutrymmen. Om du beviljar behörigheten kan appen komma åt filer utan att du informeras."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Har åtkomst till alla filer"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Röstaktiveringsappar"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Tillåt röstaktivering"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Röstaktivering aktiverar godkända appar via rösten med dina röstkommandon. Inbyggda adaptiva sensorer ser till att data förblir privat för dig.\n\n"<a href="">"Mer om skyddade och adaptiva sensorer"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Aviseringar i helskärm"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Tillåt aviseringar i helskärm från den här appen"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Tillåt att den här appen visar aviseringar som täcker hela skärmen när enheten är låst. Sådana aviseringar kan användas i appar för att lyfta fram alarm, inkommande samtal och andra brådskande aviseringar."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> förbrukade mer batteri än vanligt i bakgrunden"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> förbrukade mer batteri i förgrunden"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> förbrukade mer batteri än vanligt i förgrunden"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Hög batteriförbrukning"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Hög batteriförbrukning i bakgrunden"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Hög batteriförbrukning i förgrunden"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"systemnavigering, navigering med två knappar, navigering med tre knappar, navigering med rörelser, svepa"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Digital assistent"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Aktivera assistenten genom att svepa"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Svep uppåt från något av de nedre hörnen för att aktivera appen digital assistent."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Håll hemknappen nedtryckt för att anropa Assistent"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Håll hemknappen nedtryckt för att anropa den digitala assistentappen."</string>
     <string name="low_label" msgid="6525629096999711220">"Låg"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"data, nyckel, lösenord"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"auto, fyll, autofyll, data, nyckel, lösenord"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Kontrollera att du litar på den här appen&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofyll&gt;%1$s&lt;/xliff:g&gt; identifierar vad som kan fyllas i automatiskt utifrån vad som visas på skärmen."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Vill du använda &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; använder det som visas på skärmen för att avgöra vad som kan fyllas i automatiskt. Nya lösenord, nycklar och annan information sparas här från och med nu."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Använd &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Nya lösenord, nycklar och annan information sparas här från och med nu. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; kan använda det som visas på skärmen för att avgöra vad som kan fyllas i automatiskt."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Lösenord, nycklar och datatjänster"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Vill du stänga av %1$s?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Vill du inaktivera den här tjänsten?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Sparade uppgifter som lösenord, nycklar, betalningsmetoder och annan information fylls inte i när du loggar in. Om du vill använda dina sparade uppgifter väljer du en lösenords-, nyckel- eller datatjänst."</string>
@@ -4226,10 +4338,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <string name="enable_angle_as_system_driver" msgid="4648827560023949786">"Experimentell: Aktivera ANGLE"</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Varning: Aktivera ANGLE som OpenGL ES-standarddrivrutin. Denna funktion är experimentell och är eventuellt inte kompatibel med vissa kamera- och videoappar."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"Du måste starta om enheten för att ändra systemets OpenGL ES-drivrutin"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Kompatibilitetsändringar för appar"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Aktivera eller inaktivera kompabilitetsändringar för appar"</string>
@@ -4858,4 +4968,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Söker efter bedrägliga appar"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Kontrollera appaktivitet för att upptäcka nätfiske"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Sök efter bedrägliga appar"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Sök efter bedrägliga jobbappar"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-sw/arrays.xml b/res/values-sw/arrays.xml
index c448b3b..a163455 100644
--- a/res/values-sw/arrays.xml
+++ b/res/values-sw/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Baada ya dakika 1"</item>
     <item msgid="1574040255478150028">"Baada ya dakika 5"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 363c8ef..ca90528 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Zima Bluetooth LE audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Huzima kipengele cha Bluetooth LE audio ikiwa kifaa kinatumia maunzi yenye uwezo wa kutumia LE audio."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Onyesha LE Audio kwenye Maelezo ya Kifaa"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Washa Orodha ya walioruhusiwa kufikia Bluetooth LE audio"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Washa kipengele cha orodha ya vinavyoruhusiwa kufikia Bluetooth LE audio."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Kwepa Faili Zilizoruhusiwa za Bluetooth LE Audio"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Tumia LE Audio kwa chaguomsingi hata ikiwa kifaa cha LE Audio hakijathibitishwa kuwa kimetimiza masharti."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Vifaa vya kuhifadhia data"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Vifaa vya kupiga simu"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Vifaa vingine"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Vifaa vilivyohifadhiwa"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Zinazohusishwa na akaunti"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Kilichotumiwa awali kwenye akaunti"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth itawaka ili ioanishe"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Mapendeleo ya muunganisho"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Vilivyounganishwa awali"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Andika kwenye sehemu za maandishi"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Puuza mibofyo yote ya kitufe cha stylus"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Stylus"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Kushiriki faili ya sauti"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Shiriki faili ya sauti"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Simu na kengele"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Tarehe na saa"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Seva mbadala"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Futa"</string>
@@ -273,8 +287,7 @@
     <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_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 nambari ya dharura."</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Pata maelezo zaidi kuhusu Mipangilio ya mahali"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Akaunti"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Usalama"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Vitambulisho na usimbaji fiche"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Wasifu wa kazini"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Nafasi ya Faragha"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Ficha programu katika folda ya faragha"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Fungua ukitumia mbinu ya kufunga skrini"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Onyesha Nafasi ya Faragha"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Ficha wakati umefunga"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Ficha Nafasi ya Faragha wakati umefunga"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Ili Nafasi ya Faragha isionekane na wengine wanaotumia kifaa chako, ifiche kwenye orodha ya programu"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Fikia Nafasi ya Faragha wakati imefichwa"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Tafuta \'Nafasi ya Faragha\' kwenye upau wa kutafutia"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Gusa kigae cha Nafasi ya Faragha"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Fungua Nafasi yako ya Faragha"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Umezima"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Umewasha"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Mfumo"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Buni Nafasi ya Faragha"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Futa Nafasi ya Faragha"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Imebuni Nafasi ya Faragha"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Nafasi ya Faragha tayari ipo"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Imeshindwa kubuni Nafasi ya Faragha"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Imefuta Nafasi ya Faragha"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Imeshindwa kufuta Nafasi ya Faragha"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Weka mbinu ya kufunga skrini"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Ili utumie Chumba cha Faragha weka mbinu ya kufunga skrini kwenye kifaa hiki."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Weka mbinu ya kufunga skrini"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Ghairi"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Ghairi"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Weka mipangilio"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Weka mipangilio ya Nafasi ya Faragha"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Ficha programu za faragha katika sehemu salama isiyoweza kufikiwa na mtu mwingine"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Jinsi inavyofanya kazi"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Unaweza kufikia Nafasi ya Faragha kwenye sehemu ya chini ya orodha ya programu zako"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Programu katika Nafasi ya Faragha zinalindwa kupitia mbinu ya kufunga"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Arifa za programu kwenye Nafasi ya Faragha hufichwa wakati imefungwa"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Programu za Nafasi ya Faragha hazitaonekana kwenye kidhibiti cha ruhusa, dashibodi ya faragha na mipangilio mingine wakati umefunga Nafasi ya Faragha"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Inaweka mipangilio ya Nafasi ya Faragha…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Nafasi ya Faragha hulindwa kwa mbinu ya kufunga"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Maelezo ya matumizi ya programu za Nafasi ya Faragha yamefichwa wakati imefungwa"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Fikia Nafasi ya Faragha kwenye orodha ya programu zako"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Imeshindwa kuweka mipangilio ya Nafasi ya Faragha"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Jaribu tena sasa, au urudi baadaye"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Jaribu Tena"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Ungependa kutumia mbinu ya kufungua skrini?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Unaweza kufungua Nafasi ya Faragha kwa mbinu unayotumia kufungua kifaa chako, au kuchagua mbinu tofauti ya kufunga"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Tumia mbinu ya kufunga skrini"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Chagua mbinu mpya ya kufunga"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Uko tayari kuanza!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Ili ufikie Nafasi ya Faragha, telezesha kidole kuelekea juu kutoka sehemu ya chini ya skrini yako ya kwanza, kisha usogeze chini"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Nimemaliza"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Sogeza chini ili ufikie Nafasi ya Faragha"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Ingia katika akaunti uweke mipangilio ya Nafasi ya Faragha"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Unaweza kuongeza hadi alama za vidole <xliff:g id="COUNT">%d</xliff:g>"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Umeongeza idadi ya juu inayoruhusiwa ya alama za kidole"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Haiwezi kuongeza alama zaidi za kidole"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Unganisha"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Tenganisha"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Oanisha kisha unganisha"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Wakati Bluetooth imewashwa, kifaa chako kinaweza kuwasiliana na vifaa vingine vyenye Bluetooth vilivyo karibu."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Wakati Bluetooth imewashwa, kifaa chako kinaweza kuwasiliana na vifaa vingine vyenye Bluetooth vilivyo karibu"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Wakati Bluetooth imewashwa, kifaa chako kinaweza kuwasiliana na vifaa vingine vyenye Bluetooth vilivyo karibu.\n\nIli kuboresha hali ya matumizi ya kifaa, programu na huduma bado zinaweza kutafuta vifaa vilivyo karibu wakati wowote, hata wakati umezima Bluetooth. Hali hii inaweza kutumika, kwa mfano, kuboresha huduma na vipengele vinavyohusiana na mahali. Unaweza kubadilisha mipangilio hii katika mipangilio ya kutafuta Bluetooth."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Badilisha"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Maelezo ya kifaa"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Ruhusu ART kuthibitisha msimbo wa baiti wa programu zinazoweza kutatuliwa"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Onyesha kiwango cha kuonyesha upya"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Onyesha kiwango cha kuonyesha upya cha sasa cha skrini"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Onyesha uwiano wa HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Onyesho uwiano wa sasa wa HDR/SDR"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Hitaji kifaa kifunguliwe ili kipengele cha NFC kitumike"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1137,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Endelea kutumia programu ukiwa umekunja"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Onyesho Laini"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Huongeza kiotomatiki kiwango cha kuonyesha upya kutoka Hz 60 hadi Hz <xliff:g id="ID_1">%1$s</xliff:g> kwa baadhi ya maudhui. Huongeza matumizi ya betri."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Hupandisha kiotomatiki kiwango cha kuonyesha upya hadi Hz <xliff:g id="ID_1">%1$d</xliff:g> kwa baadhi ya maudhui. Huongeza matumizi ya betri."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Lazimisha kiwango cha juu cha kuonyesha upya"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Kiwango cha juu kabisa cha kuonyesha upya kwa utendakazi wa mguso ulioboreshwa na ubora wa uhuishaji. Huongeza matumizi ya betri."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Utashi wa skrini"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Mipangilio ya jumuiya"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Badilisha mahali pa kufikia"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Weka mlango wa mtandao"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Haijawekwa"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Haijawekwa"</string>
     <string name="apn_name" msgid="6677695784108157953">"Jina"</string>
@@ -1320,6 +1396,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN imewashwa"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN imezimwa"</string>
     <string name="bearer" msgid="3231443241639159358">"Mwenye"</string>
+    <string name="network_type" msgid="748590707422733595">"Aina ya mtandao"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Haijabainishwa"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Aina ya MVNO"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"Thamani ya MVNO"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Futa APN"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Tumia kitufe cha ufikivu kufungua"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Shikilia vitufe vya sauti ili ufungue"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Gusa skrini mara tatu ili ufungue"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Gusa skrini mara tatu kwa vidole viwili ili ufungue"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Tumia ishara ili ufungue"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Tumia ishara ya ufikivu"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Ili utumie kipengele hiki, gusa kitufe cha zana za ufikivu cha <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> katika sehemu ya chini ya skrini yako.\n\nIli ubadilishe kati ya vipengele, gusa na ushikilie kitufe cha zana za ufikivu."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Ili utumie kipengele hiki, gusa kitufe cha zana za ufikivu kwenye skrini yako."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Ili utumie kipengele hiki, bonyeza na ushikilie vitufe vyote viwili vya sauti."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Ili uanzishe na kusimamisha ukuzaji, gusa mara tatu mahali popote kwenye skrini yako."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Ili uanze au ukomeshe ukuzaji, gusa mara tatu mahali popote kwenye skrini yako kwa vidole viwili."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Ili utumie kipengele hiki, 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_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Ili utumie kipengele hiki, 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_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Ili utumie kipengele cha ufikivu, telezesha vidole viwili juu kutoka sehemu ya chini ya skrini.\n\nIli ubadilishe kati ya vipengele, telezesha vidole viwili juu na ushikilie."</string>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Shikilia vitufe vya sauti"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"shikilia 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_triple_tap" msgid="6687765191490040899">"Gusa skrini mara tatu kwa vidole viwili"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"gusa skrini mara tatu kwa vidole viwili"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"gusa skrini 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>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Tumia mtetemo na miguso"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Mtetemo wa kengele"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Mtetemo wa maudhui"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Mtetemo wa kibodi"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Mtetemo wa mlio"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Mtetemo wa arifa"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Mtetemo kifaa kinapoguswa"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"Imesalia <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> chaji ijae"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Muda wa kutumia kifaa"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Muda wa programu kuendeshwa chinichini"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Chaji ya betri imepungua"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Iruhusu programu kutumika chini chini"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Ungependa kudhibiti shughuli za chini chini?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Ikiwa utadhibiti shughuli za chini chini za programu, huenda isifanye kazi vizuri"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Kwa kuwa programu hii haiboreshi matumizi ya betri, huwezi kuizuia.\n\nIli uizuie, washa kuboresha matumizi ya betri."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Dhibiti matumizi ya betri"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Ruhusu matumizi ya chinichini"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Washa upate masasisho katika wakati halisi, zima ili uokoe betri"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Yasiyodhibitiwa"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Yaliyoboreshwa"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Yanayodhibitiwa"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"tangu ilipojaa chaji mara ya mwisho"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Programu za mfumo"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Programu zilizoondolewa"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Nyingine"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Kadirio la muda uliosalia"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Hadi chaji ijae"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Jumla: chini ya dakika moja"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Chinichini: chini ya dakika moja"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Muda wa kutumia kifaa: chini ya dakika moja"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Chini ya dakika moja"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Jumla: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Chinichini: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Muda wa kutumia kifaa: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Wi‑Fi na data ya mtandao wa simu"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Sawazisha kiotomatiki data ya binafsi"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Sawazisha kiotomatiki data ya kazi"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Sawazisha kiotomatiki data ya faragha"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"badilisha mzunguko..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Siku katika mwezi ya kuweka kipindi kipya cha kutumia data:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Hakuna programu zilizotumia data wakati wa kipindi hiki."</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"ukubwa wa maandishi, chapa kubwa, fonti kubwa, maandishi makubwa, uwezo mdogo wa kuona, ongeza ukubwa wa maandishi, kikuza fonti, kuongeza ukubwa wa fonti"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"onyesho tulivu lisilozimwa kamwe, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, tagi, kisomaji"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"kibodi, miguso, mtetemo,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Kiwango cha sauti, mtetemo, Usinisumbue"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Sauti ya maudhui"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Sauti ya maudhui ya kutumwa"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Onyesha maudhui yote ya arifa"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Onyesha tu maudhui nyeti wakati skrini imefunguliwa"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Usionyeshe arifa zozote"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Ungependa arifa zako zionyeshwe vipi kwenye skrini iliyofungwa?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Skrini iliyofungwa"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Onyesha maudhui yote ya arifa za kazi"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Ficha maudhui nyeti ya kazini"</string>
@@ -3354,6 +3448,17 @@
     <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="6121016426991791557">"Kupungua kwa shughuli ya arifa"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Tumia hali ya kupungua kwa shughuli kwenye programu zote"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Punguza polepole sauti ya arifa unapopata arifa nyingi zinazofuatana kutoka kwa programu moja"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Tumia hali ya kupungua kwa shughuli katika mazungumzo"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Punguza polepole sauti ya arifa unapopokea ujumbe mwingi kutoka kwa gumzo moja ndani ya kipindi kifupi cha muda"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Usitumie arifa ya hali ya kupungua kwa shughuli"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Usipunguze kamwe sauti ya arifa, bila kujali idadi ya arifa zinazofuatana kutoka kwa programu moja"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Iteteme inapofunguliwa"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Iteteme tu wakati skrini imefunguliwa"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Tumia kwenye wasifu wa kazini"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Tumia mipangilio ya kupungua kwa shughuli ya arifa ya wasifu wa binafsi kwenye wasifu wa kazini"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Huduma za kisaidizi cha Uhalisia Pepe"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Hakuna programu zilizosakinishwa ambazo zinaweza kutekeleza huduma za kisaidizi cha Uhalisia Pepe."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Ungependa kuruhusu huduma za Uhalisia Pepe katika <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Ruhusu ufikiaji ili idhibiti faili zote"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Ruhusu programu hii isome, irekebishe na kufuta faili zote kwenye kifaa hiki au nafasi zozote za hifadhi zilizounganishwa. Ukiipa ruhusa, huenda programu ikafikia faili bila ufahamu wako."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Inaweza kufikia faili zote"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Programu zinazotumia amri ya sauti"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Ruhusu kipengele cha amri ya sauti"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Hatua ya kuwezesha sauti huwasha programu zilizoidhinishwa, bila kutumia mikono, kupitia amri ya sauti. Kipengele kilichojumuishwa cha utambuzi unaotegemea mazingira huhakikisha kuwa ni wewe tu unayeweza kuona data.\n\n"<a href="">"Maelezo zaidi kuhusu utambuzi unaotegemea mazingira"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Arifa za skrini nzima"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Ruhusu programu hii ionyeshe arifa kwenye skrini nzima"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Ruhusu programu hii ionyeshe arifa kwenye skrini nzima ukiwa umefunga kifaa. Programu zinaweza kutumia arifa hizi kuonyesha kengele, simu unazopigiwa au arifa nyingine muhimu."</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> imetumia betri zaidi kuliko kawaida ikiwa chinichini"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> imetumia betri zaidi wakati programu inatumika"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> imetumia betri zaidi kuliko kawaida wakati programu inatumika"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Matumizi ya juu ya betri"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Matumizi ya juu ya betri chinichini"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Matumizi ya juu ya betri wakati programu inatumika"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"usogezaji kwenye mfumo, usogezaji kwa kutumia vitufe 2, usogezaji kwa kutumia vitufe 3, usogezaji kwa kutumia ishara, telezesha kidole"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Mratibu dijitali"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Telezesha kidole ili uombe programu ya mratibu dijitali"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Telezesha kidole juu kutoka kona ya chini ili uombe programu ya mratibu dijitali."</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Telezesha kidole juu kutoka kona ya chini ili uombe programu ya mratibu dijitali"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Shikilia kitufe cha Mwanzo ili uombe Mratibu"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Bonyeza na ushikilie Kitufe cha ukurasa wa mwanzo ili uombe programu ya mratibu dijitali."</string>
     <string name="low_label" msgid="6525629096999711220">"Chini"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"data, ufunguo wa siri, nenosiri"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"kiotomatiki, jaza, jaza kiotomatiki, data, ufunguo wa siri, nenosiri"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Hakikisha kuwa unaamini programu hii&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; hutumia kilicho kwenye skrini yako kubaini kinachoweza kujazwa kiotomatiki."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Tumia &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; hutumia kilicho kwenye skrini yako kubaini kinachoweza kujazwa kiotomatiki. Manenosiri, funguo za siri na maelezo mengine mapya yatahifadhiwa hapa kuanzia sasa."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Tumia &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Manenosiri mapya, funguo za siri na maelezo mengine yatahifadhiwa hapa kuanzia sasa. Huenda &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; ikatumia maudhui kwenye skrini yako kubaini kinachoweza kujazwa kiotomatiki."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Manenosiri, funguo za siri na huduma za data"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Ungependa kuzima %1$s?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Ungependa kuzima huduma hii?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Maelezo yaliyohifadhiwa kama vile manenosiri, funguo za siri, njia za kulipa na maelezo mengine hayatajazwa utakapoingia katika akaunti. Ili utumie maelezo uliyohifadhi, chagua nenosiri, ufunguo wa siri au huduma ya data."</string>
@@ -4226,10 +4336,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <string name="enable_angle_as_system_driver" msgid="4648827560023949786">"Kipengele cha jaribio: Washa ANGLE"</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Onyo: Kitawasha ANGLE kama kiendeshaji chaguomsingi cha OpenGL ES. Kipengele hiki ni cha jaribio na huenda kisioane na baadhi ya programu za kamera na video."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"Unahitaji kuwasha tena ili kubadilisha kiendeshaji cha mfumo cha OpenGL ES"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Mabadiliko ya Uoanifu wa Programu"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Geuza mabadiliko ya uoanifu wa programu"</string>
@@ -4858,4 +4966,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Inatafuta programu hasidi"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Kagua shughuli kwenye programu ili kubaini iwapo kuna wizi wa data binafsi"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Kagua ili ugundue programu za kilaghai"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Kagua ili ugundue programu za kilaghai za kazini"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-sw600dp/dimens.xml b/res/values-sw600dp/dimens.xml
index b13447f..391a304 100755
--- a/res/values-sw600dp/dimens.xml
+++ b/res/values-sw600dp/dimens.xml
@@ -24,9 +24,6 @@
     <dimen name="actionbar_contentInsetStart">24dp</dimen>
     <dimen name="actionbar_subsettings_contentInsetStart">80dp</dimen>
 
-    <!-- SwitchBar sub settings margin start / end -->
-    <dimen name="switchbar_subsettings_margin_start">80dp</dimen>
-
     <dimen name="settings_panel_width">560dp</dimen>
 
     <!-- Lock pattern view size, align sysui biometric_auth_pattern_view_size -->
diff --git a/res/values-sw720dp-land/dimens.xml b/res/values-sw720dp-land/dimens.xml
index 82c3fef..363817c 100644
--- a/res/values-sw720dp-land/dimens.xml
+++ b/res/values-sw720dp-land/dimens.xml
@@ -20,8 +20,4 @@
     <dimen name="actionbar_contentInsetStart">128dp</dimen>
     <dimen name="actionbar_subsettings_contentInsetStart">128dp</dimen>
 
-    <!-- SwitchBar sub settings margin start / end -->
-    <dimen name="switchbar_subsettings_margin_start">128dp</dimen>
-    <dimen name="switchbar_subsettings_margin_end">128dp</dimen>
-
 </resources>
diff --git a/res/values-sw720dp/dimens.xml b/res/values-sw720dp/dimens.xml
index 6480d48..d09d2fd 100644
--- a/res/values-sw720dp/dimens.xml
+++ b/res/values-sw720dp/dimens.xml
@@ -19,10 +19,6 @@
     <dimen name="actionbar_contentInsetStart">80dp</dimen>
     <dimen name="actionbar_subsettings_contentInsetStart">80dp</dimen>
 
-    <!-- SwitchBar sub settings margin start / end -->
-    <dimen name="switchbar_subsettings_margin_start">80dp</dimen>
-    <dimen name="switchbar_subsettings_margin_end">80dp</dimen>
-
     <!-- Lock pattern view size, align sysui biometric_auth_pattern_view_size -->
     <dimen name="biometric_auth_pattern_view_size">348dp</dimen>
 </resources>
diff --git a/res/values-ta/arrays.xml b/res/values-ta/arrays.xml
index 00cb41b..e31f2a4 100644
--- a/res/values-ta/arrays.xml
+++ b/res/values-ta/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"1 நிமிடத்திற்குப் பிறகு"</item>
     <item msgid="1574040255478150028">"5 நிமிடங்களுக்குப் பிறகு"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index b3b7288..bbf0541 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -44,8 +44,8 @@
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"பெரிதாக்கு"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"எப்போதும்"</string>
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"உங்கள் சாதனத்தை மடக்கும்போது முன்புற டிஸ்பிளே இயக்கப்படும்"</string>
-    <string name="selective_stay_awake_title" msgid="7887645333447645168">"கேம்கள், வீடியோக்கள் மற்றும் பல மட்டும்"</string>
-    <string name="selective_stay_awake_summary" msgid="9055967322921984543">"உங்கள் திரை செயல்படாமல் போவதைத் தடுக்கும் ஆப்ஸுக்கு முன்புற டிஸ்பிளே இயக்கப்படும்"</string>
+    <string name="selective_stay_awake_title" msgid="7887645333447645168">"கேம், வீடியோ மற்றும் சிலவற்றிற்கு மட்டும்"</string>
+    <string name="selective_stay_awake_summary" msgid="9055967322921984543">"திரை அமைதி நிலைக்குப் போவதைத் தடுக்கும் ஆப்ஸுக்கு முன்புற டிஸ்பிளே இயக்கப்படும்"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"ஒருபோதும் வேண்டாம்"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"உங்கள் சாதனத்தை மடக்கும்போது முன்புற டிஸ்பிளே பூட்டப்படும்"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"\'தானாகச் சுழற்று\' அம்சத்தைப் பயன்படுத்துதல்"</string>
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"புளூடூத் LE ஆடியோவை முடக்கு"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"LE ஆடியோ துணைப் பொருள் திறன்களைச் சாதனம் ஆதரித்தால் புளூடூத் LE ஆடியோ அம்சத்தை முடக்கும்."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"சாதன விவரங்களில் LE ஆடியோ டாகிளை காட்டு"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"புளூடூத் LE ஆடியோ அனுமதிப் பட்டியல் அம்சத்தை இயக்கு"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"புளூடூத் LE ஆடியோ அனுமதிப் பட்டியல் அம்சத்தை இயக்கும்."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"புளூடூத் LE ஆடியோ ஏற்புப் பட்டியலை பைபாஸ் செய்தல்"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"ஏற்புப் பட்டியல் நிபந்தனைகளை LE ஆடியோ வெளிப்புறச் சாதனம் பூர்த்திசெய்கிறதா என்று சரிபார்க்கப்படவில்லை என்றாலும் LE ஆடியோவை இயல்பாகப் பயன்படுத்தும்."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"மீடியா சாதனங்கள்"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"அழைப்பதற்கான சாதனங்கள்"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"பிற சாதனங்கள்"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"சேமிக்கப்பட்ட சாதனங்கள்"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"கணக்குடன் தொடர்புடையது"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"கணக்குடன் ஏற்கெனவே பயன்படுத்தியவை"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"இணைப்பதற்கு, புளூடூத் ஆன் செய்யப்படும்"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"இணைப்பு விருப்பத்தேர்வுகள்"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"இதற்கு முன்னர் இணைத்தவை"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"எழுதுவதற்கான புலங்களில் எழுதுங்கள்"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"ஸ்டைலஸ் மூலம் பட்டன்களை அழுத்துவதைத் தவிர்த்தல்"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"ஸ்டைலஸ்"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"ஆடியோவைப் பகிர்தல்"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"ஆடியோவைப் பகிர்"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"அழைப்புகளும் அலாரங்களும்"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"தேதி &amp; நேரம்"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"ப்ராக்ஸி"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"அழி"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"ஏற்றுகிறது…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"இணைக்கப்பட்டுள்ள சாதனங்களின் தூரத்தை \'அருகிலுள்ள சாதனங்களுக்கான\' அனுமதியைப் பெற்ற ஆப்ஸால் தீர்மானிக்க முடியும்."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ஆப்ஸுக்கும் சேவைகளுக்கும் இருப்பிட அணுகல் முடக்கப்பட்டுள்ளது. எனினும் அவசர உதவி எண்ணை அழைத்தாலோ அதற்கு மெசேஜ் அனுப்பினாலோ, சாதனத்தின் இருப்பிடம் அவசரக் காலத்தில் உதவிபுரிவோருக்கு அனுப்பப்படக்கூடும்."</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"இருப்பிட அமைப்புகள் குறித்து மேலும் அறிக"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"கணக்குகள்"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"பாதுகாப்பு"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"என்கிரிப்ஷன் &amp; அனுமதிச் சான்றுகள்"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"பணிக் கணக்கு"</string>
     <string name="private_space_title" msgid="7078627930195569767">"தனிப்பட்ட சேமிப்பிடம்"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"ஆப்ஸைத் தனிப்பட்ட ஃபோல்டரில் மறைக்கலாம்"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"திரைப் பூட்டைப் பயன்படுத்தி அன்லாக் செய்தல்"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"தனிப்பட்ட சேமிப்பிடத்தைக் காட்டுதல்"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"பூட்டப்பட்டிருக்கும்போது மறைத்தல்"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"பூட்டப்பட்டிருக்கும்போது தனிப்பட்ட சேமிப்பிடத்தை மறைத்தல்"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"சாதனத்தில் உள்ள தனிப்பட்ட சேமிப்பிடத்தைப் பிறர் அறியக்கூடாதெனில், உங்கள் ஆப்ஸ் பட்டியலில் இருந்து அதை மறைக்கலாம்"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"மறைக்கப்பட்டிருக்கும்போது தனிப்பட்ட சேமிப்பிடத்தை அணுகுதல்"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"தேடல் பட்டியில் \'தனிப்பட்ட சேமிப்பிடம்\' எனத் தேடுங்கள்"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"தனிப்பட்ட சேமிப்பிடக் கட்டத்தைத் தட்டுங்கள்"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"உங்கள் தனிப்பட்ட சேமிப்பிடத்தை அன்லாக் செய்யுங்கள்"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"முடக்கப்பட்டுள்ளது"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"இயக்கப்பட்டுள்ளது"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"சிஸ்டம்"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"தனிப்பட்ட சேமிப்பிடத்தை உருவாக்குதல்"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"தனிப்பட்ட சேமிப்பிடத்தை நீக்குதல்"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"தனிப்பட்ட சேமிப்பிடம் உருவாக்கப்பட்டது"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"தனிப்பட்ட சேமிப்பிடம் ஏற்கெனவே உள்ளது"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"தனிப்பட்ட சேமிப்பிடத்தை உருவாக்க முடியவில்லை"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"தனிப்பட்ட சேமிப்பிடம் நீக்கப்பட்டது"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"தனிப்பட்ட சேமிப்பிடத்தை நீக்க முடியவில்லை"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"திரைப் பூட்டை அமையுங்கள்"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"தனிப்பட்ட சேமிப்பிடத்தை உபயோகிக்க, திரைப் பூட்டை அமைக்கவும்."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"திரைப் பூட்டை அமை"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"ரத்துசெய்"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"ரத்துசெய்"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"அமை"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"தனிப்பட்ட சேமிப்பிடத்தை அமைத்தல்"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"நீங்கள் மட்டுமே அணுகக்கூடிய பாதுகாப்பான இடத்தில் தனிப்பட்ட ஆப்ஸை மறைக்கலாம்"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"இது செயல்படும் விதம்"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"உங்கள் ஆப்ஸ் பட்டியலின் கீழ்ப்பகுதியில் இருந்து தனிப்பட்ட சேமிப்பிடத்தை அணுகலாம்"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"தனிப்பட்ட சேமிப்பிடத்தில் உள்ள ஆப்ஸ் ஒரு பூட்டால் பாதுகாக்கப்படுகின்றன"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"தனிப்பட்ட சேமிப்பிடம் பூட்டப்பட்டிருக்கும்போது அதிலுள்ள ஆப்ஸின் அறிவிப்புகள் மறைக்கப்படும்"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"தனிப்பட்ட சேமிப்பிடம் பூட்டப்பட்டிருக்கும்போது அதிலுள்ள ஆப்ஸ், அனுமதி நிர்வாகம், தனியுரிமை டாஷ்போர்டு மற்றும் பிற அமைப்புகளில் காட்டப்படாது"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"தனிப்பட்ட சேமிப்பிடத்தை அமைக்கிறது…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"தனிப்பட்ட சேமிப்பிடம் பூட்டு மூலம் பாதுகாக்கப்படுகிறது"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"தனிப்பட்ட சேமிப்பிடம் பூட்டப்பட்டிருக்கும்போது அதிலுள்ள ஆப்ஸின் உபயோகத் தகவல்கள் மறைக்கப்படும்"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"ஆப்ஸ் பட்டியலில் உள்ள தனிப்பட்ட சேமிப்பிடத்தை அணுகுதல்"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"தனிப்பட்ட சேமிப்பிடத்தை அமைக்க முடியவில்லை"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"இப்போது முயலவும் அல்லது பிறகு வந்து பார்க்கவும்"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"மீண்டும் முயல்க"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"அன்லாக் செய்ய திரைப் பூட்டைப் பயன்படுத்தவா?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"உங்கள் சாதனத்தை அன்லாக் செய்வதுபோலவே தனிப்பட்ட சேமிப்பிடத்தை அன்லாக் செய்யலாம் அல்லது வேறு பூட்டைத் தேர்ந்தெடுக்கலாம்"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"திரைப் பூட்டைப் பயன்படுத்து"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"புதிய பூட்டைத் தேர்ந்தெடு"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"எல்லாம் தயார்!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"தனிப்பட்ட சேமிப்பிடத்தை அணுக, முகப்புத் திரையின் கீழிருந்து மேல்நோக்கி ஸ்வைப் செய்து பின்பு கீழே செல்லவும்"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"முடிந்தது"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"தனிப்பட்ட சேமிப்பிடத்தை அணுக கீழே செல்லவும்"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"தனிப்பட்ட சேமிப்பிடத்தை அமைக்க உள்நுழையுங்கள்"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"<xliff:g id="COUNT">%d</xliff:g> கைரேகைகள் வரை சேர்க்கலாம்"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"அனுமதிக்கப்படும் அதிகபட்சக் கைரேகைகளைச் சேர்த்துவிட்டீர்கள்"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"மேலும் கைரேகைகளைச் சேர்க்க முடியவில்லை"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"இணை"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"துண்டி"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"ஜோடி சேர்த்து &amp; இணை"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"புளூடூத் இயக்கத்தில் இருக்கும்போது, உங்கள் சாதனம் அருகிலுள்ள பிற புளூடூத் சாதனங்களைத் தொடர்புகொள்ளலாம்."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"புளூடூத் ஆன் செய்யப்பட்டிருக்கும்போது உங்கள் சாதனத்தால் அருகிலுள்ள பிற புளூடூத் சாதனங்களைத் தொடர்புகொள்ள முடியும்.\n\nசாதன அனுபவத்தை மேம்படுத்த, புளூடூத் ஆஃப் செய்யப்பட்டிருந்தாலும்கூட ஆப்ஸும் சேவைகளும் எப்போது வேண்டுமானாலும் அருகிலுள்ள சாதனங்களைத் தேடலாம். உதாரணமாக, இருப்பிடம் சார்ந்த அம்சங்களையும் சேவைகளையும் மேம்படுத்த இதைப் பயன்படுத்தலாம். புளூடூத் ஸ்கேனிங் அமைப்புகளில் இதை மாற்றிக்கொள்ளலாம்."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"மாற்றுதல்"</string>
     <string name="device_details_title" msgid="1155622417516195481">"சாதன விவரங்கள்"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"பிழைதிருத்த, ஆப்ஸிற்கான பைட்கோடைச் சரிபார்க்க ARTயை அனுமதிக்கும்"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"ரெஃப்ரெஷ் விகிதம் காட்டு"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"தற்போதைய டிஸ்ப்ளே ரெஃப்ரெஷ் விகிதத்தைக் காட்டும்"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"HDR/SDR விகிதத்தைக் காட்டு"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"தற்போதைய HDR/SDR விகிதத்தைக் காட்டும்"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"NFCக்கு சாதனம் அன்லாக் செய்யப்படுவதை அவசியமாக்குதல்"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android பீம்"</string>
@@ -1060,9 +1136,9 @@
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"ஆஃப்"</string>
     <string name="display_white_balance_title" msgid="2624544323029364713">"வெண் சமநிலையை காட்சிப்படுத்தல்"</string>
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
-    <string name="fold_lock_behavior_title" msgid="786228803694268449">"மடக்கிய நிலையிலேயே தொடர்ந்து ஆப்ஸைப் பயன்படுத்தலாம்"</string>
+    <string name="fold_lock_behavior_title" msgid="786228803694268449">"மடக்கிய நிலையிலேயே தொடர்ந்து ஆப்ஸைப் பயன்படுத்துதல்"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"சீரான காட்சி"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"சில உள்ளடக்கத்திற்கான புதுப்பிக்கும் விகிதத்தை 60 Hzல் இருந்து <xliff:g id="ID_1">%1$s</xliff:g> Hzக்குத் தானாகவே உயர்த்தும். பேட்டரி உபயோகத்தை அதிகரிக்கும்."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"சில உள்ளடக்கத்திற்குப் புதுப்பிக்கும் விகிதத்தை <xliff:g id="ID_1">%1$d</xliff:g> Hzக்குத் தானாகவே உயர்த்தும். பேட்டரி உபயோகத்தை அதிகரிக்கும்."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"கட்டாயமான அதிகபட்ச ரெஃப்ரெஷ் விகிதம்"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"மேம்பட்ட தொடு இயக்கத்திறனுக்கும் அனிமேஷன் தரத்திற்குமான அதிவேக ரெஃப்ரெஷ் விகிதம். இதனால் பேட்டரி உபயோகம் அதிகரிக்கும்."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"திரை மீது கவனம்"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"சமூக அமைப்புகள்"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN பட்டியல்"</string>
     <string name="apn_edit" msgid="2003683641840248741">"ஆக்சஸ் பாயிண்ட்டைத் திருத்து"</string>
+    <string name="apn_add" msgid="9069613192201630934">"ஆக்சஸ் பாயின்ட்டைச் சேர்த்தல்"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"அமைக்கப்படவில்லை"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"அமைக்கப்படவில்லை"</string>
     <string name="apn_name" msgid="6677695784108157953">"பெயர்"</string>
@@ -1320,6 +1397,8 @@
     <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="network_type" msgid="748590707422733595">"நெட்வொர்க் வகை"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"குறிப்பிடப்படவில்லை"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO வகை"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO மதிப்பு"</string>
     <string name="menu_delete" msgid="9199740901584348273">"APN ஐ நீக்கு"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"திறக்க அணுகல்தன்மை பட்டனைப் பயன்படுத்துதல்"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"திறக்க ஒலியளவு விசைகளைப் பிடித்திருக்கவும்"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"திறக்க திரையில் 3 முறை தட்டவும்"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"இரண்டு விரல்களால் திரையில் மூன்று முறை தட்டி திறத்தல்"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"திறக்க சைகைகளைப் பயன்படுத்துதல்"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"அணுகல்தன்மை சைகையைப் பயன்படுத்தவும்"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"இந்த அம்சத்தைப் பயன்படுத்த திரையின் கீழ்ப்பகுதியில் உள்ள அணுகல்தன்மை பட்டனை <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> தட்டவும்.\n\nஅம்சங்களுக்கு இடையே மாற, அணுகல்தன்மை பட்டனைத் தொட்டுப் பிடித்திருக்கவும்."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"இந்த அம்சத்தைப் பயன்படுத்த, உங்கள் திரையிலுள்ள அணுகல்தன்மை பட்டனைத் தட்டுங்கள்."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"இந்த அம்சத்தைப் பயன்படுத்த ஒலியளவுக்கான விசைகளை அழுத்திப் பிடித்திருக்கவும்."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"பெரிதாக்குவதைத் தொடங்கவும் நிறுத்தவும், திரையில் எங்காவது மூன்று முறை தட்டவும்."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"பெரிதாக்குவதைத் தொடங்கவும் நிறுத்தவும், திரையில் எங்காவது இரண்டு விரல்களால் மூன்று முறை தட்டவும்."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"இந்த அம்சத்தைப் பயன்படுத்த திரையின் கீழிருந்து மேலாக 2 விரல்களால் ஸ்வைப் செய்யவும்.\n\nஅம்சங்களுக்கு இடையே மாற 2 விரல்களால் மேல்நோக்கி ஸ்வைப் செய்து பிடித்திருக்கவும்."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"இந்த அமசத்தைப் பயன்படுத்த திரையின் கீழிருந்து மேலாக 3 விரல்களால் ஸ்வைப் செய்யவும்.\n\nஅம்சங்களுக்கு இடையே மாற 3 விரல்களால் மேல்நோக்கி ஸ்வைப் செய்து பிடித்திருக்கவும்."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"அணுகல்தன்மை அம்சத்தைப் பயன்படுத்த திரையின் கீழிருந்து மேலாக 2 விரல்களால் ஸ்வைப் செய்யவும்.\n\nஅம்சங்களுக்கு இடையே மாற 2 விரல்களால் மேல்நோக்கி ஸ்வைப் செய்து பிடித்திருக்கவும்."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"ஒலியளவுக்கான விசைகளைப் பிடிக்கவும்"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"ஒலியளவு விசைகளைப் பிடித்திருக்கவும்"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"இரண்டு ஒலியளவு விசைகளையும் அழுத்திப் பிடித்திருக்கவும்"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"இரண்டு விரல்களால் திரையில் மூன்று முறை தட்டுதல்"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"இரண்டு விரல்களால் திரையில் மூன்று முறை தட்டுதல்"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"இரண்டு விரல்களால் திரையில் {0,number,integer} முறை விரைவாகத் தட்டுங்கள்"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"திரையில் மூன்று முறை தட்டுதல்"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"திரையில் மூன்று முறை தட்டவும்"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"திரையை விரைவாக {0,number,integer} முறை தட்டவும். இந்த ஷார்ட்கட் உங்கள் சாதனத்தின் வேகத்தைக் குறைக்கக்கூடும்"</string>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"அதிர்வு &amp; ஹாப்டிக்ஸைப் பயன்படுத்துதல்"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"அலார அதிர்வு"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"மீடியா அதிர்வு"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"கீபோர்டு அதிர்வு"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"ரிங் அதிர்வு"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"அறிவிப்பு அதிர்வு"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"தொட்டு கருத்து தெரிவித்தல்"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> மீதமுள்ளது"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"சார்ஜ் செய்வதற்கு <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g>"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"பயன்படுத்திய நேரம்"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"பின்னணியில் எடுக்கப்படும் நேரம்"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"பேட்டரி குறைவாக உள்ளது"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"பின்னணியில் இயங்குவதற்குப் ஆப்ஸை அனுமதிக்கும்"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"பின்னணி செயல்பாட்டைக் கட்டுப்படுத்தவா?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"ஆப்ஸின் பின்னணி செயல்பாட்டைக் கட்டுப்படுத்தினால், சரியாக வேலை செய்யாது."</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"பேட்டரியை மேம்படுத்த அமைக்கப்படவில்லை, எனவே கட்டுப்படுத்த முடியாது.\n\nஆப்ஸை கட்டுப்படுத்த, பேட்டரி மேம்படுத்தலை ஆன் செய்க."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"பேட்டரி உபயோகத்தை நிர்வகித்தல்"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"பின்னணி உபயோகத்தை அனுமதித்தல்"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"நிகழ்நேர அறிவிப்புகளுக்காக இயக்கலாம், பேட்டரியைச் சேமிக்க முடக்கலாம்"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"கட்டுப்பாடற்ற பேட்டரி"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"மேம்படுத்தப்பட்டது"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"வரம்பிடப்பட்டது"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"கடைசியாக பேட்டரி முழுமையாகச் சார்ஜானதிலிருந்து"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"சிஸ்டம் ஆப்ஸ்"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"நிறுவல் நீக்கப்பட்ட ஆப்ஸ்"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"மற்றவை"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"கணக்கிடப்பட்ட மீதமுள்ள நேரம்"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"முழு சார்ஜ் ஆக"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"மொத்தம்: ஒரு நிமிடத்திற்கும் குறைவு"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"பின்னணி: ஒரு நிமிடத்திற்கும் குறைவு"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"சாதனத்தைப் பயன்படுத்திய நேரம்: ஒரு நிமிடத்திற்கும் குறைவு"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"ஒரு நிமிடத்திற்கும் குறைவு"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"மொத்தம்: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"பின்னணி: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"சாதனத்தைப் பயன்படுத்திய நேரம்: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"மொபைல் டேட்டா &amp; வைஃபை"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"தனிப்பட்ட டேட்டாவைத் தானாக ஒத்திசை"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"பணி டேட்டாவைத் தானாக ஒத்திசை"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"தனிப்பட்ட தரவைத் தானாக ஒத்திசை"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"சுழற்சியை மாற்று…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"டேட்டா உபயோகச் சுழற்சியை மீட்டமைப்பதற்கான மாதத்தின் நாள்:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"இந்தக் கால நேரத்தில், எந்தப் பயன்பாடுகளும் தரவைப் பயன்படுத்தவில்லை."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"உரை அளவு, பெரிய அச்சு, பெரிய எழுத்து, பெரிய உரை, குறைந்த பார்வைத்திறன், உரையைப் பெரிதாக்குதல், எழுத்துப் பெரிதாக்கி, எழுத்தைப் பெரிதாக்குவது"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"எப்போதும் ஆம்பியன்ட் டிஸ்பிளேயில், AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, குறி, ரீடர்"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"கீபோர்டு, ஹாப்டிக்ஸ், அதிர்வு,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"ஒலியளவு, அதிர்வு, தொந்தரவு செய்யாதே"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"மீடியா ஒலியளவு"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"அலைபரப்புவதற்கான ஒலியளவு"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"எல்லா அறிவிப்பு விவரத்தையும் காட்டு"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"பாதுகாக்க வேண்டியவற்றை அன்லாக்கில் மட்டும் காட்டு"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"அறிவிப்புகளை ஒருபோதும் காட்டாதே"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"லாக் ஸ்கிரீன் எப்படி இருக்க வேண்டும்?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"லாக் ஸ்கிரீன்"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"எல்லா பணி அறிவிப்பு விவரத்தையும் காட்டு"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"பாதுகாக்க வேண்டிய பணி உள்ளடக்கத்தை மறை"</string>
@@ -3354,6 +3449,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"இந்த ஆப்ஸ் மேம்படுத்தப்பட்ட அமைப்புகளை ஆதரிக்காது"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"கூடுதல் அமைப்புகள்"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"இந்த ஆப்ஸில் கூடுதல் அமைப்புகள் உள்ளன"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"அறிவிப்புக்கான கூல்டவுன்"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"அனைத்து அறிவிப்புகளுக்கும் கூல்டவுனைப் பயன்படுத்துதல்"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"ஒரே ஆப்ஸில் இருந்து அடுத்தடுத்து பல அறிவிப்புகளைப் பெறும்போது அறிவிப்பின் ஒலியளவு படிப்படியாகக் குறையும்"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"உரையாடல்களுக்குக் கூல்டவுனைப் பயன்படுத்துதல்"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"குறுகிய காலத்திற்குள் ஒரே அரட்டையில் இருந்து அடுத்தடுத்து பல மெசேஜ்களைப் பெறும்போது அறிவிப்பின் ஒலியளவு படிப்படியாகக் குறையும்"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"அறிவிப்புக்கான கூல்டவுனைப் பயன்படுத்த வேண்டாம்"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"ஒரே ஆப்ஸில் இருந்து அடுத்தடுத்து எத்தனை அறிவிப்புகளைப் பெற்றாலும் அறிவிப்பின் ஒலியளவு ஒருபோதும் குறையாது"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"அன்லாக் செய்யப்படும்போது அதிர்வுறும்"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"திரை அன்லாக் செய்யப்படும்போது மட்டுமே அதிர்வுறும்"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"பணிக் கணக்குகளுக்குப் பயன்படுத்துதல்"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"உங்கள் தனிப்பட்ட கணக்கில் இருந்து உங்கள் பணிக் கணக்கிற்கு அறிவிப்புக்கான கூல்டவுன் அமைப்புகளைப் பயன்படுத்தும்"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR உதவிச் சேவைகள்"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"நிறுவப்பட்ட ஆப்ஸ்களில் எதுவும் VR உதவிச் சேவைகளாக இயங்குவதற்காகக் கோரவில்லை"</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"<xliff:g id="SERVICE">%1$s</xliff:g> ஆனது VR சேவையை அணுக அனுமதிக்கவா?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"ஃபைல்கள் அனைத்தையும் நிர்வகிப்பதற்கு அனுமதி"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"இந்த சாதனத்திலோ இணைக்கப்பட்டுள்ள சேமிப்பகங்களிலோ உள்ள ஃபைல்கள் அனைத்தையும் படிக்கவும் நீக்கவும் அவற்றில் மாற்றங்களைச் செய்யவும் இந்த ஆப்ஸை அனுமதிக்கும். அனுமதி வழங்கப்படும் பட்சத்தில் உங்களுக்குத் தெரியாமலேயே ஃபைல்களை ஆப்ஸ் அணுகக்கூடும்."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"அனைத்து ஃபைல்களையும் அணுகமுடிந்த ஆப்ஸ்"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"குரல் மூலம் செயல்படுத்தக்கூடிய ஆப்ஸ்"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"\'குரல் மூலம் செயல்படுத்தலை\' அனுமதித்தல்"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"குரல் மூலம் செயல்படுத்தல் அம்சத்தின் மூலம், கைகளைப் பயன்படுத்தாமல் குரல் கட்டளையைப் பயன்படுத்தி அனுமதிக்கப்பட்ட ஆப்ஸை இயக்கலாம். சூழல் சார்ந்த உள்ளமைந்த சென்சார், தரவைத் தனிப்பட்டதாகவும் உங்களால் மட்டும் பார்க்கக்கூடியதாகவும் வைத்திருப்பதை உறுதிசெய்கிறது.\n\n"<a href="">"பாதுகாப்பான சூழல் சார்ந்த சென்சார் குறித்து மேலும் அறிக"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"முழுத்திரை அறிவிப்புகள்"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"இந்த ஆப்ஸிலிருந்து முழுத்திரை அறிவிப்புகளைக் காட்ட அனுமதித்தல்"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"சாதனம் பூட்டப்பட்டிருக்கும்போது முழுத்திரையில் அறிவிப்புகளைக் காட்ட இந்த ஆப்ஸை அனுமதிக்கும். அலாரங்கள், உள்வரும் அழைப்புகள் அல்லது பிற அவசர அறிவிப்புகளைத் தனிப்படுத்திக் காட்ட ஆப்ஸ் இவற்றைப் பயன்படுத்தக்கூடும்."</string>
@@ -3801,7 +3910,7 @@
     <string name="admin_profile_owner_user_message" msgid="4929926887231544950">"உங்கள் நிர்வாகியால் அமைப்புகள், அனுமதிகள், கார்ப்பரேட் அணுகல், நெட்வொர்க் செயல்பாடு, சாதனத்தின் இருப்பிடத் தகவல் உட்பட இந்தப் பயனருடன் தொடர்புடைய பயன்பாடுகளையும் தரவையும் கண்காணிக்கவும் நிர்வகிக்கவும் முடியும்."</string>
     <string name="admin_device_owner_message" msgid="5503131744126520590">"உங்கள் நிர்வாகியால் அமைப்புகள், அனுமதிகள், கார்ப்பரேட் அணுகல், நெட்வொர்க் செயல்பாடு, சாதனத்தின் இருப்பிடத் தகவல் உட்பட இந்தச் சாதனத்துடன் தொடர்புடைய பயன்பாடுகளையும் தரவையும் கண்காணிக்கவும் நிர்வகிக்கவும் முடியும்."</string>
     <string name="admin_financed_message" msgid="1156197630834947884">"இந்தச் சாதனத்துடன் தொடர்புடைய தரவை உங்கள் சாதன நிர்வாகி அணுகலாம், ஆப்ஸை நிர்வகிக்கலாம், இந்தச் சாதனத்தின் அமைப்புகளை மாற்றலாம்."</string>
-    <string name="condition_turn_off" msgid="402707350778441939">"முடக்கு"</string>
+    <string name="condition_turn_off" msgid="402707350778441939">"ஆஃப் செய்"</string>
     <string name="condition_turn_on" msgid="3911077299444314791">"இயக்கு"</string>
     <string name="condition_expand_show" msgid="1501084007540953213">"காட்டு"</string>
     <string name="condition_expand_hide" msgid="8347564076209121058">"மறை"</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ஆப்ஸ் பின்னணியில் இயங்கும்போது வழக்கத்தைவிட பேட்டரியை அதிகமாக உபயோகிக்கிறது"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ஆப்ஸ் முன்புலத்தில் இயங்கும்போது பேட்டரியை அதிகமாக உபயோகிக்கிறது"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ஆப்ஸ் முன்புலத்தில் இயங்கும்போது வழக்கத்தைவிட பேட்டரியை அதிகமாக உபயோகிக்கிறது"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"அதிக பேட்டரி உபயோகம்"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"பின்னணியில் அதிக பேட்டரி உபயோகம்"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"முன்புலத்தில் அதிக பேட்டரி உபயோகம்"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"சிஸ்டம் வழிசெலுத்தல், 2 பட்டன் வழிசெலுத்தல், 3 பட்டன் வழிசெலுத்தல், சைகை வழிசெலுத்தல், ஸ்வைப்"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"டிஜிட்டல் அசிஸ்டண்ட்"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"அசிஸ்டண்ட்டைத் துவக்க ஸ்வைப் செய்தல்"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"டிஜிட்டல் அசிஸ்டண்ட் ஆப்ஸைத் துவக்க, கீழ் மூலையிலிருந்து மேல்நோக்கி ஸ்வைப் செய்யலாம்."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Assistantடை இயக்க முகப்பு பட்டனை அழுத்திப் பிடித்தல்"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"டிஜிட்டல் அசிஸ்டண்ட் ஆப்ஸைத் துவக்க, முகப்புப் பட்டனை அழுத்திப் பிடிக்கவும்."</string>
     <string name="low_label" msgid="6525629096999711220">"குறைவு"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"தரவு, கடவுச்சாவி, கடவுச்சொல்"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"தானியங்கு, நிரப்பு, தன்னிரப்பி, தரவு, கடவுச்சாவி, கடவுச்சொல்"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;இந்த ஆப்ஸை நம்புகிறீர்கள் என்பதை உறுதிப்படுத்திக்கொள்ளவும்&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; உங்கள் திரையில் இருப்பதைப் பயன்படுத்தி, எவற்றையெல்லாம் தன்னிரப்ப முடியும் என்பதைத் தீர்மானிக்கும்."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&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_autofill_confirmation_message" msgid="843829628024668466">"&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_picker_title" msgid="8191267620665129205">"கடவுச்சொற்கள், கடவுச்சாவிகள் மற்றும் தரவுச் சேவைகள்"</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>
@@ -4226,7 +4338,7 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- 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" msgid="4648827560023949786">"பரிசோதனை: ANGLEளை இயக்குதல்"</string>
     <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"எச்சரிக்கை: இயல்புநிலை OpenGL ES இயக்கியாக ANGLEளை இயக்கலாம். இந்த அம்சம் பரிசோதனைக் கட்டத்தில் உள்ளது, சில கேமரா மற்றும் வீடியோ ஆப்ஸுடன் இணங்காமல் போகலாம்."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"சிஸ்டத்தின் OpenGL ES இயக்கியை மாற்ற மறுதொடக்கம் தேவை"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"ஆப்ஸ் இணக்கத்தன்மை தொடர்பான மாற்றங்கள்"</string>
@@ -4726,8 +4838,8 @@
     <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_home_controls_toggle_title" msgid="706799741564479248">"வீட்டுக் கட்டுப்பாடுகளைக் காட்டுதல்"</string>
-    <string name="dream_home_controls_toggle_summary" msgid="4102519907917430579">"ஸ்கிரீன் சேவரில் இருந்தபடி வீட்டுக் கட்டுப்பாடுகள் பட்டனைக் காட்டும்"</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>
     <string name="dream_setup_title" msgid="2458303874255396142">"உங்கள் ஸ்கிரீன் சேவரைத் தேர்வுசெய்யுங்கள்"</string>
     <string name="dream_setup_description" msgid="7508547154038580296">"உங்கள் டேப்லெட் டாக் செய்யப்பட்டிருக்கும்போது திரையில் என்ன காட்டப்பட வேண்டும் என்பதைத் தேர்வுசெய்யலாம். ஸ்கிரீன் சேவரைப் பயன்படுத்தும்போது உங்கள் சாதனம் அதிக பேட்டரியைப் பயன்படுத்தக்கூடும்."</string>
@@ -4785,10 +4897,8 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"தோற்ற விகிதம்"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> சாதனத்திற்கு ஏற்றவாறு இந்த ஆப்ஸ் வடிவமைக்கப்படவில்லை எனில் அதைப் பார்ப்பதற்குப் புதிய தோற்ற விகிதத்தைப் பயன்படுத்திப் பாருங்கள்"</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> சாதனத்திற்கு ஏற்றவாறு இந்த ஆப்ஸ் வடிவமைக்கப்படவில்லை எனில் அதைப் பார்ப்பதற்குப் புதிய தோற்ற விகிதத்தைப் பயன்படுத்திப் பாருங்கள். குறிப்பிட்ட தோற்ற விகிதங்களில் சில ஆப்ஸைப் பயன்படுத்த முடியாமல் போகலாம்."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> சாதனத்திற்கு ஏற்றவாறு ஆப்ஸ் வடிவமைக்கப்படவில்லை எனில் அதைப் பார்ப்பதற்குப் புதிய தோற்ற விகிதத்தைப் பயன்படுத்திப் பாருங்கள்"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> சாதனத்திற்கு ஏற்றவாறு ஆப்ஸ் வடிவமைக்கப்படவில்லை எனில் அதைப் பார்ப்பதற்குப் புதிய தோற்ற விகிதத்தைப் பயன்படுத்திப் பாருங்கள். குறிப்பிட்ட தோற்ற விகிதங்களில் சில ஆப்ஸைப் பயன்படுத்த முடியாமல் போகலாம்."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"பரிந்துரைக்கப்படும் ஆப்ஸ்"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"மாறிய ஆப்ஸ்"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"ஆப்ஸ் இயல்புநிலை"</string>
@@ -4858,4 +4968,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"ஏமாற்றுகின்ற ஆப்ஸிற்கு ஸ்கேன் செய்தல்"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"ஃபிஷிங்கிற்கான ஆப்ஸ் உபயோகத்தைப் பாருங்கள்"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"ஏமாற்றக்கூடிய ஆப்ஸுக்கான ஸ்கேனிங்கை உபயோகித்தல்"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"ஏமாற்றக்கூடிய பணி ஆப்ஸுக்கான ஸ்கேனிங்கை உபயோகித்தல்"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-te/arrays.xml b/res/values-te/arrays.xml
index 0f9d73c..f271093 100644
--- a/res/values-te/arrays.xml
+++ b/res/values-te/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"1 నిమిషం తర్వాత"</item>
     <item msgid="1574040255478150028">"5 నిమిషాల తర్వాత"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index f420154..683c875 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"బ్లూటూత్ LE ఆడియోను డిజేబుల్ చేయండి"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"పరికరం LE ఆడియో హార్డ్‌వేర్ సామర్థ్యాలను సపోర్ట్ చేస్తే బ్లూటూత్ LE ఆడియో ఫీచర్‌ని డిజేబుల్ చేస్తుంది."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"పరికర వివరాలలో LE ఆడియో టోగుల్‌ను చూపండి"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"బ్లూటూత్ LE ఆడియో వైట్‌లిస్ట్‌ను ఎనేబుల్ చేయండి"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"బ్లూటూత్ LE ఆడియో వైట్‌లిస్ట్ ఫీచర్‌ను ఎనేబుల్ చేయండి."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"బ్లూటూత్ LE ఆడియో వైట్‌లిస్ట్‌ను బైపాస్ చేయండి"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"వైట్‌లిస్ట్ ప్రమాణాలకు అనుగుణంగా LE ఆడియో పెరిఫెరల్ వెరిఫై చేయబడనప్పటికీ ఆటోమేటిక్‌గా LE ఆడియోను ఉపయోగించండి."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"మీడియా పరికరాలు"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"కాల్ పరికరాలు"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"ఇతర పరికరాలు"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"సేవ్ చేసిన పరికరాలు"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"ఈ ఖాతాతో అనుబంధించబడిన పరికరాలు"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"ఈ ఖాతా ద్వారా గతంలో ఉపయోగించినవి"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"పెయిరింగ్ కోసం బ్లూటూత్ ఆన్ చేయబడుతుంది"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"కనెక్షన్ ప్రాధాన్యతలు"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"ఇంతకు మునుపు కనెక్ట్ చేయబడినవి"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"టెక్స్ట్ ఫీల్డ్‌లలో రాయండి"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"అన్ని స్టైలస్ బటన్ ప్రెస్‌లను విస్మరించండి"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"స్టైలస్"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"ఆడియో షేరింగ్"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"ఆడియోను షేర్ చేయండి"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"కాల్స్, అలారాలు"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"తేదీ &amp; సమయం"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"ప్రాక్సీ"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"క్లియర్ చేయండి"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"లోడ్ చేస్తోంది…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"సమీపంలోని పరికరాలను యాక్సెస్ చేసే అనుమతి గల యాప్‌లు, కనెక్ట్ అయిన పరికరాలు ఎంత దూరంలో ఉన్నాయో తెలుసుకోగలవు."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"యాప్‌లు, సర్వీస్‌లకు లొకేషన్ యాక్సెస్ ఆఫ్ చేయబడింది. మీరు ఎమర్జెన్సీ నంబర్‌కు కాల్ చేసినా లేదా SMS పంపినా, అత్యవసర సమయాలలో స్పందించే వారికి ఆటోమేటిక్‌గా మీ పరికర లొకేషన్ పంపబడుతుంది."</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"లొకేషన్ సెట్టింగ్‌ల గురించి మరింత తెలుసుకోండి"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"ఖాతాలు"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"సెక్యూరిటీ"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"ఎన్‌క్రిప్షన్ &amp; ఆధారాలు"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"వర్క్ ప్రొఫైల్"</string>
     <string name="private_space_title" msgid="7078627930195569767">"ప్రైవేట్ స్పేస్"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"యాప్‌లను ప్రైవేట్ ఫోల్డర్‌లో దాచండి"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"స్క్రీన్ లాక్‌ను ఉపయోగించి అన్‌లాక్ చేయండి"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"ప్రైవేట్ స్పేస్‌ను చూడండి"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"లాక్ చేయబడినప్పుడు దాచండి"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"లాక్ చేయబడినప్పుడు ప్రైవేట్ స్పేస్‌ను దాచండి"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"మీ పరికరంలో ప్రైవేట్ స్పేస్ ఉందని ఇతర వ్యక్తులకు తెలియకుండా ఆపడానికి, మీరు దానిని మీ యాప్‌ల లిస్ట్‌లో దాచవచ్చు"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"దాచినప్పుడు ప్రైవేట్ స్పేస్‌ను యాక్సెస్ చేయండి"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"సెర్చ్ బార్‌లో \'ప్రైవేట్ స్పేస్\' కోసం సెర్చ్ చేయండి"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"ప్రైవేట్ స్పేస్ టైల్‌ను ట్యాప్ చేయండి"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"మీ ప్రైవేట్ స్పేస్‌ను అన్‌లాక్ చేయండి"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"ఆఫ్‌లో ఉంది"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"ఆన్‌లో ఉంది"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"సిస్టమ్"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"ప్రైవేట్ స్పేస్‌ను క్రియేట్ చేయండి"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"ప్రైవేట్ స్పేస్‌ను తొలగించండి"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"ప్రైవేట్ స్పేస్ విజయవంతంగా క్రియేట్ చేయబడింది"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"ప్రైవేట్ స్పేస్ ఇప్పటికే ఉంది"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"ప్రైవేట్ స్పేస్‌ను క్రియేట్ చేయడం సాధ్యం కాలేదు"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"ప్రైవేట్ స్పేస్ విజయవంతంగా తొలగించబడింది"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"ప్రైవేట్ స్పేస్‌ను తొలగించడం సాధ్యం కాలేదు"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"స్క్రీన్ లాక్‌ను సెట్ చేయండి"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"ప్రైవేట్ స్పేస్ కోసం, ఈ పరికరంలో స్క్రీన్ లాక్‌ సెట్ చేయండి."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"స్క్రీన్ లాక్‌ను సెట్ చేయండి"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"రద్దు చేయండి"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"రద్దు చేయండి"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"సెటప్ చేయండి"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"ప్రైవేట్ స్పేస్‌ను సెటప్ చేయండి"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"మీరు మాత్రమే యాక్సెస్ చేయగల సెక్యూర్ స్పేస్‌లో ప్రైవేట్ యాప్‌లను దాచండి"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"ఇది ఎలా పని చేస్తుంది"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"మీరు మీ యాప్‌ల జాబితా కింద నుండి ప్రైవేట్ స్పేస్‌ను యాక్సెస్ చేయవచ్చు"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"ప్రైవేట్ స్పేస్‌లోని యాప్‌లు లాక్ చేయడం ద్వారా రక్షించబడతాయి"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"ప్రైవేట్ స్పేస్ లాక్ అయ్యి ఉన్నప్పుడు, అందులోని యాప్‌ల నుండి నోటిఫికేషన్‌లు రావు"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"ప్రైవేట్ స్పేస్ లాక్ అయ్యి ఉన్నప్పుడు, అందులోని యాప్‌లు అనుమతి మేనేజర్‌లో, గోప్యతా డ్యాష్‌బోర్డ్‌లో, ఇతర సెట్టింగ్‌లలో కనిపించవు"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"ప్రైవేట్ స్పేస్ సెటప్ ప్రోగ్రెస్‌లో ఉంది…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"ప్రైవేట్ స్పేస్‌కు లాక్ రక్షణ ఉంటుంది"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"ప్రైవేట్ స్పేస్ లాక్ అయ్యి ఉన్నప్పుడు, అందులోని యాప్‌లకు సంబంధించిన వినియోగ సమాచారం దాచబడి ఉంటుంది"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"మీ యాప్‌ల లిస్ట్ నుండి ప్రైవేట్ స్పేస్‌ను యాక్సెస్ చేయండి"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"ప్రైవేట్ స్పేస్‌ను సెటప్ చేయడం సాధ్యపడలేదు"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"ఇప్పుడే మళ్లీ ట్రై చేయండి, లేదా తర్వాత తిరిగి రండి"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"మళ్లీ ట్రై చేయండి"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"అన్‌లాకింగ్‌కు స్క్రీన్ లాక్ వాడాలనుకుంటున్నారా?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"మీరు మీ పరికరాన్ని ఎలా అయితే అన్‌లాక్ చేస్తారో, అలాగే ప్రైవేట్ స్పేస్‌ను అన్‌లాక్ చేయవచ్చు, లేదా వేరే లాక్‌ను ఎంచుకోవచ్చు"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"స్క్రీన్ లాక్‌ను ఉపయోగించండి"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"కొత్త లాక్‌ను ఎంచుకోండి"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"సెటప్ పూర్తయింది!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"ప్రైవేట్ స్పేస్‌ను యాక్సెస్ చేయడానికి, మీ మొదటి స్క్రీన్ కింది నుండి పైకి స్వైప్ చేసి, ఆపై కిందికి స్క్రోల్ చేయండి"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"పూర్తయింది"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"ప్రైవేట్ స్పేస్ యాక్సెస్ చేయడానికి కిందికి స్క్రోల్ చేయండి"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"ప్రైవేట్ స్పేస్‌ను సెటప్ చేయడానికి సైన్ ఇన్ చేయండి"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"మీరు గరిష్ఠంగా <xliff:g id="COUNT">%d</xliff:g> వేలిముద్రలను జోడించవచ్చు"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"మీరు గరిష్ట సంఖ్యలో వేలిముద్రలను జోడించారు"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"మరిన్ని వేలిముద్రలను జోడించడం సాధ్యపడదు"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"కనెక్ట్ చేయండి"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"డిస్‌కనెక్ట్ చేయండి"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"పెయిర్ చేసి, కనెక్ట్ చేయండి"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"బ్లూటూత్‌ను ఆన్ చేసినప్పుడు, సమీపంలోని ఇతర బ్లూటూత్ పరికరాలతో మీ పరికరం కమ్యూనికేట్ చేయగలదు."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"బ్లూటూత్ ఆన్ చేసినప్పుడు, సమీపంలోని ఇతర బ్లూటూత్ పరికరాలతో మీ పరికరం కమ్యూనికేట్ చేయగలదు.\n\nపరికర వినియోగ అనుభూతిని మెరుగుపరచడానికి, ఏ సమయంలోనైనా, బ్లూటూత్ ఆఫ్‌లో ఉన్నప్పుడు కూడా, సమీపంలోని పరికరాలను, యాప్‌లు, సర్వీస్‌లు ఇప్పటికీ స్కాన్ చేయగలవు. ఉదాహరణకు, లొకేషన్ ఆధారిత ఫీచర్‌లు, సర్వీస్‌లను మెరుగుపరచడానికి దీనిని ఉపయోగించవచ్చు. మీరు దీన్ని బ్లూటూత్ స్కానింగ్ సెట్టింగ్‌లలో మార్చవచ్చు."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"మార్చండి"</string>
     <string name="device_details_title" msgid="1155622417516195481">"పరికర వివరాలు"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"డీబగ్ చేయదగిన యాప్‌ల బైట్‌కోడ్ చెక్ చేయడం కోసం ARTని అనుమతించండి"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"రిఫ్రెష్ రేటును చూపడం"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"ప్రస్తుత డిస్‌ప్లేకు చెందిన రిఫ్రెష్ రేట్ చూపండి"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"HDR/SDR నిష్పత్తిని చూడండి"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"ప్రస్తుత HDR/SDR నిష్పత్తిని చూడండి"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"NFC కోసం పరికరాన్ని అన్‌లాక్ చేయాలి"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"ఫోల్డ్‌లో ఉన్న యాప్‌లను ఉపయోగించడం కొనసాగించండి"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"స్మూత్ డిస్‌ప్లే"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"కొంత కంటెంట్ కోసం రిఫ్రెష్ రేటును ఆటోమేటిక్‌గా 60 నుండి <xliff:g id="ID_1">%1$s</xliff:g> Hz వరకు పెంచుతుంది. బ్యాటరీ వినియోగం పెరుగుతుంది."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"కొంత కంటెంట్ విషయంలో, రిఫ్రెష్ రేటును ఆటోమేటిక్‌గా <xliff:g id="ID_1">%1$d</xliff:g> Hz వరకు పెంచుతుంది. బ్యాటరీ వినియోగం పెరుగుతుంది."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"ఫోర్స్ పీక్ రిఫ్రెష్ రేటు"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"మెరుగైన స్పర్శ ప్రతిస్పందన &amp; యానిమేషన్ క్వాలిటీ కోసం అత్యధిక రిఫ్రెష్ రేటు. ఇది బ్యాటరీ వినియోగం పెరిగేలా చేస్తుంది."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"స్క్రీన్ అటెన్ష‌న్‌"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"కమ్యూనల్ సెట్టింగ్‌లు"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APNలు"</string>
     <string name="apn_edit" msgid="2003683641840248741">"యాక్సెస్ పాయింట్‌ను ఎడిట్ చేయండి"</string>
+    <string name="apn_add" msgid="9069613192201630934">"యాక్సెస్ పాయింట్‌ను జోడించండి"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"సెట్ చేయలేదు"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"సెట్ చేయలేదు"</string>
     <string name="apn_name" msgid="6677695784108157953">"పేరు"</string>
@@ -1320,6 +1397,8 @@
     <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="network_type" msgid="748590707422733595">"నెట్‌వర్క్ రకం"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"పేర్కొనలేదు"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO రకం"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO విలువ"</string>
     <string name="menu_delete" msgid="9199740901584348273">"APNను తొలగించండి"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"తెరవడానికి యాక్సెసిబిలిటీ బటన్‌ను ఉపయోగించండి"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"తెరవడానికి వాల్యూమ్ కీలను పట్టుకుని అలాగే ఉండండి"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"తెరవడానికి స్క్రీన్‌పై మూడు సార్లు ట్యాప్ చేయండి"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"తెరవడానికి రెండు వేళ్లతో స్క్రీన్‌ను మూడుసార్లు ట్యాప్ చేయండి"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"తెరవడానికి సంజ్ఞను ఉపయోగించండి"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"యాక్సెసిబిలిటీ సంజ్ఞను ఉపయోగించండి"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"ఈ ఫీచర్‌ను ఉపయోగించడానికి, మీ స్క్రీన్ దిగువన ఉన్న యాక్సెసిబిలిటీ బటన్ <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>ను ట్యాప్ చేయండి.\n\nఫీచర్‌ల మధ్య స్విచ్ అవడానికి, యాక్సెసిబిలిటీ బటన్‌ను నొక్కి &amp; పట్టుకోండి."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"ఈ ఫీచర్‌ను ఉపయోగించడానికి, మీ స్క్రీన్ మీద ఉన్న యాక్సెసిబిలిటీ బటన్‌ను ట్యాప్ చేయండి."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"ఈ ఫీచర్‌ను ఉపయోగించడానికి, రెండు వాల్యూమ్ కీలను నొక్కి, పట్టుకోండి."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"మ్యాగ్నిఫికేషన్‌ను ప్రారంభించడానికి అలాగే ఆపడానికి, మీ స్క్రీన్‌పై ఎక్కడైనా మూడు సార్లు ట్యాప్ చేయండి."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"మ్యాగ్నిఫికేషన్‌ను ప్రారంభించడానికి, ఆపడానికి స్క్రీన్‌పై ఎక్కడైనా 2 వేళ్లతో 3 సార్లు ట్యాప్ చేయండి."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"ఈ ఫీచర్‌ను ఉపయోగించడానికి, స్క్రీన్ దిగువ నుండి 2 వేళ్లతో పైకి స్వైప్ చేయండి.\n\nఫీచర్‌ల మధ్య స్విచ్ అవడానికి, 2 వేళ్లతో పైకి స్వైప్ చేసి పట్టుకోండి."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"ఈ ఫీచర్‌ను ఉపయోగించడానికి, స్క్రీన్ దిగువ నుండి 3 వేళ్లతో పైకి స్వైప్ చేయండి.\n\nఫీచర్‌ల మధ్య స్విచ్ అవడానికి, 3 వేళ్లతో పైకి స్వైప్ చేసి పట్టుకోండి."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"యాక్సెస్ సౌలభ్య ఫీచర్‌లను ఉపయోగించడానికి, స్క్రీన్ దిగువ నుండి 2 వేళ్లతో పైకి స్వైప్ చేయండి.\n\nఫీచర్‌ల మధ్య స్విచ్ అవడానికి, 2 వేళ్లతో పైకి స్వైప్ చేసి పట్టుకోండి."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"వాల్యూమ్ కీలను నొక్కి ఉంచండి"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"వాల్యూమ్ కీలను పట్టుకుని అలాగే ఉండండి"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"వాల్యూమ్ కీలు రెండింటినీ నొక్కి పట్టుకోండి"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"రెండు వేళ్లతో స్క్రీన్‌ను మూడుసార్లు ట్యాప్ చేయండి"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"రెండు వేళ్లతో స్క్రీన్‌ను మూడుసార్లు ట్యాప్ చేయండి"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"రెండు వేళ్లతో స్క్రీన్‌ను {0,number,integer} సార్లు ఫాస్ట్‌గా ట్యాప్ చేయండి"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"స్క్రీన్‌పై మూడు సార్లు నొక్కండి"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"స్క్రీన్‌పై మూడు సార్లు ట్యాప్ చేయండి"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"స్క్రీన్‌ను {0,number,integer} సార్లు త్వరగా ట్యాప్ చేయండి. ఈ షార్ట్‌కట్ వల్ల మీ పరికరం పనితీరు నెమ్మదించవచ్చు"</string>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"\'వైబ్రేషన్ &amp; ప్రతిస్పందనలు\' వాడండి"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"అలారం వైబ్రేషన్"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"మీడియా వైబ్రేషన్"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"కీబోర్డ్ వైబ్రేషన్"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"రింగ్ వైబ్రేషన్"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"నోటిఫికేషన్ వైబ్రేషన్"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"టచ్ ఫీడ్‌బ్యాక్"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> ఉంది"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g>లోపు ఛార్జ్ చేయాలి"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"పరికర వినియోగ వ్యవధి"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"బ్యాక్‌గ్రౌండ్ సమయం"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"బ్యాటరీ తక్కువ ఉంది"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"బ్యాక్‌గ్రౌండ్‌లో అమలు కావడానికి యాప్‌ను అనుమతించండి"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"నేపథ్య యాక్టివిటీని పరిమితం చేయాలా?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"మీరు యాప్ నేపథ్య యాక్టివిటీని పరిమితం చేస్తే, అది సరిగ్గా పని చేయకపోవచ్చు."</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"ఈ యాప్ బ్యాటరీని ఆప్టిమైజ్ చేయికి సెట్ చేయబడలేదు కనుక, దీన్ని మీరు పరిమితం చేయలేరు.\n\nయాప్‌ను పరిమితం చేయడానికి, మొదట బ్యాటరీ ఆప్టిమైజేషన్‌ను ఆన్ చేయండి."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"బ్యాటరీ వినియోగాన్ని మేనేజ్ చేయండి"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"బ్యాక్‌గ్రౌండ్ వినియోగాన్ని అనుమతించండి"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"రియల్-టైమ్ అప్‌డేట్‌ల కోసం ఎనేబుల్ చేయండి, బ్యాటరీని సేవ్ చేయడానికి డిజేబుల్ చేయండి"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"అపరిమిత"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"ఆప్టిమైజ్ చేయబడినది"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"పరిమితం చేయబడిన సెట్టింగ్‌లు"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"చివరిసారి పూర్తిగా ఛార్జ్ చేసినప్పటి నుండి"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"సిస్టమ్ యాప్‌లు"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"అన్‌ఇన్‌స్టాల్ చేయబడిన యాప్‌లు"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"ఇతర ఆప్షన్‌లు"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"అంచనా వేసిన సమయం మిగిలి ఉంది"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"పూర్తిగా ఛార్జ్ కావడానికి పట్టే సమయం"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"మొత్తం సమయం: ఒక నిమిషం కన్నా తక్కువ"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"బ్యాక్‌గ్రౌండ్ సమయం: ఒక నిమిషం కన్నా తక్కువ"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"పరికర వినియోగ వ్యవధి: నిమిషం కంటే తక్కువ"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"నిమిషం కంటే తక్కువ"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"మొత్తం ఉపయోగం: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"బ్యాక్‌గ్రౌండ్ సమయం: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"పరికర వినియోగ వ్యవధి: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"మొబైల్ డేటా &amp; Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"వ్యక్తిగత డేటా ఆటో-సింక్"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"వర్క్ డేటాను ఆటో-సింక్ చేయండి"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"ప్రైవేట్ డేటాను ఆటో-సింక్ చేయి"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"సైకిల్‌ను మార్చు…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"డేటా వినియోగ సైకిల్‌ను రీసెట్ చేయాల్సిన నెలలోని రోజు:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"ఈ వ్యవధిలో డేటాను ఏ యాప్‌లు ఉపయోగించలేదు."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"టెక్స్ట్ సైజ్, పెద్ద ప్రింట్, పెద్ద ఫాంట్, పెద్ద టెక్స్ట్, తక్కువ విజన్, టెక్స్ట్‌ను పెద్దగా చేయి, ఫాంట్ పెద్దగా చేసేది, పెద్ద ఫాంట్"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"ఎల్లప్పుడూ యాంబియెంట్ డిస్‌ప్లేలో, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, ట్యాగ్, రీడర్"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"కీబోర్డ్, స్పర్శ ప్రతిస్పందన టెక్నాలజీ, వైబ్రేట్,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"వాల్యూమ్, వైబ్రేషన్, అంతరాయం కలిగించవద్దు"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"మీడియా వాల్యూమ్"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"ప్రసారం వాల్యూమ్"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"మొత్తం నోటిఫికేషన్ కంటెంట్‌ను చూపించండి"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"గోప్యమైన కంటెంట్‌ను అన్‌లాక్‌లో మాత్రమే చూపండి"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"ఎలాంటి నోటిఫికేషన్‌లను చూపవద్దు"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"మీ లాక్ స్క్రీన్ ఎలా డిస్‌ప్లే కావాలనుకుంటున్నారు?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"లాక్ స్క్రీన్"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"మొత్తం వర్క్ నోటిఫికేషన్ కంటెంట్‌ను చూపు"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"గోప్యమైన వర్క్ ప్లేస్ కంటెంట్‌ను దాచండి"</string>
@@ -3354,6 +3449,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"మెరుగుపరిచిన సెట్టింగ్‌లను ఈ యాప్ సపోర్ట్ చేయదు"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"మరిన్ని సెట్టింగ్‌లు"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"ఈ యాప్‌లో మరిన్ని సెట్టింగ్‌లు అందుబాటులో ఉన్నాయి"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"నోటిఫికేషన్ కూల్‌డౌన్"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"అన్ని నోటిఫికేషన్‌లకు కూల్‌డౌన్‌ను వర్తింపజేయండి"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"మీరు ఒకే యాప్ నుండి అనేక వరుస నోటిఫికేషన్‌లను పొందినప్పుడు నోటిఫికేషన్ పొందే సంఖ్యను క్రమంగా తగ్గించండి"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"సంభాషణలకు కూల్‌డౌన్‌ను వర్తింపజేయండి"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"తక్కువ సమయవ్యవధిలో మీరు ఒకే చాట్ నుండి అనేక వరుస నోటిఫికేషన్‌లను పొందినప్పుడు నోటిఫికేషన్ పొందే సంఖ్యను క్రమంగా తగ్గించండి"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"నోటిఫికేషన్ కూల్‌డౌన్‌ను ఉపయోగించవద్దు"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"ఒకే యాప్ నుండి ఎన్ని వరుస నోటిఫికేషన్‌లు వచ్చినా, నోటిఫికేషన్ పొందే సంఖ్యను ఎప్పుడూ తగ్గించవద్దు"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"అన్‌లాక్ చేసినప్పుడు వైబ్రేట్ చేయండి"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"స్క్రీన్ అన్‌లాక్ అయినప్పుడు మాత్రమే వైబ్రేట్ అవుతుంది"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"వర్క్ ప్రొఫైల్‌లకు వర్తింపజేయండి"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"మీ వ్యక్తిగత ప్రొఫైల్ నుండి మీ వర్క్ ప్రొఫైల్‌కు నోటిఫికేషన్ కూల్‌డౌన్ సెట్టింగ్‌లను వర్తింపజేయండి"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR సహాయక సర్వీసులు"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"ఇన్‌స్టాల్ చేసిన యాప్‌లేవీ వాటిని VR సహాయక సేవలుగా రన్ చేయాల్సిందిగా రిక్వెస్ట్ చేయలేదు."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"<xliff:g id="SERVICE">%1$s</xliff:g> కోసం VR సేవ యాక్సెస్‌ను అనుమతించాలా?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"అన్ని ఫైళ్లను మేనేజ్‌ చేయడానికి అనుమతించండి"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"ఈ పరికరంలో, లేదా కనెక్ట్ చేయబడిన ఏవైనా స్టోరేజ్ వాల్యూమ్‌లలో, అన్ని ఫైళ్లను చదవడానికి, మార్చడానికి, తొలగించడానికి ఈ యాప్‌నకు అనుమతిని ఇవ్వండి. అటువంటి అనుమతిని మీరు మంజూరు చేస్తే, మీకు ప్రత్యేకంగా తెలియపరచకుండానే మీ ఫైళ్లను యాప్, యాక్సెస్ చేయవచ్చు."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"అన్ని ఫైళ్లను యాక్సెస్ చేయగలవు"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"వాయిస్ యాక్టివేషన్ యాప్‌లు"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"వాయిస్ యాక్టివేషన్‌ను అనుమతించండి"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"వాయిస్ యాక్టివేషన్, వాయిస్ కమాండ్‌ను ఉపయోగించి ఆమోదించబడిన యాప్‌లను హ్యాండ్స్-ఫ్రీగా ఆన్ చేస్తుంది. బిల్ట్-ఇన్ అడాప్టివ్ సెన్సింగ్, డేటా మీకు మాత్రమే ప్రైవేట్‌గా ఉండేలా చేస్తుంది.\n\n"<a href="">"సురక్షిత అడాప్టివ్ సెన్సింగ్ గురించి మరింత సమాచారం"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"ఫుల్ స్క్రీన్ నోటిఫికేషన్‌లు"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"ఈ యాప్ నుండి ఫుల్ స్క్రీన్ నోటిఫికేషన్‌లను అనుమతించండి"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"పరికరం లాక్‌లో ఉన్నప్పుడు నోటిఫికేషన్లను చూపడానికి ఈ యాప్‌ను అనుమతించండి. ఈ నోటిఫికేషన్లు ఫుల్ స్క్రీన్‌లో కనిపిస్తాయి. అలారాలు, ఇన్‌కమింగ్ కాల్స్ లేదా ఇతర అత్యవసర నోటిఫికేషన్‌లను హైలైట్ చేయడానికి యాప్‌లు వీటిని ఉపయోగించవచ్చు."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> బ్యాక్‌గ్రౌండ్‌లో సాధారణం కంటే ఎక్కువ బ్యాటరీని ఉపయోగించింది"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ఫోర్‌గ్రౌండ్‌లో ఎక్కువ బ్యాటరీని ఉపయోగించింది"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ఫోర్‌గ్రౌండ్‌లో సాధారణం కంటే ఎక్కువ బ్యాటరీని ఉపయోగించింది"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"అధిక బ్యాటరీ వినియోగం"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"బ్యాక్‌గ్రౌండ్‌లో అధిక బ్యాటరీ వినియోగం"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"ఫోర్‌గ్రౌండ్‌లో అధిక బ్యాటరీ వినియోగం"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"సిస్టమ్ నావిగేషన్‌, 2 బటన్ నావిగేషన్‌, 3 బటన్ నావిగేషన్‌, సంజ్ఞ నావిగేషన్, స్వైప్"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"డిజిటల్ అసిస్టెంట్"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"అసిస్టెంట్‌ను అమలు చేయడానికి స్వైప్ చేయండి"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"డిజిటల్ అసిస్టెంట్ యాప్‌ను అమలు చేయడానికి దిగువున మూల నుండి పైకి స్వైప్ చేయండి."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Assistantను ప్రారంభించడం కోసం మొదటి ట్యాబ్‌ను నొక్కి పట్టుకోండి"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"డిజిటల్ అసిస్టెంట్ యాప్‌ను ప్రారంభించడానికి హోమ్ బటన్‌ను నొక్కి, పట్టుకోండి."</string>
     <string name="low_label" msgid="6525629096999711220">"తక్కువ"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"డేటా, పాస్-కీ, పాస్‌వర్డ్"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"ఆటోమేటిక్, ఫిల్, ఆటోఫిల్, డేటా, పాస్-కీ, పాస్‌వర్డ్"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;ఈ యాప్‌ను మీరు విశ్వసిస్తున్నట్లు నిర్ధారించండి&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; మీ స్క్రీన్‌పై ఉన్న వాటిని పరిగణనలోకి తీసుకుని వేటిని ఆటోఫిల్ చేయాలో నిర్ణయిస్తుంది."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&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_autofill_confirmation_message" msgid="843829628024668466">"&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_picker_title" msgid="8191267620665129205">"పాస్‌వర్డ్‌లు, పాస్-కీలు, అలాగే డేటా సర్వీస్‌లు"</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>
@@ -4785,12 +4897,10 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"ఆకార నిష్పత్తి"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"ఈ యాప్ మీ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>‌కు సరిపోయేలా డిజైన్ చేయకుంటే, దాన్ని చూడటానికి కొత్త ఆకార నిష్పత్తిని ట్రై చేయండి"</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"ఈ యాప్ మీ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>‌కు సరిపోయేలా డిజైన్ చేయకుంటే, దాన్ని చూడటానికి కొత్త ఆకార నిష్పత్తిని ట్రై చేయండి. కొన్ని యాప్‌లు నిర్దిష్ట ఆకార నిష్పత్తులకు ఆప్టిమైజ్ చేయబడకపోవచ్చు."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"యాప్ మీ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>‌కు సరిపోయేలా డిజైన్ చేయకుంటే, దాన్ని చూడటానికి కొత్త ఆకార నిష్పత్తిని ట్రై చేయండి"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"యాప్ మీ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>‌కు సరిపోయేలా డిజైన్ చేయకుంటే, దాన్ని చూడటానికి కొత్త ఆకార నిష్పత్తిని ట్రై చేయండి. కొన్ని యాప్‌లు నిర్దిష్ట ఆకార నిష్పత్తులకు ఆప్టిమైజ్ చేయబడకపోవచ్చు."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"సూచించిన యాప్‌లు"</string>
-    <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"మారిన యాప్స్"</string>
+    <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"మారిన యాప్‌లు"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"యాప్ ఆటోమేటిక్ సెట్టింగ్"</string>
     <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"ఫుల్ స్క్రీన్"</string>
     <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"సగం స్క్రీన్"</string>
@@ -4858,4 +4968,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"మోసపూరిత యాప్‌ల కోసం స్కాన్ చేస్తోంది"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"ఫిషింగ్ కోసం యాప్ యాక్టివిటీని చెక్ చేయండి"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"మోసపూరిత యాప్‌లను గుర్తించడానికి స్కానింగ్‌ను ఉపయోగించండి"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"ఆఫీస్‌కు సంబంధించిన మోసపూరిత యాప్‌లను గుర్తించడానికి స్కానింగ్‌ను ఉపయోగించండి"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-th/arrays.xml b/res/values-th/arrays.xml
index dd07c77..c65512f 100644
--- a/res/values-th/arrays.xml
+++ b/res/values-th/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"หลังจาก 1 นาที"</item>
     <item msgid="1574040255478150028">"หลังจาก 5 นาที"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 86299c2..131cbdf 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"ปิดใช้ Bluetooth LE Audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"ปิดใช้ฟีเจอร์ Bluetooth LE Audio หากอุปกรณ์รองรับความสามารถของฮาร์ดแวร์ LE Audio"</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"แสดงปุ่มสลับ LE Audio ในรายละเอียดอุปกรณ์"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"เปิดใช้รายการที่อนุญาต Bluetooth LE Audio"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"เปิดใช้ฟีเจอร์รายการที่อนุญาต Bluetooth LE Audio"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"ข้ามรายการที่อนุญาต Bluetooth LE Audio"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"ใช้ LE Audio โดยค่าเริ่มต้นแม้ว่าอุปกรณ์ต่อพ่วง LE Audio จะไม่ได้รับการยืนยันว่าเป็นไปตามเกณฑ์รายการที่อนุญาตก็ตาม"</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"อุปกรณ์สื่อ"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"อุปกรณ์สำหรับโทร"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"อุปกรณ์อื่นๆ"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"อุปกรณ์ที่บันทึกไว้"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"เชื่อมโยงกับบัญชี"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"ใช้กับบัญชีก่อนหน้านี้"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"บลูทูธจะเปิดเพื่อจับคู่อุปกรณ์"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"ค่ากำหนดการเชื่อมต่อ"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"อุปกรณ์ที่เคยเชื่อมต่อ"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"เขียนในช่องข้อความ"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"ไม่ต้องสนใจการกดปุ่มสไตลัสทั้งหมด"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"สไตลัส"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"การแชร์เสียง"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"แชร์เสียง"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"การโทรและการปลุก"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"วันที่และเวลา"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"พร็อกซี"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"ล้างข้อมูล"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"กำลังโหลด…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"แอปที่มีสิทธิ์เข้าถึงอุปกรณ์ที่อยู่ใกล้เคียงจะสามารถระบุตำแหน่งซึ่งสัมพันธ์กับอุปกรณ์ที่เชื่อมต่อ"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"สิทธิ์เข้าถึงตำแหน่งปิดอยู่สำหรับแอปและบริการต่างๆ ระบบอาจยังส่งตำแหน่งของอุปกรณ์ไปให้หน่วยกู้ภัยฉุกเฉินเมื่อคุณโทรหาหรือส่ง SMS ถึงหมายเลขฉุกเฉิน"</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ดูข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าตำแหน่ง"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"บัญชี"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"ความปลอดภัย"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"การเข้ารหัสและข้อมูลเข้าสู่ระบบ"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"โปรไฟล์งาน"</string>
     <string name="private_space_title" msgid="7078627930195569767">"พื้นที่ส่วนตัว"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"ซ่อนแอปในโฟลเดอร์ส่วนตัว"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"ปลดล็อกโดยใช้ล็อกหน้าจอ"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"แสดงพื้นที่ส่วนตัว"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"ซ่อนเมื่อล็อก"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"ซ่อนพื้นที่ส่วนตัวเมื่อล็อกไว้"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"คุณซ่อนพื้นที่ส่วนตัวจากรายการแอปได้ เพื่อไม่ให้คนอื่นรู้ว่ามีพื้นที่ส่วนตัวอยู่ในอุปกรณ์ของคุณ"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"เข้าถึงพื้นที่ส่วนตัวเมื่อซ่อนไว้"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"ค้นหา \"พื้นที่ส่วนตัว\" ในแถบค้นหา"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"แตะการ์ดพื้นที่ส่วนตัว"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"ปลดล็อกพื้นที่ส่วนตัว"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"ปิด"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"เปิด"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"ระบบ"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"สร้างพื้นที่ส่วนตัว"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"ลบพื้นที่ส่วนตัว"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"สร้างพื้นที่ส่วนตัวเรียบร้อยแล้ว"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"มีพื้นที่ส่วนตัวอยู่แล้ว"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"สร้างพื้นที่ส่วนตัวไม่ได้"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"ลบพื้นที่ส่วนตัวเรียบร้อยแล้ว"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"ลบพื้นที่ส่วนตัวไม่ได้"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"ตั้งการล็อกหน้าจอ"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"หากต้องการใช้พื้นที่ส่วนตัว ให้ตั้งการล็อกหน้าจอในอุปกรณ์นี้"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"ตั้งล็อกหน้าจอ"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"ยกเลิก"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"ยกเลิก"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"ตั้งค่า"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"ตั้งค่าพื้นที่ส่วนตัว"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"ซ่อนแอปส่วนตัวในพื้นที่ปลอดภัยที่มีเพียงคุณเท่านั้นที่เข้าถึงได้"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"วิธีการทำงาน"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"คุณเข้าถึงพื้นที่ส่วนตัวได้จากด้านล่างของรายชื่อแอป"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"แอปในพื้นที่ส่วนตัวได้รับการปกป้องโดยการล็อก"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"การแจ้งเตือนจากแอปในพื้นที่ส่วนตัวจะถูกซ่อนเมื่อมีการล็อกไว้"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"แอปพื้นที่ส่วนตัวจะไม่ปรากฏในเครื่องมือจัดการสิทธิ์ แดชบอร์ดความเป็นส่วนตัว และการตั้งค่าอื่นๆ เมื่อมีการล็อกพื้นที่ส่วนตัวไว้"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"กำลังตั้งค่าพื้นที่ส่วนตัว…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"พื้นที่ส่วนตัวได้รับการปกป้องโดยการล็อก"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"ข้อมูลการใช้งานสำหรับแอปพื้นที่ส่วนตัวจะถูกซ่อนเมื่อมีการล็อกไว้"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"เข้าถึงพื้นที่ส่วนตัวจากรายชื่อแอป"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"ตั้งค่าพื้นที่ส่วนตัวไม่ได้"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"ลองอีกครั้งตอนนี้ หรือกลับมาภายหลัง"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"ลองอีกครั้ง"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"ใช้การล็อกหน้าจอเพื่อปลดล็อกใช่ไหม"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"คุณจะปลดล็อกพื้นที่ส่วนตัวได้โดยใช้วิธีเดียวกับที่คุณปลดล็อกอุปกรณ์ หรือเลือกการล็อกอื่น"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"ใช้การล็อกหน้าจอ"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"เลือกการล็อกใหม่"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"เรียบร้อยแล้ว"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"หากต้องการเข้าถึงพื้นที่ส่วนตัว ให้ปัดขึ้นจากด้านล่างของหน้าจอหลัก แล้วเลื่อนลง"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"เสร็จสิ้น"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"เลื่อนลงเพื่อเข้าถึงพื้นที่ส่วนตัว"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"ลงชื่อเข้าใช้เพื่อตั้งค่าพื้นที่ส่วนตัว"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"คุณสามารถเพิ่มได้ถึง <xliff:g id="COUNT">%d</xliff:g> ลายนิ้วมือ"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"คุณได้เพิ่มลายนิ้วมือถึงขีดจำกัดสูงสุดแล้ว"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"เพิ่มลายนิ้วมืออีกไม่ได้แล้ว"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"เชื่อมต่อ"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"ยกเลิกการเชื่อมต่อ"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"จับคู่อุปกรณ์และเชื่อมต่อ"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"เมื่อเปิดบลูทูธ อุปกรณ์ของคุณจะสื่อสารกับอุปกรณ์บลูทูธที่อยู่ใกล้ๆ ได้"</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"เมื่อเปิดบลูทูธ อุปกรณ์จะสื่อสารกับอุปกรณ์บลูทูธที่อยู่ใกล้ๆ ได้"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"เมื่อเปิดบลูทูธ อุปกรณ์ของคุณจะสื่อสารกับอุปกรณ์บลูทูธเครื่องอื่นในบริเวณใกล้เคียงได้\n\nแอปและบริการต่างๆ จะยังคงสแกนหาอุปกรณ์ที่อยู่ใกล้เคียงได้ทุกเมื่อแม้บลูทูธจะปิดอยู่เพื่อปรับปรุงประสบการณ์การใช้งานอุปกรณ์ การตั้งค่านี้ใช้เพื่อทำสิ่งต่างๆ เช่น ปรับปรุงฟีเจอร์และบริการที่อิงตามตำแหน่ง คุณเปลี่ยนตัวเลือกนี้ได้ในการตั้งค่าการสแกนหาบลูทูธ"</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"เปลี่ยน"</string>
     <string name="device_details_title" msgid="1155622417516195481">"รายละเอียดอุปกรณ์"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"อนุญาตให้ ART ตรวจสอบไบต์โค้ดแอปที่แก้ไขข้อบกพร่องได้"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"แสดงอัตราการรีเฟรช"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"แสดงอัตราการรีเฟรชจอแสดงผลล่าสุด"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"แสดงอัตราส่วน HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"แสดงอัตราส่วน HDR/SDR ปัจจุบัน"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"ต้องปลดล็อกอุปกรณ์เพื่อใช้งาน NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1137,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"ใช้แอปต่อได้เมื่อพับ"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"เพิ่มอัตราการรีเฟรชจาก 60 เป็น <xliff:g id="ID_1">%1$s</xliff:g> Hz โดยอัตโนมัติสำหรับเนื้อหาบางรายการ เพิ่มการใช้งานแบตเตอรี่"</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"เพิ่มอัตราการรีเฟรชไปจนถึง <xliff:g id="ID_1">%1$d</xliff:g> Hz โดยอัตโนมัติสำหรับเนื้อหาบางรายการ เพิ่มการใช้งานแบตเตอรี่"</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"บังคับอัตราการรีเฟรชเป็นสูงสุด"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"อัตราการรีเฟรชสูงสุดสำหรับการตอบสนองต่อการแตะและคุณภาพของภาพเคลื่อนไหวที่ดียิ่งขึ้น เพิ่มการใช้งานแบตเตอรี่"</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"การจดจ่อที่หน้าจอ"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"การตั้งค่าส่วนกลาง"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"แก้ไขจุดเข้าใช้งาน"</string>
+    <string name="apn_add" msgid="9069613192201630934">"เพิ่มจุดเข้าใช้งาน"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"ไม่ได้ตั้งค่า"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"ไม่ได้ตั้งค่า"</string>
     <string name="apn_name" msgid="6677695784108157953">"ชื่อ"</string>
@@ -1320,6 +1396,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"เปิดใช้งาน APN แล้ว"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"ปิดใช้งาน APN แล้ว"</string>
     <string name="bearer" msgid="3231443241639159358">"Bearer"</string>
+    <string name="network_type" msgid="748590707422733595">"ประเภทเครือข่าย"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"ไม่ระบุ"</string>
     <string name="mvno_type" msgid="4734654257494971247">"ประเภท MVNO"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"ค่า MVNO"</string>
     <string name="menu_delete" msgid="9199740901584348273">"ลบ APN"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"ใช้ปุ่มการช่วยเหลือพิเศษเพื่อเปิด"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"กดปุ่มปรับระดับเสียงค้างไว้เพื่อเปิด"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"แตะหน้าจอ 3 ครั้งเพื่อเปิด"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"ใช้ 2 นิ้วแตะหน้าจอ 3 ครั้งเพื่อเปิด"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"ใช้ท่าทางสัมผัสเพื่อเปิด"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"ใช้ท่าทางสัมผัสการช่วยเหลือพิเศษ"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"หากต้องการใช้ฟีเจอร์นี้ ให้แตะปุ่มการช่วยเหลือพิเศษ <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> ที่ด้านล่างของหน้าจอ\n\nหากต้องการสลับระหว่างฟีเจอร์ต่างๆ ให้แตะปุ่มการช่วยเหลือพิเศษค้างไว้"</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"หากต้องการใช้ฟีเจอร์นี้ ให้แตะปุ่มการช่วยเหลือพิเศษบนหน้าจอ"</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"หากต้องการใช้ฟีเจอร์นี้ ให้กดปุ่มปรับระดับเสียงทั้ง 2 ปุ่มค้างไว้"</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"หากต้องการเริ่มหรือหยุดการขยาย ให้แตะ 3 ครั้งที่ใดก็ได้บนหน้าจอ"</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"หากต้องการเริ่มหรือหยุดการขยาย ให้ใช้ 2 นิ้วแตะ 3 ครั้งที่ใดก็ได้บนหน้าจอ"</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"หากต้องการใช้ฟีเจอร์นี้ ให้ใช้ 2 นิ้วเลื่อนขึ้นจากด้านล่างของหน้าจอ\n\nหากต้องการสลับระหว่างฟีเจอร์ต่างๆ ให้ใช้ 2 นิ้วเลื่อนขึ้นแล้วค้างไว้"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"หากต้องการใช้ฟีเจอร์นี้ ให้ใช้ 3 นิ้วเลื่อนขึ้นจากด้านล่างของหน้าจอ\n\nหากต้องการสลับระหว่างฟีเจอร์ต่างๆ ให้ใช้ 3 นิ้วเลื่อนขึ้นแล้วค้างไว้"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"หากต้องการใช้ฟีเจอร์การช่วยเหลือพิเศษ ให้ใช้ 2 นิ้วเลื่อนขึ้นจากด้านล่างของหน้าจอ\n\nหากต้องการสลับระหว่างฟีเจอร์ต่างๆ ให้ใช้ 2 นิ้วเลื่อนขึ้นแล้วค้างไว้"</string>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"กดปุ่มปรับระดับเสียงค้างไว้"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"กดปุ่มปรับระดับเสียงค้างไว้"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"กดปุ่มปรับระดับเสียงทั้ง 2 ปุ่มค้างไว้"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"ใช้ 2 นิ้วแตะหน้าจอ 3 ครั้ง"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"ใช้ 2 นิ้วแตะหน้าจอ 3 ครั้ง"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"ใช้ 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="6863958573135995927">"แตะหน้าจอ 3 ครั้ง"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"แตะหน้าจอเร็วๆ {0,number,integer} ครั้ง ทางลัดนี้อาจทำให้อุปกรณ์ทำงานช้าลง"</string>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"ใช้การสั่นและการโต้ตอบการสัมผัส"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"การสั่นเมื่อปลุก"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"การสั่นของสื่อ"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"การสั่นของแป้นพิมพ์"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"การสั่นเมื่อมีเสียงเรียกเข้า"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"การสั่นเมื่อมีการแจ้งเตือน"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"การตอบสนองการสัมผัส"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"เหลืออีก <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"อีก <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> จะชาร์จเต็ม"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"เวลาอยู่หน้าจอ"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"เวลาที่ทำงานอยู่เบื้องหลัง"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"แบตเตอรี่อ่อน"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"อนุญาตให้แอปทำงานในเบื้องหลัง"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"จำกัดกิจกรรมในพื้นหลังใช่ไหม"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"แอปอาจทำงานผิดพลาดหากคุณจำกัดกิจกรรมในพื้นหลัง"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"เนื่องจากแอปนี้ไม่ได้ตั้งค่าให้เพิ่มประสิทธิภาพแบตเตอรี่ คุณจึงจำกัดการใช้งานไม่ได้\n\nหากต้องการจำกัด ให้เปิดการเพิ่มประสิทธิภาพแบตเตอรี่ก่อน"</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"จัดการการใช้งานแบตเตอรี่"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"อนุญาตการใช้งานในเบื้องหลัง"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"เปิดใช้เพื่อให้อัปเดตแบบเรียลไทม์ ปิดใช้เพื่อประหยัดแบตเตอรี่"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"ไม่จำกัด"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"เพิ่มประสิทธิภาพ"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"จำกัด"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"ตั้งแต่ชาร์จจนเต็มครั้งล่าสุด"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"แอประบบ"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"แอปที่ถอนการติดตั้งแล้ว"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"อื่นๆ"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"เวลาที่เหลือโดยประมาณ"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"จนกว่าจะชาร์จเต็ม"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"รวม: ไม่ถึง 1 นาที"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"การทำงานในเบื้องหลัง: ไม่ถึง 1 นาที"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"เวลาอยู่หน้าจอ: น้อยกว่า 1 นาที"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"น้อยกว่า 1 นาที"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"รวม: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"การทำงานในเบื้องหลัง: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"เวลาอยู่หน้าจอ: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"อินเทอร์เน็ตมือถือและ Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"ซิงค์ข้อมูลส่วนตัวอัตโนมัติ"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"ซิงค์ข้อมูลงานอัตโนมัติ"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"ซิงค์ข้อมูลส่วนตัวโดยอัตโนมัติ"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"เปลี่ยนรอบ..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"วันที่ของเดือนในการรีเซ็ตรอบการใช้ข้อมูล:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"ไม่มีข้อมูลการใช้แอปพลิเคชันในช่วงเวลานี้"</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"ขนาดข้อความ, ตัวอักษรขนาดใหญ่, แบบอักษรขนาดใหญ่, ข้อความขนาดใหญ่, สายตาเลือนราง, ทำให้ข้อความใหญ่ขึ้น, เครื่องมือขยายแบบอักษร, การขยายแบบอักษร"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"การแสดงภาพพักหน้าจอเปิดตลอดเวลา, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"NFC, แท็ก, เครื่องอ่าน"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"แป้นพิมพ์ การโต้ตอบการสัมผัส การสั่น"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"ระดับเสียง การสั่น ห้ามรบกวน"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"ระดับเสียงของสื่อ"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"ระดับเสียงเมื่อแคสต์"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"แสดงเนื้อหาการแจ้งเตือนทั้งหมด"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"แสดงเนื้อหาที่ละเอียดอ่อนเฉพาะเมื่อปลดล็อก"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"ไม่ต้องแสดงการแจ้งเตือน"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"คุณอยากให้หน้าจอล็อกแสดงในรูปแบบใด"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"หน้าจอล็อก"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"แสดงเนื้อหาการแจ้งเตือนงานทั้งหมด"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"ซ่อนเนื้อหางานที่ละเอียดอ่อน"</string>
@@ -3354,6 +3448,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"แอปนี้ไม่รองรับการตั้งค่าที่ปรับปรุง"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"การตั้งค่าเพิ่มเติม"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"สามารถใช้งานการตั้งค่าเพิ่มเติมได้ในแอปนี้"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"ระยะเวลาพักการแจ้งเตือน"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"ใช้ระยะเวลาพักกับการแจ้งเตือนทั้งหมด"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"ค่อยๆ ลดระดับเสียงการแจ้งเตือนลงเมื่อคุณได้รับการแจ้งเตือนต่อเนื่องเป็นจำนวนมากจากแอปเดียวกัน"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"ใช้ระยะเวลาพักกับการแจ้งเตือน"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"ค่อยๆ ลดระดับเสียงการแจ้งเตือนลงเมื่อคุณได้รับข้อความเป็นจำนวนมากจากแชทเดียวกันในระยะเวลาสั้นๆ"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"ไม่ใช้ระยะเวลาพักการแจ้งเตือน"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"ไม่ลดระดับเสียงการแจ้งเตือนลง ไม่ว่าจะมีจำนวนการแจ้งเตือนต่อเนื่องจากแอปเดียวกันเท่าใดก็ตาม"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"สั่นเมื่อปลดล็อก"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"สั่นเฉพาะเวลาที่ไม่ได้ล็อกหน้าจอเท่านั้น"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"ใช้กับโปรไฟล์งาน"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"ใช้การตั้งค่าระยะเวลาพักการแจ้งเตือนจากโปรไฟล์ส่วนตัวกับโปรไฟล์งาน"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"บริการตัวช่วย VR"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"แอปที่ติดตั้งอยู่ไม่ได้ขอให้เรียกใช้เป็นบริการตัวช่วย VR"</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"อนุญาตให้ <xliff:g id="SERVICE">%1$s</xliff:g> เข้าถึงบริการ VR ไหม"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"อนุญาตให้เข้าถึงเพื่อจัดการไฟล์ทั้งหมด"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"อนุญาตให้แอปนี้อ่าน แก้ไข และลบไฟล์ทั้งหมดในอุปกรณ์นี้หรือวอลุ่มของพื้นที่เก็บข้อมูลใดๆ ที่เชื่อมต่อ หากได้รับอนุญาต ​แอปอาจเข้าถึงไฟล์ได้โดยที่คุณไม่ทราบอย่างชัดแจ้ง"</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"เข้าถึงไฟล์ทั้งหมดได้"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"แอปการเปิดใช้งานด้วยเสียง"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"อนุญาตการเปิดใช้งานด้วยเสียง"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"การเปิดใช้งานด้วยเสียงจะเปิดแอปที่ได้รับอนุมัติแบบแฮนด์ฟรีโดยใช้คำสั่งเสียง การตรวจจับแบบปรับอัตโนมัติในตัวช่วยให้มั่นใจได้ว่าข้อมูลจะเป็นส่วนตัวสำหรับคุณเท่านั้น\n\n"<a href="">"ข้อมูลเพิ่มเติมเกี่ยวกับการตรวจจับแบบปรับอัตโนมัติที่มีการป้องกัน"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"การแจ้งเตือนแบบเต็มหน้าจอ"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"อนุญาตให้แอปนี้แสดงการแจ้งเตือนแบบเต็มหน้าจอ"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"อนุญาตให้แอปนี้แสดงการแจ้งเตือนได้เต็มหน้าจอเมื่ออุปกรณ์ล็อกอยู่ แอปอาจใช้การแจ้งเตือนเหล่านี้เพื่อให้เห็นการปลุก สายเรียกเข้า หรือการแจ้งเตือนอื่นๆ ที่เร่งด่วนได้อย่างเด่นชัด"</string>
@@ -3779,7 +3887,7 @@
     <string name="keyboard_disconnected" msgid="796053864561894531">"ไม่ได้เชื่อมต่อ"</string>
     <string name="apps_summary" msgid="4007416751775414252">"ติดตั้งแล้ว <xliff:g id="COUNT">%1$d</xliff:g> แอป"</string>
     <string name="storage_summary" msgid="5903562203143572768">"ใช้ไป <xliff:g id="PERCENTAGE">%1$s</xliff:g> - เหลือ <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
-    <string name="display_dashboard_summary" msgid="1599453894989339454">"ธีมมืด, ขนาดตัวอักษร, ความสว่าง"</string>
+    <string name="display_dashboard_summary" msgid="1599453894989339454">"ธีมมืด ขนาดตัวอักษร ความสว่าง"</string>
     <string name="memory_summary" msgid="8221954450951651735">"ใช้หน่วยความจำไป <xliff:g id="USED_MEMORY">%1$s</xliff:g> จาก <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> โดยเฉลี่ย"</string>
     <string name="users_summary" msgid="8473589474976307510">"ลงชื่อเข้าใช้ในฐานะ<xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
     <string name="android_version_summary" msgid="7818952662015042768">"อัปเดตเป็น Android <xliff:g id="VERSION">%1$s</xliff:g> แล้ว"</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ใช้แบตเตอรี่มากกว่าปกติเมื่อทำงานในเบื้องหลัง"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ใช้แบตเตอรี่มากขึ้นเมื่อทำงานในเบื้องหน้า"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ใช้แบตเตอรี่มากกว่าปกติเมื่อทำงานในเบื้องหน้า"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"การใช้งานแบตเตอรี่สูง"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"ใช้งานแบตเตอรี่สูงเมื่อทำงานในเบื้องหลัง"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"ใช้งานแบตเตอรี่สูงเมื่อทำงานในเบื้องหน้า"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"การนำทางของระบบ, การนำทางแบบ 2 ปุ่ม, การนำทางแบบ 3 ปุ่ม, การนำทางด้วยท่าทางสัมผัส, เลื่อน"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"ผู้ช่วยดิจิทัล"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"ปัดเพื่อเรียกใช้ผู้ช่วย"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"ปัดขึ้นจากมุมด้านล่างเพื่อเรียกใช้แอปผู้ช่วยดิจิทัล"</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"ปัดขึ้นจากมุมด้านล่างเพื่อเรียกใช้แอปผู้ช่วยดิจิทัล"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"กดปุ่มหน้าแรกค้างไว้เพื่อเรียกใช้ Assistant"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"กดปุ่มหน้าแรกค้างไว้เพื่อเรียกใช้แอปผู้ช่วยดิจิทัล"</string>
     <string name="low_label" msgid="6525629096999711220">"ต่ำ"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"อินเทอร์เน็ต, พาสคีย์, รหัสผ่าน"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"อัตโนมัติ, ป้อน, ป้อนข้อความอัตโนมัติ, ข้อมูล, พาสคีย์, รหัสผ่าน"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;ตรวจดูว่าคุณเชื่อถือแอปนี้ได้&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google ป้อนอัตโนมัติ&gt;%1$s&lt;/xliff:g&gt; ใช้สิ่งที่อยู่บนหน้าจอเพื่อดูว่าจะป้อนข้อมูลใดโดยอัตโนมัติได้บ้าง"</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&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_autofill_confirmation_message" msgid="843829628024668466">"&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_picker_title" msgid="8191267620665129205">"รหัสผ่าน พาสคีย์ และบริการอินเทอร์เน็ต"</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>
@@ -4226,10 +4336,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <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="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>
@@ -4800,7 +4908,7 @@
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
     <string name="user_aspect_ratio_option_a11y" msgid="1235801996029095219">"<xliff:g id="NUMERATOR">%1$s</xliff:g> โดย <xliff:g id="DENOMINATOR">%2$s</xliff:g>"</string>
     <string name="app_aspect_ratio_footer" msgid="4029509301182067475">"แอปจะรีสตาร์ทเมื่อคุณเปลี่ยนสัดส่วนการแสดงผล การเปลี่ยนแปลงที่ไม่ได้บันทึกไว้อาจหายไป บางแอปอาจยังไม่ได้รับการปรับให้เหมาะกับทุกสัดส่วนการแสดงผล"</string>
-    <string name="aspect_ratio_experimental_title" msgid="9088785421062044831">"สัดส่วนภาพ (ทดลอง)"</string>
+    <string name="aspect_ratio_experimental_title" msgid="9088785421062044831">"สัดส่วนการแสดงผล (ทดลอง)"</string>
     <string name="aspect_ratio_experiment_title" msgid="128614319422121040">"สัดส่วนภาพ (ทดลอง)"</string>
     <string name="aspect_ratio_labs_title" msgid="6733893837442759383">"สัดส่วนภาพ (Labs)"</string>
     <string name="aspect_ratio_experimental_label" msgid="6319009297672567578">"ทดลอง"</string>
@@ -4858,4 +4966,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"การสแกนหาแอปที่หลอกลวง"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"ตรวจสอบกิจกรรมบนแอปเพื่อหาฟิชชิง"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"ใช้การสแกนหาแอปที่หลอกลวง"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"ใช้การสแกนหาแอปที่หลอกลวงสำหรับการทำงาน"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-tl/arrays.xml b/res/values-tl/arrays.xml
index f9ef5e2..39c69d5 100644
--- a/res/values-tl/arrays.xml
+++ b/res/values-tl/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Pagkalipas ng 1 minuto"</item>
     <item msgid="1574040255478150028">"Pagkalipas ng 5 minuto"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 33f40cd..bf38737 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"I-disable ang Bluetooth LE audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Dini-disable ang feature na Bluetooth LE audio kung sinusuportahan ng device ang mga kakayahan ng LE audio hardware."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Ipakita ang toggle ng LE audio sa Mga Detalye ng Device"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"I-enable ang Allow List ng Bluetooth LE audio"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"I-enable ang feature ng allow list ng Bluetooth LE audio."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"I-bypass ang Allowlist ng Bluetooth LE Audio"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Gamitin ang LE Audio bilang default kahit na hindi pa na-verify ang peripheral ng LE Audio para matugunan ang mga pamantayan sa Allowlist."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Mga media device"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Mga device sa pagtawag"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Iba pang device"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Mga naka-save na device"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Nauugnay sa account"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Dating ginamit sa account"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Mag-o-on ang Bluetooth para magpares"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Kagustuhan sa koneksyon"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Dating nakakonekta"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Sumulat sa mga field ng text"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Huwag pansinin ang lahat ng pagpindot ng button sa stylus"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Stylus"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Pagbabahagi ng audio"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Ibahagi ang Audio"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Mga tawag at alarm"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Petsa at oras"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"I-clear"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Matuto pa tungkol sa Mga setting ng lokasyon."</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Mga Account"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Seguridad"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Pag-encrypt at mga kredensyal"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Profile sa trabaho"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Pribadong Space"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Itago ang mga app sa pribadong folder"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"I-unlock gamit ang lock ng screen"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Ipakita ang Pribadong Space"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Itago kapag naka-lock"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Itago ang Pribadong Space kapag naka-lock"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Para hindi malaman ng iba na may Pribadong Space ka, puwede itong itago sa listahan ng mga app"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"I-access ang Pribadong Space kapag nakatago"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Hanapin ang \'Pribadong Space\' sa search bar"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"I-tap ang tile ng Pribadong Space"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"I-unlock ang iyong Pribadong Space"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Naka-off"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Naka-on"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"System"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Gumawa ng Pribadong Space"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"I-delete ang Pribadong Space"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Nagawa ang Pribadong Space"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Mayroon nang Pribadong Space"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Hindi magawa ang Pribadong Space"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Na-delete ang Pribadong Space"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Hindi ma-delete ang Pribadong Space"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Magtakda ng lock ng screen"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Para gamitin ang Private Space, magtakda ng lock ng screen."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Itakda ang lock ng screen"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Kanselahin"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Kanselahin"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"I-set up"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"I-set up ang Pribadong Space"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Itago ang mga pribadong app sa secure na space na ikaw lang ang makaka-access"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Paano ito gumagana"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Puwede mong i-access ang Pribadong Space mula sa ibaba ng iyong listahan ng mga app"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Pinoprotektahan ang mga app sa Pribadong Space ng isang lock"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Nakatago ang mga notification mula sa mga app sa Pribadong Space kapag naka-lock ito"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Hindi lalabas ang mga app sa Pribadong Space sa manager ng pahintulot, privacy dashboard, at iba pang setting kapag naka-lock ang Pribadong Space"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Sine-set up ang Pribadong Space…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Protektado ng lock ang Pribadong Space"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Nakatago ang impormasyon ng paggamit para sa mga app sa Pribadong Space kapag naka-lock ito"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"I-access ang Pribadong Space mula sa listahan ng mga app mo"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Hindi ma-set up ang Pribadong Space"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Subukan ulit ngayon, o bumalik sa ibang pagkakataon"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Subukan Ulit"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Gamitin ang lock ng screen para i-unlock?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Puwede mong i-unlock ang Pribadong Space sa parehong paraan kung paano mo i-unlock ang iyong device, o pumili ng ibang lock"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Gumamit ng lock ng screen"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Pumili ng bagong lock"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Handa na lahat!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Para ma-access ang Pribadong Space, mag-swipe pataas mula sa ibaba ng home screen mo, pagkatapos ay mag-scroll pababa"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Tapos na"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Mag-scroll pababa para ma-access ang Pribadong Space"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Mag-sign in para ma-set up ang Pribadong Space"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Puwede kang magdagdag ng hanggang <xliff:g id="COUNT">%d</xliff:g> (na) fingerprint"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Naidagdag mo na ang maximum na bilang ng mga fingerprint"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Hindi na makapagdagdag ng higit pang fingerprint"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Kumonekta"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Idiskonekta"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Ipares &amp; kumonekta"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Kapag naka-on ang Bluetooth, maaaring makipag-ugnayan ang device mo sa ibang kalapit na Bluetooth device."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Kapag naka-on ang Bluetooth, magagawang makipag-ugnayan ng iyong device sa ibang kalapit na Bluetooth device"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Kapag naka-on ang Bluetooth, puwedeng makipag-ugnayan ang iyong device sa iba pang malapit na Bluetooth device.\n\nPara mapaganda ang experience sa device, puwede pa ring mag-scan ang mga app at serbisyo ng mga malapit na device anumang oras, kahit na naka-off ang Bluetooth. Magagamit ito, halimbawa, para pahusayin ang mga feature at serbisyong batay sa lokasyon. Mababago mo ito sa mga setting ng pag-scan ng Bluetooth."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Palitan"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Mga detalye ng device"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Payagan ang ART na i-verify ang bytecode para sa mga nade-debug na app"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Ipakita ang refresh rate"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Ipakita ang kasalukuyang refresh rate ng display"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Ipakita ang ratio ng HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Ipakita ang kasalukuyang ratio ng HDR/SDR"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Hingin ang pag-unlock ng device para sa NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1137,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Magpatuloy sa paggamit ng mga app kapag naka-fold"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth na Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Awtomatikong itinataas sa <xliff:g id="ID_1">%1$s</xliff:g> Hz, mula sa 60 Hz ang refresh rate para sa ilang content. Nakakadagdag sa paggamit ng baterya."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Awtomatikong tinataasan ang rate ng pag-refresh hanggang <xliff:g id="ID_1">%1$d</xliff:g> Hz para sa ilang content. Nakakadagdag sa paggamit ng baterya."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Puwersahin sa pinakamataas na rate ng pag-refresh"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Pinakamataas na rate ng pag-refresh para sa pinahusay na pagiging responsive ng pagpindot at kalidad ng animation. Pinapalakas ang paggamit ng baterya."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Atensyon sa screen"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Mga communal setting"</string>
     <string name="apn_settings" msgid="4295467389400441299">"Mga APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"I-edit ang access point"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Magdagdag ng access point"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Hindi nakatakda"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Hindi nakatakda"</string>
     <string name="apn_name" msgid="6677695784108157953">"Pangalan"</string>
@@ -1320,6 +1396,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"Pinagana ang APN"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"Hindi pinagana ang APN"</string>
     <string name="bearer" msgid="3231443241639159358">"Bearer"</string>
+    <string name="network_type" msgid="748590707422733595">"Network type"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Hindi tinukoy"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Uri ng MVNO"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO value"</string>
     <string name="menu_delete" msgid="9199740901584348273">"I-delete ang APN"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Gamitin ang button ng accessibility para buksan"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"I-hold ang mga volume key para buksan"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"I-triple tap ang screen para buksan"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"I-triple tap ang screen gamit ang dalawang daliri para buksan"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Gumamit ng galaw para buksan"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Gamitin ang galaw para sa accessibility"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Para magamit ang feature na ito, i-tap ang button ng accessibility <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> sa ibaba ng iyong screen.\n\nPara magpalipat-lipat sa mga feature, pindutin nang matagal ang button ng accessibility."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Para gamitin ang feature na ito, i-tap ang button ng accessibility sa iyong screen."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Para magamit ang feature na ito, pindutin nang matagal ang parehong volume key."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Para magsimula at huminto sa pag-magnify, mag-tap nang tatlong beses kahit saan sa iyong screen."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Para simulan at ihinto ang pag-magnify, mag-triple tap kahit saan sa screen mo gamit ang dalawang daliri."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Para magamit ang feature na ito, 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_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Para magamit ang feature na ito, mag-swipe pataas mula sa ibaba ng sceen 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_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Para gumamit ng feature ng pagiging naa-access, 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>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"I-hold ang mga volume key"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"i-hold ang 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_triple_tap" msgid="6687765191490040899">"I-triple tap ang screen gamit ang dalawang daliri"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"i-triple tap ang screen gamit ang dalawang daliri"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"i-triple tap ang screen"</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>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Gumamit ng pag-vibrate at haptics"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Pag-vibrate ng alarm"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Pag-vibrate ng media"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Pag-vibrate ng keyboard"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Pag-vibrate kapag nag-ring"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Pag-vibrate kapag may notification"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Feedback sa pagpindot"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> natitira"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> upang ma-charge"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Tagal ng paggamit"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Tagal sa background"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Paubos na ang baterya"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Pahintulutan ang app na tumakbo sa background"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Limitahan ang aktibidad sa background?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Kung lilimitahan mo ang aktibidad sa background ng app, maaari itong gumana nang hindi tama"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Hindi nakatakda ang app na mag-optimize ng baterya kaya hindi ito malilimitahan.\n\nPara malimitahan, i-on ang battery optimization."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Pamahalaan ang paggamit ng baterya"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Payagan ang paggamit sa background"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"I-enable para sa mga real-time na update, i-disable para makatipid sa baterya"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Hindi pinaghihigpitan"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Naka-optimize"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Limitado"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"mula noong huling ma-full charge"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Mga system app"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Mga na-uninstall na app"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Iba pa"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Tinatayang natitirang oras"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Hanggang mapuno ang baterya"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Kabuuan: wala pang isang minuto"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Background: wala pang isang minuto"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Tagal ng paggamit: wala pang isang minuto"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Wala pang isang minuto"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Kabuuan: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Background: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Tagal ng paggamit: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Mobile data at Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"I-auto sync ang personal data"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"I-auto sync ang work data"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"I-auto sync ang pribadong data"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Baguhin ang cycle…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Araw ng buwan pang i-reset ang ikot ng paggamit ng data:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Walang apps ang gumamit ng data sa panahong ito."</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"laki ng text, malaking print, malaking font, malaking text, malabong paningin, palakihin ang text, pampalaki ng font, pagpapalaki ng font"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"palaging naka-on na ambient display, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, tag, reader"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"keyboard, haptics, pag-vibrate,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Volume, pag-vibrate, Huwag Istorbohin"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Volume ng media"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Volume ng pag-cast"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Ipakita ang lahat ng content ng notification"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Ipakita lang ang sensitibong content kapag naka-unlock"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Huwag magpakita ng mga notification"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Paano mo gustong ipakita ang lock screen?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Lock screen"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Ipakita, lahat ng content ng notification sa trabaho"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Itago ang sensitibong content ng trabaho"</string>
@@ -3354,6 +3448,17 @@
     <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="6121016426991791557">"Cooldown sa notification"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Ilapat ang cooldown sa lahat ng notification"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Dahan-dahang babaan ang volume ng notification kapag nakakuha ka ng maraming sunod-sunod na notification mula sa parehong app"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Ilapat ang cooldown sa mga pag-uusap"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Dahan-dahang babaan ang volume ng notification kapag nakakuha ka ng maraming mensahe mula sa parehong chat sa loob ng maikling panahon"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Huwag gumamit ng cooldown sa notification"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Huwag kailanman babaan ang volume ng notification, gaano man karami ang magkakasunod na notification mula sa parehong app"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Mag-vibrate kapag naka-unlock"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Mag-vibrate lang kapag naka-unlock ang screen"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Ilapat sa mga profile sa trabaho"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Ilapat sa iyong profile sa trabaho ang mga setting ng cooldown sa notification mula sa iyong personal na profile"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Mga serbisyong pantulong sa VR"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Walang mga naka-install na app ang humiling na mapagana bilang mga serbisyong pantulong sa VR."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Payagan ang access sa serbisyo ng VR para sa <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Payagan para mapamahalaan ang lahat ng file"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Payagan ang app na ito na basahin, baguhin, at i-delete ang lahat ng file sa device na ito o sa anumang nakakonektang storage volume. Kung pagbibigyan ito, puwedeng mag-access ng mga file ang app nang hindi mo nalalaman."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Makaka-access sa lahat ng file"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Mga app sa pag-activate gamit ang boses"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Payagan ang pag-activate gamit ang boses"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Ino-on ng voice activation ang mga naaprubahang app nang hands-free sa pamamagitan ng command gamit ang boses. Sa pamamagitan ng built-in na adaptive sensing, natitiyak na nananatiling pribado sa iyo lang ang data.\n\n"<a href="">"Higit pa tungkol sa protektadong adaptive sensing"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Mga full screen na notification"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Payagan ang mga full screen na notification mula sa app na ito"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Payagan ang app na ito na magpakita ng mga notification na sakop ang buong screen kapag naka-lock ang device. Puwedeng gamitin ng mga app ang mga ito para mag-highlight ng mga alarm, papasok na tawag, o iba pang agarang notification."</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"Gumamit ang <xliff:g id="APP_LABEL">%1$s</xliff:g> ng mas maraming baterya kaysa sa karaniwan habang nasa background"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"Gumamit ang <xliff:g id="APP_LABEL">%1$s</xliff:g> ng mas maraming baterya habang nasa foreground"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"Gumamit ang <xliff:g id="APP_LABEL">%1$s</xliff:g> ng mas maraming baterya kaysa sa karaniwan habang nasa foreground"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Makonsumong paggamit ng baterya"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Makonsumong paggamit ng baterya sa background"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Makonsumong paggamit ng baterya sa foreground"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"system navigation, 2 button na navigation, 3 button na navigation, navigation gamit ang galaw, pag-swipe"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Digital na assistant"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"I-swipe para i-invoke ang assistant"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Mag-swipe pataas mula sa isang sulok sa ibaba para i-invoke ang app ng digital na assistant."</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Mag-swipe pataas mula sa isang sulok sa ibaba para i-invoke ang app ng digital na assistant"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Pindutin nang matagal ang Home para sa Assistant"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Pindutin nang matagal ang button ng Home para i-invoke ang digital na assistant app."</string>
     <string name="low_label" msgid="6525629096999711220">"Mababa"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"data, passkey, password"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"auto, fill, autofill, data, passkey, password"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Tiyaking pinagkakatiwalaan mo ang app na ito&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Ginagamit ng &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; ang nasa iyong screen para matukoy kung ano ang pwedeng i-autofill."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Gamitin ang &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Ginagamit ng &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; kung ano ang nasa screen mo para matukoy kung ano ang puwedeng i-autofill. Mula ngayon, mase-save na rito ang mga bagong password, passkey, at iba pang impormasyon."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Gamitin ang &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Mase-save ang mga bagong password, passkey, at iba pang impormasyon dito mula ngayon. Puwdeng gamitin ng &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; kung ano ang nasa screen mo para matukoy kung ano ang puwedeng i-autofill."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Mga password, passkey, at serbisyo sa data"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"I-off ang %1$s?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;I-off ang serbisyong ito?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Hindi pupunan ang mga naka-save na impormasyon tulad ng mga password, passkey, paraan ng pagbabayad, at iba pang impormasyon kapag nag-sign in ka. Para magamit ang iyong naka-save na impormasyon, pumili ng serbisyo ng password, passkey, o data."</string>
@@ -4856,4 +4966,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Nagsa-scan para sa mga mapanlinlang na app"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Suriin ang aktibidad sa app para mag-detect ng phishing"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Gumamit ng pag-scan para sa mga mapanlinlang na app"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Gumamit ng pag-scan para sa mga mapanlinlang na app para sa trabaho"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-tr/arrays.xml b/res/values-tr/arrays.xml
index 5892ae1..cb49a84 100644
--- a/res/values-tr/arrays.xml
+++ b/res/values-tr/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"1 dakika sonra"</item>
     <item msgid="1574040255478150028">"5 dakika sonra"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 30fd2b2..a993b0a 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Bluetooth LE Audio\'yu devre dışı bırak"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Cihaz, LE Audio donanımı özelliklerini destekliyorsa Bluetooth LE Audio özelliğini devre dışı bırakır."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Cihaz Ayrıntıları\'nda LE Audio açma/kapatmayı göster"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Bluetooth LE Audio İzin Verilenler Listesi\'ni etkinleştir"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Bluetooth LE Audio izin verilenler listesi özelliğini etkinleştirin."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Bluetooth LE Audio izin verilenler listesini atla"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"LE Audio çevre biriminin, izin verilenler listesi kriterlerini karşıladığı doğrulanmamış olsa bile varsayılan olarak LE Audio\'yu kullanın."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Medya cihazları"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Cihazları ara"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Diğer cihazlar"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Kayıtlı cihazlar"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Hesapla ilişkili"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Hesapta daha önce kullanılan"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth, eşleme işlemi için açılır"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Bağlantı tercihleri"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Daha önce bağlanılmış cihazlar"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Metin alanlarına yazın"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Ekran kalemiyle basılan düğmeleri yoksay"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Ekran kalemi"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Ses paylaşımı"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Sesi paylaş"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Aramalar ve alarmlar"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Tarih ve saat"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Temizle"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Konum ayarları hakkında daha fazla bilgi edinin"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Hesaplar"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Güvenlik"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Şifreleme ve kimlik bilgileri"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"İş profili"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Gizli Alan"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Uygulamalar gizli klasörde gizlenir"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Ekran kilidini kullanarak kilidi aç"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Gizli alanı göster"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Kilitli olduğunda gizle"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Kilitli olduğunda gizli alanı gizle"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Başkalarının, cihazınızda gizli alan olduğunu bilmesini önlemek için bunu uygulama listenizde gizleyin"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Gizli olduğunda gizli alana erişin"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Arama çubuğuna \"Gizli alan\" yazın"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Gizli alan kutusuna dokunun"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Gizli alanınızın kilidini açın"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Kapalı"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Açık"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Sistem"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Gizli alan oluştur"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Gizli alanı sil"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Gizli alan oluşturuldu"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Gizli alan zaten mevcut"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Gizli alan oluşturulamadı"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Gizli alan silindi"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Gizli alan silinemedi"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Ekran kilidi ayarlayın"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Gizli alanı kullanmak için cihazda ekran kilidi ayarlayın."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Ekran kilidi ayarla"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"İptal"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"İptal"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Kurulum"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Gizli alanı kurun"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Özel uygulamaları yalnızca sizin erişebildiğiniz güvenli bir alanda gizleyin"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Nasıl çalışır?"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Gizli alana, uygulama listenizin alt tarafından erişebilirsiniz"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Gizli alandaki uygulamalar kilit ile korunur"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Kilitli olduğunda gizli alandaki uygulamaların gönderdiği bildirimler gizlenir"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Gizli alan kilitli olduğunda izin yöneticisi, gizlilik kontrol paneli ve diğer ayarlarda gizli alan uygulamaları görünmez"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Gizli alan kuruluyor…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Gizli alan kilit ile korunur"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Kilitli olduğunda gizli alan uygulamalarıyla ilgili kullanım bilgileri gizlenir"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Gizli alana, uygulama listenizden erişin"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Gizli alan kurulamadı"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Şimdi tekrar deneyin veya daha sonra tekrar gelin"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Tekrar Dene"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Kilidi açmak için ekran kilidi kullanılsın mı?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Gizli alanın kilidini, cihazınızın kilidini açtığınız şekilde açabilir veya farklı bir kilit seçebilirsiniz"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Ekran kilidi kullan"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Yeni kilit seç"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"İşlem tamam!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Gizli alana erişmek için ana ekranınızın alt kısmından yukarı doğru kaydırdıktan sonra aşağı doğru kaydırın"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Bitti"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Gizli alana erişmek için aşağı kaydırın"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Gizli alan kurmak için oturum açın"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"<xliff:g id="COUNT">%d</xliff:g> adede kadar parmak izi ekleyebilirsiniz"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Maksimum sayıda parmak izi eklediniz"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Daha fazla parmak izi eklenemez"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Bağlan"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Bağlantıyı kes"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Eşle ve bağlan"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Bluetooth açık olduğunda, cihazınız yakındaki Bluetooth cihazlarla iletişim kurabilir."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Bluetooth açıkken cihazınız yakındaki diğer Bluetooth cihazlarla iletişim kurabilir.\n\nUygulamalar ve hizmetler, cihaz deneyimini iyileştirmek için Bluetooth kapalıyken bile yakında cihaz olup olmadığını belirlemek amacıyla herhangi bir zamanda tarama yapabilir. Bu özellik, örneğin, konuma dayalı özellikleri ve hizmetleri iyileştirmek için kullanılabilir. Bunu Bluetooth tarama ayarlarından değiştirebilirsiniz."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Değiştir"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Cihaz ayrıntıları"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"ART\'ın, hata ayıklaması yapılabilecek uygulamaların bayt kodunu doğrulamasına izin ver"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Yenileme hızını göster"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Mevcut ekranın yenileme hızını göster"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"HDR/SDR oranını göster"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Mevcut HDR/SDR oranını göster"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"NFC için cihaz kilidinin açılmasını zorunlu kıl"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Cihaz katlıyken uygulamaları kullanmaya devam et"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Bazı içerikler için yenileme hızını otomatik olarak 60 Hz\'den <xliff:g id="ID_1">%1$s</xliff:g> Hz\'e yükseltir. Pil kullanımını artırır."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Bazı içerikler için yenileme hızını otomatik olarak <xliff:g id="ID_1">%1$d</xliff:g> Hz\'e yükseltir. Pil kullanımını artırır."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Yoğun yenileme hızına zorla"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Geliştirilmiş dokunma duyarlılığı ve animasyon kalitesi için en yüksek yenileme hızı. Pil kullanımını artırır."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Ekrana dikkat verme"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Ortak ayarlar"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN\'ler"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Erişim noktasını düzenle"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Erişim noktası ekleyin"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Ayarlanmadı"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Ayarlanmadı"</string>
     <string name="apn_name" msgid="6677695784108157953">"Ad"</string>
@@ -1320,6 +1397,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN etkin"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN devre dışı"</string>
     <string name="bearer" msgid="3231443241639159358">"Taşıyıcı"</string>
+    <string name="network_type" msgid="748590707422733595">"Ağ türü"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Belirtilmemiş"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO türü"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO değeri"</string>
     <string name="menu_delete" msgid="9199740901584348273">"APN\'yi sil"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Açmak için erişilebilirlik düğmesini kullanın"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Açmak için ses düğmelerini basılı tutun"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Açmak için ekrana üç kez dokunun"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Açmak için ekrana iki parmağınızla üç kez dokunun"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Açmak için hareketi kullanın"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Erişilebilirlik hareketini kullan"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Bu özelliği kullanmak için ekranınızın alt kısmındaki erişilebilirlik düğmesine <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> dokunun.\n\nÖzellikler arasında geçiş yapmak için erişilebilirlik düğmesine dokunup basılı tutun."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Bu özelliği kullanmak için ekranınızdaki erişilebilirlik düğmesine dokunun."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Bu özelliği kullanmak için ses tuşlarının ikisine birden basın ve basılı tutun."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Büyütmeyi başlatıp durdurmak için ekranınızda herhangi bir yere üç kez dokunun."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Büyütmeyi başlatıp durdurmak için ekranınızda herhangi bir yere iki parmağınızla üç kez dokunun."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Bu özelliği kullanmak için 2 parmağınızla ekranın alt kısmı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_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Bu özelliği kullanmak için 3 parmağınızla ekranın alt kısmı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_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Bir erişilebilirlik özelliğini kullanmak için 2 parmağınızla ekranın alt kısmı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>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Ses seviyesi tuşlarını basılı tut"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"ses tuşlarını basılı tut"</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_triple_tap" msgid="6687765191490040899">"Ekrana iki parmağınızla üç kez dokunun"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"ekrana iki parmağınızla üç kez dokunun"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"İ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="6863958573135995927">"ekrana üç kez dokun"</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>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Titreşimi ve dokunma teknolojisini kullan"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Alarm titreşimi"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Medya titreşimi"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Klavye titreşimi"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Zili çaldırma titreşimi"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Bildirim titreşimi"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Dokunma geri bildirimi"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> kaldı"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"Şarj olmasına <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> var"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Ekran başında kalma süresi"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Arka planda kullanım süresi"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Pil seviyesi düşük"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Uygulamanın arka planda çalışmasına izin verin"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Arka plan etkinliği sınırlansın mı?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Uygulama için arka plan etkinliğini sınırlarsanız hatalı davranabilir"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Uygulama, pili optimize etmek için ayarlanmadığından kısıtlanamaz.\n\nUygulamayı kısıtlamak için önce pil optimizasyonunu açın."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Pil kullanımını yönetme"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Arka planda kullanıma izin verin"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Etkinleştirerek gerçek zamanlı güncellemeler alın, pil tasarrufu yapmak için de devre dışı bırakın"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Kısıtlanmamış"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Optimize edilmiş"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Kısıtlı"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"son tam şarjdan bu yana"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Sistem uygulamaları"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Kaldırılan uygulamalar"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Diğer"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Kalan tahmini süre"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"sonra tam olarak şarj olacak"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Toplam: Bir dakikadan az"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Arka planda: bir dakikadan az"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Ekran süresi: bir dakikadan az"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"1 dakikadan az"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Toplam: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Arka planda: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Ekran süresi: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Mobil veri ve Kablosuz"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Kişisel verileri otomatik senk. et"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"İş verilerini otomatik senk. et"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Gizli verileri otomatik senkronize et"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Dönemi değiştir..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Ayın, veri kullanım döneminin sıfırlandığı günü:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Bu dönem içinde hiçbir uygulama veri kullanmadı."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"metin boyutu, büyük baskı, büyük harfler, büyük metin, az görme, metni büyüt, yazı tipi büyütücü, yazı tipi büyütme"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"ambiyans ekranı her zaman açık, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, etiket, okuyucu"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"klavye, dokunma teknolojisi, titreşim"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Ses düzeyi, titreşim, Rahatsız Etmeyin"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Medya ses düzeyi"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Yayın ses düzeyi"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Tüm bildirim içeriğini göster"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Hassas içerikleri sadece kilitli değilken göster"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Bildirimleri hiç gösterme"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Kilit ekranının nasıl görüntülenmesini istiyorsunuz?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Kilit ekranı"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Tüm iş bildirimi içeriklerini göster"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Hassas iş içeriğini gizle"</string>
@@ -3354,6 +3449,17 @@
     <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="6121016426991791557">"Bildirim bekleme süresi"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Tüm bildirimlere bekleme süresi uygula"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Aynı uygulamadan art arda birçok bildirim aldığınızda bildirim ses seviyesi kademeli olarak azalır"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Görüşmelere bekleme süresi uygula"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Kısa süre içinde aynı sohbetten birçok mesaj aldığınızda bildirim ses seviyesi kademeli olarak azalır"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Bildirim bekleme süresini kullanma"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Aynı uygulamadan art arda gelen bildirim sayısından bağımsız olarak bildirim ses seviyesi hiçbir zaman azalmaz"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Kilit açıldığında titreş"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Yalnızca ekranın kilidi açıldığında titreşir"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"İş profillerine uygula"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Kişisel profilinizdeki bildirim bekleme süresi ayarları, iş profilinize uygulanır"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR yardımcı hizmetleri"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Yüklü hiçbir uygulama VR yardımcı hizmetleri olarak çalışma isteğinde bulunmadı."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"<xliff:g id="SERVICE">%1$s</xliff:g> için VR hizmetine erişim izni verilsin mi?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Tüm dosyaları yönetme erişimine izin ver"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Bu uygulamanın, bu cihazdaki veya cihaza bağlı depolama birimlerindeki tüm dosyaları okumasına, değiştirmesine ve silmesine izin verin. İzin verilirse uygulama size açıkça bildirmeden dosyalara erişebilir."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Tüm dosyalara erişebilir"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Sesli etkinleştirilen uygulamalar"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Sesli etkinleştirmeye izin ver"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Sesli etkinleştirme özelliği, onaylı uygulamaları ellerinizi kullanmadan sesli komut vererek açmanızı sağlar. Yerleşik uyarlanabilir algılama özelliği, verilerin yalnızca size özel kalmasını sağlar.\n\n"<a href="">"Korumalı uyarlanabilir algılama hakkında daha fazla bilgi"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Tam ekran bildirimler"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Bu uygulamanın tam ekran bildirim göndermesine izin ver"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Cihaz kilitliyken bu uygulamanın tüm ekranı kaplayan bildirimler göstermesine izin verin. Uygulamalar bunu alarmları, gelen aramaları ve diğer acil bildirimleri göstermek için kullanabilir."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> arka plandayken normalden daha fazla pil kullandı"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ön plandayken daha fazla pil kullandı"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> ön plandayken normalden daha fazla pil kullandı"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Yüksek pil kullanımı"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Arka planda yüksek pil kullanımı"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Ön planda yüksek pil kullanımı"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"sistemde gezinme, 2 düğmeli gezinme, 3 düğmeli gezinme, hareketle gezinme, kaydırma"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Dijital asistan"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Asistanı çağırmak için ekranı parmağınızla kaydırın"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Dijital asistan uygulamasını çağırmak için ekranı parmağınızla alt köşeden yukarı kaydırın."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Asistan için ana sayfa düğmesini basılı tutun"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Dijital asistan uygulamasını çağırmak için Ana sayfa düğmesini basılı tutun."</string>
     <string name="low_label" msgid="6525629096999711220">"Düşük"</string>
@@ -4169,10 +4281,10 @@
     <string name="credman_credentials" msgid="4931371941253324143">"Ek sağlayıcılar"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# şifre}other{# şifre}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"otomatik, doldurma, otomatik doldurma, şifre"</string>
-    <string name="credman_keywords" msgid="8305600680836806170">"veri, şifre anahtarı, şifre"</string>
+    <string name="credman_keywords" msgid="8305600680836806170">"veri, geçiş anahtarı, şifre"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"otomatik, doldurma, otomatik doldurma, veriler, geçiş anahtarı, şifre"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Bu uygulamaya güvendiğinizden emin olun&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Otomatik Doldurma&gt;%1$s&lt;/xliff:g&gt; otomatik doldurulabilecek öğeleri belirlemek için ekranınızdaki bilgileri kullanır."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;&lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; kullanılsın mı?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt;&lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; otomatik doldurulabilecek alanları belirlemek için ekranınızdaki bilgileri kullanır. Artık yeni şifreler, geçiş anahtarları ve diğer bilgiler buraya kaydedilecek."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;&lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; kullanılsın mı?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Yeni şifreler, geçiş anahtarları ve diğer bilgiler artık buraya kaydedilecek. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; otomatik doldurulabilecek alanları belirlemek için ekranınızdaki bilgileri kullanabilir."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Şifreler, geçiş anahtarları ve veri hizmetleri"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$s kapatılsın mı?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Bu hizmet kapatılsın mı?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Şifreler, geçiş anahtarları, ödeme yöntemleri gibi kayıtlı bilgiler ve diğer bilgiler oturum açtığınızda doldurulmaz. Kayıtlı bilgilerinizi kullanmak için bir şifre, geçiş anahtarı veya veri hizmeti seçin."</string>
@@ -4226,10 +4338,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <string name="enable_angle_as_system_driver" msgid="4648827560023949786">"Deneysel: ANGLE\'ı etkinleştirin"</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Uyarı: ANGLE\'ı, varsayılan OpenGL ES sürücüsü olarak etkinleştirin. Bu özellik deneme aşamasında olduğu için bazı kamera ve video uygulamalarıyla uyumlu olmayabilir."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"Sistem OpenGL ES sürücüsünü değiştirmek için yeniden başlatma gerekir"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Uygulama Uyumluluğuyla İlgili Değişiklikler"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Uygulama uyumluluk değişikliklerini aç/kapat"</string>
@@ -4787,10 +4897,8 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"En boy oranı"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"Bu uygulama <xliff:g id="DEVICE_NAME">%1$s</xliff:g> cihazınıza uyacak şekilde tasarlanmamışsa uygulamayı görüntülemek için yeni bir en boy oranı deneyin"</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Bu uygulama <xliff:g id="DEVICE_NAME">%1$s</xliff:g> cihazınıza uyacak şekilde tasarlanmamışsa uygulamayı görüntülemek için yeni bir en boy oranı deneyin. Bazı uygulamalar belirli en boy oranları için optimize edilmemiş olabilir."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> cihazınıza uyacak şekilde tasarlanmamış olan uygulamaları görüntülemek için yeni bir en boy oranı deneyin"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> cihazınıza uyacak şekilde tasarlanmamış olan uygulamaları görüntülemek için yeni bir en boy oranı deneyin. Bazı uygulamalar belirli en boy oranları için optimize edilmemiş olabilir."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Önerilen uygulamalar"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Değiştirilmiş uygulamalar"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Uygulama varsayılanı"</string>
@@ -4860,4 +4968,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Yanıltıcı uygulamaları tarama"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Uygulama etkinliğini kimlik avı açısından kontrol edin"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Yanıltıcı uygulamaları tespit etmek için taramayı kullan"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"İş profilinde yanıltıcı uygulamaları tespit etmek için taramayı kullan"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-uk/arrays.xml b/res/values-uk/arrays.xml
index a4f69f8..c57fefb 100644
--- a/res/values-uk/arrays.xml
+++ b/res/values-uk/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Через 1 хвилину"</item>
     <item msgid="1574040255478150028">"Через 5 хвилин"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 6b5ce79..c6d9479 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Вимкнути Bluetooth LE Audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Вимикає функцію Bluetooth LE Audio, якщо пристрій підтримує апаратні можливості LE Audio."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Перемикач LE Audio в інф. про пристрій"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Увімкнути список дозволів Bluetooth LE Audio"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Увімкнути функцію списку дозволів Bluetooth LE Audio."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Обходити білий список Bluetooth LE Audio"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"LE Audio використовуватиметься за умовчанням, навіть якщо периферійний пристрій LE Audio не перевірено на відповідність критеріям білого списку."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Носії"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Пристрої для дзвінків"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Інші пристрої"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Збережені пристрої"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Зв’язано з обліковим записом"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Пристрої, на яких раніше використовувався обліковий запис"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth увімкнеться, щоб створити пару"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Параметри підключень"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Підключені раніше"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Писати в текстових полях"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Ігнорувати всі натискання кнопок стилусом"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Стилус"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Надання доступу до аудіо"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Поділитись аудіо"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Дзвінки й будильники"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Дата й час"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Проксі"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Очистити"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Завантаження…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Додатки з дозволами на доступ до пристроїв поблизу можуть визначати відносне розташування підключених пристроїв."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Доступ до геоданих вимкнено для додатків і сервісів. Однак дані про місцезнаходження вашого пристрою можуть надсилатися в екстрених випадках, якщо ви зателефонуєте або надішлете SMS на екстрений номер."</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Докладніше про доступ до геоданих"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Облікові записи"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Безпека"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Шифрування й облікові дані"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Робочий профіль"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Приватний простір"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Ховайте додатки в приватній папці"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Використовувати спосіб розблокування екрана"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Показати приватний простір"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Не показувати на заблокованому екрані"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Приховати приватний простір, коли його заблоковано"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Приховайте приватний простір зі списку додатків, щоб ніхто не дізнався про його наявність на пристрої"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Отримуйте доступ до приватного простору, коли його приховано"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"У рядку пошуку введіть \"приватний простір\""</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Натисніть панель \"Приватний простір\""</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Розблокуйте приватний простір"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Вимкнено"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Увімкнено"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Система"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Створити приватний простір"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Видалити приватний простір"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Приватний простір створено"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Приватний простір уже існує"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Не вдалося створити приватний простір"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Приватний простір видалено"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Не вдалося видалити приватний простір"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Налаштуйте блокування екрана"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Щоб застосовувати приватний простір, налаштуйте блокування."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Налаштувати блокування екрана"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Скасувати"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Скасувати"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Налаштувати"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Налаштуйте приватний простір"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Сховайте приватні додатки в безпечному місці, доступ до якого маєте лише ви"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Як це працює"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Ви можете отримати доступ до приватного простору внизу списку додатків"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Додатки в приватному просторі захищено блокуванням"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Сповіщення додатків у приватному просторі приховуються, коли його заблоковано"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Коли приватний простір заблоковано, його додатки не відображатимуться в менеджері дозволів, на панелі керування дозволами й в інших налаштуваннях."</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Налаштування приватного простору…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Приватний простір захищено блокуванням"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Коли приватний простір заблоковано, дані про використання його додатків приховуються"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Доступ до приватного простору зі списку додатків"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Не вдалося налаштувати приватний простір"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Повторіть спробу зараз або поверніться пізніше"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Повторити"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Використовувати спосіб розблокування екрана?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Ви можете розблоковувати приватний простір так само, як і свій пристрій, або вибрати інший спосіб розблокування"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Використовувати спосіб розблокування екрана"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Вибрати новий спосіб розблокування"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Готово."</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Щоб отримати доступ до приватного простору, проведіть пальцем угору від нижнього краю головного екрана, а потім прокрутіть сторінку вниз"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Готово"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Прокрутіть униз, щоб увійти в приватний простір"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Щоб налаштувати приватний простір, виконайте вхід"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Можна додати максимум стільки відбитків: <xliff:g id="COUNT">%d</xliff:g>"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Ви додали максимальну кількість відбитків пальців"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Більше не можна додати відбитки пальців"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Підключити"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Відключити"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Створ. пару та підкл."</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Коли Bluetooth увімкнено, пристрій може обмінюватися даними з пристроями Bluetooth поблизу."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Коли ви вмикаєте Bluetooth, ваш пристрій може обмінюватися даними з іншими пристроями з цією технологією поблизу.\n\nДодатки й сервіси можуть шукати пристрої поруч, навіть якщо Bluetooth вимкнено. Завдяки цьому покращується робота пристрою, зокрема його функцій і сервісів, які використовують геодані. Таке налаштування можна змінити в параметрах пошуку пристроїв із Bluetooth."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Змінити"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Про пристрій"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Дозволити ART підтверджувати байт-код налагоджуваних додатків"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Частота оновлення"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Показати поточну частоту оновлення екрана"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Показувати співвідношення HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Показувати поточне співвідношення HDR/SDR"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"NFC лише після розблокування"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Передавання даних Android"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Далі користуватися додатками на складеному пристрої"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Плавне відображення"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Автоматично збільшує частоту оновлення певного контенту із 60 до <xliff:g id="ID_1">%1$s</xliff:g> Гц. Збільшує використання заряду акумулятора."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Автоматично збільшує частоту оновлення до <xliff:g id="ID_1">%1$d</xliff:g> Гц для певного контенту. Збільшує використання заряду акумулятора."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Примусово найбільша частота оновлення"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Найвища частота оновлення для кращого реагування на дотики й вищої якості анімації. Підвищує використання заряду акумулятора."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Адаптивний сплячий режим"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Налаштування для спільного використання"</string>
     <string name="apn_settings" msgid="4295467389400441299">"Точки доступу"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Змінити точку доступу"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Додати точку доступу"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Не встановлено"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Не задано"</string>
     <string name="apn_name" msgid="6677695784108157953">"Назва"</string>
@@ -1320,6 +1397,8 @@
     <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="network_type" msgid="748590707422733595">"Тип мережі"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Не вказано"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Тип MVNO"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"Значення MVNO"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Видалити APN"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Використайте кнопку функцій доступності"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Утримуйте клавіші гучності, щоб відкрити"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Тричі торкніться екрана, щоб відкрити"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Тричі торкніться екрана двома пальцями, щоб відкрити"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Використовуйте жест"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Використовувати жест функцій доступності"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Щоб використовувати цю функцію, натисніть кнопку спеціальних можливостей <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> унизу екрана.\n\nЩоб переключитися між функціями, натисніть і утримуйте кнопку спеціальних можливостей."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Щоб використовувати цю функцію, натисніть кнопку функцій доступності на екрані."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Щоб використовувати цю функцію, натисніть і утримуйте обидві клавіші гучності."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Щоб почати або припинити збільшення, тричі натисніть будь-де на екрані."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Щоб почати або припинити збільшення, тричі натисніть будь-де на екрані двома пальцями."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Щоб використовувати цю функцію, проведіть двома пальцями вверх від низу екрана.\n\nЩоб переключитися між функціями, проведіть двома пальцями знизу вверх і утримуйте їх на екрані."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Щоб використовувати цю функцію, проведіть трьома пальцями вверх від низу екрана.\n\nЩоб переключитися між функціями, проведіть трьома пальцями знизу вверх і утримуйте їх на екрані."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Щоб використовувати спеціальні можливості, проведіть двома пальцями вверх від низу екрана.\n\nЩоб переключитися між функціями, проведіть двома пальцями знизу вверх і утримуйте їх на екрані."</string>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Утримувати клавіші гучності"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"утримання клавіш гучності"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Утримуйте обидві клавіші гучності"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"Потрійний дотик екрана двома пальцями"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"потрійний дотик екрана двома пальцями"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"Швидко торкніться екрана {0,number,integer} рази двома пальцями"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Тричі торкнутися екрана"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"потрійний дотик"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Швидко натисніть екран стільки разів: {0,number,integer}. Призначена кнопка чи відповідний жест може сповільнити роботу пристрою."</string>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Використовувати вібрацію та вібровідгук"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Вібрація сигналу будильника"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Вібрація під час відтворення мультимедіа"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Вібрація клавіатури"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Вібрація під час дзвінків"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Вібрація під час сповіщень"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Реакція на дотик"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> – <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"Залишилося <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"Залишилося заряджати <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g>"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Час використання пристрою"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Час роботи у фоновому режимі"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Низький заряд акумулятора"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Дозволити додаткам працювати у фоновому режимі"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Обмежити фонову активність?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Якщо обмежити фонову активність, додаток може працювати неналежним чином"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Оскільки в додатку не передбачено економію заряду акумулятора, його не можна обмежити.\n\nУвімкніть оптимізацію споживання заряду."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Використання заряду"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Дозволити використання у фоновому режимі"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Увімкніть, щоб отримувати оновлення в реальному часі; вимкніть, щоб заощадити заряд акумулятора"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Без обмежень"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Оптимізовано"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Обмежено"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"після останнього повного заряджання"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Системні додатки"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Видалені додатки"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Інше"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Залишилося приблизно"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"До повного заряду"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Усього: менше ніж хвилина"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"У фоновому режимі: менше ніж хвилина"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Час використання пристрою: менше ніж хвилина"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Менше ніж хвилина"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Усього: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"У фоновому режимі: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Час використання пристрою: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Мобільний Інтернет і Wi-Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Автосинхроніз. особистих даних"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Автосинхроніз. робочих даних"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Автосинхроніз. приватних даних"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Змінити цикл..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"День місяця для скидання циклу використання даних:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"У цей період додатки не використовували дані."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"розмір тексту, великі букви, великий шрифт, великий текст, поганий зір, зробити текст більшим, збільшити шрифт, збільшення шрифту"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"інформація на заблокованому екрані, always on display"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, мітка, засіб зчитування"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"клавіатура, тактильний відгук, вібрація,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Гучність, вібросигнал і режим \"Не турбувати\""</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Гучність медіа"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Гучність трансляції"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Показувати весь вміст сповіщень"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Приховувати приватну інформацію до розблокування"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Узагалі не показувати сповіщення"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Що показувати на заблокованому екрані?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Заблокований екран"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Показувати весь вміст робочих сповіщень"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Ховати конфіденційний робочий вміст"</string>
@@ -3354,6 +3449,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Цей додаток не підтримує розширені налаштування"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Інші налаштування"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Інші налаштування доступні в цьому додатку"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Зменшення гучності сповіщень"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Застосовувати зменшення гучності для всіх сповіщень"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Поступово зменшувати гучність сповіщень, коли ви отримуєте багато сповіщень поспіль з одного додатка"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Застосовувати зменшення гучності для розмов"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Поступово зменшувати гучність сповіщень, коли ви отримуєте багато повідомлень з одного чату протягом короткого періоду"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Не застосовувати зменшення гучності сповіщень"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Не зменшувати гучність сповіщень незалежно від кількості послідовних сповіщень з одного додатка"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Вібрувати, коли розблоковано"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Дозволити вібрацію, лише коли екран розблоковано"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Застосувати до робочих профілів"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Застосувати налаштування зменшення гучності сповіщень з вашого особистого профілю до робочого профілю"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Допоміжні VR-сервіси"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Установлені додатки не запитували доступу для роботи в режимі допоміжних VR-сервісів."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Надати VR-сервісу доступ до сервісу <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Надати доступ до керування всіма файлами"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Дозволити цьому додатку переглядати, змінювати та видаляти всі файли на цьому пристрої або інших підключених носіях пам\'яті. Після надання дозволу додаток може отримувати доступ до файлів без вашого відома."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Мають доступ до всіх файлів"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Додатки з активацією голосом"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Дозволити активацію голосом"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"За допомогою активації голосом ви можете вмикати схвалені додатки, використовуючи голосові команди. Вбудована функція адаптивного розпізнавання забезпечує конфіденційність даних (вони доступні лише вам).\n\n"<a href="">"Докладніше про захищене адаптивне розпізнавання"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Сповіщення на весь екран"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Дозволити сповіщення на весь екран із цього додатка"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Цьому додатку буде дозволено показувати сповіщення на весь екран, коли пристрій заблоковано. Додатки можуть використовувати це налаштування, щоб показувати будильники, сповіщення про вхідні дзвінки або інші термінові сповіщення."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"Додаток <xliff:g id="APP_LABEL">%1$s</xliff:g> використав більше заряду акумулятора, ніж зазвичай, у фоновому режимі"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"Додаток <xliff:g id="APP_LABEL">%1$s</xliff:g> використав більше заряду акумулятора в активному режимі"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"Додаток <xliff:g id="APP_LABEL">%1$s</xliff:g> використав більше заряду акумулятора, ніж зазвичай, в активному режимі"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Інтенсивне використання заряду акумулятора"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Інтенсивне використання заряду акумулятора у фоновому режимі"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Інтенсивне використання заряду акумулятора в активному режимі"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"навігація в системі, навігація за допомогою двох кнопок, навігація за допомогою трьох кнопок, навігація за допомогою жестів, проведення пальцем по екрану"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Цифровий помічник"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Провести пальцем, щоб викликати цифрового помічника"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Щоб викликати цифрового помічника, проведіть пальцем угору від нижнього кута екрана."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Виклик помічника утриманням кнопки гол. екрана"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Щоб викликати цифрового помічника, натисніть і утримуйте кнопку головного екрана."</string>
     <string name="low_label" msgid="6525629096999711220">"Низька"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"дані, ключ доступу, пароль"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"автоматично, заповнення, автозаповнення, дані, ключ доступу, пароль"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Переконайтеся, що додаток надійний&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Функція Автозаповнення Google&gt;%1$s&lt;/xliff:g&gt; використовує інформацію на екрані, щоб визначати поля для автозаповнення."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&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_autofill_confirmation_message" msgid="843829628024668466">"&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_picker_title" msgid="8191267620665129205">"Сервіси керування паролями, ключами доступу й даними"</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>
@@ -4226,10 +4338,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <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="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>
@@ -4622,7 +4732,7 @@
     <string name="category_name_display_controls" msgid="7046581691184725216">"Інші елементи керування екраном"</string>
     <string name="category_name_general" msgid="7737273712848115886">"Загальні"</string>
     <string name="dark_theme_main_switch_title" msgid="4045147031947562280">"Використовувати темну тему"</string>
-    <string name="bluetooth_main_switch_title" msgid="8409835540311309632">"Використовувати Bluetooth"</string>
+    <string name="bluetooth_main_switch_title" msgid="8409835540311309632">"Увімкнути Bluetooth"</string>
     <string name="prevent_ringing_main_switch_title" msgid="4726252811262086643">"Використовувати функцію \"Не дзвонити\""</string>
     <string name="use_wifi_hotsopt_main_switch_title" msgid="3909731167290690539">"Використовувати точку доступу Wi‑Fi"</string>
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Використовувати закріплення додатка"</string>
@@ -4789,12 +4899,10 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Формат"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"Спробуйте вибрати новий формат для перегляду цього додатка, якщо він не відповідає параметрам вашого пристрою (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>)"</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Спробуйте вибрати новий формат для перегляду цього додатка, якщо він не відповідає параметрам вашого пристрою (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>). Деякі додатки неможливо оптимізувати під певні формати."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Спробуйте вибрати новий формат для перегляду додатка, якщо він не відповідає параметрам вашого пристрою (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>)"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Спробуйте вибрати новий формат для перегляду додатка, якщо він не відповідає параметрам вашого пристрою (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>). Деякі додатки неможливо оптимізувати під певні формати."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Рекомендовані додатки"</string>
-    <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Змін. додатки"</string>
+    <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Змінені додатки"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Формат додатка за умовчанням"</string>
     <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"На весь екран"</string>
     <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"На половину екрана"</string>
@@ -4862,4 +4970,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Сканування на предмет оманливих додатків"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Перевірка дій у додатках на предмет фішингу"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Використовувати сканування на предмет оманливих додатків"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Використовувати сканування на предмет оманливих робочих додатків"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-ur/arrays.xml b/res/values-ur/arrays.xml
index d469c60..21cde2b 100644
--- a/res/values-ur/arrays.xml
+++ b/res/values-ur/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"1 منٹ کے بعد"</item>
     <item msgid="1574040255478150028">"5 منٹ کے بعد"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 41ab106..1863619 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"‏بلوٹوتھ LE آڈیو غیر فعال کریں"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"‏اگر آلہ LE آڈیو ہارڈویئر کی صلاحیتوں کو سپورٹ کرتا ہے تو یہ بلوٹوتھ LE آڈیو خصوصیت کو غیر فعال کر دے گا۔"</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"‏آلے کی تفصیلات میں LE آڈیو ٹوگل کریں دکھائیں"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"‏بلوٹوتھ LE آڈیو اجازت یافتہ کی فہرست کو فعال کریں"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"‏بلوٹوتھ LE آڈیو اجازت یافتہ کی فہرست کی خصوصیت کو فعال کریں۔"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"‏بلوٹوتھ LE آڈیو کی اجازت یافتہ فہرست کو بائی پاس کریں"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"‏اجازت یافتہ کی فہرست کے معیار کو پورا کرنے کے لیے LE آڈیو پیریفرل کی تصدیق کے نہ ہونے کے باوجود LE آڈیو کو بطور ڈیفالٹ استعمال کریں۔"</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"میڈیا آلات"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"کال آلات"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"دیگر آلات"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"محفوظ کردہ آلات"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"اکاؤنٹ کے ساتھ وابستہ"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"پہلے اکاؤنٹ کے ساتھ استعمال کیا جاتا تھا"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"جوڑا بنانے کے لیے بلوٹوتھ آن ہو جائے گا"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"کنکشن کی ترجیحات"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"پہلے سے منسلک کردہ"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"ٹیکسٹ فیلڈز میں لکھیں"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"اسٹائلس کے بٹن کو دبانے کا عمل نظر انداز کریں"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"اسٹائلس"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"آڈیو کا اشتراک"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"آڈیو کا اشتراک کریں"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"کالز اور الارمز"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"تاریخ اور وقت"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"پراکسی"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"صاف کریں"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"لوڈ ہو رہی ہے…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"قریبی آلات کی اجازت والی ایپس منسلک آلات کی متعلقہ پوزیشن کا تعین کر سکتی ہیں۔"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ایپس اور سروسز کے لیے مقام تک رسائی آف ہے۔ آپ کے ایمرجنسی نمبر پر کال کرنے یا ٹیکسٹ پیغام بھیجنے پر بھی ایمرجنسی مدد فراہم کنندگان کو آپ کے آلے کا مقام بھیجا جا سکتا ہے۔"</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"مقام کی ترتیبات کے بارے میں مزید جانیں"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"اکاؤنٹس"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"سیکیورٹی"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"مرموز کاری اور اسناد"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"دفتری پروفائل"</string>
     <string name="private_space_title" msgid="7078627930195569767">"نجی اسپیس"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"ایپس کو نجی فولڈر میں چھپائیں"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"اسکرین لاک کا استعمال کرتے ہوئے غیر مقفل کریں"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"نجی اسپیس دکھائیں"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"مقفل ہونے پر چھپائیں"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"مقفل ہونے پر نجی اسپیس چھپائیں"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"دیگر لوگوں کو معلوم نہ ہوں کہ آپ کے آلے پر نجی اسپیس ہے، آپ اسے اپنی ایپس کی فہرست سے چھپا سکتے ہیں"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"پوشیدہ ہونے پر نجی اسپیس تک رسائی حاصل کریں"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"تلاش بار میں \'نجی اسپیس\' تلاش کریں"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"نجی اسپیس ٹائل پر تھپتھپائیں"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"اپنی نجی اسپیس کو غیر مقفل کریں"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"آف ہے"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"آن ہے"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"سسٹم"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"نجی اسپیس بنائیں"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"نجی اسپیس حذف کریں"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"نجی اسپیس کامیابی کے ساتھ بنائی گئی"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"نجی اسپیس پہلے سے موجود ہے"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"نجی اسپیس نہیں بنائی جا سکی"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"نجی اسپیس کامیابی کے ساتھ حذف ہو گئی"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"نجی اسپیس کو حذف نہیں کیا جا سکا"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"اسکرین لاک سیٹ کریں"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"نجی اسپیس استعمال کرنے کیلئے، اس آلہ پر سکرین لاک سیٹ کریں۔"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"اسکرین لاک سیٹ کریں"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"منسوخ کریں"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"منسوخ کریں"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"سیٹ اپ کریں"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"نجی اسپیس سیٹ اپ کریں"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"نجی ایپس کو اس محفوظ اسپیس میں چھپائیں جس تک صرف آپ رسائی حاصل کر سکتے ہیں"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"اس کے کام کرنے کا طریقہ"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"آپ اپنی ایپس کی فہرست کے نچلے حصے سے نجی اسپیس تک رسائی حاصل کر سکتے ہیں"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"نجی اسپیس میں موجود ایپس کو بذریعہ لاک محفوظ کیا جاتا ہے"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"نجی اسپیس میں موجود ایپس کے مقفل ہونے پر ان کی اطلاعات پوشیدہ ہو جاتی ہیں"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"نجی اسپیس کے مقفل ہونے پر، نجی اسپیس ایپس اجازتوں کے مینیجر، پرائیویسی ڈیش بورڈ اور دیگر ترتیبات میں ظاہر نہیں ہوں گی"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"نجی اسپیس سیٹ اپ کی جا رہی ہے…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"نجی اسپیس کو بذریعہ لاک محفوظ کیا جاتا ہے"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"نجی اسپیس ایپس کے استعمال کی معلومات اس وقت پوشیدہ ہوتی ہے جب یہ مقفل ہوتی ہے"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"اپنی ایپس کی فہرست سے نجی اسپیس تک رسائی حاصل کریں"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"نجی اسپیس سیٹ اپ نہیں کی جا سکی"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"ابھی دوبارہ کوشش کریں یا بعد میں واپس آئیں"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"دوبارہ کوشش کریں"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"غیر مقفل کرنے کے لیے اسکرین لاک استعمال کریں؟"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"آپ نجی اسپیس کو اسی طرح غیر مقفل کر سکتے ہیں جس طرح آپ اپنے آلے کو غیر مقفل کرتے ہیں یا ایک مختلف قفل کا انتخاب سکتے ہیں"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"اسکرین لاک استعمال کریں"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"نیا قفل منتخب کریں"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"سب کچھ تیار ہے!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"نجی اسپیس تک رسائی کے لیے، اپنی ہوم اسکرین کے نیچے سے اوپر کی طرف سوائپ کریں، پھر نیچے اسکرول کریں"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"ہو گیا"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"نجی اسپیس تک رسائی حاصل کرنے کے لیے نیچے اسکرول کریں"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"نجی اسپیس سیٹ اپ کرنے کے لیے سائن ان کریں"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"آپ <xliff:g id="COUNT">%d</xliff:g> فنگر پرنٹس شامل کر سکتے ہیں"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"آپ فنگر پرنٹس کی زیادہ سے زیادہ تعداد شامل کر چکے ہیں"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"مزید فنگر پرنٹس شامل نہیں کر سکتے"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"منسلک کریں"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"غیر منسلک کریں"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"جوڑا بنائیں اور مربوط کریں"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"بلوٹوتھ آن ہونے پر، آپ کا آلہ دیگر قریبی بلوٹوتھ آلات کے ساتھ مواصلت کر سکتا ہے۔"</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"بلوٹوتھ آن ہونے پر، آپ کا آلہ دیگر قریبی بلوٹوتھ آلات سے مواصلت کر سکتا ہے"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"بلوٹوتھ آن ہونے پر آپ کا آلہ دیگر قریبی بلوٹوتھ آلات کے ساتھ مواصلت کر سکتا ہے۔\n\nآلے کے تجربے کو بہتر بنانے کے لیے، ایپس اور سروسز بلوٹوتھ کے آف ہونے پر بھی کسی بھی وقت قریبی آلات کو اسکین کر سکتی ہیں۔ مثال کے طور، مقام پر مبنی خصوصیات اور سروسز کو بہتر بنانے کے لیے اس کا استعمال کیا جا سکتا ہے۔ آپ بلوٹوتھ اسکیننگ کی ترتیبات میں اسے تبدیل کر سکتے ہیں۔"</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"تبدیل کریں"</string>
     <string name="device_details_title" msgid="1155622417516195481">"آلہ کی تفصیلات"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"‏قابل ڈیبگ اپپس کے بائٹ کوڈ کی توثیق کے لیے ART کو اجازت دیں"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"ریفریش کی شرح دکھائیں"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"موجودہ ڈسپلے کی ریفریش کی شرح دکھائیں"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"‏HDR/SDR تناسب دکھائیں"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"‏موجودہ HDR/SDR تناسب دکھائیں"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"‏NFC کے لیے آلہ کو غیر مقفل کرنے کی ضرورت ہے"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1137,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"فولڈ پر ایپس کا استعمال جاری رکھیں"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"ہموار ڈسپلے"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"‏کچھ مواد کے لیے 60 سے <xliff:g id="ID_1">%1$s</xliff:g> Hz تک ریفریش کی شرح خودکار طور پر بڑھ جاتی ہے۔ بیٹری کے استعمال میں کرتی ہیں"</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"‏کچھ مواد کے لیے <xliff:g id="ID_1">%1$d</xliff:g> Hz تک ریفریش ریٹ خودکار طور پر بڑھ جاتی ہے۔ بیٹری کے استعمال میں کرتی اضافہ ہیں"</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"زیادہ سے زیادہ ریفریش کی شرح پر مجبور کریں"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"اعلی ترین ریفریش کرنے کی بہتر شرح کے ليے ٹچ کی کارکردگی اور اینیمیشن کوالٹی۔ بیٹری کے استعمال میں اضافہ کرتا ہے۔"</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"اسکرین پر توجہ"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"کمیونل ترتیبات"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APNs"</string>
     <string name="apn_edit" msgid="2003683641840248741">"رسائی کے مقام میں ترمیم کریں"</string>
+    <string name="apn_add" msgid="9069613192201630934">"رسائی پوائنٹ شامل کریں"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"سیٹ نہيں ہے"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"سیٹ نہیں ہے"</string>
     <string name="apn_name" msgid="6677695784108157953">"نام"</string>
@@ -1320,6 +1396,8 @@
     <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="network_type" msgid="748590707422733595">"نیٹ ورک کی قسم"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"غیر متعین"</string>
     <string name="mvno_type" msgid="4734654257494971247">"‏MVNO قسم"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"‏MVNO قدر"</string>
     <string name="menu_delete" msgid="9199740901584348273">"‏APN کو حذف کریں"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"کھولنے کے لیے ایکسیسبیلٹی بٹن کا استعمال کریں"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"کھولنے کے لیے والیوم کی کلیدوں کو دبائے رکھیں"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"کھولنے کے لیے اسکرین پر تین بار تھپتھپائیں"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"کھولنے کے لیے دو انگلیوں سے تین بار تھپتھپائیں"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"کھولنے کے لیے اشارہ استعمال کریں"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"ایکسیسبیلٹی اشارے کا استعمال کریں"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"یہ خصوصیت استعمال کرنے کیلئے، اپنی اسکرین کے سب سے نیچے<xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> ایکسیسبیلٹی بٹن پر تھپتھپائیں۔\n\nخصوصیات کے درمیان سوئچ کرنے کے لیے ایکسیسبیلٹی بٹن کو ٹچ کریں اور دبائے رکھیں۔"</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"اس خصوصیت کا استعمال کرنے کے لیے، اپنی اسکرین پر ایکسیسبیلٹی بٹن پر تھپتھپائیں۔"</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"یہ خصوصیت استعمال کرنے کیلئے، والیوم کی دونوں کلیدوں کو دبائے رکھیں۔"</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"میگنیفکیشن شروع یا بند کرنے کے لیے، اپنی اسکرین پر کہیں بھی تین بار تھپتھپائیں۔"</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"میگنیفکیشن شروع یا اسٹاپ کرنے کے لیے، اپنی اسکرین پر کہیں بھی دو انگلیوں سے تین بار تھپتھپائیں۔"</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"یہ خصوصیت استعمال کرنے کیلئے، 2 انگلیوں سے اسکرین کے نیچے سے اوپر کی طرف سوائپ کریں۔\n\nخصوصیات کے درمیان سوئچ کرنے کے لیے، 2 انگلیوں سے اوپر کی طرف سوائپ کریں اور دبائے رکھیں۔"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"یہ خصوصیت استعمال کرنے کیلئے، 3 انگلیوں سے اسکرین کے نیچے سے اوپر کی طرف سوائپ کریں۔\n\nخصوصیات کے درمیان سوئچ کرنے کے لیے، 3 انگلیوں سے اوپر کی طرف سوائپ کریں اور دبائے رکھیں۔"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"ایکسیسبیلٹی خصوصیت استعمال کرنے کیلئے، 2 انگلیوں سے اسکرین کے نیچے سے اوپر کی طرف سوائپ کریں۔\n\nخصوصیات کے درمیان سوئچ کرنے کے لیے، 2 انگلیوں سے اوپر کی طرف سوائپ کریں اور دبائے رکھیں۔"</string>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"والیوم کی کلیدوں کو دبائیں رکھیں"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"والیوم کی کلیدوں کو دبائے رکھیں"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"والیوم کی دونوں کلیدوں کو دبائے رکھیں"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"دو انگلیوں سے اسکرین پر تین بار تھپتھپائیں"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"دو انگلیوں سے اسکرین پر تین بار تھپتھپائیں"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"‏دو انگلیوں سے اسکرین پر تیزی سے {0,number,integer} بار تھپتھپائیں"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"اسکرین پر تین بار تھپتھپائیں"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"اسکرین پر تین بار تھپتھپائیں"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"‏اسکرین پر فوری طور پر {‎0,number,integer} بار تھپتھپائیں۔ اس شارٹ کٹ سے آپ کا آلہ سست ہو سکتا ہے"</string>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"وائبریشن اور ہیپٹکس استعمال کریں"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"الارم وائبریشن"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"میڈیا وائبریشن"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"کی بورڈ وائبریشن"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"رنگ وائبریشن"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"اطلاع وائبریشن"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"ٹچ تاثرات"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> باقی"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> چارج کرنے کیلئے"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"اسکرین کا وقت"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"پس منظر کا وقت"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"بیٹری کم ہے"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"ایپ کو پس منظر میں چلنے کی اجازت دیں"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"پس منظر کی سرگرمی کو محدود کریں؟"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"اگر آپ کسی ایپ کی پس منظر کی سرگرمی کو محدود کرتے ہیں تو یہ غلط برتاؤ کر سکتی ہے"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"چونکہ یہ ایپ بیٹری کی کارکردگی کو بہتر بنانے کیلئے نہیں ہے، لہذا آپ اسے محدود نہیں کر سکتے ہیں۔\n\nایپ کو محدود کرنے کیلئے، پہلے بیٹری کی کارکردگی کو بہتر بنانے کو آن کریں۔"</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"بیٹری کے استعمال کا نظم کریں"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"پس منظر کے استعمال کی اجازت دیں"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"ریئل ٹائم اپ ڈیٹس کے لیے فعال کریں، بیٹری بچانے کے لیے غیر فعال کریں"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"(پابندی کے بغیر)"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"بہتر کردہ"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"محدود کردہ"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"پچھلے مکمل چارج کے بعد سے"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"سسٹم ایپس"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"غیر انسٹال کردہ ایپس"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"دیگر"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"باقی تخمینی وقت"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"پوری طرح چارج ہونے تک"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"کُل: ایک منٹ سے کم"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"پس منظر: ایک منٹ سے کم"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"اسکرین کا وقت: ایک منٹ سے کم"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"ایک منٹ سے کم"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"کُل: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"پس منظر: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"اسکرین کا وقت: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"‏موبائل ڈیٹا اور Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"ذاتی ڈیٹا آٹو سنک کریں"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"دفتری ڈیٹا آٹو سنک کریں"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"نجی ڈیٹا کو خود بخود سینک کریں"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"سائیکل تبدیل کریں…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"ڈیٹا کے استعمال کو دوبارہ ترتیب دینے کیلئے مہینے کا دن:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"اس وقفہ میں کسی ایپ نے ڈیٹا استعمال نہيں کیا۔"</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"ٹیکسٹ کا سائز، بڑا پرنٹ، بڑا فونٹ، بڑا ٹیکسٹ، کم وژن، ٹیکسٹ کو بڑا کرنا، فونٹ کو بڑا کرنے والا ٹول، فونٹ بڑا کرنا"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"‏ہمیشہ آن ایمبیئنٹ ڈسپلے، AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"‏nfc، ٹیگ، ریڈر"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"کی بورڈ، ہیپٹکس، وائبریٹ،"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"والیوم، ارتعاش، ڈسٹرب نہ کریں"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"میڈیا والیوم"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"والیوم کاسٹ کریں"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"سبھی اطلاعی مواد دکھائیں"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"غیر مقفل ہونے پر صرف حساس مواد دکھائیں"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"اطلاعات بالکل بھی نہ دکھائیں"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"آپ کس طرح مقفل اسکرین کو ڈسپلے کرنا چاہتے ہیں؟"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"مقفل اسکرین"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"تمام دفتری اطلاعی مواد دکھائیں"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"دفتر کا حساس مواد چھپائیں"</string>
@@ -3354,6 +3448,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"یہ ایپ بہتر کردہ ترتیبات کو سپورٹ نہیں کرتی ہے"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"مزید ترتیبات"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"اس ایپ کے اندر مزید ترتیبات دستیاب ہیں"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"نوٹیفکیشن کول ڈاؤن"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"تمام اطلاعات پر کولڈاؤن کا اطلاق کریں"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"جب آپ کو ایک ہی ایپ سے پے در پے کئی اطلاعات موصول ہوتی ہیں تو نوٹیفکیشن والیوم کو بتدریج کم کریں"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"گفتگوؤں پر کولڈاؤن کا اطلاق کریں"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"جب آپ کو ایک ہی چیٹ سے تھوڑے ہی عرصے میں بہت سے پیغامات موصول ہوتے ہیں تو نوٹیفکیشن والیوم کو بتدریج کم کریں"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"نوٹیفکیشن کولڈاؤن کا استعمال نہ کریں"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"اس سے قطع نظر کہ ایک ہی ایپ سے پے درپے اطلاعات کی مقدار کتنی بھی ہو، نوٹیفکیشن والیوم کو کبھی کم نہ کریں"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"غیر مقفل ہونے پر وائبریٹ کریں"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"صرف اسکرین کے غیر مقفل ہونے پر وائبریٹ کریں"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"دفتری پروفائلز پر لاگو کریں"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"نوٹیفکیشن کولڈاؤن کی ترتیبات کو اپنی ذاتی پروفائل سے اپنی دفتری پروفائل پر لاگو کریں"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"‏VR مددگار سروسز"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"‏کسی انسٹال کردہ ایپ نے VR مددگار سروسز کے طور پر چلائے جانے کی درخواست نہیں کی ہے۔"</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"‏<xliff:g id="SERVICE">%1$s</xliff:g> کیلئے VR سروس کی رسائی کی اجازت دیں؟"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"سبھی فائلز کا نظم کرنے کیلئے رسائی کی اجازت دیں"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"اس ایپ کو اس آلہ یا کسی منسلک اسٹوریج والیوم کی تمام فائلز کو پڑھنے، اس میں ترمیم کرنے اور حذف کرنے کی اجازت دیں۔ اگر اجازت دی گئی تو ایپ آپ کو بتائے بغیر فائلز تک رسائی حاصل کر سکتی ہے۔"</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"سبھی فائلز تک رسائی حاصل کی جا سکتی ہے"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"آواز کی فعالیت کی ایپس"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"آواز کی فعالیت کی اجازت دیں"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"آواز کی فعالیت صوتی کمانڈ کا استعمال کر کے منظور شدہ ایپس، ہینڈز فری کو آن کرتی ہے۔ بلٹ ان اڈاپٹیو سینسنگ یقینی بناتی ہے کہ ڈیٹا صرف آپ کے لیے نجی رہے۔\n\n"<a href="">"محفوظ اڈاپٹیو سینسنگ کے بارے میں مزید"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"پوری اسکرین کی اطلاعات"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"اس ایپ سے پوری اسکرین کی اطلاعات کی اجازت دیں"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"اس ایپ کو وہ اطلاعات دکھانے کی اجازت دیں جو آلے کے مقفل ہونے پر پوری اسکرین پر ظاہر ہوتی ہیں۔ ایپس ان کا استعمال الارمز، اِن کمنگ کالز یا دیگر فوری اطلاعات کو نمایاں کرنے کے لیے کر سکتی ہیں۔"</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> نے پس منظر میں رہتے ہوئے معمول سے زیادہ بیٹری استعمال کی"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> نے پیش منظر میں رہتے ہوئے زیادہ بیٹری استعمال کی"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> نے پیش منظر میں رہتے ہوئے معمول سے زیادہ بیٹری استعمال کی"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"بیٹری کا زیادہ استعمال"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"پس منظر میں بیٹری کا زیادہ استعمال"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"پیش منظر میں بیٹری کا زیادہ استعمال"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"سسٹم نیویگیشن، 2 بٹن والی نیویگیشن، 3 بٹن والی نیویگیشن، اشاروں والی نیویگیشن، سوائپ"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"ڈیجیٹل اسسٹنٹ"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"اسسٹنٹ کو طلب کرنے کے لیے سوائپ کریں"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"ڈیجیٹل اسسٹنٹ ایپ کو طلب کرنے کے لیے نچلے کونے سے اوپر سوائپ کریں۔"</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"ڈیجیٹل اسسٹنٹ ایپ کو طلب کرنے کے لیے نچلے کونے سے اوپر سوائپ کریں"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"اسسٹنٹ کے لیے ہوم بٹن کو دبائے رکھیں"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"ڈیجیٹل اسسٹنٹ ایپ کو شروع کرنے کے لیے ہوم بٹن کو چھوئیں اور دبائے رکھیں۔"</string>
     <string name="low_label" msgid="6525629096999711220">"کم"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"ڈیٹا، پاس کی، پاس ورڈ"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"آٹو، فل، آٹو فل، ڈیٹا، پاس کی، پاس ورڈ"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"‏&lt;b&gt;یہ یقینی بنائیں کہ آپ کو اس ایپ پر اعتماد ہے&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;‫%1$s&lt;/xliff:g&gt; آٹو فل کی جا سکنے والی چیزوں کی تعیین کیلئے آپ کی اسکرین پر موجود چیزوں کو استعمال کرتا ہے۔"</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"‏&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_autofill_confirmation_message" msgid="843829628024668466">"‏‎&lt;b&gt;Use &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_picker_title" msgid="8191267620665129205">"پاس ورڈز، پاس کیز اور ڈیٹا سروسز"</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>
@@ -4856,4 +4966,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"جعلسازی کی ایپس کو اسکین کیا جا رہا ہے"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"فریب دہی کے لیے ایپ کی سرگرمی چیک کریں"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"مغالطہ آمیز ایپس کے لیے اسکین کرنے کی خصوصیت استعمال کریں"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"مغالطہ آمیز دفتری ایپس کے لیے اسکین کرنے کی خصوصیت استعمال کریں"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-uz/arrays.xml b/res/values-uz/arrays.xml
index 1038caa..0e63347 100644
--- a/res/values-uz/arrays.xml
+++ b/res/values-uz/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"1 daqiqadan keyin"</item>
     <item msgid="1574040255478150028">"5 daqiqadan keyin"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 1138897..72aa983 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Bluetooth LE Audioni faolsizlantirish"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Qurilmada LE audio apparatli taʼminoti boʻlsa, Bluetooth LE audio funksiyasi faolsizlantiriladi."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Qurilma axborotida LE audio tugmasi chiqsin"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Bluetooth LE Audio ruxsat roʻyxatini yoqing"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Bluetooth LE Audio ruxsat roʻyxati funksiyasini yoqing"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Bluetooth LE Audio ruxsat roʻyxatini chetlash"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"LE Audio aloqasidan birlamchi holatda foydalanish, hatto qurilmaning ruxsat olishga muvofiqligi tekshirilmagan boʻlsa ham."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Media qurilmalar"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Chaqiruv qurilmalari"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Boshqa qurilmalar"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Saqlangan qurilmalar"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Hisob bilan aloqador"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Hisobda avval ishlatilgan"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Juftlash uchun Bluetooth yoqiladi"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Ulanish parametrlari"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Avval ulangan qurilmalar"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Matn maydonlarida yozish"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Stilus bilan bosilgan barcha tugmalarni eʼtiborsiz qoldirish"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Stilus"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Audio ulashuvi"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Audioni ulashish"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Chaqiruvlar va signallar"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Sana va vaqt"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proksi-server"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Tozalash"</string>
@@ -273,8 +287,7 @@
     <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_location_off" msgid="8568995909147566720">"Ilovalar va xizmatlar uchun joylashuv axborotiga ruxsat yoqilmagan. Favqulodda holatlar raqamiga murojaat qilganingizda, qurilmangiz favqulodda xizmatlarga joylashuvingizni yuborishi mumkin."</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Joylashuv sozlamalari haqida batafsil"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Hisoblar"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Xavfsizlik"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Shifrlash va hisobga oid axborot"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Ish profili"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Maxfiy joy"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Maxfiy jilddagi ilovalarni yashirish"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Ekran qulfi bilan qulfni ochish"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Maxfiy joyni koʻrsatish"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Qulflanganida berkitilsin"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Qulflanganida Maxfiy joyni berkitish"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Qurilmada Xavfsiz joy borligini boshqalar bilmasligi uchun ilovalar roʻyxatidan yashirish mumkin"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Berkitilganida Maxfiy joyga kirish"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Qidiruv satrida \"Maxfiy joy\"ni qidiring"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Maxfiy joy katakchaisni bosing"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Maxfiiy joyni ochish"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Oʻchiq"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Yoniq"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Tizim"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Maxfiy joy yaratish"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Maxfiy joyni oʻchirish"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Maxfiy joy yaratildi"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Maxfiy joy allaqachon mavjud"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Maxfiy joy yaratilmadi"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Maxfiy joy oʻchirildi"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Maxfiy joy oʻchmadi"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Ekran qulfini sozlash"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Maxfiy joy ishlatish uchun bu qurilma ekran qulfini sozlang"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Ekran qulfini sozlash"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Bekor qilish"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Bekor qilish"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Sozlash"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Maxfiy joyni sozlash"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Shaxsiy ilovalarni faqat siz kira oladigan xavfsiz joyda yashiring"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Bu qanday ishlaydi"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Ilovalar roʻyxatining pastki qismidan Maxfiy joyga kirish mumkin"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Maxfiy joydagi ilovalar qulf bilan himoyalangan"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Qulflanganida Maxfiy joydagi ilovalardan bildirishnomalar berkitiladi"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Maxfiy joy qulflanganida Maxfiy joy ilovalari ruxsat menejeri, maxfiylik boshqaruv paneli va boshqa sozlamalarda koʻrinmaydi."</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Maxfiy joy sozlanmoqda…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Maxfiy joy qulf bilan himoyalangan"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Maxfiy joy ilovalari uchun foydalanish axboroti qulflanganida berkitiladi"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Ilovalar roʻyxatidan shaxsiy joy oching"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Maxfiy joy sozlanmadi"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Hozir qaytadan urining yoki keyinroq qaytadan keling"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Qayta urinish"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Ochish uchun ekran qulfidan foydalanilsinmi?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Maxfiy joyni qurilmangizniki bilan ayni usulda qulfdan chiqarishingiz mumkin yoki boshqa qulf tanlang"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Ekran qulfi"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Yangi qulf tanlash"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Hammasi tayyor!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Maxfiy joy ochish uchun bosh ekranning quyi qismidan yuqoriga suring, keyin pastga aylantiring"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Tayyor"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Maxfiy joyga kirish uchun pastga aylantiring"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Maxfiy joyni sozlash uchun hisobingizga kiring"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Ko’pi bilan <xliff:g id="COUNT">%d</xliff:g> ta barmoq izi qo’shish mumkin"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Barmoq izlari maksimal miqdorda qo‘shildi"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Boshqa barmoq izini qo‘shib bo‘lmaydi"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Ulanish"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Uzish"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Juftlash va ulash"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Yaqin-atrofdagi Bluetooth qurilmalarga ulanish uchun Bluetooth aloqasini yoqing."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Yaqin-atrofdagi Bluetooth qurilmalarga ulanish uchun Bluetooth aloqasini yoqing"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Yaqin-atrofdagi Bluetooth qurilmalarga ulanish uchun Bluetooth aloqasini yoqing.\n\nQurilmadan foydalanishni yaxshilash uchun istalgan vaqt ilova va xizmatlar hatto Bluetooth oʻchiq boʻlsa ham Wi-Fi tarmoqlarni qidirishi mumkin. Bundan joylashuv axborotiga asoslangan funksiya va xizmatlarni yaxshilashda foydalanish mumkin. Bu funksiyani Bluetooth qidiruv sozlamalari orqali oʻzgartirish mumkin."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Oʻzgartirish"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Qurilma tafsilotlari"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"ART taʼminotiga debug imkoniyatli ilova bayt-kodlarini tekshirishga ruxsat berish"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Yangilash chastotasi"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Joriy yangilash chastotasini chiqarish"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"HDR/SDR nisbatini koʻrsatish"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Joriy HDR/SDR nisbatini koʻrsatish"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"NFC ishlatish uchun qurilma qulfini ochishni talab qilish"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1137,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Ilovalarni buklanganda davom ettirish"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Ayrim kontent uchun ekranning yangilanish chastotasi 60-<xliff:g id="ID_1">%1$s</xliff:g> Gs orasida almashib turadi. Batareya tezroq sarflanadi."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Ayrim kontent uchun ekranning yangilanish chastotasi <xliff:g id="ID_1">%1$d</xliff:g> Hz gacha almashib turadi. Batareya tezroq sarflanadi."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Eng yuqori majburiy yangilanish chastotasi"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Ekran sensorining javob qaytarishi va animatsiyalar sifati uchun eng yuqori yangilanish chastotasi Batareya tezroq sarflanadi."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Moslashuvchan kutish rejimi"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Umumiy sozlamalar"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Ulanish nuqtasini tahrirlash"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Ulanish nuqtasini kiritish"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Kiritilmagan"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Berilmagan"</string>
     <string name="apn_name" msgid="6677695784108157953">"Nomi"</string>
@@ -1320,6 +1396,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN yoniq"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN o‘chiq"</string>
     <string name="bearer" msgid="3231443241639159358">"Kanal"</string>
+    <string name="network_type" msgid="748590707422733595">"Tarmoq turi"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Belgilanmagan"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO turi"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO qiymati"</string>
     <string name="menu_delete" msgid="9199740901584348273">"APNni o‘chirish"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Qulayliklar tugmasi bilan ochish"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Ochish uchun ikkala tovush tugmasini bosib turing."</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Ochish uchun ekranga uch marta bosing"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Ochish uchun ekranni ikki barmoq bilan uch marta tegining"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Imo-ishoralardan foydalaning"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Qulaylik ishorasidan foydalanish"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Bu funksiyadan foydalanish uchun ekraningiz pastidagi <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> maxsus imkoniyatlar tugmasi ustiga bosing.\n\nFunksiyalarni almashtirish uchun maxsus imkoniyatlar tugmasini bosib turing."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Bu funksiyadan foydalanish uchun ekrandagi Qulayliklar tugmasini bosing."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Bu funksiyadan foydalanish uchun ikkala tovush tugmasini bosib turing."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Kattalashtirishni boshlash yoki toʻxtatish uchun ekranning istalgan joyiga uch marta bosing."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Kattalashtirishni boshlash yoki toʻxtatish uchun ekranning istalgan joyiga ikki barmoq bilan uch marta bosing."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Bu funksiyadan foydalanish uchun 2 ta barmoq bilan ekran pastidan tepaga suring.\n\nFunksiyalarni almashtirish uchun 2 ta barmoq bilan tepaga suring va ushlab turing."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Bu funksiyadan foydalanish uchun 3 ta barmoq bilan ekran pastidan tepaga suring.\n\nFunksiyalarni almashtirish uchun 3 ta barmoq bilan tepaga suring va ushlab turing."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Maxsus imkoniyatlardan foydalanish uchun 2 ta barmoq bilan ekran pastidan tepaga suring.\n\nFunksiyalarni almashtirish uchun 2 ta barmoq bilan tepaga suring va ushlab turing."</string>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Tovush tugmalarini bosib turish"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"tovush tugmalarini bosib turish"</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_triple_tap" msgid="6687765191490040899">"Ekranni ikki barmoq bilan uch marta teginish"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"ekranni ikki barmoq bilan uch marta teginish"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"Ekranni ikki barmoq bilan {0,number,integer} marta tez-tez tegining"</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="6863958573135995927">"ekran ustiga uch marta bosish"</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>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Tebranish va teginish effektidan foydalanish"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Bildirishnomalar kelganda tebranish"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Media tebranish"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Klaviatura tebranishi"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Jiringlaganda tebranish"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Bildirishnomada tebranish"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Teginganda tebranish"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"Batareya quvvati <xliff:g id="REMAIN">%1$s</xliff:g>dan so‘ng tugaydi"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"Batareya quvvati <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g>dan so‘ng to‘ladi"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Foydalanish vaqti"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Fondagi faollik vaqti"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Batareya quvvati kam"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Ilovaga fonda ishlashiga ruxsat berish"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Fonda ishlashi cheklansinmi?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Bu ilovaning ishlashiga ta’sir ko‘rsatishi mumkin"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Bu ilova batareya sarfini optimallashtirish uchun sozlanmagani sababli uni cheklash imkonsiz.\n\nIlovani cheklash uchun avval batareya sarfini optimallashtirish funksiyasini yoqing."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Batareya sarfini boshqarish"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Fonda ishlashiga ruxsat berish"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Real vaqtda yangilanishini yoqish (batareya tejalishi oʻchiriladi)"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Cheklanmagan"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Optimallangan"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Cheklangan"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"toʻliq quvvat olganidan buyon"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Tizim ilovalari"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Oʻchirilgan ilovalar"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Boshqalar"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Taxminiy qolgan vaqt"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Quvvati to‘lishigacha qolgan vaqt"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Jami: bir daqiqadan kam"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Orqa fon rejimida: bir daqiqadan kam"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Qurilmadan foydalanish vaqti: bir daqiqadan kam"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Bir daqiqadan kam"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Jami: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Orqa fon rejimi: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Qurilmadan foydalanish vaqti: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Mobil internet va Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Avtomatik sinxronlash (shaxsiy)"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Avtomatik sinxronlash (ish)"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Yopiq maʼlumotlarni avto-sinxronlash"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"O‘zgartirish…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Oyning qaysi kunida trafik sarfi davri yangilansin:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Ushbu vaqt oralig‘ida hech qanday ilova trafik sarflamadi."</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"matn oʻlchami, katta bosma, katta yozuv, katta matn, zaif koʻrish, matnni kattalashtirish, yozuvni kattalashtirish, katta yozuv"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"doim yoniq ambient display, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, teg, rider"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"klaviatura, sezish, tebranish,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Tovush balandligi, tebranish, Bezovta qilinmasin rejimi"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Multimedia tovushi"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Translatsiya tovushi balandligi"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Bildirishnomalar butun chiqsin"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Maxfiy axborotlar faqat qulf ochilganda chiqsin"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Bildirishnomalar chiqmasin"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Ekran qulfida nimalar chiqsin?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Ekran qulfi"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Ish bildirishnomalarini toʻliq chiqarish"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Ish profili ma’lumotlari berkitilsin"</string>
@@ -3354,6 +3448,17 @@
     <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="6121016426991791557">"Bildirishnomalarni cheklash"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Barcha bildirishnomalarga cheklov muddatini belgilash"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Bitta ilovadan ketma-ket koʻplab bildirishnomalar olinganda bildirishnomalar tovushi asta-sekin pasaytiriladi"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Suhbatlarga cheklov muddatini belgilash"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Bitta chatdan qisqa vaqt ichida ketma-ket koʻplab xabarlar olinganda bildirishnomalar tovushi asta-sekin pasaytiriladi"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Bildirishnomalar cheklanmasin"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Bitta ilovadan kelayotgan bildirishnomalar sonidan qatʼi nazar, hech qachon bildirishnomalar cheklanmasin"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Ochilganda tebransin"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Ekran qulfi ochilgandagina tebransin"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Ish profillariga tatbiq qilinsin"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Bildirishnomalarni cheklash sozlamalari shaxsiy profildan ish profiliga tatbiq qilinsin"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Yordamchi VR xizmatlar"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Hech qanday ilova yordamchi VR xizmatlar sifatida ishga tushirilishiga ruxsat so‘ramagan."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"VR xizmatiga “<xliff:g id="SERVICE">%1$s</xliff:g>” xizmatidan foydalanishga ruxsat berilsinmi?"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Barcha fayllarni boshqarishga ruxsat"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Bu ilovaga mazkur qurilmadagi yoki ulangan xotira qurilmalaridagi barcha fayllarni oʻqish, tahrirlash va oʻchirib tashlash uchun ruxsat beriladi. Ruxsat berilgandan keyin ilova fayllardan sizning xabaringizsiz foydalana oladi."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Barcha fayllarga ruxsati bor ilova"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Ovoz bilan ishga tushadigan ilovalar"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Ovoz bilan ishga tushirishga ruxsat"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Ovozli buyruqlar yordamida tanlangan ilovalarni ishga tushirishingiz mumkin. Ichki moslashuvchan sensor tufayli maʼlumotlaringizga faqat siz kirishingiz mumkin boʻladi.\n\n"<a href="">"Himoyali moslashuvchan sensor haqida batafsil"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Butun ekranda bildirishnomalar"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Bu ilova bildirishnomalarini butun ekranda chiqishiga ruxsat berish"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Bu ilovaga qurilma qulflanganida butun ekranni egallaydigan bildirishnoma chiqarishga ruxsat berish. Ilovalar uning yordamida signallar, kiruvchi chaqiruv yoki boshqa shoshilinch bildirishnomalarni ajratib koʻrsatishi mumkin."</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> orqa fonda odatdagidan koʻproq batareya sarfladi"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> faol rejimda koʻproq batareya sarfladi"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> faol rejimda odatdagidan koʻproq batareya sarfladi"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Yuqori batareya sarfi"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Orqa fonda yuqori batareya sarfi"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Faol rejimda yuqori batareya sarfi"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"tizim navigatsiyasi, 2 tugmali navigatsiya, 3 tugmali navigatsiya, ishorali navigatsiya"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Raqamli assistent"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Assistentni chaqirish uchun suring"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Raqamli assistent ilovasini chaqirish uchun pastki burchakdan tepaga qaratib suring."</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Raqamli assistent ilovasini chaqirish uchun pastki burchakdan tepaga qaratib suring"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Assistentni chaqirish uchun Asosiy tugmani bosib turing"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Raqamli assistent ilovasini chaqirish uchun Asosiy tugmani bosib turing."</string>
     <string name="low_label" msgid="6525629096999711220">"Past"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"maʼlumotlar, kod, parol"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"avtomatik, kiritish, avtomatik kiritish, maʼlumotlar, kalit, parol"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Bu ilova ishonchli ekanini tekshiring&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; ekraningizda nimani avtomatik kiritish kerakligini aniqlaydi."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;&lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; ishlatilsinmi?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; ekrandagi avtomatik kiritish mumkin axborotlarni aniqlaydi. Endi yangi parollar, kalitlar va boshqa maʼlumotlar saqlanadi."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;&lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; ishlatilsinmi?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Endi yangi parollar, kalitlar va boshqa axborotlar shu yerda saqlanadi. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; ekrandagi elementlar yordamida avtomatik kiritish mumkin narsalarni aniqlashi mumkin."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Parollar, kalitlar va maʼlumot xizmatlari"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$s faolsizlantirilsinmi?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Bu xizmat faolsizlantirilsinmi?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Hisobga kirganingizda saqlangan parollar, kalitlar, toʻlov usullari va boshqa maʼlumotlar avtomatik kiritilmaydi. Saqlangan axborotdan foydalanish uchun parol, kalit yoki axborot xizmatini tanlang."</string>
@@ -4785,10 +4895,8 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Tomonlar nisbati"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"Bu ilova <xliff:g id="DEVICE_NAME">%1$s</xliff:g> uchun moslanmagan, shu sababli yangi tomonlar nisbatini sinang"</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Bu ilova <xliff:g id="DEVICE_NAME">%1$s</xliff:g> uchun moslanmagan, shu sababli yangi tomonlar nisbatini sinang. Ayrim ilovalar muayyan tomonlar nisbatiga optimallashtirilmagan boʻlishi mumkin."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Ilova <xliff:g id="DEVICE_NAME">%1$s</xliff:g> uchun moslanmagan, shu sababli yangi tomonlar nisbatini sinang"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Ilova <xliff:g id="DEVICE_NAME">%1$s</xliff:g> uchun moslanmagan, shu sababli yangi tomonlar nisbatini sinang. Ayrim ilovalar muayyan tomonlar nisbatiga optimallashtirilmagan boʻlishi mumkin."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Tavsiya etilgan ilovalar"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Oʻzgartirilgan"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Ilova standarti"</string>
@@ -4858,4 +4966,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Aldovchi ilovalar uchun tekshirish"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Fishing uchun ilovadagi faoliyatni tekshirish"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Aldovchi ilovalar uchun tekshiring"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Ishga oid aldovchi ilovalar uchun tekshiring"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-vi/arrays.xml b/res/values-vi/arrays.xml
index afbf7b3..cd249d3 100644
--- a/res/values-vi/arrays.xml
+++ b/res/values-vi/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Sau 1 phút"</item>
     <item msgid="1574040255478150028">"Sau 5 phút"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 4f8023c..fa53312 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Tắt âm thanh năng lượng thấp qua Bluetooth"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Tắt tính năng âm thanh năng lượng thấp qua Bluetooth nếu thiết bị hỗ trợ chức năng phần cứng âm thanh năng lượng thấp."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Hiện nút bật/tắt Âm thanh năng lượng thấp"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Bật danh sách cho phép Bluetooth Âm thanh năng lượng thấp"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Bật tính năng danh sách cho phép Bluetooth Âm thanh năng lượng thấp."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Bỏ qua danh sách cho phép đối với tính năng Bluetooth Âm thanh năng lượng thấp"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Sử dụng Âm thanh năng lượng thấp theo mặc định, ngay cả khi chưa xác minh được rằng thiết bị ngoại vi Âm thanh năng lượng thấp đáp ứng tiêu chí của danh sách cho phép."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Thiết bị truyền thông"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Thiết bị gọi điện"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Thiết bị khác"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Thiết bị đã lưu"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Được liên kết với tài khoản"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Đã dùng trước đây với tài khoản"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Bluetooth sẽ bật để ghép nối"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Lựa chọn ưu tiên về kết nối"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Đã kết nối trước đây"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Viết vào trường văn bản"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Bỏ qua tất cả các lần nhấn nút bằng bút cảm ứng"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Bút cảm ứng"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Chia sẻ âm thanh"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Chia sẻ âm thanh"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Cuộc gọi và chuông báo"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Ngày và giờ"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Xóa"</string>
@@ -273,8 +287,7 @@
     <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_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ững người ứ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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <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="account_settings_title" msgid="9138880127246241885">"Tài khoản"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Bảo mật"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Mã hóa và thông tin xác thực"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Hồ sơ công việc"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Không gian riêng tư"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Ẩn ứng dụng trong thư mục riêng tư"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Mở khoá bằng phương thức khoá màn hình"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Hiện Không gian riêng tư"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Ẩn khi khoá"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Ẩn Không gian riêng tư khi khoá"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Ẩn Không gian riêng tư khỏi các ứng dụng để không ai biết"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Truy cập Không gian riêng tư khi tính năng này đang ẩn"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Tìm kiếm \"Không gian riêng tư\" trong thanh tìm kiếm"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Nhấn vào ô Không gian riêng tư"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Mở khoá Không gian riêng tư"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Tắt"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Bật"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Hệ thống"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Tạo Không gian riêng tư"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Xoá Không gian riêng tư"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Đã tạo xong Không gian riêng tư"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Đã có Không gian riêng tư"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Không tạo được Không gian riêng tư"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Đã xoá xong Không gian riêng tư"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Không xoá được Không gian riêng tư"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Đặt phương thức khoá màn hình"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Để dùng Không gian riêng tư, hãy đặt một phương thức khoá màn hình trên thiết bị này."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Đặt phương thức khoá màn hình"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Huỷ"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Huỷ"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Thiết lập"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Thiết lập Không gian riêng tư"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Ẩn các ứng dụng riêng tư trong một không gian an toàn chỉ có bạn mới truy cập được"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Cách thức hoạt động"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Bạn có thể truy cập Không gian riêng tư từ cuối danh sách ứng dụng"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Ứng dụng trong Không gian riêng tư được bảo vệ bởi cơ chế khoá"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Thông báo của các ứng dụng trong Không gian riêng tư sẽ ẩn khi tính năng này đang khoá"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Các ứng dụng trong Không gian riêng tư sẽ không xuất hiện trong Trình quản lý quyền, Bảng tổng quan về quyền riêng tư, cũng như các chế độ cài đặt khác khi Không gian riêng tư đang khoá"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Đang thiết lập Không gian riêng tư…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"Không gian riêng tư được bảo vệ bởi cơ chế khoá"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Thông tin về mức độ sử dụng của các ứng dụng trong Không gian riêng tư sẽ ẩn khi tính năng này đang khoá"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Truy cập Không gian riêng tư từ danh sách ứng dụng"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Không thiết lập được Không gian riêng tư"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Thử lại ngay bây giờ, hoặc để khi khác."</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Thử lại"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Dùng phương thức khoá màn hình để mở khoá?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Bạn có thể mở khoá Không gian riêng tư theo cùng cách mở khoá thiết bị của mình, hoặc chọn một phương thức khoá khác"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Dùng phương thức khoá màn hình"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Chọn phương thức khoá mới"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Đã hoàn tất!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Để truy cập Không gian riêng tư, hãy vuốt lên từ cuối màn hình chính, rồi di chuyển xuống"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Xong"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Di chuyển xuống để truy cập Không gian riêng tư"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Đăng nhập để thiết lập Không gian riêng tư"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Bạn có thể thêm tối đa <xliff:g id="COUNT">%d</xliff:g> vân tay"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Bạn đã thêm số vân tay tối đa"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Không thể thêm dấu vân tay khác"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Kết nối"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Ngắt kết nối"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Ghép nối và kết nối"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Khi Bluetooth bật, thiết bị của bạn có thể kết nối với thiết bị Bluetooth khác ở gần."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Khi bạn bật Bluetooth, thiết bị của bạn có thể kết nối với các thiết bị Bluetooth khác ở gần.\n\nĐể cải thiện trải nghiệm sử dụng thiết bị, các ứng dụng và dịch vụ vẫn có thể quét tìm những thiết bị ở gần bất cứ lúc nào, ngay cả khi Bluetooth tắt. Chế độ này có thể được dùng để cải thiện các tính năng và dịch vụ dựa trên vị trí. Bạn có thể thay đổi chế độ này trong phần cài đặt tính năng Quét tìm Bluetooth."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Thay đổi"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Chi tiết thiết bị"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Cho phép ART xác minh bytecode cho các ứng dụng có thể gỡ lỗi"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Hiện tốc độ làm mới"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Hiện tốc độ làm mới trên màn hình hiện tại"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Hiện tỷ lệ HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Hiện tỷ lệ HDR/SDR hiện tại"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Yêu cầu mở khóa thiết bị để sử dụng NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1060,9 +1136,9 @@
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Tắt"</string>
     <string name="display_white_balance_title" msgid="2624544323029364713">"Cân bằng trắng của màn hình"</string>
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
-    <string name="fold_lock_behavior_title" msgid="786228803694268449">"Tiếp tục dùng ứng dụng khi điện thoại đã gập"</string>
+    <string name="fold_lock_behavior_title" msgid="786228803694268449">"Tiếp tục dùng ứng dụng sau khi gập điện thoại"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Hình ảnh mượt"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Tự động tăng tốc độ làm mới từ 60 lên <xliff:g id="ID_1">%1$s</xliff:g> Hz đối với một số nội dung. Chế độ cài đặt này sẽ làm tăng mức sử dụng pin."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Tự động tăng tốc độ làm mới từ 60 lên đến <xliff:g id="ID_1">%1$d</xliff:g> Hz đối với một số nội dung. Chế độ cài đặt này sẽ làm tăng mức sử dụng pin."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Buộc chuyển sang tốc độ làm mới cao nhất"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Tốc độ làm mới cao nhất giúp cải thiện khả năng phản hồi khi chạm và chất lượng ảnh động. Tính năng này làm tăng mức sử dụng pin."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Phát hiện ánh mắt"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Các chế độ cài đặt dùng chung"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Chỉnh sửa điểm truy cập"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Thêm điểm truy cập"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Chưa đặt"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Chưa đặt"</string>
     <string name="apn_name" msgid="6677695784108157953">"Tên"</string>
@@ -1320,6 +1397,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"Đã bật APN"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"Đã tắt APN"</string>
     <string name="bearer" msgid="3231443241639159358">"Sóng mang"</string>
+    <string name="network_type" msgid="748590707422733595">"Loại mạng"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Không xác định"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Kiểu MVNO"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"Giá trị MVNO"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Xóa APN"</string>
@@ -1930,12 +2009,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Dùng nút hỗ trợ tiếp cận để mở"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Giữ các phím âm lượng để mở"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Nhấn 3 lần vào màn hình để mở"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Hãy dùng 2 ngón tay nhấn 3 lần vào màn hình để mở"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Dùng cử chỉ để mở"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Sử dụng cử chỉ hỗ trợ tiếp cận"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Để sử dụng tính năng này, hãy 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.\n\nĐể 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_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Để sử dụng tính năng này, hãy nhấn vào nút hỗ trợ tiếp cận trên màn hình."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Để sử dụng tính năng này, hãy nhấn và giữ cả hai phím âm lượng."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Để bắt đầu và dừng phóng to, hãy nhấn 3 lần vào bất cứ đâu trên màn hình."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Để bắt đầu và dừng phóng to, hãy dùng 2 ngón tay nhấn 3 lần vào bất cứ đâu trên màn hình."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Để sử dụng tính năng này, hãy 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_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Để sử dụng tính năng này, hãy 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_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Để sử dụng tính năng hỗ trợ tiếp cận, hãy 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>
@@ -1957,6 +2038,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Giữ phím âm lượng"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"giữ các 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_triple_tap" msgid="6687765191490040899">"Dùng 2 ngón tay nhấn 3 lần vào màn hình"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"dùng 2 ngón tay nhấn 3 lần vào màn hình"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"Nhanh tay nhấn 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="6863958573135995927">"nhấn 3 lần vào màn hình"</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>
@@ -2044,6 +2128,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Sử dụng chế độ rung và phản hồi xúc giác"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Rung khi có chuông báo"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Rung khi có nội dung nghe nhìn"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Chế độ rung của bàn phím"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Rung khi đổ chuông"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Rung khi có thông báo"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Phản hồi khi chạm"</string>
@@ -2245,11 +2330,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> còn lại"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> để tính phí"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Thời gian sử dụng thiết bị"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Thời gian chạy ở chế độ nền"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Pin yếu"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Cho phép ứng dụng chạy trong nền"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Giới hạn hoạt động nền?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Nếu bạn giới hạn hoạt động nền cho một ứng dụng, ứng dụng đó có thể hoạt động không đúng cách"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Không thể hạn chế ứng dụng này vì bạn chưa đặt để tối ưu hóa pin.\n\nĐể hạn chế ứng dụng, trước tiên hãy bật tối ưu hóa pin."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Quản lý mức sử dụng pin"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Cho phép sử dụng ở chế độ nền"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Bật để cập nhật theo thời gian thực, tắt để tiết kiệm pin"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Không hạn chế"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Tối ưu hóa"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Bị hạn chế"</string>
@@ -2348,6 +2438,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"kể từ lần sạc đầy gần nhất"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"Ứng dụng hệ thống"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Ứng dụng đã gỡ cài đặt"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Khác"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Thời gian còn lại ước tính"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Cho tới khi được sạc đầy"</string>
@@ -2391,6 +2482,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Tổng: chưa đến 1 phút"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Ở chế độ nền: chưa đến 1 phút"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Thời gian sử dụng thiết bị: chưa đến 1 phút"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Dưới 1 phút"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Tổng: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Ở chế độ nền: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Thời gian sử dụng thiết bị: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2698,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Dữ liệu di động và Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Tự động đồng bộ hóa dữ liệu cá nhân"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Tự động đồng bộ hóa dữ liệu công việc"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Tự động đồng bộ hoá dữ liệu riêng tư"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Thay đổi chu kỳ..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Ngày trong tháng để đặt lại chu kỳ sử dụng dữ liệu:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Không ứng dụng nào sử dụng dữ liệu lúc này."</string>
@@ -3048,6 +3141,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"cỡ chữ, bản in lớn, phông chữ lớn, chữ lớn, thị lực kém, tăng cỡ chữ, tăng kích cỡ phông chữ, phóng to phông chữ"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"luôn bật chế độ màn hình chờ theo môi trường xung quanh (AOD)"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, thẻ, trình đọc"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"bàn phím, xúc giác, rung,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Âm lượng, rung, Không làm phiền"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Âm lượng nội dung nghe nhìn"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Âm lượng truyền"</string>
@@ -3267,7 +3361,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Hiện mọi nội dung thông báo"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Chỉ hiện nội dung nhạy cảm khi mở khóa"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Không hiện thông báo nào"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Bạn muốn màn hình khóa hiện những nội dung gì?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Màn hình khóa"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Hiện mọi nội dung thông báo công việc"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Ẩn nội dung công việc nhạy cảm"</string>
@@ -3354,6 +3449,17 @@
     <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="6121016426991791557">"Giảm dần âm lượng cho thông báo"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Áp dụng chế độ giảm dần âm lượng cho mọi thông báo"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Giảm dần âm lượng thông báo khi bạn nhận được nhiều thông báo liên tiếp từ cùng một ứng dụng"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Áp dụng chế độ giảm dần âm lượng cho các cuộc trò chuyện"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Giảm dần âm lượng thông báo khi bạn nhận được nhiều tin nhắn từ cùng một cuộc trò chuyện trong khoảng thời gian ngắn"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Không dùng chế độ giảm dần âm lượng cho thông báo"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Không bao giờ giảm âm lượng thông báo, bất kể nhận được bao nhiêu thông báo liên tiếp từ cùng một ứng dụng"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Rung khi mở khoá"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Chỉ rung khi màn hình được mở khoá"</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="8260947839104352075">"Áp dụng chế độ giảm dần âm lượng cho thông báo từ hồ sơ cá nhân cho hồ sơ công việc của bạn"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Dịch vụ trình trợ giúp thực tế ảo"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Không có ứng dụng đã cài đặt nào yêu cầu được chạy dưới dạng dịch vụ trình trợ giúp thực tế ảo."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Cho phép <xliff:g id="SERVICE">%1$s</xliff:g> truy cập dịch vụ thực tế ảo?"</string>
@@ -3745,6 +3851,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Cho phép truy cập để quản lý tất cả các tệp"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Cho phép ứng dụng này đọc, sửa đổi và xóa tất cả các tệp trên thiết bị này hoặc bất kỳ thiết bị lưu trữ nào đã kết nối. Nếu bạn cho phép, ứng dụng có thể truy cập vào các tệp mà không cần thông báo rõ ràng cho bạn."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Có thể truy cập vào tất cả các tệp"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Ứng dụng kích hoạt bằng giọng nói"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Cho phép kích hoạt bằng giọng nói"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Tính năng kích hoạt bằng giọng nói sẽ bật các ứng dụng được phê duyệt bằng lệnh thoại mà không dùng tay. Cảm biến thích ứng tích hợp sẵn giúp bảo mật dữ liệu cho bạn.\n\n"<a href="">"Xem thêm thông tin về cảm biến thích ứng được bảo vệ"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Thông báo toàn màn hình"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Cho phép ứng dụng này hiển thị thông báo toàn màn hình"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Cho phép ứng dụng hiển thị các thông báo chiếm toàn màn hình khi thiết bị đang khoá. Các ứng dụng có thể dùng những thông báo này để làm nổi bật chuông báo, cuộc gọi đến hoặc thông báo khẩn cấp khác."</string>
@@ -3908,6 +4017,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> dùng nhiều pin hơn thường lệ khi ở chế độ nền"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> dùng nhiều pin hơn khi ở chế độ nền trước"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> dùng nhiều pin hơn thường lệ khi ở chế độ nền trước"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Mức sử dụng pin cao"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Mức sử dụng pin cao trong nền"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Mức sử dụng pin cao trong nền trước"</string>
@@ -4005,7 +4116,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"thao tác trên hệ thống, thao tác bằng 2 nút, thao tác bằng 3 nút, thao tác bằng cử chỉ, vuốt"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Trợ lý kỹ thuật số"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Vuốt để gọi trợ lý"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Vuốt lên từ góc dưới cùng để gọi ứng dụng trợ lý kỹ thuật số."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Giữ nút Màn hình chính để mở ứng dụng Trợ lý"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Nhấn và giữ nút Màn hình chính để gọi ứng dụng trợ lý kỹ thuật số."</string>
     <string name="low_label" msgid="6525629096999711220">"Thấp"</string>
@@ -4172,7 +4284,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"dữ liệu, khoá truy cập, mật khẩu"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"tự động, điền, tự động điền, dữ liệu, khoá truy cập, mật khẩu"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Hãy đảm bảo bạn tin tưởng ứng dụng này&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; sử dụng thông tin trên màn hình để xác định nội dung nào có thể được tự động điền."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Sử dụng &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; dùng thông tin trên màn hình của bạn để xác định thông tin nào có thể tự động điền. Từ nay, khoá truy cập, mật khẩu mới và thông tin khác sẽ được lưu tại đây."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Sử dụng &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Mật khẩu mới, khoá truy cập mới, cũng như các thông tin khác sẽ được lưu ở đây kể từ bây giờ. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; có thể dùng thông tin trên màn hình của bạn để xác định thông tin nào có thể tự động điền."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Dịch vụ dữ liệu, khoá truy cập và mật khẩu"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Tắt %1$s?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Tắt dịch vụ này?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Thông tin đã lưu (ví dụ: mật khẩu, khoá truy cập, phương thức thanh toán) và thông tin khác sẽ không được điền khi bạn đăng nhập. Để sử dụng thông tin mà bạn đã lưu, hãy chọn một mật khẩu, khoá truy cập hoặc dịch vụ dữ liệu."</string>
@@ -4226,10 +4338,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <string name="enable_angle_as_system_driver" msgid="4648827560023949786">"Thử nghiệm: Bật ANGLE"</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Cảnh báo: Hãy bật ANGLE làm trình điều khiển OpenGL ES mặc định. Tính năng này đang được thử nghiệm và có thể không tương thích với một số ứng dụng camera và video."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"Cần phải khởi động lại để thay đổi trình điều khiển hệ thống OpenGL ES"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Các thay đổi về khả năng tương thích của ứng dụng"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Bật/tắt các thay đổi về khả năng tương thích của ứng dụng"</string>
@@ -4620,7 +4730,7 @@
     <string name="category_name_display_controls" msgid="7046581691184725216">"Các chế độ điều khiển màn hình khác"</string>
     <string name="category_name_general" msgid="7737273712848115886">"Chung"</string>
     <string name="dark_theme_main_switch_title" msgid="4045147031947562280">"Sử dụng Giao diện tối"</string>
-    <string name="bluetooth_main_switch_title" msgid="8409835540311309632">"Sử dụng Bluetooth"</string>
+    <string name="bluetooth_main_switch_title" msgid="8409835540311309632">"Bật Bluetooth"</string>
     <string name="prevent_ringing_main_switch_title" msgid="4726252811262086643">"Sử dụng chế độ ngăn đổ chuông"</string>
     <string name="use_wifi_hotsopt_main_switch_title" msgid="3909731167290690539">"Sử dụng điểm phát sóng Wi-Fi"</string>
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Sử dụng tính năng ghim ứng dụng"</string>
@@ -4633,7 +4743,7 @@
     <string name="night_light_main_switch_title" msgid="3428298022467805219">"Sử dụng chế độ Ánh sáng đêm"</string>
     <string name="nfc_main_switch_title" msgid="6295839988954817432">"Sử dụng công nghệ Giao tiếp phạm vi gần (NFC)"</string>
     <string name="adaptive_brightness_main_switch_title" msgid="2681666805191642737">"Sử dụng độ sáng thích ứng"</string>
-    <string name="wifi_calling_main_switch_title" msgid="4070224008346815634">"Sử dụng tính năng gọi qua Wi-Fi"</string>
+    <string name="wifi_calling_main_switch_title" msgid="4070224008346815634">"Sử dụng tính năng Gọi qua Wi-Fi"</string>
     <string name="default_see_all_apps_title" msgid="7481113230662612178">"Xem tất cả ứng dụng"</string>
     <string name="smart_forwarding_title" msgid="8368634861971949799">"Chuyển tiếp thông minh"</string>
     <string name="smart_forwarding_summary_enabled" msgid="3341062878373185604">"Đã bật tính năng chuyển tiếp thông minh"</string>
@@ -4785,12 +4895,10 @@
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Ứng dụng được cài đặt trong vòng # tháng gần đây}other{Ứng dụng được cài đặt trong vòng # tháng gần đây}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Ứng dụng được cài đặt từ hơn # tháng trước}other{Ứng dụng được cài đặt từ hơn # tháng trước}}"</string>
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Tỷ lệ khung hình"</string>
-    <string name="aspect_ratio_summary" msgid="4056406351663726494">"Hãy thử một tỷ lệ khung hình mới để xem ứng dụng này trong trường hợp ứng dụng này chưa được thiết kế cho vừa với <xliff:g id="DEVICE_NAME">%1$s</xliff:g> của bạn"</string>
-    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Hãy thử một tỷ lệ khung hình mới để xem ứng dụng này trong trường hợp ứng dụng này chưa được thiết kế cho vừa với <xliff:g id="DEVICE_NAME">%1$s</xliff:g> của bạn Có thể một số ứng dụng chưa được tối ưu hoá cho một số tỷ lệ khung hình nhất định."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary" msgid="4056406351663726494">"Hãy thử một tỷ lệ khung hình mới để xem ứng dụng, nếu ứng dụng này chưa được thiết kế cho vừa với <xliff:g id="DEVICE_NAME">%1$s</xliff:g> của bạn"</string>
+    <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Hãy thử một tỷ lệ khung hình mới để xem ứng dụng, nếu ứng dụng này chưa được thiết kế cho vừa với <xliff:g id="DEVICE_NAME">%1$s</xliff:g> của bạn. Có thể một số ứng dụng chưa được tối ưu hoá cho một số tỷ lệ khung hình nhất định."</string>
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Hãy thử một tỷ lệ khung hình mới để xem một ứng dụng nếu ứng dụng đó chưa được thiết kế cho vừa với <xliff:g id="DEVICE_NAME">%1$s</xliff:g> của bạn"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Hãy thử một tỷ lệ khung hình mới để xem một ứng dụng nếu ứng dụng đó chưa được thiết kế cho vừa với <xliff:g id="DEVICE_NAME">%1$s</xliff:g> của bạn. Có thể một số ứng dụng chưa được tối ưu hoá cho một số tỷ lệ khung hình nhất định."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Ứng dụng đề xuất"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Đã thay đổi"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Mặc định của ứng dụng"</string>
@@ -4860,4 +4968,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Đang quét tìm ứng dụng lừa đảo"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Kiểm tra hoạt động trong ứng dụng để phát hiện hành vi lừa đảo"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Dùng tính năng quét tìm ứng dụng lừa đảo"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Dùng tính năng quét tìm ứng dụng (dùng cho công việc) lừa đảo"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-zh-rCN/arrays.xml b/res/values-zh-rCN/arrays.xml
index 0da27b1..d05f9d5 100644
--- a/res/values-zh-rCN/arrays.xml
+++ b/res/values-zh-rCN/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"1 分钟后"</item>
     <item msgid="1574040255478150028">"5 分钟后"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index dce33fb..886aaf2 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"停用蓝牙 LE 音频"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"如果设备支持 LE 音频硬件功能,则停用蓝牙 LE 音频功能。"</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"在“设备详细信息”中显示 LE 音频切换开关"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"启用蓝牙 LE 音频许可名单"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"启用蓝牙 LE 音频许可名单功能。"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"绕过蓝牙 LE 音频许可名单"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"默认使用 LE 音频,即使 LE 音频外围设备尚未通过旨在确保满足许可名单条件的验证,也是如此。"</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"媒体设备"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"通话设备"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"其他设备"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"保存的设备"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"与账号相关联"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"曾与账号配对过的设备"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"系统将开启蓝牙以进行配对"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"连接偏好设置"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"之前连接的设备"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"在文本字段中书写"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"忽略所有通过触控笔按下按钮的动作"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"触控笔"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"音频分享"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"分享音频"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"来电和闹钟"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"日期和时间"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"代理"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"清除"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"正在加载…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"具有附近设备权限的应用可以确定已连接的设备的相对位置。"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"应用和服务的位置信息使用权处于关闭状态。在您拨打紧急电话号码或向该号码发送短信时,系统可能仍会将您的设备位置信息发送给急救人员。"</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"详细了解位置信息设置"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"账号"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"安全"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"加密与凭据"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"工作资料"</string>
     <string name="private_space_title" msgid="7078627930195569767">"私密空间"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"将应用隐藏到私人文件夹中"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"使用屏幕解锁方式解锁"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"显示私密空间"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"在锁定时隐藏"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"隐藏锁定的私密空间"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"如要防止其他人知道您的设备上有私密空间,您可以从应用列表中隐藏该空间"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"访问隐藏的私密空间"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"在搜索栏中搜索“私密空间”"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"点按私密空间功能块"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"解锁您的私密空间"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"关闭"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"开启"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"系统"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"创建私密空间"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"删除私密空间"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"已成功创建私密空间"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"私密空间已存在"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"无法创建私密空间"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"已成功删除私密空间"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"无法删除私密空间"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"设置屏锁"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"若要使用“私密空间”功能,请在此设备上设置屏锁。"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"设置屏锁"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"取消"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"取消"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"设置"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"设置私密空间"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"将私密应用隐藏在只有您可以访问的安全空间中"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"运作方式"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"您可以从应用列表底部访问私密空间"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"系统会通过锁定功能来保护私密空间中的应用"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"私密空间锁定后,系统会隐藏私密空间中应用的通知"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"私密空间锁定后,私密空间应用不会出现在权限管理器、隐私信息中心和其他设置中"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"设置私密空间…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"系统会通过锁定功能来保护私密空间"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"私密空间应用锁定后,其使用情况信息处于隐藏状态"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"从应用列表访问私密空间"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"无法设置私密空间"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"立即重试,或稍后重试"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"重试"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"使用屏锁解锁凭据?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"您可以像解锁设备一样解锁私密空间,也可以选择其他锁定方式"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"使用屏锁"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"选择新的锁定方式"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"一切就绪!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"要访问私密空间,请从主屏幕底部向上滑动,然后向下滚动"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"完成"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"向下滚动,访问私密空间"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"登录账号才能设置私密空间"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"您最多可以添加 <xliff:g id="COUNT">%d</xliff:g> 个指纹"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"您添加的指纹数量已达到上限"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"无法添加更多的指纹"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"连接"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"断开连接"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"配对和连接"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"开启蓝牙后,您的设备可以与附近的其他蓝牙设备通信。"</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"开启蓝牙后,您的设备可以与附近的其他蓝牙设备通信"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"蓝牙功能处于开启状态时,您的设备可以与附近的其他蓝牙设备通信。\n\n为了提升设备的使用体验,即使蓝牙功能已关闭,应用和服务仍可以随时扫描附近的设备。例如,此功能可用于改进需要使用位置信息的功能和服务。您可以在蓝牙扫描设置中更改此功能。"</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"更改"</string>
     <string name="device_details_title" msgid="1155622417516195481">"设备详细信息"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"允许 ART 验证可调试应用的字节码"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"显示刷新频率"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"显示当前的显示屏刷新频率"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"显示 HDR/SDR 比率"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"显示当前的 HDR/SDR 比率"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"必须解锁设备才能使用 NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1137,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"折叠时继续使用应用"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"流畅画面"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"自动将某些内容的刷新率从 60 Hz 调高到 <xliff:g id="ID_1">%1$s</xliff:g> Hz。但会增加耗电量。"</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"自动将某些内容的刷新频率调高到 <xliff:g id="ID_1">%1$d</xliff:g> Hz。使用这一设置会增加耗电量。"</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"强制使用峰值刷新频率"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"使用最高刷新频率可提升按触操作响应和动画质量,但会增加耗电量。"</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"屏幕感知"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"通用设置"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"修改接入点"</string>
+    <string name="apn_add" msgid="9069613192201630934">"添加接入点"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"未设置"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"未设置"</string>
     <string name="apn_name" msgid="6677695784108157953">"名称"</string>
@@ -1320,6 +1396,8 @@
     <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="network_type" msgid="748590707422733595">"网络类型"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"未指定"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO 类型"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO 值"</string>
     <string name="menu_delete" msgid="9199740901584348273">"删除 APN"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"使用“无障碍”按钮打开"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"按住两个音量键即可打开"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"点按屏幕 3 次即可打开"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"用两指点按屏幕三次即可打开"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"使用手势打开"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"使用无障碍功能启动手势"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"如需使用此功能,请点按屏幕底部的“无障碍”按钮 <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>。\n\n轻触并按住“无障碍”按钮,即可在多项功能之间切换。"</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"如需使用此功能,请点按屏幕上的“无障碍”按钮。"</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"如需使用此功能,请同时按住两个音量键。"</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"要启动和停止放大功能,请在屏幕上的任意位置点按三次。"</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"要启动或停止放大功能,请在屏幕上的任意位置用两指点按三次。"</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"如需使用此功能,请用两根手指从屏幕底部向上滑动。\n\n用两根手指向上滑动并按住,即可在多项功能之间切换。"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"如需使用此功能,请用三根手指从屏幕底部向上滑动。\n\n用三根手指向上滑动并按住,即可在多项功能之间切换。"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"如需使用无障碍功能,请用两根手指从屏幕底部向上滑动。\n\n用两根手指向上滑动并按住,即可在多项功能之间切换。"</string>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"按住两个音量键"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"按住两个音量键"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"同时按住两个音量键"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"用两指点按屏幕三次"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"用两指点按屏幕三次"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"用两指快速点按屏幕{0,number,integer}次"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"点按屏幕三次"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"点按屏幕三次"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"在屏幕上快速点按 {0,number,integer} 次。此快捷方式可能会减慢设备的运行速度"</string>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"使用振动和触感反馈"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"闹钟振动"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"媒体振动"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"键盘振动"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"响铃振动"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"通知振动"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"按触反馈"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"还可用:<xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"充电剩余时间:<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g>"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"设备使用时间"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"后台运行时间"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"电池电量低"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"允许应用在后台运行"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"要限制后台活动吗?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"如果您限制某个应用的后台活动,可能会导致该应用出现异常"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"由于此应用未设置为优化电池用量,因此您无法对其加以限制。\n\n要限制该应用,请先开启电池优化功能。"</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"管理电池用量"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"允许后台使用"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"启用可接收实时更新,停用可节省电池电量"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"无限制"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"优化"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"受限"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"自上次充满电"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"系统应用"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"已卸载的应用"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"其他"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"预计剩余时间"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"剩余充电时间"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"总计:不到 1 分钟"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"后台:不到 1 分钟"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"设备使用时间:不到 1 分钟"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"不到 1 分钟"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"总计:<xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"后台:<xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"设备使用时间:<xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"移动数据和 WLAN"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"自动同步个人账号数据"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"自动同步工作账号数据"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"自动同步私有数据"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"更改周期..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"每月流量消耗重计日期:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"没有任何应用在此期间产生过数据流量。"</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"文字大小, 大字版, 大字体, 大文字, 弱视, 放大文字, 字体放大工具, 字体放大, text size, large print, large font, large text, low vision, make text bigger, font enlarger, font enlargement"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"氛围屏保始终保持开启状态, AOD, always on ambient display, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"NFC, 标签, tag, 读取器, reader"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"键盘、触感反馈、振动、"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"音量、振动、勿扰"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"媒体音量"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"投放音量"</string>
@@ -3267,7 +3360,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"显示所有通知内容"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"仅在解锁状态下显示敏感内容"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"完全不显示通知"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"屏幕锁定时您想要如何显示通知?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"锁定屏幕"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"显示所有工作通知内容"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"隐藏敏感工作内容"</string>
@@ -3354,6 +3448,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"此应用不支持增强型设置"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"更多设置"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"您可以在此应用中使用更多设置"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"通知音量渐降"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"为所有通知应用音量渐降"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"当您从同一应用连续收到很多通知时,系统会逐渐降低通知音量"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"为对话应用音量渐降"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"当您在短时间内从同一聊天对话收到很多消息时,系统会逐渐降低通知音量"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"不使用通知音量渐降功能"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"无论您从同一应用连续收到多少通知,系统会都不降低通知音量"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"解锁时振动"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"屏幕解锁时仅振动"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"应用于工作资料"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"将个人资料中的通知音量渐降设置应用于工作资料"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR 助手服务"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"没有任何已安装的应用请求以 VR 助手服务的形式运行。"</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"允许<xliff:g id="SERVICE">%1$s</xliff:g>访问 VR 服务吗?"</string>
@@ -3745,6 +3850,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"授予管理所有文件的权限"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"允许此应用读取、修改和删除此设备或任何已连接存储卷上的所有文件。如果您授予该权限,应用无需明确通知您即可访问文件。"</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"可以访问所有文件"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"语音启动应用"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"允许使用语音启动"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"语音启动功能可使用语音指令开启批准的应用,而无需手动操作。内置的自适应传感功能会确保您的数据不外泄。\n\n"<a href="">"详细了解受保护的自适应传感功能"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"全屏通知"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"允许此应用显示全屏通知"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"允许此应用在设备锁定时显示占据整个屏幕空间的通知。应用可以利用全屏通知显示闹钟、来电或其他紧急通知。"</string>
@@ -3908,6 +4016,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"<xliff:g id="APP_LABEL">%1$s</xliff:g> 后台电池用量比平时高"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"<xliff:g id="APP_LABEL">%1$s</xliff:g> 前台电池用量较高"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"<xliff:g id="APP_LABEL">%1$s</xliff:g> 前台电池用量比平时高"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"电池用量高"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"后台电池用量高"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"前台电池用量高"</string>
@@ -4005,7 +4115,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"系统导航, “双按钮”导航, “三按钮”导航, 手势导航, 滑动"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"数字助理"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"滑动即可调用助理"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"从底部角落向上滑动即可调用数字助理应用。"</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"从底部角落向上滑动即可调用数字助理应用"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"按住主屏幕按钮可调用 Google 助理"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"按住主屏幕按钮即可调用数字助理应用。"</string>
     <string name="low_label" msgid="6525629096999711220">"低"</string>
@@ -4172,7 +4282,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"数据, 通行密钥, 密码, data, passkey, password"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"自动, 填充, 自动填充, 数据, 通行密钥, 密码, auto, fill, autofill, data, passkey, password"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;请确认这是您信任的应用&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt;会根据您的屏幕内容判断可自动填充哪些内容。"</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&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_autofill_confirmation_message" msgid="843829628024668466">"&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_picker_title" msgid="8191267620665129205">"密码、通行密钥和数据服务"</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>
@@ -4226,8 +4336,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- 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" msgid="4648827560023949786">"实验功能:启用 ANGLE"</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>
@@ -4630,7 +4740,7 @@
     <string name="graphics_driver_main_switch_title" msgid="6125172901855813790">"使用“图形驱动程序偏好设置”"</string>
     <string name="night_light_main_switch_title" msgid="3428298022467805219">"使用“护眼模式”"</string>
     <string name="nfc_main_switch_title" msgid="6295839988954817432">"使用 NFC"</string>
-    <string name="adaptive_brightness_main_switch_title" msgid="2681666805191642737">"使用“自适应亮度”"</string>
+    <string name="adaptive_brightness_main_switch_title" msgid="2681666805191642737">"使用自适应亮度"</string>
     <string name="wifi_calling_main_switch_title" msgid="4070224008346815634">"使用“WLAN 通话”"</string>
     <string name="default_see_all_apps_title" msgid="7481113230662612178">"查看所有应用"</string>
     <string name="smart_forwarding_title" msgid="8368634861971949799">"智能转接"</string>
@@ -4788,7 +4898,7 @@
     <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"如果某个应用的设计不适配您的<xliff:g id="DEVICE_NAME">%1$s</xliff:g>,请尝试使用新的宽高比查看此应用"</string>
     <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"如果某个应用的设计不适配您的<xliff:g id="DEVICE_NAME">%1$s</xliff:g>,请尝试使用新的宽高比查看此应用。某些应用可能无法针对特定宽高比进行优化。"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"有推荐宽高比的应用"</string>
-    <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"发生改变的应用"</string>
+    <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"宽高比已更新的应用"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"应用默认设置"</string>
     <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"全屏"</string>
     <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"半屏"</string>
@@ -4856,4 +4966,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"扫描是否存在欺骗性应用"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"检查应用活动是否存在钓鱼式攻击"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"使用扫描功能来查找欺骗性应用"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"使用扫描功能来查找你工作资料区的欺骗性应用"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-zh-rHK/arrays.xml b/res/values-zh-rHK/arrays.xml
index 2e9de69..35df364 100644
--- a/res/values-zh-rHK/arrays.xml
+++ b/res/values-zh-rHK/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"1 分鐘後"</item>
     <item msgid="1574040255478150028">"5 分鐘後"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index ba50726..eacf4c9 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -46,7 +46,7 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"裝置摺疊時開啟前方螢幕"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"只限遊戲、影片等"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"如果應用程式不讓螢幕進入閒置狀態,前方螢幕就會開啟"</string>
-    <string name="sleep_on_fold_title" msgid="7626123024330501411">"從未"</string>
+    <string name="sleep_on_fold_title" msgid="7626123024330501411">"永不"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"裝置摺疊時鎖定前方螢幕"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"使用自動旋轉"</string>
     <string name="smart_rotate_text_headline" msgid="5878008933992951904">"面孔偵測功能會使用前置鏡頭提高自動旋轉的準確度。系統絕不會將相關圖像儲存或傳送給 Google。"</string>
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"停用藍牙 LE Audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"如果裝置支援 LE Audio 硬件功能,則停用藍牙 LE Audio 功能。"</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"在「裝置詳情」中顯示 LE Audio 切換按鈕"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"啟用藍牙 LE Audio 許可名單"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"啟用藍牙 LE Audio 許可名單功能。"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"繞過藍牙 LE Audio 許可名單"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"即使 LE Audio 周邊裝置未通過符合許可清單條件的驗證,系統仍會預設使用 LE Audio。"</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"媒體裝置"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"通話裝置"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"其他裝置"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"已儲存的裝置"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"與帳戶建立關聯"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"登入帳戶用過"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"系統將開啟藍牙以配對裝置"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"連接偏好設定"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"之前已連接的裝置"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"在文字欄位書寫"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"忽略所有觸控筆按鈕按壓動作"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"觸控筆"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"音訊分享功能"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"分享音訊"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"通話及鬧鐘"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"日期和時間"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"清除"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"正在載入…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"應用程式如可存取附近的裝置,就能判斷已連接裝置的相對位置。"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"應用程式和服務的位置權限已關閉。當你打電話或發短訊到緊急電話號碼時,系統仍會將你的裝置位置資料傳送給救援人員。"</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"進一步瞭解「位置設定」"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"帳戶"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"安全性"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"加密和憑證"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"工作設定檔"</string>
     <string name="private_space_title" msgid="7078627930195569767">"私人空間"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"將應用程式隱藏在私人資料夾"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"使用螢幕鎖定功能解鎖"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"顯示「私人空間」"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"在鎖定時隱藏"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"在鎖定時隱藏「私人空間」"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"如要防止其他使用者知道裝置上有「私人空間」,可以從應用程式清單中隱藏該空間"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"存取隱藏的「私人空間」"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"在搜尋列中搜尋「私人空間」"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"輕按「私人空間」圖塊"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"解鎖「私人空間」"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"關閉"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"開啟"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"系統"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"建立「私人空間」"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"刪除「私人空間」"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"已成功建立「私人空間」"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"「私人空間」已存在"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"無法建立「私人空間」"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"已成功刪除「私人空間」"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"無法刪除「私人空間」"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"設定螢幕鎖定功能"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"如要使用「私人空間」,請在此裝置上設定螢幕鎖定功能。"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"設定螢幕鎖定功能"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"取消"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"取消"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"設定"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"設定「私人空間」"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"將私人應用程式隱藏在只有你能存取的安全空間"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"運作方式"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"你可從應用程式清單底部存取「私人空間」"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"「私人空間」中的應用程式受鎖定功能保護"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"「私人空間」處於鎖定狀態時,系統會隱藏「私人空間」應用程式的通知"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"「私人空間」處於鎖定狀態時,當中的應用程式就不會在權限管理工具、私隱資訊主頁和其他設定中顯示"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"正在設定「私人空間」…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"「私人空間」受鎖定功能保護"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"「私人空間」處於鎖定狀態時,系統會隱藏當中的應用程式使用情況資料"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"從應用程式清單存取「私人空間」"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"無法設定「私人空間」"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"請立即重試,或稍後再返回查看"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"再試一次"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"要透過螢幕鎖定功能解鎖嗎?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"你可使用解鎖裝置的方式來解鎖「私人空間」,或選擇其他鎖定設定"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"使用螢幕鎖定方式"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"選擇新的鎖定設定"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"大功告成!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"如要存取「私人空間」,請從主畫面底部向上滑動,然後向下捲動。"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"完成"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"向下捲動即可存取「私人空間」"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"登入即可設定「私人空間」"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"你最多可以加入 <xliff:g id="COUNT">%d</xliff:g> 個指紋"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"你加入指紋的數目已達上限"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"無法加入更多指紋"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"連線"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"中斷連線"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"配對並連線"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"當啟用藍牙功能後,你的裝置可以與其他附近的藍牙裝置通訊。"</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"藍牙開啟後,裝置即可與其他附近的藍牙裝置通訊"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"啟用藍牙功能後,你的裝置可與附近的其他藍牙裝置通訊。\n\n為改善裝置的使用體驗,應用程式和服務仍可隨時掃瞄附近的裝置 (即使藍牙功能已關閉)。此操作可用來改善定位功能和服務。你可在藍牙掃瞄設定中變更此設定。"</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"變更"</string>
     <string name="device_details_title" msgid="1155622417516195481">"裝置詳情"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"允許 ART 驗證可偵錯應用程式的位元組碼"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"顯示重新整理頻率"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"顯示現時的顯示屏重新整理頻率"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"顯示 HDR/SDR 比例"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"顯示目前的 HDR/SDR 比例"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"必須解鎖裝置才能使用 NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1137,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"在摺疊模式下繼續使用應用程式"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"流暢顯示"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"自動將部分內容的重新整理頻率提升至 60 到 <xliff:g id="ID_1">%1$s</xliff:g> Hz 之間。電池用量會因而增加。"</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"自動將部分內容的更新率調高至 <xliff:g id="ID_1">%1$d</xliff:g> Hz。電池用量會因而增加。"</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"強制使用最高重新整理頻率"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"最高的重新整理頻率,帶來更靈敏的觸控反應和更高畫質的動畫。這會增加電池用量。"</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"螢幕感知"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"共用設定"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"編輯接入點"</string>
+    <string name="apn_add" msgid="9069613192201630934">"新增存取點"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"未設定"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"未設定"</string>
     <string name="apn_name" msgid="6677695784108157953">"名稱"</string>
@@ -1320,6 +1396,8 @@
     <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="network_type" msgid="748590707422733595">"網絡類型"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"未指定"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO 類型"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO 值"</string>
     <string name="menu_delete" msgid="9199740901584348273">"刪除 APN"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"使用無障礙功能按鈕開啟"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"㩒住兩個音量鍵就可以打開"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"㩒螢幕 3 下就可以開"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"用兩隻手指喺螢幕上面㩒 3 下就可以打開"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"使用手勢即可開啟"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"使用無障礙手勢"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"要使用這項功能,請輕按螢幕底部的無障礙功能按鈕 <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>。\n\n如要切換不同的功能,按住無障礙功能按鈕即可。"</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"要使用這項功能,請輕按螢幕上的無障礙功能按鈕。"</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"如果要使用呢項功能,請同時㩒住兩個音量鍵。"</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"如果要啟用同停用放大功能,請喺螢幕上面嘅任何一個地方㩒三下。"</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"如果要啟用同停用放大功能,請用兩隻手指喺螢幕上面嘅任何一個地方㩒 3 下。"</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"如果要使用呢項功能,請用 2 隻手指由螢幕底部向上掃。\n\n用 2 隻手指向上掃然後㩒住,就可以切換唔同功能。"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"如果要使用呢項功能,請用 3 隻手指由螢幕底部向上掃。\n\n用 3 隻手指向上掃然後㩒住,就可以切換唔同功能。"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"如果要使用無障礙功能,請用 2 隻手指由螢幕底部向上掃。\n\n用 2 隻手指向上掃然後㩒住,就可以切換唔同功能。"</string>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"按住音量鍵"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"按住音量鍵"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"同時按住兩個音量鍵"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"兩指輕按螢幕三下"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"兩指輕按螢幕三下"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"用兩隻手指快速喺螢幕上面㩒 {0,number,integer} 下"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"輕按螢幕三下"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"輕按螢幕三下"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"快速㩒螢幕 {0,number,integer} 下。呢個快速鍵可能會減慢裝置運作速度"</string>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"使用震動和觸感反應"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"鬧鐘震動"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"媒體震動"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"鍵盤震動"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"鈴聲震動"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"通知震動"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"輕觸反應"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"剩餘 <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g>後完成充電"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"裝置使用時間"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"背景執行時間"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"電量不足"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"允許應用程式在背景中執行"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"要限制背景活動嗎?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"如果你限制應用程式的背景活動,應用程式可能無法正常運作"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"由於此應用程式並未設定為優化電池,你無法限制其使用。\n\n如要限制應用程式,請先開啟電池優化功能。"</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"管理電池用量"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"允許在背景使用"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"啟用即可掌握即時動態,停用則可節省電力"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"無限制"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"優化"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"限制"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"上次充滿電後"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"系統應用程式"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"已解除安裝的應用程式"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"其他"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"估計剩餘時間"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"剩餘充電時間"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"總計:不足 1 分鐘"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"背景:不足 1 分鐘"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"裝置使用時間:不足 1 分鐘"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"少於 1 分鐘"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"總計:<xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"背景:<xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"裝置使用時間:<xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"流動數據與 Wi-Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"自動同步處理個人資料"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"自動同步處理工作資料"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"自動同步私人資料"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"變更週期…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"資料用量週期的重設日期:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"這段期間沒有應用程式使用數據。"</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"文字大小, 大字, 大字體, 大型文字, 低視力, 放大字體, 字體放大工具, 字體放大"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"一律開啟氛圍畫面, AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, 標籤, 閱讀器"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"鍵盤、觸感反應、震動、"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"音量、震動、請勿騷擾"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"媒體音量"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"投放音量"</string>
@@ -3267,7 +3360,7 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"顯示所有通知內容"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"只限在解鎖時顯示敏感內容"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"不顯示任何通知"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"你想上鎖畫面顯示什麼通知?"</string>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"想在螢幕鎖定畫面上顯示什麼內容?"</string>
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"上鎖畫面"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"顯示所有工作通知內容"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"隱藏敏感的工作內容"</string>
@@ -3354,6 +3447,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"此應用程式不支援進階設定"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"更多設定"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"你可在應用程式中使用更多設定"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"通知緩和功能"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"將緩和功能套用至所有通知"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"從同一應用程式連續收到大量通知時,逐漸降低通知音量"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"將緩和功能套用至對話"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"在短時間內從同一對話連續收到大量訊息時,逐漸降低通知音量"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"不使用通知緩和功能"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"無論從同一應用程式連續收到多少通知,一律不降低通知音量"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"解鎖時震動"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"僅在螢幕解鎖時震動"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"套用至工作設定檔"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"將個人設定檔的通知緩和設定套用至工作設定檔"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR 助手服務"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"沒有已安裝的應用程式要求提供 VR 助手服務。"</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"允許 VR 服務存取 <xliff:g id="SERVICE">%1$s</xliff:g> 嗎?"</string>
@@ -3745,6 +3849,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"允許存取以管理所有檔案"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"允許此應用程式讀取、修改和刪除此裝置或任何已連接的儲存空間卷宗上的所有檔案。如獲得權限,應用程式可能會在你不知情的情況下存取檔案。"</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"可存取所有檔案"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"透過語音啟動的應用程式"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"允許使用語音啟動功能"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"語音啟動功能讓你可以透過語音指令,開句聲便啟動已核准的應用程式。內置的自動調整感應功能則可確保資料不外洩。\n\n"<a href="">"進一步瞭解受保護的自動調整感應功能"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"全螢幕通知"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"允許此應用程式的全螢幕通知"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"允許此應用程式在裝置上鎖時顯示全螢幕通知。應用程式可能會利用這些通知突顯鬧鐘、來電或其他緊急通知。"</string>
@@ -3908,6 +4015,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"「<xliff:g id="APP_LABEL">%1$s</xliff:g>」在背景執行時比平時耗電"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"「<xliff:g id="APP_LABEL">%1$s</xliff:g>」在前景執行時比較耗電"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"「<xliff:g id="APP_LABEL">%1$s</xliff:g>」在前景執行時比平時耗電"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"耗電量高"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"在背景執行時耗電量高"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"在前景執行時耗電量高"</string>
@@ -4005,7 +4114,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"系統導覽, 雙按鈕導覽, 3 按鈕導覽, 手勢導覽, 輕掃"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"數碼助理"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"滑動即可調用數碼助理應用程式"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"如要調用數碼助理應用程式,請從底部角落向上滑動。"</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"如要啟動數碼助理應用程式,請從底部的任何一個角落向上滑動"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"按住主畫面按鈕即可使用「Google 助理」"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"按住主按鈕即可調用數碼助理應用程式。"</string>
     <string name="low_label" msgid="6525629096999711220">"低"</string>
@@ -4172,7 +4281,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"資料, 密鑰, 密碼"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"自動, 填入, 自動填入, 資料, 密鑰, 密碼"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;請確定你信任此應用程式&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; 應用程式會根據你畫面上的內容判斷可自動填入的資料。"</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"「&lt;b&gt;Use &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_autofill_confirmation_message" msgid="843829628024668466">"&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_picker_title" msgid="8191267620665129205">"密碼、密鑰及資料服務"</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>
@@ -4227,7 +4336,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>
@@ -4787,7 +4896,7 @@
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"如果此應用程式未提供適合「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」的設計,請試用新的長寬比查看應用程式。部分應用程式可能並未針對特定長寬比進行優化。"</string>
     <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"如果應用程式未提供適合「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」的設計,請試用新的長寬比查看應用程式"</string>
     <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"如果應用程式未提供適合「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」的設計,請試用新的長寬比查看應用程式。部分應用程式可能並未針對特定長寬比進行優化。"</string>
-    <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"有建議顯示長寬比的應用程式"</string>
+    <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"建議應用程式"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"已變更的應用程式"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"應用程式預設"</string>
     <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"全螢幕"</string>
@@ -4856,4 +4965,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"透過掃瞄找出欺詐應用程式"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"檢查應用程式活動是否有仿冒詐騙行為"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"使用掃瞄功能找出欺詐性應用程式"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"使用掃瞄功能找出欺詐性工作應用程式"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-zh-rTW/arrays.xml b/res/values-zh-rTW/arrays.xml
index 406bdcf..13301cf 100644
--- a/res/values-zh-rTW/arrays.xml
+++ b/res/values-zh-rTW/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"1 分鐘後"</item>
     <item msgid="1574040255478150028">"5 分鐘後"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 5370ae9..e0effa3 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"停用藍牙 LE Audio"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"如果裝置支援 LE Audio 硬體功能,就停用藍牙 LE Audio 功能。"</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"在「裝置詳細資料」中顯示 LE Audio 切換鈕"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"啟用藍牙 LE Audio 許可清單"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"啟用藍牙 LE Audio 許可清單功能。"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"略過藍牙 LE Audio 許可清單"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"即使 LE Audio 周邊裝置未通過符合許可清單條件的驗證,系統仍會預設使用 LE Audio。"</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"媒體裝置"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"通話裝置"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"其他裝置"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"已儲存的裝置"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"與帳戶建立關聯"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"先前與帳戶搭配使用"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"系統將開啟藍牙以配對裝置"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"連線偏好設定"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"先前連線的裝置"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"在文字欄位中書寫"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"忽略所有觸控筆按鈕按壓動作"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"觸控筆"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"音訊分享功能"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"分享音訊"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"通話與鬧鐘"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"日期和時間"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"清除"</string>
@@ -273,8 +287,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"載入中…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"如果應用程式具有鄰近裝置權限,就能判斷已連結裝置的相對位置。"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"應用程式和服務的位置存取權已關閉。當你撥打或傳訊息到緊急電話號碼時,系統仍會將你的裝置位置資訊傳送給緊急應變人員。"</string>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"進一步瞭解位置資訊設定"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"帳戶"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"安全性"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"加密和憑證"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"工作資料夾"</string>
     <string name="private_space_title" msgid="7078627930195569767">"私人空間"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"將應用程式隱藏在私人資料夾中"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"使用螢幕鎖定功能解鎖"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"顯示私人空間"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"在鎖定時隱藏"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"隱藏鎖定的私人空間"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"如要防止其他使用者知道裝置上有私人空間,可以從應用程式清單中隱藏該空間"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"存取隱藏的私人空間"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"在搜尋列中搜尋「私人空間」"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"輕觸私人空間設定方塊"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"解鎖私人空間"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"已關閉"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"已開啟"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"系統"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"建立私人空間"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"刪除私人空間"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"成功建立私人空間"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"私人空間已存在"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"無法建立私人空間"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"成功刪除私人空間"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"無法刪除私人空間"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"設定螢幕鎖定功能"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"如要使用私人空間,請在這部裝置上設定螢幕鎖定功能。"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"設定螢幕鎖定功能"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"取消"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"取消"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"設定"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"設定私人空間"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"將私人應用程式隱藏在只有你能存取的安全空間"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"運作方式"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"你可以從應用程式清單底部存取私人空間"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"私人空間中的應用程式會受到鎖定保護"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"私人空間處於鎖定狀態時,如果其中的應用程式發出通知,會遭到系統隱藏"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"私人空間處於鎖定狀態時,其中的應用程式就不會顯示在權限管理工具、隱私資訊主頁和其他設定中"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"正在設定私人空間…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"私人空間會受到鎖定功能保護"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"私人空間處於鎖定狀態時,系統會隱藏其中應用程式的用量資訊"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"透過應用程式清單存取私人空間"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"無法設定私人空間"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"請立即重試,或稍後再返回查看"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"再試一次"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"要透過螢幕鎖定功能解鎖嗎?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"你可以用解鎖裝置的方式來解鎖私人空間,或選擇其他鎖定設定"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"使用螢幕鎖定功能"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"選擇新的鎖定設定"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"大功告成!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"如要存取私人空間,請從主畫面底部向上滑動,然後向下捲動。"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"完成"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"向下捲動即可存取私人空間"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"登入即可設定私人空間"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"你最多可以新增 <xliff:g id="COUNT">%d</xliff:g> 個指紋"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"你新增的指紋數量已達上限"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"無法新增其他指紋"</string>
@@ -708,7 +781,7 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"連線"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"中斷連線"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"配對並連線"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"開啟藍牙功能後,你的裝置即可與其他鄰近的藍牙裝置相互傳輸資料。"</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"藍牙開啟後,裝置即可與其他鄰近的藍牙裝置互傳資料"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"藍牙功能開啟後,裝置即可與附近的其他藍牙裝置通訊。\n\n為改善裝置的使用體驗,即使藍牙功能未開啟,應用程式和服務仍可隨時掃描鄰近裝置。舉例來說,這項功能可用來改善適地性功能和服務。你可以在藍牙掃描設定中變更這項功能。"</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"變更"</string>
     <string name="device_details_title" msgid="1155622417516195481">"裝置詳細資料"</string>
@@ -761,6 +834,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"允許 ART 驗證可偵錯應用程式的位元碼"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"顯示刷新率"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"顯示目前的螢幕重新整理頻率"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"顯示 HDR/SDR 比率"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"顯示目前的 HDR/SDR 比率"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"必須解鎖裝置才能使用 NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
@@ -1062,7 +1137,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"在摺疊狀態下繼續使用應用程式"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"流暢顯示"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"自動將某些內容的刷新率從 60 Hz 調高到 <xliff:g id="ID_1">%1$s</xliff:g> Hz。請注意,開啟這項設定會增加電池用量。"</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"自動將某些內容的刷新率調高到 <xliff:g id="ID_1">%1$d</xliff:g> Hz。請注意,開啟這項設定會增加電池用量。"</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"強制使用最高重新整理頻率"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"強制使用最高重新整理頻率可提升觸控回應和動畫品質。請注意,開啟這項設定會增加電池用量。"</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"螢幕感知"</string>
@@ -1298,6 +1373,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"共通設定"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"編輯存取點"</string>
+    <string name="apn_add" msgid="9069613192201630934">"新增存取點"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"未設定"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"未設定"</string>
     <string name="apn_name" msgid="6677695784108157953">"名稱"</string>
@@ -1320,6 +1396,8 @@
     <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="network_type" msgid="748590707422733595">"網路類型"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"未指定"</string>
     <string name="mvno_type" msgid="4734654257494971247">"MVNO 類型"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"MVNO 值"</string>
     <string name="menu_delete" msgid="9199740901584348273">"刪除 APN"</string>
@@ -1881,7 +1959,7 @@
     <string name="accessibility_screen_magnification_follow_typing_title" msgid="6379517513916651560">"放大目前輸入的內容"</string>
     <string name="accessibility_screen_magnification_follow_typing_summary" msgid="2882250257391761678">"放大輸入的文字"</string>
     <string name="accessibility_screen_magnification_always_on_title" msgid="3814297443759580936">"切換應用程式時保持開啟"</string>
-    <string name="accessibility_screen_magnification_always_on_summary" msgid="306908451430863049">"切換應用程式時,放大鏡會保持開啟並縮小畫面"</string>
+    <string name="accessibility_screen_magnification_always_on_summary" msgid="306908451430863049">"切換應用程式時,放大鏡會保持開啟"</string>
     <string name="accessibility_screen_magnification_joystick_title" msgid="1803769708582404964">"搖桿"</string>
     <string name="accessibility_screen_magnification_joystick_summary" msgid="4640300148573982720">"使用螢幕上的搖桿啟用及移動放大鏡。只要按住並在搖桿上拖曳,即可控制放大鏡;輕觸並拖曳則可移動搖桿。"</string>
     <string name="accessibility_screen_magnification_about_title" msgid="8857919020223505415">"關於放大功能"</string>
@@ -1930,12 +2008,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"使用無障礙按鈕開啟"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"按住音量調高鍵和調低鍵即可開啟"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"輕觸螢幕三下即可開啟"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"用兩指輕觸螢幕三下即可開啟"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"使用手勢啟用無障礙服務"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"使用無障礙手勢"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"如要使用這項功能,請輕觸螢幕底部的無障礙工具按鈕 <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>。\n\n如要切換不同的功能,請按住無障礙工具按鈕。"</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"如要使用這項功能,請輕觸畫面上的無障礙工具按鈕。"</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"如要使用這項功能,請同時按住音量調高鍵和調低鍵。"</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"如要啟用及停用放大功能,請在螢幕上的任何地方輕觸三下。"</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"如要啟用及停用放大功能,請在螢幕上的任何地方用兩指輕觸三下。"</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"如要使用這項功能,請用 2 指從螢幕底部向上滑動。\n\n如要切換不同的功能,請用 2 指向上滑動並按住。"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"如要使用這項功能,請用 3 指從螢幕底部向上滑動。\n\n如要切換不同的功能,請用 3 指向上滑動並按住。"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"如要使用無障礙功能,請用 2 指從螢幕底部向上滑動。\n\n如要切換不同的功能,請用 2 指向上滑動並按住。"</string>
@@ -1957,6 +2037,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"按住音量調高鍵和調低鍵"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"按住音量調高鍵和調低鍵"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"同時按住音量調高鍵和調低鍵"</string>
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap" msgid="6687765191490040899">"用兩指輕觸螢幕三下"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"用兩指輕觸螢幕三下"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"用兩指快速輕觸螢幕 {0,number,integer} 下"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"輕觸螢幕三下"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"輕觸螢幕三下"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"快速輕觸螢幕 {0,number,integer} 下。這個手勢可能會影響裝置的運作效能"</string>
@@ -2044,6 +2127,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"使用震動與觸覺回饋"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"鬧鐘震動"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"媒體震動"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"鍵盤震動"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"響鈴震動"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"通知震動"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"觸覺回饋"</string>
@@ -2245,11 +2329,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"還剩 <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g>後充電完畢"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"前景執行時間"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"背景執行時間"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"電池電力不足"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"允許應用程式在背景執行"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"要限制背景活動嗎?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"如果你限制應用程式的背景活動,應用程式可能無法正常運作"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"由於這個應用程式並未設為最佳化電池用量,因此你無法加以限制。\n\n如要限制應用程式,請先開啟電池效能最佳化功能。"</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"管理電池用量"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"允許在背景使用"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"啟用即可掌握即時動態,停用則可節省電力"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"無限制"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"最佳化"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"受限制"</string>
@@ -2348,6 +2437,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"自上次充飽電後"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"系統應用程式"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"已解除安裝的應用程式"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"其他"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"預估剩餘時間"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"充飽所需時間"</string>
@@ -2391,6 +2481,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"總計:不到 1 分鐘"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"背景:不到 1 分鐘"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"裝置使用時間:少於 1 分鐘"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"不到 1 分鐘"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"總計:<xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"背景:<xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"裝置使用時間:<xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2606,6 +2697,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"行動數據和 Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"自動同步處理個人資料"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"自動同步處理工作資料"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"自動同步私人資料"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"變更週期…"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"數據用量週期的重設日期:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"沒有任何應用程式在這段期間產生數據用量。"</string>
@@ -3048,6 +3140,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"文字大小, 大字, 大字型, 大型文字, 低視能, 放大文字, 放大字型, 使用大字型"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"一律開啟微光螢幕, 螢幕長亮模式"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"nfc, 標記, 感應器"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"鍵盤、觸覺技術、震動、"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"音量、震動、零打擾"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"媒體音量"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"投放音量"</string>
@@ -3267,7 +3360,7 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"顯示所有通知內容"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"僅在解鎖狀態下顯示敏感內容"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"完全不顯示通知"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"螢幕鎖定時,你希望如何顯示通知訊息?"</string>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"想在螢幕鎖定畫面上顯示什麼內容?"</string>
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"螢幕鎖定"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"顯示所有工作通知內容"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"隱藏敏感的工作內容"</string>
@@ -3354,6 +3447,17 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"這個應用程式不支援加強型設定"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"更多設定"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"應用程式內提供更多設定"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"通知緩和功能"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"將緩和功能套用至所有通知"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"從同一應用程式連續收到大量通知時,逐漸降低通知音量"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"將緩和功能套用至對話"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"在短時間內從同一對話連續收到大量訊息時,逐漸降低通知音量"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"不使用通知緩和功能"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"無論從同一應用程式連續收到多少通知,一律不降低通知音量"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"在解鎖時震動"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"只在螢幕解鎖狀態下震動"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"套用至工作資料夾"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"將個人資料夾的通知緩和設定套用至工作資料夾"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR 小幫手服務"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"沒有任何已安裝的應用程式要求以 VR 小幫手服務的形式執行。"</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"要允許 <xliff:g id="SERVICE">%1$s</xliff:g> 存取 VR 服務嗎?"</string>
@@ -3745,6 +3849,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"授予管理所有檔案的權限"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"允許這個應用程式讀取、修改及刪除這部裝置或任何已連結儲存空間上的所有檔案。如果應用程式獲得授權,可能會在你不知情的情況下存取檔案。"</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"可以存取所有檔案"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"透過語音啟動的應用程式"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"允許使用語音啟動功能"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"語音啟動功能可透過語音指令開啟已核准的應用程式,不需手動操作。內建的自動調節感應功能則可確保資料不外洩。\n\n"<a href="">"進一步瞭解受保護的自動調節感應功能"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"全螢幕通知"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"允許這個應用程式顯示全螢幕通知"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"允許這個應用程式在裝置鎖定時顯示全螢幕通知。應用程式可能會在這類通知中顯示鬧鐘、來電或其他緊急通知。"</string>
@@ -3908,6 +4015,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"「<xliff:g id="APP_LABEL">%1$s</xliff:g>」在背景執行時比平常耗電"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"「<xliff:g id="APP_LABEL">%1$s</xliff:g>」在前景執行時比較耗電"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"「<xliff:g id="APP_LABEL">%1$s</xliff:g>」在前景執行時比比平常耗電"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"高電池用量"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"在背景執行時耗用大量電池電力"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"在前景執行時耗用大量電池電力"</string>
@@ -4005,7 +4114,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"系統操作機制, 雙按鈕操作, 三按鈕操作, 手勢操作, 滑動"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"數位助理"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"滑動即可啟動數位助理應用程式"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"如要啟動數位助理應用程式,請從底部的任一角落向上滑動。"</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"如要啟動數位助理應用程式,請從底部的任一角落向上滑動"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"按住主畫面按鈕即可使用 Google 助理"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"按住主畫面按鈕即可叫用數位助理應用程式。"</string>
     <string name="low_label" msgid="6525629096999711220">"低"</string>
@@ -4172,7 +4281,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"資料, 密碼金鑰, 密碼"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"自動、填入、自動填入、資料、密碼金鑰、密碼"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;請確定這是你信任的應用程式&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; 會根據畫面上顯示的內容判斷要自動填入哪些資訊。"</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&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_autofill_confirmation_message" msgid="843829628024668466">"&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_picker_title" msgid="8191267620665129205">"密碼、密碼金鑰和資料服務"</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>
@@ -4226,10 +4335,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <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="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>
@@ -4787,10 +4894,8 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"顯示比例"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"如果這個應用程式不適合用 <xliff:g id="DEVICE_NAME">%1$s</xliff:g> 的預設比例顯示,請嘗試新比例"</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"如果這個應用程式不適合用 <xliff:g id="DEVICE_NAME">%1$s</xliff:g> 的預設比例顯示,請嘗試新比例。部分應用程式可能未針對某些顯示比例完成最佳化調整。"</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"如果應用程式的預設顯示比例不適合 <xliff:g id="DEVICE_NAME">%1$s</xliff:g>,請試試其他顯示比例"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"如果應用程式的預設顯示比例不適合 <xliff:g id="DEVICE_NAME">%1$s</xliff:g>,請試試其他顯示比例。部分應用程式可能未針對某些顯示比例完成最佳化調整。"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"有建議顯示比例的應用程式"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"變更的應用程式"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"應用程式預設"</string>
@@ -4860,4 +4965,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"透過掃描找出欺騙性應用程式"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"檢查應用程式活動,找出網路釣魚"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"使用掃描功能找出欺騙性應用程式"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"使用掃描功能找出欺騙性工作應用程式"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values-zu/arrays.xml b/res/values-zu/arrays.xml
index fbea6d2..578ca6a 100644
--- a/res/values-zu/arrays.xml
+++ b/res/values-zu/arrays.xml
@@ -479,4 +479,7 @@
     <item msgid="7025253383416830453">"Ngemuva komzuzu o-1"</item>
     <item msgid="1574040255478150028">"Ngemuva kwemizuzu emi-5"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
 </resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 8606d05..85c48ff 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -113,13 +113,14 @@
     <string name="bluetooth_disable_leaudio" msgid="8619410595945155354">"Khubaza umsindo we-Bluetooth LE"</string>
     <string name="bluetooth_disable_leaudio_summary" msgid="4756307633476985470">"Kukhubaza isakhi somsindo we-Bluetooth LE uma idivayisi isekela amakhono wehadiwe yomsindo we-LE."</string>
     <string name="bluetooth_show_leaudio_device_details" msgid="3306637862550475370">"Bonisa ukuguqulwa komsindo we-LE Emininingwaneni Yedivayisi"</string>
-    <string name="bluetooth_enable_leaudio_allow_list" msgid="1692999156437357534">"Nika amandla umsindo we-Bluetooth LE Uhlu Lokuvumela"</string>
-    <string name="bluetooth_enable_leaudio_allow_list_summary" msgid="725601205276008525">"Nika amandla isakhi sohlu lokuvumela umsindo we-Bluetooth LE."</string>
+    <string name="bluetooth_bypass_leaudio_allowlist" msgid="7392319491894565552">"Dlula Uhlu Lwabagunyaziwe Lomsindo we-Bluetooth LE"</string>
+    <string name="bluetooth_bypass_leaudio_allowlist_summary" msgid="8999245286359656738">"Sebenzisa umsindo we-LE ngokuzenzakalela ngisho noma umsindo we-LE exhumekayo uqinisekisiwe ukuthi uyahlangabezane nomkhakha Wohlu Lwabagunyaziwe."</string>
     <string name="connected_device_media_device_title" msgid="3783388247594566734">"Amadivayisi emidiya"</string>
     <string name="connected_device_call_device_title" msgid="88732390601723608">"Shayela amadivayisi"</string>
     <string name="connected_device_other_device_title" msgid="4652120430615729193">"Amanye amadivayisi"</string>
     <string name="connected_device_saved_title" msgid="5607274378851905959">"Amadivayisi alondoloziwe"</string>
     <string name="connected_device_fast_pair_device_title" msgid="543124539265592392">"Ehlotshaniswe ne-akhawunti yakho"</string>
+    <string name="connected_device_previously_associated_fast_pair_device_title" msgid="8353405823992023457">"Kusetshenziswe ngaphambili nge-akhawunti"</string>
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"I-Bluetooth izovula ukuze ibhanqe"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Izinketho zoxhumo"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Kuxhunywe ngaphambilini"</string>
@@ -132,6 +133,19 @@
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Bhala ezinkambini zombhalo"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Ziba konke ukucindezela inkinobho ye-stylus"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"I-Stylus"</string>
+    <string name="audio_sharing_title" msgid="4144157137502923821">"Ukwabelana ngomsindo"</string>
+    <string name="audio_sharing_switch_title" msgid="7052827328670825701">"Yabelana ngomsindo"</string>
+    <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Izingcingo nama-alamu"</string>
+    <!-- no translation found for audio_streams_category_title (4878022761829895463) -->
+    <skip />
+    <!-- no translation found for audio_streams_pref_title (6320485086288646209) -->
+    <skip />
+    <!-- no translation found for audio_streams_title (6617990880383079165) -->
+    <skip />
+    <!-- no translation found for audio_streams_qr_code_summary (2838923349871884871) -->
+    <skip />
+    <!-- no translation found for audio_streams_empty (8803517701437394982) -->
+    <skip />
     <string name="date_and_time" msgid="1788358029823431692">"Idethi nesikhathi"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Ummeleli"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Sula"</string>
@@ -273,8 +287,7 @@
     <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_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>
-    <!-- no translation found for location_settings_footer_learn_more_content_description (349380666660145540) -->
-    <skip />
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Funda kabanzi Ngamasethingi wendawo"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"Ama-akhawunti"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"Ukuphepha"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"Ukubethela nokuqinisekisa"</string>
@@ -535,16 +548,76 @@
     <string name="work_profile_category_header" msgid="85707750968948517">"Iphrofayela yomsebenzi"</string>
     <string name="private_space_title" msgid="7078627930195569767">"Isikhala Esiyimfihlo"</string>
     <string name="private_space_summary" msgid="8237652417163408001">"Fihla ama-app kufolda eyimfihlo"</string>
-    <string name="private_space_one_lock_title" msgid="7306547190751832568">"Vula usebenzisa ukukhiya isikrini"</string>
-    <string name="private_space_hide_title" msgid="1615744426933304644">"Bonisa Isikhala Esiyimfihlo"</string>
+    <!-- no translation found for private_space_description (5494963647270826210) -->
+    <skip />
+    <!-- no translation found for private_space_lock_title (3006539720164938296) -->
+    <skip />
+    <!-- no translation found for private_space_one_lock_summary (2759953747682959371) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_title (8679383894967823163) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_title (3934339826674553174) -->
+    <skip />
+    <!-- no translation found for private_space_biometric_summary (4403837276018724581) -->
+    <skip />
+    <!-- no translation found for private_space_screen_lock_summary (394837965365561070) -->
+    <skip />
+    <!-- no translation found for private_space_new_lock_title (7306873010565337671) -->
+    <skip />
+    <string name="private_space_hide_title" msgid="8687034008994037610">"Fihla uma ikhiyiwe"</string>
+    <string name="privatespace_hide_page_title" msgid="972581369094289386">"Fihla Isikhala Esiyifihlo uma ikhiyile"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Ukuvimbela abantu ukuthi bazi Isikhala Esiyimfihlo kwidivayisi yakho ungasifihla ohlwini lwama-app wakho"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Finyelela IsIkhala Esiyimfihlo uma sifihliwe"</string>
+    <string name="privatespace_search_description" msgid="983837656432484282">"Sesha \'Isikhala Esiyimfihlo\' ndaweni yokusesha"</string>
+    <string name="privatespace_tap_tile_description" msgid="4146608898639668340">"Thepha indawo Yesikhala Esiyimfihlo"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Vula Isikhala sakho Esiyimfihlo"</string>
+    <string name="privatespace_hide_off_summary" msgid="7227778747159633671">"Valiwe"</string>
+    <string name="privatespace_hide_on_summary" msgid="6136704537527640183">"Vuliwe"</string>
     <string name="private_space_category_system" msgid="1286843321867285700">"Isistimu"</string>
-    <string name="private_space_create_title" msgid="47273568884806726">"Sungula Isikhala Esiyimfihlo"</string>
     <string name="private_space_delete_title" msgid="3075645119800272800">"Sula Isikhala Esiyimfihlo"</string>
-    <string name="private_space_created" msgid="2978055968937762232">"Isikhala Esiyimfihlo sisungulwe ngokuphumelelayo"</string>
-    <string name="private_space_already_exists" msgid="1253034947621867419">"Isikhala Esiyimfihlo sesikhona kakade"</string>
-    <string name="private_space_create_failed" msgid="4908100791174213808">"Isikhala Esiyimfihlo asikwazanga ukusungulwa"</string>
     <string name="private_space_deleted" msgid="7825768516955610897">"Isikhala Esiyimfihlo sidilithwe ngokuphumelelayo"</string>
     <string name="private_space_delete_failed" msgid="8500755484258565011">"Isikhala Esiyimfihlo asikwazanga ukudilithwa"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Setha ukukhiya isikrini"</string>
+    <string name="no_device_lock_summary" msgid="7653477413589207824">"Ukuze usebenzise Isikhala Esigodliwe, setha ukukhiya kwesikrini kule divayisi."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Setha ukukhiya isikrini"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Khansela"</string>
+    <string name="privatespace_cancel_label" msgid="362351004019511784">"Khansela"</string>
+    <string name="privatespace_setup_button_label" msgid="3696372546231047258">"Setha"</string>
+    <string name="privatespace_setup_title" msgid="177623114624330394">"Setha Isikhala Esiyimfihlo"</string>
+    <string name="privatespace_hide_apps_summary" msgid="4016518749055602268">"Fihla ama-app ayimfihlo esikhaleni esivikelekile ukuze afinyelelwe nguwe kuphela"</string>
+    <string name="privatespace_how_title" msgid="8794102046435526065">"Indlela esebenza ngayo"</string>
+    <string name="privatespace_access_bottom_text" msgid="1075244097441349030">"Ungafinyelela Esikhaleni Esiyimfihlo ekugcineni koluhlu lama-app wakho"</string>
+    <string name="privatespace_protected_lock_text" msgid="7320604832432017423">"Ama-app Asesikhaleni Esiyimfihlo avikelwe ngokhiya"</string>
+    <string name="privatespace_hidden_notifications_text" msgid="8121285743543004812">"Izaziso ezisuka kuzinhlelo zokusebenza eziku-Private Space ziyafihlwa uma sikhiyiwe"</string>
+    <string name="privatespace_apps_permission_text" msgid="4418511924151828812">"Ama-app ayimfihlo e-Space ngeke zivele kumphathi wemvume, kudeshibhodi yobumfihlo, nezinye izilungiselelo lapho i-Private Space ikhiyiwe"</string>
+    <string name="privatespace_setting_up_text" msgid="8532777749891406509">"Isetha Isikhala Esiyimfihlo…"</string>
+    <string name="privatespace_lock_protected_title" msgid="7409801274869666860">"I-Private Space ivikelwe ingidi"</string>
+    <string name="privatespace_apps_hidden_title" msgid="6146605677591599107">"Ulwazi lokusetshenziswa lwama-app e-Private Space luyafihlwa uma lukhiyiwe"</string>
+    <string name="privatespace_access_from_apps_title" msgid="6787000636686810564">"Finyelela ku-Private Space ohlwini lwakho lwama-app"</string>
+    <string name="privatespace_error_screen_title" msgid="8658511165913662275">"Ayikwazanga ukumisa i-Private Space"</string>
+    <string name="privatespace_error_screen_summary" msgid="5679626031159521676">"Zama futhi manje, noma ubuye kamuva"</string>
+    <string name="privatespace_tryagain_label" msgid="4091466165724929876">"Zama Futhi"</string>
+    <string name="privatespace_lockscreen_title" msgid="7459425150560213662">"Sebenzisa ukukhiya isikrini ukuze uvule?"</string>
+    <string name="privatespace_lockscreen_summary" msgid="980268845497843861">"Ungakwazi ukuvula i-Private Space ngendlela efanayo ovula ngayo idivayisi yakho, noma ukhethe ukhiye ohlukile"</string>
+    <string name="privatespace_use_screenlock_label" msgid="2775404941450049991">"Sebenzisa ukukhiya isikrini"</string>
+    <string name="privatespace_set_lock_label" msgid="6277529807188602545">"Khetha isikhiya esisha"</string>
+    <string name="privatespace_success_title" msgid="4854425684898602993">"Usulungile!"</string>
+    <string name="privatespace_access_text" msgid="8756118686974614618">"Ukuze ufinyelele Isikhala Esiyimfihlo, swayiphela phezulu kusukela phansi kwesikrini sakho sasekhaya, bese uskrolela phansi"</string>
+    <string name="privatespace_done_label" msgid="5534818213879562387">"Kwenziwe"</string>
+    <string name="scrolldown_to_access" msgid="5160743933093369151">"Skrolela phansi ukuze ufinyelele Indawo Eyimfihlo"</string>
+    <string name="privatespace_retry_signin_title" msgid="495054309243289223">"Ngena ngemvume ukuze usethe Isikhala Esigodliwe"</string>
+    <!-- no translation found for privatespace_retry_summary (1508253540053006284) -->
+    <skip />
+    <!-- no translation found for privatespace_unhide_header (1192011539687584004) -->
+    <skip />
+    <!-- no translation found for privatespace_open_settings (5038101805604421393) -->
+    <skip />
+    <!-- no translation found for privatespace_tap_settings (928932826450238276) -->
+    <skip />
+    <!-- no translation found for privatespace_turnoff_hide (4858511423837613842) -->
+    <skip />
+    <!-- no translation found for privatespace_development_note (2999992301558700721) -->
+    <skip />
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Ungangeza izigxivizo zeminwe ezingafika kwezingu-<xliff:g id="COUNT">%d</xliff:g>"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Ungeze inombolo ephezulu yezigxivizo zeminwe"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Ayikwazi ukwengeza izingxovizo zeminwe eziningi"</string>
@@ -708,7 +781,8 @@
     <string name="bluetooth_device_context_connect" msgid="4913860372216815855">"Xhuma kwi-inthanethi"</string>
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"Nqamula"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Bhangqa; uxhume"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"Uma i-Bluetooth ivuliwe, idivayisi yakho ingakwazi ukuxhumana namanye amadivayisi aseduze we-Bluetooth."</string>
+    <!-- no translation found for bluetooth_empty_list_bluetooth_off (7326727272747345476) -->
+    <skip />
     <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"Uma i-Bluetooth ivuliwe, idivayisi yakho ingaxhumana namanye amadivayisi e-Bluetooth aseduze.\n\nUkuze uthuthukise umuzwa wedivayisi, ama-app namasevisi asengaskena amadivayisi aseduze noma kunini, ngisho noma i-Bluetooth ivaliwe. Lokhu, ngokwesibonelo, kungasetshenziswa ukuthuthukisa izakhi namasevisi asuselwa endaweni. Ungakuguqula lokhu kumasethingi okuskena e-Bluetooth."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Shintsha"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Imininingwane yedivayisi"</string>
@@ -761,6 +835,8 @@
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Vumela i-ART ukuze iqinisekise i-bytecode yezinhlelo zokusebenza ezingasusa iphutha"</string>
     <string name="show_refresh_rate" msgid="5742688821872354973">"Bonisa isilinganiso sokuvuselela"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Bonisa isilinganisi sokuvuselela sesibonisi samanje"</string>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"Bonisa isilinganiso se-HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Bonisa isilinganiso samanje se-HDR/SDR"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"i-NFC"</string>
     <string name="nfc_secure_settings_title" msgid="4906958426927741485">"Idinga ukuvula idivayisi ye-NFC"</string>
     <string name="android_beam_settings_title" msgid="2797963824490671295">"i-Android Beam"</string>
@@ -1062,7 +1138,7 @@
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Qhubeka usebenzisa kuma-app agoqiwe"</string>
     <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Isibonisi esibushelelezi"</string>
-    <string name="peak_refresh_rate_summary" msgid="3627278682437562787">"Iphakamisa ngokuzenzakalela isilinganiso sokuvuselela kusukela kokungu-60 ukuya kokungu-<xliff:g id="ID_1">%1$s</xliff:g> Hz kokunye okuqukethwe. Ikhuphula ukusetshenziswa kwebhethri."</string>
+    <string name="peak_refresh_rate_summary" msgid="3212309985294885790">"Ikhuphula ngokuzenzakalelayo izinga lokuvuselela lifike ku-<xliff:g id="ID_1">%1$d</xliff:g> Hz kokunye okuqukethwe. Ikhuphula ukusetshenziswa kwebhethri."</string>
     <string name="force_high_refresh_rate_toggle" msgid="3325789621928312050">"Phoqelela isilinganiso sokuvuselela esiphakeme"</string>
     <string name="force_high_refresh_rate_desc" msgid="7794566420873814875">"Inani lokuvuselela eliphezulu kakhulu lokuphendula kokuthinta okuthuthukisiwe nekhwalithi yokugqwayiza. Ikhuphula ukusetshenziswa kwebhethri."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Ukunaka isikrini"</string>
@@ -1298,6 +1374,7 @@
     <string name="communal_settings_summary" msgid="4923914136953940317">"Amasethingi omphakathi"</string>
     <string name="apn_settings" msgid="4295467389400441299">"APNs"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Hlela indawo yokungena"</string>
+    <string name="apn_add" msgid="9069613192201630934">"Faka iphoyinti lokufinyelela"</string>
     <!-- unknown quoting pattern: original -1, translation 1 -->
     <string name="apn_not_set" msgid="8246646433109750293">"&amp;lt;Ayisethiwe&amp;gt;"</string>
     <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Ayisethiwe"</string>
@@ -1321,6 +1398,8 @@
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"I-APN ivunyeliwe"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"I-APN ayisebenzi"</string>
     <string name="bearer" msgid="3231443241639159358">"Umthwali"</string>
+    <string name="network_type" msgid="748590707422733595">"Uhlobo lwenethiwekhi"</string>
+    <string name="network_type_unspecified" msgid="7756349656194518725">"Okungacacisiwe"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Uhlobo lwe-MVNO"</string>
     <string name="mvno_match_data" msgid="5213193073684321156">"Inani le-MVNO"</string>
     <string name="menu_delete" msgid="9199740901584348273">"Susa i-APN"</string>
@@ -1931,12 +2010,14 @@
     <string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Sebenzisa inkinobho yokufinyelela ukuze uvule"</string>
     <string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Bamba okhiye bevolumu ukuze uvule"</string>
     <string name="accessibility_tutorial_dialog_title_triple" msgid="7089562919284464400">"Thepha kathathu isikrini ukuvula"</string>
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple" msgid="1090593773487065541">"Isikrini sokuthepha esiphindwe kathathu seminwe emibili ukuze uvule"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4965810097646659332">"Sebenzisa ukuthinta ukuze uvule"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Sebenzisa ukufinyeleleka kokuthinta"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="7002398857479782303">"Ukuze usebenzise lesi sici, thepha inkinobho yokufinyeleleka <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> ngezansi kwesikrini.\n\nUkushintsha phakathi kwezici, thinta futhi ubambe inkinobho yokufinyeleleka."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="2551777208185138391">"Ukuze usebenzise lesi sici, thepha inkinobho yokufinyeleleka kusikrini sakho."</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Ukuze usebenzise lesi sici, cindezela futhi ubambe bobabili okhiye bevolumu."</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Ukuqala nokumisa ukukhuliswa, thepha kathathu noma kuphi kusikrini."</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="6205072282308562361">"Ukuze uqale futhi umise ukukhuliswa, thepha kathathu noma yikuphi esikrinini sakho ngeminwe emibili."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Ukuze usebenzise lesi sici, swayiphela phezulu kusuka ezansi esikrinini ngeminwe emi-2.\n\nUkuze ushintshe phakathi kwezici, swayiphela phezulu ngeminwe emi-2 bese ubambe."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Ukuze usebenzise lesi sici, swayiphela phezulu kusuka ezansi esikrinini ngeminwe emi-3.\n\nUkuze ushintshe phakathi kwezici, swayiphela phezulu ngeminwe emi-3 bese ubambe."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Ukuze usebenzise isici sokufinyelela, swayiphela phezulu kusuka ezansi esikrinini ngeminwe emi-2.\n\nUkuze ushintshe phakathi kwezici, swayiphela phezulu ngeminwe emi-2 bese ubambe."</string>
@@ -1958,6 +2039,9 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Bamba okhiye bevolomu"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"bamba okhiye bevolomu"</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_triple_tap" msgid="6687765191490040899">"Isikrini sokuthepha kathathu ngeminwe emibili"</string>
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword" msgid="4200744613585702430">"isikrini sokuthepha kathathu ngeminwe emibili"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap" msgid="2631127444247448793">"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="6863958573135995927">"isikrini sokuthepha 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>
@@ -2045,6 +2129,7 @@
     <string name="accessibility_vibration_primary_switch_title" msgid="6162579254864450592">"Sebenzisa ukudlidliza nama-haptic"</string>
     <string name="accessibility_alarm_vibration_title" msgid="4661294337828522745">"Ukudlidliza kwe-alamu"</string>
     <string name="accessibility_media_vibration_title" msgid="1372073715403945428">"Ukudlidliza kwemidiya"</string>
+    <string name="accessibility_keyboard_vibration_title" msgid="7559967730626765441">"Ukudlidliza kwekhibhodi"</string>
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Ukudlidliza kokukhala"</string>
     <string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Ukudlidliza kwesaziso"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Impendulo yokuthinta"</string>
@@ -2246,11 +2331,16 @@
     <string name="power_usage_level_and_status" msgid="821521456989429593">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="6997529817917076536">"<xliff:g id="REMAIN">%1$s</xliff:g> osele"</string>
     <string name="power_charge_remaining" msgid="7046064326172265116">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> ukuze lishajiwe"</string>
+    <string name="power_usage_detail_screen_time" msgid="6027274749498485283">"Isikhathi sesikrini"</string>
+    <string name="power_usage_detail_background_time" msgid="3661437083554322691">"Isikhathi sangemuva"</string>
     <string name="low_battery_summary" msgid="4458925347316501953">"Ibhethri liphansi"</string>
     <string name="background_activity_summary" msgid="3817376868497046016">"Vumela uhlelo lokusebenza ukuthi lusebenze ngemuva"</string>
     <string name="background_activity_warning_dialog_title" msgid="3449566823290744823">"Khawulela umsebenzi wasemuva?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8202776985767701095">"Uma ukhawulela umsebenzi wangasemuva wohlelo lokusebenza, lungahle lungasebenzi kahle"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Njengoba lolu hlelo lokusebenza lungasethiwe ukuze kulungiselelwe ibhethri, awukwazi ukulikhawulela.\n\nUkuze ukhawulele uhlelo lokusebenza, qala uvule ukulungiselelwa kwebhethri."</string>
+    <string name="manager_battery_usage_category_title" msgid="1493303237531629961">"Phatha ukusetshenziswa kwebhethri"</string>
+    <string name="manager_battery_usage_allow_background_usage_title" msgid="6294649996820358852">"Vumela ukusetshenziswa kwengemuva"</string>
+    <string name="manager_battery_usage_allow_background_usage_summary" msgid="8021153755201340819">"Nika amandla ezibuyekezweni zesikhathi sangempela, khubaza ukuze wonge amandla"</string>
     <string name="manager_battery_usage_unrestricted_title" msgid="2426486290463258032">"Akunamkhawulo"</string>
     <string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Kulungisiwe"</string>
     <string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Kuvinjelwe"</string>
@@ -2349,6 +2439,7 @@
     <string name="battery_usage_without_time" msgid="1346894834339420538"></string>
     <string name="battery_usage_since_last_full_charge" msgid="3488425008925924769">"kusukela ekushajeni okugcwele kokugcina"</string>
     <string name="battery_usage_system_apps" msgid="8659537819731575299">"I-app yesistimu"</string>
+    <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Ama-app akhishiwe"</string>
     <string name="battery_usage_others" msgid="311793281613609986">"Abanye"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Isikhathi esilinganiselwe esisele"</string>
     <string name="estimated_charging_time_left" msgid="2287135413363961246">"Kuze kushaje ngokuphelele"</string>
@@ -2392,6 +2483,7 @@
     <string name="battery_usage_total_less_than_one_minute" msgid="1035425863251685509">"Ingqikithi: ngaphansi komzuzu"</string>
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Ingemuva: ngaphansi komzuzu"</string>
     <string name="battery_usage_screen_time_less_than_one_minute" msgid="2911989465891679033">"Isikhathi sesikrini: ngaphansi komzuzu"</string>
+    <string name="power_usage_time_less_than_one_minute" msgid="8407404329381010144">"Ngaphansi kweminithi"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Inani: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Ingemuva: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Isikhathi sesikrini: <xliff:g id="TIME">%s</xliff:g>"</string>
@@ -2607,6 +2699,7 @@
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"Idatha yeselula kanye ne-Wi‑Fi"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Vumelanisa ngokuzenzakalelayo idatha yakho"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Vumelanisa ngokuzenzakalelayo idatha yomsebenzi"</string>
+    <string name="account_settings_menu_auto_sync_private" msgid="2315144351530596228">"Vumelanisa ngokuzenzakalelayo idatha eyimfihlo"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Shintsha umjikelezo"</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Usuku lwenyanga lokusetha kabusha ukusebenza kwedatha:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Azikho izinhlelo zokusebenza ezisebenzise idatha phakathi nalesi sikhathi."</string>
@@ -3049,6 +3142,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"usayizi wombhalo, ukuphrinta okukhulu, ifonti enkulu, umbhalo omkhulu, umbono ophansi, yenza umbhalo ube mkhulu, ukukhulisa ifonti, ukukhulisa ifonti"</string>
     <string name="keywords_always_show_time_info" msgid="1066752498285497595">"isibonisi esihlala sikhanya se-ambient, i-AOD"</string>
     <string name="keywords_change_nfc_tag_apps_state" msgid="9032287964590554366">"i-nfc, umaka, isifundi"</string>
+    <string name="keywords_keyboard_vibration" msgid="6485149510591654697">"ikhibhodi, ama-haptic, Ukudlidliza,"</string>
     <string name="sound_dashboard_summary" msgid="6574444810552643312">"Ivolomu, ukudlidliza, ungaphazamisi"</string>
     <string name="media_volume_option_title" msgid="5966569685119475630">"Ivolumu yabezindaba"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Ivolumu yokusakaza"</string>
@@ -3268,7 +3362,8 @@
     <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Bonisa konke okuqukethwe kwesaziso"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Bonisa okuqukethwe okuzwelayo kuphela uma kuvuliwe"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Ungabonisi izaziso nhlobo"</string>
-    <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Ufuna isikini sokukhiya sibonise kanjani?"</string>
+    <!-- no translation found for lock_screen_notifications_interstitial_message (6326229471276829730) -->
+    <skip />
     <string name="lock_screen_notifications_interstitial_title" msgid="1360388192096354315">"Khiya isikrini"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8373401288962523946">"Bonisa konke okuqukethwe kwesaziso somsebenzi"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="2183455323048921579">"Fihla okuqukethwe komsebenzi okuzwelayo"</string>
@@ -3355,6 +3450,17 @@
     <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="6121016426991791557">"Isikhathi sokuphola sezaziso"</string>
+    <string name="notification_polite_all_apps" msgid="1118651561594250059">"Faka isikhathi sokuphola kuzo zonke izaziso"</string>
+    <string name="notification_polite_all_apps_summary" msgid="540268373207498126">"Yehlisa kancane kancane ivolumu yezaziso uma uthola izaziso eziningi ezilandelanayo ku-app eyodwa"</string>
+    <string name="notification_polite_conversations" msgid="8197695136727245741">"Faka isikhathi sokuphola ezingxoxweni"</string>
+    <string name="notification_polite_conversations_summary" msgid="2677141765664359994">"Yehlisa kancane kancane ivolumu yezaziso uma uthola imilayezo eminingi elandelanayo engxoxweni eyodwa phakathi nesikhathi esifushane"</string>
+    <string name="notification_polite_disabled" msgid="1378078021594282842">"Ungasisebenzisi isikhathi sokuphola sezaziso"</string>
+    <string name="notification_polite_disabled_summary" msgid="1145341260283746936">"Ungalokothi wehlise ivolumu yezaziso, kungakhathaliseki ukuthi zingaki izaziso ezingena zilandelana zivela ku-app eyodwa"</string>
+    <string name="notification_polite_vibrate_unlocked" msgid="6142573851761357903">"Dlidliza uma ivulwa"</string>
+    <string name="notification_polite_vibrate_unlocked_summary" msgid="1678472892282874459">"Dlidliza kuphela uma isikrini sivulwa"</string>
+    <string name="notification_polite_work" msgid="8823596456640216391">"Sebenzisa kumaphrofayela omsebenzi"</string>
+    <string name="notification_polite_work_summary" msgid="8260947839104352075">"Sebenzisa amasethingi okuphola kwezaziso kuphrofayela yakho eqondene nawe nakuphrofayela yakho yomsebenzi"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Amasevisi omsizi we-VR"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Azikho izinhlelo zokusebenza ezifakiwe ezicele ukusetshenziswa njengamasevisi wesisizi se-VR."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Vumela isevisi ye-VR ukufinyelela i-<xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -3746,6 +3852,9 @@
     <string name="permit_manage_external_storage" msgid="6928847280689401761">"Vumela ukufinyelela ukuze kuphathwe wonke amafayela"</string>
     <string name="allow_manage_external_storage_description" msgid="5707948153603253225">"Vumela lolu hlelo lokusebenza ukuthi lufunde, lulungise luphinde lususe wonke amafayela kule divayisi noma kwamanye amavolumu axhunyiwe esitoreji. Uma linikeziwe, uhlelo lokusebenza lungafinyelela kumafayela ngaphandle kokwazi kwakho okusobala."</string>
     <string name="filter_manage_external_storage" msgid="6751640571715343804">"Ingafinyelela kuwo wonke amafayela"</string>
+    <string name="voice_activation_apps_title" msgid="7130045161611529825">"Ama-app okuvula i-Voice"</string>
+    <string name="permit_voice_activation_apps" msgid="9152780172988949319">"Vumela ukwenza i-voice isebenze"</string>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Ukwenza kusebenze izwi kuvula ama-app agunyaziwe, i-hands-free, kusetshenziswa umyalo wezwi. Izinzwa eziguquguqukayo ezakhelwe ngaphakathi ziqinisekisa ukuthi idatha ihlala iyimfihlo kuwe kuphela.\n\n"<a href="">"Okwengeziwe mayelana nomuzwa oguqukayo ovikelekile"</a></string>
     <string name="full_screen_intent_title" msgid="747270185715224130">"Izaziso zesikrini esigcwele"</string>
     <string name="permit_full_screen_intent" msgid="9035367640019960861">"Vumela izaziso zesikrini esigcwele ukusuka kule app"</string>
     <string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Vumela i-app ukuthi ibonise izaziso ezithatha isikrini esigcwele lapho idivayisi ikhiyiwe. Ama-app angasebenzisa lokhu ukuze agqamise ama-alamu, amakholi angenayo, noma ezinye izaziso eziphuthumayo."</string>
@@ -3909,6 +4018,8 @@
     <string name="battery_tips_apps_summary_higher_than_usual_in_background" msgid="1585002072567422199">"I-<xliff:g id="APP_LABEL">%1$s</xliff:g> isebenzise ibhethri eyengeziwe kunokujwayelekile ingemuva"</string>
     <string name="battery_tips_apps_summary_always_high_in_foreground" msgid="1910991243576404700">"I-<xliff:g id="APP_LABEL">%1$s</xliff:g> isebenzise ibhethri eyengeziwe kuyilapho ingaphambili"</string>
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground" msgid="7937337570425168210">"I-<xliff:g id="APP_LABEL">%1$s</xliff:g> isebenzise ibhethri eyengeziwe kunokujwayelekile ngaphambili"</string>
+    <!-- no translation found for battery_usage_anomaly_content_description (3199380151630770476) -->
+    <skip />
     <string name="battery_app_item_hint" msgid="4850929961461039110">"Ukusetshenziswa kwebhethri okuphezulu"</string>
     <string name="battery_app_item_hint_in_bg" msgid="596240821466388336">"Ukusetshenziswa kwebhethri ngemuva"</string>
     <string name="battery_app_item_hint_in_fg" msgid="5091860632260799910">"Ukusetshenziswa kwebhethri ngaphambili"</string>
@@ -4006,7 +4117,8 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"ukuzula kwesistimu, 2-inkinobho yokuzula, 3-inkinobho yokuzula, ukuzula kokuthinta, swayipha"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"Umsizi odijithali"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Swayipha ukuze uncenge umsizi"</string>
-    <string name="assistant_corner_gesture_summary" msgid="7279576276455168075">"Swayiphela phezulu usuka ekhoneni elingezansi ukuze uncenge i-app yakho yomsizi wedijithali."</string>
+    <!-- no translation found for assistant_corner_gesture_summary (5012534700233017955) -->
+    <skip />
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Bamba Ikhaya ngokuqondene ne-Assistant"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Cindezela futhi ubambe inkinobho ethi Ikhaya ukuze uncenge i-app yomsizi edijithali."</string>
     <string name="low_label" msgid="6525629096999711220">"Phansi"</string>
@@ -4173,7 +4285,7 @@
     <string name="credman_keywords" msgid="8305600680836806170">"idatha, ukhiye wokudlula, iphasiwedi"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"okuzenzakalelayo, gcwalisa, gcwalisa ngokuzenzakalelayo, idatha, ukhiye wokudlula, iphasiwedi"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Qiniseka ukuthi wethemba lolu hlelo lokusebenza&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; isebenzisa okusesikrinini sakho ukunquma okungagcwaliswa ngokuzenzakalela."</string>
-    <string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"&lt;b&gt;Sebenzisa i-&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; isebenzisa lokho okubhalwe esikrinini sakho ukuze inqume ukuthi yini engagcwaliswa ngokuzenzakalelayo. Amaphasiwedi amasha, okhiye bokufinyelela nolunye ulwazi luzolondolozwa lapha kusukela manje kuqhubeke."</string>
+    <string name="credman_autofill_confirmation_message" msgid="843829628024668466">"&lt;b&gt;Sebenzisa i-&lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Amaphasiwedi amasha, okhiye bokudlula, nolunye ulwazi kuzolondolozwa lapha kusukela manje kuqhubeke. I-&lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; ingase isebenzise okusesikrinini sakho ukuze inqume ukuthi yini engagcwaliswa ngokuzenzakalela."</string>
     <string name="credman_picker_title" msgid="8191267620665129205">"Amaphasiwedi, okhiye bokudlula namasevisi edatha"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"Vala i-%1$s?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Vala le sevisi?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Ulwazi olulondoloziwe olufana namaphasiwedi, okhiye bokudlula, izindlela zokukhokha, nolunye ulwazi ngeke lugcwaliswe lapho ungena ngemvume. Ukuze usebenzise ulwazi lwakho olulondoloziwe, khetha iphasiwedi, ukhiye wokudlula, noma isevisi yedatha."</string>
@@ -4227,10 +4339,8 @@
     <!-- no translation found for graphics_driver_app_preference_values:1 (485288770206606512) -->
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
-    <!-- no translation found for enable_angle_as_system_driver (4648827560023949786) -->
-    <skip />
-    <!-- no translation found for enable_angle_as_system_driver_summary (2170215556348477481) -->
-    <skip />
+    <string name="enable_angle_as_system_driver" msgid="4648827560023949786">"Ukuhlola: Nika amandla I-ENGELI"</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Nika amandla I-ENGELI njengesishayeli sesistimu ye-OpenGL ES. Lesi sakhi ngesesilingo futhi asikwazi ukusebenzisana namanye ama-app wekhamera nevidiyo."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"Ukuqalisa kabusha kuyadingeka ukuze ushintshe umshayeli wesistimu we-OpenGL ES"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Ushintsho lokuhambisana kwe-app"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Guqula ushintsho lokuhambisana kohlelo lokusebenza"</string>
@@ -4788,10 +4898,8 @@
     <string name="aspect_ratio_title" msgid="2451826875939676101">"Ukubukeka kwesilinganiselo"</string>
     <string name="aspect_ratio_summary" msgid="4056406351663726494">"Zama ukubukeka kwesilinganiselo okusha ukuze ubuke le app ukuthi ayenzelwe yini ukungena ku-<xliff:g id="DEVICE_NAME">%1$s</xliff:g> yakho"</string>
     <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Zama ukubukeka kwesilinganiselo okusha ukuze ubuke le app ukuthi ayenzelwe yini ukungena ku-<xliff:g id="DEVICE_NAME">%1$s</xliff:g> yakho. Amanye ama-app kungenzeka angalungiselelwa ukubukeka kwesilinganiselo okuthile."</string>
-    <!-- no translation found for aspect_ratio_summary_text (4737461467467220325) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_main_summary_text (5544816872094235840) -->
-    <skip />
+    <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Zama ukubukeka kwesilinganiselo okusha ukuze ubuke i-app ukuthi ayenzelwe yini ukungena ku-<xliff:g id="DEVICE_NAME">%1$s</xliff:g> yakho"</string>
+    <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Zama ukubukeka kwesilinganiselo okusha ukuze ubuke i-app ukuthi ayenzelwe yini ukungena ku-<xliff:g id="DEVICE_NAME">%1$s</xliff:g> yakho. Amanye ama-app kungenzeka angalungiselelwa ukubukeka kwesilinganiselo okuthile."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Ama-app aphakanyisiwe"</string>
     <string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Ama-app ashintshiwe"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Okuzenzakalelayo kwe-app"</string>
@@ -4861,4 +4969,10 @@
     <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>
+    <string name="content_protection_preference_title" msgid="5069260032659193074">"Iskena ukuze ithole ama-app akhohlisayo"</string>
+    <string name="content_protection_preference_summary" msgid="2252393849408445391">"Hlola umsebenzi we-app wobugebengu bokweba imininingwane ebucayi"</string>
+    <string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Sebenzisa ukuskena ama-app akhohlisayo"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Sebenzisa ukuskena ama-app akhohlisayo omsebenzi"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
 </resources>
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 01a8126..f84afec 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -872,15 +872,9 @@
         <item>1</item>
     </string-array>
 
-    <!-- Match this with the constants in VpnProfile. --> <skip />
+    <!-- Match this with the array VPN_TYPES in ConfigDialog. --> <skip />
     <!-- Short names for each VPN type, not really translatable. [CHAR LIMIT=20] -->
     <string-array name="vpn_types" translatable="false">
-        <item>PPTP</item>
-        <item>L2TP/IPSec PSK</item>
-        <item>L2TP/IPSec RSA</item>
-        <item>IPSec Xauth PSK</item>
-        <item>IPSec Xauth RSA</item>
-        <item>IPSec Hybrid RSA</item>
         <item>IKEv2/IPSec MSCHAPv2</item>
         <item>IKEv2/IPSec PSK</item>
         <item>IKEv2/IPSec RSA</item>
@@ -1417,7 +1411,7 @@
 
     <string-array name="battery_tips_card_colors" translatable="false">
         <item>color_accent_selector</item>
-        <item>color_battery_anomaly_yellow_selector</item>
+        <item>color_battery_anomaly_app_warning_selector</item>
     </string-array>
 
     <!-- The following 4 arrays are for power anomaly tips card. Please keep them the same size. -->
@@ -1474,4 +1468,19 @@
     <string-array name="terms_of_address_supported_languages">
         <item>fr</item> <!-- French -->
     </string-array>
+
+    <!-- Values for notification cooldown -->
+    <string-array name="notification_polite_options">
+        <item>@string/notification_polite_all_apps</item>
+        <item>@string/notification_polite_conversations</item>
+        <item>@string/notification_polite_disabled</item>
+    </string-array>
+
+    <!-- Values for notification cooldown -->
+    <string-array name="notification_polite_options_values" translatable="false">
+        <item>0</item>
+        <item>1</item>
+        <item>2</item>
+    </string-array>
+
 </resources>
diff --git a/res/values/attrs.xml b/res/values/attrs.xml
index 6f024a3..40a7c58 100644
--- a/res/values/attrs.xml
+++ b/res/values/attrs.xml
@@ -112,12 +112,8 @@
         <attr name="appCount" format="integer" />
     </declare-styleable>
 
+    <!-- TODO: Clean up this -->
     <attr name="switchBarTheme" format="reference" />
-    <attr name="switchBarMarginStart" format="dimension" />
-    <attr name="switchBarMarginEnd" format="dimension" />
-    <attr name="switchBarBackgroundColor" format="color" />
-    <attr name="switchBarBackgroundActivatedColor" format="color" />
-    <attr name="switchBarRestrictionIcon" format="reference" />
 
     <attr name="preferenceBackgroundColor" format="color" />
 
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 657ba11..f76f46e 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -72,10 +72,6 @@
     <color name="contextual_card_background">@*android:color/background_device_default_light</color>
     <!-- End of dashboard/homepage icon background colors -->
 
-    <color name="switchbar_background_color">@*android:color/material_grey_600</color>
-    <color name="switchbar_switch_track_tint">#BFFFFFFF</color>
-    <color name="switchbar_switch_thumb_tint">@android:color/white</color>
-
     <color name="battery_good_color_light">#43a047</color> <!-- Material Green 600 -->
     <color name="battery_bad_color_light">#f44336</color> <!-- Material Red 500 -->
 
@@ -173,6 +169,10 @@
     <!-- Icon tint color for battery usage system icon -->
     <color name="battery_usage_system_icon_color">?android:attr/textColorPrimary</color>
 
+    <!-- Power anomaly color for icons, button and text -->
+    <color name="power_anomaly_app_warning_hint_color">#D56E0C</color>
+    <color name="power_anomaly_primary_button_text_color">#FFFFFF</color>
+
     <!-- UDFPS colors -->
     <color name="udfps_enroll_icon">#699FF3</color>
     <color name="udfps_moving_target_fill">#C2D7F7</color>
diff --git a/res/values/config.xml b/res/values/config.xml
index 145c6c5..7af29c8 100755
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -226,6 +226,9 @@
          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.
@@ -526,8 +529,12 @@
         <item>content://com.android.settings.slices/intent/media_output_indicator</item>
     </string-array>
 
-    <!-- List containing the apps cannot be changed the battery optimize modes -->
-    <string-array name="config_disable_optimization_mode_apps" translatable="false">
+    <!-- List containing the apps keep in battery mode = "Optimized" -->
+    <string-array name="config_force_battery_optimize_mode_apps" translatable="false">
+    </string-array>
+
+    <!-- List containing the apps keep in battery mode = "Unrestricted" -->
+    <string-array name="config_force_battery_unrestrict_mode_apps" translatable="false">
     </string-array>
 
     <!-- Uri to query non-public Slice Uris. -->
@@ -746,11 +753,17 @@
     <!-- Whether to display Cloned Apps page in Settings (Settings > Apps > Cloned Apps).-->
     <bool name="config_cloned_apps_page_enabled">false</bool>
 
+    <!-- Whether to initiate Account login during Private Space setup.-->
+    <bool name="config_privatespace_account_login_enabled">false</bool>
+
     <!-- Certificates of apps which are allowed to use activity embedding with Settings.-->
     <string-array name="config_known_host_certs" translatable="false">
         <item></item>
     </string-array>
 
+    <!-- Whether to display the "Enable wireless display" menu -->
+    <bool name="config_show_wifi_display_enable_menu">true</bool>
+
     <!-- List of packages that should be hidden for MVNO. Do not translate -->
     <string-array name="datausage_hiding_carrier_service_package_names" translatable="false"/>
 
@@ -762,4 +775,11 @@
 
     <!-- Allowed packages to show the confirmation dialog for a system locale suggestion  -->
     <string-array name="allowed_packages_for_locale_confirmation_diallog" translatable="false"/>
+
+    <!-- Array of text reading preview layouts. Must contain at least 1 layout -->
+    <array name="config_text_reading_preview_samples">
+        <item>@layout/accessibility_text_reading_preview_app_grid</item>
+        <item>@layout/screen_zoom_preview_1</item>
+        <item>@layout/accessibility_text_reading_preview_mail_content</item>
+    </array>
 </resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 205e2a3..fc202a5 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -75,10 +75,6 @@
     <!-- Preference icon foreground image inset (from background edge to foreground edge) -->
     <dimen name="preference_icon_foreground_image_inset">12dp</dimen>
 
-    <!-- SwitchBar sub settings margin start / end -->
-    <dimen name="switchbar_subsettings_margin_start">72dp</dimen>
-    <dimen name="switchbar_subsettings_margin_end">16dp</dimen>
-
     <!-- Search bar -->
     <dimen name="search_bar_margin">16dp</dimen>
     <dimen name="search_bar_height">52dp</dimen>
@@ -226,6 +222,12 @@
     <dimen name="message_metadata_top_padding">4dp</dimen>
     <dimen name="message_icon_inset">11dp</dimen>
 
+    <!-- Text Reading Settings -->
+    <dimen name="text_reading_preview_padding_start">@*android:dimen/list_item_padding_end_material</dimen>
+    <dimen name="text_reading_preview_padding_end">@*android:dimen/list_item_padding_end_material</dimen>
+    <dimen name="text_reading_preview_background_padding_vertical">18dp</dimen>
+    <dimen name="text_reading_preview_background_padding_horizontal">18dp</dimen>
+
     <!-- Accessibility Settings -->
     <dimen name="accessibility_layout_margin_start_end">16dp</dimen>
     <dimen name="accessibility_imageview_size">176dp</dimen>
@@ -239,11 +241,6 @@
     <dimen name="accessibility_qs_tooltip_margin">20dp</dimen>
     <dimen name="accessibility_qs_tooltip_margin_top">27dp</dimen>
 
-    <!-- Restricted icon in switch bar -->
-    <dimen name="restricted_icon_margin_end">16dp</dimen>
-    <!-- Restricted icon size in switch bar -->
-    <dimen name="restricted_icon_size">@*android:dimen/config_restrictedIconSize</dimen>
-
     <!-- Padding for Gestures settings screen -->
     <dimen name="gestures_play_button_size">36dp</dimen>
 
@@ -392,7 +389,7 @@
     <dimen name="chartview_divider_height">4dp</dimen>
     <dimen name="chartview_transom_width">4dp</dimen>
     <dimen name="chartview_transom_radius">4dp</dimen>
-    <dimen name="chartview_transom_icon_size">12dp</dimen>
+    <dimen name="chartview_transom_icon_size">18dp</dimen>
     <dimen name="chartview_transom_padding_top">2dp</dimen>
     <dimen name="chartview_transom_layout_height">12dp</dimen>
     <dimen name="chartview_layout_height">182dp</dimen>
@@ -450,7 +447,7 @@
     <dimen name="lottie_animation_view_margin_top">-52dp</dimen>
     <dimen name="limited_vision_button_margin_top">0dp</dimen>
     <dimen name="limited_vision_button_margin_bottom">0dp</dimen>
-    <dimen name="limited_vision_button_toggle_margin_top">0dp</dimen>
+    <dimen name="limited_vision_button_toggle_margin_top">20dp</dimen>
 
     <!-- Default margin for side fps enroll find sensor lottie -->
     <dimen name="sfps_enroll_find_sensor_lottie_margin">0dp</dimen>
@@ -462,4 +459,7 @@
     <dimen name="screen_flash_color_button_inner_circle_size">42dp</dimen>
     <dimen name="screen_flash_color_button_inner_circle_padding">3dp</dimen>
     <dimen name="screen_flash_color_button_inner_circle_stroke">1dp</dimen>
+
+    <!-- An arbitrarily large number to make the max size fit the parent -->
+    <dimen name="animation_max_size">1000dp</dimen>
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 3ed2dc9..1bd943c 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -244,10 +244,10 @@
     <!-- Setting toggle title for enabling Bluetooth LE Audio toggle in Device Details. [CHAR LIMIT=40] -->
     <string name="bluetooth_show_leaudio_device_details">Show LE audio toggle in Device Details</string>
 
-    <!-- Setting toggle title for enabling Bluetooth LE Audio Allow List. [CHAR LIMIT=none] -->
-    <string name="bluetooth_enable_leaudio_allow_list">Enable Bluetooth LE audio Allow List</string>
-    <!-- Summary of toggle for enabling Bluetooth LE audio Allow List [CHAR LIMIT=none]-->
-    <string name="bluetooth_enable_leaudio_allow_list_summary">Enable Bluetooth LE audio allow list feature.</string>
+    <!-- Setting toggle title for ignoring Bluetooth LE Audio Allowlist. [CHAR LIMIT=none] -->
+    <string name="bluetooth_bypass_leaudio_allowlist">Bypass Bluetooth LE Audio Allowlist</string>
+    <!-- Summary of toggle for ignoring Bluetooth LE Audio Allowlist [CHAR LIMIT=none]-->
+    <string name="bluetooth_bypass_leaudio_allowlist_summary">Use LE Audio by default even if LE Audio peripheral hasn\'t been verified to meet Allowlist criteria.</string>
 
     <!-- Title for Bluetooth device group with media capability group [CHAR LIMIT=none]-->
     <string name="connected_device_media_device_title">Media devices</string>
@@ -259,6 +259,8 @@
     <string name="connected_device_saved_title">Saved devices</string>
     <!-- Title for fast pair device group [CHAR LIMIT=none]-->
     <string name="connected_device_fast_pair_device_title">Associated with account</string>
+    <!-- Title for previously associated fast pair device group [CHAR LIMIT=none]-->
+    <string name="connected_device_previously_associated_fast_pair_device_title">Previously used with account</string>
     <!-- Summary for preference to add a device [CHAR LIMIT=none]-->
     <string name="connected_device_add_device_summary">Bluetooth will turn on to pair</string>
     <!-- Title for other connection preferences [CHAR LIMIT=none]-->
@@ -286,6 +288,24 @@
     <!-- Name shown in the title of individual stylus preference in the connected devices page [CHAR LIMIT=60] -->
     <string name="stylus_connected_devices_title">Stylus</string>
 
+    <!-- Title for audio sharing page [CHAR LIMIT=none]-->
+    <string name="audio_sharing_title">Audio sharing</string>
+    <!-- Title for audio sharing primary switch [CHAR LIMIT=none]-->
+    <string name="audio_sharing_switch_title">Share audio</string>
+    <!-- Title for calls and alarms device on audio sharing page [CHAR LIMIT=none]-->
+    <string name="calls_and_alarms_device_title">Calls and alarms</string>
+
+    <!-- Title for audio streams preference category [CHAR LIMIT=none]-->
+    <string name="audio_streams_category_title">Connect to a LE audio stream</string>
+    <!-- Title for audio streams preference [CHAR LIMIT=none]-->
+    <string name="audio_streams_pref_title">Nearby audio streams</string>
+    <!-- Title for audio streams page [CHAR LIMIT=none]-->
+    <string name="audio_streams_title">Audio streams</string>
+    <!-- Summary for QR code scanning in audio streams page [CHAR LIMIT=none]-->
+    <string name="audio_streams_qr_code_summary">Connect to an audio stream using QR code</string>
+    <!--Text that appears when scanning for nearby audio streams is finished and no streams were found [CHAR LIMIT=40]-->
+    <string name="audio_streams_empty">No nearby audio streams were found.</string>
+
     <!-- Date & time settings screen title -->
     <string name="date_and_time">Date &amp; time</string>
 
@@ -780,7 +800,7 @@
     <string name="security_settings_face_settings_remove_face_model">Delete face model</string>
     <!-- Button text in face settings which lets the user enroll their face [CHAR LIMIT=40] -->
     <string name="security_settings_face_settings_enroll">Set up Face Unlock</string>
-   <!-- Dialog title shown when the user removes an enrollment [CHAR LIMIT=35] -->
+    <!-- Dialog title shown when the user removes an enrollment [CHAR LIMIT=35] -->
     <string name="security_settings_face_settings_remove_dialog_title">Delete face model?</string>
     <!-- Dialog contents shown when the user removes an enrollment [CHAR LIMIT=NONE] -->
     <string name="security_settings_face_settings_remove_dialog_details">Your face model will be permanently and securely deleted.\n\nAfter deletion, you will need your PIN, pattern, or password to unlock your phone or for authentication in apps.</string>
@@ -864,7 +884,7 @@
     <string name="biometric_settings_intro_with_activeunlock">When you set up Face Unlock and Fingerprint Unlock, your phone will ask for your fingerprint when you wear a mask or are in a dark area.\n\nYou can unlock with your watch when your face or fingerprint isn\u2019t recognized.</string>
     <!-- Introduction shown in fingerprint page to explain that watch unlock can be used if fingerprint isn't recognized. [CHAR LIMIT=NONE]-->
     <string name="biometric_settings_intro_with_fingerprint">You can unlock with your watch when your fingerprint isn\u2019t recognized.</string>
-     <!-- Introduction shown in face page to explain that watch unlock can be used if face isn't recognized. [CHAR LIMIT=NONE]-->
+    <!-- Introduction shown in face page to explain that watch unlock can be used if face isn't recognized. [CHAR LIMIT=NONE]-->
     <string name="biometric_settings_intro_with_face">You can unlock with your watch when your face isn\u2019t recognized.</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for"> Use fingerprint or watch to</string>
     <string name="biometric_settings_use_face_or_watch_for"> Use face or watch to</string>
@@ -1188,26 +1208,121 @@
     <string name="private_space_title">Private Space</string>
     <!-- Summary for the Private Space page. [CHAR LIMIT=NONE] -->
     <string name="private_space_summary">Hide apps in a private folder</string>
+    <!-- Description for the Private Space page. [CHAR LIMIT=NONE] -->
+    <string name="private_space_description">Hide apps in a private folder that only you can access</string>
     <!-- Title for the Private Space one lock preference. [CHAR LIMIT=60] -->
-    <string name="private_space_one_lock_title">Unlock using screen lock</string>
+    <string name="private_space_lock_title">Private Space lock</string>
+    <!-- Description for the Private Space one lock preference page. [CHAR LIMIT=NONE] -->
+    <string name="private_space_one_lock_summary">You can unlock Private Space the same way you unlock your device, or choose a different lock</string>
+    <!-- Title for the Private Space one lock preference. [CHAR LIMIT=60] -->
+    <string name="private_space_screen_lock_title">Use device screen lock</string>
+    <!-- Title for the Face and Fingerprint preference. [CHAR LIMIT=60] -->
+    <string name="private_space_biometric_title">Face &amp; Fingerprint Unlock</string>
+    <!-- Summary for the Face and Fingerprint preference when no biometric is set. [CHAR LIMIT=60] -->
+    <string name="private_space_biometric_summary">Tap to set up</string>
+    <!-- Summary for one lock when device screen lock is used as private profile lock. [CHAR LIMIT=60] -->
+    <string name="private_space_screen_lock_summary">Same as device screen lock</string>
+    <!-- Dialog message to choose a new lock for Private Space. [CHAR LIMIT=50] -->
+    <string name="private_space_new_lock_title">Choose a new lock for Private Space?</string>
     <!-- Title for the preference to hide Private Space. [CHAR LIMIT=60] -->
-    <string name="private_space_hide_title">Show Private Space</string>
+    <string name="private_space_hide_title">Hide when locked</string>
+    <!-- Title for the hide Private Space setting. [CHAR LIMIT=60] -->
+    <string name="privatespace_hide_page_title">Hide Private Space when locked</string>
+    <!-- Description for hide Private Space settings page. [CHAR LIMIT=NONE] -->
+    <string name="privatespace_hide_page_summary">To stop other people knowing Private Space is on your device, you can hide it from your apps list</string>
+    <!-- Header in hide Private Space settings page to access Private Space when hidden. [CHAR LIMIT=60] -->
+    <string name="privatespace_access_header">Access Private Space when hidden</string>
+    <!-- Text in hide Private Space settings page on how to search Private Space when hidden. [CHAR LIMIT=60] -->
+    <string name="privatespace_search_description">Search for \'Private Space\' in the search bar</string>
+    <!-- Text in hide Private Space settings page to tap on Private Space tile. [CHAR LIMIT=60] -->
+    <string name="privatespace_tap_tile_description">Tap the Private Space tile</string>
+    <!-- Text in hide Private Space settings page to Unlock Private Space. [CHAR LIMIT=60] -->
+    <string name="privatespace_unlock_description">Unlock your Private Space</string>
+    <!-- Used to describe the off state of Private space hidden [CHAR LIMIT=30] -->
+    <string name="privatespace_hide_off_summary">Off</string>
+    <!-- Used to describe the off state of Private space hidden [CHAR LIMIT=30] -->
+    <string name="privatespace_hide_on_summary">On</string>
     <!-- System category for the Private Space page. [CHAR LIMIT=30] -->
     <string name="private_space_category_system">System</string>
-    <!-- Title for the preference to create Private Space. [CHAR LIMIT=60] -->
-    <string name="private_space_create_title">Create Private Space</string>
     <!-- Title for the preference to delete Private Space. [CHAR LIMIT=60] -->
     <string name="private_space_delete_title">Delete Private Space</string>
-    <!-- Toast to show when the private space was created. [CHAR LIMIT=NONE] -->
-    <string name="private_space_created">Private Space successfully created</string>
-    <!-- Toast to show when the private space already exists. [CHAR LIMIT=NONE] -->
-    <string name="private_space_already_exists">Private Space already exists</string>
-    <!-- Toast to show when the private space could not be created. [CHAR LIMIT=NONE] -->
-    <string name="private_space_create_failed">Private Space could not be created</string>
     <!-- Toast to show when the private space was deleted. [CHAR LIMIT=NONE] -->
     <string name="private_space_deleted">Private Space successfully deleted</string>
     <!-- Toast to show when the private space could not be deleted. [CHAR LIMIT=NONE] -->
     <string name="private_space_delete_failed">Private Space could not be deleted</string>
+    <!-- Title of the Alert Dialog when no screen lock is set [CHAR LIMIT=30] -->
+    <string name="no_device_lock_title">Set a screen lock</string>
+    <!-- Summary of the alert when no screen lock is set [CHAR LIMIT=90] -->
+    <string name="no_device_lock_summary">To use Private Space, set a screen lock on this device.</string>
+    <!-- Action label for dialog when no screen lock is set [CHAR LIMIT=30] -->
+    <string name="no_device_lock_action_label">Set screen lock</string>
+    <!-- Action label to cancel Alert dialog when no screen lock is set [CHAR LIMIT=30] -->
+    <string name="no_device_lock_cancel">Cancel</string>
+    <!-- Action label to cancel Private Space Setup flow [CHAR LIMIT=30] -->
+    <string name="privatespace_cancel_label">Cancel</string>
+    <!-- Label for Private Space setup button to create Private Space [CHAR LIMIT=30] -->
+    <string name="privatespace_setup_button_label">Set up</string>
+    <!-- Title for Private Space setup education screen. [CHAR LIMIT=50] -->
+    <string name="privatespace_setup_title">Set up Private Space</string>
+    <!-- Summary for the Private Space setup education screen. [CHAR LIMIT=NONE] -->
+    <string name="privatespace_hide_apps_summary">Hide private apps in a secure space that only you can access</string>
+    <!-- Text shown in Private Space setup screen which explains how the Private Space works [CHAR LIMIT=50] -->
+    <string name="privatespace_how_title">How it works</string>
+    <!-- Text shown in Private Space setup screen which explains Private Space can be accessed from bottom of all apps list. [CHAR LIMIT=NONE] -->
+    <string name="privatespace_access_bottom_text">You can access Private Space from the bottom of your apps list</string>
+    <!-- Text shown in Private Space setup screen which explains Private Space apps are protected by a lock. [CHAR LIMIT=60] -->
+    <string name="privatespace_protected_lock_text">Apps in Private Space are protected by a lock</string>
+    <!-- Text shown in Private Space setup screen which explains notifications from Private Space apps will not be shown when Private Space is locked. [CHAR LIMIT=NONE] -->
+    <string name="privatespace_hidden_notifications_text">Notifications from apps in Private Space are hidden when it\u2019s locked</string>
+    <!-- Text shown in Private Space setup screen which explains that the permissions granted to Private Space apps will not be shown in settings when Private Space is locked. [CHAR LIMIT=NONE] -->
+    <string name="privatespace_apps_permission_text">Private Space apps won\u2019t appear in permission manager, privacy dashboard, and other settings when Private Space is locked</string>
+    <!-- Text shown at the bottom in Private Space auto advancing  screens. [CHAR LIMIT=60] -->
+    <string name="privatespace_setting_up_text">Setting up Private Space\u2026</string>
+    <!-- Title for Private Space setup in auto advancing screen informing private space is hidden when locked. [CHAR LIMIT=NONE] -->
+    <string name="privatespace_apps_hidden_title">Usage info for Private Space apps is hidden when it\u2019s locked</string>
+    <!-- Title for Private Space setup in auto advancing screen informing private space can be accessed from apps list. [CHAR LIMIT=60] -->
+    <string name="privatespace_access_from_apps_title">Access Private Space from your apps list</string>
+    <!-- Title for Private Space setup in auto advancing screen informing some system apps are already installed in Private Space. [CHAR LIMIT=NONE] -->
+    <string name="privatespace_system_apps_installed_title">Some system apps are already installed in Private Space</string>
+    <!-- Title for Private Space creation error screen. [CHAR LIMIT=60] -->
+    <string name="privatespace_error_screen_title">Couldn\u2019t set up Private Space</string>
+    <!-- Summary for the Private Space creation error screen. [CHAR LIMIT=60] -->
+    <string name="privatespace_error_screen_summary">Try again now, or come back later</string>
+    <!-- Label for button to retry creating private space again on creation error. [CHAR LIMIT=30] -->
+    <string name="privatespace_tryagain_label">Try Again</string>
+    <!-- Title for Private Space lock setup screen. [CHAR LIMIT=50] -->
+    <string name="privatespace_lockscreen_title">Use screen lock to unlock?</string>
+    <!-- Summary for the Private Space lock setup screen. [CHAR LIMIT=NONE] -->
+    <string name="privatespace_lockscreen_summary">You can unlock Private Space the same way you unlock your device, or choose a different lock</string>
+    <!-- Action label to use existing device lock for Private Space. [CHAR LIMIT=50] -->
+    <string name="privatespace_use_screenlock_label">Use screen lock</string>
+    <!-- Label for Private Space lock setup button to choose a new lock. [CHAR LIMIT=50] -->
+    <string name="privatespace_set_lock_label">Choose new lock</string>
+    <!-- Title for Private Space setup success screen. [CHAR LIMIT=30] -->
+    <string name="privatespace_success_title">All set!</string>
+    <!-- Summary for the Private Space setup success screen. [CHAR LIMIT=NONE] -->
+    <string name="privatespace_access_text">To access Private Space, swipe up from the bottom of your home screen, then scroll down</string>
+    <!-- Label for Private Space done button to show a toast, finish setup and launch All apps [CHAR LIMIT=30] -->
+    <string name="privatespace_done_label">Done</string>
+    <!-- Toast to show on private space setup completion informing user to scroll down All apps to access private space. [CHAR LIMIT=60] -->
+    <string name="scrolldown_to_access">Scroll down to access Private Space</string>
+    <!-- Title for Private Space account login error screen. [CHAR LIMIT=60] -->
+    <string name="privatespace_retry_signin_title">Sign in to set up Private Space</string>
+    <!-- Summary for the Private Space account login error screen. [CHAR LIMIT=NONE] -->
+    <string name="privatespace_retry_summary">You need to sign in to an account to set up Private Space</string>
+
+    <!-- TODO(b/309950257): Remove below strings once QSTIle fulfillment is complete. -->
+    <!-- Header in hide Private Space settings page to unhide Private Space. [CHAR LIMIT=60] -->
+    <string name="privatespace_unhide_header">To show Private Space (Not final UX)</string>
+    <!-- Text in hide Private Space settings page on how to open Private Space setting. [CHAR LIMIT=NONE] -->
+    <string name="privatespace_open_settings">Open the Settings App</string>
+    <!-- Text in hide Private Space settings page on how to open Private Space setting. [CHAR LIMIT=NONE] -->
+    <string name="privatespace_tap_settings">Tap on Security &amp; privacy > Private Space > Hide Private Space when locked</string>
+    <!-- Text in hide Private Space settings page to off hide toggle. [CHAR LIMIT=60] -->
+    <string name="privatespace_turnoff_hide">Turn off \‘Hide Private Space when locked\’ toggle</string>
+    <!-- Note in hide Private Space settings page to inform that this is a development feature. [CHAR LIMIT=NONE] -->
+    <string name="privatespace_development_note">Note to Googlers: The development of this feature is still in progress</string>
+
 
     <!-- Text shown when "Add fingerprint" button is disabled -->
     <string name="fingerprint_add_max">You can add up to <xliff:g id="count" example="5">%d</xliff:g> fingerprints</string>
@@ -1628,8 +1743,8 @@
     <string name="bluetooth_device_context_disconnect">Disconnect</string>
     <!-- Bluetooth settings.  Context menu item for a device.  Action will first pair, and then connect to all profiles on the device. -->
     <string name="bluetooth_device_context_pair_connect">Pair &amp; connect</string>
-    <!-- Bluetooth settings. Text displayed when Bluetooth is off and device list is empty [CHAR LIMIT=50]-->
-    <string name="bluetooth_empty_list_bluetooth_off">When Bluetooth is turned on, your device can communicate with other nearby Bluetooth devices.</string>
+    <!-- Bluetooth settings. Text displayed when Bluetooth is off and device list is empty [CHAR LIMIT=NONE]-->
+    <string name="bluetooth_empty_list_bluetooth_off">When Bluetooth is turned on, your device can communicate with other nearby Bluetooth devices</string>
     <!-- Bluetooth settings. Text displayed when Bluetooth is off and bluetooth scanning is turned on [CHAR LIMIT=NONE] -->
     <string name="bluetooth_scanning_on_info_message">When Bluetooth is turned on, your device can communicate with other nearby Bluetooth devices.\n\nTo improve device experience, apps and services can still scan for nearby devices at any time, even when Bluetooth is off. This can be used, for example, to improve location-based features and services. You can change this in Bluetooth scanning settings.</string>
     <!-- Bluetooth settings. Link text to bring the user to "scanning settings" screen. [CHAR LIMIT=NONE]-->
@@ -1763,6 +1878,11 @@
     <!-- Debugging developer settings: show refresh rate summary [CHAR LIMIT=58] -->
     <string name="show_refresh_rate_summary">Show the current display refresh rate</string>
 
+    <!-- Debugging developer settings: show HDR/SDR ratio? [CHAR LIMIT=36] -->
+    <string name="show_hdr_sdr_ratio">Show HDR/SDR ratio</string>
+    <!-- Debugging developer settings: show HDR/SDR ratio summary [CHAR LIMIT=58] -->
+    <string name="show_hdr_sdr_ratio_summary">Show the current HDR/SDR ratio</string>
+
     <!-- NFC settings -->
     <!-- Used in the 1st-level settings screen to turn on NFC -->
     <string name="nfc_quick_toggle_title">NFC</string>
@@ -1999,7 +2119,7 @@
     <string name="wifi_dpp_connect_network_using_qr_code">Use a QR code to add a device to this network</string>
     <!-- Hint for QR code process failure [CHAR LIMIT=NONE]  -->
     <string name="wifi_dpp_qr_code_is_not_valid_format">QR code isn\u0027t a valid format</string>
-     <!-- Label for the try again button [CHAR LIMIT=20]-->
+    <!-- Label for the try again button [CHAR LIMIT=20]-->
     <string name="retry">Retry</string>
     <!-- Label for the check box to share a network with other users on the same device -->
     <string name="wifi_shared">Share with other device users</string>
@@ -2515,7 +2635,7 @@
     <!-- Display settings screen, peak refresh rate settings title [CHAR LIMIT=30] -->
     <string name="peak_refresh_rate_title">Smooth Display</string>
     <!-- Display settings screen, peak refresh rate settings summary [CHAR LIMIT=NONE] -->
-    <string name="peak_refresh_rate_summary">Automatically raises the refresh rate from 60 to <xliff:g name="refresh_rate" example="120">%1$s</xliff:g> Hz for some content. Increases battery usage.</string>
+    <string name="peak_refresh_rate_summary">Automatically raises the refresh rate up to <xliff:g name="refresh_rate" example="120">%1$d</xliff:g> Hz for some content. Increases battery usage.</string>
     <!-- Display developer settings: Force to the highest refresh rate [CHAR LIMIT=NONE] -->
     <string name="force_high_refresh_rate_toggle">Force peak refresh rate</string>
     <!-- Display developer settings: Force to the highest refresh rate description [CHAR LIMIT=NONE]-->
@@ -2567,7 +2687,7 @@
     <string name="night_display_temperature_title">Intensity</string>
     <!-- Display settings screen, summary of night display when off and will *never* turn on automatically. [CHAR LIMIT=NONE] -->
     <string name="night_display_summary_off_auto_mode_never">Will never turn on automatically</string>
-         <!-- Display settings screen, summary format of night display when off and will turn on automatically at a user defined time. [CHAR LIMIT=NONE] -->
+    <!-- Display settings screen, summary format of night display when off and will turn on automatically at a user defined time. [CHAR LIMIT=NONE] -->
     <string name="night_display_summary_off_auto_mode_custom">Will turn on automatically at <xliff:g name="time" example="6 AM">%1$s</xliff:g></string>
     <!-- Display settings screen, summary of night display when off and will turn on automatically at sunset. [CHAR LIMIT=NONE] -->
     <string name="night_display_summary_off_auto_mode_twilight">Will turn on automatically at sunset</string>
@@ -2613,7 +2733,7 @@
     <string name="dark_ui_summary_off_auto_mode_never">Will never turn on automatically</string>
     <!-- Display settings screen, summary of Dark UI when off and will turn on automatically at sunset. [CHAR LIMIT=NONE] -->
     <string name="dark_ui_summary_off_auto_mode_auto">Will turn on automatically at sunset</string>
-        <!-- Display settings screen, summary format of night display when off and will turn on automatically at a user defined time. [CHAR LIMIT=NONE] -->
+    <!-- Display settings screen, summary format of night display when off and will turn on automatically at a user defined time. [CHAR LIMIT=NONE] -->
     <string name="dark_ui_summary_off_auto_mode_custom">Will turn on automatically at <xliff:g name="time" example="6 AM">%1$s</xliff:g></string>
     <!-- Display settings screen, summary of Dark UI when off and will turn on automatically at bedtime. [CHAR LIMIT=NONE] -->
     <string name="dark_ui_summary_off_auto_mode_custom_bedtime">Will turn on automatically at bedtime</string>
@@ -2975,8 +3095,8 @@
     <!-- Body of dialog informing user about the storage used by the Android System [CHAR LIMIT=NONE]-->
     <string name="storage_detail_dialog_system">System includes files used to run Android version <xliff:g id="version" example="8.0">%s</xliff:g></string>
 
-  <!-- Message to notify guest users as to why they can't set up the storage device [CHAR LIMIT=50]-->
-  <string name="storage_wizard_guest">Guest mode users cannot format SD cards</string>
+    <!-- Message to notify guest users as to why they can't set up the storage device [CHAR LIMIT=50]-->
+    <string name="storage_wizard_guest">Guest mode users cannot format SD cards</string>
 
     <!-- In-progress title. This string lets the user know the SD card is being formatted. The user won't be able to proceed with setup until this step is finished. The placeholder is for the name of the device (e.g. brand name of the SD card). [CHAR LIMIT=32] -->
     <string name="storage_wizard_format_progress_title">Formatting <xliff:g id="name" example="SD card">^1</xliff:g>\u2026</string>
@@ -3021,7 +3141,7 @@
     <!-- Body of a dialog. This text is confirming that the user wants to use their SD card as extra phone storage, but the formatting process will erase existing content on the card. The first placeholder is for the name of the device (e.g. a brand name of the SD card or USB drive). The second and third placeholders are for the general references (e.g. SD card, USB drive). [CHAR LIMIT=NONE] -->
     <string name="storage_wizard_format_confirm_v2_body">This <xliff:g id="name" example="SanDisk SD card">^1</xliff:g> needs to be formatted to store apps, files, and media.
 \n\nFormatting will erase existing content on the <xliff:g id="name" example="SD card">^2</xliff:g>. To avoid losing content, back it up to another <xliff:g id="name" example="SD card">^3</xliff:g> or device.</string>
-  <!-- Body of a dialog. This text is confirming that the user wants to use their SD card as portable storage, but the formatting process will erase existing content on the card. The first placeholder is for the name of the device (e.g. a brand name of the SD card or USB drive). The second and third placeholders are for the general references (e.g. SD card, USB drive). [CHAR LIMIT=NONE] -->
+    <!-- Body of a dialog. This text is confirming that the user wants to use their SD card as portable storage, but the formatting process will erase existing content on the card. The first placeholder is for the name of the device (e.g. a brand name of the SD card or USB drive). The second and third placeholders are for the general references (e.g. SD card, USB drive). [CHAR LIMIT=NONE] -->
     <string name="storage_wizard_format_confirm_v2_body_external">This <xliff:g id="name" example="SanDisk SD card">^1</xliff:g> needs to be formatted to store photos, videos, music, and more.
         \n\nFormatting will erase existing content on the <xliff:g id="name" example="SD card">^2</xliff:g>. To avoid losing content, back it up to another <xliff:g id="name" example="SD card">^3</xliff:g> or device.</string>
     <!-- Button text. If a user taps this button, their SD card or USB device will be formatted and used as extra phone storage. The placeholder is for the specific device (e.g. SD card, USB drive, etc.). [CHAR LIMIT=16] -->
@@ -3079,6 +3199,8 @@
     <string name="apn_settings">APNs</string>
     <!-- Screen title after user selects APNs setting option -->
     <string name="apn_edit">Edit access point</string>
+    <!-- Screen title after user selects add APNs setting -->
+    <string name="apn_add">Add access point</string>
     <!-- Edit access point label summary text when no value has been set -->
     <string name="apn_not_set">Not set</string>
     <!-- Edit access point label summary text when no value has been set for mvno value. [CHAR LIMIT=NONE]-->
@@ -3121,6 +3243,10 @@
     <string name="carrier_enabled_summaryOff">APN disabled</string>
     <!-- Edit Beaerer Info of APN -->
     <string name="bearer">Bearer</string>
+    <!-- Edit Network Type Info of APN -->
+    <string name="network_type">Network type</string>
+    <!-- Network type unspecified -->
+    <string name="network_type_unspecified">Unspecified</string>
     <!-- Edit Mvno Type Info of APN -->
     <string name="mvno_type">MVNO type</string>
     <!-- Edit Mvno Match Data Info of APN -->
@@ -4550,6 +4676,8 @@
     <string name="accessibility_tutorial_dialog_title_volume">Hold volume keys to open</string>
     <!-- Title for the accessibility tutorial dialog in accessibility service with triple tap. [CHAR LIMIT=100] -->
     <string name="accessibility_tutorial_dialog_title_triple">Triple tap screen to open</string>
+    <!-- Title for the accessibility tutorial dialog in accessibility service with two finger triple tap. [CHAR LIMIT=100] -->
+    <string name="accessibility_tutorial_dialog_title_two_finger_triple">Two finger triple tap screen to open</string>
     <!-- Title for the accessibility tutorial dialog in accessibility service with gesture. [CHAR LIMIT=50] -->
     <string name="accessibility_tutorial_dialog_title_gesture">Use gesture to open</string>
     <!-- Title for the accessibility tutorial dialog in gesture navigation settings. [CHAR LIMIT=50] -->
@@ -4562,6 +4690,8 @@
     <string name="accessibility_tutorial_dialog_message_volume">To use this feature, press &amp; hold both volume keys.</string>
     <!-- Instruction for the accessibility tutorial dialog in accessibility service with triple tap. [CHAR LIMIT=100] -->
     <string name="accessibility_tutorial_dialog_message_triple">To start and stop magnification, triple-tap anywhere on your screen.</string>
+    <!-- Instruction for the accessibility tutorial dialog in accessibility service with two finger triple tap. [CHAR LIMIT=100] -->
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple">To start and stop magnification, triple-tap anywhere on your screen with two fingers.</string>
     <!-- Message for the accessibility tutorial dialog when user enables an accessibility service while using gesture navigation and touch exploration is not enabled. [CHAR LIMIT=NONE] -->
     <string name="accessibility_tutorial_dialog_message_gesture">To use this feature, swipe up from the bottom of the screen with 2 fingers.\n\nTo switch between features, swipe up with 2 fingers and hold.</string>
     <!-- Message for the accessibility tutorial dialog when user enables an accessibility service while using gesture navigation and touch exploration is enabled. [CHAR LIMIT=NONE] -->
@@ -4604,6 +4734,12 @@
     <string name="accessibility_shortcut_hardware_keyword">hold 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 triple tap shortcut in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_triple_tap">Two-finger triple-tap screen</string>
+    <!-- Part of list to compose user's accessibility shortcut list. [CHAR LIMIT=NONE] -->
+    <string name="accessibility_shortcut_two_finger_triple_tap_keyword">two-finger triple-tap screen</string>
+    <!-- Summary for two finger triple tap shortcut in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_triple_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] -->
@@ -4804,6 +4940,8 @@
     <string name="accessibility_alarm_vibration_title">Alarm vibration</string>
     <!-- Title for preference for configuring media vibrations (e.g. vibrations played together with animations, music, videos, etc). [CHAR LIMIT=NONE] -->
     <string name="accessibility_media_vibration_title">Media vibration</string>
+    <!-- Toggle for keyboard vibration. [CHAR LIMIT=NONE]-->
+    <string name="accessibility_keyboard_vibration_title">Keyboard vibration</string>
     <!-- Title for accessibility preference for configuring ring vibrations. [CHAR LIMIT=NONE] -->
     <string name="accessibility_ring_vibration_title">Ring vibration</string>
     <!-- Title for accessibility preference for configuring notification vibrations. -->
@@ -5328,6 +5466,10 @@
 
     <!-- Category title for battery background settings in power usage detail page [CHAR LIMIT=NONE] -->
     <string name="manager_battery_usage_category_title">Manage battery usage</string>
+    <!-- Title for allow background usage [CHAR LIMIT=NONE] -->
+    <string name="manager_battery_usage_allow_background_usage_title">Allow background usage</string>
+    <!-- Summary for allow background usage [CHAR LIMIT=NONE] -->
+    <string name="manager_battery_usage_allow_background_usage_summary">Enable for real-time updates, disable to save battery</string>
     <!-- Title for the battery unrestricted settings [CHAR_LIMIT=40] -->
     <string name="manager_battery_usage_unrestricted_title">Unrestricted</string>
     <!-- Title for the battery optimized settings [CHAR_LIMIT=40] -->
@@ -5563,8 +5705,10 @@
     <string name="battery_usage_without_time"></string>
     <!-- Description for the specific time slot in the battery usage page [CHAR LIMIT=120] -->
     <string name="battery_usage_since_last_full_charge">since last full charge</string>
-   <!-- Description for system apps aggregated battery usage data [CHAR LIMIT=120] -->
+    <!-- Description for system apps aggregated battery usage data [CHAR LIMIT=120] -->
     <string name="battery_usage_system_apps">System apps</string>
+    <!-- Description for uninstalled apps aggregated battery usage data [CHAR LIMIT=120] -->
+    <string name="battery_usage_uninstalled_apps">Uninstalled apps</string>
     <!-- Description for others battery usage data [CHAR LIMIT=120] -->
     <string name="battery_usage_others">Others</string>
 
@@ -6180,6 +6324,8 @@
     <string name="account_settings_menu_auto_sync_personal">Auto-sync personal data</string>
     <!--  Title for menu option to enable global auto-sync of work account data [CHAR LIMIT=30] -->
     <string name="account_settings_menu_auto_sync_work">Auto-sync work data</string>
+    <!--  Title for menu option to enable global auto-sync of private account data [CHAR LIMIT=30] -->
+    <string name="account_settings_menu_auto_sync_private">Auto-sync private data</string>
 
     <!-- Title for option to change data usage cycle day. [CHAR LIMIT=32] -->
     <string name="data_usage_change_cycle">Change cycle\u2026</string>
@@ -6294,10 +6440,6 @@
     <string name="vpn_type">Type</string>
     <!-- Input label for the server address of a VPN profile. [CHAR LIMIT=40] -->
     <string name="vpn_server">Server address</string>
-    <!-- Checkbox label to enable PPP encryption for a VPN profile. [CHAR LIMIT=40] -->
-    <string name="vpn_mppe">PPP encryption (MPPE)</string>
-    <!-- Input label for the L2TP secret of a VPN profile. [CHAR LIMIT=40] -->
-    <string name="vpn_l2tp_secret">L2TP secret</string>
     <!-- Input label for the IPSec identifier of a VPN profile. [CHAR LIMIT=40] -->
     <string name="vpn_ipsec_identifier">IPSec identifier</string>
     <!-- Input label for the IPSec pre-shared key of a VPN profile. [CHAR LIMIT=40] -->
@@ -6310,12 +6452,6 @@
     <string name="vpn_ipsec_server_cert">IPSec server certificate</string>
     <!-- Checkbox label to show advanced options of a VPN profile. [CHAR LIMIT=40] -->
     <string name="vpn_show_options">Show advanced options</string>
-    <!-- Input label for the DNS search domains of a VPN profile. [CHAR LIMIT=40] -->
-    <string name="vpn_search_domains">DNS search domains</string>
-    <!-- Input label for the DNS servers of a VPN profile. [CHAR LIMIT=40] -->
-    <string name="vpn_dns_servers">DNS servers (e.g. 8.8.8.8)</string>
-    <!-- Input label for the forwarding routes of a VPN profile. [CHAR LIMIT=40] -->
-    <string name="vpn_routes">Forwarding routes (e.g. 10.0.0.0/8)</string>
     <!-- Input label for the username of a VPN profile. [CHAR LIMIT=40] -->
     <string name="vpn_username">Username</string>
     <!-- Input label for the password of a VPN profile. [CHAR LIMIT=40] -->
@@ -6329,22 +6465,6 @@
     <!-- Option to use the server certificate received from the VPN server. [CHAR LIMIT=40] -->
     <string name="vpn_no_server_cert">(received from server)</string>
     <!-- Error message displayed below the always-on VPN checkbox when the checkbox is disabled:
-        the selected VPN type doesn't support always-on. [CHAR LIMIT=120] -->
-    <string name="vpn_always_on_invalid_reason_type">This VPN type can\'t stay connected at all
-        times</string>
-    <!-- Error message displayed below the always-on VPN checkbox when the checkbox is disabled:
-        the server address is not in numeric form (e.g. 8.8.8.8). [CHAR LIMIT=120] -->
-    <string name="vpn_always_on_invalid_reason_server">Always-on VPN only supports numeric server
-        addresses</string>
-    <!-- Error message displayed below the always-on VPN checkbox when the checkbox is disabled:
-        no DNS is found. [CHAR LIMIT=120] -->
-    <string name="vpn_always_on_invalid_reason_no_dns">A DNS server must be specified for always-on
-        VPN</string>
-    <!-- Error message displayed below the always-on VPN checkbox when the checkbox is disabled:
-        DNS server addresses are not in numeric form (e.g. 8.8.8.8). [CHAR LIMIT=120] -->
-    <string name="vpn_always_on_invalid_reason_dns">DNS server addresses must be numeric for
-        always-on VPN</string>
-    <!-- Error message displayed below the always-on VPN checkbox when the checkbox is disabled:
         generic error. [CHAR LIMIT=120] -->
     <string name="vpn_always_on_invalid_reason_other">The information entered doesn\'t support
         always-on VPN</string>
@@ -6896,6 +7016,8 @@
     <string name="help_url_insecure_vpn" translatable="false"></string>
     <!-- url for learning more about IT admin policy disabling -->
     <string name="help_url_action_disabled_by_it_admin" translatable="false"></string>
+    <!-- url for learning more about bluetooth audio sharing -->
+    <string name="help_url_audio_sharing" translatable="false"></string>
 
     <!-- User account title [CHAR LIMIT=30] -->
     <string name="user_account_title">Account for content</string>
@@ -7331,6 +7453,9 @@
     <!-- List of synonyms for the nfc tag apps control [CHAR LIMIT=NONE] -->
     <string name="keywords_change_nfc_tag_apps_state">nfc, tag, reader</string>
 
+    <!-- List of synonyms for keyboard vibration settings search [CHAR LIMIT=NONE] -->
+    <string name="keywords_keyboard_vibration">keyboard, haptics, vibrate,</string>
+
     <!-- Summary for sound settings, explaining a few important settings under it [CHAR LIMIT=NONE]-->
     <string name="sound_dashboard_summary">Volume, vibration, Do Not Disturb</string>
 
@@ -7824,7 +7949,7 @@
     <string name="notification_history_off_title_extended">Notification history turned off</string>
 
     <!--  Notification history screen; summary when history is off [CHAR LIMIT=NONE] -->
-   <string name="notification_history_off_summary">Turn on notification history to see recent notifications and snoozed notifications</string>
+    <string name="notification_history_off_summary">Turn on notification history to see recent notifications and snoozed notifications</string>
 
     <!-- Notification history screen; title when history is newly turned on [CHAR LIMIT=200] -->
     <string name="history_toggled_on_title">No recent notifications</string>
@@ -7960,7 +8085,7 @@
     <string name="lock_screen_notifications_summary_disable">Don\u2019t show notifications at all</string>
 
     <!-- Security > Choose PIN/PW/Pattern > Notification redaction interstitial: Message asking the user how they want their notifications to appear when the device is locked [CHAR LIMIT=NONE] -->
-    <string name="lock_screen_notifications_interstitial_message">How do you want the lock screen to display?</string>
+    <string name="lock_screen_notifications_interstitial_message">What do you want your lock screen to show?</string>
 
     <!-- Security > Choose PIN/PW/Pattern > Notification redaction interstitial: Title for the screen asking the user how much notification content they want to see on their lock screen [CHAR LIMIT=30] -->
     <string name="lock_screen_notifications_interstitial_title">Lock screen</string>
@@ -8206,6 +8331,20 @@
     <string name="notif_listener_more_settings">More settings</string>
     <string name="notif_listener_more_settings_desc">More settings are available inside this app</string>
 
+    <!-- Title for Polite Notifications setting  [CHAR LIMIT=30]-->
+    <string name="notification_polite_title">Notification cooldown</string>
+    <string name="notification_polite_all_apps">Apply cooldown to all notifications</string>
+    <string name="notification_polite_all_apps_summary">Gradually lower the notification volume when you get many successive notifications from the same app</string>
+    <string name="notification_polite_conversations">Apply cooldown to conversations</string>
+    <string name="notification_polite_conversations_summary">Gradually lower the notification volume when you get many messages from the same chat within a short period of time</string>
+    <string name="notification_polite_disabled">Don\'t use notification cooldown</string>
+    <string name="notification_polite_disabled_summary">Never lower notification volume, regardless of the amount of successive notifications from the same app</string>
+    <string name="notification_polite_vibrate_unlocked">Vibrate when unlocked</string>
+    <string name="notification_polite_vibrate_unlocked_summary">Only vibrate when screen is unlocked</string>
+    <string name="notification_polite_work">Apply to work profiles</string>
+    <string name="notification_polite_work_summary">Apply the notification cooldown settings from your personal profile to your work profile</string>
+
+
     <!-- Title for managing VR (virtual reality) helper services. [CHAR LIMIT=50] -->
     <string name="vr_listeners_title">VR helper services</string>
 
@@ -9385,6 +9524,13 @@
     <!-- Label for showing apps that can manage external storage[CHAR LIMIT=45] -->
     <string name="filter_manage_external_storage">Can access all files</string>
 
+    <!-- Voice Activation apps settings title [CHAR LIMIT=40] -->
+    <string name="voice_activation_apps_title">Voice activation apps</string>
+    <!-- Label for a setting which controls whether an app can be voice activated [CHAR LIMIT=NONE] -->
+    <string name="permit_voice_activation_apps">Allow voice activation</string>
+    <!-- Description for a setting which controls whether an app can be voice activated [CHAR LIMIT=NONE] -->
+    <string name ="allow_voice_activation_apps_description">Voice activation turns-on approved apps, hands-free, using voice command. Built-in adaptive sensing ensures data stays private only to you.\n\n<a href="">More about protected adaptive sensing</a></string>
+
     <!-- Manage full screen intent permission title [CHAR LIMIT=40] -->
     <string name="full_screen_intent_title">Full screen notifications</string>
 
@@ -9856,6 +10002,9 @@
     <!-- Summary of apps anomaly for higher than usual in foreground [CHAR LIMIT=NONE] -->
     <string name="battery_tips_apps_summary_higher_than_usual_in_foreground"><xliff:g id="app_label" example="Pokemon Go">%1$s</xliff:g> used more battery than usual while in the foreground</string>
 
+    <!-- Content description of the icon in power anomaly banner [CHAR LIMIT=NONE] -->
+    <string name="battery_usage_anomaly_content_description">Battery usage anomaly</string>
+
     <!-- Label of hint for apps anomaly in battery usage [CHAR LIMIT=NONE] -->
     <string name="battery_app_item_hint">High battery usage</string>
 
@@ -10117,7 +10266,7 @@
     <!-- Title text for swiping from bottom corners to invoke the digital assistant app. [CHAR LIMIT=60] -->
     <string name="assistant_corner_gesture_title">Swipe to invoke assistant</string>
     <!-- Summary text for swiping from bottom corners to invoke the digital assistant app. [CHAR LIMIT=NONE] -->
-    <string name="assistant_corner_gesture_summary">Swipe up from a bottom corner to invoke digital assistant app.</string>
+    <string name="assistant_corner_gesture_summary">Swipe up from a bottom corner to invoke digital assistant app</string>
 
     <!-- Title text for holding a long press on Home button to invoke the digital assistant app. [CHAR LIMIT=60] -->
     <string name="assistant_long_press_home_gesture_title">Hold Home for Assistant</string>
@@ -10565,8 +10714,9 @@
         <b>Use <xliff:g id="app_name" example="Provider">%1$s</xliff:g>\?</b>
         <br/>
         <br/>
-        <xliff:g id="app_name" example="Provider">%1$s</xliff:g> uses what\'s on
-        your screen to determine what can be autofilled. New passwords, passkeys and other info will be saved here from now on.
+        New passwords, passkeys, and other info will be saved here from now on.
+        <xliff:g id="app_name" example="Provider">%1$s</xliff:g> may use what\'s on your
+        screen to determine what can be autofilled.
         ]]>
     </string>
 
@@ -12472,4 +12622,18 @@
     <string name="quarantined_apps_title" translatable="false">Quarantined Apps</string>
     <!-- Do not translate. Developer settings: Button to unquarantine an app [CHAR LIMIT=20] -->
     <string name="unquarantine_app_button" translatable="false">Unquarantine app</string>
+
+    <!-- Title of preference to manage content protection settings -->
+    <string name="content_protection_preference_title">Scanning for deceptive apps</string>
+    <!-- Summary of the preference to manage content protection settings -->
+    <string name="content_protection_preference_summary">Check app activity for phishing</string>
+    <!-- Title of the switch bar on the subpage of content protection settings -->
+    <string name="content_protection_preference_user_consent_switch_title">Use scanning for deceptive apps</string>
+    <!-- Title of the toggle switch of work apps on the subpage of content protection settings -->
+    <string name="content_protection_preference_user_consent_work_profile_switch_title">Use scanning for deceptive apps for work</string>
+
+    <!-- Default summary of the subpage of content protection settings. Will be overlaid by OEM. -->
+    <string name="content_protection_preference_subpage_summary"></string>
+    <!-- Default information at the bottom of the subpage of content protection settings. Will be overlaid by OEM. -->
+    <string name="content_protection_preference_subpage_info"></string>
 </resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index ee78a45..0786458 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -121,6 +121,7 @@
         <item name="android:textAppearance">@android:style/TextAppearance.DeviceDefault.Medium</item>
         <item name="android:textColorHint">?android:attr/textColorSecondary</item>
         <item name="android:minHeight">@dimen/min_tap_target_size</item>
+        <item name="android:maxLength">500</item>
     </style>
 
     <style name="wifi_section">
@@ -215,10 +216,6 @@
 
     <style name="TextAppearance.Medium" parent="@android:style/TextAppearance.DeviceDefault.Medium"/>
     <style name="TextAppearance.Small" parent="@android:style/TextAppearance.DeviceDefault.Small"/>
-    <style name="TextAppearance.Switch"
-           parent="@android:style/TextAppearance.DeviceDefault.Widget.ActionBar.Title">
-        <item name="android:textSize">16sp</item>
-    </style>
 
     <style name="TextAppearance.CategoryTitle"
            parent="@*android:style/TextAppearance.DeviceDefault.Body2">
@@ -242,11 +239,6 @@
         <item name="android:textColor">?android:attr/colorError</item>
     </style>
 
-    <style name="TextAppearance.Small.SwitchBar">
-        <item name="android:textColor">?android:attr/textColorPrimary</item>
-        <item name="android:textStyle">normal</item>
-    </style>
-
     <style name="TextAppearance.RemoveDialogContent"
            parent="@android:style/TextAppearance.DeviceDefault">
         <item name="android:textSize">16sp</item>
@@ -442,6 +434,15 @@
         <item name="android:textSize">14sp</item>
         <item name="android:textColor">?android:attr/textColorPrimary</item>
         <item name="android:paddingBottom">24dp</item>
+        <item name="android:textIsSelectable">true</item>
+    </style>
+
+    <style name="DeviceAudioSharingText">
+        <item name="android:textAlignment">viewStart</item>
+        <item name="android:fontFamily">@*android:string/config_bodyFontFamily</item>
+        <item name="android:textSize">14sp</item>
+        <item name="android:textColor">?android:attr/textColorPrimary</item>
+        <item name="android:paddingBottom">24dp</item>
     </style>
 
     <style name="ContextualCardStyle">
@@ -953,4 +954,40 @@
         <item name="android:fontFamily">google-sans-text</item>
     </style>
 
+    <style name="PrivateSpaceSetupTextFontStyle">
+        <item name="android:textColor">?android:attr/textColorPrimary</item>
+        <item name="android:fontFamily">google-sans-text</item>
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">wrap_content</item>
+    </style>
+
+    <style name="PrivateSpaceSetupSubHeaderStyle" parent="@style/PrivateSpaceSetupTextFontStyle">
+        <item name="android:paddingLeft">24dp</item>
+        <item name="android:paddingRight">24dp</item>
+        <item name="android:paddingTop">20dp</item>
+        <item name="android:paddingBottom">8dp</item>
+        <item name="android:textSize">14sp</item>
+    </style>
+
+    <style name="PrivateSpaceSetupBulletPointLayoutStyle">
+        <item name="android:paddingLeft">24dp</item>
+        <item name="android:paddingRight">24dp</item>
+        <item name="android:paddingTop">16dp</item>
+        <item name="android:paddingBottom">16dp</item>
+        <item name="android:layout_width">fill_parent</item>
+        <item name="android:layout_height">wrap_content</item>
+    </style>
+
+    <style name="PrivateSpaceBulletPointTextFontStyle" parent="@style/PrivateSpaceSetupTextFontStyle">
+        <item name="android:paddingLeft">16dp</item>
+        <item name="android:textSize">16sp</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_alignParentTop">true</item>
+    </style>
+
 </resources>
diff --git a/res/values/styles_preference.xml b/res/values/styles_preference.xml
index 10c7e69..ec0a747 100644
--- a/res/values/styles_preference.xml
+++ b/res/values/styles_preference.xml
@@ -49,7 +49,7 @@
         <item name="iconSpaceReserved">@bool/settingslib_config_icon_space_reserved</item>
     </style>
 
-    <style name="SyncSwitchPreference" parent="@style/SettingsSwitchPreference.SettingsLib">
+    <style name="SyncSwitchPreference" parent="@style/SettingsSwitchPreferenceCompat.SettingsLib">
         <item name="android:widgetLayout">@layout/preference_widget_sync_toggle</item>
     </style>
 
diff --git a/res/values/themes.xml b/res/values/themes.xml
index 3e6192b..b149bb8 100644
--- a/res/values/themes.xml
+++ b/res/values/themes.xml
@@ -52,8 +52,6 @@
         <!-- Redefine the ActionBar style for contentInsetStart -->
         <item name="android:actionBarStyle">@style/Widget.ActionBar</item>
 
-        <item name="switchBarTheme">@style/ThemeOverlay.SwitchBar.Settings</item>
-
         <item name="preferenceBackgroundColor">@drawable/preference_background</item>
 
         <!-- For AndroidX AlertDialog -->
@@ -88,7 +86,6 @@
         <!-- Redefine the ActionBar style for contentInsetStart -->
         <item name="android:actionBarStyle">@style/Widget.ActionBar.SubSettings</item>
 
-        <item name="switchBarTheme">@style/ThemeOverlay.SwitchBar.Settings</item>
         <item name="android:navigationBarColor">@android:color/transparent</item>
         <item name="android:statusBarColor">@android:color/transparent</item>
     </style>
@@ -109,23 +106,9 @@
         <item name="android:textColorHint">?android:attr/textColorSecondary</item>
     </style>
 
-    <style name="ThemeOverlay.SwitchBar.Settings.Base" parent="@*android:style/ThemeOverlay.DeviceDefault.ActionBar">
-        <item name="android:elevation">1dp</item>
-        <item name="switchBarMarginStart">@dimen/switchbar_subsettings_margin_start</item>
-        <item name="switchBarMarginEnd">@dimen/switchbar_subsettings_margin_end</item>
-        <item name="switchBarBackgroundColor">@color/switchbar_background_color</item>
-        <item name="switchBarBackgroundActivatedColor">?android:attr/colorAccent</item>
-        <item name="switchBarRestrictionIcon">@*android:drawable/ic_info</item>
-    </style>
-
-    <style name="ThemeOverlay.SwitchBar.Settings" parent="ThemeOverlay.SwitchBar.Settings.Base"/>
-
-    <style name="Widget.SwitchBar.Switch" parent="@android:style/Widget.Material.CompoundButton.Switch">
-        <item name="android:trackTint">@color/switchbar_switch_track_tint</item>
-        <item name="android:thumbTint">@color/switchbar_switch_thumb_tint</item>
-        <item name="android:minHeight">@dimen/min_tap_target_size</item>
-        <item name="android:minWidth">@dimen/min_tap_target_size</item>
-    </style>
+    <!-- TODO: Clean up this -->
+    <style name="ThemeOverlay.SwitchBar.Settings"
+        parent="@*android:style/ThemeOverlay.DeviceDefault.ActionBar" />
 
     <style name="ThemeOverlay.AlertDialog" parent="@android:style/ThemeOverlay.Material.Dialog.Alert">
         <item name="android:windowSoftInputMode">adjustResize</item>
@@ -240,6 +223,7 @@
 
     <style name="Theme.Panel.Material" parent="Theme.Panel">
         <item name="android:switchStyle">@style/Switch.SettingsLib</item>
+        <item name="switchStyle">@style/SwitchCompat.SettingsLib</item>
 
         <item name="notification_importance_button_background_color_unselected">@android:color/transparent</item>
         <item name="notification_importance_button_border_color_unselected">@android:color/system_outline_variant_light</item>
diff --git a/res/values/themes_suw.xml b/res/values/themes_suw.xml
index a7fcc39..71d9fcb 100644
--- a/res/values/themes_suw.xml
+++ b/res/values/themes_suw.xml
@@ -259,6 +259,7 @@
         <item name="android:textAppearanceListItem">@style/TextAppearance.PreferenceTitle.SettingsLib</item>
         <item name="preferenceTheme">@style/PreferenceTheme.SettingsLib</item>
         <item name="android:switchStyle">@style/Switch.SettingsLib</item>
+        <item name="switchStyle">@style/SwitchCompat.SettingsLib</item>
         <item name="preferenceFragmentCompatStyle">@style/SetupWizardPreferenceFragmentStyle</item>
     </style>
 
diff --git a/res/xml/accessibility_audio_adjustment.xml b/res/xml/accessibility_audio_adjustment.xml
index c38b4ad..92e6d8d 100644
--- a/res/xml/accessibility_audio_adjustment.xml
+++ b/res/xml/accessibility_audio_adjustment.xml
@@ -21,7 +21,7 @@
     android:persistent="false"
     android:title="@string/accessibility_audio_adjustment_title">
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="toggle_primary_mono"
         android:persistent="false"
         android:summary="@string/accessibility_toggle_primary_mono_summary"
diff --git a/res/xml/accessibility_button_settings.xml b/res/xml/accessibility_button_settings.xml
index ab9fc41..2b1392d 100644
--- a/res/xml/accessibility_button_settings.xml
+++ b/res/xml/accessibility_button_settings.xml
@@ -56,7 +56,7 @@
         android:title="@string/accessibility_button_size_title"
         settings:controller="com.android.settings.accessibility.FloatingMenuSizePreferenceController" />
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="accessibility_button_fade"
         android:persistent="false"
         android:summary="@string/accessibility_button_fade_summary"
diff --git a/res/xml/accessibility_color_and_motion.xml b/res/xml/accessibility_color_and_motion.xml
index a313526..3b2e78d 100644
--- a/res/xml/accessibility_color_and_motion.xml
+++ b/res/xml/accessibility_color_and_motion.xml
@@ -49,7 +49,7 @@
         settings:controller="com.android.settings.display.DarkUIPreferenceController"
         settings:searchable="false"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:icon="@drawable/ic_accessibility_animation"
         android:key="toggle_disable_animations"
         android:persistent="false"
@@ -57,7 +57,7 @@
         android:title="@string/accessibility_disable_animations"
         settings:controller="com.android.settings.accessibility.DisableAnimationsPreferenceController"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="toggle_large_pointer_icon"
         android:persistent="false"
         android:summary="@string/accessibility_toggle_large_pointer_icon_summary"
diff --git a/res/xml/accessibility_hearing_aids.xml b/res/xml/accessibility_hearing_aids.xml
index b13eb74..20c8e29 100644
--- a/res/xml/accessibility_hearing_aids.xml
+++ b/res/xml/accessibility_hearing_aids.xml
@@ -53,7 +53,7 @@
             android:fragment="com.android.settings.accessibility.AccessibilityAudioRoutingFragment"
             settings:controller="com.android.settings.accessibility.HearingAidAudioRoutingPreferenceController"/>
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="hearing_aid_compatibility"
             android:order="30"
             android:title="@string/accessibility_hac_mode_title"
diff --git a/res/xml/accessibility_settings.xml b/res/xml/accessibility_settings.xml
index f90d8b6..0f4065b 100644
--- a/res/xml/accessibility_settings.xml
+++ b/res/xml/accessibility_settings.xml
@@ -141,7 +141,7 @@
         android:persistent="false"
         android:title="@string/audio_category_title">
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="toggle_audio_description"
             android:persistent="false"
             android:icon="@drawable/ic_audio_description"
diff --git a/res/xml/accessibility_shortcuts_settings.xml b/res/xml/accessibility_shortcuts_settings.xml
index 2863335..c807056 100644
--- a/res/xml/accessibility_shortcuts_settings.xml
+++ b/res/xml/accessibility_shortcuts_settings.xml
@@ -28,7 +28,7 @@
         android:summary="@string/accessibility_button_summary"
         settings:controller="com.android.settings.accessibility.AccessibilityButtonPreferenceController"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="accessibility_shortcut_preference"
         android:persistent="false"
         android:title="@string/accessibility_shortcut_service_on_lock_screen_title"
diff --git a/res/xml/accessibility_system_controls.xml b/res/xml/accessibility_system_controls.xml
index 37c4d67..460214f 100644
--- a/res/xml/accessibility_system_controls.xml
+++ b/res/xml/accessibility_system_controls.xml
@@ -36,7 +36,7 @@
         settings:searchable="false"
         settings:controller="com.android.settings.gestures.OneHandedEnablePreferenceController"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="toggle_power_button_ends_call_preference"
         android:persistent="false"
         android:title="@string/accessibility_power_button_ends_call_prerefence_title"
@@ -44,7 +44,7 @@
 
     <!-- Standard auto-rotation preference that will be shown when device state based auto-rotation
          settings are NOT available. -->
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="toggle_lock_screen_rotation_preference"
         android:persistent="false"
         android:title="@string/accelerometer_title"
diff --git a/res/xml/accessibility_text_reading_options.xml b/res/xml/accessibility_text_reading_options.xml
index 09954b3..0711a3f 100644
--- a/res/xml/accessibility_text_reading_options.xml
+++ b/res/xml/accessibility_text_reading_options.xml
@@ -45,7 +45,7 @@
         settings:iconStartContentDescription="@string/screen_zoom_make_smaller_desc"
         settings:keywords="@string/keywords_display_size" />
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="toggle_force_bold_text"
         android:persistent="false"
         android:title="@string/force_bold_text"
@@ -53,7 +53,7 @@
             "com.android.settings.accessibility.FontWeightAdjustmentPreferenceController"
         settings:keywords="@string/keywords_bold_text" />
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="toggle_high_text_contrast_preference"
         android:persistent="false"
         android:summary="@string/accessibility_toggle_high_text_contrast_preference_summary"
diff --git a/res/xml/accessibility_vibration_intensity_settings.xml b/res/xml/accessibility_vibration_intensity_settings.xml
index d9505b5..f9a5578 100644
--- a/res/xml/accessibility_vibration_intensity_settings.xml
+++ b/res/xml/accessibility_vibration_intensity_settings.xml
@@ -35,7 +35,7 @@
             app:keywords="@string/keywords_ring_vibration"
             app:controller="com.android.settings.accessibility.RingVibrationIntensityPreferenceController" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="vibration_intensity_preference_ramping_ringer"
             android:title="@string/vibrate_when_ringing_option_ramping_ringer"
             app:keywords="@string/keywords_ramping_ringer_vibration"
@@ -77,6 +77,12 @@
             app:keywords="@string/keywords_media_vibration"
             app:controller="com.android.settings.accessibility.MediaVibrationIntensityPreferenceController" />
 
+        <SwitchPreferenceCompat
+            android:key="vibration_intensity_preference_keyboard"
+            android:title="@string/accessibility_keyboard_vibration_title"
+            app:keywords="@string/keywords_keyboard_vibration"
+            app:controller="com.android.settings.accessibility.KeyboardVibrationTogglePreferenceController"/>
+
     </PreferenceCategory>
 
 </PreferenceScreen>
diff --git a/res/xml/accessibility_vibration_settings.xml b/res/xml/accessibility_vibration_settings.xml
index 5e2f923..3ce92a6 100644
--- a/res/xml/accessibility_vibration_settings.xml
+++ b/res/xml/accessibility_vibration_settings.xml
@@ -29,13 +29,13 @@
         android:key="vibration_category_call"
         android:title="@string/accessibility_call_vibration_category_title">
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="vibration_preference_ring"
             android:title="@string/accessibility_ring_vibration_title"
             app:keywords="@string/keywords_ring_vibration"
             app:controller="com.android.settings.accessibility.RingVibrationTogglePreferenceController" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="vibration_preference_ramping_ringer"
             android:title="@string/vibrate_when_ringing_option_ramping_ringer"
             app:keywords="@string/keywords_ramping_ringer_vibration"
@@ -47,13 +47,13 @@
         android:key="vibration_category_notification_alarm"
         android:title="@string/accessibility_notification_alarm_vibration_category_title">
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="vibration_preference_notification"
             android:title="@string/accessibility_notification_vibration_title"
             app:keywords="@string/keywords_notification_vibration"
             app:controller="com.android.settings.accessibility.NotificationVibrationTogglePreferenceController" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="vibration_preference_alarm"
             android:title="@string/accessibility_alarm_vibration_title"
             app:keywords="@string/keywords_alarm_vibration"
@@ -65,18 +65,24 @@
         android:key="vibration_category_haptics"
         android:title="@string/accessibility_interactive_haptics_category_title">
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="vibration_preference_touch"
             android:title="@string/accessibility_touch_vibration_title"
             app:keywords="@string/keywords_touch_vibration"
             app:controller="com.android.settings.accessibility.HapticFeedbackTogglePreferenceController" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="vibration_preference_media"
             android:title="@string/accessibility_media_vibration_title"
             app:keywords="@string/keywords_media_vibration"
             app:controller="com.android.settings.accessibility.MediaVibrationTogglePreferenceController" />
 
+        <SwitchPreferenceCompat
+            android:key="vibration_preference_keyboard"
+            android:title="@string/accessibility_keyboard_vibration_title"
+            app:keywords="@string/keywords_keyboard_vibration"
+            app:controller="com.android.settings.accessibility.KeyboardVibrationTogglePreferenceController"/>
+
     </PreferenceCategory>
 
 </PreferenceScreen>
diff --git a/res/xml/accounts_dashboard_settings.xml b/res/xml/accounts_dashboard_settings.xml
index c8627e7..f332d52 100644
--- a/res/xml/accounts_dashboard_settings.xml
+++ b/res/xml/accounts_dashboard_settings.xml
@@ -49,21 +49,21 @@
         android:key="dashboard_tile_placeholder"
         android:order="130"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="auto_sync_account_data"
         android:title="@string/auto_sync_account_title"
         android:summary="@string/auto_sync_account_summary"
         android:order="202"
         settings:allowDividerAbove="true"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="auto_sync_work_account_data"
         android:title="@string/account_settings_menu_auto_sync_work"
         android:summary="@string/auto_sync_account_summary"
         settings:forWork="true"
         android:order="203"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="auto_sync_personal_account_data"
         android:title="@string/account_settings_menu_auto_sync_personal"
         android:summary="@string/auto_sync_account_summary"
diff --git a/res/xml/accounts_dashboard_settings_credman.xml b/res/xml/accounts_dashboard_settings_credman.xml
index 83c16a2..7bcf62d 100644
--- a/res/xml/accounts_dashboard_settings_credman.xml
+++ b/res/xml/accounts_dashboard_settings_credman.xml
@@ -49,21 +49,21 @@
         android:key="dashboard_tile_placeholder"
         android:order="130"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="auto_sync_account_data"
         android:title="@string/auto_sync_account_title"
         android:summary="@string/auto_sync_account_summary"
         android:order="202"
         settings:allowDividerAbove="true"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="auto_sync_work_account_data"
         android:title="@string/account_settings_menu_auto_sync_work"
         android:summary="@string/auto_sync_account_summary"
         settings:forWork="true"
         android:order="203"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="auto_sync_personal_account_data"
         android:title="@string/account_settings_menu_auto_sync_personal"
         android:summary="@string/auto_sync_account_summary"
diff --git a/res/xml/accounts_personal_dashboard_settings.xml b/res/xml/accounts_personal_dashboard_settings.xml
index e0ba71b..2d4d682 100644
--- a/res/xml/accounts_personal_dashboard_settings.xml
+++ b/res/xml/accounts_personal_dashboard_settings.xml
@@ -50,14 +50,14 @@
         android:key="dashboard_tile_placeholder"
         android:order="130"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="auto_sync_account_data"
         android:title="@string/auto_sync_account_title"
         android:summary="@string/auto_sync_account_summary"
         android:order="200"
         settings:allowDividerAbove="true"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="auto_sync_personal_account_data"
         android:title="@string/account_settings_menu_auto_sync_personal"
         android:summary="@string/auto_sync_account_summary"
diff --git a/res/xml/accounts_personal_dashboard_settings_credman.xml b/res/xml/accounts_personal_dashboard_settings_credman.xml
index b87e866..835fcb7 100644
--- a/res/xml/accounts_personal_dashboard_settings_credman.xml
+++ b/res/xml/accounts_personal_dashboard_settings_credman.xml
@@ -50,14 +50,14 @@
         android:key="dashboard_tile_placeholder"
         android:order="130"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="auto_sync_account_data"
         android:title="@string/auto_sync_account_title"
         android:summary="@string/auto_sync_account_summary"
         android:order="200"
         settings:allowDividerAbove="true"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="auto_sync_personal_account_data"
         android:title="@string/account_settings_menu_auto_sync_personal"
         android:summary="@string/auto_sync_account_summary"
diff --git a/res/xml/accounts_private_dashboard_settings.xml b/res/xml/accounts_private_dashboard_settings.xml
new file mode 100644
index 0000000..cc1a4fd
--- /dev/null
+++ b/res/xml/accounts_private_dashboard_settings.xml
@@ -0,0 +1,66 @@
+<?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.
+  -->
+
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res-auto"
+    android:key="user_and_account_settings_screen"
+    android:title="@string/account_dashboard_title"
+    settings:keywords="@string/keywords_accounts">
+
+    <PreferenceCategory
+        android:key="passwords_category"
+        android:order="10"
+        android:persistent="false"
+        android:title="@string/autofill_passwords"
+        settings:controller="com.android.settings.applications.autofill.PasswordsPreferenceController"
+        settings:keywords="@string/autofill_keywords" />
+
+    <PreferenceCategory
+        android:key="default_service_category"
+        android:order="20"
+        android:title="@string/autofill_app">
+
+        <com.android.settings.widget.GearPreference
+            android:fragment="com.android.settings.applications.defaultapps.DefaultAutofillPicker"
+            android:key="default_autofill_private"
+            android:title="@string/autofill_app"
+            settings:keywords="@string/autofill_keywords">
+            <extra
+                android:name="for_work"
+                android:value="false" />
+        </com.android.settings.widget.GearPreference>
+    </PreferenceCategory>
+
+    <PreferenceCategory
+        android:key="dashboard_tile_placeholder"
+        android:order="130"/>
+
+    <SwitchPreferenceCompat
+        android:key="auto_sync_account_data"
+        android:title="@string/auto_sync_account_title"
+        android:summary="@string/auto_sync_account_summary"
+        android:order="200"
+        settings:allowDividerAbove="true"/>
+
+    <SwitchPreferenceCompat
+        android:key="auto_sync_private_account_data"
+        android:title="@string/account_settings_menu_auto_sync_private"
+        android:summary="@string/auto_sync_account_summary"
+        android:order="210"/>
+
+</PreferenceScreen>
diff --git a/res/xml/accounts_private_dashboard_settings_credman.xml b/res/xml/accounts_private_dashboard_settings_credman.xml
new file mode 100644
index 0000000..e9abcf8
--- /dev/null
+++ b/res/xml/accounts_private_dashboard_settings_credman.xml
@@ -0,0 +1,67 @@
+<?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.
+  -->
+
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res-auto"
+    android:key="user_and_account_settings_screen"
+    android:title="@string/account_dashboard_title"
+    settings:keywords="@string/keywords_accounts">
+
+    <PreferenceCategory
+        android:key="default_service_category"
+        android:order="10"
+        android:title="@string/credman_chosen_app_title">
+
+        <com.android.settings.widget.GearPreference
+            android:fragment="com.android.settings.applications.credentials.DefaultCombinedPickerPrivate"
+            android:key="default_credman_autofill_private"
+            android:title="@string/credman_chosen_app_title"
+            settings:searchable="false">
+            settings:keywords="@string/credman_autofill_keywords">
+            <extra
+                android:name="for_work"
+                android:value="false" />
+        </com.android.settings.widget.GearPreference>
+    </PreferenceCategory>
+
+    <PreferenceCategory
+        android:key="credman_category"
+        android:order="20"
+        android:persistent="false"
+        android:title="@string/credman_credentials"
+        settings:controller="com.android.settings.applications.credentials.CredentialManagerPreferenceController"
+        settings:keywords="@string/credman_keywords" />
+
+    <PreferenceCategory
+        android:key="dashboard_tile_placeholder"
+        android:order="130"/>
+
+    <SwitchPreferenceCompat
+        android:key="auto_sync_account_data"
+        android:title="@string/auto_sync_account_title"
+        android:summary="@string/auto_sync_account_summary"
+        android:order="200"
+        settings:allowDividerAbove="true"/>
+
+    <SwitchPreferenceCompat
+        android:key="auto_sync_private_account_data"
+        android:title="@string/account_settings_menu_auto_sync_private"
+        android:summary="@string/auto_sync_account_summary"
+        android:order="210"/>
+
+</PreferenceScreen>
\ No newline at end of file
diff --git a/res/xml/accounts_work_dashboard_settings.xml b/res/xml/accounts_work_dashboard_settings.xml
index 3269933..ad5e359 100644
--- a/res/xml/accounts_work_dashboard_settings.xml
+++ b/res/xml/accounts_work_dashboard_settings.xml
@@ -51,14 +51,14 @@
         android:key="dashboard_tile_placeholder"
         android:order="130"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="auto_sync_account_data"
         android:title="@string/auto_sync_account_title"
         android:summary="@string/auto_sync_account_summary"
         android:order="200"
         settings:allowDividerAbove="true"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="auto_sync_work_account_data"
         android:title="@string/account_settings_menu_auto_sync_work"
         android:summary="@string/auto_sync_account_summary"
diff --git a/res/xml/accounts_work_dashboard_settings_credman.xml b/res/xml/accounts_work_dashboard_settings_credman.xml
index bb9976e..8afbba8 100644
--- a/res/xml/accounts_work_dashboard_settings_credman.xml
+++ b/res/xml/accounts_work_dashboard_settings_credman.xml
@@ -50,14 +50,14 @@
         android:key="dashboard_tile_placeholder"
         android:order="130"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="auto_sync_account_data"
         android:title="@string/auto_sync_account_title"
         android:summary="@string/auto_sync_account_summary"
         android:order="200"
         settings:allowDividerAbove="true"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="auto_sync_work_account_data"
         android:title="@string/account_settings_menu_auto_sync_work"
         android:summary="@string/auto_sync_account_summary"
diff --git a/res/xml/all_tether_prefs.xml b/res/xml/all_tether_prefs.xml
index 0aee621..8673d31 100644
--- a/res/xml/all_tether_prefs.xml
+++ b/res/xml/all_tether_prefs.xml
@@ -36,7 +36,7 @@
             android:persistent="false"
             android:title="@string/wifi_hotspot_password_title"/>
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="wifi_tether_auto_turn_off_2"
             android:title="@string/wifi_hotspot_auto_off_title"
             android:summary="@string/wifi_hotspot_auto_off_summary"/>
@@ -57,28 +57,28 @@
         android:key="tethering_options_group"
         android:title="@string/tethering_interface_options"
         settings:searchable="false">
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="enable_usb_tethering"
             android:title="@string/usb_tethering_button_text"
             android:summary="@string/usb_tethering_subtext"
             settings:controller="com.android.settings.network.UsbTetherPreferenceController"
             settings:keywords="@string/keywords_hotspot_tethering" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="enable_bluetooth_tethering_2"
             android:title="@string/bluetooth_tether_checkbox_text"
             android:summary="@string/bluetooth_tethering_subtext"
             settings:controller="com.android.settings.network.BluetoothTetherPreferenceController"
             settings:keywords="@string/keywords_hotspot_tethering" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="enable_ethernet_tethering_2"
             android:title="@string/ethernet_tether_checkbox_text"
             android:summary="@string/ethernet_tethering_subtext"
             settings:controller="com.android.settings.network.EthernetTetherPreferenceController"
             settings:keywords="@string/keywords_hotspot_tethering"/>
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="disable_wifi_tethering"
             android:title="@string/disable_wifi_hotspot_title"
             android:summary="@string/summary_placeholder"
diff --git a/res/xml/apn_editor.xml b/res/xml/apn_editor.xml
index 0c39948..e5c04e0 100644
--- a/res/xml/apn_editor.xml
+++ b/res/xml/apn_editor.xml
@@ -143,7 +143,7 @@
         android:entryValues="@array/apn_protocol_values"
         android:persistent="false"
         />
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:title="@string/carrier_enabled"
         android:key="carrier_enabled"
         android:enabled="false"
diff --git a/res/xml/app_data_usage.xml b/res/xml/app_data_usage.xml
index aacc1f6..034015c 100644
--- a/res/xml/app_data_usage.xml
+++ b/res/xml/app_data_usage.xml
@@ -21,7 +21,8 @@
     android:title="@string/data_usage_app_summary_title">
 
     <com.android.settings.datausage.SpinnerPreference
-        android:key="cycle" />
+        android:key="cycle"
+        settings:controller="com.android.settings.datausage.AppDataUsageCycleController" />
 
     <PreferenceCategory
         android:key="app_data_usage_summary_category">
@@ -56,7 +57,8 @@
 
         <Preference
             android:key="app_settings"
-            android:title="@string/data_usage_app_settings" />
+            android:title="@string/data_usage_app_settings"
+            settings:controller="com.android.settings.datausage.AppDataUsageAppSettingsController" />
 
         <com.android.settingslib.RestrictedSwitchPreference
             android:key="restrict_background"
@@ -76,6 +78,7 @@
 
     <PreferenceCategory
         android:key="app_list"
-        android:title="@string/data_usage_other_apps" />
+        android:title="@string/data_usage_other_apps"
+        settings:controller="com.android.settings.datausage.AppDataUsageListController" />
 
 </PreferenceScreen>
diff --git a/res/xml/app_info_settings.xml b/res/xml/app_info_settings.xml
index 73241b7..0782f67 100644
--- a/res/xml/app_info_settings.xml
+++ b/res/xml/app_info_settings.xml
@@ -139,7 +139,7 @@
         settings:controller=
             "com.android.settings.applications.appinfo.AppHibernationPreferenceCategoryController">
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="hibernation_switch"
             android:title="@string/unused_apps_switch"
             android:summary="@string/unused_apps_switch_summary"
diff --git a/res/xml/apps.xml b/res/xml/apps.xml
index 90c40a6..c4313f6 100644
--- a/res/xml/apps.xml
+++ b/res/xml/apps.xml
@@ -111,19 +111,19 @@
         android:key="advanced_category"
         android:title="@string/advanced_apps"
         android:order="21"
-        android:visibility="gone"
-        settings:searchable="false"/>
+        settings:searchable="false">
 
-    <Preference
-        android:key="aspect_ratio_apps"
-        android:title="@string/aspect_ratio_experimental_title"
-        android:summary="@string/summary_placeholder"
-        android:order="22"
-        settings:controller="com.android.settings.applications.appcompat.UserAspectRatioAppsPreferenceController"
-        android:fragment="com.android.settings.applications.manageapplications.ManageApplications">
-        <extra android:name="classname"
-               android:value="com.android.settings.Settings$UserAspectRatioAppListActivity"/>
-        <intent android:action="android.settings.MANAGE_USER_ASPECT_RATIO_SETTINGS"/>
-    </Preference>
+        <Preference
+            android:key="aspect_ratio_apps"
+            android:title="@string/aspect_ratio_experimental_title"
+            android:summary="@string/summary_placeholder"
+            android:order="22"
+            settings:controller="com.android.settings.applications.appcompat.UserAspectRatioAppsPreferenceController"
+            android:fragment="com.android.settings.applications.manageapplications.ManageApplications">
+            <extra android:name="classname"
+                   android:value="com.android.settings.Settings$UserAspectRatioAppListActivity"/>
+            <intent android:action="android.settings.MANAGE_USER_ASPECT_RATIO_SETTINGS"/>
+        </Preference>
+    </PreferenceCategory>
 
 </PreferenceScreen>
diff --git a/res/xml/auto_rotate_settings.xml b/res/xml/auto_rotate_settings.xml
index 38aa5f0..e8303b1 100644
--- a/res/xml/auto_rotate_settings.xml
+++ b/res/xml/auto_rotate_settings.xml
@@ -28,7 +28,7 @@
         android:title="@string/auto_rotate_settings_primary_switch_title"
         settings:controller="com.android.settings.display.AutoRotateSwitchBarController"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="auto_rotate_switch"
         android:title="@string/auto_rotate_settings_primary_switch_title"
         settings:controller="com.android.settings.display.AutoRotatePreferenceController"/>
@@ -50,7 +50,7 @@
         android:title="@string/ambient_camera_summary_battery_saver_on"
         settings:controller="com.android.settings.display.SmartAutoRotateBatterySaverController" />
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="face_based_rotate"
         android:title="@string/auto_rotate_switch_face_based"
         settings:controller="com.android.settings.display.SmartAutoRotateController" />
diff --git a/res/xml/battery_saver_settings.xml b/res/xml/battery_saver_settings.xml
index 52b8b1a..74ef856 100644
--- a/res/xml/battery_saver_settings.xml
+++ b/res/xml/battery_saver_settings.xml
@@ -34,7 +34,7 @@
         settings:keywords="@string/keywords_battery_saver_schedule"
         settings:controller="com.android.settings.fuelgauge.batterysaver.BatterySaverSchedulePreferenceController"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:order="80"
         android:key="battery_saver_sticky"
         android:title="@string/battery_saver_sticky_title_new"
diff --git a/res/xml/billing_cycle.xml b/res/xml/billing_cycle.xml
index 77f8bc3..000abac 100644
--- a/res/xml/billing_cycle.xml
+++ b/res/xml/billing_cycle.xml
@@ -23,7 +23,7 @@
         android:key="billing_cycle"
         android:title="@string/app_usage_cycle" />
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="set_data_warning"
         android:title="@string/set_data_warning"/>
 
@@ -31,7 +31,7 @@
         android:key="data_warning"
         android:title="@string/data_warning" />
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="set_data_limit"
         android:title="@string/set_data_limit" />
 
diff --git a/res/xml/bluetooth_audio_sharing.xml b/res/xml/bluetooth_audio_sharing.xml
new file mode 100644
index 0000000..681c768
--- /dev/null
+++ b/res/xml/bluetooth_audio_sharing.xml
@@ -0,0 +1,47 @@
+<?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.
+  -->
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res-auto"
+    android:title="@string/audio_sharing_title">
+
+    <Preference
+        android:key="calls_and_alarms"
+        android:title="@string/calls_and_alarms_device_title"
+        android:icon="@drawable/ic_audio_calls_and_alarms"
+        settings:controller="com.android.settings.connecteddevice.audiosharing.CallsAndAlarmsPreferenceController"
+        android:summary=""/>
+
+    <com.android.settings.connecteddevice.audiosharing.AudioSharingNamePreference
+        android:key="audio_sharing_stream_name"
+        android:title="Stream name"
+        android:summary="********"
+        settings:controller="com.android.settings.connecteddevice.audiosharing.AudioSharingNamePreferenceController"/>
+
+    <PreferenceCategory
+        android:key="audio_streams_settings_category"
+        android:title="@string/audio_streams_category_title"
+        settings:controller="com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamsCategoryController">
+
+        <Preference
+            android:key="audio_streams_settings"
+            android:fragment="com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamsDashboardFragment"
+            android:title="@string/audio_streams_pref_title"
+            android:icon="@drawable/ic_chevron_right_24dp" />
+
+    </PreferenceCategory>
+</PreferenceScreen>
\ No newline at end of file
diff --git a/res/xml/bluetooth_audio_streams.xml b/res/xml/bluetooth_audio_streams.xml
new file mode 100644
index 0000000..ce7374b
--- /dev/null
+++ b/res/xml/bluetooth_audio_streams.xml
@@ -0,0 +1,33 @@
+<?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.
+  -->
+
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res-auto"
+    android:title="@string/audio_streams_title">
+
+    <Preference
+        android:key="audio_streams_scan_qr_code"
+        android:title="@string/bluetooth_find_broadcast_button_scan"
+        android:icon="@drawable/ic_add_24dp"
+        android:summary="@string/audio_streams_qr_code_summary" />
+
+    <com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamsProgressCategoryPreference
+        android:key="audio_streams_nearby_category"
+        android:title="@string/audio_streams_pref_title" />
+
+</PreferenceScreen>
\ No newline at end of file
diff --git a/res/xml/bluetooth_audio_streams_qr_code.xml b/res/xml/bluetooth_audio_streams_qr_code.xml
new file mode 100644
index 0000000..c750963
--- /dev/null
+++ b/res/xml/bluetooth_audio_streams_qr_code.xml
@@ -0,0 +1,57 @@
+<?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.
+  -->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <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:orientation="vertical">
+
+        <TextView
+            android:id="@android:id/summary"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:gravity="start"
+            android:textSize="15sp"
+            android:textColor="?android:attr/textColorPrimary"
+            android:text="Scan this QR code with another device connected to LE audio headphones to start sharing audio"/>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            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"
+                android:src="@android:color/transparent"/>
+        </LinearLayout>
+
+    </LinearLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/xml/button_navigation_settings.xml b/res/xml/button_navigation_settings.xml
index 2459b60..1de011c 100644
--- a/res/xml/button_navigation_settings.xml
+++ b/res/xml/button_navigation_settings.xml
@@ -30,7 +30,7 @@
         settings:lottie_imageAssetsFolder="button_nav_menu"
         settings:lottie_rawRes="@raw/lottie_button_nav_menu"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="assistant_long_press_home_gesture"
         android:title="@string/assistant_long_press_home_gesture_title"
         android:summary="@string/assistant_long_press_home_gesture_summary"
diff --git a/res/xml/configure_notification_settings.xml b/res/xml/configure_notification_settings.xml
index 32081cf..59c0c21 100644
--- a/res/xml/configure_notification_settings.xml
+++ b/res/xml/configure_notification_settings.xml
@@ -98,7 +98,7 @@
             android:summary="@string/lock_screen_notifs_redact_work_summary"
             settings:controller="com.android.settings.notification.RedactNotificationPreferenceController" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="notification_lockscreen_bypass"
             android:order="16"
             android:title="@string/lockscreen_bypass_title"
@@ -120,7 +120,7 @@
             settings:controller="com.android.settings.notification.zen.ZenModePreferenceController"
         />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="lock_screen_show_only_unseen_notifs"
             android:order="18"
             android:title="@string/unseen_notifs_lock_screen"
@@ -148,37 +148,45 @@
                 android:targetClass="com.android.cellbroadcastreceiver.CellBroadcastSettings"/>
         </com.android.settingslib.RestrictedPreference>
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
              android:key="silent_icons"
              android:order="21"
              android:title="@string/silent_notifications_status_bar"
              settings:controller="com.android.settings.notification.SilentStatusBarPreferenceController"/>
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="show_snooze_options"
             android:order="22"
             android:title="@string/snooze_options_title"
             settings:controller="com.android.settings.notification.SnoozeNotificationPreferenceController" />
 
         <!-- Notification badging -->
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="notification_badging"
             android:order="23"
             android:title="@string/notification_badging_title"
             settings:controller="com.android.settings.notification.BadgingNotificationPreferenceController"/>
 
         <!-- Pulse notification light, on devices that support it -->
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="notification_pulse"
             android:order="24"
             android:title="@string/notification_pulse_title"
             settings:controller="com.android.settings.notification.PulseNotificationPreferenceController"/>
 
-        <com.android.settingslib.PrimarySwitchPreference
+        <SwitchPreferenceCompat
             android:key="notification_assistant"
             android:order="25"
             android:title="@string/notification_assistant_title"
             android:summary="@string/notification_assistant_summary"
             settings:controller="com.android.settings.notification.NotificationAssistantPreferenceController"/>
+
+        <Preference
+            android:fragment="com.android.settings.notification.PoliteNotificationsPreferenceFragment"
+            android:key="polite_notifications_preference"
+            android:order="26"
+            android:persistent="false"
+            android:title="@string/notification_polite_title"
+            settings:controller="com.android.settings.notification.PoliteNotificationsPreferenceController" />
     </PreferenceCategory>
 </PreferenceScreen>
diff --git a/res/xml/connected_devices.xml b/res/xml/connected_devices.xml
index 830ed87..1d2dd24 100644
--- a/res/xml/connected_devices.xml
+++ b/res/xml/connected_devices.xml
@@ -27,6 +27,19 @@
         settings:allowDividerBelow="true"/>
 
     <PreferenceCategory
+        android:key="audio_sharing_device_list"
+        android:title="@string/audio_sharing_title"
+        settings:controller="com.android.settings.connecteddevice.audiosharing.AudioSharingDevicePreferenceController">
+        <Preference
+            android:fragment="com.android.settings.connecteddevice.audiosharing.AudioSharingDashboardFragment"
+            android:key="connected_device_audio_sharing_settings"
+            android:title="@string/audio_sharing_title"
+            android:icon="@drawable/ic_bt_audio_sharing"
+            android:order="10"
+            settings:controller="com.android.settings.connecteddevice.audiosharing.AudioSharingPreferenceController"/>
+    </PreferenceCategory>
+
+    <PreferenceCategory
         android:key="available_device_list"
         android:title="@string/connected_device_media_device_title"
         settings:controller="com.android.settings.connecteddevice.AvailableMediaDeviceGroupController"/>
@@ -63,7 +76,7 @@
 
     <PreferenceCategory
         android:key="fast_pair_devices"
-        android:title="@string/connected_device_fast_pair_device_title"
+        android:title="@string/connected_device_previously_associated_fast_pair_device_title"
         settings:controller=
             "com.android.settings.connecteddevice.fastpair.FastPairDevicePreferenceController">
 
diff --git a/res/xml/connected_devices_advanced.xml b/res/xml/connected_devices_advanced.xml
index 11e3288..cb4167b 100644
--- a/res/xml/connected_devices_advanced.xml
+++ b/res/xml/connected_devices_advanced.xml
@@ -27,6 +27,13 @@
         android:order="-9"/>
 
     <Preference
+        android:fragment="com.android.settings.connecteddevice.audiosharing.AudioSharingDashboardFragment"
+        android:key="audio_sharing_settings"
+        android:title="@string/audio_sharing_title"
+        android:icon="@drawable/ic_bt_audio_sharing"
+        settings:controller="com.android.settings.connecteddevice.audiosharing.AudioSharingPreferenceController"/>
+
+    <Preference
         android:fragment="com.android.settings.connecteddevice.NfcAndPaymentFragment"
         android:key="nfc_and_payment_settings"
         android:title="@string/nfc_quick_toggle_title"
@@ -47,14 +54,6 @@
         settings:keywords="@string/keywords_wifi_display_settings"/>
 
     <com.android.settingslib.RestrictedPreference
-        android:fragment="com.android.settings.nfc.AndroidBeam"
-        android:key="android_beam_settings"
-        android:title="@string/android_beam_settings_title"
-        settings:controller="com.android.settings.nfc.AndroidBeamPreferenceController"
-        android:icon="@drawable/ic_android"
-        android:order="-5"/>
-
-    <com.android.settingslib.RestrictedPreference
         android:key="connected_device_printing"
         android:title="@string/print_settings"
         android:summary="@string/summary_placeholder"
@@ -62,7 +61,7 @@
         android:fragment="com.android.settings.print.PrintSettingsFragment"
         android:order="-3"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="uwb_settings"
         android:title="@string/uwb_settings_title"
         android:order="100"
diff --git a/res/xml/date_time_prefs.xml b/res/xml/date_time_prefs.xml
index 593c428..e7170ca 100644
--- a/res/xml/date_time_prefs.xml
+++ b/res/xml/date_time_prefs.xml
@@ -53,7 +53,7 @@
             settings:controller="com.android.settings.datetime.LocationProviderStatusPreferenceController"/>
 
         <!-- This preference gets removed if location-based time zone detection is not supported -->
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="location_time_zone_detection"
             android:title="@string/location_time_zone_detection_toggle_title"
             settings:controller="com.android.settings.datetime.LocationTimeZoneDetectionPreferenceController"/>
@@ -72,11 +72,11 @@
         android:key="time_format_preference_category"
         android:title="@string/time_format_category_title"
         settings:keywords="@string/keywords_time_format">
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="auto_24hour"
             android:title="@string/date_time_24hour_auto"/>
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="24 hour"
             android:title="@string/date_time_24hour" />
     </PreferenceCategory>
diff --git a/res/xml/development_settings.xml b/res/xml/development_settings.xml
index 4135750..f0a2881 100644
--- a/res/xml/development_settings.xml
+++ b/res/xml/development_settings.xml
@@ -123,12 +123,12 @@
                     android:dialogTitle="@string/select_webview_provider_dialog_title"
                     android:fragment="com.android.settings.webview.WebViewAppPicker" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="color_temperature"
             android:title="@string/color_temperature"
             android:summary="@string/color_temperature_desc" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="ota_disable_automatic_update"
             android:title="@string/ota_disable_automatic_update"
             android:summary="@string/ota_disable_automatic_update_summary" />
@@ -175,39 +175,39 @@
             android:summary="@string/enable_adb_wireless_summary"
             settings:keywords="@string/keywords_adb_wireless" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="adb_authorization_timeout"
             android:title="@string/adb_authorization_timeout_title"
             android:summary="@string/adb_authorization_timeout_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="enable_terminal"
             android:title="@string/enable_terminal_title"
             android:summary="@string/enable_terminal_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="bugreport_in_power"
             android:title="@string/bugreport_in_power"
             android:summary="@string/bugreport_in_power_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="enable_verbose_vendor_logging"
             android:title="@string/enable_verbose_vendor_logging"
             android:summary="@string/enable_verbose_vendor_logging_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="automatic_system_server_heap_dumps"
             android:title="@string/automatic_system_heap_dump_title"
             android:summary="@string/automatic_system_heap_dump_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="debug_view_attributes"
             android:title="@string/debug_view_attributes" />
 
         <Preference android:key="debug_app"
                     android:title="@string/debug_app" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="wait_for_debugger"
             android:title="@string/wait_for_debugger"
             android:summary="@string/wait_for_debugger_summary" />
@@ -217,7 +217,7 @@
             android:title="@string/verify_apps_over_usb_title"
             android:summary="@string/verify_apps_over_usb_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="art_verifier_for_debuggable"
             android:title="@string/art_verifier_for_debuggable_title"
             android:summary="@string/art_verifier_for_debuggable_summary" />
@@ -236,7 +236,7 @@
             android:entries="@array/select_logpersist_titles"
             android:entryValues="@array/select_logpersist_values" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="camera_laser_sensor_switch"
             android:title="@string/camera_laser_sensor_switch" />
 
@@ -245,12 +245,12 @@
             android:title="@string/feature_flags_dashboard_title"
             android:fragment="com.android.settings.development.featureflags.FeatureFlagsDashboard" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="enable_gpu_debug_layers"
             android:title="@string/enable_gpu_debug_layers"
             android:summary="@string/enable_gpu_debug_layers_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="enable_angle_as_system_driver"
             android:title="@string/enable_angle_as_system_driver"
             android:summary="@string/enable_angle_as_system_driver_summary" />
@@ -268,22 +268,27 @@
             settings:controller="com.android.settings.spa.development.compat.PlatformCompatPreferenceController"
             />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="show_refresh_rate"
             android:title="@string/show_refresh_rate"
             android:summary="@string/show_refresh_rate_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
+            android:key="show_hdr_sdr_ratio"
+            android:title="@string/show_hdr_sdr_ratio"
+            android:summary="@string/show_hdr_sdr_ratio_summary" />
+
+        <SwitchPreferenceCompat
             android:key="overlay_settings"
             android:title="@string/overlay_settings_title"
             android:summary="@string/overlay_settings_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="pref_key_peak_refresh_rate"
             android:title="@string/force_high_refresh_rate_toggle"
             android:summary="@string/force_high_refresh_rate_desc" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="allow_mock_modem"
             android:title="@string/allow_mock_modem"
             android:summary="@string/allow_mock_modem_summary" />
@@ -299,32 +304,32 @@
         android:title="@string/debug_networking_category"
         android:order="400">
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="wifi_display_certification"
             android:title="@string/wifi_display_certification"
             android:summary="@string/wifi_display_certification_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="wifi_verbose_logging"
             android:title="@string/wifi_verbose_logging"
             android:summary="@string/wifi_verbose_logging_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="wifi_scan_throttling"
             android:title="@string/wifi_scan_throttling"
             android:summary="@string/wifi_scan_throttling_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="wifi_non_persistent_mac_randomization"
             android:title="@string/wifi_non_persistent_mac_randomization"
             android:summary="@string/wifi_non_persistent_mac_randomization_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="mobile_data_always_on"
             android:title="@string/mobile_data_always_on"
             android:summary="@string/mobile_data_always_on_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="tethering_hardware_offload"
             android:title="@string/tethering_hardware_offload"
             android:summary="@string/tethering_hardware_offload_summary" />
@@ -342,35 +347,35 @@
             android:fragment="com.android.settings.connecteddevice.usb.UsbDefaultFragment"
             android:title="@string/usb_default_label"/>
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="bluetooth_show_devices_without_names"
             android:title="@string/bluetooth_show_devices_without_names"
             android:summary="@string/bluetooth_show_devices_without_names_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="bluetooth_disable_absolute_volume"
             android:title="@string/bluetooth_disable_absolute_volume"
             android:summary="@string/bluetooth_disable_absolute_volume_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="bluetooth_disable_leaudio"
             android:title="@string/bluetooth_disable_leaudio"
             android:summary="@string/bluetooth_disable_leaudio_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="bluetooth_show_leaudio_device_details"
             android:title="@string/bluetooth_show_leaudio_device_details"/>
 
-        <SwitchPreference
-            android:key="bluetooth_enable_leaudio_allow_list"
-            android:title="@string/bluetooth_enable_leaudio_allow_list"
-            android:summary="@string/bluetooth_enable_leaudio_allow_list_summary" />
+        <SwitchPreferenceCompat
+            android:key="bluetooth_bypass_leaudio_allowlist"
+            android:title="@string/bluetooth_bypass_leaudio_allowlist"
+            android:summary="@string/bluetooth_bypass_leaudio_allowlist_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="bluetooth_disable_le_audio_hw_offload"
             android:title="@string/bluetooth_disable_le_audio_hw_offload" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="bluetooth_disable_a2dp_hw_offload"
             android:title="@string/bluetooth_disable_a2dp_hw_offload" />
 
@@ -388,7 +393,7 @@
             android:entries="@array/bluetooth_map_versions"
             android:entryValues="@array/bluetooth_map_version_values" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="bluetooth_hd_audio_settings"
             android:title="@string/bluetooth_profile_a2dp_high_quality_unknown_codec"/>
 
@@ -439,17 +444,17 @@
             android:entries="@array/bluetooth_max_connected_audio_devices"
             android:entryValues="@array/bluetooth_max_connected_audio_devices_values" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="nfc_stack_debuglog_enabled"
             android:title="@string/nfc_stack_debuglog_title"
             android:summary="@string/nfc_stack_debuglog_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="nfc_verbose_vendor_log"
             android:title="@string/nfc_verbose_vendor_log_title"
             android:summary="@string/nfc_verbose_vendor_log_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="nfc_snoop_log"
             android:title="@string/nfc_snoop_log_title"
             android:summary="@string/nfc_snoop_log_summary"/>
@@ -461,17 +466,17 @@
         android:title="@string/debug_input_category"
         android:order="500">
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="show_touches"
             android:title="@string/show_touches"
             android:summary="@string/show_touches_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="pointer_location"
             android:title="@string/pointer_location"
             android:summary="@string/pointer_location_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="show_key_presses"
             android:title="@string/show_key_presses"
             android:summary="@string/show_key_presses_summary" />
@@ -483,17 +488,17 @@
         android:title="@string/debug_drawing_category"
         android:order="600">
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="show_screen_updates"
             android:title="@string/show_screen_updates"
             android:summary="@string/show_screen_updates_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="debug_layout"
             android:title="@string/debug_layout"
             android:summary="@string/debug_layout_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="force_rtl_layout_all_locales"
             android:title="@string/force_rtl_layout_all_locales"
             android:summary="@string/force_rtl_layout_all_locales_summary" />
@@ -531,7 +536,7 @@
             android:title="@string/display_cutout_emulation"
             settings:keywords="@string/display_cutout_emulation_keywords" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="transparent_navigation_bar"
             android:title="@string/transparent_navigation_bar"
             android:summary="@string/transparent_navigation_bar_summary" />
@@ -549,12 +554,12 @@
         android:title="@string/debug_hw_drawing_category"
         android:order="700">
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="show_hw_screen_updates"
             android:title="@string/show_hw_screen_updates"
             android:summary="@string/show_hw_screen_updates_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="show_hw_layers_updates"
             android:title="@string/show_hw_layers_updates"
             android:summary="@string/show_hw_layers_updates_summary" />
@@ -571,21 +576,21 @@
             android:entries="@array/show_non_rect_clip_entries"
             android:entryValues="@array/show_non_rect_clip_values" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="hwui_force_dark"
             android:title="@string/hwui_force_dark_title"
             android:summary="@string/hwui_force_dark_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="enable_blurs_on_windows"
             android:title="@string/window_blurs"/>
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="force_msaa"
             android:title="@string/force_msaa"
             android:summary="@string/force_msaa_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="disable_overlays"
             android:title="@string/disable_overlays"
             android:summary="@string/disable_overlays_summary" />
@@ -614,6 +619,11 @@
             android:title="@string/transcode_settings_title"
             android:fragment="com.android.settings.development.transcode.TranscodeSettingsFragment" />
 
+        <Preference
+            android:key="widevine_settings"
+            android:title="@string/widevine_settings_title"
+            android:fragment="com.android.settings.development.widevine.WidevineSettingsFragment" />
+
     </PreferenceCategory>
 
     <PreferenceCategory
@@ -621,7 +631,7 @@
         android:title="@string/debug_monitoring_category"
         android:order="900">
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="strict_mode"
             android:title="@string/strict_mode"
             android:summary="@string/strict_mode_summary" />
@@ -640,7 +650,7 @@
         android:title="@string/debug_applications_category"
         android:order="1000">
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="immediately_destroy_activities"
             android:title="@string/immediately_destroy_activities"
             android:summary="@string/immediately_destroy_activities_summary" />
@@ -656,12 +666,12 @@
             android:fragment="com.android.settings.applications.appops.BackgroundCheckSummary"
             android:title="@string/background_check_pref" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="show_first_crash_dialog"
             android:title="@string/show_first_crash_dialog"
             android:summary="@string/show_first_crash_dialog_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="show_all_anrs"
             android:title="@string/show_all_anrs"
             android:summary="@string/show_all_anrs_summary" />
@@ -672,7 +682,7 @@
             android:entries="@array/cached_apps_freezer_entries"
             android:entryValues="@array/cached_apps_freezer_values" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="show_notification_channel_warnings"
             android:title="@string/show_notification_channel_warnings"
             android:summary="@string/show_notification_channel_warnings_summary" />
@@ -692,32 +702,32 @@
             android:title="@string/tare_title" >
         </Preference>
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="force_allow_on_external"
             android:title="@string/force_allow_on_external"
             android:summary="@string/force_allow_on_external_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="force_resizable_activities"
             android:title="@string/force_resizable_activities"
             android:summary="@string/force_resizable_activities_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="enable_freeform_support"
             android:title="@string/enable_freeform_support"
             android:summary="@string/enable_freeform_support_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="force_desktop_mode_on_external_displays"
             android:title="@string/force_desktop_mode"
             android:summary="@string/force_desktop_mode_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="enable_non_resizable_multi_window"
             android:title="@string/enable_non_resizable_multi_window"
             android:summary="@string/enable_non_resizable_multi_window_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="back_navigation_animation"
             android:title="@string/back_navigation_animation"
             android:summary="@string/back_navigation_animation_summary" />
@@ -726,12 +736,12 @@
             android:key="reset_shortcut_manager_throttling"
             android:title="@string/reset_shortcut_manager_throttling" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="disable_phantom_process_monitor"
             android:title="@string/disable_phantom_process_monitor_title"
             android:summary="@string/disable_phantom_process_monitor_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="force_enable_notes_role"
             android:title="@string/enable_notes_role_title"
             android:summary="@string/enable_notes_role_summary" />
@@ -793,12 +803,12 @@
         <Preference android:key="mock_location_app"
                     android:title="@string/mock_location_app" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="enable_gnss_raw_meas_full_tracking"
             android:title="@string/enable_gnss_raw_meas_full_tracking"
             android:summary="@string/enable_gnss_raw_meas_full_tracking_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:title="@string/location_indicator_settings_title"
             android:summary="@string/location_indicator_settings_description"
             android:defaultValue="true"
@@ -811,7 +821,7 @@
         android:title="@string/input_method_category"
         android:order="1400">
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="stylus_handwriting"
             android:title="@string/stylus_handwriting"
             android:defaultValue="true"
diff --git a/res/xml/display_settings.xml b/res/xml/display_settings.xml
index c5e559c..2df360d 100644
--- a/res/xml/display_settings.xml
+++ b/res/xml/display_settings.xml
@@ -108,7 +108,7 @@
             Standard auto-rotation preference that will be shown when device state based
             auto-rotation settings are NOT available.
           -->
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="auto_rotate"
             android:title="@string/accelerometer_title"
             settings:keywords="@string/keywords_auto_rotate"
@@ -132,19 +132,19 @@
             settings:keywords="@string/keywords_screen_resolution"
             settings:controller="com.android.settings.display.ScreenResolutionController"/>
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="display_white_balance"
             android:title="@string/display_white_balance_title"
             android:summary="@string/display_white_balance_summary"
             settings:controller="com.android.settings.display.DisplayWhiteBalancePreferenceController"/>
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="peak_refresh_rate"
             android:title="@string/peak_refresh_rate_title"
             android:summary="@string/peak_refresh_rate_summary"
             settings:controller="com.android.settings.display.PeakRefreshRatePreferenceController"/>
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="show_operator_name"
             android:title="@string/show_operator_name_title"
             android:summary="@string/show_operator_name_summary"/>
@@ -156,16 +156,16 @@
             settings:keywords="@string/keywords_screensaver"
             settings:controller="com.android.settings.display.ScreenSaverPreferenceController"/>
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="camera_gesture"
             android:title="@string/camera_gesture_title"
             android:summary="@string/camera_gesture_desc"/>
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="lift_to_wake"
             android:title="@string/lift_to_wake_title"/>
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="tap_to_wake"
             android:title="@string/tap_to_wake"
             android:summary="@string/tap_to_wake_summary"/>
diff --git a/res/xml/double_tap_power_settings.xml b/res/xml/double_tap_power_settings.xml
index f4d7607..fb5dd52 100644
--- a/res/xml/double_tap_power_settings.xml
+++ b/res/xml/double_tap_power_settings.xml
@@ -26,7 +26,7 @@
         settings:searchable="false"
         app:lottie_rawRes="@drawable/quickly_open_camera"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="gesture_double_tap_power"
         android:title="@string/double_tap_power_for_camera_title"
         android:summary="@string/double_tap_power_for_camera_summary"
diff --git a/res/xml/double_tap_screen_settings.xml b/res/xml/double_tap_screen_settings.xml
index f982331..80e9bc4 100644
--- a/res/xml/double_tap_screen_settings.xml
+++ b/res/xml/double_tap_screen_settings.xml
@@ -24,7 +24,7 @@
         android:key="gesture_double_tap_screen_video"
         app:lottie_rawRes="@raw/lottie_tap_to_check_phone" />
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="gesture_double_tap_screen"
         android:title="@string/ambient_display_title"
         android:summary="@string/ambient_display_summary"
diff --git a/res/xml/double_twist_gesture_settings.xml b/res/xml/double_twist_gesture_settings.xml
index 674ba51..699755b 100644
--- a/res/xml/double_twist_gesture_settings.xml
+++ b/res/xml/double_twist_gesture_settings.xml
@@ -27,7 +27,7 @@
         settings:lottie_rawRes="@raw/flip_camera_for_selfie_lottie"
         settings:dynamicColor="true"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="gesture_double_twist"
         android:title="@string/double_twist_for_camera_mode_title"
         android:summary="@string/double_twist_for_camera_mode_summary"
diff --git a/res/xml/dream_fragment_overview.xml b/res/xml/dream_fragment_overview.xml
index 8377a06..6996908 100644
--- a/res/xml/dream_fragment_overview.xml
+++ b/res/xml/dream_fragment_overview.xml
@@ -40,13 +40,13 @@
             android:layout="@layout/dream_picker_layout"/>
     </PreferenceCategory>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="dream_complications_toggle"
         android:title="@string/dream_complications_toggle_title"
         android:summary="@string/dream_complications_toggle_summary"
         settings:controller="com.android.settings.dream.DreamComplicationPreferenceController"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="dream_home_controls_toggle"
         android:title="@string/dream_home_controls_toggle_title"
         android:summary="@string/dream_home_controls_toggle_summary"
diff --git a/res/xml/emergency_gesture_settings.xml b/res/xml/emergency_gesture_settings.xml
index 9fd644f..8367988 100644
--- a/res/xml/emergency_gesture_settings.xml
+++ b/res/xml/emergency_gesture_settings.xml
@@ -28,7 +28,7 @@
         android:title="@string/emergency_gesture_screen_summary"
         app:allowDividerAbove="false"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="emergency_gesture_sound"
         android:icon="@drawable/ic_hearing"
         android:title="@string/emergency_gesture_sound_setting_title"
diff --git a/res/xml/fast_pair_devices.xml b/res/xml/fast_pair_devices.xml
index 7e72cd7..bb8381f 100644
--- a/res/xml/fast_pair_devices.xml
+++ b/res/xml/fast_pair_devices.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/connected_device_fast_pair_device_title">
+    android:title="@string/connected_device_previously_associated_fast_pair_device_title">
 
     <PreferenceCategory
         android:key="fast_pair_device_list"
diff --git a/res/xml/flash_notifications_settings.xml b/res/xml/flash_notifications_settings.xml
index 85cc2cb..bc76f6d 100644
--- a/res/xml/flash_notifications_settings.xml
+++ b/res/xml/flash_notifications_settings.xml
@@ -30,7 +30,7 @@
         settings:lottie_rawRes="@drawable/flash_notifications_illustration"
         settings:controller="com.android.settings.accessibility.FlashNotificationIllustrationPreferenceController"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="camera_flash_notification_preference"
         android:persistent="false"
         android:title="@string/camera_flash_notification_title"
diff --git a/res/xml/gesture_navigation_settings.xml b/res/xml/gesture_navigation_settings.xml
index 022583c..a4b5af9 100644
--- a/res/xml/gesture_navigation_settings.xml
+++ b/res/xml/gesture_navigation_settings.xml
@@ -28,7 +28,7 @@
         android:persistent="false"
         android:title="@string/assistant_gesture_category_title">
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="assistant_gesture_corner_swipe"
             android:title="@string/assistant_corner_gesture_title"
             android:summary="@string/assistant_corner_gesture_summary"
diff --git a/res/xml/keyboard_settings.xml b/res/xml/keyboard_settings.xml
index b18338b..21b2bb0 100644
--- a/res/xml/keyboard_settings.xml
+++ b/res/xml/keyboard_settings.xml
@@ -63,7 +63,7 @@
             android:dialogTitle="@string/pointer_speed" />
     </PreferenceCategory>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="vibrate_input_devices"
         android:title="@string/vibrate_input_devices"
         android:summary="@string/vibrate_input_devices_summary"
diff --git a/res/xml/language_and_input.xml b/res/xml/language_and_input.xml
index a5f6f63..1848f86 100644
--- a/res/xml/language_and_input.xml
+++ b/res/xml/language_and_input.xml
@@ -110,7 +110,7 @@
             android:dialogTitle="@string/pointer_speed" />
     </PreferenceCategory>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="vibrate_input_devices"
         android:title="@string/vibrate_input_devices"
         android:summary="@string/vibrate_input_devices_summary"
diff --git a/res/xml/manage_assist.xml b/res/xml/manage_assist.xml
index 141444a..527dfd0 100644
--- a/res/xml/manage_assist.xml
+++ b/res/xml/manage_assist.xml
@@ -28,17 +28,17 @@
         android:summary="@string/summary_placeholder"
         settings:searchable="false"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="context"
         android:title="@string/assist_access_context_title"
         android:summary="@string/assist_access_context_summary" />
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="screenshot"
         android:title="@string/assist_access_screenshot_title"
         android:summary="@string/assist_access_screenshot_summary" />
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="flash"
         android:title="@string/assist_flash_title"
         android:summary="@string/assist_flash_summary" />
diff --git a/res/xml/manage_domain_url_settings.xml b/res/xml/manage_domain_url_settings.xml
index e820e78..07194e4 100644
--- a/res/xml/manage_domain_url_settings.xml
+++ b/res/xml/manage_domain_url_settings.xml
@@ -25,7 +25,7 @@
         android:key="web_action_category"
         android:title="@string/web_action_section_title"
         settings:controller="com.android.settings.applications.managedomainurls.WebActionCategoryController">
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="instant_app_web_action_toggle"
             android:title="@string/web_action_enable_title"
             android:summary="@string/web_action_enable_summary"
diff --git a/res/xml/managed_profile_settings.xml b/res/xml/managed_profile_settings.xml
index ddfb869..4dcfc4d 100644
--- a/res/xml/managed_profile_settings.xml
+++ b/res/xml/managed_profile_settings.xml
@@ -31,7 +31,7 @@
         settings:useAdditionalSummary="true"
         settings:controller="com.android.settings.accounts.ContactSearchPreferenceController"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="cross_profile_calendar"
         android:summary="@string/cross_profile_calendar_summary"
         android:title="@string/cross_profile_calendar_title"
diff --git a/res/xml/media_controls_settings.xml b/res/xml/media_controls_settings.xml
index 822639a..96a2ee4 100644
--- a/res/xml/media_controls_settings.xml
+++ b/res/xml/media_controls_settings.xml
@@ -20,20 +20,20 @@
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:title="@string/media_controls_title">
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="media_controls_resume_switch"
         android:title="@string/media_controls_resume_title"
         android:summary="@string/media_controls_resume_description"
         app:keywords="@string/keywords_media_controls"
         app:controller="com.android.settings.sound.MediaControlsPreferenceController" />
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="media_controls_lockscreen"
         android:title="@string/media_controls_lockscreen_title"
         android:summary="@string/media_controls_lockscreen_description"
         app:controller="com.android.settings.sound.MediaControlsLockScreenPreferenceController" />
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="media_controls_recommendations"
         android:title="@string/media_controls_recommendations_title"
         android:summary="@string/media_controls_recommendations_description"
diff --git a/res/xml/mobile_network_settings.xml b/res/xml/mobile_network_settings.xml
index 0bb79d2..62a88b7 100644
--- a/res/xml/mobile_network_settings.xml
+++ b/res/xml/mobile_network_settings.xml
@@ -54,14 +54,14 @@
             settings:allowDividerAbove="true"
             settings:allowDividerBelow="false"/>
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="mobile_data_enable"
             android:title="@string/mobile_data_settings_title"
             android:summary="@string/mobile_data_settings_summary"
             settings:controller="com.android.settings.network.telephony.MobileDataPreferenceController"
             settings:allowDividerAbove="true"/>
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="auto_data_switch"
             android:title="@string/auto_data_switch_title"
             android:summary="@string/auto_data_switch_summary"
@@ -86,7 +86,7 @@
             android:title="@string/billing_cycle"
             settings:controller="com.android.settings.datausage.BillingCyclePreferenceController"/>
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="carrier_wifi_toggle"
             android:title="@string/carrier_wifi_offload_title"
             android:summary="@string/carrier_wifi_offload_summary"
@@ -98,13 +98,13 @@
             android:selectable="false"
             settings:searchable="false"/>
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="mms_message"
             android:title="@string/mms_message_title"
             android:summary="@string/mms_message_summary"
             settings:controller="com.android.settings.network.telephony.MmsMessagePreferenceController"/>
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="enhanced_4g_lte"
             android:title="@string/enhanced_4g_lte_mode_title"
             android:persistent="false"
@@ -112,7 +112,7 @@
             settings:keywords="@string/keywords_enhance_4g_lte"
             settings:controller="com.android.settings.network.telephony.Enhanced4gLtePreferenceController"/>
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="4g_calling"
             android:title="@string/enhanced_4g_lte_mode_title_4g_calling"
             android:persistent="false"
@@ -120,7 +120,7 @@
             settings:keywords="@string/keywords_enhance_4g_lte"
             settings:controller="com.android.settings.network.telephony.Enhanced4gCallingPreferenceController"/>
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="advance_call"
             android:title="@string/enhanced_4g_lte_mode_title_advanced_calling"
             android:persistent="false"
@@ -128,7 +128,7 @@
             settings:keywords="@string/keywords_enhance_4g_lte"
             settings:controller="com.android.settings.network.telephony.Enhanced4gAdvancedCallingPreferenceController"/>
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="contact_discovery_opt_in"
             android:title="@string/contact_discovery_opt_in_title"
             android:persistent="false"
@@ -179,7 +179,7 @@
                 </intent>
             </Preference>
 
-            <SwitchPreference
+            <SwitchPreferenceCompat
                 android:key="video_calling_key"
                 android:title="@string/video_calling_settings_title"
                 android:persistent="true"
@@ -210,7 +210,7 @@
             android:title="@string/network_operator_category"
             settings:controller="com.android.settings.network.telephony.NetworkPreferenceCategoryController">
 
-            <SwitchPreference
+            <SwitchPreferenceCompat
                 android:key="auto_select_key"
                 android:title="@string/select_automatically"
                 settings:controller="com.android.settings.network.telephony.gsm.AutoSelectPreferenceController"/>
@@ -244,14 +244,14 @@
             settings:useAdminDisabledSummary="true"
             settings:userRestriction="no_cellular_2g"/>
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="require_cellular_encryption"
             android:title="@string/require_cellular_encryption_title"
             android:summary="@string/require_cellular_encryption_summary"
             settings:controller=
                 "com.android.settings.network.telephony.NullAlgorithmsPreferenceController" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="nr_advanced_calling"
             android:title="@string/nr_advanced_calling_title"
             android:persistent="false"
diff --git a/res/xml/more_security_privacy_settings.xml b/res/xml/more_security_privacy_settings.xml
index 42ca418..822b03d 100644
--- a/res/xml/more_security_privacy_settings.xml
+++ b/res/xml/more_security_privacy_settings.xml
@@ -42,7 +42,7 @@
             android:summary="@string/unlock_set_unlock_mode_pattern"
             settings:keywords="@string/keywords_lockscreen" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="visiblepattern_profile"
             android:title="@string/lockpattern_settings_enable_visible_pattern_title_profile"
             settings:controller="com.android.settings.security.VisiblePatternProfilePreferenceController" />
@@ -86,7 +86,7 @@
             settings:searchable="false"/>
 
         <!-- Show media on lock screen -->
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="privacy_media_controls_lockscreen"
             android:title="@string/media_controls_lockscreen_title"
             android:summary="@string/media_controls_lockscreen_description"
@@ -98,7 +98,7 @@
              ContentCaptureService implementations defines a custom settings activitiy on its manifest.
              Hence, we show both here, but the controller itself will decide if it's available or not.
         -->
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="content_capture"
             android:title="@string/content_capture"
             android:summary="@string/content_capture_summary"
@@ -119,6 +119,15 @@
         android:key="security_category"
         android:title="@string/security_header" />
 
+    <Preference
+        android:order="230"
+        android:key="content_protection_preference"
+        android:title="@string/content_protection_preference_title"
+        android:summary="@string/content_protection_preference_summary"
+        android:fragment="com.android.settings.security.ContentProtectionPreferenceFragment"
+        settings:keywords="@string/content_protection_preference_title"
+        settings:controller="com.android.settings.security.ContentProtectionPreferenceController" />
+
     <PreferenceCategory
         android:order="240"
         android:key="security_settings_device_admin_category"
@@ -195,7 +204,7 @@
         settings:keywords="@string/keywords_app_pinning"
         settings:controller="com.android.settings.security.ScreenPinningPreferenceController" />
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:order="290"
         android:key="confirm_sim_deletion"
         android:title="@string/confirm_sim_deletion_title"
@@ -213,4 +222,4 @@
 
 
 
-</PreferenceScreen>
\ No newline at end of file
+</PreferenceScreen>
diff --git a/res/xml/my_device_info.xml b/res/xml/my_device_info.xml
index 9325969..29c3c62 100644
--- a/res/xml/my_device_info.xml
+++ b/res/xml/my_device_info.xml
@@ -114,7 +114,7 @@
             settings:controller="com.android.settings.deviceinfo.HardwareInfoPreferenceController"/>
 
         <!-- EID -->
-        <com.android.settings.network.telephony.TelephonyPreferenceDialog
+        <com.android.settingslib.CustomDialogPreferenceCompat
             android:key="eid_info"
             android:order="31"
             android:title="@string/status_eid"
diff --git a/res/xml/network_provider_internet.xml b/res/xml/network_provider_internet.xml
index ef6ed16..b055ea3 100644
--- a/res/xml/network_provider_internet.xml
+++ b/res/xml/network_provider_internet.xml
@@ -31,16 +31,11 @@
         settings:keywords="@string/keywords_internet"
         settings:useAdminDisabledSummary="true" />
 
-    <com.android.settingslib.RestrictedPreference
+    <com.android.settings.spa.preference.ComposePreference
         android:key="calls_and_sms"
         android:title="@string/calls_and_sms"
-        android:icon="@drawable/ic_calls_sms"
         android:order="-20"
-        android:summary="@string/summary_placeholder"
-        settings:isPreferenceVisible="@bool/config_show_sim_info"
-        settings:allowDividerBelow="true"
-        settings:keywords="@string/calls_and_sms"
-        settings:useAdminDisabledSummary="true" />
+        settings:controller="com.android.settings.network.NetworkProviderCallsSmsController" />
 
     <com.android.settingslib.RestrictedPreference
         android:key="mobile_network_list"
diff --git a/res/xml/network_provider_sims_list.xml b/res/xml/network_provider_sims_list.xml
index b21341e..cc7589c 100644
--- a/res/xml/network_provider_sims_list.xml
+++ b/res/xml/network_provider_sims_list.xml
@@ -24,7 +24,7 @@
         android:title="@string/summary_placeholder"
         android:layout="@layout/preference_category_no_label"
         android:order="20"
-        settings:controller="com.android.settings.network.NetworkProviderSimsCategoryController"/>
+        settings:controller="com.android.settings.network.NetworkProviderSimListController"/>
 
     <com.android.settingslib.RestrictedPreference
         android:key="add_sim"
diff --git a/res/xml/nfc_and_payment_settings.xml b/res/xml/nfc_and_payment_settings.xml
index b7900f8..5fb7c69 100644
--- a/res/xml/nfc_and_payment_settings.xml
+++ b/res/xml/nfc_and_payment_settings.xml
@@ -30,7 +30,7 @@
         settings:lottie_rawRes="@drawable/nfc_detection_point"
         settings:controller="com.android.settings.nfc.NfcDetectionPointController"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="nfc_secure_settings"
         android:title="@string/nfc_secure_settings_title"
         settings:controller="com.android.settings.nfc.SecureNfcPreferenceController"
diff --git a/res/xml/physical_keyboard_settings.xml b/res/xml/physical_keyboard_settings.xml
index 40851a9..d8e66bb 100644
--- a/res/xml/physical_keyboard_settings.xml
+++ b/res/xml/physical_keyboard_settings.xml
@@ -21,7 +21,7 @@
     <PreferenceCategory
         android:key="keyboard_options_category"
         android:title="@string/keyboard_options_category">
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="show_virtual_keyboard_switch"
             android:title="@string/show_ime"
             android:summary="@string/show_ime_summary"
diff --git a/res/xml/pick_up_gesture_settings.xml b/res/xml/pick_up_gesture_settings.xml
index 38dad0a..e863080 100644
--- a/res/xml/pick_up_gesture_settings.xml
+++ b/res/xml/pick_up_gesture_settings.xml
@@ -27,7 +27,7 @@
         app:lottie_rawRes="@raw/lottie_lift_to_check_phone"/>
 
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="gesture_pick_up"
         android:title="@string/ambient_display_pickup_title"
         android:summary="@string/ambient_display_pickup_summary"
diff --git a/res/xml/polite_notifications_settings.xml b/res/xml/polite_notifications_settings.xml
new file mode 100644
index 0000000..36f64f2
--- /dev/null
+++ b/res/xml/polite_notifications_settings.xml
@@ -0,0 +1,44 @@
+<?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.
+-->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res-auto"
+    android:title="@string/notification_polite_title">
+
+    <com.android.settings.RestrictedListPreference
+        android:key="polite_notifications_pref_dlg"
+        android:persistent="false"
+        android:title="@string/notification_polite_title"
+        android:entries="@array/notification_polite_options"
+        android:entryValues="@array/notification_polite_options_values"
+        settings:controller="com.android.settings.notification.PoliteNotificationFilterController"/>
+
+    <SwitchPreferenceCompat
+        android:key="notification_polite_vibrate_unlocked"
+        android:persistent="false"
+        android:title="@string/notification_polite_vibrate_unlocked"
+        android:summary="@string/notification_polite_vibrate_unlocked_summary"
+        settings:controller="com.android.settings.notification.PoliteNotifVibrateUnlockedToggleController" />
+
+    <SwitchPreferenceCompat
+        android:key="notification_polite_work_profile"
+        android:persistent="false"
+        android:title="@string/notification_polite_work"
+        android:summary="@string/notification_polite_work_summary"
+        settings:controller="com.android.settings.notification.PoliteNotifWorkProfileToggleController" />
+
+</PreferenceScreen>
diff --git a/res/xml/power_background_usage_detail.xml b/res/xml/power_background_usage_detail.xml
new file mode 100644
index 0000000..fb089fd
--- /dev/null
+++ b/res/xml/power_background_usage_detail.xml
@@ -0,0 +1,50 @@
+<?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.
+  -->
+
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res-auto"
+    android:title="@string/manager_battery_usage_allow_background_usage_title">
+
+    <com.android.settingslib.widget.LayoutPreference
+        android:key="header_view"
+        android:layout="@layout/settings_entity_header"
+        android:selectable="false"/>
+
+    <com.android.settingslib.widget.MainSwitchPreference
+        android:key="allow_background_usage"
+        android:title="@string/manager_battery_usage_allow_background_usage_title"
+        settings:controller="com.android.settings.fuelgauge.AllowBackgroundPreferenceController"/>
+
+    <com.android.settingslib.widget.SelectorWithWidgetPreference
+        android:key="optimized_preference"
+        android:title="@string/manager_battery_usage_optimized_title"
+        android:summary="@string/manager_battery_usage_optimized_summary"
+        settings:controller="com.android.settings.fuelgauge.OptimizedPreferenceController"/>
+
+    <com.android.settingslib.widget.SelectorWithWidgetPreference
+        android:key="unrestricted_preference"
+        android:title="@string/manager_battery_usage_unrestricted_title"
+        android:summary="@string/manager_battery_usage_unrestricted_summary"
+        settings:controller="com.android.settings.fuelgauge.UnrestrictedPreferenceController"/>
+
+    <com.android.settingslib.widget.FooterPreference
+        android:key="app_usage_footer_preference"
+        android:title="@string/manager_battery_usage_footer"
+        android:selectable="false"
+        settings:searchable="false"/>
+</PreferenceScreen>
\ No newline at end of file
diff --git a/res/xml/power_usage_detail.xml b/res/xml/power_usage_detail.xml
index 7b92f99..f3b30b6 100644
--- a/res/xml/power_usage_detail.xml
+++ b/res/xml/power_usage_detail.xml
@@ -50,30 +50,11 @@
         android:title="@string/manager_battery_usage_category_title"
         android:key="manage_battery_usage_category">
 
-        <com.android.settingslib.widget.SelectorWithWidgetPreference
-            android:key="unrestricted_pref"
-            android:summary="@string/manager_battery_usage_unrestricted_summary"
-            android:title="@string/manager_battery_usage_unrestricted_title"
-            settings:controller="com.android.settings.fuelgauge.UnrestrictedPreferenceController"/>
-
-        <com.android.settingslib.widget.SelectorWithWidgetPreference
-            android:key="optimized_pref"
-            android:summary="@string/manager_battery_usage_optimized_summary"
-            android:title="@string/manager_battery_usage_optimized_title"
-            settings:controller="com.android.settings.fuelgauge.OptimizedPreferenceController"/>
-
-        <com.android.settingslib.widget.SelectorWithWidgetPreference
-            android:key="restricted_pref"
-            android:summary="@string/manager_battery_usage_restricted_summary"
-            android:title="@string/manager_battery_usage_restricted_title"
-            settings:controller="com.android.settings.fuelgauge.RestrictedPreferenceController"/>
+        <com.android.settingslib.PrimarySwitchPreference
+            android:key="allow_background_usage"
+            android:title="@string/manager_battery_usage_allow_background_usage_title"
+            settings:controller="com.android.settings.fuelgauge.AllowBackgroundPreferenceController"/>
 
     </PreferenceCategory>
 
-    <com.android.settingslib.widget.FooterPreference
-        android:key="app_usage_footer_preference"
-        android:title="@string/manager_battery_usage_footer"
-        android:selectable="false"
-        settings:searchable="false"/>
-
 </PreferenceScreen>
\ No newline at end of file
diff --git a/res/xml/power_usage_summary.xml b/res/xml/power_usage_summary.xml
index 121e1fe..e62f5c0 100644
--- a/res/xml/power_usage_summary.xml
+++ b/res/xml/power_usage_summary.xml
@@ -51,7 +51,7 @@
         settings:keywords="@string/keywords_battery_saver"
         settings:controller="com.android.settings.fuelgauge.BatterySaverController" />
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="battery_percentage"
         android:title="@string/battery_percentage"
         android:summary="@string/battery_percentage_description"
diff --git a/res/xml/privacy_controls_settings.xml b/res/xml/privacy_controls_settings.xml
index cc88e0c..c7c3035 100644
--- a/res/xml/privacy_controls_settings.xml
+++ b/res/xml/privacy_controls_settings.xml
@@ -35,7 +35,7 @@
         settings:controller="com.android.settings.privacy.MicToggleController"/>
 
     <!-- Clipboard access notifications -->
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="show_clip_access_notification"
         android:title="@string/show_clip_access_notification"
         android:summary="@string/show_clip_access_notification_summary"
diff --git a/res/xml/privacy_dashboard_settings.xml b/res/xml/privacy_dashboard_settings.xml
index d84dca5..551501b 100644
--- a/res/xml/privacy_dashboard_settings.xml
+++ b/res/xml/privacy_dashboard_settings.xml
@@ -86,7 +86,7 @@
         settings:controller="com.android.settings.privacy.MicToggleController"/>
 
     <!-- Show passwords -->
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="show_password"
         android:title="@string/show_password"
         android:summary="@string/show_password_summary"
@@ -99,7 +99,7 @@
         android:summary="@string/summary_placeholder"/>
 
     <!-- Show media on lock screen -->
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="privacy_media_controls_lockscreen"
         android:title="@string/media_controls_lockscreen_title"
         android:summary="@string/media_controls_lockscreen_description"
@@ -136,7 +136,7 @@
          Hence, we show both here, but the controller itself will decide if it's available or not.
     -->
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="content_capture"
         android:title="@string/content_capture"
         android:summary="@string/content_capture_summary"
@@ -149,7 +149,7 @@
         settings:controller="com.android.settings.privacy.EnableContentCaptureWithServiceSettingsPreferenceController"/>
 
     <!-- Clipboard access notifications -->
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="show_clip_access_notification"
         android:title="@string/show_clip_access_notification"
         android:summary="@string/show_clip_access_notification_summary"
diff --git a/res/xml/private_space_settings.xml b/res/xml/private_space_settings.xml
index 08053e0..48835fc 100644
--- a/res/xml/private_space_settings.xml
+++ b/res/xml/private_space_settings.xml
@@ -19,21 +19,35 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:settings="http://schemas.android.com/apk/res-auto"
     android:key="private_space_title"
-    android:title="@string/private_space_title">
+    android:title="@string/private_space_title"
+    settings:searchable="false">
+
+    <com.android.settingslib.widget.IllustrationPreference
+        android:key="privatespace_hide_video"
+        settings:searchable="false"
+        settings:lottie_rawRes="@drawable/privatespace_placeholder_image"/>
+
+    <Preference
+        android:key="private_space_description"
+        android:summary="@string/private_space_description"
+        android:selectable="false"
+        settings:searchable="false" />
 
     <PreferenceCategory
         android:title="@string/security_header">
 
-        <SwitchPreference
+        <Preference
             android:key="private_space_use_one_lock"
-            android:title="@string/private_space_one_lock_title"
-            settings:controller="com.android.settings.privatespace.UseOneLockController"
+            android:title="@string/private_space_lock_title"
+            android:fragment="com.android.settings.privatespace.onelock.UseOneLockSettingsFragment"
+            settings:controller="com.android.settings.privatespace.onelock.UseOneLockController"
             settings:searchable="false" />
 
-        <SwitchPreference
+        <Preference
             android:key="private_space_hidden"
             android:title="@string/private_space_hide_title"
-            settings:controller="com.android.settings.privatespace.HidePrivateSpaceController"
+            android:fragment="com.android.settings.privatespace.HidePrivateSpaceSettings"
+            settings:controller="com.android.settings.privatespace.HidePrivateSpaceSummaryController"
             settings:searchable="false" />
 
     </PreferenceCategory>
@@ -42,12 +56,6 @@
         android:title="@string/private_space_category_system">
 
         <Preference
-            android:key="private_space_create"
-            android:title="@string/private_space_create_title"
-            settings:controller="com.android.settings.privatespace.CreatePrivateSpaceController"
-            settings:searchable="false" />
-
-        <Preference
             android:key="private_space_delete"
             android:title="@string/private_space_delete_title"
             settings:controller="com.android.settings.privatespace.DeletePrivateSpaceController"
@@ -55,4 +63,4 @@
 
     </PreferenceCategory>
 
-</PreferenceScreen>
\ No newline at end of file
+</PreferenceScreen>
diff --git a/res/xml/privatespace_hide_locked.xml b/res/xml/privatespace_hide_locked.xml
new file mode 100644
index 0000000..f26d207
--- /dev/null
+++ b/res/xml/privatespace_hide_locked.xml
@@ -0,0 +1,69 @@
+<!--
+  ~ 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.
+  -->
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res-auto"
+    android:title="@string/privatespace_hide_page_title">
+
+    <com.android.settingslib.widget.IllustrationPreference
+        android:key="privatespace_hide_video"
+        settings:searchable="false"
+        settings:lottie_rawRes="@drawable/privatespace_placeholder_image"/>
+
+    <com.android.settingslib.widget.MainSwitchPreference
+        android:key="hide_when_locked"
+        android:title="@string/privatespace_hide_page_title"
+        settings:controller="com.android.settings.privatespace.HidePrivateSpaceController"/>
+
+        <Preference
+        android:key="private_space_hidden"
+        android:summary="@string/privatespace_hide_page_summary"
+        android:selectable="false"
+        settings:searchable="false" />
+
+        <Preference
+        android:key="private_space_note"
+        android:summary="@string/privatespace_development_note"
+        android:selectable="false"
+        settings:searchable="false" />
+
+    <PreferenceCategory
+        android:title="@string/privatespace_unhide_header">
+
+        <Preference
+        android:key="search_when_locked_footer"
+        android:icon="@drawable/counter_1_24dp"
+        android:title="@string/privatespace_open_settings"
+        android:selectable="false"
+        settings:searchable="false" />
+
+        <Preference
+            android:key="tap_tile_footer"
+            android:icon="@drawable/counter_2_24dp"
+            android:title="@string/privatespace_tap_settings"
+            android:selectable="false"
+            settings:searchable="false" />
+
+        <Preference
+            android:key="turn_off_footer"
+            android:icon="@drawable/counter_3_24dp"
+            android:title="@string/privatespace_turnoff_hide"
+            android:selectable="false"
+            settings:searchable="false" />
+
+    </PreferenceCategory>
+
+</PreferenceScreen>
diff --git a/res/xml/privatespace_one_lock.xml b/res/xml/privatespace_one_lock.xml
new file mode 100644
index 0000000..e078c17
--- /dev/null
+++ b/res/xml/privatespace_one_lock.xml
@@ -0,0 +1,44 @@
+<!--
+  ~ Copyright (C) 2023 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res-auto"
+    android:title="@string/private_space_lock_title"
+    settings:searchable="false" >
+
+    <com.android.settingslib.widget.TopIntroPreference
+        android:title="@string/private_space_one_lock_summary"
+        settings:searchable="false" />
+
+    <com.android.settingslib.widget.MainSwitchPreference
+        android:key="private_lock_unification"
+        android:title="@string/private_space_screen_lock_title"
+        settings:searchable="false" />
+
+    <Preference
+        android:key="change_private_space_lock"
+        android:title="@string/private_space_lock_title"
+        android:summary="@string/unlock_set_unlock_mode_pattern"
+        settings:searchable="false" />
+
+    <Preference
+        android:key="private_space_biometrics"
+        android:title="@string/private_space_biometric_title"
+        android:summary="@string/private_space_biometric_summary"
+        android:fragment="com.android.settings.privatespace.onelock.FaceFingerprintUnlockFragment"
+        settings:searchable="false" />
+
+</PreferenceScreen>
diff --git a/res/xml/privatespace_setup_education_entries.xml b/res/xml/privatespace_setup_education_entries.xml
new file mode 100644
index 0000000..18fb19d
--- /dev/null
+++ b/res/xml/privatespace_setup_education_entries.xml
@@ -0,0 +1,39 @@
+<?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.
+  -->
+
+<ItemGroup
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
+
+    <Item
+        android:enabled="false"
+        android:icon="@drawable/ic_apps"
+        android:title="@string/privatespace_access_bottom_text"
+        app:sudIconTint="?android:attr/textColorSecondary"/>
+
+    <Item
+        android:enabled="false"
+        android:icon="@drawable/ic_lock_24dp"
+        android:title="@string/privatespace_protected_lock_text"
+        app:sudIconTint="?android:attr/textColorSecondary"/>
+
+    <Item
+        android:enabled="false"
+        android:icon="@drawable/ic_notifications"
+        android:title="@string/privatespace_hidden_notifications_text"
+        app:sudIconTint="?android:attr/textColorSecondary"/>
+</ItemGroup>
diff --git a/res/xml/reduce_bright_colors_settings.xml b/res/xml/reduce_bright_colors_settings.xml
index 00ab585..d092e13 100644
--- a/res/xml/reduce_bright_colors_settings.xml
+++ b/res/xml/reduce_bright_colors_settings.xml
@@ -30,7 +30,7 @@
         settings:tickMark="@android:color/transparent"
     />
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="rbc_persist"
         android:persistent="false"
         android:title="@string/reduce_bright_colors_persist_preference_title" />
diff --git a/res/xml/reset_dashboard_fragment.xml b/res/xml/reset_dashboard_fragment.xml
index 08852c9..ab253ac 100644
--- a/res/xml/reset_dashboard_fragment.xml
+++ b/res/xml/reset_dashboard_fragment.xml
@@ -30,11 +30,9 @@
         android:fragment="com.android.settings.ResetNetwork" />
 
     <!-- Bluetooth and WiFi reset -->
-    <com.android.settingslib.RestrictedPreference
+    <com.android.settings.spa.preference.ComposePreference
         android:key="network_reset_bluetooth_wifi_pref"
         android:title="@string/reset_bluetooth_wifi_title"
-        settings:userRestriction="no_network_reset"
-        settings:useAdminDisabledSummary="true"
         settings:controller="com.android.settings.network.BluetoothWiFiResetPreferenceController" />
 
     <!-- Reset app preferences -->
diff --git a/res/xml/screen_lock_settings.xml b/res/xml/screen_lock_settings.xml
index 00dd7ae..3f732b9 100644
--- a/res/xml/screen_lock_settings.xml
+++ b/res/xml/screen_lock_settings.xml
@@ -23,17 +23,17 @@
     settings:searchable="false">
 
     <!-- available in pattern -->
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="visiblepattern"
         android:title="@string/lockpattern_settings_enable_visible_pattern_title" />
 
     <!-- available in pin -->
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="auto_pin_confirm"
         android:title="@string/lock_screen_auto_pin_confirm_title"
         android:summary="@string/lock_screen_auto_pin_confirm_summary" />
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="enhancedPinPrivacy"
         android:title="@string/lockpattern_settings_enhanced_pin_privacy_title"
         android:summary="@string/lockpattern_settings_enhanced_pin_privacy_summary" />
@@ -48,7 +48,7 @@
         android:entryValues="@array/lock_after_timeout_values" />
 
     <!-- available in pin/pattern/password -->
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="power_button_instantly_locks"
         android:title="@string/lockpattern_settings_enable_power_button_instantly_locks" />
 
diff --git a/res/xml/screen_pinning_settings.xml b/res/xml/screen_pinning_settings.xml
index 7689043..2c4402d 100644
--- a/res/xml/screen_pinning_settings.xml
+++ b/res/xml/screen_pinning_settings.xml
@@ -23,7 +23,7 @@
         android:title="@string/app_pinning_intro"
         settings:searchable="false"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="use_screen_lock"
         android:title="@string/screen_pinning_unlock_none"
         settings:allowDividerAbove="true"/>
diff --git a/res/xml/security_advanced_settings.xml b/res/xml/security_advanced_settings.xml
index 4570dac..89834b4 100644
--- a/res/xml/security_advanced_settings.xml
+++ b/res/xml/security_advanced_settings.xml
@@ -106,7 +106,7 @@
         settings:keywords="@string/keywords_app_pinning"
         settings:controller="com.android.settings.security.ScreenPinningPreferenceController" />
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:order="290"
         android:key="confirm_sim_deletion"
         android:title="@string/confirm_sim_deletion_title"
@@ -142,7 +142,7 @@
             android:summary="@string/unlock_set_unlock_mode_pattern"
             settings:keywords="@string/keywords_lockscreen" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="visiblepattern_profile"
             android:title="@string/lockpattern_settings_enable_visible_pattern_title_profile"
             settings:controller="com.android.settings.security.VisiblePatternProfilePreferenceController" />
diff --git a/res/xml/security_lockscreen_settings.xml b/res/xml/security_lockscreen_settings.xml
index 80e8fe6..cb1ce44 100644
--- a/res/xml/security_lockscreen_settings.xml
+++ b/res/xml/security_lockscreen_settings.xml
@@ -28,7 +28,7 @@
             android:summary="@string/summary_placeholder"
             settings:keywords="@string/keywords_lock_screen_notif"/>
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="security_display_lockscreen_bypass"
             android:title="@string/lockscreen_bypass_title"
             android:summary="@string/lockscreen_bypass_summary"
@@ -45,25 +45,25 @@
             android:title="@string/owner_info_settings_title"
             android:summary="@string/owner_info_settings_summary" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="lockscreen_privacy_wallet_switch"
             android:title="@string/lockscreen_privacy_wallet_setting_toggle"
             android:summary="@string/lockscreen_privacy_wallet_summary"
             settings:controller="com.android.settings.display.WalletPrivacyPreferenceController" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="lock_screen_show_qr_scanner"
             android:title="@string/lockscreen_privacy_qr_code_scanner_setting_toggle"
             android:summary="@string/lockscreen_privacy_qr_code_scanner_summary"
             settings:controller="com.android.settings.display.QRCodeScannerPreferenceController" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="lockscreen_privacy_controls_switch"
             android:title="@string/lockscreen_privacy_controls_setting_toggle"
             android:summary="@string/lockscreen_privacy_controls_summary"
             settings:controller="com.android.settings.display.ControlsPrivacyPreferenceController" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="lockscreen_trivial_controls_switch"
             android:title="@string/lockscreen_trivial_controls_setting_toggle"
             android:summary="@string/lockscreen_trivial_controls_summary"
@@ -74,7 +74,7 @@
             android:title="@string/lockscreen_quick_affordances_title"
             settings:controller="com.android.settings.display.CustomizableLockScreenQuickAffordancesPreferenceController" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="lockscreen_double_line_clock_switch"
             android:title="@string/lockscreen_double_line_clock_setting_toggle"
             android:summary="@string/lockscreen_double_line_clock_summary"
@@ -116,7 +116,7 @@
             settings:searchable="false"
             settings:controller="com.android.settings.gestures.PickupGesturePreferenceController" />
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="ambient_display_notification"
             android:title="@string/doze_title"
             android:summary="@string/doze_summary"
diff --git a/res/xml/security_settings_combined_biometric.xml b/res/xml/security_settings_combined_biometric.xml
index 7d01472..c545b47 100644
--- a/res/xml/security_settings_combined_biometric.xml
+++ b/res/xml/security_settings_combined_biometric.xml
@@ -66,7 +66,7 @@
             settings:keywords="@string/keywords_biometric_unlock"
             settings:controller="com.android.settings.biometrics.combination.BiometricSettingsKeyguardPreferenceController"/>
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="biometric_settings_biometric_app"
             android:title="@string/biometric_settings_use_biometric_for_apps"
             settings:keywords="@string/keywords_biometric_unlock"
diff --git a/res/xml/security_settings_combined_biometric_profile.xml b/res/xml/security_settings_combined_biometric_profile.xml
index 22d19ac..1ab4106 100644
--- a/res/xml/security_settings_combined_biometric_profile.xml
+++ b/res/xml/security_settings_combined_biometric_profile.xml
@@ -45,7 +45,7 @@
     <PreferenceCategory
         android:key="biometric_ways_to_use">
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="biometric_settings_biometric_app_profile"
             android:title="@string/biometric_settings_use_biometric_for_apps"
             settings:keywords="@string/keywords_biometric_unlock"
diff --git a/res/xml/security_settings_face.xml b/res/xml/security_settings_face.xml
index 9fc8a1f..fd3498e 100644
--- a/res/xml/security_settings_face.xml
+++ b/res/xml/security_settings_face.xml
@@ -28,7 +28,7 @@
             android:title="@string/biometric_settings_use_biometric_unlock_phone"
             settings:keywords="@string/keywords_face_unlock"
             settings:controller="com.android.settings.biometrics.face.FaceSettingsKeyguardPreferenceController"/>
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="security_settings_face_app"
             android:title="@string/biometric_settings_use_biometric_for_apps"
             settings:keywords="@string/keywords_face_unlock"
@@ -44,14 +44,14 @@
     <PreferenceCategory
         android:key="security_settings_face_manage_category"
         android:title="@string/security_settings_face_settings_preferences_category">
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="security_settings_face_require_attention"
             android:title="@string/security_settings_face_settings_require_attention"
             android:summary="@string/security_settings_face_settings_require_attention_details"
             settings:keywords="@string/keywords_face_unlock"
             settings:controller="com.android.settings.biometrics.face.FaceSettingsAttentionPreferenceController"/>
 
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="security_settings_face_require_confirmation"
             android:title="@string/security_settings_face_settings_require_confirmation"
             android:summary="@string/security_settings_face_settings_require_confirmation_details"
diff --git a/res/xml/sim_lock_settings.xml b/res/xml/sim_lock_settings.xml
index 174e5c2..02db847 100644
--- a/res/xml/sim_lock_settings.xml
+++ b/res/xml/sim_lock_settings.xml
@@ -15,10 +15,9 @@
 -->
 
 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:settings="http://schemas.android.com/apk/res-auto"
-        android:title="@string/sim_lock_settings">
+    android:title="@string/sim_lock_settings">
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
             android:key="sim_toggle"
             android:title="@string/sim_pin_toggle"
             android:summaryOn="@string/sim_lock_on"
diff --git a/res/xml/smart_battery_detail.xml b/res/xml/smart_battery_detail.xml
index 9795125..4047674 100644
--- a/res/xml/smart_battery_detail.xml
+++ b/res/xml/smart_battery_detail.xml
@@ -26,14 +26,14 @@
         android:key="auto_awesome_battery"
         settings:lottie_rawRes="@raw/auto_awesome_battery_lottie" />
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="smart_battery"
         android:title="@string/smart_battery_title"
         android:summary="@string/smart_battery_summary"
         settings:controller="com.android.settings.fuelgauge.SmartBatteryPreferenceController"
         settings:allowDividerAbove="true"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="auto_restriction"
         android:title="@string/battery_auto_restriction_title"
         android:summary="@string/battery_auto_restriction_summary"
diff --git a/res/xml/smart_forwarding_switch.xml b/res/xml/smart_forwarding_switch.xml
index dda9d5a..a278cdf 100644
--- a/res/xml/smart_forwarding_switch.xml
+++ b/res/xml/smart_forwarding_switch.xml
@@ -1,10 +1,9 @@
 <PreferenceScreen
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:settings="http://schemas.android.com/apk/res-auto"
-        android:key="smart_forwarding_preference"
-        android:title="@string/smart_forwarding_title">
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:key="smart_forwarding_preference"
+    android:title="@string/smart_forwarding_title">
 
-      <SwitchPreference
+      <SwitchPreferenceCompat
           android:key="smart_forwarding_switch"
           android:title="Smart forwarding"
           android:summaryOff="@string/smart_forwarding_summary_disabled"
diff --git a/res/xml/sound_settings.xml b/res/xml/sound_settings.xml
index 57e3249..15312c8 100644
--- a/res/xml/sound_settings.xml
+++ b/res/xml/sound_settings.xml
@@ -169,37 +169,37 @@
         android:order="-60"/>
 
     <!-- Dial pad tones -->
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="dial_pad_tones"
         android:title="@string/dial_pad_tones_title"
         android:order="-50"/>
 
     <!-- Screen locking sounds -->
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="screen_locking_sounds"
         android:title="@string/screen_locking_sounds_title"
         android:order="-45"/>
 
     <!-- Charging sounds -->
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="charging_sounds"
         android:title="@string/charging_sounds_title"
         android:order="-40"/>
 
     <!-- Docking sounds -->
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="docking_sounds"
         android:title="@string/docking_sounds_title"
         android:order="-35"/>
 
     <!-- Touch sounds -->
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="touch_sounds"
         android:title="@string/touch_sounds_title"
         android:order="-30"/>
 
     <!-- Show vibrate icon in status bar -->
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="vibrate_icon"
         android:title="@string/vibrate_icon_title"
         android:order="-27"/>
@@ -212,7 +212,7 @@
         android:order="-20"/>
 
     <!-- Boot sounds -->
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="boot_sounds"
         android:title="@string/boot_sounds_title"
         android:order="-15"/>
diff --git a/res/xml/sound_work_settings.xml b/res/xml/sound_work_settings.xml
index 8e48fac..a7ab57a 100644
--- a/res/xml/sound_work_settings.xml
+++ b/res/xml/sound_work_settings.xml
@@ -19,7 +19,7 @@
     android:title="@string/sound_work_settings">
 
     <!-- Use the same sounds of the work profile -->
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="work_use_personal_sounds"
         android:title="@string/work_use_personal_sounds_title"
         android:summary="@string/work_use_personal_sounds_summary"
diff --git a/res/xml/spatial_audio_settings.xml b/res/xml/spatial_audio_settings.xml
index 13d3b25..7355f98 100644
--- a/res/xml/spatial_audio_settings.xml
+++ b/res/xml/spatial_audio_settings.xml
@@ -24,12 +24,12 @@
         android:title="@string/spatial_audio_text"
         settings:searchable="false"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="spatial_audio"
         android:title="@string/spatial_audio_speaker"
         settings:controller="com.android.settings.notification.SpatialAudioPreferenceController"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="spatial_audio_wired_headphones"
         android:title="@string/spatial_audio_wired_headphones"
         settings:controller="com.android.settings.notification.SpatialAudioWiredHeadphonesController"/>
diff --git a/res/xml/special_access.xml b/res/xml/special_access.xml
index b3f3f7d..3f3d75d 100644
--- a/res/xml/special_access.xml
+++ b/res/xml/special_access.xml
@@ -100,6 +100,11 @@
         settings:controller="com.android.settings.spa.app.specialaccess.UseFullScreenIntentPreferenceController" />
 
     <Preference
+        android:key="voice_activation_apps"
+        android:title="@string/voice_activation_apps_title"
+        settings:controller="com.android.settings.spa.app.specialaccess.VoiceActivationAppsPreferenceController" />
+
+    <Preference
         android:key="picture_in_picture"
         android:title="@string/picture_in_picture_title"
         android:order="-1100"
diff --git a/res/xml/swipe_to_notification_settings.xml b/res/xml/swipe_to_notification_settings.xml
index 9d681a1..766a894 100644
--- a/res/xml/swipe_to_notification_settings.xml
+++ b/res/xml/swipe_to_notification_settings.xml
@@ -26,7 +26,7 @@
         settings:searchable="false"
         app:lottie_rawRes="@raw/lottie_swipe_fingerprint"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="gesture_swipe_down_fingerprint"
         android:title="@string/fingerprint_swipe_for_notifications_title"
         android:summary="@string/fingerprint_swipe_for_notifications_summary"
diff --git a/res/xml/tap_screen_gesture_settings.xml b/res/xml/tap_screen_gesture_settings.xml
index 468b416..6b2674b 100644
--- a/res/xml/tap_screen_gesture_settings.xml
+++ b/res/xml/tap_screen_gesture_settings.xml
@@ -26,7 +26,7 @@
         settings:searchable="false"
         app:lottie_rawRes="@raw/lottie_tap_to_check_phone"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="gesture_tap"
         android:title="@string/ambient_display_tap_screen_title"
         android:summary="@string/ambient_display_tap_screen_summary"
diff --git a/res/xml/tether_prefs.xml b/res/xml/tether_prefs.xml
index a6e0a39..89bd631 100644
--- a/res/xml/tether_prefs.xml
+++ b/res/xml/tether_prefs.xml
@@ -37,13 +37,13 @@
         android:summary="@string/usb_tethering_subtext"
         settings:keywords="@string/keywords_hotspot_tethering" />
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="enable_bluetooth_tethering"
         android:title="@string/bluetooth_tether_checkbox_text"
         android:summary="@string/bluetooth_tethering_subtext"
         settings:keywords="@string/keywords_hotspot_tethering" />
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="enable_ethernet_tethering"
         android:title="@string/ethernet_tether_checkbox_text"
         android:summary="@string/ethernet_tethering_subtext"
diff --git a/res/xml/trackpad_gesture_settings.xml b/res/xml/trackpad_gesture_settings.xml
index 6cac7f6..c2cdbdf 100644
--- a/res/xml/trackpad_gesture_settings.xml
+++ b/res/xml/trackpad_gesture_settings.xml
@@ -19,7 +19,7 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:settings="http://schemas.android.com/apk/res-auto"
     android:title="@string/trackpad_touchpad_gesture_title">
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="gesture_go_back"
         android:title="@string/trackpad_go_back_title"
         android:summary="@string/trackpad_go_back_summary"
@@ -27,7 +27,7 @@
         android:order="10"
         settings:controller="com.android.settings.inputmethod.TrackpadGoBackPreferenceController"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="gesture_go_home"
         android:title="@string/trackpad_go_home_title"
         android:summary="@string/trackpad_go_home_summary"
@@ -35,7 +35,7 @@
         android:order="20"
         settings:controller="com.android.settings.inputmethod.TrackpadGoHomePreferenceController"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="gesture_recent_apps"
         android:title="@string/trackpad_recent_apps_title"
         android:summary="@string/trackpad_recent_apps_summary"
@@ -43,7 +43,7 @@
         android:order="30"
         settings:controller="com.android.settings.inputmethod.TrackpadRecentAppsPreferenceController"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="gesture_notifications"
         android:title="@string/trackpad_notifications_title"
         android:summary="@string/trackpad_notifications_summary"
@@ -51,7 +51,7 @@
         android:order="40"
         settings:controller="com.android.settings.inputmethod.TrackpadNotificationsPreferenceController"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="gesture_switch_apps"
         android:title="@string/trackpad_switch_apps_title"
         android:summary="@string/trackpad_switch_apps_summary"
diff --git a/res/xml/trackpad_settings.xml b/res/xml/trackpad_settings.xml
index 19ce259..84ea528 100644
--- a/res/xml/trackpad_settings.xml
+++ b/res/xml/trackpad_settings.xml
@@ -28,14 +28,14 @@
         android:fragment="com.android.settings.inputmethod.TrackpadTouchGestureSettings"
         settings:controller="com.android.settings.inputmethod.TrackpadTouchGestureSettingsController"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="trackpad_tap_to_click"
         android:title="@string/trackpad_tap_to_click"
         android:icon="@drawable/ic_trackpad_tap_to_click"
         settings:controller="com.android.settings.inputmethod.TrackpadTapToClickPreferenceController"
         android:order="10"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="trackpad_reverse_scrolling"
         android:title="@string/trackpad_reverse_scrolling_title"
         android:summary="@string/trackpad_reverse_scrolling_summary"
@@ -43,7 +43,7 @@
         settings:controller="com.android.settings.inputmethod.TrackpadReverseScrollingPreferenceController"
         android:order="20"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="trackpad_bottom_right_tap"
         android:title="@string/trackpad_bottom_right_tap_title"
         android:summary="@string/trackpad_bottom_right_tap_summary"
diff --git a/res/xml/transcode_settings.xml b/res/xml/transcode_settings.xml
index 5c3bb7c..dd57515 100644
--- a/res/xml/transcode_settings.xml
+++ b/res/xml/transcode_settings.xml
@@ -21,27 +21,27 @@
     android:title="@string/transcode_settings_title"
     settings:searchable="false">
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="transcode_user_control"
         android:title="@string/transcode_user_control"
         settings:controller="com.android.settings.development.transcode.TranscodeUserControlPreferenceController" />
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="transcode_enable_all"
         android:title="@string/transcode_enable_all"
         settings:controller="com.android.settings.development.transcode.TranscodeGlobalTogglePreferenceController" />
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="transcode_default"
         android:title="@string/transcode_default"
         settings:controller="com.android.settings.development.transcode.TranscodeDefaultOptionPreferenceController" />
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="transcode_notification"
         android:title="@string/transcode_notification"
         settings:controller="com.android.settings.development.transcode.TranscodeNotificationPreferenceController" />
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="transcode_disable_cache"
         android:title="@string/transcode_disable_cache"
         settings:controller="com.android.settings.development.transcode.TranscodeDisableCachePreferenceController" />
diff --git a/res/xml/user_aspect_ratio_details.xml b/res/xml/user_aspect_ratio_details.xml
index f95b678..44a7589 100644
--- a/res/xml/user_aspect_ratio_details.xml
+++ b/res/xml/user_aspect_ratio_details.xml
@@ -21,6 +21,12 @@
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:title="@string/aspect_ratio_experimental_title">
 
+    <com.android.settingslib.widget.TopIntroPreference
+        android:key="app_aspect_ratio_summary"
+        android:order="-1001"
+        android:title="@string/summary_placeholder"
+        settings:searchable="false"/>
+
     <com.android.settingslib.widget.ActionButtonsPreference
         android:key="header_view" />
 
diff --git a/res/xml/user_details_settings.xml b/res/xml/user_details_settings.xml
index 068039c..8e15d14 100644
--- a/res/xml/user_details_settings.xml
+++ b/res/xml/user_details_settings.xml
@@ -21,11 +21,11 @@
     <com.android.settingslib.RestrictedPreference
             android:key="switch_user"
             android:icon="@drawable/ic_swap" />
-    <SwitchPreference
+    <SwitchPreferenceCompat
             android:key="user_grant_admin"
             android:icon="@drawable/ic_admin_panel_settings"
             android:title="@string/user_grant_admin" />
-    <SwitchPreference
+    <SwitchPreferenceCompat
             android:key="enable_calling"
             android:icon="@drawable/ic_phone"
             android:title="@string/user_enable_calling_sms" />
diff --git a/res/xml/widevine_settings.xml b/res/xml/widevine_settings.xml
new file mode 100644
index 0000000..1c118f0
--- /dev/null
+++ b/res/xml/widevine_settings.xml
@@ -0,0 +1,29 @@
+<?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.
+  -->
+
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res-auto"
+    android:title="@string/widevine_settings_title"
+    settings:searchable="false">
+
+    <SwitchPreference
+        android:key="force_l3_fallback"
+        android:title="@string/force_l3_fallback_title"
+        android:summary="@string/force_l3_fallback_summary"
+        settings:controller="com.android.settings.development.widevine.ForceL3FallbackPreferenceController" />
+</PreferenceScreen>
\ No newline at end of file
diff --git a/res/xml/wifi_configure_settings.xml b/res/xml/wifi_configure_settings.xml
index 2ab7b6a..bf795d0 100644
--- a/res/xml/wifi_configure_settings.xml
+++ b/res/xml/wifi_configure_settings.xml
@@ -19,14 +19,14 @@
     xmlns:settings="http://schemas.android.com/apk/res-auto"
     android:title="@string/wifi_configure_settings_preference_title">
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="enable_wifi_wakeup"
         android:title="@string/wifi_wakeup"
         android:icon="@drawable/ic_auto_wifi"
         android:summary="@string/wifi_wakeup_summary"
         settings:controller="com.android.settings.wifi.WifiWakeupPreferenceController"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="notify_open_networks"
         android:title="@string/wifi_notify_open_networks"
         android:icon="@drawable/ic_open_wifi_notifications"
@@ -34,7 +34,7 @@
         settings:keywords="@string/keywords_wifi_notify_open_networks"
         settings:controller="com.android.settings.wifi.NotifyOpenNetworksPreferenceController"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="wifi_cellular_data_fallback"
         android:title="@string/wifi_cellular_data_fallback_title"
         android:summary="@string/wifi_cellular_data_fallback_summary"
diff --git a/res/xml/wifi_network_details_fragment2.xml b/res/xml/wifi_network_details_fragment2.xml
index 0062474..daff20f 100644
--- a/res/xml/wifi_network_details_fragment2.xml
+++ b/res/xml/wifi_network_details_fragment2.xml
@@ -102,7 +102,7 @@
         android:title="@string/wifi_subscription"
         android:summary="@string/wifi_subscription_summary"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="auto_connect"
         android:title="@string/wifi_auto_connect_title"
         android:summary="@string/wifi_auto_connect_summary"/>
@@ -169,15 +169,11 @@
                 settings:enableCopying="true"/>
     </PreferenceCategory>
 
-    <!-- IPv6 Details -->
-    <PreferenceCategory
-            android:key="ipv6_category"
-            android:title="@string/wifi_details_ipv6_address_header"
-            android:selectable="false">
-        <Preference
-                android:key="ipv6_addresses"
-                android:selectable="false"
-                settings:enableCopying="true"/>
-    </PreferenceCategory>
+    <!-- IPv6 address -->
+    <Preference
+        android:title="@string/wifi_details_ipv6_address_header"
+        android:key="ipv6_addresses"
+        android:selectable="false"
+        settings:enableCopying="true"/>
 
 </PreferenceScreen>
diff --git a/res/xml/wifi_settings.xml b/res/xml/wifi_settings.xml
deleted file mode 100644
index eadea68..0000000
--- a/res/xml/wifi_settings.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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/wifi_settings"
-        settings:keywords="@string/keywords_wifi">
-
-    <com.android.settings.wifi.LinkablePreference
-        android:key="wifi_status_message"/>
-
-    <PreferenceCategory
-        android:key="connected_access_point"
-        android:layout="@layout/preference_category_no_label"/>
-
-    <PreferenceCategory
-        android:key="access_points"
-        android:layout="@layout/preference_category_no_label"/>
-
-    <Preference
-        android:key="configure_wifi_settings"
-        android:title="@string/wifi_configure_settings_preference_title"
-        settings:allowDividerAbove="true"
-        android:fragment="com.android.settings.wifi.ConfigureWifiSettings"/>
-
-    <Preference
-        android:key="saved_networks"
-        android:title="@string/wifi_saved_access_points_label"
-        android:fragment="com.android.settings.wifi.savedaccesspoints2.SavedAccessPointsWifiSettings2"/>
-
-    <com.android.settings.datausage.DataUsagePreference
-        android:key="wifi_data_usage"
-        android:title="@string/wifi_data_usage"/>
-</PreferenceScreen>
diff --git a/res/xml/wifi_tether_settings.xml b/res/xml/wifi_tether_settings.xml
index b8b810f..4924bf9 100644
--- a/res/xml/wifi_tether_settings.xml
+++ b/res/xml/wifi_tether_settings.xml
@@ -44,12 +44,12 @@
         android:persistent="false"
         android:title="@string/wifi_hotspot_password_title"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="wifi_tether_auto_turn_off"
         android:title="@string/wifi_hotspot_auto_off_title"
         android:summary="@string/wifi_hotspot_auto_off_summary"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="wifi_tether_maximize_compatibility"
         android:title="@string/wifi_hotspot_maximize_compatibility"/>
 
diff --git a/res/xml/zen_mode_calls_settings.xml b/res/xml/zen_mode_calls_settings.xml
index a0b39a9c..447353e 100644
--- a/res/xml/zen_mode_calls_settings.xml
+++ b/res/xml/zen_mode_calls_settings.xml
@@ -29,7 +29,7 @@
     </PreferenceCategory>
 
     <!-- Repeat callers -->
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="zen_mode_repeat_callers"
         android:title="@string/zen_mode_repeat_callers_title"
         settings:allowDividerAbove="true"/>
diff --git a/res/xml/zen_mode_custom_rule_calls_settings.xml b/res/xml/zen_mode_custom_rule_calls_settings.xml
index 4dca2ad..4bc3cb6 100644
--- a/res/xml/zen_mode_custom_rule_calls_settings.xml
+++ b/res/xml/zen_mode_custom_rule_calls_settings.xml
@@ -35,7 +35,7 @@
             android:title="@string/zen_mode_starred_contacts_title"/>
 
         <!-- Repeat callers -->
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="zen_mode_repeat_callers"
             android:title="@string/zen_mode_repeat_callers_title" />
     </PreferenceCategory>
diff --git a/res/xml/zen_mode_custom_rule_configuration.xml b/res/xml/zen_mode_custom_rule_configuration.xml
index 664c09a..906d642 100644
--- a/res/xml/zen_mode_custom_rule_configuration.xml
+++ b/res/xml/zen_mode_custom_rule_configuration.xml
@@ -34,31 +34,31 @@
             android:title="@string/zen_mode_messages" />
 
         <!-- Alarms -->
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="zen_rule_alarms"
             android:title="@string/zen_mode_alarms"
             android:summary="@string/zen_mode_alarms_summary"/>
 
         <!-- Media -->
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="zen_rule_media"
             android:title="@string/zen_mode_media"
             android:summary="@string/zen_mode_media_summary"/>
 
         <!-- System -->
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="zen_rule_system"
             android:title="@string/zen_mode_system"
             android:summary="@string/zen_mode_system_summary"/>
 
         <!-- Reminders -->
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="zen_rule_reminders"
             android:title="@string/zen_mode_reminders"
             android:summary="@string/zen_mode_reminders_summary"/>
 
         <!-- Events -->
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="zen_rule_events"
             android:title="@string/zen_mode_events"
             android:summary="@string/zen_mode_events_summary"/>
diff --git a/res/xml/zen_mode_schedule_rule_settings.xml b/res/xml/zen_mode_schedule_rule_settings.xml
index 874f5c9..82483f3 100644
--- a/res/xml/zen_mode_schedule_rule_settings.xml
+++ b/res/xml/zen_mode_schedule_rule_settings.xml
@@ -42,7 +42,7 @@
     <!-- Start time/End time added and removed here! :-) -->
 
     <!-- Exit DND mode with alarm -->
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="exit_at_alarm"
         android:title="@string/zen_mode_schedule_alarm_title"
         android:summary="@string/zen_mode_schedule_alarm_summary"
diff --git a/res/xml/zen_mode_sound_vibration_settings.xml b/res/xml/zen_mode_sound_vibration_settings.xml
index 2db42ac..ab22159 100644
--- a/res/xml/zen_mode_sound_vibration_settings.xml
+++ b/res/xml/zen_mode_sound_vibration_settings.xml
@@ -20,29 +20,29 @@
     android:title="@string/zen_category_exceptions" >
 
     <!-- Alarms -->
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="zen_mode_alarms"
         android:title="@string/zen_mode_alarms"/>
 
     <!-- Media -->
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="zen_mode_media"
         android:title="@string/zen_mode_media"
         android:summary="@string/zen_mode_media_summary"/>
 
     <!-- System -->
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="zen_mode_system"
         android:title="@string/zen_mode_system"
         android:summary="@string/zen_mode_system_summary"/>
 
     <!-- Reminders -->
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="zen_mode_reminders"
         android:title="@string/zen_mode_reminders"/>
 
     <!-- Events -->
-    <SwitchPreference
+    <SwitchPreferenceCompat
         android:key="zen_mode_events"
         android:title="@string/zen_mode_events"/>
 
diff --git a/src/com/android/settings/CustomListPreference.java b/src/com/android/settings/CustomListPreference.java
index a21abdf..978858b 100644
--- a/src/com/android/settings/CustomListPreference.java
+++ b/src/com/android/settings/CustomListPreference.java
@@ -37,7 +37,6 @@
 
     public CustomListPreference(Context context, AttributeSet attrs) {
         super(context, attrs);
-        setSingleLineTitle(true);
     }
 
     public CustomListPreference(Context context, AttributeSet attrs, int defStyleAttr,
diff --git a/src/com/android/settings/DefaultRingtonePreference.java b/src/com/android/settings/DefaultRingtonePreference.java
index 9bf626c..4c65488 100644
--- a/src/com/android/settings/DefaultRingtonePreference.java
+++ b/src/com/android/settings/DefaultRingtonePreference.java
@@ -51,16 +51,9 @@
             return;
         }
 
-        String mimeType = mUserContext.getContentResolver().getType(ringtoneUri);
-        if (mimeType == null) {
+        if (!isValidRingtoneUri(ringtoneUri)) {
             Log.e(TAG, "onSaveRingtone for URI:" + ringtoneUri
-                    + " ignored: failure to find mimeType (no access from this context?)");
-            return;
-        }
-
-        if (!(mimeType.startsWith("audio/") || mimeType.equals("application/ogg"))) {
-            Log.e(TAG, "onSaveRingtone for URI:" + ringtoneUri
-                    + " ignored: associated mimeType:" + mimeType + " is not an audio type");
+                    + " ignored: invalid ringtone Uri");
             return;
         }
 
diff --git a/src/com/android/settings/IccLockSettings.java b/src/com/android/settings/IccLockSettings.java
index 6592fe0..4628221 100644
--- a/src/com/android/settings/IccLockSettings.java
+++ b/src/com/android/settings/IccLockSettings.java
@@ -53,7 +53,7 @@
 import android.widget.Toast;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.network.ProxySubscriptionManager;
 import com.android.settings.network.SubscriptionUtil;
@@ -122,7 +122,7 @@
     private ProxySubscriptionManager mProxySubscriptionMgr;
 
     private EditPinPreference mPinDialog;
-    private SwitchPreference mPinToggle;
+    private TwoStatePreference mPinToggle;
 
     private Resources mRes;
 
@@ -193,7 +193,7 @@
         addPreferencesFromResource(R.xml.sim_lock_settings);
 
         mPinDialog = (EditPinPreference) findPreference(PIN_DIALOG);
-        mPinToggle = (SwitchPreference) findPreference(PIN_TOGGLE);
+        mPinToggle = (TwoStatePreference) findPreference(PIN_TOGGLE);
         if (savedInstanceState != null) {
             if (savedInstanceState.containsKey(DIALOG_STATE)
                     && restoreDialogStates(savedInstanceState)) {
diff --git a/src/com/android/settings/MainClear.java b/src/com/android/settings/MainClear.java
index 55d0af9..7b96d42 100644
--- a/src/com/android/settings/MainClear.java
+++ b/src/com/android/settings/MainClear.java
@@ -26,11 +26,13 @@
 import android.accounts.AuthenticatorDescription;
 import android.app.ActionBar;
 import android.app.Activity;
+import android.app.AlertDialog;
 import android.app.admin.DevicePolicyManager;
 import android.app.settings.SettingsEnums;
 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.content.pm.ResolveInfo;
@@ -43,6 +45,7 @@
 import android.os.SystemProperties;
 import android.os.UserHandle;
 import android.os.UserManager;
+import android.os.image.DynamicSystemManager;
 import android.provider.Settings;
 import android.telephony.euicc.EuiccManager;
 import android.text.TextUtils;
@@ -63,6 +66,7 @@
 
 import com.android.settings.core.InstrumentedFragment;
 import com.android.settings.enterprise.ActionDisabledByAdminDialogHelper;
+import com.android.settings.flags.Flags;
 import com.android.settings.network.SubscriptionUtil;
 import com.android.settings.password.ChooseLockSettingsHelper;
 import com.android.settings.password.ConfirmLockPattern;
@@ -94,7 +98,6 @@
     static final int KEYGUARD_REQUEST = 55;
     @VisibleForTesting
     static final int CREDENTIAL_CONFIRM_REQUEST = 56;
-
     private static final String KEY_SHOW_ESIM_RESET_CHECKBOX =
             "masterclear.allow_retain_esim_profiles_after_fdr";
 
@@ -266,6 +269,19 @@
                 return;
             }
 
+            final DynamicSystemManager dsuManager = (DynamicSystemManager)
+                    getActivity().getSystemService(Context.DYNAMIC_SYSTEM_SERVICE);
+            if (dsuManager.isInUse()) {
+                AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+                builder.setTitle(R.string.dsu_is_running);
+                builder.setPositiveButton(R.string.okay, new DialogInterface.OnClickListener() {
+                    public void onClick(DialogInterface dialog, int id) {}
+                });
+                AlertDialog dsuAlertdialog = builder.create();
+                dsuAlertdialog.show();
+                return;
+            }
+
             if (runKeyguardConfirmation(KEYGUARD_REQUEST)) {
                 return;
             }
@@ -432,14 +448,24 @@
 
         final GlifLayout layout = mContentView.findViewById(R.id.setup_wizard_layout);
         final FooterBarMixin mixin = layout.getMixin(FooterBarMixin.class);
+        final Activity activity = getActivity();
         mixin.setPrimaryButton(
-                new FooterButton.Builder(getActivity())
+                new FooterButton.Builder(activity)
                         .setText(R.string.main_clear_button_text)
                         .setListener(mInitiateListener)
                         .setButtonType(ButtonType.OTHER)
                         .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
-                        .build()
-        );
+                        .build());
+        if (Flags.showFactoryResetCancelButton()) {
+            mixin.setSecondaryButton(
+                    new FooterButton.Builder(activity)
+                            .setText(android.R.string.cancel)
+                            .setListener(view -> activity.onBackPressed())
+                            .setButtonType(ButtonType.CANCEL)
+                            .setTheme(
+                                    com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
+                            .build());
+        }
         mInitiateButton = mixin.getPrimaryButton();
     }
 
diff --git a/src/com/android/settings/RingtonePreference.java b/src/com/android/settings/RingtonePreference.java
index 8f9c618..de5b7c3 100644
--- a/src/com/android/settings/RingtonePreference.java
+++ b/src/com/android/settings/RingtonePreference.java
@@ -16,6 +16,8 @@
 
 package com.android.settings;
 
+import android.content.ContentProvider;
+import android.content.ContentResolver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.res.TypedArray;
@@ -23,9 +25,11 @@
 import android.media.RingtoneManager;
 import android.net.Uri;
 import android.os.UserHandle;
+import android.os.UserManager;
 import android.provider.Settings.System;
 import android.text.TextUtils;
 import android.util.AttributeSet;
+import android.util.Log;
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceManager;
@@ -239,4 +243,83 @@
         return true;
     }
 
+    public boolean isDefaultRingtone(Uri ringtoneUri) {
+        // null URIs are valid (None/silence)
+        return ringtoneUri == null || RingtoneManager.isDefault(ringtoneUri);
+    }
+
+    protected boolean isValidRingtoneUri(Uri ringtoneUri) {
+        if (isDefaultRingtone(ringtoneUri)) {
+            return true;
+        }
+
+        // Return early for android resource URIs
+        if (ContentResolver.SCHEME_ANDROID_RESOURCE.equals(ringtoneUri.getScheme())) {
+            return true;
+        }
+
+        String mimeType = mUserContext.getContentResolver().getType(ringtoneUri);
+        if (mimeType == null) {
+            Log.e(TAG, "isValidRingtoneUri for URI:" + ringtoneUri
+                    + " failed: failure to find mimeType (no access from this context?)");
+            return false;
+        }
+
+        if (!(mimeType.startsWith("audio/") || mimeType.equals("application/ogg")
+                || mimeType.equals("application/x-flac"))) {
+            Log.e(TAG, "isValidRingtoneUri for URI:" + ringtoneUri
+                    + " failed: associated mimeType:" + mimeType + " is not an audio type");
+            return false;
+        }
+
+        // Validate userId from URIs: content://{userId}@...
+        final int userIdFromUri = ContentProvider.getUserIdFromUri(ringtoneUri, mUserId);
+        if (userIdFromUri != mUserId) {
+            final UserManager userManager = mUserContext.getSystemService(UserManager.class);
+
+            if (!userManager.isSameProfileGroup(mUserId, userIdFromUri)) {
+                Log.e(TAG,
+                    "isValidRingtoneUri for URI:" + ringtoneUri + " failed: user " + userIdFromUri
+                        + " and user " + mUserId + " are not in the same profile group");
+                return false;
+            }
+
+            final int parentUserId;
+            final int profileUserId;
+            if (userManager.isProfile()) {
+                profileUserId = mUserId;
+                parentUserId = userIdFromUri;
+            } else {
+                parentUserId = mUserId;
+                profileUserId = userIdFromUri;
+            }
+
+            final UserHandle parent = userManager.getProfileParent(UserHandle.of(profileUserId));
+            if (parent == null || parent.getIdentifier() != parentUserId) {
+                Log.e(TAG,
+                    "isValidRingtoneUri for URI:" + ringtoneUri + " failed: user " + profileUserId
+                        + " is not a profile of user " + parentUserId);
+                return false;
+            }
+
+            // Allow parent <-> managed profile sharing, unless restricted
+            if (userManager.hasUserRestrictionForUser(
+                UserManager.DISALLOW_SHARE_INTO_MANAGED_PROFILE, UserHandle.of(parentUserId))) {
+                Log.e(TAG,
+                    "isValidRingtoneUri for URI:" + ringtoneUri + " failed: user " + parentUserId
+                        + " has restriction: " + UserManager.DISALLOW_SHARE_INTO_MANAGED_PROFILE);
+                return false;
+            }
+
+            if (!(userManager.isManagedProfile(profileUserId) || userManager.getUserProperties(
+                    UserHandle.of(profileUserId)).isMediaSharedWithParent())) {
+                Log.e(TAG, "isValidRingtoneUri for URI:" + ringtoneUri
+                    + " failed: user " + profileUserId + " is not a cloned or managed profile");
+                return false;
+            }
+        }
+
+        return true;
+    }
+
 }
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index 7ea4be4..49b2174 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -314,7 +314,6 @@
     public static class ConfigureWifiSettingsActivity extends SettingsActivity { /* empty */ }
     public static class SavedAccessPointsSettingsActivity extends SettingsActivity { /* empty */ }
     public static class TextToSpeechSettingsActivity extends SettingsActivity { /* empty */ }
-    public static class AndroidBeamSettingsActivity extends SettingsActivity { /* empty */ }
     public static class WifiDisplaySettingsActivity extends SettingsActivity { /* empty */ }
     public static class DreamSettingsActivity extends SettingsActivity { /* empty */ }
     /** Activity to manage communal settings */
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index bc061e3..4c20231 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -16,16 +16,12 @@
 
 package com.android.settings;
 
-import static android.provider.Settings.ACTION_SETTINGS_EMBED_DEEP_LINK_ACTIVITY;
-import static android.provider.Settings.EXTRA_SETTINGS_EMBEDDED_DEEP_LINK_HIGHLIGHT_MENU_KEY;
-import static android.provider.Settings.EXTRA_SETTINGS_EMBEDDED_DEEP_LINK_INTENT_URI;
-
+import static com.android.settings.activityembedding.EmbeddedDeepLinkUtils.tryStartMultiPaneDeepLink;
 import static com.android.settings.applications.appinfo.AppButtonsPreferenceController.KEY_REMOVE_TASK_WHEN_FINISHING;
 
 import android.app.ActionBar;
 import android.app.ActivityManager;
 import android.app.settings.SettingsEnums;
-import android.content.ActivityNotFoundException;
 import android.content.BroadcastReceiver;
 import android.content.ComponentName;
 import android.content.Context;
@@ -35,7 +31,6 @@
 import android.content.pm.ActivityInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager.NameNotFoundException;
-import android.content.pm.UserInfo;
 import android.content.res.Resources;
 import android.content.res.Resources.Theme;
 import android.graphics.drawable.Icon;
@@ -67,7 +62,6 @@
 import com.android.settings.core.SubSettingLauncher;
 import com.android.settings.core.gateway.SettingsGateway;
 import com.android.settings.dashboard.DashboardFeatureProvider;
-import com.android.settings.homepage.DeepLinkHomepageActivityInternal;
 import com.android.settings.homepage.SettingsHomepageActivity;
 import com.android.settings.homepage.TopLevelSettings;
 import com.android.settings.overlay.FeatureFactory;
@@ -278,7 +272,8 @@
         getMetaData();
         final Intent intent = getIntent();
 
-        if (shouldShowTwoPaneDeepLink(intent) && tryStartTwoPaneDeepLink(intent)) {
+        if (shouldShowMultiPaneDeepLink(intent)
+                && tryStartMultiPaneDeepLink(this, intent, mHighlightMenuKey)) {
             finish();
             super.onCreate(savedState);
             return;
@@ -415,73 +410,7 @@
             intent.getBooleanExtra(EXTRA_SHOW_FRAGMENT_AS_SUBSETTING, false);
     }
 
-    /**
-     * Returns the deep link trampoline intent for large screen devices.
-     */
-    public static Intent getTrampolineIntent(Intent intent, String highlightMenuKey) {
-        final Intent detailIntent = new Intent(intent);
-        // Guard against the arbitrary Intent injection.
-        if (detailIntent.getSelector() != null) {
-            detailIntent.setSelector(null);
-        }
-        // It's a deep link intent, SettingsHomepageActivity will set SplitPairRule and start it.
-        final Intent trampolineIntent = new Intent(ACTION_SETTINGS_EMBED_DEEP_LINK_ACTIVITY)
-                .setPackage(Utils.SETTINGS_PACKAGE_NAME)
-                .replaceExtras(detailIntent);
-
-        // Relay detail intent data to prevent failure of Intent#ParseUri.
-        // If Intent#getData() is not null, Intent#toUri will return an Uri which has the scheme of
-        // Intent#getData() and it may not be the scheme of an Intent.
-        trampolineIntent.putExtra(
-                SettingsHomepageActivity.EXTRA_SETTINGS_LARGE_SCREEN_DEEP_LINK_INTENT_DATA,
-                detailIntent.getData());
-        detailIntent.setData(null);
-
-        trampolineIntent.putExtra(EXTRA_SETTINGS_EMBEDDED_DEEP_LINK_INTENT_URI,
-                detailIntent.toUri(Intent.URI_INTENT_SCHEME));
-
-        trampolineIntent.putExtra(EXTRA_SETTINGS_EMBEDDED_DEEP_LINK_HIGHLIGHT_MENU_KEY,
-                highlightMenuKey);
-        trampolineIntent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
-        return trampolineIntent;
-    }
-
-    private boolean tryStartTwoPaneDeepLink(Intent intent) {
-        intent.putExtra(EXTRA_INITIAL_CALLING_PACKAGE, PasswordUtils.getCallingAppPackageName(
-                getActivityToken()));
-        final Intent trampolineIntent;
-        if (intent.getBooleanExtra(EXTRA_IS_FROM_SLICE, false)) {
-            // Get menu key for slice deep link case.
-            final String highlightMenuKey = intent.getStringExtra(
-                    EXTRA_SETTINGS_EMBEDDED_DEEP_LINK_HIGHLIGHT_MENU_KEY);
-            if (!TextUtils.isEmpty(highlightMenuKey)) {
-                mHighlightMenuKey = highlightMenuKey;
-            }
-            trampolineIntent = getTrampolineIntent(intent, mHighlightMenuKey);
-            trampolineIntent.setClass(this, DeepLinkHomepageActivityInternal.class);
-        } else {
-            trampolineIntent = getTrampolineIntent(intent, mHighlightMenuKey);
-        }
-
-        try {
-            final UserManager um = getSystemService(UserManager.class);
-            final UserInfo userInfo = um.getUserInfo(getUser().getIdentifier());
-            if (userInfo.isManagedProfile()) {
-                trampolineIntent.setClass(this, DeepLinkHomepageActivityInternal.class)
-                        .putExtra(EXTRA_USER_HANDLE, getUser());
-                startActivityAsUser(trampolineIntent,
-                        um.getProfileParent(userInfo.id).getUserHandle());
-            } else {
-                startActivity(trampolineIntent);
-            }
-        } catch (ActivityNotFoundException e) {
-            Log.e(LOG_TAG, "Deep link homepage is not available to show 2-pane UI");
-            return false;
-        }
-        return true;
-    }
-
-    private boolean shouldShowTwoPaneDeepLink(Intent intent) {
+    private boolean shouldShowMultiPaneDeepLink(Intent intent) {
         if (!ActivityEmbeddingUtils.isEmbeddingActivityEnabled(this)) {
             return false;
         }
diff --git a/src/com/android/settings/SettingsActivityUtil.kt b/src/com/android/settings/SettingsActivityUtil.kt
index 65d26de..4238ff8 100644
--- a/src/com/android/settings/SettingsActivityUtil.kt
+++ b/src/com/android/settings/SettingsActivityUtil.kt
@@ -28,7 +28,7 @@
 import com.android.settings.applications.specialaccess.pictureinpicture.PictureInPictureDetails
 import com.android.settings.applications.specialaccess.pictureinpicture.PictureInPictureSettings
 import com.android.settings.spa.SpaActivity.Companion.startSpaActivity
-import com.android.settings.spa.SpaActivity.Companion.startSpaActivityForApp
+import com.android.settings.spa.SpaAppBridgeActivity.Companion.getDestinationForApp
 import com.android.settings.spa.app.specialaccess.AlarmsAndRemindersAppListProvider
 import com.android.settings.spa.app.specialaccess.AllFilesAccessAppListProvider
 import com.android.settings.spa.app.specialaccess.DisplayOverOtherAppsAppListProvider
@@ -37,6 +37,7 @@
 import com.android.settings.spa.app.specialaccess.ModifySystemSettingsAppListProvider
 import com.android.settings.spa.app.specialaccess.NfcTagAppsSettingsProvider
 import com.android.settings.spa.app.specialaccess.PictureInPictureListProvider
+import com.android.settings.spa.app.specialaccess.VoiceActivationAppsListProvider
 import com.android.settings.spa.app.specialaccess.WifiControlAppListProvider
 import com.android.settings.wifi.ChangeWifiStateDetails
 
@@ -65,21 +66,24 @@
             WifiControlAppListProvider.getAppInfoRoutePrefix(),
         NfcTagAppsSettingsProvider::class.qualifiedName to
             NfcTagAppsSettingsProvider.getAppInfoRoutePrefix(),
+        VoiceActivationAppsListProvider::class.qualifiedName to
+            VoiceActivationAppsListProvider.getAppInfoRoutePrefix(),
     )
 
     @JvmStatic
     fun Context.launchSpaActivity(fragmentName: String, intent: Intent): Boolean {
-        if (!FeatureFlagUtils.isEnabled(this, FeatureFlagUtils.SETTINGS_ENABLE_SPA)) {
-            return false
-        }
-        FRAGMENT_TO_SPA_DESTINATION_MAP[fragmentName]?.let { destination ->
-            startSpaActivity(destination)
-            return true
-        }
-        FRAGMENT_TO_SPA_APP_DESTINATION_PREFIX_MAP[fragmentName]?.let { appDestinationPrefix ->
-            startSpaActivityForApp(appDestinationPrefix, intent)
-            return true
+        if (FeatureFlagUtils.isEnabled(this, FeatureFlagUtils.SETTINGS_ENABLE_SPA)) {
+            getDestination(fragmentName, intent)?.let { destination ->
+                startSpaActivity(destination)
+                return true
+            }
         }
         return false
     }
+
+    private fun getDestination(fragmentName: String, intent: Intent): String? =
+        FRAGMENT_TO_SPA_DESTINATION_MAP[fragmentName]
+            ?: FRAGMENT_TO_SPA_APP_DESTINATION_PREFIX_MAP[fragmentName]?.let { destinationPrefix ->
+                getDestinationForApp(destinationPrefix, intent)
+            }
 }
diff --git a/src/com/android/settings/SettingsInitialize.java b/src/com/android/settings/SettingsInitialize.java
index 37a564b..c0c0777 100644
--- a/src/com/android/settings/SettingsInitialize.java
+++ b/src/com/android/settings/SettingsInitialize.java
@@ -32,6 +32,7 @@
 import android.content.pm.ShortcutInfo;
 import android.content.pm.ShortcutManager;
 import android.content.pm.UserInfo;
+import android.os.Flags;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.util.Log;
@@ -67,6 +68,7 @@
         final PackageManager pm = context.getPackageManager();
         managedProfileSetup(context, pm, broadcast, userInfo);
         cloneProfileSetup(context, pm, userInfo);
+        privateProfileSetup(context, pm, userInfo);
         webviewSettingSetup(context, pm, userInfo);
         ThreadUtils.postOnBackgroundThread(() -> refreshExistingShortcuts(context));
         enableTwoPaneDeepLinkActivityIfNecessary(pm, context);
@@ -104,17 +106,29 @@
             }
         }
 
-        // Disable launcher icon
-        disableComponent(pm, new ComponentName(context, Settings.class));
-        // Disable shortcut picker.
-        disableComponent(pm, new ComponentName(context, CreateShortcutActivity.class));
+        disableComponentsToHideSettings(context, pm);
     }
 
     private void cloneProfileSetup(Context context, PackageManager pm, UserInfo userInfo) {
         if (userInfo == null || !userInfo.isCloneProfile()) {
             return;
         }
-        // Disable launcher icon
+
+        disableComponentsToHideSettings(context, pm);
+    }
+
+    private void privateProfileSetup(Context context, PackageManager pm, UserInfo userInfo) {
+        if (Flags.allowPrivateProfile()) {
+            if (userInfo == null || !userInfo.isPrivateProfile()) {
+                return;
+            }
+
+            disableComponentsToHideSettings(context, pm);
+        }
+    }
+
+    private void disableComponentsToHideSettings(Context context, PackageManager pm) {
+        // Disable settings app launcher icon
         disableComponent(pm, new ComponentName(context, Settings.class));
 
         //Disable Shortcut picker
diff --git a/src/com/android/settings/TrustedCredentialsFragment.java b/src/com/android/settings/TrustedCredentialsFragment.java
index ca95c1a..a150850 100644
--- a/src/com/android/settings/TrustedCredentialsFragment.java
+++ b/src/com/android/settings/TrustedCredentialsFragment.java
@@ -52,13 +52,13 @@
 import android.widget.AdapterView;
 import android.widget.BaseAdapter;
 import android.widget.BaseExpandableListAdapter;
+import android.widget.CompoundButton;
 import android.widget.ExpandableListView;
 import android.widget.FrameLayout;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.ListView;
 import android.widget.ProgressBar;
-import android.widget.Switch;
 import android.widget.TextView;
 
 import androidx.annotation.NonNull;
@@ -456,10 +456,10 @@
             return "Group" + getUserIdByGroup(groupPosition);
         }
 
-        private class ViewHolder {
+        private static class ViewHolder {
             private TextView mSubjectPrimaryView;
             private TextView mSubjectSecondaryView;
-            private Switch mSwitch;
+            private CompoundButton mSwitch;
         }
     }
 
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index b41650c..2113b5d 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -18,6 +18,9 @@
 
 import static android.content.Intent.EXTRA_USER;
 import static android.content.Intent.EXTRA_USER_ID;
+import static android.os.UserManager.USER_TYPE_FULL_SYSTEM;
+import static android.os.UserManager.USER_TYPE_PROFILE_MANAGED;
+import static android.os.UserManager.USER_TYPE_PROFILE_PRIVATE;
 import static android.text.format.DateUtils.FORMAT_ABBREV_MONTH;
 import static android.text.format.DateUtils.FORMAT_SHOW_DATE;
 
@@ -63,6 +66,7 @@
 import android.os.Binder;
 import android.os.Build;
 import android.os.Bundle;
+import android.os.Flags;
 import android.os.IBinder;
 import android.os.INetworkManagementService;
 import android.os.RemoteException;
@@ -111,6 +115,7 @@
 import com.android.internal.widget.LockPatternUtils;
 import com.android.settings.dashboard.profileselector.ProfileFragmentBridge;
 import com.android.settings.dashboard.profileselector.ProfileSelectFragment;
+import com.android.settings.dashboard.profileselector.ProfileSelectFragment.ProfileType;
 import com.android.settings.password.ChooseLockSettingsHelper;
 import com.android.settingslib.widget.ActionBarShadowController;
 import com.android.settingslib.widget.AdaptiveIcon;
@@ -118,6 +123,7 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
+import java.util.Objects;
 import java.util.Set;
 
 public final class Utils extends com.android.settingslib.Utils {
@@ -441,6 +447,38 @@
     }
 
     /**
+     * Returns the profile of userType of the current user or {@code null} if none is found or a
+     * profile exists, but it is disabled.
+     */
+    @Nullable
+    public static UserHandle getProfileOfType(
+            @NonNull UserManager userManager, @ProfileType int userType) {
+        final List<UserHandle> userProfiles = userManager.getUserProfiles();
+        String umUserType = getUmUserType(userType);
+        for (UserHandle profile : userProfiles) {
+            if (profile.getIdentifier() == UserHandle.myUserId()) {
+                continue;
+            }
+            final UserInfo userInfo = userManager.getUserInfo(profile.getIdentifier());
+            if (Objects.equals(umUserType, userInfo.userType)) {
+                return profile;
+            }
+        }
+        return null;
+    }
+
+    private static String getUmUserType(@ProfileType int userType) throws IllegalArgumentException {
+        if (userType == ProfileType.WORK) {
+            return USER_TYPE_PROFILE_MANAGED;
+        } else if (userType == ProfileType.PRIVATE) {
+            return USER_TYPE_PROFILE_PRIVATE;
+        } else if (userType == ProfileType.PERSONAL) {
+            return USER_TYPE_FULL_SYSTEM;
+        }
+        throw new IllegalArgumentException("Cannot get user type for ALL types");
+    }
+
+    /**
      * Returns the managed profile of the current user or {@code null} if none is found. Unlike
      * {@link #getManagedProfile} this method returns enabled and disabled managed profiles.
      */
@@ -479,15 +517,20 @@
         return UserHandle.USER_NULL;
     }
 
-    /** Returns user ID of current user, throws IllegalStateException if it's not available. */
-    public static int getCurrentUserId(UserManager userManager, boolean isWorkProfile)
-            throws IllegalStateException {
-        if (isWorkProfile) {
-            final UserHandle managedUserHandle = getManagedProfile(userManager);
-            if (managedUserHandle == null) {
-                throw new IllegalStateException("Work profile user ID is not available.");
+    /**
+     * Returns user ID of the user of specified type under the current context, throws
+     * IllegalStateException if it's not available.
+     */
+    public static int getCurrentUserIdOfType(
+            @NonNull UserManager userManager,
+            @ProfileType int userType) throws IllegalStateException {
+        if (userType != ProfileType.PERSONAL) {
+            final UserHandle userHandle = getProfileOfType(userManager, userType);
+            if (userHandle == null) {
+                throw new IllegalStateException("User ID of requested profile type is not "
+                        + "available.");
             }
-            return managedUserHandle.getIdentifier();
+            return userHandle.getIdentifier();
         }
         return UserHandle.myUserId();
     }
@@ -1223,8 +1266,14 @@
         List<UserHandle> profiles = userManager.getUserProfiles();
         for (UserHandle userHandle : profiles) {
             UserProperties userProperties = userManager.getUserProperties(userHandle);
-            if (userProperties.getShowInSettings()
-                    == UserProperties.SHOW_IN_SETTINGS_SEPARATE) {
+            if (userProperties.getShowInSettings() == UserProperties.SHOW_IN_SETTINGS_SEPARATE) {
+                if (Flags.allowPrivateProfile() && userProperties.getHideInSettingsInQuietMode()) {
+                    if (!userManager.isQuietModeEnabled(userHandle)) {
+                        return true;
+                    } else {
+                        continue;
+                    }
+                }
                 return true;
             }
         }
diff --git a/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragment.java b/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragment.java
index 3e3674c..0dbf05e 100644
--- a/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragment.java
+++ b/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragment.java
@@ -32,7 +32,6 @@
 import android.os.Bundle;
 import android.os.UserHandle;
 import android.text.TextUtils;
-import android.util.FeatureFlagUtils;
 import android.util.Log;
 import android.view.accessibility.AccessibilityManager;
 
@@ -112,9 +111,7 @@
             return new LaunchFragmentArguments(destination, /* arguments= */ null);
         }
 
-        if (ACCESSIBILITY_HEARING_AIDS_COMPONENT_NAME.equals(componentName)
-                && FeatureFlagUtils.isEnabled(getContext(),
-                FeatureFlagUtils.SETTINGS_ACCESSIBILITY_HEARING_AID_PAGE)) {
+        if (ACCESSIBILITY_HEARING_AIDS_COMPONENT_NAME.equals(componentName)) {
             final String destination = AccessibilityHearingAidsFragment.class.getName();
             return new LaunchFragmentArguments(destination, /* arguments= */ null);
         }
diff --git a/src/com/android/settings/accessibility/AccessibilityDialogUtils.java b/src/com/android/settings/accessibility/AccessibilityDialogUtils.java
index f744984..c429e0b 100644
--- a/src/com/android/settings/accessibility/AccessibilityDialogUtils.java
+++ b/src/com/android/settings/accessibility/AccessibilityDialogUtils.java
@@ -52,6 +52,7 @@
 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;
@@ -247,6 +248,9 @@
                         R.layout.accessibility_edit_shortcut_magnification, null);
                 initSoftwareShortcut(context, contentView);
                 initHardwareShortcut(context, contentView);
+                if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
+                    initTwoFingerTripleTapMagnificationShortcut(context, contentView);
+                }
                 initMagnifyShortcut(context, contentView);
                 initAdvancedWidget(contentView);
                 break;
@@ -255,6 +259,9 @@
                         R.layout.accessibility_edit_shortcut_magnification, null);
                 initSoftwareShortcutForSUW(context, contentView);
                 initHardwareShortcut(context, contentView);
+                if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
+                    initTwoFingerTripleTapMagnificationShortcut(context, contentView);
+                }
                 initMagnifyShortcut(context, contentView);
                 initAdvancedWidget(contentView);
                 break;
@@ -358,6 +365,23 @@
                 R.raw.a11y_shortcut_type_triple_tap);
     }
 
+    private static void initTwoFingerTripleTapMagnificationShortcut(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_triple_tap);
+        String summary = context.getString(
+                R.string.accessibility_shortcut_edit_dialog_summary_two_finger_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);
+
+        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);
diff --git a/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorial.java b/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorial.java
index ee2dc05..e90ed87 100644
--- a/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorial.java
+++ b/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorial.java
@@ -54,6 +54,7 @@
 import androidx.viewpager.widget.PagerAdapter;
 import androidx.viewpager.widget.ViewPager;
 
+import com.android.server.accessibility.Flags;
 import com.android.settings.R;
 import com.android.settings.core.SubSettingLauncher;
 import com.android.settingslib.widget.LottieColorUtils;
@@ -411,6 +412,23 @@
         return new TutorialPage(type, title, image, indicatorIcon, instruction);
     }
 
+    private static TutorialPage createTwoFingerTripleTapTutorialPage(@NonNull Context context) {
+        // TODO(b/308088945): Update tutorial string and image when UX provides them
+        final int type = UserShortcutType.TWOFINGERTRIPLETAP;
+        final CharSequence title =
+                context.getText(R.string.accessibility_tutorial_dialog_title_two_finger_triple);
+        final View image =
+                createIllustrationViewWithImageRawResource(context,
+                        R.raw.a11y_shortcut_type_triple_tap);
+        final CharSequence instruction =
+                context.getText(R.string.accessibility_tutorial_dialog_message_two_finger_triple);
+        final ImageView indicatorIcon =
+                createImageView(context, R.drawable.ic_accessibility_page_indicator);
+        indicatorIcon.setEnabled(false);
+
+        return new TutorialPage(type, title, image, indicatorIcon, instruction);
+    }
+
     @VisibleForTesting
     static List<TutorialPage> createShortcutTutorialPages(@NonNull Context context,
             int shortcutTypes) {
@@ -427,6 +445,13 @@
             tutorialPages.add(createTripleTapTutorialPage(context));
         }
 
+        if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
+            if ((shortcutTypes & UserShortcutType.TWOFINGERTRIPLETAP)
+                    == UserShortcutType.TWOFINGERTRIPLETAP) {
+                tutorialPages.add(createTwoFingerTripleTapTutorialPage(context));
+            }
+        }
+
         return tutorialPages;
     }
 
diff --git a/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceController.java b/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceController.java
index 3aad141..fab6e47 100644
--- a/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceController.java
+++ b/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceController.java
@@ -25,9 +25,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
-import android.os.Bundle;
 import android.text.TextUtils;
-import android.util.FeatureFlagUtils;
 
 import androidx.annotation.VisibleForTesting;
 import androidx.fragment.app.FragmentManager;
@@ -35,7 +33,6 @@
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
-import com.android.settings.bluetooth.BluetoothDeviceDetailsFragment;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.core.SubSettingLauncher;
 import com.android.settingslib.bluetooth.BluetoothCallback;
@@ -116,17 +113,7 @@
     @Override
     public boolean handlePreferenceTreeClick(Preference preference) {
         if (TextUtils.equals(preference.getKey(), getPreferenceKey())) {
-            final CachedBluetoothDevice device = mHelper.getConnectedHearingAidDevice();
-            if (FeatureFlagUtils.isEnabled(mContext,
-                    FeatureFlagUtils.SETTINGS_ACCESSIBILITY_HEARING_AID_PAGE)) {
-                launchHearingAidPage();
-                return true;
-            }
-            if (device == null) {
-                launchHearingAidInstructionDialog();
-            } else {
-                launchBluetoothDeviceDetailSetting(device);
-            }
+            launchHearingAidPage();
             return true;
         }
         return false;
@@ -215,29 +202,6 @@
         mHearingAidPreference = preference;
     }
 
-    @VisibleForTesting
-    void launchBluetoothDeviceDetailSetting(final CachedBluetoothDevice device) {
-        if (device == null) {
-            return;
-        }
-        final Bundle args = new Bundle();
-        args.putString(BluetoothDeviceDetailsFragment.KEY_DEVICE_ADDRESS,
-                device.getDevice().getAddress());
-
-        new SubSettingLauncher(mContext)
-                .setDestination(BluetoothDeviceDetailsFragment.class.getName())
-                .setArguments(args)
-                .setTitleRes(R.string.device_details_title)
-                .setSourceMetricsCategory(getMetricsCategory())
-                .launch();
-    }
-
-    @VisibleForTesting
-    void launchHearingAidInstructionDialog() {
-        HearingAidDialogFragment fragment = HearingAidDialogFragment.newInstance();
-        fragment.show(mFragmentManager, HearingAidDialogFragment.class.toString());
-    }
-
     private void launchHearingAidPage() {
         new SubSettingLauncher(mContext)
                 .setDestination(AccessibilityHearingAidsFragment.class.getName())
diff --git a/src/com/android/settings/accessibility/AccessibilityServiceWarning.java b/src/com/android/settings/accessibility/AccessibilityServiceWarning.java
index e8ed85c..9022ebf 100644
--- a/src/com/android/settings/accessibility/AccessibilityServiceWarning.java
+++ b/src/com/android/settings/accessibility/AccessibilityServiceWarning.java
@@ -67,7 +67,11 @@
         void uninstallPackage();
     }
 
-    /** Returns a {@link Dialog} to be shown to confirm that they want to enable a service. */
+    /**
+     * Returns a {@link Dialog} to be shown to confirm that they want to enable a service.
+     * @deprecated Use {@link com.android.internal.accessibility.dialog.AccessibilityServiceWarning}
+     */
+    @Deprecated
     public static Dialog createCapabilitiesDialog(@NonNull Context context,
             @NonNull AccessibilityServiceInfo info, @NonNull View.OnClickListener listener,
             @NonNull UninstallActionPerformer performer) {
diff --git a/src/com/android/settings/accessibility/AccessibilityUtil.java b/src/com/android/settings/accessibility/AccessibilityUtil.java
index 36c99f1..3b81bdb 100644
--- a/src/com/android/settings/accessibility/AccessibilityUtil.java
+++ b/src/com/android/settings/accessibility/AccessibilityUtil.java
@@ -94,6 +94,7 @@
             UserShortcutType.SOFTWARE,
             UserShortcutType.HARDWARE,
             UserShortcutType.TRIPLETAP,
+            UserShortcutType.TWOFINGERTRIPLETAP,
     })
 
     /** Denotes the user shortcut type. */
@@ -102,6 +103,7 @@
         int SOFTWARE = 1; // 1 << 0
         int HARDWARE = 2; // 1 << 1
         int TRIPLETAP = 4; // 1 << 2
+        int TWOFINGERTRIPLETAP = 8; // 1 << 3
     }
 
     /**
diff --git a/src/com/android/settings/accessibility/CaptioningTogglePreferenceController.java b/src/com/android/settings/accessibility/CaptioningTogglePreferenceController.java
index a9d2cdf..10e1fca 100644
--- a/src/com/android/settings/accessibility/CaptioningTogglePreferenceController.java
+++ b/src/com/android/settings/accessibility/CaptioningTogglePreferenceController.java
@@ -17,18 +17,18 @@
 package com.android.settings.accessibility;
 
 import android.content.Context;
-import android.widget.Switch;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
 
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
 import com.android.settings.core.TogglePreferenceController;
 import com.android.settings.widget.SettingsMainSwitchPreference;
-import com.android.settingslib.widget.OnMainSwitchChangeListener;
 
 /** Preference controller for captioning more options. */
 public class CaptioningTogglePreferenceController extends TogglePreferenceController
-        implements OnMainSwitchChangeListener {
+        implements OnCheckedChangeListener {
 
     private final CaptionHelper mCaptionHelper;
 
@@ -63,7 +63,7 @@
     }
 
     @Override
-    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         if (isChecked != isChecked()) {
             setChecked(isChecked);
         }
diff --git a/src/com/android/settings/accessibility/ColorAndMotionFragment.java b/src/com/android/settings/accessibility/ColorAndMotionFragment.java
index 9116642..7933eb1 100644
--- a/src/com/android/settings/accessibility/ColorAndMotionFragment.java
+++ b/src/com/android/settings/accessibility/ColorAndMotionFragment.java
@@ -24,7 +24,7 @@
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceCategory;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.dashboard.DashboardFragment;
@@ -49,8 +49,8 @@
     private static final String TOGGLE_LARGE_POINTER_ICON = "toggle_large_pointer_icon";
 
     private Preference mDisplayDaltonizerPreferenceScreen;
-    private SwitchPreference mToggleDisableAnimationsPreference;
-    private SwitchPreference mToggleLargePointerIconPreference;
+    private TwoStatePreference mToggleDisableAnimationsPreference;
+    private TwoStatePreference mToggleLargePointerIconPreference;
     private AccessibilitySettingsContentObserver mSettingsContentObserver;
 
     private final List<String> mShortcutFeatureKeys = new ArrayList<>();
diff --git a/src/com/android/settings/accessibility/DisableAnimationsPreferenceController.java b/src/com/android/settings/accessibility/DisableAnimationsPreferenceController.java
index 2ec1d70..2333ed3 100644
--- a/src/com/android/settings/accessibility/DisableAnimationsPreferenceController.java
+++ b/src/com/android/settings/accessibility/DisableAnimationsPreferenceController.java
@@ -26,7 +26,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.core.TogglePreferenceController;
@@ -62,7 +62,7 @@
     };
 
     private final ContentResolver mContentResolver;
-    private SwitchPreference mPreference;
+    private TwoStatePreference mPreference;
 
     public DisableAnimationsPreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
diff --git a/src/com/android/settings/accessibility/FloatingMenuFadePreferenceController.java b/src/com/android/settings/accessibility/FloatingMenuFadePreferenceController.java
index dd419d0..3d36aa4 100644
--- a/src/com/android/settings/accessibility/FloatingMenuFadePreferenceController.java
+++ b/src/com/android/settings/accessibility/FloatingMenuFadePreferenceController.java
@@ -26,7 +26,7 @@
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.BasePreferenceController;
 import com.android.settingslib.core.lifecycle.LifecycleObserver;
@@ -45,7 +45,7 @@
     final ContentObserver mContentObserver;
 
     @VisibleForTesting
-    SwitchPreference mPreference;
+    TwoStatePreference mPreference;
 
     public FloatingMenuFadePreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
@@ -81,7 +81,7 @@
     @Override
     public void updateState(Preference preference) {
         super.updateState(preference);
-        final SwitchPreference switchPreference = (SwitchPreference) preference;
+        final TwoStatePreference switchPreference = (TwoStatePreference) preference;
 
         switchPreference.setChecked(getFloatingMenuFadeValue() == ON);
     }
diff --git a/src/com/android/settings/accessibility/HighTextContrastPreferenceController.java b/src/com/android/settings/accessibility/HighTextContrastPreferenceController.java
index 9f645f1..7a3f4f6 100644
--- a/src/com/android/settings/accessibility/HighTextContrastPreferenceController.java
+++ b/src/com/android/settings/accessibility/HighTextContrastPreferenceController.java
@@ -20,7 +20,7 @@
 import android.provider.Settings;
 
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.accessibility.TextReadingPreferenceFragment.EntryPoint;
@@ -32,7 +32,7 @@
  */
 public class HighTextContrastPreferenceController extends TogglePreferenceController implements
         TextReadingResetController.ResetStateListener {
-    private SwitchPreference mSwitchPreference;
+    private TwoStatePreference mSwitchPreference;
 
     @EntryPoint
     private int mEntryPoint;
diff --git a/src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java
index 0c1876f..1ecb94a 100644
--- a/src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java
@@ -64,9 +64,24 @@
     @Override
     void onDialogButtonFromShortcutToggleClicked(View view) {
         super.onDialogButtonFromShortcutToggleClicked(view);
-        if (view.getId() == R.id.permission_enable_allow_button) {
-            AccessibilityUtils.setAccessibilityServiceState(getContext(), mComponentName,
-                    true);
+        if (!android.view.accessibility.Flags.deduplicateAccessibilityWarningDialog()) {
+            if (view.getId() == R.id.permission_enable_allow_button) {
+                AccessibilityUtils.setAccessibilityServiceState(getContext(), mComponentName,
+                        true);
+            }
+        }
+    }
+
+    /**
+     * {@inheritDoc}
+     *
+     * Enables accessibility service when user clicks permission allow button.
+     */
+    @Override
+    void onAllowButtonFromShortcutToggleClicked() {
+        super.onAllowButtonFromShortcutToggleClicked();
+        if (android.view.accessibility.Flags.deduplicateAccessibilityWarningDialog()) {
+            AccessibilityUtils.setAccessibilityServiceState(getContext(), mComponentName, true);
         }
     }
 
diff --git a/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceController.java b/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceController.java
new file mode 100644
index 0000000..47c2a95
--- /dev/null
+++ b/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceController.java
@@ -0,0 +1,159 @@
+/*
+ * 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.accessibility;
+
+import static android.provider.Settings.System.KEYBOARD_VIBRATION_ENABLED;
+
+import static com.android.settings.accessibility.AccessibilityUtil.State.OFF;
+import static com.android.settings.accessibility.AccessibilityUtil.State.ON;
+
+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.VibrationAttributes;
+import android.os.Vibrator;
+import android.os.vibrator.Flags;
+import android.provider.Settings;
+import android.util.Log;
+
+import androidx.lifecycle.DefaultLifecycleObserver;
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+import androidx.preference.TwoStatePreference;
+
+import com.android.settings.R;
+import com.android.settings.core.TogglePreferenceController;
+
+
+/**
+ *  A preference controller to turn on/off keyboard vibration state with a single toggle.
+ */
+public class KeyboardVibrationTogglePreferenceController extends TogglePreferenceController
+        implements DefaultLifecycleObserver {
+
+    private static final String TAG = "KeyboardVibrateControl";
+
+    private static final Uri MAIN_VIBRATION_SWITCH_URI =
+            Settings.System.getUriFor(VibrationPreferenceConfig.MAIN_SWITCH_SETTING_KEY);
+
+    private final ContentObserver mContentObserver;
+
+    private final Vibrator mVibrator;
+
+    @Nullable
+    private TwoStatePreference mPreference;
+
+    public KeyboardVibrationTogglePreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+        mVibrator = context.getSystemService(Vibrator.class);
+        mContentObserver = new ContentObserver(new Handler(/* async= */ true)) {
+            @Override
+            public void onChange(boolean selfChange, Uri uri) {
+                if (uri.equals(MAIN_VIBRATION_SWITCH_URI)) {
+                    updateState(mPreference);
+                } else {
+                    Log.w(TAG, "Unexpected uri change:" + uri);
+                }
+            }
+        };
+    }
+
+    @Override
+    public void onStart(@NonNull LifecycleOwner owner) {
+        mContext.getContentResolver().registerContentObserver(MAIN_VIBRATION_SWITCH_URI,
+                /* notifyForDescendants= */ false, mContentObserver);
+    }
+
+    @Override
+    public void onStop(@NonNull LifecycleOwner owner) {
+        mContext.getContentResolver().unregisterContentObserver(mContentObserver);
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mPreference = screen.findPreference(getPreferenceKey());
+    }
+
+    @Override
+    public void updateState(@Nullable Preference preference) {
+        if (preference != null) {
+            super.updateState(preference);
+            preference.setEnabled(isPreferenceEnabled());
+        }
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        if (Flags.keyboardCategoryEnabled()
+                && mContext.getResources().getBoolean(R.bool.config_keyboard_vibration_supported)) {
+            return AVAILABLE;
+        }
+        return UNSUPPORTED_ON_DEVICE;
+    }
+
+    @Override
+    public boolean isChecked() {
+        // Always unchecked if the preference disabled
+        return isPreferenceEnabled() && isKeyboardVibrationSwitchEnabled();
+    }
+
+    @Override
+    public boolean setChecked(boolean isChecked) {
+        final boolean success = updateKeyboardVibrationSetting(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);
+        }
+        return true;
+    }
+
+    @Override
+    public int getSliceHighlightMenuRes() {
+        return R.string.menu_key_accessibility;
+    }
+
+    private boolean isPreferenceEnabled() {
+        return VibrationPreferenceConfig.isMainVibrationSwitchEnabled(
+                mContext.getContentResolver());
+    }
+
+    private boolean isKeyboardVibrationSwitchEnabled() {
+        return Settings.System.getInt(mContext.getContentResolver(), KEYBOARD_VIBRATION_ENABLED,
+                mVibrator.isDefaultKeyboardVibrationEnabled() ? ON : OFF) == ON;
+    }
+
+    private boolean updateKeyboardVibrationSetting(boolean enable) {
+        final boolean success = Settings.System.putInt(mContext.getContentResolver(),
+                    KEYBOARD_VIBRATION_ENABLED, enable ? ON : OFF);
+        if (!success) {
+            Log.w(TAG, "Update settings database error!");
+        }
+        return success;
+    }
+}
diff --git a/src/com/android/settings/accessibility/MagnificationAlwaysOnPreferenceController.java b/src/com/android/settings/accessibility/MagnificationAlwaysOnPreferenceController.java
index b0a6abc..e455aa8 100644
--- a/src/com/android/settings/accessibility/MagnificationAlwaysOnPreferenceController.java
+++ b/src/com/android/settings/accessibility/MagnificationAlwaysOnPreferenceController.java
@@ -26,7 +26,7 @@
 import androidx.lifecycle.LifecycleObserver;
 import androidx.lifecycle.OnLifecycleEvent;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.core.TogglePreferenceController;
@@ -43,7 +43,7 @@
             MagnificationAlwaysOnPreferenceController.class.getSimpleName();
     static final String PREF_KEY = Settings.Secure.ACCESSIBILITY_MAGNIFICATION_ALWAYS_ON_ENABLED;
 
-    private SwitchPreference mSwitchPreference;
+    private TwoStatePreference mSwitchPreference;
 
     public MagnificationAlwaysOnPreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
diff --git a/src/com/android/settings/accessibility/MagnificationFollowTypingPreferenceController.java b/src/com/android/settings/accessibility/MagnificationFollowTypingPreferenceController.java
index a758276..86983e3 100644
--- a/src/com/android/settings/accessibility/MagnificationFollowTypingPreferenceController.java
+++ b/src/com/android/settings/accessibility/MagnificationFollowTypingPreferenceController.java
@@ -26,7 +26,7 @@
 import androidx.lifecycle.LifecycleObserver;
 import androidx.lifecycle.OnLifecycleEvent;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.core.TogglePreferenceController;
@@ -39,7 +39,7 @@
             MagnificationFollowTypingPreferenceController.class.getSimpleName();
     static final String PREF_KEY = "magnification_follow_typing";
 
-    private SwitchPreference mFollowTypingPreference;
+    private TwoStatePreference mFollowTypingPreference;
 
     public MagnificationFollowTypingPreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
diff --git a/src/com/android/settings/accessibility/MagnificationJoystickPreferenceController.java b/src/com/android/settings/accessibility/MagnificationJoystickPreferenceController.java
index bc9e093..0a24e96 100644
--- a/src/com/android/settings/accessibility/MagnificationJoystickPreferenceController.java
+++ b/src/com/android/settings/accessibility/MagnificationJoystickPreferenceController.java
@@ -26,7 +26,7 @@
 import androidx.lifecycle.LifecycleObserver;
 import androidx.lifecycle.OnLifecycleEvent;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.core.TogglePreferenceController;
@@ -41,7 +41,7 @@
             MagnificationJoystickPreferenceController.class.getSimpleName();
     static final String PREF_KEY = Settings.Secure.ACCESSIBILITY_MAGNIFICATION_JOYSTICK_ENABLED;
 
-    private SwitchPreference mSwitchPreference;
+    private TwoStatePreference mSwitchPreference;
 
     public MagnificationJoystickPreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
diff --git a/src/com/android/settings/accessibility/PreviewSizeSeekBarController.java b/src/com/android/settings/accessibility/PreviewSizeSeekBarController.java
index 6bd8747..f268a40 100644
--- a/src/com/android/settings/accessibility/PreviewSizeSeekBarController.java
+++ b/src/com/android/settings/accessibility/PreviewSizeSeekBarController.java
@@ -16,6 +16,7 @@
 
 package com.android.settings.accessibility;
 
+import android.app.Activity;
 import android.content.ComponentName;
 import android.content.Context;
 import android.os.Bundle;
@@ -33,6 +34,8 @@
 import com.android.settingslib.core.lifecycle.events.OnDestroy;
 import com.android.settingslib.core.lifecycle.events.OnSaveInstanceState;
 
+import com.google.android.setupcompat.util.WizardManagerHelper;
+
 import java.util.Optional;
 
 /**
@@ -207,6 +210,13 @@
             return;
         }
 
+        if (Flags.removeQsTooltipInSuw()
+                && mContext instanceof Activity
+                && WizardManagerHelper.isAnySetupWizard(((Activity) mContext).getIntent())) {
+            // Don't show QuickSettingsTooltip in Setup Wizard
+            return;
+        }
+
         if (!mNeedsQSTooltipReshow && AccessibilityQuickSettingUtils.hasValueInSharedPreferences(
                 mContext, tileComponentName)) {
             // Returns if quick settings tooltip only show once.
diff --git a/src/com/android/settings/accessibility/ShortcutPreference.java b/src/com/android/settings/accessibility/ShortcutPreference.java
index ec911a9..a04f8f4 100644
--- a/src/com/android/settings/accessibility/ShortcutPreference.java
+++ b/src/com/android/settings/accessibility/ShortcutPreference.java
@@ -21,8 +21,8 @@
 import android.util.TypedValue;
 import android.view.MotionEvent;
 import android.view.View;
+import android.widget.CompoundButton;
 import android.widget.LinearLayout;
-import android.widget.Switch;
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceViewHolder;
@@ -62,7 +62,7 @@
     ShortcutPreference(Context context, AttributeSet attrs) {
         super(context, attrs);
         setLayoutResource(R.layout.accessibility_shortcut_secondary_action);
-        setWidgetLayoutResource(R.layout.preference_widget_primary_switch);
+        setWidgetLayoutResource(androidx.preference.R.layout.preference_widget_switch_compat);
         setIconSpaceReserved(false);
         // Treat onSettingsClicked as this preference's click.
         setOnPreferenceClickListener(preference -> {
@@ -88,7 +88,8 @@
                     mSettingsEditable ? outValue.resourceId : /* Remove background */ 0);
         }
 
-        Switch switchWidget = holder.itemView.findViewById(R.id.switchWidget);
+        CompoundButton switchWidget =
+                holder.itemView.findViewById(androidx.preference.R.id.switchWidget);
         if (switchWidget != null) {
             // Consumes move events to ignore drag actions.
             switchWidget.setOnTouchListener((v, event) -> {
diff --git a/src/com/android/settings/accessibility/TextReadingPreviewController.java b/src/com/android/settings/accessibility/TextReadingPreviewController.java
index ffa156b..4ec0b3d 100644
--- a/src/com/android/settings/accessibility/TextReadingPreviewController.java
+++ b/src/com/android/settings/accessibility/TextReadingPreviewController.java
@@ -18,12 +18,14 @@
 
 import android.content.Context;
 import android.content.res.Configuration;
+import android.content.res.TypedArray;
 import android.os.SystemClock;
 import android.util.Log;
 import android.view.Choreographer;
 import android.view.View;
 
 import androidx.annotation.NonNull;
+import androidx.annotation.VisibleForTesting;
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
@@ -31,6 +33,7 @@
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.core.instrumentation.SettingsStatsLog;
 import com.android.settings.display.PreviewPagerAdapter;
+import com.android.settings.flags.Flags;
 import com.android.settings.widget.LabeledSeekBarPreference;
 
 import java.util.Objects;
@@ -44,11 +47,10 @@
     private static final String TAG = "TextReadingPreviewCtrl";
     private static final int LAYER_INITIAL_INDEX = 0;
     private static final int FRAME_INITIAL_INDEX = 0;
-    static final int[] PREVIEW_SAMPLE_RES_IDS = new int[]{
+    private static final int[] PREVIEW_SAMPLE_RES_IDS = new int[]{
             R.layout.accessibility_text_reading_preview_app_grid,
             R.layout.screen_zoom_preview_1,
             R.layout.accessibility_text_reading_preview_mail_content};
-
     private static final String PREVIEW_KEY = "preview";
     private static final String FONT_SIZE_KEY = "font_size";
     private static final String DISPLAY_SIZE_KEY = "display_size";
@@ -107,11 +109,12 @@
         final Configuration origConfig = mContext.getResources().getConfiguration();
         final boolean isLayoutRtl =
                 origConfig.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL;
+        final int[] previewSamples = getPreviewSampleLayouts(mContext);
         final PreviewPagerAdapter pagerAdapter = new PreviewPagerAdapter(mContext, isLayoutRtl,
-                PREVIEW_SAMPLE_RES_IDS, createConfig(origConfig));
+                previewSamples, createConfig(origConfig));
         mPreviewPreference.setPreviewAdapter(pagerAdapter);
         mPreviewPreference.setCurrentItem(
-                isLayoutRtl ? PREVIEW_SAMPLE_RES_IDS.length - 1 : FRAME_INITIAL_INDEX);
+                isLayoutRtl ? previewSamples.length - 1 : FRAME_INITIAL_INDEX);
 
         final int initialPagerIndex =
                 mLastFontProgress * mDisplaySizeData.getValues().size() + mLastDisplayProgress;
@@ -178,6 +181,22 @@
         choreographer.postFrameCallbackDelayed(mCommit, commitDelayMs);
     }
 
+    @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
+    static int[] getPreviewSampleLayouts(Context context) {
+        if (!Flags.accessibilityCustomizeTextReadingPreview()) {
+            return PREVIEW_SAMPLE_RES_IDS;
+        }
+        TypedArray previews = context.getResources().obtainTypedArray(
+                R.array.config_text_reading_preview_samples);
+        int previewCount = previews.length();
+        int[] previewSamples = new int[previewCount];
+        for (int i = 0; i < previewCount; i++) {
+            previewSamples[i] = previews.getResourceId(i, R.layout.screen_zoom_preview_1);
+        }
+        previews.recycle();
+        return previewSamples;
+    }
+
     private int getPagerIndex() {
         final int displayDataSize = mDisplaySizeData.getValues().size();
         final int fontSizeProgress = mFontSizePreference.getProgress();
diff --git a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
index 28b80ba..213f108 100644
--- a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
@@ -41,7 +41,7 @@
 import android.view.MenuInflater;
 import android.view.View;
 import android.view.accessibility.AccessibilityManager;
-import android.widget.Switch;
+import android.widget.CompoundButton;
 
 import androidx.annotation.Nullable;
 
@@ -157,28 +157,55 @@
                 if (info == null) {
                     return null;
                 }
-                mWarningDialog = AccessibilityServiceWarning
-                        .createCapabilitiesDialog(getPrefContext(), info,
-                                this::onDialogButtonFromEnableToggleClicked,
-                                this::onDialogButtonFromUninstallClicked);
+                if (android.view.accessibility.Flags.deduplicateAccessibilityWarningDialog()) {
+                    mWarningDialog =
+                            com.android.internal.accessibility.dialog.AccessibilityServiceWarning
+                                    .createAccessibilityServiceWarningDialog(getPrefContext(), info,
+                                            v -> onAllowButtonFromEnableToggleClicked(),
+                                            v -> onDenyButtonFromEnableToggleClicked(),
+                                            v -> onDialogButtonFromUninstallClicked());
+                } else {
+                    mWarningDialog = AccessibilityServiceWarning
+                            .createCapabilitiesDialog(getPrefContext(), info,
+                                    this::onDialogButtonFromEnableToggleClicked,
+                                    this::onDialogButtonFromUninstallClicked);
+                }
                 return mWarningDialog;
             case DialogEnums.ENABLE_WARNING_FROM_SHORTCUT_TOGGLE:
                 if (info == null) {
                     return null;
                 }
-                mWarningDialog = AccessibilityServiceWarning
-                        .createCapabilitiesDialog(getPrefContext(), info,
-                                this::onDialogButtonFromShortcutToggleClicked,
-                                this::onDialogButtonFromUninstallClicked);
+                if (android.view.accessibility.Flags.deduplicateAccessibilityWarningDialog()) {
+                    mWarningDialog =
+                            com.android.internal.accessibility.dialog.AccessibilityServiceWarning
+                                    .createAccessibilityServiceWarningDialog(getPrefContext(), info,
+                                            v -> onAllowButtonFromShortcutToggleClicked(),
+                                            v -> onDenyButtonFromShortcutToggleClicked(),
+                                            v -> onDialogButtonFromUninstallClicked());
+                } else {
+                    mWarningDialog = AccessibilityServiceWarning
+                            .createCapabilitiesDialog(getPrefContext(), info,
+                                    this::onDialogButtonFromShortcutToggleClicked,
+                                    this::onDialogButtonFromUninstallClicked);
+                }
                 return mWarningDialog;
             case DialogEnums.ENABLE_WARNING_FROM_SHORTCUT:
                 if (info == null) {
                     return null;
                 }
-                mWarningDialog = AccessibilityServiceWarning
-                        .createCapabilitiesDialog(getPrefContext(), info,
-                                this::onDialogButtonFromShortcutClicked,
-                                this::onDialogButtonFromUninstallClicked);
+                if (android.view.accessibility.Flags.deduplicateAccessibilityWarningDialog()) {
+                    mWarningDialog =
+                            com.android.internal.accessibility.dialog.AccessibilityServiceWarning
+                                    .createAccessibilityServiceWarningDialog(getPrefContext(), info,
+                                            v -> onAllowButtonFromShortcutClicked(),
+                                            v -> onDenyButtonFromShortcutClicked(),
+                                            v -> onDialogButtonFromUninstallClicked());
+                } else {
+                    mWarningDialog = AccessibilityServiceWarning
+                            .createCapabilitiesDialog(getPrefContext(), info,
+                                    this::onDialogButtonFromShortcutClicked,
+                                    this::onDialogButtonFromUninstallClicked);
+                }
                 return mWarningDialog;
             case DialogEnums.DISABLE_WARNING_FROM_TOGGLE:
                 if (info == null) {
@@ -294,7 +321,7 @@
     }
 
     @Override
-    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         if (isChecked != isAccessibilityServiceEnabled()) {
             onPreferenceClick(isChecked);
         }
@@ -459,7 +486,7 @@
         }
     }
 
-    private void onAllowButtonFromShortcutToggleClicked() {
+    void onAllowButtonFromShortcutToggleClicked() {
         mShortcutPreference.setChecked(true);
 
         final int shortcutTypes = retrieveUserShortcutType(getPrefContext(),
diff --git a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
index 7f62544..c76bb8b 100644
--- a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
@@ -44,9 +44,11 @@
 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;
-import android.widget.Switch;
 
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceCategory;
@@ -58,11 +60,11 @@
 import com.android.settings.accessibility.AccessibilityUtil.QuickSettingsTooltipType;
 import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
 import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.flags.Flags;
 import com.android.settings.utils.LocaleUtils;
 import com.android.settings.widget.SettingsMainSwitchBar;
 import com.android.settings.widget.SettingsMainSwitchPreference;
 import com.android.settingslib.widget.IllustrationPreference;
-import com.android.settingslib.widget.OnMainSwitchChangeListener;
 import com.android.settingslib.widget.TopIntroPreference;
 
 import com.google.android.setupcompat.util.WizardManagerHelper;
@@ -76,7 +78,7 @@
  * and dialog management.
  */
 public abstract class ToggleFeaturePreferenceFragment extends DashboardFragment
-        implements ShortcutPreference.OnClickCallback, OnMainSwitchChangeListener {
+        implements ShortcutPreference.OnClickCallback, OnCheckedChangeListener {
 
     public static final String KEY_GENERAL_CATEGORY = "general_categories";
     public static final String KEY_SHORTCUT_PREFERENCE = "shortcut_preference";
@@ -188,6 +190,7 @@
         initGeneralCategory();
         initShortcutPreference();
         initSettingsPreference();
+        initAppInfoPreference();
         initHtmlTextPreference();
         initFooterPreference();
 
@@ -208,7 +211,7 @@
     public Dialog onCreateDialog(int dialogId) {
         switch (dialogId) {
             case DialogEnums.EDIT_SHORTCUT:
-                final int dialogType = WizardManagerHelper.isAnySetupWizard(getIntent())
+                final int dialogType = isAnySetupWizard()
                         ? DialogType.EDIT_SHORTCUT_GENERIC_SUW : DialogType.EDIT_SHORTCUT_GENERIC;
                 mDialog = AccessibilityDialogUtils.showEditShortcutDialog(
                         getPrefContext(), dialogType, getShortcutTitle(),
@@ -216,7 +219,7 @@
                 setupEditShortcutDialog(mDialog);
                 return mDialog;
             case DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL:
-                if (WizardManagerHelper.isAnySetupWizard(getIntent())) {
+                if (isAnySetupWizard()) {
                     mDialog = AccessibilityGestureNavigationTutorial
                             .createAccessibilityTutorialDialogForSetupWizard(
                                     getPrefContext(), getUserShortcutTypes(),
@@ -325,7 +328,7 @@
     }
 
     @Override
-    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         onPreferenceToggled(mPreferenceKey, isChecked);
     }
 
@@ -541,6 +544,44 @@
         generalCategory.addPreference(mSettingsPreference);
     }
 
+    @VisibleForTesting
+    @Nullable
+    Preference createAppInfoPreference() {
+        if (!Flags.accessibilityShowAppInfoButton()) {
+            return null;
+        }
+        // App Info is not available in Setup Wizard.
+        if (isAnySetupWizard()) {
+            return null;
+        }
+        // Only show the button for pages with valid component package names.
+        if (mComponentName == null) {
+            return null;
+        }
+        final String packageName = mComponentName.getPackageName();
+        final PackageManager packageManager = getPrefContext().getPackageManager();
+        if (!packageManager.isPackageAvailable(packageName)) {
+            return null;
+        }
+
+        Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
+        intent.setData(Uri.parse("package:" + packageName));
+
+        final Preference appInfoPreference = new Preference(getPrefContext());
+        appInfoPreference.setTitle(getString(R.string.application_info_label));
+        appInfoPreference.setIconSpaceReserved(false);
+        appInfoPreference.setIntent(intent);
+        return appInfoPreference;
+    }
+
+    private void initAppInfoPreference() {
+        final Preference appInfoPreference = createAppInfoPreference();
+        if (appInfoPreference != null) {
+            final PreferenceCategory generalCategory = findPreference(KEY_GENERAL_CATEGORY);
+            generalCategory.addPreference(appInfoPreference);
+        }
+    }
+
     private void initHtmlTextPreference() {
         if (TextUtils.isEmpty(mHtmlDescription)) {
             return;
@@ -864,6 +905,14 @@
             return;
         }
 
+        Activity activity = getActivity();
+        if (com.android.settings.accessibility.Flags.removeQsTooltipInSuw()
+                && activity != null
+                && WizardManagerHelper.isAnySetupWizard(activity.getIntent())) {
+            // Don't show QuickSettingsTooltip in Setup Wizard
+            return;
+        }
+
         if (!mNeedsQSTooltipReshow && AccessibilityQuickSettingUtils.hasValueInSharedPreferences(
                 getContext(), tileComponentName)) {
             // Returns if quick settings tooltip only show once.
@@ -902,4 +951,9 @@
         }
         return null;
     }
+
+    @VisibleForTesting
+    boolean isAnySetupWizard() {
+        return WizardManagerHelper.isAnySetupWizard(getIntent());
+    }
 }
diff --git a/src/com/android/settings/accessibility/ToggleReduceBrightColorsPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleReduceBrightColorsPreferenceFragment.java
index 16f9957..2f7005c 100644
--- a/src/com/android/settings/accessibility/ToggleReduceBrightColorsPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleReduceBrightColorsPreferenceFragment.java
@@ -33,7 +33,7 @@
 import android.view.ViewGroup;
 
 import androidx.preference.PreferenceCategory;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.accessibility.AccessibilityUtil.QuickSettingsTooltipType;
@@ -102,7 +102,7 @@
         getPreferenceScreen().removePreference(intensity);
         intensity.setOrder(mShortcutPreference.getOrder() - 2);
         generalCategory.addPreference(intensity);
-        final SwitchPreference persist = findPreference(KEY_PERSIST);
+        final TwoStatePreference persist = findPreference(KEY_PERSIST);
         getPreferenceScreen().removePreference(persist);
         persist.setOrder(mShortcutPreference.getOrder() - 1);
         generalCategory.addPreference(persist);
diff --git a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
index b096467..886719d 100644
--- a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
@@ -42,11 +42,14 @@
 import android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener;
 import android.widget.CheckBox;
 
+import androidx.annotation.Nullable;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceCategory;
-import androidx.preference.SwitchPreference;
+import androidx.preference.SwitchPreferenceCompat;
+import androidx.preference.TwoStatePreference;
 
 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;
@@ -75,13 +78,14 @@
     private static final TextUtils.SimpleStringSplitter sStringColonSplitter =
             new TextUtils.SimpleStringSplitter(COMPONENT_NAME_SEPARATOR);
 
-    protected SwitchPreference mFollowingTypingSwitchPreference;
+    protected TwoStatePreference mFollowingTypingSwitchPreference;
 
     // 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;
     private MagnificationFollowTypingPreferenceController mFollowTypingPreferenceController;
 
@@ -201,8 +205,7 @@
         getSettingsLifecycle().addObserver(magnificationModePreferenceController);
         magnificationModePreferenceController.displayPreference(getPreferenceScreen());
 
-        mFollowingTypingSwitchPreference =
-                new SwitchPreference(getPrefContext());
+        mFollowingTypingSwitchPreference = new SwitchPreferenceCompat(getPrefContext());
         mFollowingTypingSwitchPreference.setTitle(
                 R.string.accessibility_screen_magnification_follow_typing_title);
         mFollowingTypingSwitchPreference.setSummary(
@@ -260,7 +263,7 @@
             return;
         }
 
-        var alwaysOnPreference = new SwitchPreference(getPrefContext());
+        var alwaysOnPreference = new SwitchPreferenceCompat(getPrefContext());
         alwaysOnPreference.setTitle(
                 R.string.accessibility_screen_magnification_always_on_title);
         alwaysOnPreference.setSummary(
@@ -285,7 +288,7 @@
             return;
         }
 
-        SwitchPreference joystickPreference = new SwitchPreference(getPrefContext());
+        TwoStatePreference joystickPreference = new SwitchPreferenceCompat(getPrefContext());
         joystickPreference.setTitle(
                 R.string.accessibility_screen_magnification_joystick_title);
         joystickPreference.setSummary(
@@ -330,6 +333,11 @@
         if (mTripleTapTypeCheckBox.isChecked()) {
             value |= UserShortcutType.TRIPLETAP;
         }
+        if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
+            if (mTwoFingerTripleTapTypeCheckBox.isChecked()) {
+                value |= UserShortcutType.TWOFINGERTRIPLETAP;
+            }
+        }
         return value;
     }
 
@@ -343,6 +351,15 @@
         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);
@@ -378,6 +395,10 @@
                 hasShortcutType(value, UserShortcutType.HARDWARE));
         mTripleTapTypeCheckBox.setChecked(
                 hasShortcutType(value, UserShortcutType.TRIPLETAP));
+        if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
+            mTwoFingerTripleTapTypeCheckBox.setChecked(
+                    hasShortcutType(value, UserShortcutType.TWOFINGERTRIPLETAP));
+        }
     }
 
     private int restoreOnConfigChangedValue() {
@@ -453,6 +474,13 @@
                     R.string.accessibility_shortcut_triple_tap_keyword);
             list.add(tripleTapTitle);
         }
+        if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
+            if (hasShortcutType(shortcutTypes, UserShortcutType.TWOFINGERTRIPLETAP)) {
+                final CharSequence twoFingerTripleTapTitle = context.getText(
+                        R.string.accessibility_shortcut_two_finger_triple_tap_keyword);
+                list.add(twoFingerTripleTapTitle);
+            }
+        }
 
         // Show software shortcut if first time to use.
         if (list.isEmpty()) {
@@ -618,6 +646,12 @@
         if (((shortcutTypes & UserShortcutType.TRIPLETAP) == UserShortcutType.TRIPLETAP)) {
             optInMagnificationValueToSettings(context, UserShortcutType.TRIPLETAP);
         }
+        if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
+            if (((shortcutTypes & UserShortcutType.TWOFINGERTRIPLETAP)
+                    == UserShortcutType.TWOFINGERTRIPLETAP)) {
+                optInMagnificationValueToSettings(context, UserShortcutType.TWOFINGERTRIPLETAP);
+            }
+        }
     }
 
     private static void optInMagnificationValueToSettings(Context context,
@@ -628,6 +662,15 @@
             return;
         }
 
+        if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
+            if (shortcutType == UserShortcutType.TWOFINGERTRIPLETAP) {
+                Settings.Secure.putInt(context.getContentResolver(),
+                        Settings.Secure.ACCESSIBILITY_MAGNIFICATION_TWO_FINGER_TRIPLE_TAP_ENABLED,
+                        ON);
+                return;
+            }
+        }
+
         if (hasMagnificationValueInSettings(context, shortcutType)) {
             return;
         }
@@ -668,6 +711,12 @@
         if (((shortcutTypes & UserShortcutType.TRIPLETAP) == UserShortcutType.TRIPLETAP)) {
             optOutMagnificationValueFromSettings(context, UserShortcutType.TRIPLETAP);
         }
+        if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
+            if (((shortcutTypes & UserShortcutType.TWOFINGERTRIPLETAP)
+                    == UserShortcutType.TWOFINGERTRIPLETAP)) {
+                optOutMagnificationValueFromSettings(context, UserShortcutType.TWOFINGERTRIPLETAP);
+            }
+        }
     }
 
     private static void optOutMagnificationValueFromSettings(Context context,
@@ -678,6 +727,15 @@
             return;
         }
 
+        if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
+            if (shortcutType == UserShortcutType.TWOFINGERTRIPLETAP) {
+                Settings.Secure.putInt(context.getContentResolver(),
+                        Settings.Secure.ACCESSIBILITY_MAGNIFICATION_TWO_FINGER_TRIPLE_TAP_ENABLED,
+                        OFF);
+                return;
+            }
+        }
+
         final String targetKey = AccessibilityUtil.convertKeyFromSettings(shortcutType);
         final String targetString = Settings.Secure.getString(context.getContentResolver(),
                 targetKey);
@@ -713,6 +771,13 @@
         if (((shortcutTypes & UserShortcutType.TRIPLETAP) == UserShortcutType.TRIPLETAP)) {
             exist |= hasMagnificationValueInSettings(context, UserShortcutType.TRIPLETAP);
         }
+        if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
+            if (((shortcutTypes & UserShortcutType.TWOFINGERTRIPLETAP)
+                    == UserShortcutType.TWOFINGERTRIPLETAP)) {
+                exist |= hasMagnificationValueInSettings(context,
+                        UserShortcutType.TWOFINGERTRIPLETAP);
+            }
+        }
         return exist;
     }
 
@@ -723,6 +788,14 @@
                     Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, OFF) == ON;
         }
 
+        if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
+            if (shortcutType == UserShortcutType.TWOFINGERTRIPLETAP) {
+                return Settings.Secure.getInt(context.getContentResolver(),
+                        Settings.Secure.ACCESSIBILITY_MAGNIFICATION_TWO_FINGER_TRIPLE_TAP_ENABLED,
+                        OFF) == ON;
+            }
+        }
+
         final String targetKey = AccessibilityUtil.convertKeyFromSettings(shortcutType);
         final String targetString = Settings.Secure.getString(context.getContentResolver(),
                 targetKey);
@@ -752,6 +825,11 @@
         if (hasMagnificationValuesInSettings(context, UserShortcutType.TRIPLETAP)) {
             shortcutTypes |= UserShortcutType.TRIPLETAP;
         }
+        if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
+            if (hasMagnificationValuesInSettings(context, UserShortcutType.TWOFINGERTRIPLETAP)) {
+                shortcutTypes |= UserShortcutType.TWOFINGERTRIPLETAP;
+            }
+        }
         return shortcutTypes;
     }
 
diff --git a/src/com/android/settings/accessibility/VibrationPreferenceConfig.java b/src/com/android/settings/accessibility/VibrationPreferenceConfig.java
index b4be528..c25c38e 100644
--- a/src/com/android/settings/accessibility/VibrationPreferenceConfig.java
+++ b/src/com/android/settings/accessibility/VibrationPreferenceConfig.java
@@ -68,8 +68,19 @@
     /** Play a vibration effect with intensity just selected by the user. */
     public static void playVibrationPreview(Vibrator vibrator,
             @VibrationAttributes.Usage int vibrationUsage) {
-        vibrator.vibrate(PREVIEW_VIBRATION_EFFECT,
-                createPreviewVibrationAttributes(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);
     }
 
     public VibrationPreferenceConfig(Context context, String settingKey,
@@ -135,7 +146,7 @@
         return mAudioManager.getRingerModeInternal() == AudioManager.RINGER_MODE_SILENT;
     }
 
-    private static VibrationAttributes createPreviewVibrationAttributes(
+    static VibrationAttributes createPreviewVibrationAttributes(
             @VibrationAttributes.Usage int vibrationUsage) {
         return new VibrationAttributes.Builder()
                 .setUsage(vibrationUsage)
diff --git a/src/com/android/settings/accounts/AccountDashboardFragment.java b/src/com/android/settings/accounts/AccountDashboardFragment.java
index 7816fd7..81aefd9 100644
--- a/src/com/android/settings/accounts/AccountDashboardFragment.java
+++ b/src/com/android/settings/accounts/AccountDashboardFragment.java
@@ -31,14 +31,17 @@
 import com.android.settings.applications.autofill.PasswordsPreferenceController;
 import com.android.settings.applications.credentials.CredentialManagerPreferenceController;
 import com.android.settings.applications.credentials.DefaultCombinedPreferenceController;
+import com.android.settings.applications.credentials.DefaultPrivateCombinedPreferenceController;
 import com.android.settings.applications.credentials.DefaultWorkCombinedPreferenceController;
 import com.android.settings.applications.defaultapps.DefaultAutofillPreferenceController;
+import com.android.settings.applications.defaultapps.DefaultPrivateAutofillPreferenceController;
 import com.android.settings.applications.defaultapps.DefaultWorkAutofillPreferenceController;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.dashboard.profileselector.ProfileSelectFragment;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.users.AutoSyncDataPreferenceController;
 import com.android.settings.users.AutoSyncPersonalDataPreferenceController;
+import com.android.settings.users.AutoSyncPrivateDataPreferenceController;
 import com.android.settings.users.AutoSyncWorkDataPreferenceController;
 import com.android.settingslib.core.AbstractPreferenceController;
 import com.android.settingslib.search.SearchIndexable;
@@ -111,9 +114,11 @@
         if (CredentialManager.isServiceEnabled(context)) {
             controllers.add(new DefaultCombinedPreferenceController(context));
             controllers.add(new DefaultWorkCombinedPreferenceController(context));
+            controllers.add(new DefaultPrivateCombinedPreferenceController(context));
         } else {
             controllers.add(new DefaultAutofillPreferenceController(context));
             controllers.add(new DefaultWorkAutofillPreferenceController(context));
+            controllers.add(new DefaultPrivateAutofillPreferenceController(context));
         }
     }
 
@@ -132,6 +137,7 @@
         controllers.add(new AutoSyncDataPreferenceController(context, parent));
         controllers.add(new AutoSyncPersonalDataPreferenceController(context, parent));
         controllers.add(new AutoSyncWorkDataPreferenceController(context, parent));
+        controllers.add(new AutoSyncPrivateDataPreferenceController(context, parent));
     }
 
     private static int getPreferenceLayoutResId(Context context) {
diff --git a/src/com/android/settings/accounts/AccountPreferenceController.java b/src/com/android/settings/accounts/AccountPreferenceController.java
index db6a4ae..b2cdb77 100644
--- a/src/com/android/settings/accounts/AccountPreferenceController.java
+++ b/src/com/android/settings/accounts/AccountPreferenceController.java
@@ -45,6 +45,7 @@
 import android.content.res.Resources;
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
+import android.os.Flags;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.text.BidiFormatter;
@@ -100,7 +101,6 @@
     private SparseArray<ProfileData> mProfiles = new SparseArray<ProfileData>();
     private ManagedProfileBroadcastReceiver mManagedProfileBroadcastReceiver =
             new ManagedProfileBroadcastReceiver();
-    private Preference mProfileNotAvailablePreference;
     private String[] mAuthorities;
     private int mAuthoritiesCount = 0;
     private DashboardFragment mFragment;
@@ -296,14 +296,24 @@
             updateProfileUi(userInfo);
         } else {
             List<UserInfo> profiles = mUm.getProfiles(UserHandle.myUserId());
-            final int profilesCount = profiles.size();
-            for (int i = 0; i < profilesCount; i++) {
-                if (profiles.get(i).isManagedProfile()
-                        && (mType & ProfileSelectFragment.ProfileType.WORK) != 0) {
-                    updateProfileUi(profiles.get(i));
-                } else if (!profiles.get(i).isManagedProfile()
-                        && (mType & ProfileSelectFragment.ProfileType.PERSONAL) != 0) {
-                    updateProfileUi(profiles.get(i));
+            for (UserInfo profile : profiles) {
+                // Check if this controller can handle this profile - e.g. if this controller's
+                // mType has the WORK flag set and this profile is a managed profile.
+                // If there are no tabs then this controller will support all profile types -
+                // - ProfileType.ALL.
+                // At the same time we should check the user property to make sure if this profile
+                // should be shown or not.
+                if (((profile.isManagedProfile()
+                        && (mType & ProfileSelectFragment.ProfileType.WORK) != 0)
+                        || (Flags.allowPrivateProfile()
+                            && profile.isPrivateProfile()
+                            && (mType & ProfileSelectFragment.ProfileType.PRIVATE) != 0)
+                        || (!profile.isManagedProfile()
+                            && !(Flags.allowPrivateProfile() && profile.isPrivateProfile())
+                            && (mType & ProfileSelectFragment.ProfileType.PERSONAL) != 0))
+                        && !(mUm.getUserProperties(profile.getUserHandle())
+                            .getHideInSettingsInQuietMode() && profile.isQuietModeEnabled())) {
+                    updateProfileUi(profile);
                 }
             }
         }
@@ -530,18 +540,19 @@
         } else {
             profileData.preferenceGroup.removeAll();
             // Put a label instead of the accounts list
-            if (mProfileNotAvailablePreference == null) {
-                mProfileNotAvailablePreference =
-                        new Preference(mFragment.getPreferenceManager().getContext());
-            }
-            mProfileNotAvailablePreference.setEnabled(false);
-            mProfileNotAvailablePreference.setIcon(R.drawable.empty_icon);
-            mProfileNotAvailablePreference.setTitle(null);
-            mProfileNotAvailablePreference.setSummary(
-                    mDpm.getResources().getString(
-                            WORK_PROFILE_NOT_AVAILABLE, () -> mContext.getString(
-                    R.string.managed_profile_not_available_label)));
-            profileData.preferenceGroup.addPreference(mProfileNotAvailablePreference);
+            final Preference profileNotAvailablePreference =
+                    new Preference(mFragment.getPreferenceManager().getContext());
+            profileNotAvailablePreference.setEnabled(false);
+            profileNotAvailablePreference.setIcon(R.drawable.empty_icon);
+            profileNotAvailablePreference.setTitle(null);
+            profileNotAvailablePreference.setSummary(
+                    mDpm.getResources()
+                            .getString(
+                                    WORK_PROFILE_NOT_AVAILABLE,
+                                    () ->
+                                            mContext.getString(
+                                                    R.string.managed_profile_not_available_label)));
+            profileData.preferenceGroup.addPreference(profileNotAvailablePreference);
         }
         if (profileData.removeWorkProfilePreference != null) {
             profileData.preferenceGroup.addPreference(profileData.removeWorkProfilePreference);
diff --git a/src/com/android/settings/accounts/AccountPrivateDashboardFragment.java b/src/com/android/settings/accounts/AccountPrivateDashboardFragment.java
new file mode 100644
index 0000000..9794b4a
--- /dev/null
+++ b/src/com/android/settings/accounts/AccountPrivateDashboardFragment.java
@@ -0,0 +1,109 @@
+/*
+ * 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.accounts;
+
+import static android.provider.Settings.EXTRA_AUTHORITIES;
+
+import static com.android.settings.accounts.AccountDashboardFragment.buildAutofillPreferenceControllers;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.credentials.CredentialManager;
+
+import com.android.settings.R;
+import com.android.settings.applications.autofill.PasswordsPreferenceController;
+import com.android.settings.applications.credentials.CredentialManagerPreferenceController;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.dashboard.profileselector.ProfileSelectFragment;
+import com.android.settings.users.AutoSyncDataPreferenceController;
+import com.android.settings.users.AutoSyncPrivateDataPreferenceController;
+import com.android.settingslib.core.AbstractPreferenceController;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class AccountPrivateDashboardFragment extends DashboardFragment {
+    private static final String TAG = "AccountPrivateFrag";
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.ACCOUNT_PRIVATE;
+    }
+
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        if (this.getContext() != null && CredentialManager.isServiceEnabled(this.getContext())) {
+            return R.xml.accounts_private_dashboard_settings_credman;
+        }
+        return R.xml.accounts_private_dashboard_settings;
+    }
+
+    @Override
+    public int getHelpResource() {
+        return R.string.help_url_user_and_account_dashboard;
+    }
+
+    @Override
+    public void onAttach(Context context) {
+        super.onAttach(context);
+        if (CredentialManager.isServiceEnabled(context)) {
+            CredentialManagerPreferenceController cmpp =
+                    use(CredentialManagerPreferenceController.class);
+            CredentialManagerPreferenceController.Delegate delegate =
+                    new CredentialManagerPreferenceController.Delegate() {
+                        public void setActivityResult(int resultCode) {
+                            getActivity().setResult(resultCode);
+                        }
+                        public void forceDelegateRefresh() {
+                            forceUpdatePreferences();
+                        }
+                    };
+            cmpp.init(this, getFragmentManager(), getIntent(), delegate, /*isWorkProfile=*/false);
+        } else {
+            getSettingsLifecycle().addObserver(use(PasswordsPreferenceController.class));
+        }
+    }
+
+    @Override
+    protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
+        final List<AbstractPreferenceController> controllers = new ArrayList<>();
+        buildAutofillPreferenceControllers(context, controllers);
+        final String[] authorities = getIntent().getStringArrayExtra(EXTRA_AUTHORITIES);
+        buildAccountPreferenceControllers(context, authorities, controllers);
+        return controllers;
+    }
+
+    private void buildAccountPreferenceControllers(
+            Context context,
+            String[] authorities,
+            List<AbstractPreferenceController> controllers) {
+        final AccountPreferenceController accountPrefController =
+                new AccountPreferenceController(
+                        context,
+                        this,
+                        authorities,
+                        ProfileSelectFragment.ProfileType.PRIVATE);
+        controllers.add(accountPrefController);
+        controllers.add(new AutoSyncDataPreferenceController(context, this));
+        controllers.add(new AutoSyncPrivateDataPreferenceController(context, this));
+    }
+}
diff --git a/src/com/android/settings/accounts/SyncStateSwitchPreference.java b/src/com/android/settings/accounts/SyncStateSwitchPreference.java
index 9c7f739..2f92d56 100644
--- a/src/com/android/settings/accounts/SyncStateSwitchPreference.java
+++ b/src/com/android/settings/accounts/SyncStateSwitchPreference.java
@@ -26,12 +26,12 @@
 import android.widget.TextView;
 
 import androidx.preference.PreferenceViewHolder;
-import androidx.preference.SwitchPreference;
+import androidx.preference.SwitchPreferenceCompat;
 
 import com.android.settings.R;
 import com.android.settingslib.widget.AnimatedImageView;
 
-public class SyncStateSwitchPreference extends SwitchPreference {
+public class SyncStateSwitchPreference extends SwitchPreferenceCompat {
 
     private boolean mIsActive = false;
     private boolean mIsPending = false;
@@ -84,7 +84,7 @@
         final boolean failedVisible = mFailed && !activeVisible;
         syncFailedView.setVisibility(failedVisible ? View.VISIBLE : View.GONE);
 
-        View switchView = view.findViewById(com.android.internal.R.id.switch_widget);
+        View switchView = view.findViewById(androidx.preference.R.id.switchWidget);
         if (mOneTimeSyncMode) {
             switchView.setVisibility(View.GONE);
 
diff --git a/src/com/android/settings/accounts/WorkModePreferenceController.java b/src/com/android/settings/accounts/WorkModePreferenceController.java
index 46440f6..ae910f7 100644
--- a/src/com/android/settings/accounts/WorkModePreferenceController.java
+++ b/src/com/android/settings/accounts/WorkModePreferenceController.java
@@ -16,7 +16,8 @@
 package com.android.settings.accounts;
 
 import android.content.Context;
-import android.widget.Switch;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
 
 import androidx.lifecycle.DefaultLifecycleObserver;
 import androidx.lifecycle.LifecycleOwner;
@@ -27,14 +28,13 @@
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.slices.SliceData;
 import com.android.settingslib.widget.MainSwitchPreference;
-import com.android.settingslib.widget.OnMainSwitchChangeListener;
 
 import org.jetbrains.annotations.NotNull;
 
 
 /** Controller for "Work apps" toggle that allows the user to enable/disable quiet mode. */
 public class WorkModePreferenceController extends BasePreferenceController
-        implements OnMainSwitchChangeListener, DefaultLifecycleObserver,
+        implements OnCheckedChangeListener, DefaultLifecycleObserver,
         ManagedProfileQuietModeEnabler.QuietModeChangeListener {
 
     private final ManagedProfileQuietModeEnabler mQuietModeEnabler;
@@ -68,7 +68,7 @@
     }
 
     @Override
-    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         mQuietModeEnabler.setQuietModeEnabled(!isChecked);
     }
 
diff --git a/src/com/android/settings/activityembedding/EmbeddedDeepLinkUtils.kt b/src/com/android/settings/activityembedding/EmbeddedDeepLinkUtils.kt
new file mode 100644
index 0000000..2bc8cda
--- /dev/null
+++ b/src/com/android/settings/activityembedding/EmbeddedDeepLinkUtils.kt
@@ -0,0 +1,113 @@
+/*
+ * 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.activityembedding
+
+import android.app.Activity
+import android.content.ActivityNotFoundException
+import android.content.Context
+import android.content.Intent
+import android.provider.Settings
+import android.util.Log
+import com.android.settings.SettingsActivity
+import com.android.settings.Utils
+import com.android.settings.homepage.DeepLinkHomepageActivityInternal
+import com.android.settings.homepage.SettingsHomepageActivity
+import com.android.settings.password.PasswordUtils
+import com.android.settingslib.spaprivileged.framework.common.userManager
+
+object EmbeddedDeepLinkUtils {
+    private const val TAG = "EmbeddedDeepLinkUtils"
+
+    @JvmStatic
+    fun Activity.tryStartMultiPaneDeepLink(
+        intent: Intent,
+        highlightMenuKey: String? = null,
+    ): Boolean {
+        intent.putExtra(
+            SettingsActivity.EXTRA_INITIAL_CALLING_PACKAGE,
+            PasswordUtils.getCallingAppPackageName(activityToken),
+        )
+        val trampolineIntent: Intent
+        if (intent.getBooleanExtra(SettingsActivity.EXTRA_IS_FROM_SLICE, false)) {
+            // Get menu key for slice deep link case.
+            var sliceHighlightMenuKey: String? = intent.getStringExtra(
+                Settings.EXTRA_SETTINGS_EMBEDDED_DEEP_LINK_HIGHLIGHT_MENU_KEY
+            )
+            if (sliceHighlightMenuKey.isNullOrEmpty()) {
+                sliceHighlightMenuKey = highlightMenuKey
+            }
+            trampolineIntent = getTrampolineIntent(intent, sliceHighlightMenuKey)
+            trampolineIntent.setClass(this, DeepLinkHomepageActivityInternal::class.java)
+        } else {
+            trampolineIntent = getTrampolineIntent(intent, highlightMenuKey)
+        }
+        return startTrampolineIntent(trampolineIntent)
+    }
+
+    /**
+     * Returns the deep link trampoline intent for large screen devices.
+     */
+    @JvmStatic
+    fun getTrampolineIntent(intent: Intent, highlightMenuKey: String?): Intent {
+        val detailIntent = Intent(intent)
+        // Guard against the arbitrary Intent injection.
+        if (detailIntent.selector != null) {
+            detailIntent.setSelector(null)
+        }
+        // It's a deep link intent, SettingsHomepageActivity will set SplitPairRule and start it.
+        return Intent(Settings.ACTION_SETTINGS_EMBED_DEEP_LINK_ACTIVITY).apply {
+            setPackage(Utils.SETTINGS_PACKAGE_NAME)
+            replaceExtras(detailIntent)
+
+            // Relay detail intent data to prevent failure of Intent#ParseUri.
+            // If Intent#getData() is not null, Intent#toUri will return an Uri which has the scheme
+            // of Intent#getData() and it may not be the scheme of an Intent.
+            putExtra(
+                SettingsHomepageActivity.EXTRA_SETTINGS_LARGE_SCREEN_DEEP_LINK_INTENT_DATA,
+                detailIntent.data
+            )
+            detailIntent.setData(null)
+            putExtra(
+                Settings.EXTRA_SETTINGS_EMBEDDED_DEEP_LINK_INTENT_URI,
+                detailIntent.toUri(Intent.URI_INTENT_SCHEME)
+            )
+            putExtra(
+                Settings.EXTRA_SETTINGS_EMBEDDED_DEEP_LINK_HIGHLIGHT_MENU_KEY,
+                highlightMenuKey
+            )
+            addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT)
+        }
+    }
+
+    private fun Context.startTrampolineIntent(trampolineIntent: Intent): Boolean = try {
+        val userInfo = userManager.getUserInfo(user.identifier)
+        if (userInfo.isManagedProfile) {
+            trampolineIntent.setClass(this, DeepLinkHomepageActivityInternal::class.java)
+                .putExtra(SettingsActivity.EXTRA_USER_HANDLE, user)
+            startActivityAsUser(
+                trampolineIntent,
+                userManager.getProfileParent(userInfo.id).userHandle
+            )
+        } else {
+            startActivity(trampolineIntent)
+        }
+        true
+    } catch (e: ActivityNotFoundException) {
+        Log.e(TAG, "Deep link homepage is not available to show 2-pane UI")
+        false
+    }
+}
diff --git a/src/com/android/settings/applications/AdvancedAppsPreferenceCategoryController.java b/src/com/android/settings/applications/AdvancedAppsPreferenceCategoryController.java
new file mode 100644
index 0000000..6a518fd
--- /dev/null
+++ b/src/com/android/settings/applications/AdvancedAppsPreferenceCategoryController.java
@@ -0,0 +1,34 @@
+/*
+ * 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.applications;
+
+import android.content.Context;
+
+import androidx.annotation.NonNull;
+
+import com.android.settings.widget.PreferenceCategoryController;
+
+/**
+ * Preference category controller for Advanced category under Apps page
+ */
+public class AdvancedAppsPreferenceCategoryController extends PreferenceCategoryController {
+
+    public AdvancedAppsPreferenceCategoryController(@NonNull Context context,
+            @NonNull String preferenceKey) {
+        super(context, preferenceKey);
+    }
+}
diff --git a/src/com/android/settings/applications/AppCounter.java b/src/com/android/settings/applications/AppCounter.java
index ce2be84..d536932 100644
--- a/src/com/android/settings/applications/AppCounter.java
+++ b/src/com/android/settings/applications/AppCounter.java
@@ -16,33 +16,49 @@
 
 import android.content.Context;
 import android.content.pm.ApplicationInfo;
+import android.content.pm.FeatureFlags;
+import android.content.pm.FeatureFlagsImpl;
 import android.content.pm.PackageManager;
+import android.content.pm.PackageManager.ApplicationInfoFlags;
 import android.content.pm.UserInfo;
 import android.os.AsyncTask;
 import android.os.UserHandle;
 import android.os.UserManager;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.VisibleForTesting;
+
 import java.util.List;
 
 public abstract class AppCounter extends AsyncTask<Void, Void, Integer> {
 
     protected final PackageManager mPm;
     protected final UserManager mUm;
+    protected final FeatureFlags mFf;
 
-    public AppCounter(Context context, PackageManager packageManager) {
+    @VisibleForTesting
+    AppCounter(@NonNull Context context, @NonNull PackageManager packageManager,
+            @NonNull FeatureFlags featureFlags) {
         mPm = packageManager;
-        mUm = (UserManager) context.getSystemService(Context.USER_SERVICE);
+        mUm = context.getSystemService(UserManager.class);
+        mFf = featureFlags;
+    }
+
+    public AppCounter(@NonNull Context context, @NonNull PackageManager packageManager) {
+        this(context, packageManager, new FeatureFlagsImpl());
     }
 
     @Override
     protected Integer doInBackground(Void... params) {
         int count = 0;
         for (UserInfo user : mUm.getProfiles(UserHandle.myUserId())) {
+            long flags = PackageManager.GET_DISABLED_COMPONENTS
+                    | PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS
+                    | (mFf.archiving() ? PackageManager.MATCH_ARCHIVED_PACKAGES : 0)
+                    | (user.isAdmin() ? PackageManager.MATCH_ANY_USER : 0);
+            ApplicationInfoFlags infoFlags = ApplicationInfoFlags.of(flags);
             final List<ApplicationInfo> list =
-                    mPm.getInstalledApplicationsAsUser(PackageManager.GET_DISABLED_COMPONENTS
-                            | PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS
-                            | (user.isAdmin() ? PackageManager.MATCH_ANY_USER : 0),
-                            user.id);
+                    mPm.getInstalledApplicationsAsUser(infoFlags, user.id);
             for (ApplicationInfo info : list) {
                 if (includeInCount(info)) {
                     count++;
@@ -62,5 +78,6 @@
     }
 
     protected abstract void onCountComplete(int num);
+
     protected abstract boolean includeInCount(ApplicationInfo info);
 }
diff --git a/src/com/android/settings/applications/AppDashboardFragment.java b/src/com/android/settings/applications/AppDashboardFragment.java
index 11f8405..41160d8 100644
--- a/src/com/android/settings/applications/AppDashboardFragment.java
+++ b/src/com/android/settings/applications/AppDashboardFragment.java
@@ -20,9 +20,12 @@
 import android.content.Context;
 import android.provider.SearchIndexableResource;
 
+import com.android.internal.annotations.VisibleForTesting;
 import com.android.settings.R;
+import com.android.settings.applications.appcompat.UserAspectRatioAppsPreferenceController;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settings.widget.PreferenceCategoryController;
 import com.android.settingslib.core.AbstractPreferenceController;
 import com.android.settingslib.search.SearchIndexable;
 
@@ -35,11 +38,21 @@
 public class AppDashboardFragment extends DashboardFragment {
 
     private static final String TAG = "AppDashboardFragment";
+    private static final String ADVANCED_CATEGORY_KEY = "advanced_category";
+    private static final String ASPECT_RATIO_PREF_KEY = "aspect_ratio_apps";
     private AppsPreferenceController mAppsPreferenceController;
 
     private static List<AbstractPreferenceController> buildPreferenceControllers(Context context) {
         final List<AbstractPreferenceController> controllers = new ArrayList<>();
         controllers.add(new AppsPreferenceController(context));
+
+        final UserAspectRatioAppsPreferenceController aspectRatioAppsPreferenceController =
+                new UserAspectRatioAppsPreferenceController(context, ASPECT_RATIO_PREF_KEY);
+        final AdvancedAppsPreferenceCategoryController advancedCategoryController =
+                new AdvancedAppsPreferenceCategoryController(context, ADVANCED_CATEGORY_KEY);
+        advancedCategoryController.setChildren(List.of(aspectRatioAppsPreferenceController));
+        controllers.add(advancedCategoryController);
+
         return controllers;
     }
 
@@ -75,6 +88,11 @@
         getSettingsLifecycle().addObserver(hibernatedAppsPreferenceController);
     }
 
+    @VisibleForTesting
+    PreferenceCategoryController getAdvancedAppsPreferenceCategoryController() {
+        return use(AdvancedAppsPreferenceCategoryController.class);
+    }
+
     @Override
     protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
         return buildPreferenceControllers(context);
diff --git a/src/com/android/settings/applications/AppStorageSettings.java b/src/com/android/settings/applications/AppStorageSettings.java
index 807f043..e45657f 100644
--- a/src/com/android/settings/applications/AppStorageSettings.java
+++ b/src/com/android/settings/applications/AppStorageSettings.java
@@ -53,6 +53,7 @@
 import com.android.settings.R;
 import com.android.settings.Utils;
 import com.android.settings.deviceinfo.StorageWizardMoveConfirm;
+import com.android.settings.fuelgauge.datasaver.DynamicDenylistManager;
 import com.android.settingslib.RestrictedLockUtils;
 import com.android.settingslib.applications.AppUtils;
 import com.android.settingslib.applications.ApplicationsState.Callbacks;
@@ -359,6 +360,8 @@
         mButtonsPref.setButton1Enabled(false);
         // Invoke uninstall or clear user data based on sysPackage
         String packageName = mAppEntry.info.packageName;
+        DynamicDenylistManager.getInstance(getContext())
+                .resetDenylistIfNeeded(packageName, /* force= */ false);
         Log.i(TAG, "Clearing user data for package : " + packageName);
         if (mClearDataObserver == null) {
             mClearDataObserver = new ClearUserDataObserver();
diff --git a/src/com/android/settings/applications/InstalledAppCounter.java b/src/com/android/settings/applications/InstalledAppCounter.java
index aeac26e..9da4c9a 100644
--- a/src/com/android/settings/applications/InstalledAppCounter.java
+++ b/src/com/android/settings/applications/InstalledAppCounter.java
@@ -17,10 +17,15 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.ApplicationInfo;
+import android.content.pm.FeatureFlags;
+import android.content.pm.FeatureFlagsImpl;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.os.UserHandle;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.VisibleForTesting;
+
 import java.util.List;
 
 public abstract class InstalledAppCounter extends AppCounter {
@@ -32,9 +37,15 @@
 
     private final int mInstallReason;
 
-    public InstalledAppCounter(Context context, int installReason,
-            PackageManager packageManager) {
-        super(context, packageManager);
+    public InstalledAppCounter(@NonNull Context context, int installReason,
+            @NonNull PackageManager packageManager) {
+        this(context, installReason, packageManager, new FeatureFlagsImpl());
+    }
+
+    @VisibleForTesting
+    InstalledAppCounter(@NonNull Context context, int installReason,
+            @NonNull PackageManager packageManager, @NonNull FeatureFlags featureFlags) {
+        super(context, packageManager, featureFlags);
         mInstallReason = installReason;
     }
 
diff --git a/src/com/android/settings/applications/ProcStatsData.java b/src/com/android/settings/applications/ProcStatsData.java
index 7742e98..aedb066 100644
--- a/src/com/android/settings/applications/ProcStatsData.java
+++ b/src/com/android/settings/applications/ProcStatsData.java
@@ -29,6 +29,8 @@
 import android.util.LongSparseArray;
 import android.util.SparseArray;
 
+import androidx.annotation.WorkerThread;
+
 import com.android.internal.app.ProcessMap;
 import com.android.internal.app.procstats.DumpUtils;
 import com.android.internal.app.procstats.IProcessStats;
@@ -85,24 +87,10 @@
         }
     }
 
-    public void setTotalTime(int totalTime) {
-        memTotalTime = totalTime;
-    }
-
     public void xferStats() {
         sStatsXfer = mStats;
     }
 
-    public void setMemStates(int[] memStates) {
-        mMemStates = memStates;
-        refreshStats(false);
-    }
-
-    public void setStats(int[] stats) {
-        this.mStates = stats;
-        refreshStats(false);
-    }
-
     public int getMemState() {
         int factor = mStats.mMemFactor;
         if (factor == ProcessStats.ADJ_NOTHING) {
@@ -118,15 +106,13 @@
         return mMemInfo;
     }
 
-    public long getElapsedTime() {
-        return mStats.mTimePeriodEndRealtime - mStats.mTimePeriodStartRealtime;
-    }
-
+    /**
+     * Sets the duration.
+     *
+     * <p>Note: {@link #refreshStats(boolean)} needs to called manually to take effect.
+     */
     public void setDuration(long duration) {
-        if (duration != mDuration) {
-            mDuration = duration;
-            refreshStats(true);
-        }
+        mDuration = duration;
     }
 
     public long getDuration() {
@@ -137,6 +123,12 @@
         return pkgEntries;
     }
 
+    /**
+     * Refreshes the stats.
+     *
+     * <p>Note: This needs to be called manually to take effect.
+     */
+    @WorkerThread
     public void refreshStats(boolean forceLoad) {
         if (mStats == null || forceLoad) {
             load();
diff --git a/src/com/android/settings/applications/UsageAccessDetails.java b/src/com/android/settings/applications/UsageAccessDetails.java
index d0b743d..b81c719 100644
--- a/src/com/android/settings/applications/UsageAccessDetails.java
+++ b/src/com/android/settings/applications/UsageAccessDetails.java
@@ -38,7 +38,7 @@
 import androidx.preference.Preference;
 import androidx.preference.Preference.OnPreferenceChangeListener;
 import androidx.preference.Preference.OnPreferenceClickListener;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.applications.AppStateUsageBridge.UsageState;
@@ -57,7 +57,7 @@
     // TODO: Break out this functionality into its own class.
     private AppStateUsageBridge mUsageBridge;
     private AppOpsManager mAppOpsManager;
-    private SwitchPreference mSwitchPref;
+    private TwoStatePreference mSwitchPref;
     private Preference mUsageDesc;
     private Intent mSettingsIntent;
     private UsageState mUsageState;
@@ -78,7 +78,7 @@
         mDpm = context.getSystemService(DevicePolicyManager.class);
 
         addPreferencesFromResource(R.xml.app_ops_permissions_details);
-        mSwitchPref = (SwitchPreference) findPreference(KEY_APP_OPS_SETTINGS_SWITCH);
+        mSwitchPref = (TwoStatePreference) findPreference(KEY_APP_OPS_SETTINGS_SWITCH);
         mUsageDesc = findPreference(KEY_APP_OPS_SETTINGS_DESC);
 
         getPreferenceScreen().setTitle(R.string.usage_access);
diff --git a/src/com/android/settings/applications/appcompat/UserAspectRatioAppsPreferenceController.java b/src/com/android/settings/applications/appcompat/UserAspectRatioAppsPreferenceController.java
index ff68fb0..4211424 100644
--- a/src/com/android/settings/applications/appcompat/UserAspectRatioAppsPreferenceController.java
+++ b/src/com/android/settings/applications/appcompat/UserAspectRatioAppsPreferenceController.java
@@ -43,6 +43,6 @@
 
     @Override
     public CharSequence getSummary() {
-        return mContext.getResources().getString(R.string.aspect_ratio_summary, Build.MODEL);
+        return mContext.getResources().getString(R.string.aspect_ratio_summary_text, Build.MODEL);
     }
 }
diff --git a/src/com/android/settings/applications/appcompat/UserAspectRatioDetails.java b/src/com/android/settings/applications/appcompat/UserAspectRatioDetails.java
index 60a9323..02d5c27 100644
--- a/src/com/android/settings/applications/appcompat/UserAspectRatioDetails.java
+++ b/src/com/android/settings/applications/appcompat/UserAspectRatioDetails.java
@@ -28,8 +28,10 @@
 
 import android.app.ActivityManager;
 import android.app.IActivityManager;
+import android.app.settings.SettingsEnums;
 import android.content.Intent;
 import android.content.pm.PackageManager;
+import android.os.Build;
 import android.os.Bundle;
 import android.os.RemoteException;
 import android.os.UserHandle;
@@ -43,8 +45,10 @@
 import com.android.settings.R;
 import com.android.settings.Utils;
 import com.android.settings.applications.AppInfoBase;
+import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.widget.EntityHeaderController;
 import com.android.settingslib.applications.AppUtils;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 import com.android.settingslib.widget.ActionButtonsPreference;
 
 import java.util.ArrayList;
@@ -57,6 +61,7 @@
         RadioWithImagePreference.OnClickListener {
     private static final String TAG = UserAspectRatioDetails.class.getSimpleName();
 
+    private static final String KEY_HEADER_SUMMARY = "app_aspect_ratio_summary";
     private static final String KEY_HEADER_BUTTONS = "header_view";
     private static final String KEY_PREF_FULLSCREEN = "fullscreen_pref";
     private static final String KEY_PREF_HALF_SCREEN = "half_screen_pref";
@@ -102,6 +107,7 @@
             Log.e(TAG, "Unable to set user min aspect ratio");
             return;
         }
+        logActionMetrics(selectedKey, mSelectedKey);
         // Only update to selected aspect ratio if nothing goes wrong
         mSelectedKey = selectedKey;
         updateAllPreferences(mSelectedKey);
@@ -116,8 +122,7 @@
 
     @Override
     public int getMetricsCategory() {
-        // TODO(b/292566895): add metrics for logging
-        return 0;
+        return SettingsEnums.USER_ASPECT_RATIO_APP_INFO_SETTINGS;
     }
 
     @Override
@@ -203,6 +208,10 @@
     private void initPreferences() {
         addPreferencesFromResource(R.xml.user_aspect_ratio_details);
 
+        final String summary = getContext().getResources().getString(
+                R.string.aspect_ratio_main_summary, Build.MODEL);
+        findPreference(KEY_HEADER_SUMMARY).setTitle(summary);
+
         ((ActionButtonsPreference) findPreference(KEY_HEADER_BUTTONS))
                 .setButton1Text(R.string.launch_instant_app)
                 .setButton1Icon(R.drawable.ic_settings_open)
@@ -238,6 +247,68 @@
         }
     }
 
+    private void logActionMetrics(@NonNull String selectedKey, @NonNull String unselectedKey) {
+        final MetricsFeatureProvider metricsFeatureProvider =
+                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
+        final int attribution = metricsFeatureProvider.getAttribution(getActivity());
+        metricsFeatureProvider.action(
+                attribution,
+                getUnselectedAspectRatioAction(unselectedKey),
+                getMetricsCategory(),
+                mPackageName,
+                mUserId
+        );
+        metricsFeatureProvider.action(
+                attribution,
+                getSelectedAspectRatioAction(selectedKey),
+                getMetricsCategory(),
+                mPackageName,
+                mUserId
+        );
+    }
+
+    private static int getSelectedAspectRatioAction(@NonNull String selectedKey) {
+        switch (selectedKey) {
+            case KEY_PREF_DEFAULT:
+                return SettingsEnums.ACTION_USER_ASPECT_RATIO_APP_DEFAULT_SELECTED;
+            case KEY_PREF_FULLSCREEN:
+                return SettingsEnums.ACTION_USER_ASPECT_RATIO_FULL_SCREEN_SELECTED;
+            case KEY_PREF_HALF_SCREEN:
+                return SettingsEnums.ACTION_USER_ASPECT_RATIO_HALF_SCREEN_SELECTED;
+            case KEY_PREF_4_3:
+                return SettingsEnums.ACTION_USER_ASPECT_RATIO_4_3_SELECTED;
+            case KEY_PREF_16_9:
+                return SettingsEnums.ACTION_USER_ASPECT_RATIO_16_9_SELECTED;
+            case KEY_PREF_3_2:
+                return SettingsEnums.ACTION_USER_ASPECT_RATIO_3_2_SELECTED;
+            case KEY_PREF_DISPLAY_SIZE:
+                return SettingsEnums.ACTION_USER_ASPECT_RATIO_DISPLAY_SIZE_SELECTED;
+            default:
+                return SettingsEnums.ACTION_UNKNOWN;
+        }
+    }
+
+    private static int getUnselectedAspectRatioAction(@NonNull String unselectedKey) {
+        switch (unselectedKey) {
+            case KEY_PREF_DEFAULT:
+                return SettingsEnums.ACTION_USER_ASPECT_RATIO_APP_DEFAULT_UNSELECTED;
+            case KEY_PREF_FULLSCREEN:
+                return SettingsEnums.ACTION_USER_ASPECT_RATIO_FULL_SCREEN_UNSELECTED;
+            case KEY_PREF_HALF_SCREEN:
+                return SettingsEnums.ACTION_USER_ASPECT_RATIO_HALF_SCREEN_UNSELECTED;
+            case KEY_PREF_4_3:
+                return SettingsEnums.ACTION_USER_ASPECT_RATIO_4_3_UNSELECTED;
+            case KEY_PREF_16_9:
+                return SettingsEnums.ACTION_USER_ASPECT_RATIO_16_9_UNSELECTED;
+            case KEY_PREF_3_2:
+                return SettingsEnums.ACTION_USER_ASPECT_RATIO_3_2_UNSELECTED;
+            case KEY_PREF_DISPLAY_SIZE:
+                return SettingsEnums.ACTION_USER_ASPECT_RATIO_DISPLAY_SIZE_UNSELECTED;
+            default:
+                return SettingsEnums.ACTION_UNKNOWN;
+        }
+    }
+
     @VisibleForTesting
     UserAspectRatioManager getAspectRatioManager() {
         return mUserAspectRatioManager;
diff --git a/src/com/android/settings/applications/appcompat/UserAspectRatioManager.java b/src/com/android/settings/applications/appcompat/UserAspectRatioManager.java
index b940dc8..3cca5f6 100644
--- a/src/com/android/settings/applications/appcompat/UserAspectRatioManager.java
+++ b/src/com/android/settings/applications/appcompat/UserAspectRatioManager.java
@@ -24,7 +24,6 @@
 
 import android.app.AppGlobals;
 import android.content.Context;
-import android.content.Intent;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.IPackageManager;
 import android.content.pm.LauncherApps;
@@ -48,10 +47,6 @@
  * {@link PackageManager.UserMinAspectRatio} set by user
  */
 public class UserAspectRatioManager {
-    private static final Intent LAUNCHER_ENTRY_INTENT =
-            new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER);
-
-    // TODO(b/288142656): Enable user aspect ratio settings by default
     private static final boolean DEFAULT_VALUE_ENABLE_USER_ASPECT_RATIO_SETTINGS = true;
     @VisibleForTesting
     static final String KEY_ENABLE_USER_ASPECT_RATIO_SETTINGS =
@@ -173,12 +168,9 @@
                     DEFAULT_VALUE_ENABLE_USER_ASPECT_RATIO_FULLSCREEN);
     }
 
-    LauncherApps getLauncherApps() {
-        return mContext.getSystemService(LauncherApps.class);
-    }
-
     private boolean hasLauncherEntry(@NonNull ApplicationInfo app) {
-        return !getLauncherApps().getActivityList(app.packageName, getUserHandleForUid(app.uid))
+        return !mContext.getSystemService(LauncherApps.class)
+                .getActivityList(app.packageName, getUserHandleForUid(app.uid))
                 .isEmpty();
     }
 
@@ -232,7 +224,7 @@
 
     @NonNull
     private String getAccessibleOption(String numerator, String denominator) {
-        return mContext.getResources().getString(R.string.user_aspect_ratio_option_a11y,
+        return mContext.getString(R.string.user_aspect_ratio_option_a11y,
                 numerator, denominator);
     }
 
diff --git a/src/com/android/settings/applications/appinfo/AppDataUsagePreferenceController.java b/src/com/android/settings/applications/appinfo/AppDataUsagePreferenceController.java
index 32662a2..baa1daf 100644
--- a/src/com/android/settings/applications/appinfo/AppDataUsagePreferenceController.java
+++ b/src/com/android/settings/applications/appinfo/AppDataUsagePreferenceController.java
@@ -17,7 +17,6 @@
 package com.android.settings.applications.appinfo;
 
 import android.content.Context;
-import android.net.NetworkStats;
 import android.net.NetworkTemplate;
 import android.os.Bundle;
 import android.os.Process;
@@ -34,8 +33,8 @@
 import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.Utils;
 import com.android.settings.datausage.AppDataUsage;
-import com.android.settings.datausage.DataUsageUtils;
-import com.android.settings.network.SubscriptionUtil;
+import com.android.settings.datausage.lib.NetworkTemplates;
+import com.android.settings.spa.app.appinfo.AppDataUsagePreferenceKt;
 import com.android.settingslib.AppItem;
 import com.android.settingslib.applications.AppUtils;
 import com.android.settingslib.core.lifecycle.LifecycleObserver;
@@ -46,6 +45,10 @@
 
 import java.util.List;
 
+/**
+ * @deprecated Will be removed, use {@link AppDataUsagePreferenceKt} instead.
+ */
+@Deprecated(forRemoval = true)
 public class AppDataUsagePreferenceController extends AppInfoPreferenceControllerBase
         implements LoaderManager.LoaderCallbacks<List<NetworkCycleDataForUid>>, LifecycleObserver,
         OnResume, OnPause {
@@ -92,7 +95,7 @@
 
     @Override
     public Loader<List<NetworkCycleDataForUid>> onCreateLoader(int id, Bundle args) {
-        final NetworkTemplate template = getTemplate(mContext);
+        final NetworkTemplate template = NetworkTemplates.INSTANCE.getDefaultTemplate(mContext);
         final int uid = mParent.getAppEntry().info.uid;
 
         final NetworkCycleDataForUidLoader.Builder builder =
@@ -147,18 +150,6 @@
         return mContext.getString(R.string.computing_size);
     }
 
-    private static NetworkTemplate getTemplate(Context context) {
-        if (SubscriptionUtil.isSimHardwareVisible(context)
-                && DataUsageUtils.hasReadyMobileRadio(context)) {
-            return new NetworkTemplate.Builder(NetworkTemplate.MATCH_MOBILE).setMeteredness(
-                    NetworkStats.METERED_YES).build();
-        }
-        if (DataUsageUtils.hasWifiRadio(context)) {
-            return new NetworkTemplate.Builder(NetworkTemplate.MATCH_WIFI).build();
-        }
-        return new NetworkTemplate.Builder(NetworkTemplate.MATCH_ETHERNET).build();
-    }
-
     @VisibleForTesting
     boolean isBandwidthControlEnabled() {
         return Utils.isBandwidthControlEnabled();
diff --git a/src/com/android/settings/applications/appinfo/DrawOverlayDetails.java b/src/com/android/settings/applications/appinfo/DrawOverlayDetails.java
index e1e5968..409b695 100644
--- a/src/com/android/settings/applications/appinfo/DrawOverlayDetails.java
+++ b/src/com/android/settings/applications/appinfo/DrawOverlayDetails.java
@@ -23,12 +23,13 @@
 import android.view.View;
 import android.view.ViewGroup;
 
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 import androidx.appcompat.app.AlertDialog;
 import androidx.preference.Preference;
 import androidx.preference.Preference.OnPreferenceChangeListener;
 import androidx.preference.Preference.OnPreferenceClickListener;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.Utils;
@@ -50,7 +51,8 @@
     // TODO: Break out this functionality into its own class.
     private AppStateOverlayBridge mOverlayBridge;
     private AppOpsManager mAppOpsManager;
-    private SwitchPreference mSwitchPref;
+    @Nullable
+    private TwoStatePreference mSwitchPref = null;
     private OverlayState mOverlayState;
 
     @Override
diff --git a/src/com/android/settings/applications/appinfo/HibernationSwitchPreferenceController.java b/src/com/android/settings/applications/appinfo/HibernationSwitchPreferenceController.java
index e3c577b..12703dd 100644
--- a/src/com/android/settings/applications/appinfo/HibernationSwitchPreferenceController.java
+++ b/src/com/android/settings/applications/appinfo/HibernationSwitchPreferenceController.java
@@ -37,7 +37,7 @@
 
 import androidx.annotation.NonNull;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.google.common.annotations.VisibleForTesting;
 
@@ -107,7 +107,7 @@
     @Override
     public void updateState(Preference preference) {
         super.updateState(preference);
-        ((SwitchPreference) preference).setChecked(isAppEligibleForHibernation()
+        ((TwoStatePreference) preference).setChecked(isAppEligibleForHibernation()
                 && !isPackageHibernationExemptByUser());
         preference.setEnabled(isAppEligibleForHibernation());
         if (!mHibernationEligibilityLoaded) {
diff --git a/src/com/android/settings/applications/appinfo/ManageExternalStorageDetails.java b/src/com/android/settings/applications/appinfo/ManageExternalStorageDetails.java
index 4253bd9..e7eff9f 100644
--- a/src/com/android/settings/applications/appinfo/ManageExternalStorageDetails.java
+++ b/src/com/android/settings/applications/appinfo/ManageExternalStorageDetails.java
@@ -27,7 +27,7 @@
 import androidx.preference.Preference;
 import androidx.preference.Preference.OnPreferenceChangeListener;
 import androidx.preference.Preference.OnPreferenceClickListener;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.applications.AppInfoWithHeader;
@@ -47,7 +47,7 @@
 
     private AppStateManageExternalStorageBridge mBridge;
     private AppOpsManager mAppOpsManager;
-    private SwitchPreference mSwitchPref;
+    private TwoStatePreference mSwitchPref;
     private PermissionState mPermissionState;
     private MetricsFeatureProvider mMetricsFeatureProvider;
 
diff --git a/src/com/android/settings/applications/appinfo/MediaManagementAppsDetails.java b/src/com/android/settings/applications/appinfo/MediaManagementAppsDetails.java
index f60fb4f..71b494b 100644
--- a/src/com/android/settings/applications/appinfo/MediaManagementAppsDetails.java
+++ b/src/com/android/settings/applications/appinfo/MediaManagementAppsDetails.java
@@ -23,7 +23,7 @@
 import androidx.appcompat.app.AlertDialog;
 import androidx.preference.Preference;
 import androidx.preference.Preference.OnPreferenceChangeListener;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.applications.AppInfoWithHeader;
@@ -41,7 +41,7 @@
 
     private AppStateMediaManagementAppsBridge mAppBridge;
     private AppOpsManager mAppOpsManager;
-    private SwitchPreference mSwitchPref;
+    private TwoStatePreference mSwitchPref;
     private PermissionState mPermissionState;
 
     @Override
diff --git a/src/com/android/settings/applications/appinfo/TurnScreenOnDetails.java b/src/com/android/settings/applications/appinfo/TurnScreenOnDetails.java
index 39e1a5f..95694db 100644
--- a/src/com/android/settings/applications/appinfo/TurnScreenOnDetails.java
+++ b/src/com/android/settings/applications/appinfo/TurnScreenOnDetails.java
@@ -28,7 +28,7 @@
 import androidx.appcompat.app.AlertDialog;
 import androidx.preference.Preference;
 import androidx.preference.Preference.OnPreferenceChangeListener;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.Settings;
@@ -46,7 +46,7 @@
 
     private AppStateTurnScreenOnBridge mAppBridge;
     private AppOpsManager mAppOpsManager;
-    private SwitchPreference mSwitchPref;
+    private TwoStatePreference mSwitchPref;
     private AppStateAppOpsBridge.PermissionState mPermissionState;
 
 
@@ -60,7 +60,7 @@
 
         // find preferences
         addPreferencesFromResource(R.xml.turn_screen_on_permissions_details);
-        mSwitchPref = (SwitchPreference) findPreference(KEY_APP_OPS_SETTINGS_SWITCH);
+        mSwitchPref = (TwoStatePreference) findPreference(KEY_APP_OPS_SETTINGS_SWITCH);
         mSwitchPref.setOnPreferenceChangeListener(this);
     }
 
diff --git a/src/com/android/settings/applications/appinfo/WriteSettingsDetails.java b/src/com/android/settings/applications/appinfo/WriteSettingsDetails.java
index 476cd4e..94ebc41 100644
--- a/src/com/android/settings/applications/appinfo/WriteSettingsDetails.java
+++ b/src/com/android/settings/applications/appinfo/WriteSettingsDetails.java
@@ -24,7 +24,7 @@
 import androidx.preference.Preference;
 import androidx.preference.Preference.OnPreferenceChangeListener;
 import androidx.preference.Preference.OnPreferenceClickListener;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.applications.AppInfoWithHeader;
@@ -43,7 +43,7 @@
     // TODO: Break out this functionality into its own class.
     private AppStateWriteSettingsBridge mAppBridge;
     private AppOpsManager mAppOpsManager;
-    private SwitchPreference mSwitchPref;
+    private TwoStatePreference mSwitchPref;
     private WriteSettingsState mWriteSettingsState;
 
     @Override
diff --git a/src/com/android/settings/applications/appops/AppOpsCategory.java b/src/com/android/settings/applications/appops/AppOpsCategory.java
index 57d7dc4..95ee256 100644
--- a/src/com/android/settings/applications/appops/AppOpsCategory.java
+++ b/src/com/android/settings/applications/appops/AppOpsCategory.java
@@ -29,9 +29,9 @@
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.BaseAdapter;
+import android.widget.CompoundButton;
 import android.widget.ImageView;
 import android.widget.ListView;
-import android.widget.Switch;
 import android.widget.TextView;
 
 import androidx.fragment.app.ListFragment;
@@ -244,14 +244,12 @@
     public static class AppListAdapter extends BaseAdapter {
         private final Resources mResources;
         private final LayoutInflater mInflater;
-        private final AppOpsState mState;
 
         List<AppOpEntry> mList;
 
-        public AppListAdapter(Context context, AppOpsState state) {
+        public AppListAdapter(Context context) {
             mResources = context.getResources();
             mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-            mState = state;
         }
 
         public void setData(List<AppOpEntry> data) {
@@ -294,7 +292,7 @@
             ((TextView) view.findViewById(R.id.op_name)).setText(
                     item.getTimeText(mResources, false));
             view.findViewById(R.id.op_time).setVisibility(View.GONE);
-            ((Switch) view.findViewById(R.id.op_switch)).setChecked(
+            ((CompoundButton) view.findViewById(R.id.op_switch)).setChecked(
                     item.getPrimaryOpMode() == AppOpsManager.MODE_ALLOWED);
 
             return view;
@@ -318,7 +316,7 @@
         setHasOptionsMenu(true);
 
         // Create an empty adapter we will use to display the loaded data.
-        mAdapter = new AppListAdapter(getActivity(), mState);
+        mAdapter = new AppListAdapter(getActivity());
         setListAdapter(mAdapter);
 
         // Start out with a progress indicator.
@@ -332,7 +330,7 @@
         AppOpEntry entry = mAdapter.getItem(position);
         if (entry != null) {
             // We treat this as tapping on the check box, toggling the app op state.
-            Switch sw = v.findViewById(R.id.op_switch);
+            CompoundButton sw = v.findViewById(R.id.op_switch);
             boolean checked = !sw.isChecked();
             sw.setChecked(checked);
             AppOpsManager.OpEntry op = entry.getOpEntry(0);
diff --git a/src/com/android/settings/applications/autofill/AutofillPickerActivity.java b/src/com/android/settings/applications/autofill/AutofillPickerActivity.java
index 93b9880..e6180da 100644
--- a/src/com/android/settings/applications/autofill/AutofillPickerActivity.java
+++ b/src/com/android/settings/applications/autofill/AutofillPickerActivity.java
@@ -18,10 +18,10 @@
 
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
-import com.android.settings.applications.defaultapps.DefaultAutofillPicker;
+import com.android.settings.applications.credentials.DefaultCombinedPicker;
 
 /**
- * Standalone activity used to launch a {@link DefaultAutofillPicker} fragment from a
+ * Standalone activity used to launch a {@link DefaultCombinedPicker} fragment from a
  * {@link android.provider.Settings#ACTION_REQUEST_SET_AUTOFILL_SERVICE} intent.
  */
 public class AutofillPickerActivity extends SettingsActivity {
@@ -30,15 +30,15 @@
     protected void onCreate(Bundle savedInstanceState) {
         final Intent intent = getIntent();
         final String packageName = intent.getData().getSchemeSpecificPart();
-        intent.putExtra(EXTRA_SHOW_FRAGMENT, DefaultAutofillPicker.class.getName());
-        intent.putExtra(EXTRA_SHOW_FRAGMENT_TITLE_RESID, R.string.autofill_app);
-        intent.putExtra(DefaultAutofillPicker.EXTRA_PACKAGE_NAME, packageName);
+        intent.putExtra(EXTRA_SHOW_FRAGMENT, DefaultCombinedPicker.class.getName());
+        intent.putExtra(EXTRA_SHOW_FRAGMENT_TITLE_RESID, R.string.credman_picker_title);
+        intent.putExtra(DefaultCombinedPicker.EXTRA_PACKAGE_NAME, packageName);
         super.onCreate(savedInstanceState);
     }
 
     @Override
     protected boolean isValidFragment(String fragmentName) {
         return super.isValidFragment(fragmentName)
-                || DefaultAutofillPicker.class.getName().equals(fragmentName);
+                || DefaultCombinedPicker.class.getName().equals(fragmentName);
     }
 }
diff --git a/src/com/android/settings/applications/autofill/AutofillPickerTrampolineActivity.java b/src/com/android/settings/applications/autofill/AutofillPickerTrampolineActivity.java
index ee58bfe..fd17a93 100644
--- a/src/com/android/settings/applications/autofill/AutofillPickerTrampolineActivity.java
+++ b/src/com/android/settings/applications/autofill/AutofillPickerTrampolineActivity.java
@@ -18,11 +18,10 @@
 import android.content.Intent;
 import android.os.Bundle;
 import android.view.autofill.AutofillManager;
-
-import com.android.settings.applications.defaultapps.DefaultAutofillPicker;
+import com.android.settings.applications.credentials.DefaultCombinedPicker;
 
 /**
- * Standalone activity used to launch a {@link DefaultAutofillPicker} fragment from a
+ * Standalone activity used to launch a {@link DefaultCombinedPicker} fragment from a
  * {@link android.provider.Settings#ACTION_REQUEST_SET_AUTOFILL_SERVICE} intent.
  *
  * <p>It first check for cases that can fail fast, then forward to {@link AutofillPickerActivity}
diff --git a/src/com/android/settings/applications/autofill/PasswordsPreferenceController.java b/src/com/android/settings/applications/autofill/PasswordsPreferenceController.java
index 03a551f..73fef1b 100644
--- a/src/com/android/settings/applications/autofill/PasswordsPreferenceController.java
+++ b/src/com/android/settings/applications/autofill/PasswordsPreferenceController.java
@@ -17,6 +17,7 @@
 package com.android.settings.applications.autofill;
 
 import static android.app.admin.DevicePolicyResources.Strings.Settings.AUTO_SYNC_PERSONAL_DATA;
+import static android.app.admin.DevicePolicyResources.Strings.Settings.AUTO_SYNC_PRIVATE_DATA;
 import static android.app.admin.DevicePolicyResources.Strings.Settings.AUTO_SYNC_WORK_DATA;
 import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
 import static android.service.autofill.AutofillService.EXTRA_RESULT;
@@ -122,6 +123,8 @@
                 AUTO_SYNC_PERSONAL_DATA, R.string.account_settings_menu_auto_sync_personal);
         replaceEnterpriseStringTitle(screen, "auto_sync_work_account_data",
                 AUTO_SYNC_WORK_DATA, R.string.account_settings_menu_auto_sync_work);
+        replaceEnterpriseStringTitle(screen, "auto_sync_private_account_data",
+                AUTO_SYNC_PRIVATE_DATA, R.string.account_settings_menu_auto_sync_private);
     }
 
     private void addPasswordPreferences(
diff --git a/src/com/android/settings/applications/credentials/CredentialManagerPreferenceController.java b/src/com/android/settings/applications/credentials/CredentialManagerPreferenceController.java
index 98d56cc..b0905ba 100644
--- a/src/com/android/settings/applications/credentials/CredentialManagerPreferenceController.java
+++ b/src/com/android/settings/applications/credentials/CredentialManagerPreferenceController.java
@@ -45,10 +45,9 @@
 import android.provider.Settings;
 import android.service.autofill.AutofillServiceInfo;
 import android.text.TextUtils;
-import android.util.IconDrawableFactory;
 import android.util.Log;
 import android.view.View;
-import android.widget.Switch;
+import android.widget.CompoundButton;
 
 import androidx.appcompat.app.AlertDialog;
 import androidx.core.content.ContextCompat;
@@ -96,9 +95,11 @@
     private static final String ALTERNATE_INTENT = "android.settings.SYNC_SETTINGS";
     private static final String PRIMARY_INTENT = "android.settings.CREDENTIAL_PROVIDER";
     private static final int MAX_SELECTABLE_PROVIDERS = 5;
+    private static final String SETTINGS_ACTIVITY_INTENT_ACTION = "android.intent.action.MAIN";
+    private static final String SETTINGS_ACTIVITY_INTENT_CATEGORY =
+            "android.intent.category.LAUNCHER";
 
     private final PackageManager mPm;
-    private final IconDrawableFactory mIconFactory;
     private final List<CredentialProviderInfo> mServices;
     private final Set<String> mEnabledPackageNames;
     private final @Nullable CredentialManager mCredentialManager;
@@ -119,7 +120,6 @@
     public CredentialManagerPreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
         mPm = context.getPackageManager();
-        mIconFactory = IconDrawableFactory.newInstance(mContext);
         mServices = new ArrayList<>();
         mEnabledPackageNames = new HashSet<>();
         mExecutor = ContextCompat.getMainExecutor(mContext);
@@ -484,13 +484,22 @@
                 continue;
             }
 
+            // Get the settings activity.
+            CharSequence settingsActivity =
+                    combinedInfo.getCredentialProviderInfos().get(0).getSettingsActivity();
+
             Drawable icon = combinedInfo.getAppIcon(context, getUser());
             CharSequence title = combinedInfo.getAppName(context);
 
             // Build the pref and add it to the output & group.
             CombiPreference pref =
                     addProviderPreference(
-                            context, title, icon, packageName, combinedInfo.getSettingsSubtitle());
+                            context,
+                            title == null ? "" : title,
+                            icon,
+                            packageName,
+                            combinedInfo.getSettingsSubtitle(),
+                            settingsActivity);
             output.put(packageName, pref);
             group.addPreference(pref);
         }
@@ -510,7 +519,8 @@
                 label == null ? "" : label,
                 service.getServiceIcon(mContext),
                 service.getServiceInfo().packageName,
-                service.getSettingsSubtitle());
+                service.getSettingsSubtitle(),
+                service.getSettingsActivity());
     }
 
     /**
@@ -569,43 +579,90 @@
             @NonNull CharSequence title,
             @Nullable Drawable icon,
             @NonNull String packageName,
-            @Nullable CharSequence subtitle) {
+            @Nullable CharSequence subtitle,
+            @Nullable CharSequence settingsActivity) {
         final CombiPreference pref =
                 new CombiPreference(prefContext, mEnabledPackageNames.contains(packageName));
         pref.setTitle(title);
 
         if (icon != null) {
-            pref.setIcon(Utils.getSafeIcon(icon));
+            pref.setIcon(icon);
         }
 
+        pref.setLayoutResource(R.layout.preference_icon_credman);
+
         if (subtitle != null) {
             pref.setSummary(subtitle);
         }
 
         pref.setPreferenceListener(
-                (p, isChecked) -> {
-                    if (isChecked) {
-                        if (mEnabledPackageNames.size() >= MAX_SELECTABLE_PROVIDERS) {
-                            // Show the error if too many enabled.
-                            pref.setChecked(false);
-                            final DialogFragment fragment = newErrorDialogFragment();
+                new CombiPreference.OnCombiPreferenceClickListener() {
+                    @Override
+                    public void onCheckChanged(CombiPreference p, boolean isChecked) {
+                        if (isChecked) {
+                            if (mEnabledPackageNames.size() >= MAX_SELECTABLE_PROVIDERS) {
+                                // Show the error if too many enabled.
+                                pref.setChecked(false);
+                                final DialogFragment fragment = newErrorDialogFragment();
 
-                            if (fragment == null || mFragmentManager == null) {
+                                if (fragment == null || mFragmentManager == null) {
+                                    return;
+                                }
+
+                                fragment.show(mFragmentManager, ErrorDialogFragment.TAG);
                                 return;
                             }
 
-                            fragment.show(mFragmentManager, ErrorDialogFragment.TAG);
+                            togglePackageNameEnabled(packageName);
+
+                            // Enable all prefs.
+                            if (mPrefs.containsKey(packageName)) {
+                                mPrefs.get(packageName).setChecked(true);
+                            }
+                        } else {
+                            togglePackageNameDisabled(packageName);
+                        }
+                    }
+
+                    @Override
+                    public void onLeftSideClicked() {
+                        if (settingsActivity == null) {
+                            Log.w(TAG, "settingsActivity was null");
                             return;
                         }
 
-                        togglePackageNameEnabled(packageName);
-
-                        // Enable all prefs.
-                        if (mPrefs.containsKey(packageName)) {
-                            mPrefs.get(packageName).setChecked(true);
+                        String settingsActivityStr = String.valueOf(settingsActivity);
+                        ComponentName cn = ComponentName.unflattenFromString(settingsActivityStr);
+                        if (cn == null) {
+                            Log.w(
+                                    TAG,
+                                    "Failed to deserialize settingsActivity attribute, we got: "
+                                            + settingsActivityStr);
+                            return;
                         }
-                    } else {
-                        togglePackageNameDisabled(packageName);
+
+                        Intent intent = new Intent(SETTINGS_ACTIVITY_INTENT_ACTION);
+                        intent.addCategory(SETTINGS_ACTIVITY_INTENT_CATEGORY);
+                        intent.setComponent(cn);
+
+                        Context context = mContext;
+                        int currentUserId = getUser();
+                        int contextUserId = context.getUser().getIdentifier();
+
+                        if (currentUserId != contextUserId) {
+                            Log.d(
+                                    TAG,
+                                    "onLeftSideClicked(): using context for current user ("
+                                            + currentUserId
+                                            + ") instead of user "
+                                            + contextUserId
+                                            + " on headless system user mode");
+                            context =
+                                    context.createContextAsUser(
+                                            UserHandle.of(currentUserId), /* flags= */ 0);
+                        }
+
+                        context.startActivity(intent);
                     }
                 });
 
@@ -912,7 +969,7 @@
         }
 
         // Stores a reference to the switch view.
-        private @Nullable Switch mSwitch;
+        private @Nullable CompoundButton mSwitch;
 
         // Switch text for on and off states
         private @NonNull boolean mChecked = false;
@@ -921,6 +978,9 @@
         public interface OnCombiPreferenceClickListener {
             /** Called when the check is updated */
             void onCheckChanged(CombiPreference p, boolean isChecked);
+
+            /** Called when the left side is clicked. */
+            void onLeftSideClicked();
         }
 
         public CombiPreference(Context context, boolean initialValue) {
@@ -952,7 +1012,7 @@
 
         @Override
         protected int getSecondTargetResId() {
-            return R.layout.preference_widget_primary_switch;
+            return com.android.settingslib.R.layout.preference_widget_primary_switch;
         }
 
         @Override
@@ -960,15 +1020,27 @@
             super.onBindViewHolder(view);
 
             // Setup the switch.
-            View checkableView = view.itemView.findViewById(R.id.switchWidget);
-            if (checkableView != null && checkableView instanceof Switch) {
-                final Switch switchView = (Switch) checkableView;
+            View checkableView =
+                    view.itemView.findViewById(com.android.settingslib.R.id.switchWidget);
+            if (checkableView instanceof CompoundButton switchView) {
                 switchView.setChecked(mChecked);
                 switchView.setOnClickListener(mListener);
 
                 // Store this for later.
                 mSwitch = switchView;
             }
+
+            super.setOnPreferenceClickListener(
+                    new Preference.OnPreferenceClickListener() {
+                        @Override
+                        public boolean onPreferenceClick(Preference preference) {
+                            if (mOnClickListener != null) {
+                                mOnClickListener.onLeftSideClicked();
+                            }
+
+                            return true;
+                        }
+                    });
         }
     }
 }
diff --git a/src/com/android/settings/applications/credentials/DefaultCombinedPickerPrivate.java b/src/com/android/settings/applications/credentials/DefaultCombinedPickerPrivate.java
new file mode 100644
index 0000000..722cb1a
--- /dev/null
+++ b/src/com/android/settings/applications/credentials/DefaultCombinedPickerPrivate.java
@@ -0,0 +1,30 @@
+/*
+ * 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.applications.credentials;
+
+import android.os.UserManager;
+
+import com.android.settings.Utils;
+import com.android.settings.dashboard.profileselector.ProfileSelectFragment.ProfileType;
+
+public class DefaultCombinedPickerPrivate extends DefaultCombinedPicker {
+    @Override
+    protected int getUser() {
+        UserManager userManager = getContext().getSystemService(UserManager.class);
+        return Utils.getCurrentUserIdOfType(userManager, ProfileType.PRIVATE);
+    }
+}
diff --git a/src/com/android/settings/applications/credentials/DefaultPrivateCombinedPreferenceController.kt b/src/com/android/settings/applications/credentials/DefaultPrivateCombinedPreferenceController.kt
new file mode 100644
index 0000000..d606f3c
--- /dev/null
+++ b/src/com/android/settings/applications/credentials/DefaultPrivateCombinedPreferenceController.kt
@@ -0,0 +1,57 @@
+/*
+ * 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.applications.credentials
+
+import android.content.Context
+import android.content.Intent
+import android.os.UserHandle
+import com.android.settings.Utils
+import com.android.settings.dashboard.profileselector.ProfileSelectFragment
+import com.android.settingslib.applications.DefaultAppInfo
+
+class DefaultPrivateCombinedPreferenceController(context: Context?) : DefaultCombinedPreferenceController(context) {
+    private val userHandle: UserHandle? =
+            Utils.getProfileOfType(mUserManager, ProfileSelectFragment.ProfileType.PRIVATE)
+
+    override fun isAvailable(): Boolean {
+        return if (userHandle == null) {
+            false
+        } else super.isAvailable()
+    }
+
+    override fun getPreferenceKey(): String {
+        return "default_credman_autofill_private"
+    }
+
+    override fun getSettingIntent(info: DefaultAppInfo ?): Intent ? {
+        if (info == null) {
+            return null
+        }
+        return userHandle?.let { handle ->
+            AutofillSettingIntentProvider(mContext, handle.identifier, info.key).intent
+        } ?: null
+    }
+
+    override fun startActivity(intent: Intent) {
+        userHandle?.let { handle ->
+            mContext.startActivityAsUser(intent, handle)
+        }
+    }
+
+    override fun getUser(): Int {
+        return userHandle?.identifier ?: UserHandle.myUserId()
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/applications/defaultapps/DefaultPrivateAutofillPreferenceController.kt b/src/com/android/settings/applications/defaultapps/DefaultPrivateAutofillPreferenceController.kt
new file mode 100644
index 0000000..67211b4
--- /dev/null
+++ b/src/com/android/settings/applications/defaultapps/DefaultPrivateAutofillPreferenceController.kt
@@ -0,0 +1,66 @@
+/*
+ * 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.applications.defaultapps
+
+import android.content.ComponentName
+import android.content.Context
+import android.content.Intent
+import android.os.UserHandle
+import android.provider.Settings
+import android.text.TextUtils
+import com.android.settings.Utils
+import com.android.settings.dashboard.profileselector.ProfileSelectFragment
+import com.android.settingslib.applications.DefaultAppInfo
+
+class DefaultPrivateAutofillPreferenceController(context: Context?) : DefaultAutofillPreferenceController(context) {
+    private val userHandle: UserHandle? = Utils
+            .getProfileOfType(mUserManager, ProfileSelectFragment.ProfileType.PRIVATE)
+
+    override fun isAvailable(): Boolean {
+        return if (userHandle == null) {
+            false
+        } else super.isAvailable()
+    }
+
+    override fun getPreferenceKey(): String {
+        return "default_autofill_private"
+    }
+
+    override fun getDefaultAppInfo(): DefaultAppInfo ? {
+        val flattenComponent = userHandle?.let { handle ->
+            Settings.Secure.getStringForUser(
+                    mContext.contentResolver,
+                    DefaultAutofillPicker.SETTING,
+                    handle.identifier
+            )
+        }
+        return if (!flattenComponent.isNullOrEmpty()) {
+            userHandle?.let {
+                DefaultAppInfo(
+                        mContext,
+                        mPackageManager,
+                        it.identifier,
+                        ComponentName.unflattenFromString(flattenComponent))
+            }
+        } else null
+    }
+
+    override fun startActivity(intent: Intent) {
+        if (userHandle == null) {
+            mContext.startActivityAsUser(intent, UserHandle.CURRENT)
+        } else mContext.startActivityAsUser(intent, userHandle)
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/applications/intentpicker/AppLaunchSettings.java b/src/com/android/settings/applications/intentpicker/AppLaunchSettings.java
index cebb4f7..72f7543 100644
--- a/src/com/android/settings/applications/intentpicker/AppLaunchSettings.java
+++ b/src/com/android/settings/applications/intentpicker/AppLaunchSettings.java
@@ -35,7 +35,8 @@
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
-import android.widget.Switch;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
 import android.widget.TextView;
 
 import androidx.annotation.VisibleForTesting;
@@ -51,7 +52,6 @@
 import com.android.settingslib.applications.AppUtils;
 import com.android.settingslib.widget.FooterPreference;
 import com.android.settingslib.widget.MainSwitchPreference;
-import com.android.settingslib.widget.OnMainSwitchChangeListener;
 
 import java.util.HashMap;
 import java.util.List;
@@ -62,7 +62,7 @@
 
 /** The page of the Open by default */
 public class AppLaunchSettings extends AppInfoBase implements
-        Preference.OnPreferenceChangeListener, OnMainSwitchChangeListener {
+        Preference.OnPreferenceChangeListener, OnCheckedChangeListener {
     private static final String TAG = "AppLaunchSettings";
     // Preference keys
     private static final String MAIN_SWITCH_PREF_KEY = "open_by_default_supported_links";
@@ -168,7 +168,7 @@
     }
 
     @Override
-    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         IntentPickerUtils.logd("onSwitchChanged: isChecked=" + isChecked);
         if (mMainSwitchPreference != null) { //mMainSwitchPreference synced with Switch
             mMainSwitchPreference.setChecked(isChecked);
diff --git a/src/com/android/settings/applications/manageapplications/ApplicationViewHolder.java b/src/com/android/settings/applications/manageapplications/ApplicationViewHolder.java
index 1f15aec..1d96688 100644
--- a/src/com/android/settings/applications/manageapplications/ApplicationViewHolder.java
+++ b/src/com/android/settings/applications/manageapplications/ApplicationViewHolder.java
@@ -31,9 +31,9 @@
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.CompoundButton;
 import android.widget.ImageView;
 import android.widget.ProgressBar;
-import android.widget.Switch;
 import android.widget.TextView;
 
 import androidx.annotation.StringRes;
@@ -46,11 +46,16 @@
 import com.android.settingslib.applications.ApplicationsState;
 import com.android.settingslib.applications.ApplicationsState.AppEntry;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
+import com.android.settingslib.spaprivileged.template.app.AppListItemModelKt;
+import com.android.settingslib.spaprivileged.template.app.AppListPageKt;
 import com.android.settingslib.widget.LottieColorUtils;
 
 import com.airbnb.lottie.LottieAnimationView;
 
-
+/**
+ * @deprecated Will be removed, use {@link AppListItemModelKt} {@link AppListPageKt} instead.
+ */
+@Deprecated(forRemoval = true)
 public class ApplicationViewHolder extends RecyclerView.ViewHolder {
 
     @VisibleForTesting
@@ -62,7 +67,7 @@
     @VisibleForTesting
     final ViewGroup mWidgetContainer;
     @VisibleForTesting
-    final Switch mSwitch;
+    final CompoundButton mSwitch;
     final ImageView mAddIcon;
     final ProgressBar mProgressBar;
 
@@ -74,7 +79,7 @@
         mAppIcon = itemView.findViewById(android.R.id.icon);
         mSummary = itemView.findViewById(android.R.id.summary);
         mDisabled = itemView.findViewById(com.android.settingslib.widget.preference.app.R.id.appendix);
-        mSwitch = itemView.findViewById(R.id.switchWidget);
+        mSwitch = itemView.findViewById(com.android.settingslib.R.id.switchWidget);
         mWidgetContainer = itemView.findViewById(android.R.id.widget_frame);
         mAddIcon = itemView.findViewById(R.id.add_preference_widget);
         mProgressBar = itemView.findViewById(R.id.progressBar_cyclic);
@@ -94,8 +99,9 @@
                     LayoutInflater.from(parent.getContext())
                             .inflate(R.layout.preference_widget_add_progressbar, widgetFrame, true);
                 } else {
-                    LayoutInflater.from(parent.getContext())
-                            .inflate(R.layout.preference_widget_primary_switch, widgetFrame, true);
+                    LayoutInflater.from(parent.getContext()).inflate(
+                            com.android.settingslib.R.layout.preference_widget_primary_switch,
+                            widgetFrame, true);
                 }
                 View divider = LayoutInflater.from(parent.getContext()).inflate(
                         com.android.settingslib.widget.preference.twotarget.R.layout.preference_two_target_divider,
@@ -167,10 +173,6 @@
         mAppName.setContentDescription(contentDescription);
     }
 
-    void setIcon(int drawableRes) {
-        mAppIcon.setImageResource(drawableRes);
-    }
-
     void setIcon(Drawable icon) {
         if (icon == null) {
             return;
@@ -213,7 +215,8 @@
         }
     }
 
-    void updateSwitch(Switch.OnCheckedChangeListener listener, boolean enabled, boolean checked) {
+    void updateSwitch(CompoundButton.OnCheckedChangeListener listener, boolean enabled,
+            boolean checked) {
         if (mSwitch != null && mWidgetContainer != null) {
             mWidgetContainer.setFocusable(false);
             mWidgetContainer.setClickable(false);
diff --git a/src/com/android/settings/applications/manageapplications/ManageApplicationsUtil.kt b/src/com/android/settings/applications/manageapplications/ManageApplicationsUtil.kt
index 216ce47..82e987e 100644
--- a/src/com/android/settings/applications/manageapplications/ManageApplicationsUtil.kt
+++ b/src/com/android/settings/applications/manageapplications/ManageApplicationsUtil.kt
@@ -64,9 +64,11 @@
 import com.android.settings.spa.app.specialaccess.AllFilesAccessAppListProvider
 import com.android.settings.spa.app.specialaccess.DisplayOverOtherAppsAppListProvider
 import com.android.settings.spa.app.specialaccess.InstallUnknownAppsListProvider
+import com.android.settings.spa.app.specialaccess.LongBackgroundTasksAppListProvider
 import com.android.settings.spa.app.specialaccess.MediaManagementAppsAppListProvider
 import com.android.settings.spa.app.specialaccess.ModifySystemSettingsAppListProvider
 import com.android.settings.spa.app.specialaccess.NfcTagAppsSettingsProvider
+import com.android.settings.spa.app.specialaccess.TurnScreenOnAppsAppListProvider
 import com.android.settings.spa.app.specialaccess.WifiControlAppListProvider
 import com.android.settings.spa.app.storage.StorageAppListPageProvider
 import com.android.settings.spa.notification.AppListNotificationsPageProvider
@@ -120,6 +122,8 @@
             LIST_TYPE_MAIN -> AllAppListPageProvider.name
             LIST_TYPE_NFC_TAG_APPS -> NfcTagAppsSettingsProvider.getAppListRoute()
             LIST_TYPE_USER_ASPECT_RATIO_APPS -> UserAspectRatioAppsPageProvider.name
+            LIST_TYPE_LONG_BACKGROUND_TASKS -> LongBackgroundTasksAppListProvider.getAppListRoute()
+            LIST_TYPE_TURN_SCREEN_ON -> TurnScreenOnAppsAppListProvider.getAppListRoute()
             // TODO(b/292165031) enable once sorting is supported
             //LIST_TYPE_STORAGE -> StorageAppListPageProvider.Apps.name
             //LIST_TYPE_GAMES -> StorageAppListPageProvider.Games.name
diff --git a/src/com/android/settings/applications/manageapplications/ResetAppsHelper.java b/src/com/android/settings/applications/manageapplications/ResetAppsHelper.java
index 6da3e52..b2b7512 100644
--- a/src/com/android/settings/applications/manageapplications/ResetAppsHelper.java
+++ b/src/com/android/settings/applications/manageapplications/ResetAppsHelper.java
@@ -39,6 +39,7 @@
 
 import com.android.settings.R;
 import com.android.settings.fuelgauge.BatteryOptimizeUtils;
+import com.android.settings.fuelgauge.datasaver.DynamicDenylistManager;
 
 import java.util.Arrays;
 import java.util.List;
@@ -155,6 +156,8 @@
             }
             mAom.resetAllModes();
             BatteryOptimizeUtils.resetAppOptimizationMode(mContext, mIPm, mAom);
+            DynamicDenylistManager.getInstance(mContext)
+                    .resetDenylistIfNeeded(/* packageName= */ null, /* force= */ true);
             final int[] restrictedUids = mNpm.getUidsWithPolicy(POLICY_REJECT_METERED_BACKGROUND);
             final int currentUserId = ActivityManager.getCurrentUser();
             for (int uid : restrictedUids) {
diff --git a/src/com/android/settings/applications/specialaccess/PaymentSettingsEnabler.java b/src/com/android/settings/applications/specialaccess/PaymentSettingsEnabler.java
index 597705c..e378eb3 100644
--- a/src/com/android/settings/applications/specialaccess/PaymentSettingsEnabler.java
+++ b/src/com/android/settings/applications/specialaccess/PaymentSettingsEnabler.java
@@ -17,8 +17,10 @@
 package com.android.settings.applications.specialaccess;
 
 import android.content.Context;
+import android.nfc.Flags;
 import android.nfc.NfcAdapter;
 import android.nfc.cardemulation.CardEmulation;
+import android.os.UserHandle;
 
 import androidx.preference.Preference;
 
@@ -64,12 +66,21 @@
         }
     }
 
+    private boolean hasAnyServices() {
+        if (Flags.enableNfcMainline()) {
+            return mCardEmuManager.getServices(
+                CardEmulation.CATEGORY_PAYMENT, UserHandle.myUserId()).isEmpty();
+        } else {
+            return mCardEmuManager.getServices(CardEmulation.CATEGORY_PAYMENT).isEmpty();
+        }
+    }
+
     @Override
     public void resume() {
         if (!isNfcAvailable()) {
             return;
         }
-        if (mCardEmuManager.getServices(CardEmulation.CATEGORY_PAYMENT).isEmpty()) {
+        if (hasAnyServices()) {
             mIsPaymentAvailable = false;
         } else {
             mIsPaymentAvailable = true;
diff --git a/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminAdd.java b/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminAdd.java
index 8ab3ee4..bb9876b 100644
--- a/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminAdd.java
+++ b/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminAdd.java
@@ -647,7 +647,8 @@
     }
 
     void updateInterface() {
-        findViewById(R.id.restricted_icon).setVisibility(View.GONE);
+        findViewById(com.android.settingslib.widget.restricted.R.id.restricted_icon)
+                .setVisibility(View.GONE);
         mAdminIcon.setImageDrawable(mDeviceAdmin.loadIcon(getPackageManager()));
         mAdminName.setText(mDeviceAdmin.loadLabel(getPackageManager()));
         try {
@@ -682,7 +683,8 @@
                 final boolean hasBaseRestriction = hasBaseCantRemoveProfileRestriction();
                 if ((hasBaseRestriction && mDPM.isOrganizationOwnedDeviceWithManagedProfile())
                         || (admin != null && !hasBaseRestriction)) {
-                    findViewById(R.id.restricted_icon).setVisibility(View.VISIBLE);
+                    findViewById(com.android.settingslib.widget.restricted.R.id.restricted_icon)
+                            .setVisibility(View.VISIBLE);
                 }
                 mActionButton.setEnabled(admin == null && !hasBaseRestriction);
             } else if (isProfileOwner || mDeviceAdmin.getComponent().equals(
diff --git a/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureDetails.java b/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureDetails.java
index 7d557be..d166b82 100644
--- a/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureDetails.java
+++ b/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureDetails.java
@@ -28,7 +28,7 @@
 import androidx.appcompat.app.AlertDialog;
 import androidx.preference.Preference;
 import androidx.preference.Preference.OnPreferenceChangeListener;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.applications.AppInfoWithHeader;
@@ -41,7 +41,7 @@
     private static final String KEY_APP_OPS_SETTINGS_SWITCH = "app_ops_settings_switch";
     private static final String LOG_TAG = "PictureInPictureDetails";
 
-    private SwitchPreference mSwitchPref;
+    private TwoStatePreference mSwitchPref;
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
@@ -49,7 +49,7 @@
 
         // find preferences
         addPreferencesFromResource(R.xml.picture_in_picture_permissions_details);
-        mSwitchPref = (SwitchPreference) findPreference(KEY_APP_OPS_SETTINGS_SWITCH);
+        mSwitchPref = (TwoStatePreference) findPreference(KEY_APP_OPS_SETTINGS_SWITCH);
 
         // set title/summary for all of them
         mSwitchPref.setTitle(R.string.picture_in_picture_app_detail_switch);
diff --git a/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessDetails.java b/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessDetails.java
index 0a326c6..ffe13e6 100644
--- a/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessDetails.java
+++ b/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessDetails.java
@@ -16,13 +16,12 @@
 
 package com.android.settings.applications.specialaccess.zenaccess;
 
-import android.app.ActivityManager;
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.os.Bundle;
 
 import androidx.appcompat.app.AlertDialog;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.applications.AppInfoWithHeader;
@@ -66,7 +65,7 @@
         return null;
     }
 
-    public void updatePreference(Context context, SwitchPreference preference) {
+    private void updatePreference(Context context, TwoStatePreference preference) {
         final CharSequence label = mPackageInfo.applicationInfo.loadLabel(mPm);
         final Set<String> autoApproved = ZenAccessController.getAutoApprovedPackages(context);
         if (autoApproved.contains(mPackageName)) {
diff --git a/src/com/android/settings/backup/AutoRestorePreferenceController.java b/src/com/android/settings/backup/AutoRestorePreferenceController.java
index bf63e25..1394ce1 100644
--- a/src/com/android/settings/backup/AutoRestorePreferenceController.java
+++ b/src/com/android/settings/backup/AutoRestorePreferenceController.java
@@ -25,7 +25,7 @@
 import android.util.Log;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.core.TogglePreferenceController;
@@ -79,7 +79,7 @@
             backupManager.setAutoRestore(nextValue);
             result = true;
         } catch (RemoteException e) {
-            ((SwitchPreference) mPreference).setChecked(!nextValue);
+            ((TwoStatePreference) mPreference).setChecked(!nextValue);
             Log.e(TAG, "Error can't set setAutoRestore", e);
         }
 
diff --git a/src/com/android/settings/backup/SettingsBackupHelper.java b/src/com/android/settings/backup/SettingsBackupHelper.java
index a682df8..ad7e314 100644
--- a/src/com/android/settings/backup/SettingsBackupHelper.java
+++ b/src/com/android/settings/backup/SettingsBackupHelper.java
@@ -16,10 +16,13 @@
 
 package com.android.settings.backup;
 
+import static com.android.settings.localepicker.LocaleNotificationDataManager.LOCALE_NOTIFICATION;
+
 import android.app.backup.BackupAgentHelper;
 import android.app.backup.BackupDataInputStream;
 import android.app.backup.BackupDataOutput;
 import android.app.backup.BackupHelper;
+import android.app.backup.SharedPreferencesBackupHelper;
 import android.os.ParcelFileDescriptor;
 
 import com.android.settings.fuelgauge.BatteryBackupHelper;
@@ -33,12 +36,15 @@
  * Backup agent for Settings APK
  */
 public class SettingsBackupHelper extends BackupAgentHelper {
+    private static final String PREF_LOCALE_NOTIFICATION = "localeNotificationSharedPref";
 
     @Override
     public void onCreate() {
         super.onCreate();
         addHelper("no-op", new NoOpHelper());
         addHelper(BatteryBackupHelper.TAG, new BatteryBackupHelper(this));
+        addHelper(PREF_LOCALE_NOTIFICATION,
+                new SharedPreferencesBackupHelper(this, LOCALE_NOTIFICATION));
     }
 
     @Override
diff --git a/src/com/android/settings/backup/ToggleBackupSettingFragment.java b/src/com/android/settings/backup/ToggleBackupSettingFragment.java
index 8f60be9..c3ad92f 100644
--- a/src/com/android/settings/backup/ToggleBackupSettingFragment.java
+++ b/src/com/android/settings/backup/ToggleBackupSettingFragment.java
@@ -11,7 +11,6 @@
 import android.provider.Settings;
 import android.util.Log;
 import android.view.View;
-import android.widget.Switch;
 import android.widget.TextView;
 
 import androidx.appcompat.app.AlertDialog;
@@ -116,8 +115,7 @@
         mSwitchBar.setOnBeforeCheckedChangeListener(
                 new SettingsMainSwitchBar.OnBeforeCheckedChangeListener() {
                     @Override
-                    public boolean onBeforeCheckedChanged(
-                            Switch toggleSwitch, boolean checked) {
+                    public boolean onBeforeCheckedChanged(boolean checked) {
                         if (!checked) {
                             // Don't change Switch status until user makes choice in dialog
                             // so return true here.
diff --git a/src/com/android/settings/biometrics/BiometricEnrollBase.java b/src/com/android/settings/biometrics/BiometricEnrollBase.java
index c9c8cff..7df1fe1 100644
--- a/src/com/android/settings/biometrics/BiometricEnrollBase.java
+++ b/src/com/android/settings/biometrics/BiometricEnrollBase.java
@@ -67,6 +67,7 @@
     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 KEY_CALIBRATOR_UUID = "calibrator_uuid";
 
     /**
      * Used by the choose fingerprint wizard to indicate the wizard is
diff --git a/src/com/android/settings/biometrics/BiometricSettingsProvider.kt b/src/com/android/settings/biometrics/BiometricSettingsProvider.kt
new file mode 100644
index 0000000..308f245
--- /dev/null
+++ b/src/com/android/settings/biometrics/BiometricSettingsProvider.kt
@@ -0,0 +1,78 @@
+/*
+ * 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
+
+import android.content.ContentProvider
+import android.content.ContentValues
+import android.database.Cursor
+import android.net.Uri
+import android.os.Bundle
+import com.android.settings.flags.Flags
+
+class BiometricSettingsProvider : ContentProvider() {
+  companion object {
+    const val GET_SUW_FACE_ENABLED = "getSuwFaceEnabled"
+    const val SUW_FACE_ENABLED = "suw_face_enabled"
+  }
+
+  override fun delete(uri: Uri, selection: String?, selectionArgs: Array<out String>?): Int {
+    throw UnsupportedOperationException("query operation not supported currently.")
+  }
+
+  override fun getType(uri: Uri): String? {
+    throw UnsupportedOperationException("getType not supported")
+  }
+
+  override fun insert(uri: Uri, values: ContentValues?): Uri? {
+    throw UnsupportedOperationException("insert not supported")
+  }
+
+  override fun query(
+    uri: Uri,
+    projection: Array<out String>?,
+    selection: String?,
+    selectionArgs: Array<out String>?,
+    sortOrder: String?
+  ): Cursor? {
+    throw UnsupportedOperationException("query not supported")
+  }
+
+  override fun update(
+    uri: Uri,
+    values: ContentValues?,
+    selection: String?,
+    selectionArgs: Array<out String>?
+  ): Int {
+    throw UnsupportedOperationException("update not supported")
+  }
+
+  override fun onCreate(): Boolean = true
+
+  override fun call(method: String, arg: String?, extras: Bundle?): Bundle? {
+    val bundle = Bundle()
+    if (Flags.biometricSettingsProvider()) {
+      if (GET_SUW_FACE_ENABLED == method) {
+        val faceEnabled =
+          requireContext()
+            .resources
+            .getBoolean(com.android.settings.R.bool.config_suw_support_face_enroll)
+        bundle.putBoolean(SUW_FACE_ENABLED, faceEnabled)
+      }
+    }
+    return bundle
+  }
+}
diff --git a/src/com/android/settings/biometrics/face/FaceEnrollAccessibilityToggle.java b/src/com/android/settings/biometrics/face/FaceEnrollAccessibilityToggle.java
index f6ba0f9..b0b9488 100644
--- a/src/com/android/settings/biometrics/face/FaceEnrollAccessibilityToggle.java
+++ b/src/com/android/settings/biometrics/face/FaceEnrollAccessibilityToggle.java
@@ -22,17 +22,18 @@
 import android.view.LayoutInflater;
 import android.widget.CompoundButton;
 import android.widget.LinearLayout;
-import android.widget.Switch;
 import android.widget.TextView;
 
 import com.android.settings.R;
 
+import com.google.android.material.materialswitch.MaterialSwitch;
+
 /**
  * A layout that contains a start-justified title, and an end-justified switch.
  */
 public class FaceEnrollAccessibilityToggle extends LinearLayout {
 
-    private Switch mSwitch;
+    private final MaterialSwitch mSwitch;
 
     public FaceEnrollAccessibilityToggle(Context context) {
         this(context, null /* attrs */);
@@ -70,13 +71,14 @@
 
     public void setChecked(boolean checked) {
         mSwitch.setChecked(checked);
+        mSwitch.jumpDrawablesToCurrentState(); // Do not trigger animation from activity
     }
 
     public void setListener(CompoundButton.OnCheckedChangeListener listener) {
         mSwitch.setOnCheckedChangeListener(listener);
     }
 
-    public Switch getSwitch() {
+    public CompoundButton getSwitch() {
         return mSwitch;
     }
 }
diff --git a/src/com/android/settings/biometrics/face/FaceEnrollEducation.java b/src/com/android/settings/biometrics/face/FaceEnrollEducation.java
index 814dac1..62e9757 100644
--- a/src/com/android/settings/biometrics/face/FaceEnrollEducation.java
+++ b/src/com/android/settings/biometrics/face/FaceEnrollEducation.java
@@ -25,6 +25,8 @@
 import android.content.res.Configuration;
 import android.hardware.face.FaceManager;
 import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
 import android.os.UserHandle;
 import android.text.TextUtils;
 import android.util.Log;
@@ -32,6 +34,7 @@
 import android.view.accessibility.AccessibilityManager;
 import android.widget.Button;
 import android.widget.CompoundButton;
+import android.widget.ScrollView;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
@@ -86,6 +89,23 @@
                 }
             };
 
+    final View.OnLayoutChangeListener mSwitchDiversityOnLayoutChangeListener =
+            (v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> {
+                if (oldBottom == 0 && bottom != 0) {
+                    new Handler(Looper.getMainLooper()).post(() -> {
+                        final ScrollView scrollView =
+                                findViewById(com.google.android.setupdesign.R.id.sud_scroll_view);
+                        if (scrollView != null) {
+                            scrollView.fullScroll(View.FOCUS_DOWN); // scroll down
+                        }
+                        if (mSwitchDiversity != null) {
+                            mSwitchDiversity.removeOnLayoutChangeListener(
+                                    this.mSwitchDiversityOnLayoutChangeListener);
+                        }
+                    });
+                }
+            };
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -155,6 +175,7 @@
             mSwitchDiversity.setChecked(true);
             accessibilityButton.setVisibility(View.GONE);
             mSwitchDiversity.setVisibility(View.VISIBLE);
+            mSwitchDiversity.addOnLayoutChangeListener(mSwitchDiversityOnLayoutChangeListener);
         });
 
         mSwitchDiversity = findViewById(R.id.toggle_diversity);
diff --git a/src/com/android/settings/biometrics/face/FaceSettingsAttentionPreferenceController.java b/src/com/android/settings/biometrics/face/FaceSettingsAttentionPreferenceController.java
index 82fa00b..b5e9908 100644
--- a/src/com/android/settings/biometrics/face/FaceSettingsAttentionPreferenceController.java
+++ b/src/com/android/settings/biometrics/face/FaceSettingsAttentionPreferenceController.java
@@ -23,7 +23,7 @@
 import android.provider.Settings;
 
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.Utils;
 
@@ -37,7 +37,7 @@
 
     private byte[] mToken;
     private FaceManager mFaceManager;
-    private SwitchPreference mPreference;
+    private TwoStatePreference mPreference;
 
     private final SetFeatureCallback mSetFeatureCallback = new SetFeatureCallback() {
         @Override
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
index c62ab3b..063d55d 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
@@ -68,10 +68,13 @@
 import com.android.settings.biometrics.BiometricEnrollSidecar;
 import com.android.settings.biometrics.BiometricUtils;
 import com.android.settings.biometrics.BiometricsEnrollEnrolling;
+import com.android.settings.biometrics.fingerprint.feature.SfpsEnrollmentFeature;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.display.DisplayDensityUtils;
 
 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;
@@ -84,6 +87,7 @@
 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.
@@ -99,27 +103,22 @@
 
     private static final int PROGRESS_BAR_MAX = 10000;
 
-    private static final int STAGE_UNKNOWN = -1;
+    public static final int STAGE_UNKNOWN = -1;
     private static final int STAGE_CENTER = 0;
     private static final int STAGE_GUIDED = 1;
     private static final int STAGE_FINGERTIP = 2;
     private static final int STAGE_LEFT_EDGE = 3;
     private static final int STAGE_RIGHT_EDGE = 4;
 
-    @VisibleForTesting
-    protected static final int SFPS_STAGE_NO_ANIMATION = 0;
+    public static final int SFPS_STAGE_NO_ANIMATION = 0;
 
-    @VisibleForTesting
-    protected static final int SFPS_STAGE_CENTER = 1;
+    public static final int SFPS_STAGE_CENTER = 1;
 
-    @VisibleForTesting
-    protected static final int SFPS_STAGE_FINGERTIP = 2;
+    public static final int SFPS_STAGE_FINGERTIP = 2;
 
-    @VisibleForTesting
-    protected static final int SFPS_STAGE_LEFT_EDGE = 3;
+    public static final int SFPS_STAGE_LEFT_EDGE = 3;
 
-    @VisibleForTesting
-    protected static final int SFPS_STAGE_RIGHT_EDGE = 4;
+    public static final int SFPS_STAGE_RIGHT_EDGE = 4;
 
     @IntDef({STAGE_UNKNOWN, STAGE_CENTER, STAGE_GUIDED, STAGE_FINGERTIP, STAGE_LEFT_EDGE,
             STAGE_RIGHT_EDGE})
@@ -196,6 +195,9 @@
     private OrientationEventListener mOrientationEventListener;
     private int mPreviousRotation = 0;
 
+    @NonNull
+    private SfpsEnrollmentFeature mSfpsEnrollmentFeature = new EmptySfpsEnrollmentFeature();
+
     @VisibleForTesting
     protected boolean shouldShowLottie() {
         DisplayDensityUtils displayDensity = new DisplayDensityUtils(getApplicationContext());
@@ -203,6 +205,10 @@
         final int currentDensity = displayDensity.getDefaultDisplayDensityValues()
                 [currentDensityIndex];
         final int defaultDensity = displayDensity.getDefaultDensityForDefaultDisplay();
+
+        if (getResources().getConfiguration().fontScale > 1) {
+            return false;
+        }
         return defaultDensity == currentDensity;
     }
 
@@ -240,6 +246,8 @@
             setContentView(layout);
             setDescriptionText(R.string.security_settings_udfps_enroll_start_message);
         } else if (mCanAssumeSfps) {
+            mSfpsEnrollmentFeature = FeatureFactory.getFeatureFactory()
+                    .getFingerprintFeatureProvider().getSfpsEnrollmentFeature();
             setContentView(R.layout.sfps_enroll_enrolling);
             setHelpAnimation();
         } else {
@@ -595,7 +603,8 @@
         }
         switch (getCurrentSfpsStage()) {
             case SFPS_STAGE_NO_ANIMATION:
-                setHeaderText(R.string.security_settings_fingerprint_enroll_repeat_title);
+                setHeaderText(mSfpsEnrollmentFeature
+                        .getFeaturedStageHeaderResource(SFPS_STAGE_NO_ANIMATION));
                 if (!mHaveShownSfpsNoAnimationLottie && mIllustrationLottie != null) {
                     mHaveShownSfpsNoAnimationLottie = true;
                     mIllustrationLottie.setContentDescription(
@@ -604,39 +613,48 @@
                                     0
                             )
                     );
-                    configureEnrollmentStage(R.raw.sfps_lottie_no_animation);
+                    configureEnrollmentStage(mSfpsEnrollmentFeature
+                            .getSfpsEnrollLottiePerStage(SFPS_STAGE_NO_ANIMATION));
                 }
                 break;
 
             case SFPS_STAGE_CENTER:
-                setHeaderText(R.string.security_settings_sfps_enroll_finger_center_title);
+                setHeaderText(mSfpsEnrollmentFeature
+                        .getFeaturedStageHeaderResource(SFPS_STAGE_CENTER));
                 if (!mHaveShownSfpsCenterLottie && mIllustrationLottie != null) {
                     mHaveShownSfpsCenterLottie = true;
-                    configureEnrollmentStage(R.raw.sfps_lottie_pad_center);
+                    configureEnrollmentStage(mSfpsEnrollmentFeature
+                            .getSfpsEnrollLottiePerStage(SFPS_STAGE_CENTER));
                 }
                 break;
 
             case SFPS_STAGE_FINGERTIP:
-                setHeaderText(R.string.security_settings_sfps_enroll_fingertip_title);
+                setHeaderText(mSfpsEnrollmentFeature
+                        .getFeaturedStageHeaderResource(SFPS_STAGE_FINGERTIP));
                 if (!mHaveShownSfpsTipLottie && mIllustrationLottie != null) {
                     mHaveShownSfpsTipLottie = true;
-                    configureEnrollmentStage(R.raw.sfps_lottie_tip);
+                    configureEnrollmentStage(mSfpsEnrollmentFeature
+                            .getSfpsEnrollLottiePerStage(SFPS_STAGE_FINGERTIP));
                 }
                 break;
 
             case SFPS_STAGE_LEFT_EDGE:
-                setHeaderText(R.string.security_settings_sfps_enroll_left_edge_title);
+                setHeaderText(mSfpsEnrollmentFeature
+                        .getFeaturedStageHeaderResource(SFPS_STAGE_LEFT_EDGE));
                 if (!mHaveShownSfpsLeftEdgeLottie && mIllustrationLottie != null) {
                     mHaveShownSfpsLeftEdgeLottie = true;
-                    configureEnrollmentStage(R.raw.sfps_lottie_left_edge);
+                    configureEnrollmentStage(mSfpsEnrollmentFeature
+                            .getSfpsEnrollLottiePerStage(SFPS_STAGE_LEFT_EDGE));
                 }
                 break;
 
             case SFPS_STAGE_RIGHT_EDGE:
-                setHeaderText(R.string.security_settings_sfps_enroll_right_edge_title);
+                setHeaderText(mSfpsEnrollmentFeature
+                        .getFeaturedStageHeaderResource(SFPS_STAGE_RIGHT_EDGE));
                 if (!mHaveShownSfpsRightEdgeLottie && mIllustrationLottie != null) {
                     mHaveShownSfpsRightEdgeLottie = true;
-                    configureEnrollmentStage(R.raw.sfps_lottie_right_edge);
+                    configureEnrollmentStage(mSfpsEnrollmentFeature
+                            .getSfpsEnrollLottiePerStage(SFPS_STAGE_RIGHT_EDGE));
                 }
                 break;
 
@@ -661,11 +679,16 @@
             setDescriptionText("");
         }
         LottieCompositionFactory.fromRawRes(this, lottie)
-                .addListener((c) -> {
-                    mIllustrationLottie.setComposition(c);
-                    mIllustrationLottie.setVisibility(View.VISIBLE);
-                    mIllustrationLottie.playAnimation();
-                });
+                .addListener((c) -> onLottieComposition(mIllustrationLottie, c));
+    }
+
+    private void onLottieComposition(LottieAnimationView view, LottieComposition composition) {
+        if (view == null || composition == null) {
+            return;
+        }
+        view.setComposition(composition);
+        view.setVisibility(View.VISIBLE);
+        view.playAnimation();
     }
 
     @EnrollStage
@@ -695,17 +718,8 @@
         }
 
         final int progressSteps = mSidecar.getEnrollmentSteps() - mSidecar.getEnrollmentRemaining();
-        if (progressSteps < getStageThresholdSteps(0)) {
-            return SFPS_STAGE_NO_ANIMATION;
-        } else if (progressSteps < getStageThresholdSteps(1)) {
-            return SFPS_STAGE_CENTER;
-        } else if (progressSteps < getStageThresholdSteps(2)) {
-            return SFPS_STAGE_FINGERTIP;
-        } else if (progressSteps < getStageThresholdSteps(3)) {
-            return SFPS_STAGE_LEFT_EDGE;
-        } else {
-            return SFPS_STAGE_RIGHT_EDGE;
-        }
+        return mSfpsEnrollmentFeature
+                .getCurrentSfpsEnrollStage(progressSteps, this::getStageThresholdSteps);
     }
 
     private boolean isStageHalfCompleted() {
@@ -736,22 +750,31 @@
             Log.w(TAG, "getStageThresholdSteps: Enrollment not started yet");
             return 1;
         }
-        return Math.round(mSidecar.getEnrollmentSteps()
-                * mFingerprintManager.getEnrollStageThreshold(index));
+        final float threshold = mCanAssumeSfps
+                ? mSfpsEnrollmentFeature.getEnrollStageThreshold(this, index)
+                : mFingerprintManager.getEnrollStageThreshold(index);
+        return Math.round(mSidecar.getEnrollmentSteps() * threshold);
     }
 
     @Override
     public void onEnrollmentHelp(int helpMsgId, CharSequence helpString) {
-        if (!TextUtils.isEmpty(helpString)) {
+        final CharSequence featuredString = mCanAssumeSfps
+                ? mSfpsEnrollmentFeature.getFeaturedVendorString(this, helpMsgId, helpString)
+                : helpString;
+
+        if (!TextUtils.isEmpty(featuredString)) {
             if (!(mCanAssumeUdfps || mCanAssumeSfps)) {
                 mErrorText.removeCallbacks(mTouchAgainRunnable);
             }
-            showError(helpString);
+            showError(featuredString);
 
             if (mUdfpsEnrollHelper != null) mUdfpsEnrollHelper.onEnrollmentHelp();
         }
 
         dismissTouchDialogIfSfps();
+        if (mCanAssumeSfps) {
+            mSfpsEnrollmentFeature.handleOnEnrollmentHelp(helpMsgId, featuredString, () -> this);
+        }
     }
 
     @Override
@@ -1166,4 +1189,28 @@
             return SettingsEnums.DIALOG_FINGERPRINT_ICON_TOUCH;
         }
     }
-}
\ No newline at end of file
+
+    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);
+        }
+    }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java
index c207ec9..276845c 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.biometrics.fingerprint;
 
+import static android.text.Layout.HYPHENATION_FREQUENCY_NORMAL;
+
 import android.app.settings.SettingsEnums;
 import android.content.Intent;
 import android.content.res.Configuration;
@@ -23,21 +25,27 @@
 import android.hardware.fingerprint.FingerprintManager;
 import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
 import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
 import android.util.Log;
 import android.view.OrientationEventListener;
 import android.view.Surface;
 import android.view.View;
-import android.view.View.OnClickListener;
 import android.view.accessibility.AccessibilityManager;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
+import androidx.lifecycle.Observer;
 
 import com.android.settings.R;
 import com.android.settings.Utils;
 import com.android.settings.biometrics.BiometricEnrollBase;
 import com.android.settings.biometrics.BiometricEnrollSidecar;
 import com.android.settings.biometrics.BiometricUtils;
+import com.android.settings.biometrics.fingerprint.UdfpsEnrollCalibrator.Result;
+import com.android.settings.biometrics.fingerprint.UdfpsEnrollCalibrator.Status;
+import com.android.settings.flags.Flags;
+import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.password.ChooseLockSettingsHelper;
 import com.android.settingslib.widget.LottieColorUtils;
 import com.android.systemui.unfold.compat.ScreenSizeFoldProvider;
@@ -48,6 +56,7 @@
 import com.google.android.setupcompat.template.FooterButton;
 
 import java.util.List;
+import java.util.UUID;
 
 /**
  * Activity explaining the fingerprint sensor location for fingerprint enrollment.
@@ -74,6 +83,10 @@
     private ScreenSizeFoldProvider mScreenSizeFoldProvider;
     private boolean mIsFolded;
     private boolean mIsReverseDefaultRotation;
+    @Nullable
+    private UdfpsEnrollCalibrator mCalibrator;
+    @Nullable
+    private Observer<Status> mCalibratorStatusObserver;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -98,20 +111,13 @@
                         .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
                         .build()
         );
+        getLayout().getHeaderTextView().setHyphenationFrequency(HYPHENATION_FREQUENCY_NORMAL);
 
         listenOrientationEvent();
 
         if (mCanAssumeUdfps) {
             setHeaderText(R.string.security_settings_udfps_enroll_find_sensor_title);
             setDescriptionText(R.string.security_settings_udfps_enroll_find_sensor_message);
-            mFooterBarMixin.setPrimaryButton(
-                    new FooterButton.Builder(this)
-                    .setText(R.string.security_settings_udfps_enroll_find_sensor_start_button)
-                    .setListener(this::onStartButtonClick)
-                    .setButtonType(FooterButton.ButtonType.NEXT)
-                    .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
-                    .build()
-            );
 
             mIllustrationLottie = findViewById(R.id.illustration_lottie);
             AccessibilityManager am = getSystemService(AccessibilityManager.class);
@@ -164,12 +170,20 @@
 
         mAnimation = null;
         if (mCanAssumeUdfps) {
-            mIllustrationLottie.setOnClickListener(new OnClickListener() {
-                @Override
-                public void onClick(View v) {
-                    onStartButtonClick(v);
+            if (Flags.udfpsEnrollCalibration()) {
+                mCalibrator = FeatureFactory.getFeatureFactory().getFingerprintFeatureProvider()
+                        .getUdfpsEnrollCalibrator(
+                                (savedInstanceState != null)
+                                ? savedInstanceState.getParcelable(KEY_CALIBRATOR_UUID, UUID.class)
+                                : getIntent().getSerializableExtra(KEY_CALIBRATOR_UUID, UUID.class)
+                        );
+                if (mCalibrator == null
+                        || mCalibrator.getStatusLiveData().getValue() == Status.FINISHED) {
+                    enableUdfpsLottieAndNextButton();
                 }
-            });
+            } else {
+                enableUdfpsLottieAndNextButton();
+            }
         } else if (!mCanAssumeSfps) {
             View animationView = findViewById(R.id.fingerprint_sensor_location_animation);
             if (animationView instanceof FingerprintFindSensorAnimation) {
@@ -178,6 +192,20 @@
         }
     }
 
+    private void enableUdfpsLottieAndNextButton() {
+        mFooterBarMixin.setPrimaryButton(
+                new FooterButton.Builder(this)
+                        .setText(R.string.security_settings_udfps_enroll_find_sensor_start_button)
+                        .setListener(this::onStartButtonClick)
+                        .setButtonType(FooterButton.ButtonType.NEXT)
+                        .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
+                        .build()
+        );
+        if (mIllustrationLottie != null) {
+            mIllustrationLottie.setOnClickListener(this::onStartButtonClick);
+        }
+    }
+
     private int getRotationFromDefault(int rotation) {
         if (mIsReverseDefaultRotation) {
             return (rotation + 1) % 4;
@@ -255,6 +283,11 @@
     protected void onSaveInstanceState(Bundle outState) {
         super.onSaveInstanceState(outState);
         outState.putBoolean(SAVED_STATE_IS_NEXT_CLICKED, mNextClicked);
+        if (Flags.udfpsEnrollCalibration()) {
+            if (mCalibrator != null) {
+                outState.putSerializable(KEY_CALIBRATOR_UUID, mCalibrator.getUuid());
+            }
+        }
     }
 
     @Override
@@ -284,6 +317,39 @@
         if (mAnimation != null) {
             mAnimation.startAnimation();
         }
+        if (Flags.udfpsEnrollCalibration()) {
+            if (mCalibrator != null) {
+                final Status current = mCalibrator.getStatusLiveData().getValue();
+                if (current == Status.PROCESSING) {
+                    if (mCalibratorStatusObserver == null) {
+                        mCalibratorStatusObserver = status -> {
+                            if (status == Status.GOT_RESULT) {
+                                onGotCalibrationResult();
+                            }
+                        };
+                    }
+                    mCalibrator.getStatusLiveData().observe(this, mCalibratorStatusObserver);
+                } else if (current == Status.GOT_RESULT) {
+                    onGotCalibrationResult();
+                }
+            }
+        }
+    }
+
+    private void onGotCalibrationResult() {
+        if (Flags.udfpsEnrollCalibration()) {
+            if (mCalibrator != null) {
+                mCalibrator.setFinished();
+                if (mCalibrator.getResult() == Result.NEED_CALIBRATION) {
+                    UdfpsEnrollCalibrationDialog.newInstance(
+                            mCalibrator.getCalibrationDialogTitleTextId(),
+                            mCalibrator.getCalibrationDialogMessageTextId(),
+                            mCalibrator.getCalibrationDialogDismissButtonTextId()
+                    ).show(getSupportFragmentManager(), "findsensor-calibration-dialog");
+                }
+            }
+            new Handler(Looper.getMainLooper()).post(this::enableUdfpsLottieAndNextButton);
+        }
     }
 
     private void stopLookingForFingerprint() {
@@ -341,6 +407,12 @@
         if (mAnimation != null) {
             mAnimation.pauseAnimation();
         }
+        if (Flags.udfpsEnrollCalibration()) {
+            if (mCalibrator != null && mCalibratorStatusObserver != null) {
+                mCalibrator.getStatusLiveData().removeObserver(mCalibratorStatusObserver);
+                mCalibratorStatusObserver = null;
+            }
+        }
     }
 
     @Override
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java
index df23a5c..dc3c65e 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java
@@ -45,6 +45,8 @@
 import com.android.settings.biometrics.BiometricUtils;
 import com.android.settings.biometrics.GatekeeperPasswordProvider;
 import com.android.settings.biometrics.MultiBiometricEnrollHelper;
+import com.android.settings.flags.Flags;
+import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.password.ChooseLockSettingsHelper;
 import com.android.settingslib.HelpUtils;
 import com.android.settingslib.RestrictedLockUtilsInternal;
@@ -55,6 +57,7 @@
 import com.google.android.setupdesign.util.DeviceHelper;
 
 import java.util.List;
+import java.util.UUID;
 
 public class FingerprintEnrollIntroduction extends BiometricEnrollIntroduction {
 
@@ -67,6 +70,8 @@
 
     private DevicePolicyManager mDevicePolicyManager;
     private boolean mCanAssumeUdfps;
+    @Nullable
+    private UdfpsEnrollCalibrator mCalibrator;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -85,6 +90,16 @@
 
         mDevicePolicyManager = getSystemService(DevicePolicyManager.class);
 
+        if (Flags.udfpsEnrollCalibration()) {
+            mCalibrator = FeatureFactory.getFeatureFactory().getFingerprintFeatureProvider()
+                    .getUdfpsEnrollCalibrator(
+                            (savedInstanceState != null)
+                                    ? savedInstanceState.getParcelable(
+                                        KEY_CALIBRATOR_UUID, UUID.class)
+                                    : null
+                        );
+        }
+
         final ImageView iconFingerprint = findViewById(R.id.icon_fingerprint);
         final ImageView iconDeviceLocked = findViewById(R.id.icon_device_locked);
         final ImageView iconTrashCan = findViewById(R.id.icon_trash_can);
@@ -156,6 +171,16 @@
     }
 
     @Override
+    protected void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        if (Flags.udfpsEnrollCalibration()) {
+            if (mCalibrator != null) {
+                outState.putSerializable(KEY_CALIBRATOR_UUID, mCalibrator.getUuid());
+            }
+        }
+    }
+
+    @Override
     protected void initViews() {
         setDescriptionText(getString(
                 R.string.security_settings_fingerprint_enroll_introduction_v3_message,
@@ -364,6 +389,11 @@
             intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE,
                     BiometricUtils.getGatekeeperPasswordHandle(getIntent()));
         }
+        if (Flags.udfpsEnrollCalibration()) {
+            if (mCalibrator != null) {
+                intent.putExtra(KEY_CALIBRATOR_UUID, mCalibrator.getUuid());
+            }
+        }
         return intent;
     }
 
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintFeatureProvider.java b/src/com/android/settings/biometrics/fingerprint/FingerprintFeatureProvider.java
new file mode 100644
index 0000000..5a2bf8b
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintFeatureProvider.java
@@ -0,0 +1,39 @@
+/*
+ * 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.fingerprint;
+
+import androidx.annotation.Nullable;
+
+import com.android.settings.biometrics.fingerprint.feature.SfpsEnrollmentFeature;
+
+import java.util.UUID;
+
+public interface FingerprintFeatureProvider {
+    /**
+     * Gets the feature implementation of SFPS enrollment.
+     * @return the feature implementation
+     */
+    SfpsEnrollmentFeature getSfpsEnrollmentFeature();
+
+    /**
+     * Gets calibrator to calibrate the FPS before enrolling udfps
+     * @param uuid unique id for passed between different activities
+     * @return udfps calibrator
+     */
+    @Nullable
+    UdfpsEnrollCalibrator getUdfpsEnrollCalibrator(@Nullable UUID uuid);
+}
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintFeatureProviderImpl.java b/src/com/android/settings/biometrics/fingerprint/FingerprintFeatureProviderImpl.java
new file mode 100644
index 0000000..1baabc6
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintFeatureProviderImpl.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.biometrics.fingerprint;
+
+import androidx.annotation.Nullable;
+
+import com.android.settings.biometrics.fingerprint.feature.SfpsEnrollmentFeature;
+import com.android.settings.biometrics.fingerprint.feature.SfpsEnrollmentFeatureImpl;
+
+import java.util.UUID;
+
+public class FingerprintFeatureProviderImpl implements FingerprintFeatureProvider {
+
+    @Nullable
+    private SfpsEnrollmentFeature mSfpsEnrollmentFeatureImpl = null;
+
+    @Override
+    public SfpsEnrollmentFeature getSfpsEnrollmentFeature() {
+        if (mSfpsEnrollmentFeatureImpl == null) {
+            mSfpsEnrollmentFeatureImpl = new SfpsEnrollmentFeatureImpl();
+        }
+        return mSfpsEnrollmentFeatureImpl;
+    }
+
+    @Nullable
+    @Override
+    public UdfpsEnrollCalibrator getUdfpsEnrollCalibrator(@Nullable UUID uuid) {
+        return null;
+    }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
index e5d9dd8..308b3d5 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
@@ -60,7 +60,7 @@
 import androidx.preference.PreferenceGroup;
 import androidx.preference.PreferenceScreen;
 import androidx.preference.PreferenceViewHolder;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.internal.widget.LockPatternUtils;
 import com.android.settings.R;
@@ -77,6 +77,7 @@
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.password.ChooseLockGeneric;
 import com.android.settings.password.ChooseLockSettingsHelper;
+import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settingslib.HelpUtils;
 import com.android.settingslib.RestrictedLockUtils;
 import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
@@ -84,6 +85,7 @@
 import com.android.settingslib.RestrictedSwitchPreference;
 import com.android.settingslib.activityembedding.ActivityEmbeddingUtils;
 import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settingslib.search.SearchIndexable;
 import com.android.settingslib.transition.SettingsTransitionHelper;
 import com.android.settingslib.widget.FooterPreference;
 import com.android.settingslib.widget.TwoTargetPreference;
@@ -146,12 +148,47 @@
         return manager != null && isHardwareDetected;
     }
 
+
     /**
      *
      */
+    @SearchIndexable
     public static class FingerprintSettingsFragment extends DashboardFragment
             implements OnPreferenceChangeListener, FingerprintPreference.OnDeleteClickListener {
 
+        public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+                new BaseSearchIndexProvider(R.xml.security_settings_fingerprint) {
+                    @Override
+                    public List<AbstractPreferenceController>
+                            createPreferenceControllers(Context context) {
+                        return createThePreferenceControllers(context);
+                    }
+                };
+
+        private static List<AbstractPreferenceController> createThePreferenceControllers(Context
+                context) {
+            final List<AbstractPreferenceController> controllers = new ArrayList<>();
+            FingerprintManager manager = Utils.getFingerprintManagerOrNull(context);
+            if (manager == null || !manager.isHardwareDetected()) {
+                return null;
+            }
+            if (manager.isPowerbuttonFps()) {
+                controllers.add(
+                        new FingerprintUnlockCategoryController(
+                                context,
+                                KEY_FINGERPRINT_UNLOCK_CATEGORY
+                        ));
+                controllers.add(
+                        new FingerprintSettingsRequireScreenOnToAuthPreferenceController(
+                                context,
+                                KEY_REQUIRE_SCREEN_ON_TO_AUTH
+                        ));
+            }
+            controllers.add(new FingerprintsEnrolledCategoryPreferenceController(context,
+                    KEY_FINGERPRINTS_ENROLLED_CATEGORY));
+            return controllers;
+        }
+
         private static class FooterColumn {
             CharSequence mTitle = null;
             CharSequence mLearnMoreOverrideText = null;
@@ -615,7 +652,7 @@
                     mRequireScreenOnToAuthPreferenceController.isChecked());
             mRequireScreenOnToAuthPreference.setOnPreferenceChangeListener(
                     (preference, newValue) -> {
-                        final boolean isChecked = ((SwitchPreference) preference).isChecked();
+                        final boolean isChecked = ((TwoStatePreference) preference).isChecked();
                         mRequireScreenOnToAuthPreferenceController.setChecked(!isChecked);
                         return true;
                     });
@@ -741,7 +778,7 @@
                 // If it's in split mode, show the error dialog and don't need to show adding
                 // fingerprint intent.
                 final boolean isActivityEmbedded = ActivityEmbeddingUtils.isActivityEmbedded(
-                                getActivity());
+                        getActivity());
                 if (getActivity().isInMultiWindowMode() && !isActivityEmbedded) {
                     BiometricsSplitScreenDialog.newInstance(TYPE_FINGERPRINT).show(
                             getActivity().getSupportFragmentManager(),
@@ -847,20 +884,20 @@
         }
 
         private List<AbstractPreferenceController> buildPreferenceControllers(Context context) {
-            final List<AbstractPreferenceController> controllers = new ArrayList<>();
+            final List<AbstractPreferenceController> controllers =
+                    createThePreferenceControllers(context);
             if (isSfps()) {
-                mFingerprintUnlockCategoryPreferenceController =
-                    new FingerprintUnlockCategoryController(
-                        context,
-                        KEY_FINGERPRINT_UNLOCK_CATEGORY
-                    );
-                mRequireScreenOnToAuthPreferenceController =
-                        new FingerprintSettingsRequireScreenOnToAuthPreferenceController(
-                                context,
-                                KEY_REQUIRE_SCREEN_ON_TO_AUTH
-                        );
-                controllers.add(mFingerprintUnlockCategoryPreferenceController);
-                controllers.add(mRequireScreenOnToAuthPreferenceController);
+                for (AbstractPreferenceController controller : controllers) {
+                    if (controller.getPreferenceKey() == KEY_FINGERPRINT_UNLOCK_CATEGORY) {
+                        mFingerprintUnlockCategoryPreferenceController =
+                                (FingerprintUnlockCategoryController) controller;
+                    } else if (controller.getPreferenceKey() == KEY_REQUIRE_SCREEN_ON_TO_AUTH) {
+                        mRequireScreenOnToAuthPreferenceController =
+                                (FingerprintSettingsRequireScreenOnToAuthPreferenceController)
+                                        controller;
+                    }
+
+                }
             }
             return controllers;
         }
@@ -1362,12 +1399,14 @@
             super.onBindViewHolder(view);
             mView = view.itemView;
             mDeleteView = view.itemView.findViewById(R.id.delete_button);
-            mDeleteView.setOnClickListener(new View.OnClickListener() {
-                @Override
-                public void onClick(View v) {
-                    if (mOnDeleteClickListener != null) {
-                        mOnDeleteClickListener.onDeleteClick(FingerprintPreference.this);
-                    }
+            if (mFingerprint != null) {
+                mDeleteView.setContentDescription(
+                        mDeleteView.getContentDescription()
+                                + " " + mFingerprint.getName().toString());
+            }
+            mDeleteView.setOnClickListener(v -> {
+                if (mOnDeleteClickListener != null) {
+                    mOnDeleteClickListener.onDeleteClick(FingerprintPreference.this);
                 }
             });
         }
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsRequireScreenOnToAuthPreferenceController.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsRequireScreenOnToAuthPreferenceController.java
index 006f73b..61ec54b 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsRequireScreenOnToAuthPreferenceController.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsRequireScreenOnToAuthPreferenceController.java
@@ -24,7 +24,6 @@
 import androidx.preference.Preference;
 
 import com.android.internal.annotations.VisibleForTesting;
-import com.android.settings.R;
 import com.android.settings.Utils;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settingslib.search.SearchIndexable;
@@ -108,6 +107,10 @@
         return UserHandle.of(getUserId()).getIdentifier();
     }
 
+    /**
+     * This feature is not directly searchable.
+     */
     public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider(R.xml.security_settings_fingerprint) {};
+            new BaseSearchIndexProvider() {};
+
 }
diff --git a/src/com/android/settings/biometrics/fingerprint/UdfpsEnrollCalibrationDialog.kt b/src/com/android/settings/biometrics/fingerprint/UdfpsEnrollCalibrationDialog.kt
new file mode 100644
index 0000000..892996a
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint/UdfpsEnrollCalibrationDialog.kt
@@ -0,0 +1,58 @@
+/*
+ * 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.fingerprint
+
+import android.app.Dialog
+import android.content.DialogInterface
+import android.os.Bundle
+import androidx.annotation.StringRes
+import androidx.appcompat.app.AlertDialog
+import androidx.fragment.app.DialogFragment
+import com.android.settings.R
+
+class UdfpsEnrollCalibrationDialog : DialogFragment() {
+
+    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog =
+            AlertDialog.Builder(requireActivity(), R.style.Theme_AlertDialog)
+                    .setTitle(arguments!!.getInt(KEY_TITLE_TEXT_ID))
+                    .setMessage(arguments!!.getInt(KEY_MESSAGE_TEXT_ID))
+                    .setPositiveButton(arguments!!.getInt(KEY_DISMISS_BUTTON_TEXT_ID)) {
+                        dialog: DialogInterface?, _: Int -> dialog?.dismiss()
+                    }
+                    .create().also {
+                        isCancelable = false
+                    }
+
+    companion object {
+
+        private const val KEY_TITLE_TEXT_ID = "title_text_id"
+        private const val KEY_MESSAGE_TEXT_ID = "message_text_id"
+        private const val KEY_DISMISS_BUTTON_TEXT_ID = "dismiss_button_text_id"
+
+        @JvmStatic
+        fun newInstance(
+                @StringRes titleTextId: Int,
+                @StringRes messageTextId: Int,
+                @StringRes dismissButtonTextId: Int
+        ) = UdfpsEnrollCalibrationDialog().apply {
+            arguments = Bundle().apply {
+                putInt(KEY_TITLE_TEXT_ID, titleTextId)
+                putInt(KEY_MESSAGE_TEXT_ID, messageTextId)
+                putInt(KEY_DISMISS_BUTTON_TEXT_ID, dismissButtonTextId)
+            }
+        }
+    }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint/UdfpsEnrollCalibrator.kt b/src/com/android/settings/biometrics/fingerprint/UdfpsEnrollCalibrator.kt
new file mode 100644
index 0000000..c0626d3
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint/UdfpsEnrollCalibrator.kt
@@ -0,0 +1,36 @@
+package com.android.settings.biometrics.fingerprint
+
+import androidx.annotation.StringRes
+import androidx.lifecycle.LiveData
+import java.util.UUID
+
+interface UdfpsEnrollCalibrator {
+
+    enum class Status {
+        PROCESSING,
+        GOT_RESULT,
+        FINISHED,
+    }
+
+    enum class Result {
+        NEED_CALIBRATION,
+        NO_NEED_CALIBRATION,
+    }
+
+    val uuid: UUID
+
+    val statusLiveData: LiveData<Status>
+
+    val result: Result?
+
+    fun setFinished()
+
+    @get:StringRes
+    val calibrationDialogTitleTextId: Int
+
+    @get:StringRes
+    val calibrationDialogMessageTextId: Int
+
+    @get:StringRes
+    val calibrationDialogDismissButtonTextId: Int
+}
\ No newline at end of file
diff --git a/src/com/android/settings/biometrics/fingerprint/UdfpsEnrollHelper.java b/src/com/android/settings/biometrics/fingerprint/UdfpsEnrollHelper.java
index 70fdbf0..0bfb87d 100644
--- a/src/com/android/settings/biometrics/fingerprint/UdfpsEnrollHelper.java
+++ b/src/com/android/settings/biometrics/fingerprint/UdfpsEnrollHelper.java
@@ -76,6 +76,8 @@
 
     private int mCenterTouchCount = 0;
 
+    private int mPace = 1;
+
     @Nullable
     UdfpsEnrollHelper.Listener mListener;
 
@@ -157,6 +159,9 @@
             }
         }
 
+        if (mRemainingSteps > remaining) {
+            mPace = mRemainingSteps - remaining;
+        }
         mRemainingSteps = remaining;
 
         if (mListener != null && mTotalSteps != -1) {
@@ -258,7 +263,7 @@
             return false;
         }
 
-        return mRemainingSteps <= 2 && mRemainingSteps >= 0;
+        return mRemainingSteps <= mPace && mRemainingSteps >= 0;
     }
 
     private int getStageThresholdSteps(int totalSteps, int stageIndex) {
diff --git a/src/com/android/settings/biometrics/fingerprint/feature/SfpsEnrollmentFeature.java b/src/com/android/settings/biometrics/fingerprint/feature/SfpsEnrollmentFeature.java
new file mode 100644
index 0000000..a1a18e5
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint/feature/SfpsEnrollmentFeature.java
@@ -0,0 +1,79 @@
+/*
+ * 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.fingerprint.feature;
+
+import android.content.Context;
+
+import androidx.annotation.NonNull;
+
+import com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling;
+
+import java.util.function.Function;
+import java.util.function.Supplier;
+
+public interface SfpsEnrollmentFeature {
+
+    /**
+     * Gets current SFPS enrollment stage.
+     * @param progressSteps current step of enrollment
+     * @param mapper a mapper to map each stage to its threshold
+     * @return current enrollment stage
+     */
+    int getCurrentSfpsEnrollStage(int progressSteps, Function<Integer, Integer> mapper);
+
+    /**
+     * Gets the vendor string by feature.
+     * @param context Context
+     * @param id An integer identifying the error message
+     * @param msg A human-readable string that can be shown in UI
+     * @return A human-readable string of specific feature
+     */
+    default CharSequence getFeaturedVendorString(Context context, int id, CharSequence msg) {
+        return msg;
+    }
+
+    /**
+     * Gets the stage header string by feature.
+     * @param stage the specific stage
+     * @return the resource id of the header text of the specific stage
+     */
+    int getFeaturedStageHeaderResource(int stage);
+
+    /**
+     * Gets the enrollment lottie resource id per stage
+     * @param stage current enrollment stage
+     * @return enrollment lottie resource id
+     */
+    int getSfpsEnrollLottiePerStage(int stage);
+
+    /**
+     * Handles extra stuffs on receiving enrollment help.
+     * @param helpMsgId help message id
+     * @param helpString help message
+     * @param enrollingSupplier supplier of enrolling context
+     */
+    default void handleOnEnrollmentHelp(int helpMsgId, CharSequence helpString,
+            Supplier<FingerprintEnrollEnrolling> enrollingSupplier) {}
+
+    /**
+     * Gets the fingerprint enrollment threshold.
+     * @param context context
+     * @param index the enrollment stage index
+     * @return threshold
+     */
+    float getEnrollStageThreshold(@NonNull Context context, int index);
+}
diff --git a/src/com/android/settings/biometrics/fingerprint/feature/SfpsEnrollmentFeatureImpl.java b/src/com/android/settings/biometrics/fingerprint/feature/SfpsEnrollmentFeatureImpl.java
new file mode 100644
index 0000000..5a97537
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint/feature/SfpsEnrollmentFeatureImpl.java
@@ -0,0 +1,91 @@
+/*
+ * 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.fingerprint.feature;
+
+import static com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling.SFPS_STAGE_CENTER;
+import static com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling.SFPS_STAGE_FINGERTIP;
+import static com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling.SFPS_STAGE_LEFT_EDGE;
+import static com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling.SFPS_STAGE_NO_ANIMATION;
+import static com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling.SFPS_STAGE_RIGHT_EDGE;
+import static com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling.STAGE_UNKNOWN;
+
+import android.content.Context;
+import android.hardware.fingerprint.FingerprintManager;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import com.android.settings.R;
+
+import java.util.function.Function;
+
+public class SfpsEnrollmentFeatureImpl implements SfpsEnrollmentFeature {
+
+    @Nullable
+    private FingerprintManager mFingerprintManager = null;
+
+    @Override
+    public int getCurrentSfpsEnrollStage(int progressSteps, Function<Integer, Integer> mapper) {
+        if (mapper == null) {
+            return STAGE_UNKNOWN;
+        }
+        if (progressSteps < mapper.apply(0)) {
+            return SFPS_STAGE_NO_ANIMATION;
+        } else if (progressSteps < mapper.apply(1)) {
+            return SFPS_STAGE_CENTER;
+        } else if (progressSteps < mapper.apply(2)) {
+            return SFPS_STAGE_FINGERTIP;
+        } else if (progressSteps < mapper.apply(3)) {
+            return SFPS_STAGE_LEFT_EDGE;
+        } else {
+            return SFPS_STAGE_RIGHT_EDGE;
+        }
+    }
+
+    @Override
+    public int getFeaturedStageHeaderResource(int stage) {
+        return switch (stage) {
+            case SFPS_STAGE_NO_ANIMATION
+                    -> R.string.security_settings_fingerprint_enroll_repeat_title;
+            case SFPS_STAGE_CENTER -> R.string.security_settings_sfps_enroll_finger_center_title;
+            case SFPS_STAGE_FINGERTIP -> R.string.security_settings_sfps_enroll_fingertip_title;
+            case SFPS_STAGE_LEFT_EDGE -> R.string.security_settings_sfps_enroll_left_edge_title;
+            case SFPS_STAGE_RIGHT_EDGE -> R.string.security_settings_sfps_enroll_right_edge_title;
+            default -> throw new IllegalArgumentException("Invalid stage: " + stage);
+        };
+    }
+
+    @Override
+    public int getSfpsEnrollLottiePerStage(int stage) {
+        return switch (stage) {
+            case SFPS_STAGE_NO_ANIMATION -> R.raw.sfps_lottie_no_animation;
+            case SFPS_STAGE_CENTER -> R.raw.sfps_lottie_pad_center;
+            case SFPS_STAGE_FINGERTIP -> R.raw.sfps_lottie_tip;
+            case SFPS_STAGE_LEFT_EDGE -> R.raw.sfps_lottie_left_edge;
+            case SFPS_STAGE_RIGHT_EDGE -> R.raw.sfps_lottie_right_edge;
+            default -> throw new IllegalArgumentException("Invalid stage: " + stage);
+        };
+    }
+
+    @Override
+    public float getEnrollStageThreshold(@NonNull Context context, int index) {
+        if (mFingerprintManager == null) {
+            mFingerprintManager = context.getSystemService(FingerprintManager.class);
+        }
+        return mFingerprintManager.getEnrollStageThreshold(index);
+    }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/conversion/Util.kt b/src/com/android/settings/biometrics/fingerprint2/conversion/Util.kt
index 98b7ed0..58ef509 100644
--- a/src/com/android/settings/biometrics/fingerprint2/conversion/Util.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/conversion/Util.kt
@@ -16,14 +16,61 @@
 
 package com.android.settings.biometrics.fingerprint2.conversion
 
+import android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ERROR_CANCELED
+import android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ERROR_UNABLE_TO_PROCESS
 import android.hardware.fingerprint.FingerprintManager
+import com.android.settings.R
 import com.android.settings.biometrics.fingerprint2.shared.model.EnrollReason
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollState
 
-class Util
-
-fun EnrollReason.toOriginalReason(): Int {
-  return when (this) {
-    EnrollReason.EnrollEnrolling -> FingerprintManager.ENROLL_ENROLL
-    EnrollReason.FindSensor -> FingerprintManager.ENROLL_FIND_SENSOR
+object Util {
+  fun EnrollReason.toOriginalReason(): Int {
+    return when (this) {
+      EnrollReason.EnrollEnrolling -> FingerprintManager.ENROLL_ENROLL
+      EnrollReason.FindSensor -> FingerprintManager.ENROLL_FIND_SENSOR
+    }
   }
+
+  fun Int.toEnrollError(isSetupWizard: Boolean): FingerEnrollState.EnrollError {
+    val errTitle =
+      when (this) {
+        FingerprintManager.FINGERPRINT_ERROR_TIMEOUT ->
+          R.string.security_settings_fingerprint_enroll_error_dialog_title
+        FingerprintManager.FINGERPRINT_ERROR_BAD_CALIBRATION ->
+          R.string.security_settings_fingerprint_bad_calibration_title
+        else -> R.string.security_settings_fingerprint_enroll_error_unable_to_process_dialog_title
+      }
+    val errString =
+      if (isSetupWizard) {
+        when (this) {
+          FingerprintManager.FINGERPRINT_ERROR_TIMEOUT ->
+            R.string.security_settings_fingerprint_enroll_error_dialog_title
+          FingerprintManager.FINGERPRINT_ERROR_BAD_CALIBRATION ->
+            R.string.security_settings_fingerprint_bad_calibration_title
+          else -> R.string.security_settings_fingerprint_enroll_error_unable_to_process_dialog_title
+        }
+      } else {
+        when (this) {
+          // This message happens when the underlying crypto layer
+          // decides to revoke the enrollment auth token
+          FingerprintManager.FINGERPRINT_ERROR_TIMEOUT ->
+            R.string.security_settings_fingerprint_enroll_error_timeout_dialog_message
+          FingerprintManager.FINGERPRINT_ERROR_BAD_CALIBRATION ->
+            R.string.security_settings_fingerprint_bad_calibration
+          FingerprintManager.FINGERPRINT_ERROR_UNABLE_TO_PROCESS ->
+            R.string.security_settings_fingerprint_enroll_error_unable_to_process_message
+          // There's nothing specific to tell the user about. Ask them to try again.
+          else -> R.string.security_settings_fingerprint_enroll_error_generic_dialog_message
+        }
+      }
+
+    return FingerEnrollState.EnrollError(
+      errTitle,
+      errString,
+      this == FINGERPRINT_ERROR_UNABLE_TO_PROCESS,
+      this == FINGERPRINT_ERROR_CANCELED,
+    )
+  }
+
 }
+
diff --git a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintManagerInteractorImpl.kt b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintManagerInteractorImpl.kt
index 5c9232f..984d04c 100644
--- a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintManagerInteractorImpl.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintManagerInteractorImpl.kt
@@ -24,12 +24,16 @@
 import android.os.CancellationSignal
 import android.util.Log
 import com.android.settings.biometrics.GatekeeperPasswordProvider
-import com.android.settings.biometrics.fingerprint2.conversion.toOriginalReason
+import com.android.settings.biometrics.fingerprint2.conversion.Util.toEnrollError
+import com.android.settings.biometrics.fingerprint2.conversion.Util.toOriginalReason
+import com.android.settings.biometrics.fingerprint2.shared.data.repository.PressToAuthProvider
 import com.android.settings.biometrics.fingerprint2.shared.domain.interactor.FingerprintManagerInteractor
 import com.android.settings.biometrics.fingerprint2.shared.model.EnrollReason
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollStateViewModel
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptViewModel
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintFlow
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollState
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
+import com.android.settings.biometrics.fingerprint2.shared.model.SetupWizard
 import com.android.settings.password.ChooseLockSettingsHelper
 import com.android.systemui.biometrics.shared.model.toFingerprintSensor
 import kotlin.coroutines.resume
@@ -38,9 +42,12 @@
 import kotlinx.coroutines.CoroutineDispatcher
 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.flow
+import kotlinx.coroutines.flow.update
 import kotlinx.coroutines.suspendCancellableCoroutine
 import kotlinx.coroutines.withContext
 
@@ -51,7 +58,8 @@
   private val backgroundDispatcher: CoroutineDispatcher,
   private val fingerprintManager: FingerprintManager,
   private val gatekeeperPasswordProvider: GatekeeperPasswordProvider,
-  private val pressToAuthProvider: () -> Boolean,
+  private val pressToAuthProvider: PressToAuthProvider,
+  private val fingerprintFlow: FingerprintFlow,
 ) : FingerprintManagerInteractor {
 
   private val maxFingerprints =
@@ -60,6 +68,8 @@
     )
   private val applicationContext = applicationContext.applicationContext
 
+  private val enrollRequestOutstanding = MutableStateFlow(false)
+
   override suspend fun generateChallenge(gateKeeperPasswordHandle: Long): Pair<Long, ByteArray> =
     suspendCoroutine {
       val callback = GenerateChallengeCallback { _, userId, challenge ->
@@ -75,11 +85,11 @@
       fingerprintManager.generateChallenge(applicationContext.userId, callback)
     }
 
-  override val enrolledFingerprints: Flow<List<FingerprintViewModel>> = flow {
+  override val enrolledFingerprints: Flow<List<FingerprintData>> = flow {
     emit(
       fingerprintManager
         .getEnrolledFingerprints(applicationContext.userId)
-        .map { (FingerprintViewModel(it.name.toString(), it.biometricId, it.deviceId)) }
+        .map { (FingerprintData(it.name.toString(), it.biometricId, it.deviceId)) }
         .toList()
     )
   }
@@ -103,28 +113,51 @@
   override suspend fun enroll(
     hardwareAuthToken: ByteArray?,
     enrollReason: EnrollReason,
-  ): Flow<FingerEnrollStateViewModel> = callbackFlow {
+  ): 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) {
-          trySend(FingerEnrollStateViewModel.EnrollProgress(remaining)).onFailure { error ->
+          // 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(FingerEnrollStateViewModel.EnrollHelp(helpMsgId, helpString.toString()))
+          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(FingerEnrollStateViewModel.EnrollError(errMsgId, errString.toString()))
+          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 }
         }
       }
 
@@ -140,12 +173,13 @@
       // 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()
       }
     }
   }
 
-  override suspend fun removeFingerprint(fp: FingerprintViewModel): Boolean = suspendCoroutine {
+  override suspend fun removeFingerprint(fp: FingerprintData): Boolean = suspendCoroutine {
     val callback =
       object : RemovalCallback() {
         override fun onRemovalError(
@@ -170,7 +204,7 @@
     )
   }
 
-  override suspend fun renameFingerprint(fp: FingerprintViewModel, newName: String) {
+  override suspend fun renameFingerprint(fp: FingerprintData, newName: String) {
     withContext(backgroundDispatcher) {
       fingerprintManager.rename(fp.fingerId, applicationContext.userId, newName)
     }
@@ -181,11 +215,11 @@
   }
 
   override suspend fun pressToAuthEnabled(): Boolean = suspendCancellableCoroutine {
-    it.resume(pressToAuthProvider())
+    it.resume(pressToAuthProvider.isEnabled)
   }
 
-  override suspend fun authenticate(): FingerprintAuthAttemptViewModel =
-    suspendCancellableCoroutine { c: CancellableContinuation<FingerprintAuthAttemptViewModel> ->
+  override suspend fun authenticate(): FingerprintAuthAttemptModel =
+    suspendCancellableCoroutine { c: CancellableContinuation<FingerprintAuthAttemptModel> ->
       val authenticationCallback =
         object : FingerprintManager.AuthenticationCallback() {
 
@@ -195,7 +229,7 @@
               Log.d(TAG, "framework sent down onAuthError after finish")
               return
             }
-            c.resume(FingerprintAuthAttemptViewModel.Error(errorCode, errString.toString()))
+            c.resume(FingerprintAuthAttemptModel.Error(errorCode, errString.toString()))
           }
 
           override fun onAuthenticationSucceeded(result: FingerprintManager.AuthenticationResult) {
@@ -204,7 +238,7 @@
               Log.d(TAG, "framework sent down onAuthError after finish")
               return
             }
-            c.resume(FingerprintAuthAttemptViewModel.Success(result.fingerprint?.biometricId ?: -1))
+            c.resume(FingerprintAuthAttemptModel.Success(result.fingerprint?.biometricId ?: -1))
           }
         }
 
diff --git a/src/com/android/settings/biometrics/fingerprint2/repository/PressToAuthProviderImpl.kt b/src/com/android/settings/biometrics/fingerprint2/repository/PressToAuthProviderImpl.kt
new file mode 100644
index 0000000..38c5335
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/repository/PressToAuthProviderImpl.kt
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.biometrics.fingerprint2.repository
+
+import android.content.Context
+import android.provider.Settings
+import com.android.settings.biometrics.fingerprint2.shared.data.repository.PressToAuthProvider
+
+class PressToAuthProviderImpl(val context: Context) : PressToAuthProvider {
+  override val isEnabled: Boolean
+    get() {
+      var toReturn: Int =
+        Settings.Secure.getIntForUser(
+          context.contentResolver,
+          Settings.Secure.SFPS_PERFORMANT_AUTH_ENABLED,
+          -1,
+          context.userId,
+        )
+      if (toReturn == -1) {
+        toReturn =
+          if (
+            context.resources.getBoolean(com.android.internal.R.bool.config_performantAuthDefault)
+          ) {
+            1
+          } else {
+            0
+          }
+        Settings.Secure.putIntForUser(
+          context.contentResolver,
+          Settings.Secure.SFPS_PERFORMANT_AUTH_ENABLED,
+          toReturn,
+          context.userId
+        )
+      }
+      return (toReturn == 1)
+    }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerprintViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/shared/data/repository/PressToAuthProvider.kt
similarity index 60%
copy from src/com/android/settings/biometrics/fingerprint2/shared/model/FingerprintViewModel.kt
copy to src/com/android/settings/biometrics/fingerprint2/shared/data/repository/PressToAuthProvider.kt
index db28e79..e776b9a 100644
--- a/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerprintViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/shared/data/repository/PressToAuthProvider.kt
@@ -14,21 +14,14 @@
  * limitations under the License.
  */
 
-package com.android.settings.biometrics.fingerprint2.shared.model
+package com.android.settings.biometrics.fingerprint2.shared.data.repository
 
-data class FingerprintViewModel(
-  val name: String,
-  val fingerId: Int,
-  val deviceId: Long,
-)
-
-sealed class FingerprintAuthAttemptViewModel {
-  data class Success(
-    val fingerId: Int,
-  ) : FingerprintAuthAttemptViewModel()
-
-  data class Error(
-    val error: Int,
-    val message: String,
-  ) : FingerprintAuthAttemptViewModel()
-}
+/**
+ * Interface that indicates if press to auth is on or off.
+ */
+interface PressToAuthProvider {
+    /**
+     * Indicates true if the PressToAuth feature is enabled, false otherwise.
+     */
+    val isEnabled: Boolean
+}
\ No newline at end of file
diff --git a/src/com/android/settings/biometrics/fingerprint2/shared/domain/interactor/FingerprintManagerInteractor.kt b/src/com/android/settings/biometrics/fingerprint2/shared/domain/interactor/FingerprintManagerInteractor.kt
index 7286715..94afa49 100644
--- a/src/com/android/settings/biometrics/fingerprint2/shared/domain/interactor/FingerprintManagerInteractor.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/shared/domain/interactor/FingerprintManagerInteractor.kt
@@ -17,9 +17,9 @@
 package com.android.settings.biometrics.fingerprint2.shared.domain.interactor
 
 import com.android.settings.biometrics.fingerprint2.shared.model.EnrollReason
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptViewModel
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollStateViewModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollState
 import com.android.systemui.biometrics.shared.model.FingerprintSensor
 import kotlinx.coroutines.flow.Flow
 
@@ -31,7 +31,7 @@
  */
 interface FingerprintManagerInteractor {
   /** Returns the list of current fingerprints. */
-  val enrolledFingerprints: Flow<List<FingerprintViewModel>>
+  val enrolledFingerprints: Flow<List<FingerprintData>>
 
   /** Returns the max enrollable fingerprints, note during SUW this might be 1 */
   val maxEnrollableFingerprints: Flow<Int>
@@ -43,7 +43,7 @@
   val sensorPropertiesInternal: Flow<FingerprintSensor?>
 
   /** Runs the authenticate flow */
-  suspend fun authenticate(): FingerprintAuthAttemptViewModel
+  suspend fun authenticate(): FingerprintAuthAttemptModel
 
   /**
    * Generates a challenge with the provided [gateKeeperPasswordHandle] and on success returns a
@@ -56,22 +56,22 @@
 
   /**
    * Runs [FingerprintManager.enroll] with the [hardwareAuthToken] and [EnrollReason] for this
-   * enrollment. Returning the [FingerEnrollStateViewModel] that represents this fingerprint
+   * enrollment. Returning the [FingerEnrollState] that represents this fingerprint
    * enrollment state.
    */
   suspend fun enroll(
-    hardwareAuthToken: ByteArray?,
-    enrollReason: EnrollReason,
-  ): Flow<FingerEnrollStateViewModel>
+      hardwareAuthToken: ByteArray?,
+      enrollReason: EnrollReason,
+  ): Flow<FingerEnrollState>
 
   /**
    * Removes the given fingerprint, returning true if it was successfully removed and false
    * otherwise
    */
-  suspend fun removeFingerprint(fp: FingerprintViewModel): Boolean
+  suspend fun removeFingerprint(fp: FingerprintData): Boolean
 
   /** Renames the given fingerprint if one exists */
-  suspend fun renameFingerprint(fp: FingerprintViewModel, newName: String)
+  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/shared/model/EnrollReasonViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/shared/model/EnrollReason.kt
similarity index 100%
rename from src/com/android/settings/biometrics/fingerprint2/shared/model/EnrollReasonViewModel.kt
rename to src/com/android/settings/biometrics/fingerprint2/shared/model/EnrollReason.kt
diff --git a/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerEnrollStateViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerEnrollState.kt
similarity index 73%
rename from src/com/android/settings/biometrics/fingerprint2/shared/model/FingerEnrollStateViewModel.kt
rename to src/com/android/settings/biometrics/fingerprint2/shared/model/FingerEnrollState.kt
index 179ac60..4766d59 100644
--- a/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerEnrollStateViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerEnrollState.kt
@@ -22,19 +22,28 @@
  * Represents a fingerprint enrollment state. See [FingerprintManager.EnrollmentCallback] for more
  * information
  */
-sealed class FingerEnrollStateViewModel {
-  /** Represents enrollment step progress. */
+sealed class FingerEnrollState {
+  /**
+   * Represents an enrollment step progress.
+   *
+   * Progress is obtained by (totalStepsRequired - remainingSteps) / totalStepsRequired
+   */
   data class EnrollProgress(
     val remainingSteps: Int,
-  ) : FingerEnrollStateViewModel()
+    val totalStepsRequired: Int,
+  ) : FingerEnrollState()
+
   /** Represents that recoverable error has been encountered during enrollment. */
   data class EnrollHelp(
     @StringRes val helpMsgId: Int,
     val helpString: String,
-  ) : FingerEnrollStateViewModel()
+  ) : FingerEnrollState()
+
   /** Represents that an unrecoverable error has been encountered and the operation is complete. */
   data class EnrollError(
-    @StringRes val errMsgId: Int,
-    val errString: String,
-  ) : FingerEnrollStateViewModel()
+    @StringRes val errTitle: Int,
+    @StringRes val errString: Int,
+    val shouldRetryEnrollment: Boolean,
+    val isCancelled: Boolean,
+  ) : FingerEnrollState()
 }
diff --git a/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerprintViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerprintData.kt
similarity index 84%
rename from src/com/android/settings/biometrics/fingerprint2/shared/model/FingerprintViewModel.kt
rename to src/com/android/settings/biometrics/fingerprint2/shared/model/FingerprintData.kt
index db28e79..b2aa25c 100644
--- a/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerprintViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerprintData.kt
@@ -16,19 +16,19 @@
 
 package com.android.settings.biometrics.fingerprint2.shared.model
 
-data class FingerprintViewModel(
+data class FingerprintData(
   val name: String,
   val fingerId: Int,
   val deviceId: Long,
 )
 
-sealed class FingerprintAuthAttemptViewModel {
+sealed class FingerprintAuthAttemptModel {
   data class Success(
     val fingerId: Int,
-  ) : FingerprintAuthAttemptViewModel()
+  ) : FingerprintAuthAttemptModel()
 
   data class Error(
     val error: Int,
     val message: String,
-  ) : FingerprintAuthAttemptViewModel()
+  ) : FingerprintAuthAttemptModel()
 }
diff --git a/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerprintFlow.kt b/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerprintFlow.kt
new file mode 100644
index 0000000..93c7577
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerprintFlow.kt
@@ -0,0 +1,34 @@
+/*
+ * 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.shared.model
+
+/**
+ * The [FingerprintFlow] for fingerprint enrollment indicates information on how the flow should behave.
+ */
+sealed class FingerprintFlow
+
+/** The default enrollment experience, typically called from Settings */
+data object Default : FingerprintFlow()
+
+/** SetupWizard/Out of box experience (OOBE) enrollment type. */
+data object SetupWizard : FingerprintFlow()
+
+/** Unicorn enrollment type */
+data object Unicorn : FingerprintFlow()
+
+/** Flow to specify settings type */
+data object Settings : FingerprintFlow()
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 31afcb7..de2a1ee 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
@@ -16,12 +16,9 @@
 
 package com.android.settings.biometrics.fingerprint2.ui.enrollment.activity
 
-import android.annotation.ColorInt
 import android.app.Activity
 import android.content.Intent
-import android.content.res.ColorStateList
 import android.content.res.Configuration
-import android.graphics.Color
 import android.hardware.fingerprint.FingerprintManager
 import android.os.Bundle
 import android.provider.Settings
@@ -35,21 +32,27 @@
 import com.android.internal.widget.LockPatternUtils
 import com.android.settings.R
 import com.android.settings.SetupWizardUtils
-import com.android.settings.Utils
 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.RESULT_FINISHED
 import com.android.settings.biometrics.GatekeeperPasswordProvider
 import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractorImpl
+import com.android.settings.biometrics.fingerprint2.shared.model.Default
+import com.android.settings.biometrics.fingerprint2.shared.model.SetupWizard
+import com.android.settings.biometrics.fingerprint2.repository.PressToAuthProviderImpl
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment.FingerprintEnrollConfirmationV2Fragment
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment.FingerprintEnrollEnrollingV2Fragment
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment.FingerprintEnrollFindSensorV2Fragment
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment.FingerprintEnrollIntroV2Fragment
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.modules.enrolling.rfps.ui.fragment.RFPSEnrollFragment
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.modules.enrolling.rfps.ui.viewmodel.RFPSViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.AccessibilityViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.BackgroundViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Confirmation
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Education
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Enrollment
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollEnrollingViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollFindSensorViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollNavigationViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollViewModel
@@ -64,8 +67,11 @@
 import com.android.settings.password.ChooseLockGeneric
 import com.android.settings.password.ChooseLockSettingsHelper
 import com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE
+import com.android.systemui.biometrics.shared.model.FingerprintSensorType
+import com.google.android.setupcompat.util.WizardManagerHelper
 import com.google.android.setupdesign.util.ThemeHelper
 import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.flow.combine
 import kotlinx.coroutines.flow.filterNotNull
 import kotlinx.coroutines.launch
 
@@ -76,12 +82,15 @@
  * children fragments.
  */
 class FingerprintEnrollmentV2Activity : FragmentActivity() {
+  private lateinit var fingerprintEnrollEnrollingViewModel: FingerprintEnrollEnrollingViewModel
   private lateinit var navigationViewModel: FingerprintEnrollNavigationViewModel
   private lateinit var gatekeeperViewModel: FingerprintGatekeeperViewModel
   private lateinit var fingerprintEnrollViewModel: FingerprintEnrollViewModel
   private lateinit var accessibilityViewModel: AccessibilityViewModel
   private lateinit var foldStateViewModel: FoldStateViewModel
   private lateinit var orientationStateViewModel: OrientationStateViewModel
+  private lateinit var fingerprintScrollViewModel: FingerprintScrollViewModel
+  private lateinit var backgroundViewModel: BackgroundViewModel
   private val coroutineDispatcher = Dispatchers.Default
 
   /** Result listener for ChooseLock activity flow. */
@@ -99,23 +108,22 @@
     }
   }
 
-  override fun onAttachedToWindow() {
-    window.statusBarColor = getBackgroundColor()
-    super.onAttachedToWindow()
+  override fun onStop() {
+    super.onStop()
+    if (!isChangingConfigurations) {
+      backgroundViewModel.wentToBackground()
+    }
   }
 
+  override fun onResume() {
+    super.onResume()
+    backgroundViewModel.inForeground()
+  }
   override fun onConfigurationChanged(newConfig: Configuration) {
     super.onConfigurationChanged(newConfig)
     foldStateViewModel.onConfigurationChange(newConfig)
   }
 
-  @ColorInt
-  private fun getBackgroundColor(): Int {
-    val stateList: ColorStateList? =
-      Utils.getColorAttr(applicationContext, android.R.attr.windowBackground)
-    return stateList?.defaultColor ?: Color.TRANSPARENT
-  }
-
   private fun onConfirmDevice(resultCode: Int, data: Intent?) {
     val wasSuccessful = resultCode == RESULT_FINISHED || resultCode == Activity.RESULT_OK
     val gateKeeperPasswordHandle = data?.getExtra(EXTRA_KEY_GK_PW_HANDLE) as Long?
@@ -135,39 +143,28 @@
 
     val context = applicationContext
     val fingerprintManager = context.getSystemService(FINGERPRINT_SERVICE) as FingerprintManager
+    val isAnySuw = WizardManagerHelper.isAnySetupWizard(intent)
+    val enrollType =
+      if (isAnySuw) {
+        SetupWizard
+      } else {
+        Default
+      }
+
+    backgroundViewModel =
+      ViewModelProvider(this, BackgroundViewModel.BackgroundViewModelFactory())[
+        BackgroundViewModel::class.java]
+
 
     val interactor =
       FingerprintManagerInteractorImpl(
         context,
         backgroundDispatcher,
         fingerprintManager,
-        GatekeeperPasswordProvider(LockPatternUtils(context))
-      ) {
-        var toReturn: Int =
-          Settings.Secure.getIntForUser(
-            context.contentResolver,
-            Settings.Secure.SFPS_PERFORMANT_AUTH_ENABLED,
-            -1,
-            context.userId,
-          )
-        if (toReturn == -1) {
-          toReturn =
-            if (
-              context.resources.getBoolean(com.android.internal.R.bool.config_performantAuthDefault)
-            ) {
-              1
-            } else {
-              0
-            }
-          Settings.Secure.putIntForUser(
-            context.contentResolver,
-            Settings.Secure.SFPS_PERFORMANT_AUTH_ENABLED,
-            toReturn,
-            context.userId
-          )
-        }
-        toReturn == 1
-      }
+        GatekeeperPasswordProvider(LockPatternUtils(context)),
+        PressToAuthProviderImpl(context),
+        enrollType,
+      )
 
     var challenge: Long? = intent.getExtra(BiometricEnrollBase.EXTRA_KEY_CHALLENGE) as Long?
     val token = intent.getByteArrayExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN)
@@ -189,7 +186,8 @@
           backgroundDispatcher,
           interactor,
           gatekeeperViewModel,
-          gatekeeperInfo is GatekeeperInfo.GatekeeperPasswordInfo, /* canSkipConfirm */
+          gatekeeperInfo is GatekeeperInfo.GatekeeperPasswordInfo,
+          enrollType,
         )
       )[FingerprintEnrollNavigationViewModel::class.java]
 
@@ -205,13 +203,15 @@
         this,
         FingerprintEnrollViewModel.FingerprintEnrollViewModelFactory(
           interactor,
-          backgroundDispatcher
+          gatekeeperViewModel,
+          navigationViewModel,
         )
       )[FingerprintEnrollViewModel::class.java]
 
     // Initialize scroll view model
-    ViewModelProvider(this, FingerprintScrollViewModel.FingerprintScrollViewModelFactory())[
-      FingerprintScrollViewModel::class.java]
+    fingerprintScrollViewModel =
+      ViewModelProvider(this, FingerprintScrollViewModel.FingerprintScrollViewModelFactory())[
+        FingerprintScrollViewModel::class.java]
 
     // Initialize AccessibilityViewModel
     accessibilityViewModel =
@@ -227,6 +227,16 @@
       ViewModelProvider(this, OrientationStateViewModel.OrientationViewModelFactory(context))[
         OrientationStateViewModel::class.java]
 
+    // Initialize FingerprintEnrollEnrollingViewModel
+    fingerprintEnrollEnrollingViewModel =
+      ViewModelProvider(
+        this,
+        FingerprintEnrollEnrollingViewModel.FingerprintEnrollEnrollingViewModelFactory(
+          fingerprintEnrollViewModel,
+          backgroundViewModel
+        )
+      )[FingerprintEnrollEnrollingViewModel::class.java]
+
     // Initialize FingerprintEnrollFindSensorViewModel
     ViewModelProvider(
       this,
@@ -234,45 +244,65 @@
         navigationViewModel,
         fingerprintEnrollViewModel,
         gatekeeperViewModel,
+        backgroundViewModel,
         accessibilityViewModel,
         foldStateViewModel,
         orientationStateViewModel
       )
     )[FingerprintEnrollFindSensorViewModel::class.java]
 
+    // Initialize RFPS View Model
+    ViewModelProvider(
+      this,
+      RFPSViewModel.RFPSViewModelFactory(fingerprintEnrollEnrollingViewModel)
+    )[RFPSViewModel::class.java]
+
     lifecycleScope.launch {
-      navigationViewModel.navigationViewModel.filterNotNull().collect {
-        Log.d(TAG, "navigationStep $it")
-        val isForward = it.forward
-        val currStep = it.currStep
-        val theClass: Class<Fragment>? =
-          when (currStep) {
-            Confirmation -> FingerprintEnrollConfirmationV2Fragment::class.java as Class<Fragment>
-            Education -> FingerprintEnrollFindSensorV2Fragment::class.java as Class<Fragment>
-            Enrollment -> FingerprintEnrollEnrollingV2Fragment::class.java as Class<Fragment>
-            Intro -> FingerprintEnrollIntroV2Fragment::class.java as Class<Fragment>
-            else -> null
-          }
-
-        if (theClass != null) {
-          supportFragmentManager
-            .beginTransaction()
-            .setReorderingAllowed(true)
-            .add(R.id.fragment_container_view, theClass, null)
-            .commit()
-        } else {
-
-          if (currStep is Finish) {
-            if (currStep.resultCode != null) {
-              finishActivity(currStep.resultCode)
-            } else {
-              finish()
+      navigationViewModel.navigationViewModel
+        .filterNotNull()
+        .combine(fingerprintEnrollViewModel.sensorType) { nav, sensorType -> Pair(nav, sensorType) }
+        .collect { (nav, sensorType) ->
+          Log.d(TAG, "navigationStep $nav")
+          fingerprintEnrollViewModel.sensorTypeCached = sensorType
+          val isForward = nav.forward
+          val currStep = nav.currStep
+          val theClass: Class<Fragment>? =
+            when (currStep) {
+              Confirmation -> FingerprintEnrollConfirmationV2Fragment::class.java as Class<Fragment>
+              Education -> FingerprintEnrollFindSensorV2Fragment::class.java as Class<Fragment>
+              is Enrollment -> {
+                when (sensorType) {
+                  FingerprintSensorType.REAR -> RFPSEnrollFragment::class.java as Class<Fragment>
+                  else -> FingerprintEnrollEnrollingV2Fragment::class.java as Class<Fragment>
+                }
+              }
+              Intro -> FingerprintEnrollIntroV2Fragment::class.java as Class<Fragment>
+              else -> null
             }
-          } else if (currStep == LaunchConfirmDeviceCredential) {
-            launchConfirmOrChooseLock(userId)
+
+          if (theClass != null) {
+            supportFragmentManager.fragments.onEach { fragment ->
+              supportFragmentManager.beginTransaction().remove(fragment).commit()
+            }
+
+            supportFragmentManager
+              .beginTransaction()
+              .setReorderingAllowed(true)
+              .add(R.id.fragment_container_view, theClass, null)
+              .commit()
+          } else {
+
+            if (currStep is Finish) {
+              if (currStep.resultCode != null) {
+                finishActivity(currStep.resultCode)
+              } else {
+                finish()
+              }
+            } else if (currStep == LaunchConfirmDeviceCredential) {
+              launchConfirmOrChooseLock(userId)
+            }
           }
         }
-      }
     }
 
     val fromSettingsSummary =
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollFindSensorV2Fragment.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollFindSensorV2Fragment.kt
index dcdcccf..bfd4264 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollFindSensorV2Fragment.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollFindSensorV2Fragment.kt
@@ -30,11 +30,11 @@
 import com.android.settings.biometrics.fingerprint.FingerprintErrorDialog
 import com.android.settings.biometrics.fingerprint.FingerprintFindSensorAnimation
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollFindSensorViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollViewModel
 import com.android.systemui.biometrics.shared.model.FingerprintSensorType
 import com.google.android.setupcompat.template.FooterBarMixin
 import com.google.android.setupcompat.template.FooterButton
 import com.google.android.setupdesign.GlifLayout
-import kotlinx.coroutines.flow.collect
 import kotlinx.coroutines.launch
 
 private const val TAG = "FingerprintEnrollFindSensorV2Fragment"
@@ -55,23 +55,8 @@
   private var animation: FingerprintFindSensorAnimation? = null
 
   private var contentLayoutId: Int = -1
-  private lateinit var viewModel: FingerprintEnrollFindSensorViewModel
-
-  override fun onCreate(savedInstanceState: Bundle?) {
-    super.onCreate(savedInstanceState)
-    viewModel =
-      ViewModelProvider(requireActivity())[FingerprintEnrollFindSensorViewModel::class.java]
-    lifecycleScope.launch {
-      viewModel.sensorType.collect {
-        contentLayoutId =
-          when (it) {
-            FingerprintSensorType.UDFPS_OPTICAL,
-            FingerprintSensorType.UDFPS_ULTRASONIC -> R.layout.udfps_enroll_find_sensor_layout
-            FingerprintSensorType.POWER_BUTTON -> R.layout.sfps_enroll_find_sensor_layout
-            else -> R.layout.fingerprint_v2_enroll_find_sensor
-          }
-      }
-    }
+  private val viewModel: FingerprintEnrollFindSensorViewModel by lazy {
+    ViewModelProvider(requireActivity())[FingerprintEnrollFindSensorViewModel::class.java]
   }
 
   override fun onCreateView(
@@ -79,6 +64,18 @@
     container: ViewGroup?,
     savedInstanceState: Bundle?
   ): View? {
+
+    val sensorType =
+      ViewModelProvider(requireActivity())[FingerprintEnrollViewModel::class.java].sensorTypeCached
+
+    contentLayoutId =
+      when (sensorType) {
+        FingerprintSensorType.UDFPS_OPTICAL,
+        FingerprintSensorType.UDFPS_ULTRASONIC -> R.layout.udfps_enroll_find_sensor_layout
+        FingerprintSensorType.POWER_BUTTON -> R.layout.sfps_enroll_find_sensor_layout
+        else -> R.layout.fingerprint_v2_enroll_find_sensor
+      }
+
     return inflater.inflate(contentLayoutId, container, false).also { it ->
       val view = it!! as GlifLayout
 
@@ -94,12 +91,12 @@
 
       // Set up lottie or animation
       lifecycleScope.launch {
-        viewModel.showSfpsLottie.collect { (isFolded, rotation) ->
+        viewModel.sfpsLottieInfo.collect { (isFolded, rotation) ->
           setupLottie(view, getSfpsIllustrationLottieAnimation(isFolded, rotation))
         }
       }
       lifecycleScope.launch {
-        viewModel.showUdfpsLottie.collect { isAccessibilityEnabled ->
+        viewModel.udfpsLottieInfo.collect { isAccessibilityEnabled ->
           val lottieAnimation =
             if (isAccessibilityEnabled) R.raw.udfps_edu_a11y_lottie else R.raw.udfps_edu_lottie
           setupLottie(view, lottieAnimation) { viewModel.proceedToEnrolling() }
@@ -107,7 +104,8 @@
       }
       lifecycleScope.launch {
         viewModel.showRfpsAnimation.collect {
-          animation = view.findViewById(R.id.fingerprint_sensor_location_animation)
+          animation =
+            view.findViewById(R.id.fingerprint_sensor_location_animation)
           animation!!.startAnimation()
         }
       }
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollIntroV2Fragment.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollIntroV2Fragment.kt
index dbf6d12..32d201d 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollIntroV2Fragment.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollIntroV2Fragment.kt
@@ -25,19 +25,22 @@
 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.VisibleForTesting
 import androidx.fragment.app.Fragment
 import androidx.lifecycle.ViewModelProvider
 import androidx.lifecycle.lifecycleScope
 import com.android.settings.R
+import com.android.settings.biometrics.fingerprint2.shared.model.Unicorn
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollNavigationViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintGatekeeperViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintScrollViewModel
-import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Unicorn
 import com.android.systemui.biometrics.shared.model.FingerprintSensorType
 import com.google.android.setupcompat.template.FooterBarMixin
 import com.google.android.setupcompat.template.FooterButton
@@ -72,48 +75,69 @@
  * 2. How the data will be stored
  * 3. How the user can access and remove their data
  */
-class FingerprintEnrollIntroV2Fragment : Fragment(R.layout.fingerprint_v2_enroll_introduction) {
-  private lateinit var footerBarMixin: FooterBarMixin
-  private lateinit var textModel: TextModel
-  private lateinit var navigationViewModel: FingerprintEnrollNavigationViewModel
-  private lateinit var fingerprintEnrollViewModel: FingerprintEnrollViewModel
-  private lateinit var fingerprintScrollViewModel: FingerprintScrollViewModel
-  private lateinit var gateKeeperViewModel: FingerprintGatekeeperViewModel
+class FingerprintEnrollIntroV2Fragment() : Fragment(R.layout.fingerprint_v2_enroll_introduction) {
 
-  override fun onCreate(savedInstanceState: Bundle?) {
-    super.onCreate(savedInstanceState)
-    navigationViewModel =
-      ViewModelProvider(requireActivity())[FingerprintEnrollNavigationViewModel::class.java]
-    fingerprintEnrollViewModel =
-      ViewModelProvider(requireActivity())[FingerprintEnrollViewModel::class.java]
-    fingerprintScrollViewModel =
-      ViewModelProvider(requireActivity())[FingerprintScrollViewModel::class.java]
-    gateKeeperViewModel =
-      ViewModelProvider(requireActivity())[FingerprintGatekeeperViewModel::class.java]
+  /** Used for testing purposes */
+  private var factory: ViewModelProvider.Factory? = null
+
+  @VisibleForTesting
+  constructor(theFactory: ViewModelProvider.Factory) : this() {
+    factory = theFactory
   }
 
-  override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
-    super.onViewCreated(view, savedInstanceState)
+  private val viewModelProvider: ViewModelProvider by lazy {
+    if (factory != null) {
+      ViewModelProvider(requireActivity(), factory!!)
+    } else {
+      ViewModelProvider(requireActivity())
+    }
+  }
 
-    lifecycleScope.launch {
-      combine(
-          navigationViewModel.enrollType,
-          fingerprintEnrollViewModel.sensorType,
-        ) { enrollType, sensorType ->
-          Pair(enrollType, sensorType)
-        }
-        .collect { (enrollType, sensorType) ->
-          textModel =
-            when (enrollType) {
-              Unicorn -> getUnicornTextModel()
-              else -> getNormalTextModel()
-            }
+  private lateinit var footerBarMixin: FooterBarMixin
+  private lateinit var textModel: TextModel
 
-          setupFooterBarAndScrollView(view)
+  // Note that the ViewModels cannot be requested before the onCreate call
+  private val navigationViewModel: FingerprintEnrollNavigationViewModel by lazy {
+    viewModelProvider[FingerprintEnrollNavigationViewModel::class.java]
+  }
+  private val fingerprintViewModel: FingerprintEnrollViewModel by lazy {
+    viewModelProvider[FingerprintEnrollViewModel::class.java]
+  }
+  private val fingerprintScrollViewModel: FingerprintScrollViewModel by lazy {
+    viewModelProvider[FingerprintScrollViewModel::class.java]
+  }
+  private val gateKeeperViewModel: FingerprintGatekeeperViewModel by lazy {
+    viewModelProvider[FingerprintGatekeeperViewModel::class.java]
+  }
 
-          if (savedInstanceState == null) {
-            getLayout()?.setHeaderText(textModel.headerText)
-            getLayout()?.setDescriptionText(textModel.descriptionText)
+  override fun onCreateView(
+    inflater: LayoutInflater,
+    container: ViewGroup?,
+    savedInstanceState: Bundle?
+  ): View? =
+    super.onCreateView(inflater, container, savedInstanceState).also { theView ->
+      val view = theView!!
+
+      viewLifecycleOwner.lifecycleScope.launch {
+        combine(
+            navigationViewModel.fingerprintFlow,
+            fingerprintViewModel.sensorType,
+          ) { enrollType, sensorType ->
+            Pair(enrollType, sensorType)
+          }
+          .collect { (enrollType, sensorType) ->
+            textModel =
+              when (enrollType) {
+                Unicorn -> getUnicornTextModel()
+                else -> getNormalTextModel()
+              }
+
+            setupFooterBarAndScrollView(view)
+
+            val layout = view as GlifLayout
+
+            layout.setHeaderText(textModel.headerText)
+            layout.setDescriptionText(textModel.descriptionText)
 
             // Set color filter for the following icons.
             val colorFilter = getIconColorFilter()
@@ -158,10 +182,13 @@
             view.requireViewById<TextView?>(R.id.footer_title_1).setText(textModel.footerTitleOne)
             view.requireViewById<TextView?>(R.id.footer_title_2).setText(textModel.footerTitleOne)
           }
-        }
+      }
+      return view
     }
-  }
 
+  /**
+   * TODO (b/305269201): This link isn't displaying for screenshot tests.
+   */
   private fun setFooterLink(view: View) {
     val footerLink: TextView = view.requireViewById(R.id.footer_learn_more)
     footerLink.movementMethod = LinkMovementMethod.getInstance()
@@ -185,17 +212,18 @@
         navigationViewModel.nextStep()
       }
 
-    val layout: GlifLayout = requireActivity().requireViewById(R.id.setup_wizard_layout)
+    val layout: GlifLayout = view.findViewById(R.id.setup_wizard_layout)!!
     footerBarMixin = layout.getMixin(FooterBarMixin::class.java)
     footerBarMixin.primaryButton =
-      FooterButton.Builder(requireActivity())
+      FooterButton.Builder(requireContext())
         .setText(R.string.security_settings_face_enroll_introduction_more)
         .setListener(onNextButtonClick)
         .setButtonType(FooterButton.ButtonType.OPT_IN)
         .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
         .build()
+
     footerBarMixin.setSecondaryButton(
-      FooterButton.Builder(requireActivity())
+      FooterButton.Builder(requireContext())
         .setText(textModel.negativeButton)
         .setListener({ Log.d(TAG, "prevClicked") })
         .setButtonType(FooterButton.ButtonType.NEXT)
@@ -211,8 +239,8 @@
 
     val requireScrollMixin = layout.getMixin(RequireScrollMixin::class.java)
     requireScrollMixin.requireScrollWithButton(
-      requireActivity(),
-      footerBarMixin.primaryButton,
+      requireContext(),
+      primaryButton,
       R.string.security_settings_face_enroll_introduction_more,
       onNextButtonClick
     )
@@ -224,7 +252,7 @@
       }
     }
 
-    lifecycleScope.launch {
+    viewLifecycleOwner.lifecycleScope.launch {
       fingerprintScrollViewModel.hasReadConsentScreen.collect { consented ->
         if (consented) {
           primaryButton.setText(
@@ -244,7 +272,7 @@
     // the flow. For instance if someone launches the activity with an invalid challenge, it
     // either 1) Fails or 2) Launched confirmDeviceCredential
     primaryButton.isEnabled = false
-    lifecycleScope.launch {
+    viewLifecycleOwner.lifecycleScope.launch {
       gateKeeperViewModel.hasValidGatekeeperInfo.collect { primaryButton.isEnabled = it }
     }
   }
@@ -284,8 +312,4 @@
       PorterDuff.Mode.SRC_IN
     )
   }
-
-  private fun getLayout(): GlifLayout? {
-    return requireView().findViewById(R.id.setup_wizard_layout) as GlifLayout?
-  }
 }
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/README.md b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/README.md
new file mode 100644
index 0000000..dfb9598
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/README.md
@@ -0,0 +1,26 @@
+# Module enrollment
+
+### Fingerprint Settings Enrollment Modules
+
+This directory is responsible for containing the enrollment modules, each enrollment module is
+responsible for the actual enrolling portion of FingerprintEnrollment.
+The modules should be split out into udfps, rfps, and sfps.
+
+[comment]: <>  This file structure print out has been generated with the tree command.
+
+```
+├── enrolling
+│   └── rfps
+│       ├── data
+│       ├── domain
+│       │   └── RFPSInteractor.kt
+│       ├── README.md
+│       └── ui
+│           ├── fragment
+│           │   └── RFPSEnrollFragment.kt
+│           ├── viewmodel
+│           │   └── RFPSViewModel.kt
+│           └── widget
+│               └── RFPSProgressIndicator.kt
+└── README.md
+```
\ No newline at end of file
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/fragment/RFPSEnrollFragment.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/fragment/RFPSEnrollFragment.kt
new file mode 100644
index 0000000..d8c2f5a
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/fragment/RFPSEnrollFragment.kt
@@ -0,0 +1,252 @@
+/*
+ * 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.ui.enrollment.modules.enrolling.rfps.ui.fragment
+
+import android.graphics.Color
+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.AnimationUtils
+import android.view.animation.Interpolator
+import android.widget.TextView
+import androidx.fragment.app.Fragment
+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.biometrics.fingerprint2.shared.model.FingerEnrollState
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.modules.enrolling.rfps.ui.viewmodel.RFPSIconTouchViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.modules.enrolling.rfps.ui.viewmodel.RFPSViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.modules.enrolling.rfps.ui.widget.FingerprintErrorDialog
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.modules.enrolling.rfps.ui.widget.IconTouchDialog
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.modules.enrolling.rfps.ui.widget.RFPSProgressBar
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.BackgroundViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.OrientationStateViewModel
+import com.android.settings.core.instrumentation.InstrumentedDialogFragment
+import com.google.android.setupcompat.template.FooterBarMixin
+import com.google.android.setupcompat.template.FooterButton
+import com.google.android.setupdesign.GlifLayout
+import kotlinx.coroutines.flow.collectLatest
+import kotlinx.coroutines.flow.filter
+import kotlinx.coroutines.flow.filterNotNull
+import kotlinx.coroutines.launch
+
+private const val TAG = "RFPSEnrollFragment"
+
+/** This fragment is responsible for taking care of rear fingerprint enrollment. */
+class RFPSEnrollFragment : Fragment(R.layout.fingerprint_v2_rfps_enroll_enrolling) {
+
+  private lateinit var linearOutSlowInInterpolator: Interpolator
+  private lateinit var fastOutLinearInInterpolator: Interpolator
+  private lateinit var textView: TextView
+  private lateinit var progressBar: RFPSProgressBar
+
+  private val iconTouchViewModel: RFPSIconTouchViewModel by lazy {
+    ViewModelProvider(requireActivity())[RFPSIconTouchViewModel::class.java]
+  }
+
+  private val orientationViewModel: OrientationStateViewModel by lazy {
+    ViewModelProvider(requireActivity())[OrientationStateViewModel::class.java]
+  }
+
+  private val rfpsViewModel: RFPSViewModel by lazy {
+    ViewModelProvider(requireActivity())[RFPSViewModel::class.java]
+  }
+
+  private val backgroundViewModel: BackgroundViewModel by lazy {
+    ViewModelProvider(requireActivity())[BackgroundViewModel::class.java]
+  }
+
+  override fun onCreateView(
+    inflater: LayoutInflater,
+    container: ViewGroup?,
+    savedInstanceState: Bundle?
+  ): View? {
+    val view = super.onCreateView(inflater, container, savedInstanceState)!!
+    val fragment = this
+    val context = requireContext()
+    val glifLayout = view.requireViewById(R.id.setup_wizard_layout) as GlifLayout
+    glifLayout.setDescriptionText(R.string.security_settings_fingerprint_enroll_start_message)
+    glifLayout.setHeaderText(R.string.security_settings_fingerprint_enroll_repeat_title)
+
+    fastOutLinearInInterpolator =
+      AnimationUtils.loadInterpolator(context, android.R.interpolator.fast_out_linear_in)
+    linearOutSlowInInterpolator =
+      AnimationUtils.loadInterpolator(context, android.R.interpolator.linear_out_slow_in)
+
+    textView = view.requireViewById(R.id.text) as TextView
+    progressBar = view.requireViewById(R.id.fingerprint_progress_bar) as RFPSProgressBar
+
+    val footerBarMixin = glifLayout.getMixin(FooterBarMixin::class.java)
+    footerBarMixin.secondaryButton =
+      FooterButton.Builder(context)
+        .setText(R.string.security_settings_fingerprint_enroll_enrolling_skip)
+        .setListener { Log.e(TAG, "skip enrollment!") }
+        .setButtonType(FooterButton.ButtonType.SKIP)
+        .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
+        .build()
+    footerBarMixin.buttonContainer.setBackgroundColor(Color.TRANSPARENT)
+
+    progressBar.setOnTouchListener { _, motionEvent ->
+      if (motionEvent.actionMasked == MotionEvent.ACTION_DOWN) {
+        iconTouchViewModel.userTouchedFingerprintIcon()
+      }
+      true
+    }
+
+    // On any orientation event, dismiss dialogs.
+    viewLifecycleOwner.lifecycleScope.launch {
+      orientationViewModel.orientation.collect { dismissDialogs() }
+    }
+
+    // Signal we are ready for enrollment.
+    rfpsViewModel.readyForEnrollment()
+
+    viewLifecycleOwner.lifecycleScope.launch {
+      repeatOnLifecycle(Lifecycle.State.RESUMED) {
+        // Icon animation  update
+        viewLifecycleOwner.lifecycleScope.launch {
+          rfpsViewModel.shouldAnimateIcon.collect { animate ->
+            progressBar.updateIconAnimation(animate)
+          }
+        }
+
+        // Flow to show a dialog.
+        viewLifecycleOwner.lifecycleScope.launch {
+          iconTouchViewModel.shouldShowDialog.collectLatest { showDialog ->
+            if (showDialog) {
+              try {
+                IconTouchDialog.showInstance(fragment)
+              } catch (exception: Exception) {
+                Log.d(TAG, "Dialog dismissed due to $exception")
+              }
+            }
+          }
+        }
+      }
+    }
+
+    // If we go to the background, then finish enrollment. This should be permanent finish,
+    // and shouldn't be reset until we explicitly tell the view model we want to retry
+    // enrollment.
+    viewLifecycleOwner.lifecycleScope.launch {
+      backgroundViewModel.background
+        .filter { inBackground -> inBackground }
+        .collect { rfpsViewModel.stopEnrollment() }
+    }
+
+    viewLifecycleOwner.lifecycleScope.launch {
+      rfpsViewModel.progress.filterNotNull().collect { progress -> handleEnrollProgress(progress) }
+    }
+
+    viewLifecycleOwner.lifecycleScope.launch {
+      rfpsViewModel.helpMessage.filterNotNull().collect { help ->
+        textView.text = help.helpString
+        textView.visibility = View.VISIBLE
+        textView.translationY =
+          resources.getDimensionPixelSize(R.dimen.fingerprint_error_text_appear_distance).toFloat()
+        textView.alpha = 0f
+        textView
+          .animate()
+          .alpha(1f)
+          .translationY(0f)
+          .setDuration(200)
+          .setInterpolator(linearOutSlowInInterpolator)
+          .start()
+
+      }
+    }
+
+    viewLifecycleOwner.lifecycleScope.launch {
+      rfpsViewModel.errorMessage.filterNotNull().collect { error -> handleEnrollError(error) }
+    }
+    viewLifecycleOwner.lifecycleScope.launch {
+      rfpsViewModel.textViewIsVisible.collect {
+        textView.visibility = if (it) View.VISIBLE else View.INVISIBLE
+      }
+    }
+
+    viewLifecycleOwner.lifecycleScope.launch {
+      rfpsViewModel.clearHelpMessage.collect {
+        textView
+          .animate()
+          .alpha(0f)
+          .translationY(
+            resources
+              .getDimensionPixelSize(R.dimen.fingerprint_error_text_disappear_distance)
+              .toFloat()
+          )
+          .setDuration(100)
+          .setInterpolator(fastOutLinearInInterpolator)
+          .withEndAction { rfpsViewModel.setVisibility(false) }
+          .start()
+      }
+    }
+
+    viewLifecycleOwner.lifecycleScope.launch {
+      repeatOnLifecycle(Lifecycle.State.DESTROYED) {
+        rfpsViewModel.stopEnrollment()
+        dismissDialogs()
+      }
+    }
+    return view
+  }
+
+  private fun handleEnrollError(error: FingerEnrollState.EnrollError) {
+    val fragment = this
+    viewLifecycleOwner.lifecycleScope.launch {
+      try {
+        val shouldRestartEnrollment = FingerprintErrorDialog.showInstance(error, fragment)
+      } catch (exception: Exception) {
+        Log.e(TAG, "Exception occurred $exception")
+      }
+      onEnrollmentFailed()
+    }
+  }
+
+  private fun onEnrollmentFailed() {
+    rfpsViewModel.stopEnrollment()
+  }
+
+  private fun handleEnrollProgress(progress: FingerEnrollState.EnrollProgress) {
+    progressBar.updateProgress(
+      progress.remainingSteps.toFloat() / progress.totalStepsRequired.toFloat()
+    )
+
+    if (progress.remainingSteps == 0) {
+      performNextStepSuccess()
+    }
+  }
+
+  private fun performNextStepSuccess() {}
+
+  private fun dismissDialogs() {
+    val transaction = parentFragmentManager.beginTransaction()
+    for (frag in parentFragmentManager.fragments) {
+      if (frag is InstrumentedDialogFragment) {
+        Log.d(TAG, "removing dialog settings fragment $frag")
+        frag.dismiss()
+        transaction.remove(frag)
+      }
+    }
+    transaction.commitAllowingStateLoss()
+  }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/viewmodel/RFPSIconTouchViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/viewmodel/RFPSIconTouchViewModel.kt
new file mode 100644
index 0000000..c16e65c
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/viewmodel/RFPSIconTouchViewModel.kt
@@ -0,0 +1,61 @@
+/*
+ * 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.ui.enrollment.modules.enrolling.rfps.ui.viewmodel
+
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.viewModelScope
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.SharingStarted
+import kotlinx.coroutines.flow.shareIn
+import kotlinx.coroutines.flow.transform
+import kotlinx.coroutines.flow.update
+
+private const val touchesToShowDialog = 3
+/**
+ * This class is responsible for counting the number of touches on the fingerprint icon, and if this
+ * number reaches a threshold it will produce an action via [shouldShowDialog] to indicate the ui
+ * should show a dialog.
+ */
+class RFPSIconTouchViewModel : ViewModel() {
+
+  /** Keeps the number of times a user has touches the fingerprint icon. */
+  private val _touches: MutableStateFlow<Int> = MutableStateFlow(0)
+
+  /**
+   * Whether or not the UI should be showing the dialog. By making this SharingStarted.Eagerly
+   * the first event 0 % 3 == 0 will fire as soon as this view model is created, so it should
+   * be ignored and work as intended.
+   */
+  val shouldShowDialog: Flow<Boolean> =
+    _touches
+      .transform { numTouches -> emit((numTouches % touchesToShowDialog) == 0) }
+      .shareIn(viewModelScope, SharingStarted.Eagerly, 0)
+
+  /** Indicates a user has tapped on the fingerprint icon. */
+  fun userTouchedFingerprintIcon() {
+    _touches.update { _touches.value + 1 }
+  }
+
+  class RFPSIconTouchViewModelFactory : ViewModelProvider.Factory {
+    @Suppress("UNCHECKED_CAST")
+    override fun <T : ViewModel> create(modelClass: Class<T>): T {
+      return RFPSIconTouchViewModel() as T
+    }
+  }
+}
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
new file mode 100644
index 0000000..58d604e
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/viewmodel/RFPSViewModel.kt
@@ -0,0 +1,102 @@
+/*
+ * 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.ui.enrollment.modules.enrolling.rfps.ui.viewmodel
+
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.viewModelScope
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollState
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollEnrollingViewModel
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.SharingStarted
+import kotlinx.coroutines.flow.asStateFlow
+import kotlinx.coroutines.flow.filterIsInstance
+import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.flow.shareIn
+import kotlinx.coroutines.flow.transform
+import kotlinx.coroutines.flow.update
+
+/** View Model used by the rear fingerprint enrollment fragment. */
+class RFPSViewModel(
+  private val fingerprintEnrollViewModel: FingerprintEnrollEnrollingViewModel,
+) : ViewModel() {
+
+  /** Value to indicate if the text view is visible or not **/
+  private val _textViewIsVisible = MutableStateFlow<Boolean>(false)
+  val textViewIsVisible: Flow<Boolean> = _textViewIsVisible.asStateFlow()
+
+  /** Indicates if the icon should be animating or not */
+  val shouldAnimateIcon = fingerprintEnrollViewModel.enrollFlowShouldBeRunning
+
+  private val enrollFlow: Flow<FingerEnrollState?> = fingerprintEnrollViewModel.enrollFLow
+
+  /**
+   * Enroll progress message with a replay of size 1 allowing for new subscribers to get the most
+   * recent state (this is useful for things like screen rotation)
+   */
+  val progress: Flow<FingerEnrollState.EnrollProgress?> =
+    enrollFlow
+      .filterIsInstance<FingerEnrollState.EnrollProgress>()
+      .shareIn(viewModelScope, SharingStarted.Eagerly, 1)
+
+  /** Clear help message on enroll progress */
+  val clearHelpMessage: Flow<Boolean> = progress.map { it != null }
+
+  /** Enroll help message that is only displayed once */
+  val helpMessage: Flow<FingerEnrollState.EnrollHelp?> =
+    enrollFlow
+      .filterIsInstance<FingerEnrollState.EnrollHelp>()
+      .shareIn(viewModelScope, SharingStarted.Eagerly, 0).transform {
+        _textViewIsVisible.update { true }
+      }
+
+  /**
+   * The error message should only be shown once, for scenarios like screen rotations, we don't want
+   * to re-show the error message.
+   */
+  val errorMessage: Flow<FingerEnrollState.EnrollError?> =
+    enrollFlow
+      .filterIsInstance<FingerEnrollState.EnrollError>()
+      .shareIn(viewModelScope, SharingStarted.Eagerly, 0)
+
+  /** Indicates if the consumer is ready for enrollment */
+  fun readyForEnrollment() {
+    fingerprintEnrollViewModel.canEnroll()
+  }
+
+  /** Indicates if enrollment should stop */
+  fun stopEnrollment() {
+    fingerprintEnrollViewModel.stopEnroll()
+  }
+
+  fun setVisibility(isVisible: Boolean) {
+    _textViewIsVisible.update { isVisible }
+  }
+
+  class RFPSViewModelFactory(
+    private val fingerprintEnrollEnrollingViewModel: FingerprintEnrollEnrollingViewModel,
+  ) : ViewModelProvider.Factory {
+
+    @Suppress("UNCHECKED_CAST")
+    override fun <T : ViewModel> create(
+      modelClass: Class<T>,
+    ): T {
+      return RFPSViewModel(fingerprintEnrollEnrollingViewModel) as T
+    }
+  }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/widget/FingerprintErrorDialog.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/widget/FingerprintErrorDialog.kt
new file mode 100644
index 0000000..b9c628e
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/widget/FingerprintErrorDialog.kt
@@ -0,0 +1,124 @@
+/*
+ * 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.ui.enrollment.modules.enrolling.rfps.ui.widget
+
+import android.app.AlertDialog
+import android.app.Dialog
+import android.app.settings.SettingsEnums
+import android.content.DialogInterface
+import android.os.Bundle
+import android.util.Log
+import androidx.fragment.app.Fragment
+import com.android.settings.R
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollState
+import com.android.settings.core.instrumentation.InstrumentedDialogFragment
+import kotlin.coroutines.resume
+import kotlinx.coroutines.suspendCancellableCoroutine
+
+private const val TAG = "FingerprintErrorDialog"
+
+/** A Dialog used for fingerprint enrollment when an error occurs. */
+class FingerprintErrorDialog : InstrumentedDialogFragment() {
+  private lateinit var onContinue: DialogInterface.OnClickListener
+  private lateinit var onTryAgain: DialogInterface.OnClickListener
+  private lateinit var onCancelListener: DialogInterface.OnCancelListener
+
+  override fun onCancel(dialog: DialogInterface) {
+    Log.d(TAG, "onCancel $dialog")
+    onCancelListener.onCancel(dialog)
+  }
+
+  override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
+    Log.d(TAG, "onCreateDialog $this")
+    val errorString = requireArguments().getInt(KEY_MESSAGE)
+    val errorTitle = requireArguments().getInt(KEY_TITLE)
+    val builder = AlertDialog.Builder(requireContext())
+    val shouldShowTryAgain = requireArguments().getBoolean(KEY_SHOULD_TRY_AGAIN)
+    builder.setTitle(errorTitle).setMessage(errorString).setCancelable(false)
+
+    if (shouldShowTryAgain) {
+      builder
+        .setPositiveButton(R.string.security_settings_fingerprint_enroll_dialog_try_again) {
+          dialog,
+          which ->
+          dialog.dismiss()
+          onTryAgain.onClick(dialog, which)
+        }
+        .setNegativeButton(R.string.security_settings_fingerprint_enroll_dialog_ok) { dialog, which
+          ->
+          dialog.dismiss()
+          onContinue.onClick(dialog, which)
+        }
+    } else {
+      builder.setPositiveButton(R.string.security_settings_fingerprint_enroll_dialog_ok) {
+        dialog,
+        which ->
+        dialog.dismiss()
+        onContinue.onClick(dialog, which)
+      }
+    }
+
+    val dialog = builder.create()
+    dialog.setCanceledOnTouchOutside(false)
+    return dialog
+  }
+
+  override fun getMetricsCategory(): Int {
+    return SettingsEnums.DIALOG_FINGERPINT_ERROR
+  }
+
+  companion object {
+    private const val KEY_MESSAGE = "fingerprint_message"
+    private const val KEY_TITLE = "fingerprint_title"
+    private const val KEY_SHOULD_TRY_AGAIN = "should_try_again"
+
+    suspend fun showInstance(
+        error: FingerEnrollState.EnrollError,
+        fragment: Fragment,
+    ) = suspendCancellableCoroutine { continuation ->
+      val dialog = FingerprintErrorDialog()
+      dialog.onTryAgain = DialogInterface.OnClickListener { _, _ -> continuation.resume(true) }
+
+      dialog.onContinue = DialogInterface.OnClickListener { _, _ -> continuation.resume(false) }
+
+      dialog.onCancelListener =
+        DialogInterface.OnCancelListener {
+          Log.d(TAG, "onCancelListener clicked $dialog")
+          continuation.resume(null)
+        }
+
+      continuation.invokeOnCancellation { Log.d(TAG, "invokeOnCancellation $dialog") }
+
+      val bundle = Bundle()
+      bundle.putInt(
+        KEY_TITLE,
+        error.errTitle,
+      )
+      bundle.putInt(
+        KEY_MESSAGE,
+        error.errString,
+      )
+      bundle.putBoolean(
+        KEY_SHOULD_TRY_AGAIN,
+        error.shouldRetryEnrollment,
+      )
+      dialog.arguments = bundle
+      Log.d(TAG, "showing dialog $dialog")
+      dialog.show(fragment.parentFragmentManager, FingerprintErrorDialog::class.java.toString())
+    }
+  }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/widget/IconTouchDialog.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/widget/IconTouchDialog.kt
new file mode 100644
index 0000000..c086343
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/widget/IconTouchDialog.kt
@@ -0,0 +1,73 @@
+/*
+ * 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.ui.enrollment.modules.enrolling.rfps.ui.widget
+
+import android.app.AlertDialog
+import android.app.Dialog
+import android.app.settings.SettingsEnums
+import android.content.DialogInterface
+import android.os.Bundle
+import android.util.Log
+import androidx.fragment.app.Fragment
+import com.android.settings.R
+import com.android.settings.core.instrumentation.InstrumentedDialogFragment
+import kotlin.coroutines.resume
+import kotlinx.coroutines.suspendCancellableCoroutine
+
+private const val TAG = "IconTouchDialog"
+
+/** Dialog shown when the user taps the Progress bar a certain amount of times. */
+class IconTouchDialog : InstrumentedDialogFragment() {
+  lateinit var onDismissListener: DialogInterface.OnClickListener
+  lateinit var onCancelListener: DialogInterface.OnCancelListener
+
+  override fun onCancel(dialog: DialogInterface) {
+    Log.d(TAG, "onCancel $dialog")
+    onCancelListener.onCancel(dialog)
+  }
+
+  override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
+    val builder: AlertDialog.Builder = AlertDialog.Builder(activity, R.style.Theme_AlertDialog)
+    builder
+      .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, which ->
+        dialog.dismiss()
+        onDismissListener.onClick(dialog, which)
+      }
+      .setOnCancelListener { onCancelListener.onCancel(it) }
+    return builder.create()
+  }
+
+  override fun getMetricsCategory(): Int {
+    return SettingsEnums.DIALOG_FINGERPRINT_ICON_TOUCH
+  }
+
+  companion object {
+    suspend fun showInstance(fragment: Fragment) = suspendCancellableCoroutine { continuation ->
+      val dialog = IconTouchDialog()
+      dialog.onDismissListener =
+        DialogInterface.OnClickListener { _, _ -> continuation.resume("Done") }
+      dialog.onCancelListener =
+        DialogInterface.OnCancelListener { _ -> continuation.resume("OnCancel") }
+
+      continuation.invokeOnCancellation { Log.d(TAG, "invokeOnCancellation $dialog") }
+
+      dialog.show(fragment.parentFragmentManager, IconTouchDialog::class.java.toString())
+    }
+  }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/widget/RFPSProgressBar.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/widget/RFPSProgressBar.kt
new file mode 100644
index 0000000..fe62681
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/widget/RFPSProgressBar.kt
@@ -0,0 +1,107 @@
+/*
+ * 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.ui.enrollment.modules.enrolling.rfps.ui.widget
+
+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.util.AttributeSet
+import android.view.animation.AnimationUtils
+import android.view.animation.Interpolator
+import com.android.settings.R
+import com.android.settings.widget.RingProgressBar
+
+/** Progress bar for rear fingerprint enrollment. */
+class RFPSProgressBar(context: Context, attributeSet: AttributeSet) :
+  RingProgressBar(context, attributeSet) {
+
+  private val fastOutSlowInInterpolator: Interpolator
+
+  private val iconAnimationDrawable: AnimatedVectorDrawable
+  private val iconBackgroundBlinksDrawable: AnimatedVectorDrawable
+
+  private val maxProgress: Int
+
+  private var progressAnimation: ObjectAnimator? = null
+
+  private var shouldAnimateInternal: Boolean = true
+
+  init {
+    val fingerprintDrawable = background as LayerDrawable
+    iconAnimationDrawable =
+      fingerprintDrawable.findDrawableByLayerId(R.id.fingerprint_animation)
+        as AnimatedVectorDrawable
+    iconBackgroundBlinksDrawable =
+      fingerprintDrawable.findDrawableByLayerId(R.id.fingerprint_background)
+        as AnimatedVectorDrawable
+
+    fastOutSlowInInterpolator =
+      AnimationUtils.loadInterpolator(context, android.R.interpolator.fast_out_slow_in)
+
+    iconAnimationDrawable.registerAnimationCallback(
+      object : Animatable2.AnimationCallback() {
+        override fun onAnimationEnd(drawable: Drawable?) {
+          super.onAnimationEnd(drawable)
+          if (shouldAnimateInternal) {
+            animateIconAnimationInternal()
+          }
+        }
+      }
+    )
+    animateIconAnimationInternal()
+
+    progressBackgroundTintMode = PorterDuff.Mode.SRC
+
+    val attributes =
+      context.obtainStyledAttributes(R.style.RingProgressBarStyle, intArrayOf(android.R.attr.max))
+
+    maxProgress = attributes.getInt(0, -1)
+
+    attributes.recycle()
+  }
+
+  /** Indicates if the progress animation should be running */
+  fun updateIconAnimation(shouldAnimate: Boolean) {
+    if (shouldAnimate && !shouldAnimateInternal) {
+      animateIconAnimationInternal()
+    }
+
+    shouldAnimateInternal = shouldAnimate
+  }
+
+  /** This function should only be called when actual progress has been made. */
+  fun updateProgress(percentComplete: Float) {
+    val progress = maxProgress - (percentComplete.coerceIn(0.0f, 100.0f) * maxProgress).toInt()
+    iconBackgroundBlinksDrawable.start()
+
+    progressAnimation?.isRunning?.let { progressAnimation!!.cancel() }
+
+    progressAnimation = ObjectAnimator.ofInt(this, "progress", getProgress(), progress)
+
+    progressAnimation?.interpolator = fastOutSlowInInterpolator
+    progressAnimation?.setDuration(250)
+    progressAnimation?.start()
+  }
+
+  private fun animateIconAnimationInternal() {
+    iconAnimationDrawable.start()
+  }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/BackgroundViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/BackgroundViewModel.kt
new file mode 100644
index 0000000..2b53a53
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/BackgroundViewModel.kt
@@ -0,0 +1,48 @@
+/*
+ * 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.ui.enrollment.viewmodel
+
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.ViewModelProvider
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.asStateFlow
+import kotlinx.coroutines.flow.update
+
+/** A class for determining if the application is in the background or not. */
+class BackgroundViewModel : ViewModel() {
+
+  private val _background = MutableStateFlow(false)
+  /** When true, the application is in background, else false */
+  val background = _background.asStateFlow()
+
+  /** Indicates that the application has been put in the background. */
+  fun wentToBackground() {
+    _background.update { true }
+  }
+
+  /** Indicates that the application has been brought to the foreground. */
+  fun inForeground() {
+    _background.update { false }
+  }
+
+  class BackgroundViewModelFactory : ViewModelProvider.Factory {
+    @Suppress("UNCHECKED_CAST")
+    override fun <T : ViewModel> create(modelClass: Class<T>): T {
+      return BackgroundViewModel() as T
+    }
+  }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollEnrollingViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollEnrollingViewModel.kt
new file mode 100644
index 0000000..7ab315e
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollEnrollingViewModel.kt
@@ -0,0 +1,85 @@
+/*
+ * 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.ui.enrollment.viewmodel
+
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.ViewModelProvider
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.combine
+import kotlinx.coroutines.flow.transformLatest
+import kotlinx.coroutines.flow.update
+
+/**
+ * This class is a wrapper around the [FingerprintEnrollViewModel] and decides when
+ * the user should or should not be enrolling.
+ */
+class FingerprintEnrollEnrollingViewModel(
+  private val fingerprintEnrollViewModel: FingerprintEnrollViewModel,
+  backgroundViewModel: BackgroundViewModel,
+) : ViewModel() {
+
+  private val _didTryEnrollment = MutableStateFlow(false)
+  private val _userDidEnroll = MutableStateFlow(false)
+  /** Indicates if the enrollment flow should be running. */
+  val enrollFlowShouldBeRunning: Flow<Boolean> =
+    _userDidEnroll.combine(backgroundViewModel.background) { shouldEnroll, isInBackground ->
+      if (isInBackground) {
+        false
+      } else {
+        shouldEnroll
+      }
+    }
+
+  /**
+   * Used to indicate the consumer of the view model is ready for an enrollment. Note that this does
+   * not necessarily try an enrollment.
+   */
+  fun canEnroll() {
+    // Update _consumerShouldEnroll after updating the other values.
+    if (!_didTryEnrollment.value) {
+      _didTryEnrollment.update { true }
+      _userDidEnroll.update { true }
+    }
+  }
+
+  /** Used to indicate to stop the enrollment. */
+  fun stopEnroll() {
+    _userDidEnroll.update { false }
+  }
+
+  /** Collects the enrollment flow based on [enrollFlowShouldBeRunning] */
+  val enrollFLow =
+    enrollFlowShouldBeRunning.transformLatest {
+      if (it) {
+        fingerprintEnrollViewModel.enrollFlow.collect { event -> emit(event) }
+      }
+    }
+
+  class FingerprintEnrollEnrollingViewModelFactory(
+    private val fingerprintEnrollViewModel: FingerprintEnrollViewModel,
+    private val backgroundViewModel: BackgroundViewModel
+  ) : ViewModelProvider.Factory {
+    @Suppress("UNCHECKED_CAST")
+    override fun <T : ViewModel> create(
+      modelClass: Class<T>,
+    ): T {
+      return FingerprintEnrollEnrollingViewModel(fingerprintEnrollViewModel, backgroundViewModel)
+        as T
+    }
+  }
+}
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 94bfce3..7722a46 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
@@ -16,21 +16,21 @@
 
 package com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel
 
-import android.hardware.fingerprint.FingerprintManager
 import androidx.lifecycle.ViewModel
 import androidx.lifecycle.ViewModelProvider
 import androidx.lifecycle.viewModelScope
-import com.android.settings.biometrics.fingerprint2.shared.model.EnrollReason
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollStateViewModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollState
+import com.android.settings.biometrics.fingerprint2.shared.model.SetupWizard
 import com.android.systemui.biometrics.shared.model.FingerprintSensorType
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.MutableStateFlow
-import kotlinx.coroutines.flow.collect
+import kotlinx.coroutines.flow.SharingStarted
 import kotlinx.coroutines.flow.combine
 import kotlinx.coroutines.flow.combineTransform
+import kotlinx.coroutines.flow.filter
 import kotlinx.coroutines.flow.filterNotNull
 import kotlinx.coroutines.flow.map
-import kotlinx.coroutines.flow.transform
+import kotlinx.coroutines.flow.shareIn
 import kotlinx.coroutines.flow.update
 import kotlinx.coroutines.launch
 
@@ -39,50 +39,63 @@
   private val navigationViewModel: FingerprintEnrollNavigationViewModel,
   private val fingerprintEnrollViewModel: FingerprintEnrollViewModel,
   private val gatekeeperViewModel: FingerprintGatekeeperViewModel,
+  backgroundViewModel: BackgroundViewModel,
   accessibilityViewModel: AccessibilityViewModel,
   foldStateViewModel: FoldStateViewModel,
   orientationStateViewModel: OrientationStateViewModel
 ) : ViewModel() {
   /** Represents the stream of sensor type. */
   val sensorType: Flow<FingerprintSensorType> =
-    fingerprintEnrollViewModel.sensorType.filterWhenEducationIsShown()
+    fingerprintEnrollViewModel.sensorType.shareIn(
+      viewModelScope,
+      SharingStarted.WhileSubscribed(),
+      1
+    )
   private val _isUdfps: Flow<Boolean> =
     sensorType.map {
       it == FingerprintSensorType.UDFPS_OPTICAL || it == FingerprintSensorType.UDFPS_ULTRASONIC
     }
   private val _isSfps: Flow<Boolean> = sensorType.map { it == FingerprintSensorType.POWER_BUTTON }
-  private val _isRearSfps: Flow<Boolean> =
-    combineTransform(_isSfps, _isUdfps) { v1, v2 -> !v1 && !v2 }
+  private val _isRearSfps: Flow<Boolean> = sensorType.map { it == FingerprintSensorType.REAR }
 
   /** Represents the stream of showing primary button. */
-  val showPrimaryButton: Flow<Boolean> = _isUdfps.transform { if (it) emit(true) }
+  val showPrimaryButton: Flow<Boolean> = _isUdfps.filter { it }
 
-  /** Represents the stream of showing sfps lottie, Pair(isFolded, rotation). */
-  val showSfpsLottie: Flow<Pair<Boolean, Int>> =
+  private val _showSfpsLottie = _isSfps.filter { it }
+  /** Represents the stream of showing sfps lottie and the information Pair(isFolded, rotation). */
+  val sfpsLottieInfo: Flow<Pair<Boolean, Int>> =
     combineTransform(
-      _isSfps,
+      _showSfpsLottie,
       foldStateViewModel.isFolded,
       orientationStateViewModel.rotation,
-    ) { isSfps, isFolded, rotation ->
-      if (isSfps) emit(Pair(isFolded, rotation))
+    ) { _, isFolded, rotation ->
+      emit(Pair(isFolded, rotation))
     }
 
-  /** Represents the stream of showing udfps lottie. */
-  val showUdfpsLottie: Flow<Boolean> =
-    combineTransform(
-      _isUdfps,
-      accessibilityViewModel.isAccessibilityEnabled,
-    ) { isUdfps, isAccessibilityEnabled ->
-      if (isUdfps) emit(isAccessibilityEnabled)
+  private val _showUdfpsLottie = _isUdfps.filter { it }
+  /** Represents the stream of showing udfps lottie and whether accessibility is enabled. */
+  val udfpsLottieInfo: Flow<Boolean> =
+    _showUdfpsLottie.combine(accessibilityViewModel.isAccessibilityEnabled) {
+      _,
+      isAccessibilityEnabled ->
+      isAccessibilityEnabled
     }
 
   /** Represents the stream of showing rfps animation. */
-  val showRfpsAnimation: Flow<Boolean> = _isRearSfps.transform { if (it) emit(true) }
+  val showRfpsAnimation: Flow<Boolean> = _isRearSfps.filter { it }
 
   private val _showErrorDialog: MutableStateFlow<Pair<Int, Boolean>?> = MutableStateFlow(null)
   /** Represents the stream of showing error dialog. */
   val showErrorDialog = _showErrorDialog.filterNotNull()
 
+  private var _didTryEducation = false
+  private var _education: MutableStateFlow<Boolean> = MutableStateFlow(false)
+  /** Indicates if the education flow should be running. */
+  private val educationFlowShouldBeRunning: Flow<Boolean> =
+    _education.combine(backgroundViewModel.background) { shouldRunEducation, isInBackground ->
+      !isInBackground && shouldRunEducation
+    }
+
   init {
     // Start or end enroll flow
     viewModelScope.launch {
@@ -102,59 +115,68 @@
         }
         .collect { token ->
           if (token != null) {
-            fingerprintEnrollViewModel.startEnroll(token, EnrollReason.FindSensor)
+            canStartEducation()
           } else {
-            fingerprintEnrollViewModel.stopEnroll()
+            stopEducation()
           }
         }
     }
 
     // Enroll progress flow
     viewModelScope.launch {
-      combine(
-          navigationViewModel.enrollType,
-          fingerprintEnrollViewModel.enrollFlow.filterNotNull()
-        ) { enrollType, enrollFlow ->
-          Pair(enrollType, enrollFlow)
-        }
-        .collect { (enrollType, enrollFlow) ->
-          when (enrollFlow) {
-            // TODO: Cancel the enroll() when EnrollProgress is received instead of proceeding to
-            // Enrolling page. Otherwise Enrolling page will receive the EnrollError.
-            is FingerEnrollStateViewModel.EnrollProgress -> proceedToEnrolling()
-            is FingerEnrollStateViewModel.EnrollError -> {
-              val errMsgId = enrollFlow.errMsgId
-              if (errMsgId == FingerprintManager.FINGERPRINT_ERROR_CANCELED) {
-                proceedToEnrolling()
-              } else {
-                _showErrorDialog.update { Pair(errMsgId, enrollType == SetupWizard) }
+      educationFlowShouldBeRunning.collect {
+        // Only collect the flow when we should be running.
+        if (it) {
+          combine(
+              navigationViewModel.fingerprintFlow,
+              fingerprintEnrollViewModel.educationEnrollFlow.filterNotNull(),
+            ) { enrollType, educationFlow ->
+              Pair(enrollType, educationFlow)
+            }
+            .collect { (enrollType, educationFlow) ->
+              when (educationFlow) {
+                // TODO: Cancel the enroll() when EnrollProgress is received instead of proceeding
+                // to
+                // Enrolling page. Otherwise Enrolling page will receive the EnrollError.
+                is FingerEnrollState.EnrollProgress -> proceedToEnrolling()
+                is FingerEnrollState.EnrollError -> {
+                  if (educationFlow.isCancelled) {
+                    proceedToEnrolling()
+                  } else {
+                    _showErrorDialog.update { Pair(educationFlow.errString, enrollType == SetupWizard) }
+                  }
+                }
+                is FingerEnrollState.EnrollHelp -> {}
               }
             }
-            is FingerEnrollStateViewModel.EnrollHelp -> {}
-          }
         }
+      }
     }
   }
 
+  /** Indicates if education can begin */
+  private fun canStartEducation() {
+    if (!_didTryEducation) {
+      _didTryEducation = true
+      _education.update { true }
+    }
+  }
+
+  /** Indicates that education has finished */
+  private fun stopEducation() {
+    _education.update { false }
+  }
+
   /** Proceed to EnrollEnrolling page. */
   fun proceedToEnrolling() {
     navigationViewModel.nextStep()
   }
 
-  // TODO: If we decide to remove previous fragment from activity, then we don't need to check
-  // whether education is shown for the flows that are subscribed by
-  // [FingerprintEnrollFindSensorV2Fragment].
-  private fun <T> Flow<T>.filterWhenEducationIsShown() =
-    combineTransform(navigationViewModel.navigationViewModel) { value, navigationViewModel ->
-      if (navigationViewModel.currStep == Education) {
-        emit(value)
-      }
-    }
-
   class FingerprintEnrollFindSensorViewModelFactory(
     private val navigationViewModel: FingerprintEnrollNavigationViewModel,
     private val fingerprintEnrollViewModel: FingerprintEnrollViewModel,
     private val gatekeeperViewModel: FingerprintGatekeeperViewModel,
+    private val backgroundViewModel: BackgroundViewModel,
     private val accessibilityViewModel: AccessibilityViewModel,
     private val foldStateViewModel: FoldStateViewModel,
     private val orientationStateViewModel: OrientationStateViewModel
@@ -165,6 +187,7 @@
         navigationViewModel,
         fingerprintEnrollViewModel,
         gatekeeperViewModel,
+        backgroundViewModel,
         accessibilityViewModel,
         foldStateViewModel,
         orientationStateViewModel
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 392d205..c7a1071 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
@@ -17,32 +17,41 @@
 
 import androidx.lifecycle.ViewModel
 import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.viewModelScope
 import com.android.settings.biometrics.fingerprint2.shared.domain.interactor.FingerprintManagerInteractor
 import com.android.settings.biometrics.fingerprint2.shared.model.EnrollReason
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollStateViewModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollState
 import com.android.systemui.biometrics.shared.model.FingerprintSensorType
-import kotlinx.coroutines.CoroutineDispatcher
 import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.SharingStarted
 import kotlinx.coroutines.flow.combine
 import kotlinx.coroutines.flow.filterNotNull
-import kotlinx.coroutines.flow.flowOn
 import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.flow.shareIn
 import kotlinx.coroutines.flow.transformLatest
-import kotlinx.coroutines.flow.update
-
-private const val TAG = "FingerprintEnrollViewModel"
 
 /** Represents all of the fingerprint information needed for a fingerprint enrollment process. */
 class FingerprintEnrollViewModel(
   private val fingerprintManagerInteractor: FingerprintManagerInteractor,
-  backgroundDispatcher: CoroutineDispatcher,
+  gatekeeperViewModel: FingerprintGatekeeperViewModel,
+  navigationViewModel: FingerprintEnrollNavigationViewModel,
 ) : ViewModel() {
 
-  private var _enrollReason: MutableStateFlow<EnrollReason> =
-    MutableStateFlow(EnrollReason.FindSensor)
-  private var _hardwareAuthToken: MutableStateFlow<ByteArray?> = MutableStateFlow(null)
-  private var _consumerShouldEnroll: MutableStateFlow<Boolean> = MutableStateFlow(false)
+  /**
+   * Cached value of [FingerprintSensorType]
+   *
+   * This is typically used by fragments that change their layout/behavior based on this
+   * information. This value should be set before any fragment is created.
+   */
+  var sensorTypeCached: FingerprintSensorType? = null
+  private var _enrollReason: Flow<EnrollReason?> =
+    navigationViewModel.navigationViewModel.map {
+      when (it.currStep) {
+        is Enrollment -> EnrollReason.EnrollEnrolling
+        is Education -> EnrollReason.FindSensor
+        else -> null
+      }
+    }
 
   /** Represents the stream of [FingerprintSensorType] */
   val sensorType: Flow<FingerprintSensorType> =
@@ -51,47 +60,68 @@
   /**
    * A flow that contains a [FingerprintEnrollViewModel] which contains the relevant information for
    * an enrollment process
+   *
+   * This flow should be the only flow which calls enroll().
    */
-  val enrollFlow: Flow<FingerEnrollStateViewModel> =
-    combine(_consumerShouldEnroll, _hardwareAuthToken, _enrollReason) {
-        consumerShouldEnroll,
-        hardwareAuthToken,
-        enrollReason ->
-        Triple(consumerShouldEnroll, hardwareAuthToken, enrollReason)
+  val _enrollFlow: Flow<FingerEnrollState> =
+    combine(gatekeeperViewModel.gatekeeperInfo, _enrollReason) { hardwareAuthToken, enrollReason,
+        ->
+        Pair(hardwareAuthToken, enrollReason)
       }
       .transformLatest {
-        // transformLatest() instead of transform() is used here for cancelling previous enroll()
-        // whenever |consumerShouldEnroll| is changed. Otherwise the latest value will be suspended
-        // since enroll() is an infinite callback flow.
-        (consumerShouldEnroll, hardwareAuthToken, enrollReason) ->
-        if (consumerShouldEnroll && hardwareAuthToken != null) {
-          fingerprintManagerInteractor.enroll(hardwareAuthToken, enrollReason).collect { emit(it) }
+        /** [transformLatest] is used as we want to make sure to cancel previous API call. */
+        (hardwareAuthToken, enrollReason) ->
+        if (hardwareAuthToken is GatekeeperInfo.GatekeeperPasswordInfo && enrollReason != null) {
+          fingerprintManagerInteractor.enroll(hardwareAuthToken.token, enrollReason).collect {
+            emit(it)
+          }
         }
       }
-      .flowOn(backgroundDispatcher)
+      .shareIn(viewModelScope, SharingStarted.WhileSubscribed(), 0)
 
-  /** Used to indicate the consumer of the view model is ready for an enrollment. */
-  fun startEnroll(hardwareAuthToken: ByteArray?, enrollReason: EnrollReason) {
-    _enrollReason.update { enrollReason }
-    _hardwareAuthToken.update { hardwareAuthToken }
-    // Update _consumerShouldEnroll after updating the other values.
-    _consumerShouldEnroll.update { true }
-  }
+  /**
+   * This flow will kick off education when
+   * 1) There is an active subscriber to this flow
+   * 2) shouldEnroll is true and we are on the FindSensor step
+   */
+  val educationEnrollFlow: Flow<FingerEnrollState?> =
+    _enrollReason.filterNotNull().transformLatest { enrollReason ->
+      if (enrollReason == EnrollReason.FindSensor) {
+        _enrollFlow.collect { event -> emit(event) }
+      } else {
+        emit(null)
+      }
+    }
 
-  /** Used to indicate to stop the enrollment. */
-  fun stopEnroll() {
-    _consumerShouldEnroll.update { false }
-  }
+  /**
+   * This flow will kick off enrollment when
+   * 1) There is an active subscriber to this flow
+   * 2) shouldEnroll is true and we are on the EnrollEnrolling step
+   */
+  val enrollFlow: Flow<FingerEnrollState?> =
+    _enrollReason.filterNotNull().transformLatest { enrollReason ->
+      if (enrollReason == EnrollReason.EnrollEnrolling) {
+        _enrollFlow.collect { event -> emit(event) }
+      } else {
+        emit(null)
+      }
+    }
 
   class FingerprintEnrollViewModelFactory(
     val interactor: FingerprintManagerInteractor,
-    val backgroundDispatcher: CoroutineDispatcher
+    val gatekeeperViewModel: FingerprintGatekeeperViewModel,
+    val navigationViewModel: FingerprintEnrollNavigationViewModel,
   ) : ViewModelProvider.Factory {
     @Suppress("UNCHECKED_CAST")
     override fun <T : ViewModel> create(
       modelClass: Class<T>,
     ): T {
-      return FingerprintEnrollViewModel(interactor, backgroundDispatcher) as T
+      return FingerprintEnrollViewModel(
+        interactor,
+        gatekeeperViewModel,
+        navigationViewModel,
+      )
+        as T
     }
   }
 }
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrolllNavigationViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrolllNavigationViewModel.kt
index d2bb321..2e5dce0 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrolllNavigationViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrolllNavigationViewModel.kt
@@ -21,69 +21,47 @@
 import androidx.lifecycle.ViewModelProvider
 import androidx.lifecycle.viewModelScope
 import com.android.settings.biometrics.fingerprint2.shared.domain.interactor.FingerprintManagerInteractor
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintFlow
 import kotlinx.coroutines.CoroutineDispatcher
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.SharingStarted
 import kotlinx.coroutines.flow.asStateFlow
 import kotlinx.coroutines.flow.filterNotNull
+import kotlinx.coroutines.flow.shareIn
 import kotlinx.coroutines.flow.update
 import kotlinx.coroutines.launch
 
 private const val TAG = "FingerprintEnrollNavigationViewModel"
 
-/** Interface to validate a gatekeeper hat */
-interface Validator {
-  fun validateGateKeeper(challenge: Long?): Boolean
-}
-
-/**
- * The [EnrollType] for fingerprint enrollment indicates information on how the flow should behave.
- */
-sealed class EnrollType
-
-/** The default enrollment experience, typically called from Settings */
-object Default : EnrollType()
-
-/** SetupWizard/Out of box experience (OOBE) enrollment type. */
-object SetupWizard : EnrollType()
-
-/** Unicorn enrollment type */
-object Unicorn : EnrollType()
-
 /**
  * This class is responsible for sending a [NavigationStep] which indicates where the user is in the
  * Fingerprint Enrollment flow
  */
 class FingerprintEnrollNavigationViewModel(
   private val dispatcher: CoroutineDispatcher,
-  private val validator: Validator,
   private val fingerprintManagerInteractor: FingerprintManagerInteractor,
   private val gatekeeperViewModel: FingerprintGatekeeperViewModel,
-  private val canSkipConfirm: Boolean
+  private val firstStep: NextStepViewModel,
+  private val navState: NavState,
+  private val theFingerprintFlow: FingerprintFlow,
 ) : ViewModel() {
 
   private class InternalNavigationStep(
     lastStep: NextStepViewModel,
     nextStep: NextStepViewModel,
     forward: Boolean,
-    var canNavigate: Boolean
+    var canNavigate: Boolean,
   ) : NavigationStep(lastStep, nextStep, forward)
 
-  private var _enrollType = MutableStateFlow<EnrollType?>(Default)
+  private var _fingerprintFlow = MutableStateFlow<FingerprintFlow?>(theFingerprintFlow)
 
-  /** A flow that indicates the [EnrollType] */
-  val enrollType: Flow<EnrollType?> = _enrollType.asStateFlow()
-
-  private var navState = NavState(canSkipConfirm)
+  /** A flow that indicates the [FingerprintFlow] */
+  val fingerprintFlow: Flow<FingerprintFlow?> = _fingerprintFlow.asStateFlow()
 
   private val _navigationStep =
     MutableStateFlow(
-      InternalNavigationStep(
-        PlaceHolderState,
-        Start.next(navState),
-        forward = false,
-        canNavigate = true
-      )
+      InternalNavigationStep(PlaceHolderState, firstStep, forward = false, canNavigate = true)
     )
 
   init {
@@ -102,6 +80,10 @@
    */
   val navigationViewModel: Flow<NavigationStep> = _navigationStep.asStateFlow()
 
+  /** This action indicates that the UI should actually update the navigation to the given step. */
+  val navigationAction: Flow<NavigationStep?> =
+    _navigationStep.shareIn(viewModelScope, SharingStarted.Lazily, 0)
+
   /** Used to start the next step of Fingerprint Enrollment. */
   fun nextStep() {
     viewModelScope.launch {
@@ -136,6 +118,7 @@
     private val fingerprintManagerInteractor: FingerprintManagerInteractor,
     private val fingerprintGatekeeperViewModel: FingerprintGatekeeperViewModel,
     private val canSkipConfirm: Boolean,
+    private val fingerprintFlow: FingerprintFlow,
   ) : ViewModelProvider.Factory {
 
     @Suppress("UNCHECKED_CAST")
@@ -143,16 +126,14 @@
       modelClass: Class<T>,
     ): T {
 
+      val navState = NavState(canSkipConfirm)
       return FingerprintEnrollNavigationViewModel(
         backgroundDispatcher,
-        object : Validator {
-          override fun validateGateKeeper(challenge: Long?): Boolean {
-            return challenge != null
-          }
-        },
         fingerprintManagerInteractor,
         fingerprintGatekeeperViewModel,
-        canSkipConfirm,
+        Start.next(navState),
+        navState,
+        fingerprintFlow,
       )
         as T
     }
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/NextStepViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/NextStepViewModel.kt
index e99b8f9..b68f6d6 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/NextStepViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/NextStepViewModel.kt
@@ -57,7 +57,7 @@
  * This state is the initial state for the current step, and will be used to determine if the user
  * needs to [LaunchConfirmDeviceCredential] if not, it will go to [Intro]
  */
-object Start : NextStepViewModel() {
+data object Start : NextStepViewModel() {
   override fun next(state: NavState): NextStepViewModel =
     if (state.confirmedDevice) Intro else LaunchConfirmDeviceCredential
 
@@ -71,19 +71,19 @@
 }
 
 /** State for the FingerprintEnrollment introduction */
-object Intro : NextStepViewModel() {
+data object Intro : NextStepViewModel() {
   override fun next(state: NavState): NextStepViewModel = Education
   override fun prev(state: NavState): NextStepViewModel = Finish(null)
 }
 
 /** State for the FingerprintEnrollment education */
-object Education : NextStepViewModel() {
+data object Education : NextStepViewModel() {
   override fun next(state: NavState): NextStepViewModel = Enrollment
   override fun prev(state: NavState): NextStepViewModel = Intro
 }
 
 /** State for the FingerprintEnrollment enrollment */
-object Enrollment : NextStepViewModel() {
+data object Enrollment : NextStepViewModel() {
   override fun next(state: NavState): NextStepViewModel = Confirmation
   override fun prev(state: NavState): NextStepViewModel = Education
 }
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/settings/binder/FingerprintSettingsViewBinder.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/binder/FingerprintSettingsViewBinder.kt
index e66b4cd..debdfb8 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/settings/binder/FingerprintSettingsViewBinder.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/binder/FingerprintSettingsViewBinder.kt
@@ -19,8 +19,8 @@
 import android.hardware.fingerprint.FingerprintManager
 import android.util.Log
 import androidx.lifecycle.LifecycleCoroutineScope
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptViewModel
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
 import com.android.settings.biometrics.fingerprint2.ui.settings.binder.FingerprintSettingsViewBinder.FingerprintView
 import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.EnrollAdditionalFingerprint
 import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.EnrollFirstFingerprint
@@ -66,21 +66,21 @@
     /** Indicates what result should be set for the returning callee */
     fun setResultExternal(resultCode: Int)
     /** Indicates the settings UI should be shown */
-    fun showSettings(enrolledFingerprints: List<FingerprintViewModel>)
+    fun showSettings(enrolledFingerprints: List<FingerprintData>)
     /** Updates the add fingerprints preference */
     fun updateAddFingerprintsPreference(canEnroll: Boolean, maxFingerprints: Int)
     /** Updates the sfps fingerprints preference */
     fun updateSfpsPreference(isSfpsPrefVisible: Boolean)
     /** Indicates that a user has been locked out */
-    fun userLockout(authAttemptViewModel: FingerprintAuthAttemptViewModel.Error)
+    fun userLockout(authAttemptViewModel: FingerprintAuthAttemptModel.Error)
     /** Indicates a fingerprint preference should be highlighted */
     suspend fun highlightPref(fingerId: Int)
     /** Indicates a user should be prompted to delete a fingerprint */
-    suspend fun askUserToDeleteDialog(fingerprintViewModel: FingerprintViewModel): Boolean
+    suspend fun askUserToDeleteDialog(fingerprintViewModel: FingerprintData): Boolean
     /** Indicates a user should be asked to renae ma dialog */
     suspend fun askUserToRenameDialog(
-      fingerprintViewModel: FingerprintViewModel
-    ): Pair<FingerprintViewModel, String>?
+      fingerprintViewModel: FingerprintData
+    ): Pair<FingerprintData, String>?
   }
 
   fun bind(
@@ -131,10 +131,10 @@
     lifecycleScope.launch {
       viewModel.authFlow.filterNotNull().collect {
         when (it) {
-          is FingerprintAuthAttemptViewModel.Success -> {
+          is FingerprintAuthAttemptModel.Success -> {
             view.highlightPref(it.fingerId)
           }
-          is FingerprintAuthAttemptViewModel.Error -> {
+          is FingerprintAuthAttemptModel.Error -> {
             if (it.error == FingerprintManager.FINGERPRINT_ERROR_LOCKOUT) {
               view.userLockout(it)
             }
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 32b50c5..71a22eb 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
@@ -26,7 +26,7 @@
 import android.os.UserManager
 import androidx.appcompat.app.AlertDialog
 import com.android.settings.R
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment
 import kotlin.coroutines.resume
 import kotlinx.coroutines.suspendCancellableCoroutine
@@ -34,7 +34,7 @@
 private const val KEY_IS_LAST_FINGERPRINT = "IS_LAST_FINGERPRINT"
 
 class FingerprintDeletionDialog : InstrumentedDialogFragment() {
-  private lateinit var fingerprintViewModel: FingerprintViewModel
+  private lateinit var fingerprintViewModel: FingerprintData
   private var isLastFingerprint: Boolean = false
   private lateinit var alertDialog: AlertDialog
   lateinit var onClickListener: DialogInterface.OnClickListener
@@ -51,7 +51,7 @@
 
   override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
     val fp = requireArguments().get(KEY_FINGERPRINT) as android.hardware.fingerprint.Fingerprint
-    fingerprintViewModel = FingerprintViewModel(fp.name.toString(), fp.biometricId, fp.deviceId)
+    fingerprintViewModel = FingerprintData(fp.name.toString(), fp.biometricId, fp.deviceId)
     isLastFingerprint = requireArguments().getBoolean(KEY_IS_LAST_FINGERPRINT)
     val title = getString(R.string.fingerprint_delete_title, fingerprintViewModel.name)
     var message = getString(R.string.fingerprint_v2_delete_message, fingerprintViewModel.name)
@@ -95,9 +95,9 @@
   companion object {
     private const val KEY_FINGERPRINT = "fingerprint"
     suspend fun showInstance(
-      fp: FingerprintViewModel,
-      lastFingerprint: Boolean,
-      target: FingerprintSettingsV2Fragment,
+        fp: FingerprintData,
+        lastFingerprint: Boolean,
+        target: FingerprintSettingsV2Fragment,
     ) = suspendCancellableCoroutine { continuation ->
       val dialog = FingerprintDeletionDialog()
       dialog.onClickListener = DialogInterface.OnClickListener { _, _ -> continuation.resume(true) }
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsPreference.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsPreference.kt
index b1e5097..ea26946 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsPreference.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsPreference.kt
@@ -22,7 +22,7 @@
 import androidx.lifecycle.lifecycleScope
 import androidx.preference.PreferenceViewHolder
 import com.android.settings.R
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
 import com.android.settingslib.widget.TwoTargetPreference
 import kotlinx.coroutines.delay
 import kotlinx.coroutines.launch
@@ -30,10 +30,10 @@
 private const val TAG = "FingerprintSettingsPreference"
 
 class FingerprintSettingsPreference(
-  context: Context,
-  val fingerprintViewModel: FingerprintViewModel,
-  val fragment: FingerprintSettingsV2Fragment,
-  val isLastFingerprint: Boolean
+    context: Context,
+    val fingerprintViewModel: FingerprintData,
+    val fragment: FingerprintSettingsV2Fragment,
+    val isLastFingerprint: Boolean
 ) : TwoTargetPreference(context) {
   private lateinit var myView: View
 
@@ -79,7 +79,7 @@
     return FingerprintDeletionDialog.showInstance(fingerprintViewModel, isLastFingerprint, fragment)
   }
 
-  suspend fun askUserToRenameDialog(): Pair<FingerprintViewModel, String>? {
+  suspend fun askUserToRenameDialog(): Pair<FingerprintData, String>? {
     return FingerprintSettingsRenameDialog.showInstance(fingerprintViewModel, fragment)
   }
 }
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 9bde0b0..ff469f1 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
@@ -27,7 +27,7 @@
 import android.widget.ImeAwareEditText
 import androidx.appcompat.app.AlertDialog
 import com.android.settings.R
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment
 import kotlin.coroutines.resume
 import kotlinx.coroutines.suspendCancellableCoroutine
@@ -46,7 +46,7 @@
   override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
     Log.d(TAG, "onCreateDialog $this")
     val fp = requireArguments().get(KEY_FINGERPRINT) as android.hardware.fingerprint.Fingerprint
-    val fingerprintViewModel = FingerprintViewModel(fp.name.toString(), fp.biometricId, fp.deviceId)
+    val fingerprintViewModel = FingerprintData(fp.name.toString(), fp.biometricId, fp.deviceId)
 
     val context = requireContext()
     val alertDialog =
@@ -101,7 +101,7 @@
   companion object {
     private const val KEY_FINGERPRINT = "fingerprint"
 
-    suspend fun showInstance(fp: FingerprintViewModel, target: FingerprintSettingsV2Fragment) =
+    suspend fun showInstance(fp: FingerprintData, target: FingerprintSettingsV2Fragment) =
       suspendCancellableCoroutine { continuation ->
         val dialog = FingerprintSettingsRenameDialog()
         val onClick =
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 c818566..c22a5a7 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
@@ -46,8 +46,10 @@
 import com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling
 import com.android.settings.biometrics.fingerprint.FingerprintEnrollIntroductionInternal
 import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractorImpl
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptViewModel
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
+import com.android.settings.biometrics.fingerprint2.repository.PressToAuthProviderImpl
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
+import com.android.settings.biometrics.fingerprint2.shared.model.Settings
 import com.android.settings.biometrics.fingerprint2.ui.settings.binder.FingerprintSettingsViewBinder
 import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsNavigationViewModel
 import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsViewModel
@@ -142,7 +144,7 @@
       }
     }
 
-  override fun userLockout(authAttemptViewModel: FingerprintAuthAttemptViewModel.Error) {
+  override fun userLockout(authAttemptViewModel: FingerprintAuthAttemptModel.Error) {
     Toast.makeText(activity, authAttemptViewModel.message, Toast.LENGTH_SHORT).show()
   }
 
@@ -186,40 +188,46 @@
     val backgroundDispatcher = Dispatchers.IO
     val activity = requireActivity()
     val userHandle = activity.user.identifier
+    // Note that SUW should not be launching FingerprintSettings
+    val isAnySuw = Settings
+
+    val pressToAuthProvider = {
+      var toReturn: Int =
+        Secure.getIntForUser(
+          context.contentResolver,
+          Secure.SFPS_PERFORMANT_AUTH_ENABLED,
+          -1,
+          userHandle,
+        )
+      if (toReturn == -1) {
+        toReturn =
+          if (
+            context.resources.getBoolean(com.android.internal.R.bool.config_performantAuthDefault)
+          ) {
+            1
+          } else {
+            0
+          }
+        Secure.putIntForUser(
+          context.contentResolver,
+          Secure.SFPS_PERFORMANT_AUTH_ENABLED,
+          toReturn,
+          userHandle
+        )
+      }
+
+      toReturn == 1
+    }
 
     val interactor =
       FingerprintManagerInteractorImpl(
         context.applicationContext,
         backgroundDispatcher,
         fingerprintManager,
-        GatekeeperPasswordProvider(LockPatternUtils(context.applicationContext))
-      ) {
-        var toReturn: Int =
-          Secure.getIntForUser(
-            context.contentResolver,
-            Secure.SFPS_PERFORMANT_AUTH_ENABLED,
-            -1,
-            userHandle,
-          )
-        if (toReturn == -1) {
-          toReturn =
-            if (
-              context.resources.getBoolean(com.android.internal.R.bool.config_performantAuthDefault)
-            ) {
-              1
-            } else {
-              0
-            }
-          Secure.putIntForUser(
-            context.contentResolver,
-            Secure.SFPS_PERFORMANT_AUTH_ENABLED,
-            toReturn,
-            userHandle
-          )
-        }
-
-        toReturn == 1
-      }
+        GatekeeperPasswordProvider(LockPatternUtils(context.applicationContext)),
+        PressToAuthProviderImpl(context),
+        isAnySuw
+      )
 
     val token = intent.getByteArrayExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN)
     val challenge = intent.getLongExtra(BiometricEnrollBase.EXTRA_KEY_CHALLENGE, -1L)
@@ -292,18 +300,18 @@
   }
 
   /** Used to indicate that preference has been clicked */
-  fun onPrefClicked(fingerprintViewModel: FingerprintViewModel) {
+  fun onPrefClicked(fingerprintViewModel: FingerprintData) {
     Log.d(TAG, "onPrefClicked(${fingerprintViewModel})")
     settingsViewModel.onPrefClicked(fingerprintViewModel)
   }
 
   /** Used to indicate that a delete pref has been clicked */
-  fun onDeletePrefClicked(fingerprintViewModel: FingerprintViewModel) {
+  fun onDeletePrefClicked(fingerprintViewModel: FingerprintData) {
     Log.d(TAG, "onDeletePrefClicked(${fingerprintViewModel})")
     settingsViewModel.onDeleteClicked(fingerprintViewModel)
   }
 
-  override fun showSettings(enrolledFingerprints: List<FingerprintViewModel>) {
+  override fun showSettings(enrolledFingerprints: List<FingerprintData>) {
     val category =
       this@FingerprintSettingsV2Fragment.findPreference(KEY_FINGERPRINTS_ENROLLED_CATEGORY)
         as PreferenceCategory?
@@ -422,7 +430,7 @@
     }
   }
 
-  override suspend fun askUserToDeleteDialog(fingerprintViewModel: FingerprintViewModel): Boolean {
+  override suspend fun askUserToDeleteDialog(fingerprintViewModel: FingerprintData): Boolean {
     Log.d(TAG, "showing delete dialog for (${fingerprintViewModel})")
 
     try {
@@ -446,8 +454,8 @@
   }
 
   override suspend fun askUserToRenameDialog(
-    fingerprintViewModel: FingerprintViewModel
-  ): Pair<FingerprintViewModel, String>? {
+    fingerprintViewModel: FingerprintData
+  ): Pair<FingerprintData, String>? {
     Log.d(TAG, "showing rename dialog for (${fingerprintViewModel})")
     try {
       val toReturn =
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 fa1e5e1..164f79f 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
@@ -22,8 +22,8 @@
 import androidx.lifecycle.ViewModelProvider
 import androidx.lifecycle.viewModelScope
 import com.android.settings.biometrics.fingerprint2.shared.domain.interactor.FingerprintManagerInteractor
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptViewModel
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
 import com.android.systemui.biometrics.shared.model.FingerprintSensorType
 import kotlinx.coroutines.CoroutineDispatcher
 import kotlinx.coroutines.flow.Flow
@@ -53,11 +53,11 @@
   private val backgroundDispatcher: CoroutineDispatcher,
   private val navigationViewModel: FingerprintSettingsNavigationViewModel,
 ) : ViewModel() {
-  private val _enrolledFingerprints: MutableStateFlow<List<FingerprintViewModel>?> =
+  private val _enrolledFingerprints: MutableStateFlow<List<FingerprintData>?> =
     MutableStateFlow(null)
 
   /** Represents the stream of enrolled fingerprints. */
-  val enrolledFingerprints: Flow<List<FingerprintViewModel>> =
+  val enrolledFingerprints: Flow<List<FingerprintData>> =
     _enrolledFingerprints.asStateFlow().filterNotNull().filterOnlyWhenSettingsIsShown()
 
   /** Represents the stream of the information of "Add Fingerprint" preference. */
@@ -95,10 +95,10 @@
   private val _sensorNullOrEmpty: Flow<Boolean> =
     fingerprintManagerInteractor.sensorPropertiesInternal.map { it == null }
 
-  private val _isLockedOut: MutableStateFlow<FingerprintAuthAttemptViewModel.Error?> =
+  private val _isLockedOut: MutableStateFlow<FingerprintAuthAttemptModel.Error?> =
     MutableStateFlow(null)
 
-  private val _authSucceeded: MutableSharedFlow<FingerprintAuthAttemptViewModel.Success?> =
+  private val _authSucceeded: MutableSharedFlow<FingerprintAuthAttemptModel.Success?> =
     MutableSharedFlow()
 
   private val _attemptsSoFar: MutableStateFlow<Int> = MutableStateFlow(0)
@@ -164,7 +164,7 @@
       .distinctUntilChanged()
 
   /** Represents a consistent stream of authentication attempts. */
-  val authFlow: Flow<FingerprintAuthAttemptViewModel> =
+  val authFlow: Flow<FingerprintAuthAttemptModel> =
     canAuthenticate
       .transformLatest {
         try {
@@ -173,11 +173,11 @@
             Log.d(TAG, "canAuthenticate authing")
             attemptingAuth()
             when (val authAttempt = fingerprintManagerInteractor.authenticate()) {
-              is FingerprintAuthAttemptViewModel.Success -> {
+              is FingerprintAuthAttemptModel.Success -> {
                 onAuthSuccess(authAttempt)
                 emit(authAttempt)
               }
-              is FingerprintAuthAttemptViewModel.Error -> {
+              is FingerprintAuthAttemptModel.Error -> {
                 if (authAttempt.error == FingerprintManager.FINGERPRINT_ERROR_LOCKOUT) {
                   lockout(authAttempt)
                   emit(authAttempt)
@@ -219,7 +219,7 @@
   }
 
   /** The fingerprint delete button has been clicked. */
-  fun onDeleteClicked(fingerprintViewModel: FingerprintViewModel) {
+  fun onDeleteClicked(fingerprintViewModel: FingerprintData) {
     viewModelScope.launch {
       if (_isShowingDialog.value == null || navigationViewModel.nextStep.value != ShowSettings) {
         _isShowingDialog.tryEmit(PreferenceViewModel.DeleteDialog(fingerprintViewModel))
@@ -230,7 +230,7 @@
   }
 
   /** The rename fingerprint dialog has been clicked. */
-  fun onPrefClicked(fingerprintViewModel: FingerprintViewModel) {
+  fun onPrefClicked(fingerprintViewModel: FingerprintData) {
     viewModelScope.launch {
       if (_isShowingDialog.value == null || navigationViewModel.nextStep.value != ShowSettings) {
         _isShowingDialog.tryEmit(PreferenceViewModel.RenameDialog(fingerprintViewModel))
@@ -241,7 +241,7 @@
   }
 
   /** A request to delete a fingerprint */
-  fun deleteFingerprint(fp: FingerprintViewModel) {
+  fun deleteFingerprint(fp: FingerprintData) {
     viewModelScope.launch(backgroundDispatcher) {
       if (fingerprintManagerInteractor.removeFingerprint(fp)) {
         updateEnrolledFingerprints()
@@ -250,7 +250,7 @@
   }
 
   /** A request to rename a fingerprint */
-  fun renameFingerprint(fp: FingerprintViewModel, newName: String) {
+  fun renameFingerprint(fp: FingerprintData, newName: String) {
     viewModelScope.launch {
       fingerprintManagerInteractor.renameFingerprint(fp, newName)
       updateEnrolledFingerprints()
@@ -261,12 +261,12 @@
     _attemptsSoFar.update { it + 1 }
   }
 
-  private suspend fun onAuthSuccess(success: FingerprintAuthAttemptViewModel.Success) {
+  private suspend fun onAuthSuccess(success: FingerprintAuthAttemptModel.Success) {
     _authSucceeded.emit(success)
     _attemptsSoFar.update { 0 }
   }
 
-  private fun lockout(attemptViewModel: FingerprintAuthAttemptViewModel.Error) {
+  private fun lockout(attemptViewModel: FingerprintAuthAttemptModel.Error) {
     _isLockedOut.update { attemptViewModel }
   }
 
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/PreferenceViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/PreferenceViewModel.kt
index 4c33f7f..181da4e 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/PreferenceViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/PreferenceViewModel.kt
@@ -16,15 +16,15 @@
 
 package com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel
 
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
 
 /** Classed use to represent a Dialogs state. */
 sealed class PreferenceViewModel {
   data class RenameDialog(
-    val fingerprintViewModel: FingerprintViewModel,
+      val fingerprintViewModel: FingerprintData,
   ) : PreferenceViewModel()
 
   data class DeleteDialog(
-    val fingerprintViewModel: FingerprintViewModel,
+      val fingerprintViewModel: FingerprintData,
   ) : PreferenceViewModel()
 }
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsDataSyncController.java b/src/com/android/settings/bluetooth/BluetoothDetailsDataSyncController.java
index a8cd85f..1f63993 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsDataSyncController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsDataSyncController.java
@@ -25,7 +25,8 @@
 import androidx.preference.PreferenceCategory;
 import androidx.preference.PreferenceFragmentCompat;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.SwitchPreferenceCompat;
+import androidx.preference.TwoStatePreference;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.settings.R;
@@ -81,7 +82,7 @@
 
     @Override
     public boolean onPreferenceClick(Preference preference) {
-        SwitchPreference switchPreference = (SwitchPreference) preference;
+        TwoStatePreference switchPreference = (TwoStatePreference) preference;
         String key = switchPreference.getKey();
         if (key.equals(KEY_PERM_SYNC)) {
             if (switchPreference.isChecked()) {
@@ -106,12 +107,17 @@
 
     @Override
     protected void refresh() {
-        SwitchPreference permSyncPref = mPreferenceCategory.findPreference(KEY_PERM_SYNC);
+        TwoStatePreference permSyncPref = mPreferenceCategory.findPreference(KEY_PERM_SYNC);
         if (permSyncPref == null) {
             permSyncPref = createPermSyncPreference(mPreferenceCategory.getContext());
             mPreferenceCategory.addPreference(permSyncPref);
         }
 
+        if (mAssociationId == DUMMY_ASSOCIATION_ID) {
+            permSyncPref.setVisible(false);
+            return;
+        }
+
         boolean visible = false;
         boolean checked = false;
         PermissionSyncRequest request = mCompanionDeviceManager.getPermissionSyncRequest(
@@ -127,8 +133,8 @@
     }
 
     @VisibleForTesting
-    SwitchPreference createPermSyncPreference(Context context) {
-        SwitchPreference pref = new SwitchPreference(context);
+    TwoStatePreference createPermSyncPreference(Context context) {
+        TwoStatePreference pref = new SwitchPreferenceCompat(context);
         pref.setKey(KEY_PERM_SYNC);
         pref.setTitle(context.getString(R.string.bluetooth_details_permissions_sync_title));
         pref.setSummary(context.getString(R.string.bluetooth_details_permissions_sync_summary));
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsHearingDeviceControlsController.java b/src/com/android/settings/bluetooth/BluetoothDetailsHearingDeviceControlsController.java
index c4a4221..18ad210 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsHearingDeviceControlsController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsHearingDeviceControlsController.java
@@ -18,7 +18,6 @@
 
 import android.content.Context;
 import android.text.TextUtils;
-import android.util.FeatureFlagUtils;
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceCategory;
@@ -51,8 +50,7 @@
 
     @Override
     public boolean isAvailable() {
-        return mCachedDevice.isHearingAidDevice() && FeatureFlagUtils.isEnabled(mContext,
-                FeatureFlagUtils.SETTINGS_ACCESSIBILITY_HEARING_AID_PAGE);
+        return mCachedDevice.isHearingAidDevice();
     }
 
     @Override
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherController.java b/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherController.java
index 562a469..d1d00d8 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherController.java
@@ -16,6 +16,7 @@
 
 package com.android.settings.bluetooth;
 
+import android.bluetooth.BluetoothDevice;
 import android.content.Context;
 
 import androidx.preference.PreferenceFragmentCompat;
@@ -75,7 +76,6 @@
     protected void refresh() {
         updateButtonPreferenceTitle(mPreference);
         setPreferencesVisibility(getButtonPreferenceVisibility(mCachedDevice));
-
     }
 
     private void updateButtonPreferenceTitle(ButtonPreference preference) {
@@ -97,7 +97,7 @@
         if (!cachedDevice.isConnectedHearingAidDevice()) {
             return false;
         }
-        return isBinauralMode(cachedDevice) && !isOtherSideConnected(cachedDevice);
+        return isBinauralMode(cachedDevice) && !isOtherSideBonded(cachedDevice);
     }
 
     private void launchPairingDetail() {
@@ -112,25 +112,16 @@
         return cachedDevice.getDeviceMode() == HearingAidInfo.DeviceMode.MODE_BINAURAL;
     }
 
-    private boolean isOtherSideConnected(CachedBluetoothDevice cachedDevice) {
-        // Check sub device for ASHA hearing aid
-        if (cachedDevice.isConnectedAshaHearingAidDevice()) {
-            final CachedBluetoothDevice subDevice = cachedDevice.getSubDevice();
-            if (subDevice != null && subDevice.isConnectedAshaHearingAidDevice()) {
-                return true;
-            }
-        }
+    private boolean isOtherSideBonded(CachedBluetoothDevice cachedDevice) {
+        final CachedBluetoothDevice subDevice = cachedDevice.getSubDevice();
+        final boolean subDeviceBonded =
+                subDevice != null && subDevice.getBondState() == BluetoothDevice.BOND_BONDED;
 
-        // Check member device for LE audio hearing aid
-        if (cachedDevice.isConnectedLeAudioHearingAidDevice()) {
-            final Set<CachedBluetoothDevice> memberDevices = cachedDevice.getMemberDevice();
-            for (CachedBluetoothDevice memberDevice : memberDevices) {
-                if (memberDevice.isConnectedLeAudioHearingAidDevice()) {
-                    return true;
-                }
-            }
-        }
+        final Set<CachedBluetoothDevice> memberDevice = cachedDevice.getMemberDevice();
+        final boolean allMemberDevicesBonded =
+                !memberDevice.isEmpty() && memberDevice.stream().allMatch(
+                        device -> device.getBondState() == BluetoothDevice.BOND_BONDED);
 
-        return false;
+        return subDeviceBonded || allMemberDevicesBonded;
     }
 }
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java b/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java
index f473f2c..a3dace6 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java
@@ -16,11 +16,14 @@
 
 package com.android.settings.bluetooth;
 
+import static android.bluetooth.BluetoothDevice.METADATA_MODEL_NAME;
+
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothProfile;
 import android.content.Context;
 import android.os.SystemProperties;
 import android.provider.DeviceConfig;
+import android.sysprop.BluetoothProperties;
 import android.text.TextUtils;
 import android.util.Log;
 
@@ -29,11 +32,13 @@
 import androidx.preference.PreferenceCategory;
 import androidx.preference.PreferenceFragmentCompat;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.SwitchPreferenceCompat;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.core.SettingsUIDeviceConfig;
 import com.android.settingslib.bluetooth.A2dpProfile;
+import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.bluetooth.HeadsetProfile;
 import com.android.settingslib.bluetooth.LeAudioProfile;
@@ -68,7 +73,8 @@
 
     private static final String ENABLE_DUAL_MODE_AUDIO =
             "persist.bluetooth.enable_dual_mode_audio";
-    private static final String CONFIG_LE_AUDIO_ENABLED_BY_DEFAULT = "le_audio_enabled_by_default";
+    private static final String LE_AUDIO_CONNECTION_BY_DEFAULT_PROPERTY =
+            "ro.bluetooth.leaudio.le_audio_connection_by_default";
     private static final boolean LE_AUDIO_TOGGLE_VISIBLE_DEFAULT_VALUE = true;
     private static final String LE_AUDIO_TOGGLE_VISIBLE_PROPERTY =
             "persist.bluetooth.leaudio.toggle_visible";
@@ -107,29 +113,48 @@
     /**
      * Creates a switch preference for the particular profile.
      *
-     * @param context The context to use when creating the SwitchPreference
+     * @param context The context to use when creating the TwoStatePreference
      * @param profile The profile for which the preference controls.
      * @return A preference that allows the user to choose whether this profile
      * will be connected to.
      */
-    private SwitchPreference createProfilePreference(Context context,
+    private TwoStatePreference createProfilePreference(Context context,
             LocalBluetoothProfile profile) {
-        SwitchPreference pref = new SwitchPreference(context);
+        TwoStatePreference pref = new SwitchPreferenceCompat(context);
         pref.setKey(profile.toString());
         pref.setTitle(profile.getNameResource(mCachedDevice.getDevice()));
         pref.setOnPreferenceClickListener(this);
         pref.setOrder(profile.getOrdinal());
 
-        if (profile instanceof LeAudioProfile) {
+        boolean isLeEnabledByDefault =
+                SystemProperties.getBoolean(LE_AUDIO_CONNECTION_BY_DEFAULT_PROPERTY, true);
+
+        if (profile instanceof LeAudioProfile && (!isLeEnabledByDefault || !isModelNameInAllowList(
+                BluetoothUtils.getStringMetaData(mCachedDevice.getDevice(),
+                        METADATA_MODEL_NAME)))) {
             pref.setSummary(R.string.device_details_leaudio_toggle_summary);
         }
         return pref;
     }
 
     /**
-     * Refreshes the state for an existing SwitchPreference for a profile.
+     * Checks if the device model name is in the LE audio allow list based on its model name.
+     *
+     * @param modelName The model name of the device to be checked.
+     * @return true if the device is in the allow list, false otherwise.
      */
-    private void refreshProfilePreference(SwitchPreference profilePref,
+    @VisibleForTesting
+    boolean isModelNameInAllowList(String modelName) {
+        if (modelName == null || modelName.isEmpty()) {
+            return false;
+        }
+        return BluetoothProperties.le_audio_allow_list().contains(modelName);
+    }
+
+    /**
+     * Refreshes the state for an existing TwoStatePreference for a profile.
+     */
+    private void refreshProfilePreference(TwoStatePreference profilePref,
             LocalBluetoothProfile profile) {
         BluetoothDevice device = mCachedDevice.getDevice();
         boolean isLeAudioEnabled = isLeAudioEnabled();
@@ -168,8 +193,8 @@
 
         if (profile instanceof A2dpProfile) {
             A2dpProfile a2dp = (A2dpProfile) profile;
-            SwitchPreference highQualityPref = (SwitchPreference) mProfilesContainer.findPreference(
-                    HIGH_QUALITY_AUDIO_PREF_TAG);
+            TwoStatePreference highQualityPref =
+                    mProfilesContainer.findPreference(HIGH_QUALITY_AUDIO_PREF_TAG);
             if (highQualityPref != null) {
                 if (a2dp.isEnabled(device) && a2dp.supportsHighQualityAudio(device)) {
                     highQualityPref.setVisible(true);
@@ -254,7 +279,7 @@
                 return false;
             }
         }
-        SwitchPreference profilePref = (SwitchPreference) preference;
+        TwoStatePreference profilePref = (TwoStatePreference) preference;
         if (profilePref.isChecked()) {
             enableProfile(profile);
         } else {
@@ -433,12 +458,12 @@
         BluetoothDevice device = mCachedDevice.getDevice();
         A2dpProfile a2dp = (A2dpProfile) profile;
         if (a2dp.isProfileReady() && a2dp.supportsHighQualityAudio(device)) {
-            SwitchPreference highQualityAudioPref = new SwitchPreference(
+            TwoStatePreference highQualityAudioPref = new SwitchPreferenceCompat(
                     mProfilesContainer.getContext());
             highQualityAudioPref.setKey(HIGH_QUALITY_AUDIO_PREF_TAG);
             highQualityAudioPref.setVisible(false);
             highQualityAudioPref.setOnPreferenceClickListener(clickedPref -> {
-                boolean enable = ((SwitchPreference) clickedPref).isChecked();
+                boolean enable = ((TwoStatePreference) clickedPref).isChecked();
                 a2dp.setHighQualityAudioEnabled(mCachedDevice.getDevice(), enable);
                 return true;
             });
@@ -469,12 +494,12 @@
                 SettingsUIDeviceConfig.BT_LE_AUDIO_CONTACT_SHARING_ENABLED, true);
         boolean isLeAudioToggleVisible = SystemProperties.getBoolean(
                 LE_AUDIO_TOGGLE_VISIBLE_PROPERTY, LE_AUDIO_TOGGLE_VISIBLE_DEFAULT_VALUE);
-        boolean isLeEnabledByDefault = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_BLUETOOTH,
-                CONFIG_LE_AUDIO_ENABLED_BY_DEFAULT, false);
+        boolean isLeEnabledByDefault =
+                SystemProperties.getBoolean(LE_AUDIO_CONNECTION_BY_DEFAULT_PROPERTY, true);
         mIsLeAudioToggleEnabled = isLeAudioToggleVisible || isLeEnabledByDefault;
         Log.d(TAG, "BT_LE_AUDIO_CONTACT_SHARING_ENABLED:" + mIsLeContactSharingEnabled
                 + ", LE_AUDIO_TOGGLE_VISIBLE_PROPERTY:" + isLeAudioToggleVisible
-                + ", CONFIG_LE_AUDIO_ENABLED_BY_DEFAULT:" + isLeEnabledByDefault);
+                + ", LE_AUDIO_CONNECTION_BY_DEFAULT_PROPERTY:" + isLeEnabledByDefault);
     }
 
     @Override
@@ -510,8 +535,7 @@
             if (profile == null || !profile.isProfileReady()) {
                 continue;
             }
-            SwitchPreference pref = mProfilesContainer.findPreference(
-                    profile.toString());
+            TwoStatePreference pref = mProfilesContainer.findPreference(profile.toString());
             if (pref == null) {
                 pref = createProfilePreference(mProfilesContainer.getContext(), profile);
                 mProfilesContainer.addPreference(pref);
@@ -520,8 +544,8 @@
             refreshProfilePreference(pref, profile);
         }
         for (LocalBluetoothProfile removedProfile : mCachedDevice.getRemovedProfiles()) {
-            final SwitchPreference pref = mProfilesContainer.findPreference(
-                    removedProfile.toString());
+            final TwoStatePreference pref =
+                    mProfilesContainer.findPreference(removedProfile.toString());
             if (pref != null) {
                 mProfilesContainer.removePreference(pref);
             }
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioController.java b/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioController.java
index c431cee..0ce1b97 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioController.java
@@ -31,7 +31,8 @@
 import androidx.preference.PreferenceCategory;
 import androidx.preference.PreferenceFragmentCompat;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.SwitchPreferenceCompat;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
@@ -72,7 +73,7 @@
 
     @Override
     public boolean onPreferenceClick(Preference preference) {
-        SwitchPreference switchPreference = (SwitchPreference) preference;
+        TwoStatePreference switchPreference = (TwoStatePreference) preference;
         String key = switchPreference.getKey();
         if (TextUtils.equals(key, KEY_SPATIAL_AUDIO)) {
             updateSpatializerEnabled(switchPreference.isChecked());
@@ -124,7 +125,7 @@
             getAvailableDevice();
         }
 
-        SwitchPreference spatialAudioPref = mProfilesContainer.findPreference(KEY_SPATIAL_AUDIO);
+        TwoStatePreference spatialAudioPref = mProfilesContainer.findPreference(KEY_SPATIAL_AUDIO);
         if (spatialAudioPref == null && mAudioDevice != null) {
             spatialAudioPref = createSpatialAudioPreference(mProfilesContainer.getContext());
             mProfilesContainer.addPreference(spatialAudioPref);
@@ -132,7 +133,7 @@
             if (spatialAudioPref != null) {
                 mProfilesContainer.removePreference(spatialAudioPref);
             }
-            final SwitchPreference headTrackingPref =
+            final TwoStatePreference headTrackingPref =
                     mProfilesContainer.findPreference(KEY_HEAD_TRACKING);
             if (headTrackingPref != null) {
                 mProfilesContainer.removePreference(headTrackingPref);
@@ -144,12 +145,12 @@
         refreshSpatialAudioEnabled(spatialAudioPref);
     }
 
-    private void refreshSpatialAudioEnabled(SwitchPreference spatialAudioPref) {
+    private void refreshSpatialAudioEnabled(TwoStatePreference spatialAudioPref) {
         boolean isSpatialAudioOn = mSpatializer.getCompatibleAudioDevices().contains(mAudioDevice);
         Log.d(TAG, "refresh() isSpatialAudioOn : " + isSpatialAudioOn);
         spatialAudioPref.setChecked(isSpatialAudioOn);
 
-        SwitchPreference headTrackingPref = mProfilesContainer.findPreference(KEY_HEAD_TRACKING);
+        TwoStatePreference headTrackingPref = mProfilesContainer.findPreference(KEY_HEAD_TRACKING);
         if (headTrackingPref == null) {
             headTrackingPref = createHeadTrackingPreference(mProfilesContainer.getContext());
             mProfilesContainer.addPreference(headTrackingPref);
@@ -157,8 +158,8 @@
         refreshHeadTracking(spatialAudioPref, headTrackingPref);
     }
 
-    private void refreshHeadTracking(SwitchPreference spatialAudioPref,
-                                     SwitchPreference headTrackingPref) {
+    private void refreshHeadTracking(TwoStatePreference spatialAudioPref,
+            TwoStatePreference headTrackingPref) {
         boolean isHeadTrackingAvailable =
                 spatialAudioPref.isChecked() && mSpatializer.hasHeadTracker(mAudioDevice);
         Log.d(TAG, "refresh() has head tracker : " + mSpatializer.hasHeadTracker(mAudioDevice));
@@ -169,8 +170,8 @@
     }
 
     @VisibleForTesting
-    SwitchPreference createSpatialAudioPreference(Context context) {
-        SwitchPreference pref = new SwitchPreference(context);
+    TwoStatePreference createSpatialAudioPreference(Context context) {
+        TwoStatePreference pref = new SwitchPreferenceCompat(context);
         pref.setKey(KEY_SPATIAL_AUDIO);
         pref.setTitle(context.getString(R.string.bluetooth_details_spatial_audio_title));
         pref.setSummary(context.getString(R.string.bluetooth_details_spatial_audio_summary));
@@ -179,8 +180,8 @@
     }
 
     @VisibleForTesting
-    SwitchPreference createHeadTrackingPreference(Context context) {
-        SwitchPreference pref = new SwitchPreference(context);
+    TwoStatePreference createHeadTrackingPreference(Context context) {
+        TwoStatePreference pref = new SwitchPreferenceCompat(context);
         pref.setKey(KEY_HEAD_TRACKING);
         pref.setTitle(context.getString(R.string.bluetooth_details_head_tracking_title));
         pref.setSummary(context.getString(R.string.bluetooth_details_head_tracking_summary));
diff --git a/src/com/android/settings/bluetooth/BluetoothEnabler.java b/src/com/android/settings/bluetooth/BluetoothEnabler.java
index de49ce1..eaa0b96 100644
--- a/src/com/android/settings/bluetooth/BluetoothEnabler.java
+++ b/src/com/android/settings/bluetooth/BluetoothEnabler.java
@@ -63,12 +63,6 @@
     };
 
     public BluetoothEnabler(Context context, SwitchWidgetController switchController,
-            MetricsFeatureProvider metricsFeatureProvider, int metricsEvent) {
-        this(context, switchController, metricsFeatureProvider, metricsEvent,
-                new RestrictionUtils());
-    }
-
-    public BluetoothEnabler(Context context, SwitchWidgetController switchController,
             MetricsFeatureProvider metricsFeatureProvider, int metricsEvent,
             RestrictionUtils restrictionUtils) {
         mContext = context;
diff --git a/src/com/android/settings/bluetooth/BluetoothPairingDialogFragment.java b/src/com/android/settings/bluetooth/BluetoothPairingDialogFragment.java
index a3f9bd4..33e6fc3 100644
--- a/src/com/android/settings/bluetooth/BluetoothPairingDialogFragment.java
+++ b/src/com/android/settings/bluetooth/BluetoothPairingDialogFragment.java
@@ -32,8 +32,8 @@
 import android.view.inputmethod.InputMethodManager;
 import android.widget.Button;
 import android.widget.CheckBox;
+import android.widget.CompoundButton;
 import android.widget.EditText;
-import android.widget.Switch;
 import android.widget.TextView;
 
 import androidx.annotation.VisibleForTesting;
@@ -342,8 +342,8 @@
         TextView pairingViewCaption = (TextView) view.findViewById(R.id.pairing_caption);
         TextView pairingViewContent = (TextView) view.findViewById(R.id.pairing_subhead);
         TextView messagePairing = (TextView) view.findViewById(R.id.pairing_code_message);
-        Switch contactSharing = (Switch) view.findViewById(
-                R.id.phonebook_sharing_message_confirm_pin);
+        CompoundButton contactSharing =
+                view.findViewById(R.id.phonebook_sharing_message_confirm_pin);
         view.findViewById(R.id.phonebook_sharing).setVisibility(
                 mPairingController.isContactSharingVisible() ? View.VISIBLE : View.GONE);
         mPairingController.setContactSharingState();
diff --git a/src/com/android/settings/bluetooth/BluetoothPermissionActivity.java b/src/com/android/settings/bluetooth/BluetoothPermissionActivity.java
index fdd9e25..41606ba 100644
--- a/src/com/android/settings/bluetooth/BluetoothPermissionActivity.java
+++ b/src/com/android/settings/bluetooth/BluetoothPermissionActivity.java
@@ -24,10 +24,11 @@
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.IntentFilter;
+import android.content.pm.PackageManager.NameNotFoundException;
 import android.os.Bundle;
-import android.text.TextUtils;
 import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
+import android.text.TextUtils;
 import android.util.Log;
 import android.view.View;
 import android.widget.Button;
@@ -209,6 +210,14 @@
 
     @VisibleForTesting
     void sendReplyIntentToReceiver(final boolean allowed, final boolean always) {
+        String bluetoothName;
+        try {
+            bluetoothName = Utils.findBluetoothPackageName(this);
+        } catch (NameNotFoundException e) {
+            Log.e(TAG, "Failed to find bluetooth package name", e);
+            return;
+        }
+
         Intent intent = new Intent(BluetoothDevice.ACTION_CONNECTION_ACCESS_REPLY);
 
         if (DEBUG) {
@@ -216,6 +225,7 @@
                     + " mReturnPackage");
         }
 
+        intent.setPackage(bluetoothName);
         intent.putExtra(BluetoothDevice.EXTRA_CONNECTION_ACCESS_RESULT,
                         allowed ? BluetoothDevice.CONNECTION_ACCESS_YES
                                 : BluetoothDevice.CONNECTION_ACCESS_NO);
diff --git a/src/com/android/settings/bluetooth/BluetoothSliceBuilder.java b/src/com/android/settings/bluetooth/BluetoothSliceBuilder.java
index 508084d..fd8ef1f 100644
--- a/src/com/android/settings/bluetooth/BluetoothSliceBuilder.java
+++ b/src/com/android/settings/bluetooth/BluetoothSliceBuilder.java
@@ -124,7 +124,8 @@
 
     private static boolean isBluetoothEnabled() {
         final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
-        return adapter.isEnabled();
+        return adapter.getState() == BluetoothAdapter.STATE_ON
+                || adapter.getState() == BluetoothAdapter.STATE_TURNING_ON;
     }
 
     private static PendingIntent getPrimaryAction(Context context) {
diff --git a/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceDashboardFragment.java b/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceDashboardFragment.java
index e2d92c7..8e230cb 100644
--- a/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceDashboardFragment.java
+++ b/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceDashboardFragment.java
@@ -17,12 +17,10 @@
 
 import android.app.settings.SettingsEnums;
 import android.content.Context;
-import android.content.pm.PackageManager;
 import android.provider.SearchIndexableResource;
 
 import com.android.settings.R;
 import com.android.settings.dashboard.DashboardFragment;
-import com.android.settings.nfc.AndroidBeamPreferenceController;
 import com.android.settings.print.PrintSettingPreferenceController;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.uwb.UwbPreferenceController;
@@ -112,17 +110,6 @@
                 }
 
                 @Override
-                public List<String> getNonIndexableKeys(Context context) {
-                    final List<String> keys = super.getNonIndexableKeys(context);
-                    PackageManager pm = context.getPackageManager();
-                    if (!pm.hasSystemFeature(PackageManager.FEATURE_NFC)) {
-                        keys.add(AndroidBeamPreferenceController.KEY_ANDROID_BEAM_SETTINGS);
-                    }
-
-                    return keys;
-                }
-
-                @Override
                 public List<AbstractPreferenceController> createPreferenceControllers(
                         Context context) {
                     return buildControllers(context, null /* lifecycle */);
diff --git a/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java b/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
index 3903ce8..630acbb 100644
--- a/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
+++ b/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
@@ -27,8 +27,10 @@
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
 import com.android.settings.Utils;
+import com.android.settings.connecteddevice.audiosharing.AudioSharingDevicePreferenceController;
 import com.android.settings.core.SettingsUIDeviceConfig;
 import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.flags.Flags;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.overlay.SurveyFeatureProvider;
 import com.android.settings.search.BaseSearchIndexProvider;
@@ -43,10 +45,8 @@
     private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
     private static final String SLICE_ACTION = "com.android.settings.SEARCH_RESULT_TRAMPOLINE";
 
-    @VisibleForTesting
-    static final String KEY_CONNECTED_DEVICES = "connected_device_list";
-    @VisibleForTesting
-    static final String KEY_AVAILABLE_DEVICES = "available_device_list";
+    @VisibleForTesting static final String KEY_CONNECTED_DEVICES = "connected_device_list";
+    @VisibleForTesting static final String KEY_AVAILABLE_DEVICES = "available_device_list";
 
     @Override
     public int getMetricsCategory() {
@@ -71,21 +71,33 @@
     @Override
     public void onAttach(Context context) {
         super.onAttach(context);
-        final boolean nearbyEnabled = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SETTINGS_UI,
-                SettingsUIDeviceConfig.BT_NEAR_BY_SUGGESTION_ENABLED, true);
-        String callingAppPackageName = ((SettingsActivity) getActivity())
-                .getInitialCallingPackage();
+        final boolean nearbyEnabled =
+                DeviceConfig.getBoolean(
+                        DeviceConfig.NAMESPACE_SETTINGS_UI,
+                        SettingsUIDeviceConfig.BT_NEAR_BY_SUGGESTION_ENABLED,
+                        true);
+        String callingAppPackageName =
+                ((SettingsActivity) getActivity()).getInitialCallingPackage();
         String action = getIntent() != null ? getIntent().getAction() : "";
         if (DEBUG) {
-            Log.d(TAG, "onAttach() calling package name is : " + callingAppPackageName
-                    + ", action : " + action);
+            Log.d(
+                    TAG,
+                    "onAttach() calling package name is : "
+                            + callingAppPackageName
+                            + ", action : "
+                            + action);
+        }
+        if (Flags.enableLeAudioSharing()) {
+            use(AudioSharingDevicePreferenceController.class).init(this);
         }
         use(AvailableMediaDeviceGroupController.class).init(this);
         use(ConnectedDeviceGroupController.class).init(this);
         use(PreviouslyConnectedDevicePreferenceController.class).init(this);
-        use(SlicePreferenceController.class).setSliceUri(nearbyEnabled
-                ? Uri.parse(getString(R.string.config_nearby_devices_slice_uri))
-                : null);
+        use(SlicePreferenceController.class)
+                .setSliceUri(
+                        nearbyEnabled
+                                ? Uri.parse(getString(R.string.config_nearby_devices_slice_uri))
+                                : null);
         use(DiscoverableFooterPreferenceController.class)
                 .setAlwaysDiscoverable(isAlwaysDiscoverable(callingAppPackageName, action));
 
@@ -102,14 +114,13 @@
 
     @VisibleForTesting
     boolean isAlwaysDiscoverable(String callingAppPackageName, String action) {
-        return TextUtils.equals(SLICE_ACTION, action) ? false
+        return TextUtils.equals(SLICE_ACTION, action)
+                ? false
                 : TextUtils.equals(Utils.SETTINGS_PACKAGE_NAME, callingAppPackageName)
-                || TextUtils.equals(Utils.SYSTEMUI_PACKAGE_NAME, callingAppPackageName);
+                        || TextUtils.equals(Utils.SYSTEMUI_PACKAGE_NAME, callingAppPackageName);
     }
 
-    /**
-     * For Search.
-     */
+    /** For Search. */
     public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
             new BaseSearchIndexProvider(R.xml.connected_devices);
 }
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingBasePreferenceController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingBasePreferenceController.java
new file mode 100644
index 0000000..9ebe26d
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingBasePreferenceController.java
@@ -0,0 +1,70 @@
+/*
+ * 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.connecteddevice.audiosharing;
+
+import android.content.Context;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.bluetooth.Utils;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.flags.Flags;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+
+public abstract class AudioSharingBasePreferenceController extends BasePreferenceController {
+    private final LocalBluetoothManager mBtManager;
+    protected final LocalBluetoothLeBroadcast mBroadcast;
+    protected Preference mPreference;
+
+    public AudioSharingBasePreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+        mBtManager = Utils.getLocalBtManager(context);
+        mBroadcast =
+                mBtManager == null
+                        ? null
+                        : mBtManager.getProfileManager().getLeAudioBroadcastProfile();
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return mBtManager != null && Flags.enableLeAudioSharing()
+                ? AVAILABLE
+                : UNSUPPORTED_ON_DEVICE;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mPreference = screen.findPreference(getPreferenceKey());
+        updateVisibility(isBroadcasting());
+    }
+
+    /**
+     * Update the visibility of the preference.
+     *
+     * @param isVisible the latest visibility state for the preference.
+     */
+    public void updateVisibility(boolean isVisible) {
+        mPreference.setVisible(isVisible);
+    }
+
+    private boolean isBroadcasting() {
+        return mBroadcast != null && mBroadcast.isEnabled(null);
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingBluetoothDeviceUpdater.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingBluetoothDeviceUpdater.java
new file mode 100644
index 0000000..d3908c2
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingBluetoothDeviceUpdater.java
@@ -0,0 +1,112 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.connecteddevice.audiosharing;
+
+import android.bluetooth.BluetoothLeBroadcastReceiveState;
+import android.content.Context;
+import android.util.Log;
+
+import androidx.preference.Preference;
+
+import com.android.settings.bluetooth.BluetoothDevicePreference;
+import com.android.settings.bluetooth.BluetoothDeviceUpdater;
+import com.android.settings.bluetooth.Utils;
+import com.android.settings.connecteddevice.DevicePreferenceCallback;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+
+import java.util.List;
+
+public class AudioSharingBluetoothDeviceUpdater extends BluetoothDeviceUpdater
+        implements Preference.OnPreferenceClickListener {
+
+    private static final String TAG = "AudioSharingBluetoothDeviceUpdater";
+
+    private static final String PREF_KEY = "audio_sharing_bt";
+
+    private LocalBluetoothManager mLocalBluetoothManager;
+
+    public AudioSharingBluetoothDeviceUpdater(
+            Context context,
+            DevicePreferenceCallback devicePreferenceCallback,
+            int metricsCategory) {
+        super(context, devicePreferenceCallback, metricsCategory);
+        mLocalBluetoothManager = Utils.getLocalBluetoothManager(context);
+    }
+
+    @Override
+    public boolean isFilterMatched(CachedBluetoothDevice cachedDevice) {
+        boolean isFilterMatched = false;
+        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 (cachedDevice.isConnectedLeAudioDevice() && hasBroadcastSource(cachedDevice)) {
+                isFilterMatched = true;
+            }
+        }
+        Log.d(
+                TAG,
+                "isFilterMatched() device : "
+                        + cachedDevice.getName()
+                        + ", isFilterMatched : "
+                        + isFilterMatched);
+        return isFilterMatched;
+    }
+
+    @Override
+    public boolean onPreferenceClick(Preference preference) {
+        mMetricsFeatureProvider.logClickedPreference(preference, mMetricsCategory);
+        final CachedBluetoothDevice device =
+                ((BluetoothDevicePreference) preference).getBluetoothDevice();
+        return device.setActive();
+    }
+
+    private boolean hasBroadcastSource(CachedBluetoothDevice cachedDevice) {
+        LocalBluetoothLeBroadcastAssistant assistant =
+                mLocalBluetoothManager.getProfileManager().getLeAudioBroadcastAssistantProfile();
+        if (assistant == null) {
+            return false;
+        }
+        List<BluetoothLeBroadcastReceiveState> sourceList =
+                assistant.getAllSources(cachedDevice.getDevice());
+        if (!sourceList.isEmpty()) return true;
+        // Return true if member device is in broadcast.
+        for (CachedBluetoothDevice device : cachedDevice.getMemberDevice()) {
+            List<BluetoothLeBroadcastReceiveState> list =
+                    assistant.getAllSources(device.getDevice());
+            if (!list.isEmpty()) return true;
+        }
+        return false;
+    }
+
+    @Override
+    protected String getPreferenceKey() {
+        return PREF_KEY;
+    }
+
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+
+    @Override
+    protected void update(CachedBluetoothDevice cachedBluetoothDevice) {
+        super.update(cachedBluetoothDevice);
+        Log.d(TAG, "Map : " + mPreferenceMap);
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDashboardFragment.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDashboardFragment.java
new file mode 100644
index 0000000..40207be
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDashboardFragment.java
@@ -0,0 +1,97 @@
+/*
+ * 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.connecteddevice.audiosharing;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.os.Bundle;
+
+import com.android.settings.R;
+import com.android.settings.SettingsActivity;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.widget.SettingsMainSwitchBar;
+
+public class AudioSharingDashboardFragment extends DashboardFragment
+        implements AudioSharingSwitchBarController.OnSwitchBarChangedListener {
+    private static final String TAG = "AudioSharingDashboardFrag";
+
+    SettingsMainSwitchBar mMainSwitchBar;
+    private AudioSharingSwitchBarController mSwitchBarController;
+    private CallsAndAlarmsPreferenceController mCallsAndAlarmsPreferenceController;
+    private AudioSharingNamePreferenceController mAudioSharingNamePreferenceController;
+
+    public AudioSharingDashboardFragment() {
+        super();
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.AUDIO_SHARING_SETTINGS;
+    }
+
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+
+    @Override
+    public int getHelpResource() {
+        return R.string.help_url_audio_sharing;
+    }
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.bluetooth_audio_sharing;
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+    }
+
+    @Override
+    public void onAttach(Context context) {
+        super.onAttach(context);
+        mCallsAndAlarmsPreferenceController = use(CallsAndAlarmsPreferenceController.class);
+        mCallsAndAlarmsPreferenceController.init(this);
+        mAudioSharingNamePreferenceController = use(AudioSharingNamePreferenceController.class);
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+        // Assume we are in a SettingsActivity. This is only safe because we currently use
+        // SettingsActivity as base for all preference fragments.
+        final SettingsActivity activity = (SettingsActivity) getActivity();
+        mMainSwitchBar = activity.getSwitchBar();
+        mMainSwitchBar.setTitle(getText(R.string.audio_sharing_switch_title));
+        mSwitchBarController = new AudioSharingSwitchBarController(activity, mMainSwitchBar, this);
+        mSwitchBarController.init(this);
+        getSettingsLifecycle().addObserver(mSwitchBarController);
+        mMainSwitchBar.show();
+    }
+
+    @Override
+    public void onSwitchBarChanged(boolean newState) {
+        updateVisibilityForAttachedPreferences(newState);
+    }
+
+    private void updateVisibilityForAttachedPreferences(boolean isVisible) {
+        mCallsAndAlarmsPreferenceController.updateVisibility(isVisible);
+        mAudioSharingNamePreferenceController.updateVisibility(isVisible);
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceAdapter.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceAdapter.java
new file mode 100644
index 0000000..bc8ff21
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceAdapter.java
@@ -0,0 +1,83 @@
+/*
+ * 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.connecteddevice.audiosharing;
+
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+
+import com.android.internal.widget.RecyclerView;
+import com.android.settings.R;
+
+import java.util.ArrayList;
+
+public class AudioSharingDeviceAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
+
+    private static final String TAG = "AudioSharingDeviceAdapter";
+    private final ArrayList<AudioSharingDeviceItem> mDevices;
+    private final OnClickListener mOnClickListener;
+
+    public AudioSharingDeviceAdapter(
+            ArrayList<AudioSharingDeviceItem> devices, OnClickListener listener) {
+        mDevices = devices;
+        mOnClickListener = listener;
+    }
+
+    private class AudioSharingDeviceViewHolder extends RecyclerView.ViewHolder {
+        private final Button mButtonView;
+
+        AudioSharingDeviceViewHolder(View view) {
+            super(view);
+            mButtonView = view.findViewById(R.id.device_button);
+        }
+
+        public void bindView(int position) {
+            if (mButtonView != null) {
+                mButtonView.setText(mDevices.get(position).getName());
+                mButtonView.setOnClickListener(
+                        v -> mOnClickListener.onClick(mDevices.get(position)));
+            } else {
+                Log.w(TAG, "bind view skipped due to button view is null");
+            }
+        }
+    }
+
+    @Override
+    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+        View view =
+                LayoutInflater.from(parent.getContext())
+                        .inflate(R.layout.audio_sharing_device_item, parent, false);
+        return new AudioSharingDeviceViewHolder(view);
+    }
+
+    @Override
+    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
+        ((AudioSharingDeviceViewHolder) holder).bindView(position);
+    }
+
+    @Override
+    public int getItemCount() {
+        return mDevices.size();
+    }
+
+    public interface OnClickListener {
+        /** Called when an item has been clicked. */
+        void onClick(AudioSharingDeviceItem item);
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceItem.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceItem.java
new file mode 100644
index 0000000..5998e30
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceItem.java
@@ -0,0 +1,75 @@
+/*
+ * 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.connecteddevice.audiosharing;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+public final class AudioSharingDeviceItem implements Parcelable {
+    private final String mName;
+    private final int mGroupId;
+    private final boolean mIsActive;
+
+    public AudioSharingDeviceItem(String name, int groupId, boolean isActive) {
+        mName = name;
+        mGroupId = groupId;
+        mIsActive = isActive;
+    }
+
+    public String getName() {
+        return mName;
+    }
+
+    public int getGroupId() {
+        return mGroupId;
+    }
+
+    public boolean isActive() {
+        return mIsActive;
+    }
+
+    public AudioSharingDeviceItem(Parcel in) {
+        mName = in.readString();
+        mGroupId = in.readInt();
+        mIsActive = in.readBoolean();
+    }
+
+    @Override
+    public void writeToParcel(Parcel dest, int flags) {
+        dest.writeString(mName);
+        dest.writeInt(mGroupId);
+        dest.writeBoolean(mIsActive);
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    public static final Creator<AudioSharingDeviceItem> CREATOR =
+            new Creator<AudioSharingDeviceItem>() {
+                @Override
+                public AudioSharingDeviceItem createFromParcel(Parcel in) {
+                    return new AudioSharingDeviceItem(in);
+                }
+
+                @Override
+                public AudioSharingDeviceItem[] newArray(int size) {
+                    return new AudioSharingDeviceItem[size];
+                }
+            };
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDevicePreferenceController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDevicePreferenceController.java
new file mode 100644
index 0000000..0d2b53a
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDevicePreferenceController.java
@@ -0,0 +1,513 @@
+/*
+ * 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.connecteddevice.audiosharing;
+
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothLeBroadcast;
+import android.bluetooth.BluetoothLeBroadcastAssistant;
+import android.bluetooth.BluetoothLeBroadcastMetadata;
+import android.bluetooth.BluetoothLeBroadcastReceiveState;
+import android.bluetooth.BluetoothProfile;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.lifecycle.DefaultLifecycleObserver;
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceGroup;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.bluetooth.BluetoothDeviceUpdater;
+import com.android.settings.bluetooth.Utils;
+import com.android.settings.connecteddevice.DevicePreferenceCallback;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.flags.Flags;
+import com.android.settingslib.bluetooth.BluetoothCallback;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.LeAudioProfile;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
+
+public class AudioSharingDevicePreferenceController extends BasePreferenceController
+        implements DefaultLifecycleObserver, DevicePreferenceCallback, BluetoothCallback {
+
+    private static final String TAG = "AudioSharingDevicePrefController";
+    private static final String KEY = "audio_sharing_device_list";
+    private static final String KEY_AUDIO_SHARING_SETTINGS =
+            "connected_device_audio_sharing_settings";
+
+    private final LocalBluetoothManager mLocalBtManager;
+    private final LocalBluetoothLeBroadcast mBroadcast;
+    private final LocalBluetoothLeBroadcastAssistant mAssistant;
+    private final Executor mExecutor;
+    private PreferenceGroup mPreferenceGroup;
+    private Preference mAudioSharingSettingsPreference;
+    private BluetoothDeviceUpdater mBluetoothDeviceUpdater;
+    private DashboardFragment mFragment;
+    private List<BluetoothDevice> mTargetSinks = new ArrayList<>();
+
+    private final BluetoothLeBroadcast.Callback mBroadcastCallback =
+            new BluetoothLeBroadcast.Callback() {
+                @Override
+                public void onBroadcastStarted(int reason, int broadcastId) {
+                    Log.d(
+                            TAG,
+                            "onBroadcastStarted(), reason = "
+                                    + reason
+                                    + ", broadcastId = "
+                                    + broadcastId);
+                }
+
+                @Override
+                public void onBroadcastStartFailed(int reason) {
+                    Log.d(TAG, "onBroadcastStartFailed(), reason = " + reason);
+                    // TODO: handle broadcast start fail
+                }
+
+                @Override
+                public void onBroadcastMetadataChanged(
+                        int broadcastId, @NonNull BluetoothLeBroadcastMetadata metadata) {
+                    Log.d(
+                            TAG,
+                            "onBroadcastMetadataChanged(), broadcastId = "
+                                    + broadcastId
+                                    + ", metadata = "
+                                    + metadata);
+                    addSourceToTargetDevices(mTargetSinks);
+                    mTargetSinks = new ArrayList<>();
+                }
+
+                @Override
+                public void onBroadcastStopped(int reason, int broadcastId) {
+                    Log.d(
+                            TAG,
+                            "onBroadcastStopped(), reason = "
+                                    + reason
+                                    + ", broadcastId = "
+                                    + broadcastId);
+                }
+
+                @Override
+                public void onBroadcastStopFailed(int reason) {
+                    Log.d(TAG, "onBroadcastStopFailed(), reason = " + reason);
+                    // TODO: handle broadcast stop fail
+                }
+
+                @Override
+                public void onBroadcastUpdated(int reason, int broadcastId) {}
+
+                @Override
+                public void onBroadcastUpdateFailed(int reason, int broadcastId) {}
+
+                @Override
+                public void onPlaybackStarted(int reason, int broadcastId) {}
+
+                @Override
+                public void onPlaybackStopped(int reason, int broadcastId) {}
+            };
+
+    private BluetoothLeBroadcastAssistant.Callback mBroadcastAssistantCallback =
+            new BluetoothLeBroadcastAssistant.Callback() {
+                @Override
+                public void onSearchStarted(int reason) {}
+
+                @Override
+                public void onSearchStartFailed(int reason) {}
+
+                @Override
+                public void onSearchStopped(int reason) {}
+
+                @Override
+                public void onSearchStopFailed(int reason) {}
+
+                @Override
+                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);
+                    mBluetoothDeviceUpdater.forceUpdate();
+                }
+
+                @Override
+                public void onSourceAddFailed(
+                        @NonNull BluetoothDevice sink,
+                        @NonNull BluetoothLeBroadcastMetadata source,
+                        int reason) {
+                    Log.d(
+                            TAG,
+                            "onSourceAddFailed(), sink = "
+                                    + sink
+                                    + ", source = "
+                                    + source
+                                    + ", reason = "
+                                    + reason);
+                }
+
+                @Override
+                public void onSourceModified(
+                        @NonNull BluetoothDevice sink, int sourceId, int reason) {}
+
+                @Override
+                public void onSourceModifyFailed(
+                        @NonNull BluetoothDevice sink, int sourceId, int reason) {}
+
+                @Override
+                public void onSourceRemoved(
+                        @NonNull BluetoothDevice sink, int sourceId, int reason) {
+                    Log.d(
+                            TAG,
+                            "onSourceRemoved(), sink = "
+                                    + sink
+                                    + ", sourceId = "
+                                    + sourceId
+                                    + ", reason = "
+                                    + reason);
+                    mBluetoothDeviceUpdater.forceUpdate();
+                }
+
+                @Override
+                public void onSourceRemoveFailed(
+                        @NonNull BluetoothDevice sink, int sourceId, int reason) {
+                    Log.d(
+                            TAG,
+                            "onSourceRemoveFailed(), sink = "
+                                    + sink
+                                    + ", sourceId = "
+                                    + sourceId
+                                    + ", reason = "
+                                    + reason);
+                }
+
+                @Override
+                public void onReceiveStateChanged(
+                        BluetoothDevice sink,
+                        int sourceId,
+                        BluetoothLeBroadcastReceiveState state) {}
+            };
+
+    public AudioSharingDevicePreferenceController(Context context) {
+        super(context, KEY);
+        mLocalBtManager = Utils.getLocalBtManager(mContext);
+        mBroadcast = mLocalBtManager.getProfileManager().getLeAudioBroadcastProfile();
+        mAssistant = mLocalBtManager.getProfileManager().getLeAudioBroadcastAssistantProfile();
+        mExecutor = Executors.newSingleThreadExecutor();
+    }
+
+    @Override
+    public void onStart(@NonNull LifecycleOwner owner) {
+        if (mLocalBtManager == null) {
+            Log.d(TAG, "onStart() Bluetooth is not supported on this device");
+            return;
+        }
+        if (mBroadcast == null || mAssistant == null) {
+            Log.d(TAG, "onStart() Broadcast or assistant is not supported on this device");
+            return;
+        }
+        if (mBluetoothDeviceUpdater == null) {
+            Log.d(TAG, "onStart() Bluetooth device updater is not initialized");
+            return;
+        }
+        mLocalBtManager.getEventManager().registerCallback(this);
+        mBroadcast.registerServiceCallBack(mExecutor, mBroadcastCallback);
+        mAssistant.registerServiceCallBack(mExecutor, mBroadcastAssistantCallback);
+        mBluetoothDeviceUpdater.registerCallback();
+        mBluetoothDeviceUpdater.refreshPreference();
+    }
+
+    @Override
+    public void onStop(@NonNull LifecycleOwner owner) {
+        if (mLocalBtManager == null) {
+            Log.d(TAG, "onStop() Bluetooth is not supported on this device");
+            return;
+        }
+        if (mBroadcast == null || mAssistant == null) {
+            Log.d(TAG, "onStop() Broadcast or assistant is not supported on this device");
+            return;
+        }
+        if (mBluetoothDeviceUpdater == null) {
+            Log.d(TAG, "onStop() Bluetooth device updater is not initialized");
+            return;
+        }
+        mLocalBtManager.getEventManager().unregisterCallback(this);
+        // TODO: verify the reason for failing to unregister
+        try {
+            mBroadcast.unregisterServiceCallBack(mBroadcastCallback);
+            mAssistant.unregisterServiceCallBack(mBroadcastAssistantCallback);
+        } catch (IllegalArgumentException e) {
+            Log.e(
+                    TAG,
+                    "Fail to unregister broadcast or assistant callback due to " + e.getMessage());
+        }
+        mBluetoothDeviceUpdater.unregisterCallback();
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+
+        mPreferenceGroup = screen.findPreference(KEY);
+        mAudioSharingSettingsPreference =
+                mPreferenceGroup.findPreference(KEY_AUDIO_SHARING_SETTINGS);
+        mPreferenceGroup.setVisible(false);
+        mAudioSharingSettingsPreference.setVisible(false);
+
+        if (isAvailable()) {
+            mBluetoothDeviceUpdater.setPrefContext(screen.getContext());
+            mBluetoothDeviceUpdater.forceUpdate();
+        }
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)
+                        && Flags.enableLeAudioSharing()
+                ? AVAILABLE_UNSEARCHABLE
+                : UNSUPPORTED_ON_DEVICE;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY;
+    }
+
+    @Override
+    public void onDeviceAdded(Preference preference) {
+        if (mPreferenceGroup.getPreferenceCount() == 1) {
+            mPreferenceGroup.setVisible(true);
+            mAudioSharingSettingsPreference.setVisible(true);
+        }
+        mPreferenceGroup.addPreference(preference);
+    }
+
+    @Override
+    public void onDeviceRemoved(Preference preference) {
+        mPreferenceGroup.removePreference(preference);
+        if (mPreferenceGroup.getPreferenceCount() == 1) {
+            mPreferenceGroup.setVisible(false);
+            mAudioSharingSettingsPreference.setVisible(false);
+        }
+    }
+
+    @Override
+    public void onProfileConnectionStateChanged(
+            @NonNull CachedBluetoothDevice cachedDevice,
+            @ConnectionState int state,
+            int bluetoothProfile) {
+        if (state != BluetoothAdapter.STATE_CONNECTED || !cachedDevice.getDevice().isConnected()) {
+            Log.d(TAG, "Ignore onProfileConnectionStateChanged, not connected state");
+            return;
+        }
+        if (mFragment == null) {
+            Log.d(TAG, "Ignore onProfileConnectionStateChanged, no host fragment");
+            return;
+        }
+        if (mAssistant == null && mBroadcast == null) {
+            Log.d(
+                    TAG,
+                    "Ignore onProfileConnectionStateChanged, no broadcast or assistant supported");
+            return;
+        }
+        boolean isLeAudioSupported = isLeAudioSupported(cachedDevice);
+        // For eligible (LE audio) remote device, we only check its connected LE audio profile.
+        if (isLeAudioSupported && bluetoothProfile != BluetoothProfile.LE_AUDIO) {
+            Log.d(
+                    TAG,
+                    "Ignore onProfileConnectionStateChanged, not the le profile for le audio"
+                            + " device");
+            return;
+        }
+        boolean isFirstConnectedProfile = isFirstConnectedProfile(cachedDevice, bluetoothProfile);
+        // For ineligible (non LE audio) remote device, we only check its first connected profile.
+        if (!isLeAudioSupported && !isFirstConnectedProfile) {
+            Log.d(
+                    TAG,
+                    "Ignore onProfileConnectionStateChanged, not the first connected profile for"
+                            + " non le audio device");
+            return;
+        }
+        if (!isLeAudioSupported) {
+            // Handle connected ineligible (non LE audio) remote device
+            if (isBroadcasting()) {
+                // Show stop audio sharing dialog when an ineligible (non LE audio) remote device
+                // connected during a sharing session.
+                AudioSharingStopDialogFragment.show(
+                        mFragment,
+                        cachedDevice.getName(),
+                        () -> {
+                            mBroadcast.stopBroadcast(mBroadcast.getLatestBroadcastId());
+                        });
+            }
+            // Do nothing for ineligible (non LE audio) remote device when no sharing session.
+        } else {
+            Map<Integer, List<CachedBluetoothDevice>> groupedDevices =
+                    AudioSharingUtils.fetchConnectedDevicesByGroupId(mLocalBtManager);
+            // Handle connected eligible (LE audio) remote device
+            if (isBroadcasting()) {
+                // Show audio sharing switch or join dialog according to device count in the sharing
+                // session.
+                ArrayList<AudioSharingDeviceItem> deviceItemsInSharingSession =
+                        AudioSharingUtils.buildOrderedDeviceItemsInSharingSession(
+                                groupedDevices, mLocalBtManager);
+                // Show audio sharing switch dialog when the third eligible (LE audio) remote device
+                // connected during a sharing session.
+                if (deviceItemsInSharingSession.size() >= 2) {
+                    AudioSharingDisconnectDialogFragment.show(
+                            mFragment,
+                            deviceItemsInSharingSession,
+                            cachedDevice.getName(),
+                            (AudioSharingDeviceItem item) -> {
+                                // Remove all sources from the device user clicked
+                                for (CachedBluetoothDevice device :
+                                        groupedDevices.get(item.getGroupId())) {
+                                    for (BluetoothLeBroadcastReceiveState source :
+                                            mAssistant.getAllSources(device.getDevice())) {
+                                        mAssistant.removeSource(
+                                                device.getDevice(), source.getSourceId());
+                                    }
+                                }
+                                // Add current broadcast to the latest connected device
+                                mAssistant.addSource(
+                                        cachedDevice.getDevice(),
+                                        mBroadcast.getLatestBluetoothLeBroadcastMetadata(),
+                                        /* isGroupOp= */ true);
+                            });
+                } else {
+                    // Show audio sharing join dialog when the first or second eligible (LE audio)
+                    // remote device connected during a sharing session.
+                    AudioSharingJoinDialogFragment.show(
+                            mFragment,
+                            deviceItemsInSharingSession,
+                            cachedDevice.getName(),
+                            () -> {
+                                // Add current broadcast to the latest connected device
+                                mAssistant.addSource(
+                                        cachedDevice.getDevice(),
+                                        mBroadcast.getLatestBluetoothLeBroadcastMetadata(),
+                                        /* isGroupOp= */ true);
+                            });
+                }
+            } else {
+                ArrayList<AudioSharingDeviceItem> deviceItems = new ArrayList<>();
+                for (List<CachedBluetoothDevice> devices : groupedDevices.values()) {
+                    // Use random device in the group within the sharing session to
+                    // represent the group.
+                    CachedBluetoothDevice device = devices.get(0);
+                    if (device.getGroupId() == cachedDevice.getGroupId()) {
+                        continue;
+                    }
+                    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) {
+                    AudioSharingJoinDialogFragment.show(
+                            mFragment,
+                            deviceItems,
+                            cachedDevice.getName(),
+                            () -> {
+                                mTargetSinks = new ArrayList<>();
+                                for (List<CachedBluetoothDevice> devices :
+                                        groupedDevices.values()) {
+                                    for (CachedBluetoothDevice device : devices) {
+                                        mTargetSinks.add(device.getDevice());
+                                    }
+                                }
+                                mBroadcast.startBroadcast("test", null);
+                            });
+                }
+            }
+        }
+    }
+
+    /**
+     * Initialize the controller.
+     *
+     * @param fragment The fragment to provide the context and metrics category for {@link
+     *     AudioSharingBluetoothDeviceUpdater} and provide the host for dialogs.
+     */
+    public void init(DashboardFragment fragment) {
+        mFragment = fragment;
+        mBluetoothDeviceUpdater =
+                new AudioSharingBluetoothDeviceUpdater(
+                        fragment.getContext(),
+                        AudioSharingDevicePreferenceController.this,
+                        fragment.getMetricsCategory());
+    }
+
+    private boolean isLeAudioSupported(CachedBluetoothDevice cachedDevice) {
+        return cachedDevice.getProfiles().stream()
+                .anyMatch(
+                        profile ->
+                                profile instanceof LeAudioProfile
+                                        && profile.isEnabled(cachedDevice.getDevice()));
+    }
+
+    private boolean isFirstConnectedProfile(
+            CachedBluetoothDevice cachedDevice, int bluetoothProfile) {
+        return cachedDevice.getProfiles().stream()
+                .noneMatch(
+                        profile ->
+                                profile.getProfileId() != bluetoothProfile
+                                        && profile.getConnectionStatus(cachedDevice.getDevice())
+                                                == BluetoothProfile.STATE_CONNECTED);
+    }
+
+    private boolean isBroadcasting() {
+        return mBroadcast != null && mBroadcast.isEnabled(null);
+    }
+
+    private void addSourceToTargetDevices(List<BluetoothDevice> sinks) {
+        if (sinks.isEmpty() || mBroadcast == null || mAssistant == null) {
+            Log.d(TAG, "Skip adding source to target.");
+            return;
+        }
+        BluetoothLeBroadcastMetadata broadcastMetadata =
+                mBroadcast.getLatestBluetoothLeBroadcastMetadata();
+        if (broadcastMetadata == null) {
+            Log.e(TAG, "Error: There is no broadcastMetadata.");
+            return;
+        }
+        for (BluetoothDevice sink : sinks) {
+            Log.d(
+                    TAG,
+                    "Add broadcast with broadcastId: "
+                            + broadcastMetadata.getBroadcastId()
+                            + "to the device: "
+                            + sink.getAnonymizedAddress());
+            mAssistant.addSource(sink, broadcastMetadata, /* isGroupOp= */ false);
+        }
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogFragment.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogFragment.java
new file mode 100644
index 0000000..bcf0c12
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogFragment.java
@@ -0,0 +1,134 @@
+/*
+ * 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.connecteddevice.audiosharing;
+
+import android.app.Dialog;
+import android.app.settings.SettingsEnums;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+
+import com.android.internal.widget.LinearLayoutManager;
+import com.android.internal.widget.RecyclerView;
+import com.android.settings.R;
+import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settings.flags.Flags;
+
+import java.util.ArrayList;
+import java.util.Locale;
+
+public class AudioSharingDialogFragment extends InstrumentedDialogFragment {
+    private static final String TAG = "AudioSharingDialog";
+
+    private static final String BUNDLE_KEY_DEVICE_ITEMS = "bundle_key_device_names";
+
+    // The host creates an instance of this dialog fragment must implement this interface to receive
+    // event callbacks.
+    public interface DialogEventListener {
+        /**
+         * Called when users click the device item for sharing in the dialog.
+         *
+         * @param item The device item clicked.
+         */
+        void onItemClick(AudioSharingDeviceItem item);
+
+        /** Called when users click the cancel button in the dialog. */
+        void onCancelClick();
+    }
+
+    private static DialogEventListener sListener;
+
+    private View mRootView;
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.DIALOG_START_AUDIO_SHARING;
+    }
+
+    /**
+     * Display the {@link AudioSharingDialogFragment} dialog.
+     *
+     * @param host The Fragment this dialog will be hosted.
+     */
+    public static void show(
+            Fragment host,
+            ArrayList<AudioSharingDeviceItem> deviceItems,
+            DialogEventListener listener) {
+        if (!Flags.enableLeAudioSharing()) return;
+        final FragmentManager manager = host.getChildFragmentManager();
+        sListener = listener;
+        if (manager.findFragmentByTag(TAG) == null) {
+            final Bundle bundle = new Bundle();
+            bundle.putParcelableArrayList(BUNDLE_KEY_DEVICE_ITEMS, deviceItems);
+            AudioSharingDialogFragment dialog = new AudioSharingDialogFragment();
+            dialog.setArguments(bundle);
+            dialog.show(manager, TAG);
+        }
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        Bundle arguments = requireArguments();
+        ArrayList<AudioSharingDeviceItem> deviceItems =
+                arguments.getParcelableArrayList(BUNDLE_KEY_DEVICE_ITEMS);
+        final AlertDialog.Builder builder =
+                new AlertDialog.Builder(getActivity()).setTitle("Share audio").setCancelable(false);
+        mRootView =
+                LayoutInflater.from(builder.getContext())
+                        .inflate(R.layout.dialog_audio_sharing, /* parent= */ null);
+        TextView subTitle1 = mRootView.findViewById(R.id.share_audio_subtitle1);
+        TextView subTitle2 = mRootView.findViewById(R.id.share_audio_subtitle2);
+        if (deviceItems.isEmpty()) {
+            subTitle1.setVisibility(View.INVISIBLE);
+            subTitle2.setText(
+                    "To start sharing audio, connect additional headphones that support LE audio");
+            builder.setNegativeButton(
+                    "Close",
+                    (dialog, which) -> {
+                        sListener.onCancelClick();
+                    });
+        } else {
+            subTitle1.setText(
+                    String.format(
+                            Locale.US,
+                            "%d additional device%s connected",
+                            deviceItems.size(),
+                            deviceItems.size() > 1 ? "" : "s"));
+            subTitle2.setText(
+                    "The headphones you share audio with will hear videos and music playing on this"
+                            + " phone");
+        }
+        RecyclerView recyclerView = mRootView.findViewById(R.id.btn_list);
+        recyclerView.setAdapter(
+                new AudioSharingDeviceAdapter(
+                        deviceItems,
+                        (AudioSharingDeviceItem item) -> {
+                            sListener.onItemClick(item);
+                            dismiss();
+                        }));
+        recyclerView.setLayoutManager(
+                new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false));
+        AlertDialog dialog = builder.setView(mRootView).create();
+        dialog.setCanceledOnTouchOutside(false);
+        return dialog;
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDisconnectDialogFragment.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDisconnectDialogFragment.java
new file mode 100644
index 0000000..1840f58
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDisconnectDialogFragment.java
@@ -0,0 +1,124 @@
+/*
+ * 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.connecteddevice.audiosharing;
+
+import android.app.Dialog;
+import android.app.settings.SettingsEnums;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.Button;
+import android.widget.TextView;
+
+import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+
+import com.android.internal.widget.LinearLayoutManager;
+import com.android.internal.widget.RecyclerView;
+import com.android.settings.R;
+import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settings.flags.Flags;
+
+import java.util.ArrayList;
+
+public class AudioSharingDisconnectDialogFragment extends InstrumentedDialogFragment {
+    private static final String TAG = "AudioSharingDisconnectDialog";
+
+    private static final String BUNDLE_KEY_DEVICE_TO_DISCONNECT_ITEMS =
+            "bundle_key_device_to_disconnect_items";
+    private static final String BUNDLE_KEY_NEW_DEVICE_NAME = "bundle_key_new_device_name";
+
+    // The host creates an instance of this dialog fragment must implement this interface to receive
+    // event callbacks.
+    public interface DialogEventListener {
+        /**
+         * Called when users click the device item to disconnect from the audio sharing in the
+         * dialog.
+         *
+         * @param item The device item clicked.
+         */
+        void onItemClick(AudioSharingDeviceItem item);
+    }
+
+    private static DialogEventListener sListener;
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.DIALOG_AUDIO_SHARING_SWITCH_DEVICE;
+    }
+
+    /**
+     * Display the {@link AudioSharingDisconnectDialogFragment} dialog.
+     *
+     * @param host The Fragment this dialog will be hosted.
+     */
+    public static void show(
+            Fragment host,
+            ArrayList<AudioSharingDeviceItem> deviceItems,
+            String newDeviceName,
+            DialogEventListener listener) {
+        if (!Flags.enableLeAudioSharing()) return;
+        final FragmentManager manager = host.getChildFragmentManager();
+        sListener = listener;
+        if (manager.findFragmentByTag(TAG) == null) {
+            final Bundle bundle = new Bundle();
+            bundle.putParcelableArrayList(BUNDLE_KEY_DEVICE_TO_DISCONNECT_ITEMS, deviceItems);
+            bundle.putString(BUNDLE_KEY_NEW_DEVICE_NAME, newDeviceName);
+            AudioSharingDisconnectDialogFragment dialog =
+                    new AudioSharingDisconnectDialogFragment();
+            dialog.setArguments(bundle);
+            dialog.show(manager, TAG);
+        }
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        Bundle arguments = requireArguments();
+        ArrayList<AudioSharingDeviceItem> deviceItems =
+                arguments.getParcelableArrayList(BUNDLE_KEY_DEVICE_TO_DISCONNECT_ITEMS);
+        String newDeviceName = arguments.getString(BUNDLE_KEY_NEW_DEVICE_NAME);
+        final AlertDialog.Builder builder =
+                new AlertDialog.Builder(getActivity())
+                        .setTitle("Choose headphone to disconnect")
+                        .setCancelable(false);
+        View rootView =
+                LayoutInflater.from(builder.getContext())
+                        .inflate(R.layout.dialog_audio_sharing_disconnect, /* parent= */ null);
+        TextView subTitle = rootView.findViewById(R.id.share_audio_disconnect_description);
+        subTitle.setText(
+                "To share audio with " + newDeviceName + ", disconnect another pair of headphone");
+        RecyclerView recyclerView = rootView.findViewById(R.id.device_btn_list);
+        recyclerView.setAdapter(
+                new AudioSharingDeviceAdapter(
+                        deviceItems,
+                        (AudioSharingDeviceItem item) -> {
+                            sListener.onItemClick(item);
+                            dismiss();
+                        }));
+        recyclerView.setLayoutManager(
+                new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false));
+        Button cancelBtn = rootView.findViewById(R.id.cancel_btn);
+        cancelBtn.setOnClickListener(
+                v -> {
+                    dismiss();
+                });
+        AlertDialog dialog = builder.setView(rootView).create();
+        dialog.setCanceledOnTouchOutside(false);
+        return dialog;
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingJoinDialogFragment.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingJoinDialogFragment.java
new file mode 100644
index 0000000..b9646ac
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingJoinDialogFragment.java
@@ -0,0 +1,127 @@
+/*
+ * 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.connecteddevice.audiosharing;
+
+import android.app.Dialog;
+import android.app.settings.SettingsEnums;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.Button;
+import android.widget.TextView;
+
+import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+
+import com.android.settings.R;
+import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settings.flags.Flags;
+
+import java.util.ArrayList;
+import java.util.Locale;
+import java.util.stream.Collectors;
+
+public class AudioSharingJoinDialogFragment extends InstrumentedDialogFragment {
+    private static final String TAG = "AudioSharingJoinDialog";
+    private static final String BUNDLE_KEY_DEVICE_ITEMS = "bundle_key_device_items";
+    private static final String BUNDLE_KEY_NEW_DEVICE_NAME = "bundle_key_new_device_name";
+
+    // The host creates an instance of this dialog fragment must implement this interface to receive
+    // event callbacks.
+    public interface DialogEventListener {
+        /** Called when users click the share audio button in the dialog. */
+        void onShareClick();
+    }
+
+    private static DialogEventListener sListener;
+    private View mRootView;
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.DIALOG_START_AUDIO_SHARING;
+    }
+
+    /**
+     * Display the {@link AudioSharingJoinDialogFragment} dialog.
+     *
+     * @param host The Fragment this dialog will be hosted.
+     * @param deviceItems The existing connected device items eligible for audio sharing.
+     * @param newDeviceName The name of the latest connected device triggered this dialog.
+     * @param listener The callback to handle the user action on this dialog.
+     */
+    public static void show(
+            Fragment host,
+            ArrayList<AudioSharingDeviceItem> deviceItems,
+            String newDeviceName,
+            DialogEventListener listener) {
+        if (!Flags.enableLeAudioSharing()) return;
+        final FragmentManager manager = host.getChildFragmentManager();
+        sListener = listener;
+        if (manager.findFragmentByTag(TAG) == null) {
+            final Bundle bundle = new Bundle();
+            bundle.putParcelableArrayList(BUNDLE_KEY_DEVICE_ITEMS, deviceItems);
+            bundle.putString(BUNDLE_KEY_NEW_DEVICE_NAME, newDeviceName);
+            final AudioSharingJoinDialogFragment dialog = new AudioSharingJoinDialogFragment();
+            dialog.setArguments(bundle);
+            dialog.show(manager, TAG);
+        }
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        Bundle arguments = requireArguments();
+        ArrayList<AudioSharingDeviceItem> deviceItems =
+                arguments.getParcelableArrayList(BUNDLE_KEY_DEVICE_ITEMS);
+        String newDeviceName = arguments.getString(BUNDLE_KEY_NEW_DEVICE_NAME);
+        final AlertDialog.Builder builder =
+                new AlertDialog.Builder(getActivity())
+                        .setTitle("Share audio?")
+                        .setCancelable(false);
+        mRootView =
+                LayoutInflater.from(builder.getContext())
+                        .inflate(R.layout.dialog_audio_sharing_join, null /* parent */);
+        TextView subtitle1 = mRootView.findViewById(R.id.share_audio_subtitle1);
+        TextView subtitle2 = mRootView.findViewById(R.id.share_audio_subtitle2);
+        if (deviceItems.isEmpty()) {
+            subtitle1.setText(newDeviceName);
+        } else {
+            subtitle1.setText(
+                    String.format(
+                            Locale.US,
+                            "%s and %s",
+                            deviceItems.stream()
+                                    .map(AudioSharingDeviceItem::getName)
+                                    .collect(Collectors.joining(", ")),
+                            newDeviceName));
+        }
+        subtitle2.setText(
+                "Connected eligible headphones will hear videos ad music playing on this phone");
+        Button shareBtn = mRootView.findViewById(R.id.share_btn);
+        Button cancelBtn = mRootView.findViewById(R.id.cancel_btn);
+        shareBtn.setOnClickListener(
+                v -> {
+                    sListener.onShareClick();
+                    dismiss();
+                });
+        shareBtn.setText("Share audio");
+        cancelBtn.setOnClickListener(v -> dismiss());
+        Dialog dialog = builder.setView(mRootView).create();
+        dialog.setCanceledOnTouchOutside(false);
+        return dialog;
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreference.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreference.java
new file mode 100644
index 0000000..81465ed
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreference.java
@@ -0,0 +1,74 @@
+/*
+ * 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.connecteddevice.audiosharing;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.util.AttributeSet;
+import android.widget.ImageButton;
+
+import androidx.preference.PreferenceViewHolder;
+
+import com.android.settings.R;
+import com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamsQrCodeFragment;
+import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.widget.ValidatedEditTextPreference;
+
+public class AudioSharingNamePreference extends ValidatedEditTextPreference {
+    private static final String TAG = "AudioSharingNamePreference";
+
+    public AudioSharingNamePreference(
+            Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
+        super(context, attrs, defStyleAttr, defStyleRes);
+        initialize();
+    }
+
+    public AudioSharingNamePreference(Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+        initialize();
+    }
+
+    public AudioSharingNamePreference(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        initialize();
+    }
+
+    public AudioSharingNamePreference(Context context) {
+        super(context);
+        initialize();
+    }
+
+    private void initialize() {
+        setLayoutResource(
+                com.android.settingslib.widget.preference.twotarget.R.layout.preference_two_target);
+        setWidgetLayoutResource(R.layout.preference_widget_qrcode);
+    }
+
+    @Override
+    public void onBindViewHolder(PreferenceViewHolder holder) {
+        super.onBindViewHolder(holder);
+        final ImageButton shareButton = (ImageButton) holder.findViewById(R.id.button_icon);
+        shareButton.setImageDrawable(getContext().getDrawable(R.drawable.ic_qrcode_24dp));
+        shareButton.setOnClickListener(
+                unused ->
+                        new SubSettingLauncher(getContext())
+                                .setTitleText("Audio sharing QR code")
+                                .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
new file mode 100644
index 0000000..8336691
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreferenceController.java
@@ -0,0 +1,69 @@
+/*
+ * 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.connecteddevice.audiosharing;
+
+import android.content.Context;
+
+import androidx.annotation.NonNull;
+import androidx.lifecycle.DefaultLifecycleObserver;
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.Preference;
+
+import com.android.settings.widget.ValidatedEditTextPreference;
+
+public class AudioSharingNamePreferenceController extends AudioSharingBasePreferenceController
+        implements ValidatedEditTextPreference.Validator,
+                Preference.OnPreferenceChangeListener,
+                DefaultLifecycleObserver {
+
+    private static final String TAG = "AudioSharingNamePreferenceController";
+
+    private static final String PREF_KEY = "audio_sharing_stream_name";
+
+    private AudioSharingNameTextValidator mAudioSharingNameTextValidator;
+
+    public AudioSharingNamePreferenceController(Context context) {
+        super(context, PREF_KEY);
+        mAudioSharingNameTextValidator = new AudioSharingNameTextValidator();
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return PREF_KEY;
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        // TODO: update broadcast when name is changed.
+        return true;
+    }
+
+    @Override
+    public boolean isTextValid(String value) {
+        return mAudioSharingNameTextValidator.isTextValid(value);
+    }
+
+    @Override
+    public void onStart(@NonNull LifecycleOwner owner) {
+        // TODO
+    }
+
+    @Override
+    public void onStop(@NonNull LifecycleOwner owner) {
+        // TODO
+    }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerprintViewModel.kt b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNameTextValidator.java
similarity index 60%
copy from src/com/android/settings/biometrics/fingerprint2/shared/model/FingerprintViewModel.kt
copy to src/com/android/settings/connecteddevice/audiosharing/AudioSharingNameTextValidator.java
index db28e79..9492961 100644
--- a/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerprintViewModel.kt
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNameTextValidator.java
@@ -14,21 +14,14 @@
  * limitations under the License.
  */
 
-package com.android.settings.biometrics.fingerprint2.shared.model
+package com.android.settings.connecteddevice.audiosharing;
 
-data class FingerprintViewModel(
-  val name: String,
-  val fingerId: Int,
-  val deviceId: Long,
-)
+import com.android.settings.widget.ValidatedEditTextPreference;
 
-sealed class FingerprintAuthAttemptViewModel {
-  data class Success(
-    val fingerId: Int,
-  ) : FingerprintAuthAttemptViewModel()
-
-  data class Error(
-    val error: Int,
-    val message: String,
-  ) : FingerprintAuthAttemptViewModel()
+public class AudioSharingNameTextValidator implements ValidatedEditTextPreference.Validator {
+    @Override
+    public boolean isTextValid(String value) {
+        // TODO: Add validate rule if applicable.
+        return true;
+    }
 }
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPreferenceController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPreferenceController.java
new file mode 100644
index 0000000..b6b4568
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPreferenceController.java
@@ -0,0 +1,38 @@
+/*
+ * 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.connecteddevice.audiosharing;
+
+import android.content.Context;
+
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.flags.Flags;
+
+public class AudioSharingPreferenceController extends BasePreferenceController {
+    private static final String TAG = "AudioSharingPreferenceController";
+
+    private Context mContext;
+
+    public AudioSharingPreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+        mContext = context;
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return Flags.enableLeAudioSharing() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingStopDialogFragment.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingStopDialogFragment.java
new file mode 100644
index 0000000..495fad3
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingStopDialogFragment.java
@@ -0,0 +1,91 @@
+/*
+ * 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.connecteddevice.audiosharing;
+
+import android.app.Dialog;
+import android.app.settings.SettingsEnums;
+import android.os.Bundle;
+
+import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+
+import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settings.flags.Flags;
+
+public class AudioSharingStopDialogFragment extends InstrumentedDialogFragment {
+    private static final String TAG = "AudioSharingStopDialog";
+
+    private static final String BUNDLE_KEY_NEW_DEVICE_NAME = "bundle_key_new_device_name";
+
+    // The host creates an instance of this dialog fragment must implement this interface to receive
+    // event callbacks.
+    public interface DialogEventListener {
+        /** Called when users click the stop sharing button in the dialog. */
+        void onStopSharingClick();
+    }
+
+    private static DialogEventListener sListener;
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.DIALOG_STOP_AUDIO_SHARING;
+    }
+
+    /**
+     * Display the {@link AudioSharingStopDialogFragment} dialog.
+     *
+     * @param host The Fragment this dialog will be hosted.
+     */
+    public static void show(Fragment host, String newDeviceName, DialogEventListener listener) {
+        if (!Flags.enableLeAudioSharing()) return;
+        final FragmentManager manager = host.getChildFragmentManager();
+        sListener = listener;
+        if (manager.findFragmentByTag(TAG) == null) {
+            final Bundle bundle = new Bundle();
+            bundle.putString(BUNDLE_KEY_NEW_DEVICE_NAME, newDeviceName);
+            AudioSharingStopDialogFragment dialog = new AudioSharingStopDialogFragment();
+            dialog.setArguments(bundle);
+            dialog.show(manager, TAG);
+        }
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        Bundle arguments = requireArguments();
+        String newDeviceName = arguments.getString(BUNDLE_KEY_NEW_DEVICE_NAME);
+        final AlertDialog.Builder builder =
+                new AlertDialog.Builder(getActivity())
+                        .setTitle("Stop sharing audio?")
+                        .setCancelable(false);
+        builder.setMessage(
+                newDeviceName + " is connected, devices in audio sharing will disconnect.");
+        builder.setPositiveButton(
+                "Stop sharing",
+                (dialog, which) -> {
+                    sListener.onStopSharingClick();
+                });
+        builder.setNegativeButton(
+                "Cancel",
+                (dialog, which) -> {
+                    dismiss();
+                });
+        AlertDialog dialog = builder.create();
+        dialog.setCanceledOnTouchOutside(false);
+        return dialog;
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarController.java
new file mode 100644
index 0000000..8b82fe9
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarController.java
@@ -0,0 +1,365 @@
+/*
+ * 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.connecteddevice.audiosharing;
+
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothLeBroadcast;
+import android.bluetooth.BluetoothLeBroadcastAssistant;
+import android.bluetooth.BluetoothLeBroadcastMetadata;
+import android.bluetooth.BluetoothLeBroadcastReceiveState;
+import android.content.Context;
+import android.util.Log;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
+
+import androidx.annotation.NonNull;
+import androidx.lifecycle.DefaultLifecycleObserver;
+import androidx.lifecycle.LifecycleOwner;
+
+import com.android.settings.bluetooth.Utils;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.flags.Flags;
+import com.android.settings.widget.SettingsMainSwitchBar;
+import com.android.settingslib.bluetooth.BluetoothUtils;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.utils.ThreadUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
+
+public class AudioSharingSwitchBarController extends BasePreferenceController
+        implements DefaultLifecycleObserver, OnCheckedChangeListener {
+    private static final String TAG = "AudioSharingSwitchBarCtl";
+    private static final String PREF_KEY = "audio_sharing_main_switch";
+
+    interface OnSwitchBarChangedListener {
+        void onSwitchBarChanged(boolean newState);
+    }
+
+    private final SettingsMainSwitchBar mSwitchBar;
+    private final LocalBluetoothManager mBtManager;
+    private final LocalBluetoothLeBroadcast mBroadcast;
+    private final LocalBluetoothLeBroadcastAssistant mAssistant;
+    private final Executor mExecutor;
+    private final OnSwitchBarChangedListener mListener;
+    private DashboardFragment mFragment;
+    private List<BluetoothDevice> mTargetSinks = new ArrayList<>();
+
+    private final BluetoothLeBroadcast.Callback mBroadcastCallback =
+            new BluetoothLeBroadcast.Callback() {
+                @Override
+                public void onBroadcastStarted(int reason, int broadcastId) {
+                    Log.d(
+                            TAG,
+                            "onBroadcastStarted(), reason = "
+                                    + reason
+                                    + ", broadcastId = "
+                                    + broadcastId);
+                    updateSwitch();
+                }
+
+                @Override
+                public void onBroadcastStartFailed(int reason) {
+                    Log.d(TAG, "onBroadcastStartFailed(), reason = " + reason);
+                    // TODO: handle broadcast start fail
+                    updateSwitch();
+                }
+
+                @Override
+                public void onBroadcastMetadataChanged(
+                        int broadcastId, @NonNull BluetoothLeBroadcastMetadata metadata) {
+                    Log.d(
+                            TAG,
+                            "onBroadcastMetadataChanged(), broadcastId = "
+                                    + broadcastId
+                                    + ", metadata = "
+                                    + metadata);
+                    addSourceToTargetDevices(mTargetSinks);
+                }
+
+                @Override
+                public void onBroadcastStopped(int reason, int broadcastId) {
+                    Log.d(
+                            TAG,
+                            "onBroadcastStopped(), reason = "
+                                    + reason
+                                    + ", broadcastId = "
+                                    + broadcastId);
+                    updateSwitch();
+                }
+
+                @Override
+                public void onBroadcastStopFailed(int reason) {
+                    Log.d(TAG, "onBroadcastStopFailed(), reason = " + reason);
+                    // TODO: handle broadcast stop fail
+                    updateSwitch();
+                }
+
+                @Override
+                public void onBroadcastUpdated(int reason, int broadcastId) {}
+
+                @Override
+                public void onBroadcastUpdateFailed(int reason, int broadcastId) {}
+
+                @Override
+                public void onPlaybackStarted(int reason, int broadcastId) {}
+
+                @Override
+                public void onPlaybackStopped(int reason, int broadcastId) {}
+            };
+
+    private BluetoothLeBroadcastAssistant.Callback mBroadcastAssistantCallback =
+            new BluetoothLeBroadcastAssistant.Callback() {
+                @Override
+                public void onSearchStarted(int reason) {}
+
+                @Override
+                public void onSearchStartFailed(int reason) {}
+
+                @Override
+                public void onSearchStopped(int reason) {}
+
+                @Override
+                public void onSearchStopFailed(int reason) {}
+
+                @Override
+                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);
+                }
+
+                @Override
+                public void onSourceAddFailed(
+                        @NonNull BluetoothDevice sink,
+                        @NonNull BluetoothLeBroadcastMetadata source,
+                        int reason) {
+                    Log.d(
+                            TAG,
+                            "onSourceAddFailed(), sink = "
+                                    + sink
+                                    + ", source = "
+                                    + source
+                                    + ", reason = "
+                                    + reason);
+                }
+
+                @Override
+                public void onSourceModified(
+                        @NonNull BluetoothDevice sink, int sourceId, int reason) {}
+
+                @Override
+                public void onSourceModifyFailed(
+                        @NonNull BluetoothDevice sink, int sourceId, int reason) {}
+
+                @Override
+                public void onSourceRemoved(
+                        @NonNull BluetoothDevice sink, int sourceId, int reason) {}
+
+                @Override
+                public void onSourceRemoveFailed(
+                        @NonNull BluetoothDevice sink, int sourceId, int reason) {}
+
+                @Override
+                public void onReceiveStateChanged(
+                        BluetoothDevice sink,
+                        int sourceId,
+                        BluetoothLeBroadcastReceiveState state) {}
+            };
+
+    AudioSharingSwitchBarController(
+            Context context, SettingsMainSwitchBar switchBar, OnSwitchBarChangedListener listener) {
+        super(context, PREF_KEY);
+        mSwitchBar = switchBar;
+        mListener = listener;
+        mBtManager = Utils.getLocalBtManager(context);
+        mBroadcast = mBtManager.getProfileManager().getLeAudioBroadcastProfile();
+        mAssistant = mBtManager.getProfileManager().getLeAudioBroadcastAssistantProfile();
+        mExecutor = Executors.newSingleThreadExecutor();
+        mSwitchBar.setChecked(isBroadcasting());
+    }
+
+    @Override
+    public void onStart(@NonNull LifecycleOwner owner) {
+        mSwitchBar.addOnSwitchChangeListener(this);
+        if (mBroadcast != null) {
+            mBroadcast.registerServiceCallBack(mExecutor, mBroadcastCallback);
+        }
+        if (mAssistant != null) {
+            mAssistant.registerServiceCallBack(mExecutor, mBroadcastAssistantCallback);
+        }
+    }
+
+    @Override
+    public void onStop(@NonNull LifecycleOwner owner) {
+        mSwitchBar.removeOnSwitchChangeListener(this);
+        if (mBroadcast != null) {
+            mBroadcast.unregisterServiceCallBack(mBroadcastCallback);
+        }
+        if (mAssistant != null) {
+            mAssistant.unregisterServiceCallBack(mBroadcastAssistantCallback);
+        }
+    }
+
+    @Override
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+        // Filter out unnecessary callbacks when switch is disabled.
+        if (!buttonView.isEnabled()) return;
+        if (isChecked) {
+            startAudioSharing();
+        } else {
+            stopAudioSharing();
+        }
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return Flags.enableLeAudioSharing() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+    }
+
+    /**
+     * Initialize the controller.
+     *
+     * @param fragment The fragment to host the {@link AudioSharingSwitchBarController} dialog.
+     */
+    public void init(DashboardFragment fragment) {
+        this.mFragment = fragment;
+    }
+
+    private void startAudioSharing() {
+        mSwitchBar.setEnabled(false);
+        if (mBroadcast == null || isBroadcasting()) {
+            Log.d(TAG, "Already in broadcasting or broadcast not support, ignore!");
+            mSwitchBar.setEnabled(true);
+            return;
+        }
+        if (mFragment == null) {
+            Log.w(TAG, "Dialog fail to show due to null fragment.");
+            mSwitchBar.setEnabled(true);
+            return;
+        }
+        Map<Integer, List<CachedBluetoothDevice>> groupedDevices =
+                AudioSharingUtils.fetchConnectedDevicesByGroupId(mBtManager);
+        ArrayList<AudioSharingDeviceItem> deviceItems = new ArrayList<>();
+        Optional<Integer> activeGroupId = Optional.empty();
+        for (List<CachedBluetoothDevice> devices : groupedDevices.values()) {
+            // Use random device in the group to represent the group.
+            CachedBluetoothDevice device = devices.get(0);
+            if (BluetoothUtils.isActiveLeAudioDevice(device)) {
+                activeGroupId = Optional.of(device.getGroupId());
+            } else {
+                AudioSharingDeviceItem item = AudioSharingUtils.buildAudioSharingDeviceItem(device);
+                deviceItems.add(item);
+            }
+        }
+        mTargetSinks = new ArrayList<>();
+        activeGroupId.ifPresent(
+                gId -> {
+                    if (groupedDevices.containsKey(gId)) {
+                        for (CachedBluetoothDevice device : groupedDevices.get(gId)) {
+                            mTargetSinks.add(device.getDevice());
+                        }
+                    }
+                });
+        AudioSharingDialogFragment.show(
+                mFragment,
+                deviceItems,
+                new AudioSharingDialogFragment.DialogEventListener() {
+                    @Override
+                    public void onItemClick(AudioSharingDeviceItem item) {
+                        if (groupedDevices.containsKey(item.getGroupId())) {
+                            for (CachedBluetoothDevice device :
+                                    groupedDevices.get(item.getGroupId())) {
+                                mTargetSinks.add(device.getDevice());
+                            }
+                        }
+                        // TODO: handle app source name for broadcasting.
+                        mBroadcast.startBroadcast("test", /* language= */ null);
+                    }
+
+                    @Override
+                    public void onCancelClick() {
+                        // TODO: handle app source name for broadcasting.
+                        mBroadcast.startBroadcast("test", /* language= */ null);
+                    }
+                });
+    }
+
+    private void stopAudioSharing() {
+        mSwitchBar.setEnabled(false);
+        if (mBroadcast == null || !isBroadcasting()) {
+            Log.d(TAG, "Already not broadcasting or broadcast not support, ignore!");
+            mSwitchBar.setEnabled(true);
+            return;
+        }
+        mBroadcast.stopBroadcast(mBroadcast.getLatestBroadcastId());
+    }
+
+    private void updateSwitch() {
+        ThreadUtils.postOnMainThread(
+                () -> {
+                    boolean isBroadcasting = isBroadcasting();
+                    if (mSwitchBar.isChecked() != isBroadcasting) {
+                        mSwitchBar.setChecked(isBroadcasting);
+                    }
+                    mSwitchBar.setEnabled(true);
+                    mListener.onSwitchBarChanged(isBroadcasting);
+                });
+    }
+
+    private boolean isBroadcasting() {
+        return mBroadcast != null && mBroadcast.isEnabled(null);
+    }
+
+    private void addSourceToTargetDevices(List<BluetoothDevice> sinks) {
+        if (sinks.isEmpty() || mBroadcast == null || mAssistant == null) {
+            Log.d(TAG, "Skip adding source to target.");
+            return;
+        }
+        BluetoothLeBroadcastMetadata broadcastMetadata =
+                mBroadcast.getLatestBluetoothLeBroadcastMetadata();
+        if (broadcastMetadata == null) {
+            Log.e(TAG, "Error: There is no broadcastMetadata.");
+            return;
+        }
+        for (BluetoothDevice sink : sinks) {
+            Log.d(
+                    TAG,
+                    "Add broadcast with broadcastId: "
+                            + broadcastMetadata.getBroadcastId()
+                            + "to the device: "
+                            + sink.getAnonymizedAddress());
+            mAssistant.addSource(sink, broadcastMetadata, /* isGroupOp= */ false);
+        }
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingUtils.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingUtils.java
new file mode 100644
index 0000000..a0d44ff
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingUtils.java
@@ -0,0 +1,128 @@
+/*
+ * 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.connecteddevice.audiosharing;
+
+import android.bluetooth.BluetoothCsipSetCoordinator;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothLeBroadcastReceiveState;
+import android.util.Log;
+
+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 java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class AudioSharingUtils {
+    private static final String TAG = "AudioSharingUtils";
+
+    /**
+     * Fetch {@link CachedBluetoothDevice}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(
+            LocalBluetoothManager localBtManager) {
+        Map<Integer, List<CachedBluetoothDevice>> groupedDevices = new HashMap<>();
+        LocalBluetoothLeBroadcastAssistant assistant =
+                localBtManager.getProfileManager().getLeAudioBroadcastAssistantProfile();
+        if (assistant == null) return groupedDevices;
+        // TODO: filter out devices with le audio disabled.
+        List<BluetoothDevice> connectedDevices = assistant.getConnectedDevices();
+        CachedBluetoothDeviceManager cacheManager = localBtManager.getCachedDeviceManager();
+        for (BluetoothDevice device : connectedDevices) {
+            CachedBluetoothDevice cachedDevice = cacheManager.findDevice(device);
+            if (cachedDevice == null) {
+                Log.d(TAG, "Skip device due to not being cached: " + device.getAnonymizedAddress());
+                continue;
+            }
+            int groupId = cachedDevice.getGroupId();
+            if (groupId == BluetoothCsipSetCoordinator.GROUP_ID_INVALID) {
+                Log.d(
+                        TAG,
+                        "Skip device due to no valid group id: " + device.getAnonymizedAddress());
+                continue;
+            }
+            if (!groupedDevices.containsKey(groupId)) {
+                groupedDevices.put(groupId, new ArrayList<>());
+            }
+            groupedDevices.get(groupId).add(cachedDevice);
+        }
+        return groupedDevices;
+    }
+
+    /**
+     * Fetch a list of {@link AudioSharingDeviceItem}s in the audio sharing session.
+     *
+     * @param groupedConnectedDevices devices connected to broadcast assistant grouped by CSIP group
+     *     id.
+     * @param localBtManager The BT manager to provide BT functions.
+     * @return A list of connected devices in the audio sharing session.
+     */
+    public static ArrayList<AudioSharingDeviceItem> buildOrderedDeviceItemsInSharingSession(
+            Map<Integer, List<CachedBluetoothDevice>> groupedConnectedDevices,
+            LocalBluetoothManager localBtManager) {
+        ArrayList<AudioSharingDeviceItem> deviceItems = new ArrayList<>();
+        LocalBluetoothLeBroadcastAssistant assistant =
+                localBtManager.getProfileManager().getLeAudioBroadcastAssistantProfile();
+        if (assistant == null) return deviceItems;
+        CachedBluetoothDevice activeDevice = null;
+        List<CachedBluetoothDevice> inactiveDevices = new ArrayList<>();
+        for (List<CachedBluetoothDevice> devices : groupedConnectedDevices.values()) {
+            for (CachedBluetoothDevice device : devices) {
+                List<BluetoothLeBroadcastReceiveState> sourceList =
+                        assistant.getAllSources(device.getDevice());
+                if (!sourceList.isEmpty()) {
+                    // Use random device in the group within the sharing session to
+                    // represent the group.
+                    if (BluetoothUtils.isActiveLeAudioDevice(device)) {
+                        activeDevice = device;
+                    } else {
+                        inactiveDevices.add(device);
+                    }
+                    break;
+                }
+            }
+        }
+        if (activeDevice != null) {
+            deviceItems.add(buildAudioSharingDeviceItem(activeDevice));
+        }
+        inactiveDevices.stream()
+                .sorted(CachedBluetoothDevice::compareTo)
+                .forEach(
+                        device -> {
+                            deviceItems.add(buildAudioSharingDeviceItem(device));
+                        });
+        return deviceItems;
+    }
+
+    /** Build {@link AudioSharingDeviceItem} from {@link CachedBluetoothDevice}. */
+    public static AudioSharingDeviceItem buildAudioSharingDeviceItem(
+            CachedBluetoothDevice cachedDevice) {
+        return new AudioSharingDeviceItem(
+                cachedDevice.getName(),
+                cachedDevice.getGroupId(),
+                BluetoothUtils.isActiveLeAudioDevice(cachedDevice));
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/CallsAndAlarmsDialogFragment.java b/src/com/android/settings/connecteddevice/audiosharing/CallsAndAlarmsDialogFragment.java
new file mode 100644
index 0000000..47f70c7
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/CallsAndAlarmsDialogFragment.java
@@ -0,0 +1,100 @@
+/*
+ * 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.connecteddevice.audiosharing;
+
+import android.app.Dialog;
+import android.app.settings.SettingsEnums;
+import android.os.Bundle;
+
+import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+
+import com.android.settings.R;
+import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settings.flags.Flags;
+
+import java.util.ArrayList;
+
+/** Provides a dialog to choose the active device for calls and alarms. */
+public class CallsAndAlarmsDialogFragment extends InstrumentedDialogFragment {
+    private static final String TAG = "CallsAndAlarmsDialog";
+    private static final String BUNDLE_KEY_DEVICE_ITEMS = "bundle_key_device_items";
+
+    // The host creates an instance of this dialog fragment must implement this interface to receive
+    // event callbacks.
+    public interface DialogEventListener {
+        /**
+         * Called when users click the device item to set active for calls and alarms in the dialog.
+         *
+         * @param item The device item clicked.
+         */
+        void onItemClick(AudioSharingDeviceItem item);
+    }
+
+    private static DialogEventListener sListener;
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.DIALOG_AUDIO_SHARING_SWITCH_ACTIVE;
+    }
+
+    /**
+     * Display the {@link CallsAndAlarmsDialogFragment} dialog.
+     *
+     * @param host The Fragment this dialog will be hosted.
+     * @param deviceItems The connected device items in audio sharing session.
+     * @param listener The callback to handle the user action on this dialog.
+     */
+    public static void show(
+            Fragment host,
+            ArrayList<AudioSharingDeviceItem> deviceItems,
+            DialogEventListener listener) {
+        if (!Flags.enableLeAudioSharing()) return;
+        final FragmentManager manager = host.getChildFragmentManager();
+        sListener = listener;
+        if (manager.findFragmentByTag(TAG) == null) {
+            final Bundle bundle = new Bundle();
+            bundle.putParcelableArrayList(BUNDLE_KEY_DEVICE_ITEMS, deviceItems);
+            final CallsAndAlarmsDialogFragment dialog = new CallsAndAlarmsDialogFragment();
+            dialog.setArguments(bundle);
+            dialog.show(manager, TAG);
+        }
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        Bundle arguments = requireArguments();
+        ArrayList<AudioSharingDeviceItem> deviceItems =
+                arguments.getParcelableArrayList(BUNDLE_KEY_DEVICE_ITEMS);
+        int checkedItem = -1;
+        // deviceItems is ordered. The active device is put in the first place if it does exist
+        if (!deviceItems.isEmpty() && deviceItems.get(0).isActive()) checkedItem = 0;
+        String[] choices =
+                deviceItems.stream().map(AudioSharingDeviceItem::getName).toArray(String[]::new);
+        AlertDialog.Builder builder =
+                new AlertDialog.Builder(getActivity())
+                        .setTitle(R.string.calls_and_alarms_device_title)
+                        .setSingleChoiceItems(
+                                choices,
+                                checkedItem,
+                                (dialog, which) -> {
+                                    sListener.onItemClick(deviceItems.get(which));
+                                });
+        return builder.create();
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/CallsAndAlarmsPreferenceController.java b/src/com/android/settings/connecteddevice/audiosharing/CallsAndAlarmsPreferenceController.java
new file mode 100644
index 0000000..a7d18e7
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/CallsAndAlarmsPreferenceController.java
@@ -0,0 +1,135 @@
+/*
+ * 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.connecteddevice.audiosharing;
+
+import android.annotation.Nullable;
+import android.bluetooth.BluetoothProfile;
+import android.content.Context;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.lifecycle.DefaultLifecycleObserver;
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.bluetooth.Utils;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settingslib.bluetooth.BluetoothCallback;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/** PreferenceController to control the dialog to choose the active device for calls and alarms */
+public class CallsAndAlarmsPreferenceController extends AudioSharingBasePreferenceController
+        implements BluetoothCallback, DefaultLifecycleObserver {
+
+    private static final String TAG = "CallsAndAlarmsPreferenceController";
+    private static final String PREF_KEY = "calls_and_alarms";
+
+    private final LocalBluetoothManager mLocalBtManager;
+    private DashboardFragment mFragment;
+    Map<Integer, List<CachedBluetoothDevice>> mGroupedConnectedDevices = new HashMap<>();
+    private ArrayList<AudioSharingDeviceItem> mDeviceItemsInSharingSession = new ArrayList<>();
+
+    public CallsAndAlarmsPreferenceController(Context context) {
+        super(context, PREF_KEY);
+        mLocalBtManager = Utils.getLocalBtManager(mContext);
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return PREF_KEY;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        updateDeviceItemsInSharingSession();
+        // mDeviceItemsInSharingSession is ordered. The active device is the first place if exits.
+        if (!mDeviceItemsInSharingSession.isEmpty()
+                && mDeviceItemsInSharingSession.get(0).isActive()) {
+            mPreference.setSummary(mDeviceItemsInSharingSession.get(0).getName());
+        } else {
+            mPreference.setSummary("");
+        }
+        mPreference.setOnPreferenceClickListener(
+                preference -> {
+                    if (mFragment == null) {
+                        Log.w(TAG, "Dialog fail to show due to null host.");
+                        return true;
+                    }
+                    updateDeviceItemsInSharingSession();
+                    if (mDeviceItemsInSharingSession.size() >= 2) {
+                        CallsAndAlarmsDialogFragment.show(
+                                mFragment,
+                                mDeviceItemsInSharingSession,
+                                (AudioSharingDeviceItem item) -> {
+                                    for (CachedBluetoothDevice device :
+                                            mGroupedConnectedDevices.get(item.getGroupId())) {
+                                        device.setActive();
+                                    }
+                                });
+                    }
+                    return true;
+                });
+    }
+
+    @Override
+    public void onStart(@NonNull LifecycleOwner owner) {
+        if (mLocalBtManager != null) {
+            mLocalBtManager.getEventManager().registerCallback(this);
+        }
+    }
+
+    @Override
+    public void onStop(@NonNull LifecycleOwner owner) {
+        if (mLocalBtManager != null) {
+            mLocalBtManager.getEventManager().unregisterCallback(this);
+        }
+    }
+
+    @Override
+    public void onActiveDeviceChanged(
+            @Nullable CachedBluetoothDevice activeDevice, int bluetoothProfile) {
+        if (bluetoothProfile != BluetoothProfile.LE_AUDIO) {
+            Log.d(TAG, "Ignore onActiveDeviceChanged, not LE_AUDIO profile");
+            return;
+        }
+        mPreference.setSummary(activeDevice == null ? "" : activeDevice.getName());
+    }
+
+    /**
+     * Initialize the controller.
+     *
+     * @param fragment The fragment to host the {@link CallsAndAlarmsDialogFragment} dialog.
+     */
+    public void init(DashboardFragment fragment) {
+        this.mFragment = fragment;
+    }
+
+    private void updateDeviceItemsInSharingSession() {
+        mGroupedConnectedDevices =
+                AudioSharingUtils.fetchConnectedDevicesByGroupId(mLocalBtManager);
+        mDeviceItemsInSharingSession =
+                AudioSharingUtils.buildOrderedDeviceItemsInSharingSession(
+                        mGroupedConnectedDevices, mLocalBtManager);
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsCategoryController.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsCategoryController.java
new file mode 100644
index 0000000..84a7be9
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsCategoryController.java
@@ -0,0 +1,36 @@
+/*
+ * 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.connecteddevice.audiosharing.audiostreams;
+
+import android.content.Context;
+
+import com.android.settings.flags.Flags;
+import com.android.settings.widget.PreferenceCategoryController;
+
+public class AudioStreamsCategoryController extends PreferenceCategoryController {
+
+    public AudioStreamsCategoryController(Context context, String key) {
+        super(context, key);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return Flags.enableLeAudioQrCodePrivateBroadcastSharing()
+                ? AVAILABLE
+                : UNSUPPORTED_ON_DEVICE;
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsDashboardFragment.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsDashboardFragment.java
new file mode 100644
index 0000000..562427f
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsDashboardFragment.java
@@ -0,0 +1,67 @@
+/*
+ * 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.connecteddevice.audiosharing.audiostreams;
+
+import android.content.Context;
+import android.os.Bundle;
+
+import com.android.settings.R;
+import com.android.settings.dashboard.DashboardFragment;
+
+public class AudioStreamsDashboardFragment extends DashboardFragment {
+    private static final String TAG = "AudioStreamsDashboardFrag";
+
+    public AudioStreamsDashboardFragment() {
+        super();
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        // TODO: update category id.
+        return 0;
+    }
+
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+
+    @Override
+    public int getHelpResource() {
+        return R.string.help_url_audio_sharing;
+    }
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.bluetooth_audio_streams;
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+    }
+
+    @Override
+    public void onAttach(Context context) {
+        super.onAttach(context);
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryPreference.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryPreference.java
new file mode 100644
index 0000000..d259900
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryPreference.java
@@ -0,0 +1,52 @@
+/*
+ * 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.connecteddevice.audiosharing.audiostreams;
+
+import android.content.Context;
+import android.util.AttributeSet;
+
+import com.android.settings.ProgressCategory;
+import com.android.settings.R;
+
+public class AudioStreamsProgressCategoryPreference extends ProgressCategory {
+
+    public AudioStreamsProgressCategoryPreference(Context context) {
+        super(context);
+        init();
+    }
+
+    public AudioStreamsProgressCategoryPreference(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        init();
+    }
+
+    public AudioStreamsProgressCategoryPreference(
+            Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+        init();
+    }
+
+    public AudioStreamsProgressCategoryPreference(
+            Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
+        super(context, attrs, defStyleAttr, defStyleRes);
+        init();
+    }
+
+    private void init() {
+        setEmptyTextRes(R.string.audio_streams_empty);
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsQrCodeFragment.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsQrCodeFragment.java
new file mode 100644
index 0000000..42b38ee
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsQrCodeFragment.java
@@ -0,0 +1,102 @@
+/*
+ * 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.connecteddevice.audiosharing.audiostreams;
+
+import android.bluetooth.BluetoothLeBroadcastMetadata;
+import android.graphics.Bitmap;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+
+import com.android.settings.R;
+import com.android.settings.bluetooth.Utils;
+import com.android.settings.core.InstrumentedFragment;
+import com.android.settingslib.bluetooth.BluetoothLeBroadcastMetadataExt;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
+import com.android.settingslib.qrcode.QrCodeGenerator;
+
+import com.google.zxing.WriterException;
+
+import java.util.Optional;
+
+public class AudioStreamsQrCodeFragment extends InstrumentedFragment {
+    private static final String TAG = "AudioStreamsQrCodeFragment";
+
+    @Override
+    public int getMetricsCategory() {
+        // TODO(chelseahao): update metrics id
+        return 0;
+    }
+
+    @Override
+    public final View onCreateView(
+            LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+        View view = inflater.inflate(R.xml.bluetooth_audio_streams_qr_code, container, false);
+        getQrCodeBitmap()
+                .ifPresent(
+                        bm ->
+                                ((ImageView) view.requireViewById(R.id.qrcode_view))
+                                        .setImageBitmap(bm));
+        return view;
+    }
+
+    private Optional<Bitmap> getQrCodeBitmap() {
+        String broadcastMetadata = getBroadcastMetadataQrCode();
+        if (broadcastMetadata.isEmpty()) {
+            Log.d(TAG, "onCreateView: broadcastMetadata is empty!");
+            return Optional.empty();
+        }
+
+        try {
+            int qrcodeSize = getContext().getResources().getDimensionPixelSize(R.dimen.qrcode_size);
+            Bitmap bitmap = QrCodeGenerator.encodeQrCode(broadcastMetadata, qrcodeSize);
+            return Optional.of(bitmap);
+        } catch (WriterException e) {
+            Log.d(
+                    TAG,
+                    "onCreateView: broadcastMetadata "
+                            + broadcastMetadata
+                            + " qrCode generation exception "
+                            + e);
+        }
+
+        return Optional.empty();
+    }
+
+    private String getBroadcastMetadataQrCode() {
+        LocalBluetoothLeBroadcast localBluetoothLeBroadcast =
+                Utils.getLocalBtManager(getActivity())
+                        .getProfileManager()
+                        .getLeAudioBroadcastProfile();
+        if (localBluetoothLeBroadcast == null) {
+            Log.d(TAG, "getBroadcastMetadataQrCode: localBluetoothLeBroadcast is null!");
+            return "";
+        }
+
+        BluetoothLeBroadcastMetadata metadata =
+                localBluetoothLeBroadcast.getLatestBluetoothLeBroadcastMetadata();
+        if (metadata == null) {
+            Log.d(TAG, "getBroadcastMetadataQrCode: metadata is null!");
+            return "";
+        }
+
+        return BluetoothLeBroadcastMetadataExt.INSTANCE.toQrCodeString(metadata);
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/qrcode/QrCodeScanModeActivity.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/qrcode/QrCodeScanModeActivity.java
new file mode 100644
index 0000000..d6d0634
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/qrcode/QrCodeScanModeActivity.java
@@ -0,0 +1,122 @@
+/*
+ * 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.connecteddevice.audiosharing.audiostreams.qrcode;
+
+import static com.android.settingslib.bluetooth.BluetoothBroadcastUtils.EXTRA_BLUETOOTH_DEVICE_SINK;
+import static com.android.settingslib.bluetooth.BluetoothBroadcastUtils.EXTRA_BLUETOOTH_SINK_IS_GROUP;
+
+import android.bluetooth.BluetoothDevice;
+import android.content.Intent;
+import android.os.Bundle;
+import android.util.Log;
+
+import androidx.fragment.app.FragmentTransaction;
+
+import com.android.settings.R;
+import com.android.settingslib.bluetooth.BluetoothBroadcastUtils;
+import com.android.settingslib.bluetooth.BluetoothUtils;
+
+/**
+ * Finding a broadcast through QR code.
+ *
+ * <p>To use intent action {@link
+ * BluetoothBroadcastUtils#ACTION_BLUETOOTH_LE_AUDIO_QR_CODE_SCANNER}, specify the bluetooth device
+ * sink of the broadcast to be provisioned in {@link
+ * BluetoothBroadcastUtils#EXTRA_BLUETOOTH_DEVICE_SINK} and check the operation for all coordinated
+ * set members throughout one session or not by {@link
+ * BluetoothBroadcastUtils#EXTRA_BLUETOOTH_SINK_IS_GROUP}.
+ */
+public class QrCodeScanModeActivity extends QrCodeScanModeBaseActivity {
+    private static final boolean DEBUG = BluetoothUtils.D;
+    private static final String TAG = "QrCodeScanModeActivity";
+
+    private boolean mIsGroupOp;
+    private BluetoothDevice mSink;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+    }
+
+    @Override
+    protected void handleIntent(Intent intent) {
+        String action = intent != null ? intent.getAction() : null;
+        if (DEBUG) {
+            Log.d(TAG, "handleIntent(), action = " + action);
+        }
+
+        if (action == null) {
+            finish();
+            return;
+        }
+
+        switch (action) {
+            case BluetoothBroadcastUtils.ACTION_BLUETOOTH_LE_AUDIO_QR_CODE_SCANNER:
+                showQrCodeScannerFragment(intent);
+                break;
+            default:
+                if (DEBUG) {
+                    Log.e(TAG, "Launch with an invalid action");
+                }
+                finish();
+        }
+    }
+
+    protected void showQrCodeScannerFragment(Intent intent) {
+        if (intent == null) {
+            if (DEBUG) {
+                Log.d(TAG, "intent is null, can not get bluetooth information from intent.");
+            }
+            return;
+        }
+
+        if (DEBUG) {
+            Log.d(TAG, "showQrCodeScannerFragment");
+        }
+
+        mSink = intent.getParcelableExtra(EXTRA_BLUETOOTH_DEVICE_SINK);
+        mIsGroupOp = intent.getBooleanExtra(EXTRA_BLUETOOTH_SINK_IS_GROUP, false);
+        if (DEBUG) {
+            Log.d(TAG, "get extra from intent");
+        }
+
+        QrCodeScanModeFragment fragment =
+                (QrCodeScanModeFragment)
+                        mFragmentManager.findFragmentByTag(
+                                BluetoothBroadcastUtils.TAG_FRAGMENT_QR_CODE_SCANNER);
+
+        if (fragment == null) {
+            fragment = new QrCodeScanModeFragment();
+        } else {
+            if (fragment.isVisible()) {
+                return;
+            }
+
+            // When the fragment in back stack but not on top of the stack, we can simply pop
+            // stack because current fragment transactions are arranged in an order
+            mFragmentManager.popBackStackImmediate();
+            return;
+        }
+        final FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
+
+        fragmentTransaction.replace(
+                R.id.fragment_container,
+                fragment,
+                BluetoothBroadcastUtils.TAG_FRAGMENT_QR_CODE_SCANNER);
+        fragmentTransaction.commit();
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/qrcode/QrCodeScanModeBaseActivity.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/qrcode/QrCodeScanModeBaseActivity.java
new file mode 100644
index 0000000..637014a
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/qrcode/QrCodeScanModeBaseActivity.java
@@ -0,0 +1,64 @@
+/*
+ * 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.connecteddevice.audiosharing.audiostreams.qrcode;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.SystemProperties;
+
+import androidx.fragment.app.FragmentManager;
+
+import com.android.settings.R;
+import com.android.settingslib.core.lifecycle.ObservableActivity;
+
+import com.google.android.setupdesign.util.ThemeHelper;
+import com.google.android.setupdesign.util.ThemeResolver;
+
+public abstract class QrCodeScanModeBaseActivity extends ObservableActivity {
+
+    private static final String THEME_KEY = "setupwizard.theme";
+    private static final String THEME_DEFAULT_VALUE = "SudThemeGlifV3_DayNight";
+    protected FragmentManager mFragmentManager;
+
+    protected abstract void handleIntent(Intent intent);
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        int defaultTheme =
+                ThemeHelper.isSetupWizardDayNightEnabled(this)
+                        ? com.google.android.setupdesign.R.style.SudThemeGlifV3_DayNight
+                        : com.google.android.setupdesign.R.style.SudThemeGlifV3_Light;
+        ThemeResolver themeResolver =
+                new ThemeResolver.Builder(ThemeResolver.getDefault())
+                        .setDefaultTheme(defaultTheme)
+                        .setUseDayNight(true)
+                        .build();
+        setTheme(
+                themeResolver.resolve(
+                        SystemProperties.get(THEME_KEY, THEME_DEFAULT_VALUE),
+                        /* suppressDayNight= */ !ThemeHelper.isSetupWizardDayNightEnabled(this)));
+
+        setContentView(R.layout.qrcode_scan_mode_activity);
+        mFragmentManager = getSupportFragmentManager();
+
+        if (savedInstanceState == null) {
+            handleIntent(getIntent());
+        }
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/qrcode/QrCodeScanModeFragment.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/qrcode/QrCodeScanModeFragment.java
new file mode 100644
index 0000000..2b52039
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/qrcode/QrCodeScanModeFragment.java
@@ -0,0 +1,268 @@
+/*
+ * 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.connecteddevice.audiosharing.audiostreams.qrcode;
+
+import android.app.Activity;
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.Matrix;
+import android.graphics.Outline;
+import android.graphics.Rect;
+import android.graphics.SurfaceTexture;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.os.VibrationEffect;
+import android.os.Vibrator;
+import android.util.Log;
+import android.util.Size;
+import android.view.LayoutInflater;
+import android.view.TextureView;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewOutlineProvider;
+import android.view.accessibility.AccessibilityEvent;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.StringRes;
+
+import com.android.settings.R;
+import com.android.settings.core.InstrumentedFragment;
+import com.android.settingslib.bluetooth.BluetoothBroadcastUtils;
+import com.android.settingslib.bluetooth.BluetoothUtils;
+import com.android.settingslib.qrcode.QrCamera;
+
+import java.time.Duration;
+
+public class QrCodeScanModeFragment extends InstrumentedFragment
+        implements TextureView.SurfaceTextureListener, QrCamera.ScannerCallback {
+    private static final boolean DEBUG = BluetoothUtils.D;
+    private static final String TAG = "QrCodeScanModeFragment";
+
+    /** Message sent to hide error message */
+    private static final int MESSAGE_HIDE_ERROR_MESSAGE = 1;
+
+    /** Message sent to show error message */
+    private static final int MESSAGE_SHOW_ERROR_MESSAGE = 2;
+
+    /** Message sent to broadcast QR code */
+    private static final int MESSAGE_SCAN_BROADCAST_SUCCESS = 3;
+
+    private static final long SHOW_ERROR_MESSAGE_INTERVAL = 10000;
+    private static final long SHOW_SUCCESS_SQUARE_INTERVAL = 1000;
+
+    private static final Duration VIBRATE_DURATION_QR_CODE_RECOGNITION = Duration.ofMillis(3);
+
+    public static final String KEY_BROADCAST_METADATA = "key_broadcast_metadata";
+
+    private int mCornerRadius;
+    private String mBroadcastMetadata;
+    private Context mContext;
+    private QrCamera mCamera;
+    private TextureView mTextureView;
+    private TextView mSummary;
+    private TextView mErrorMessage;
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        mContext = getContext();
+    }
+
+    @Override
+    public final View onCreateView(
+            LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+        return inflater.inflate(
+                R.layout.qrcode_scanner_fragment, container, /* attachToRoot */ false);
+    }
+
+    @Override
+    public void onViewCreated(View view, Bundle savedInstanceState) {
+        mTextureView = view.findViewById(R.id.preview_view);
+        mCornerRadius =
+                mContext.getResources().getDimensionPixelSize(R.dimen.qrcode_preview_radius);
+        mTextureView.setSurfaceTextureListener(this);
+        mTextureView.setOutlineProvider(
+                new ViewOutlineProvider() {
+                    @Override
+                    public void getOutline(View view, Outline outline) {
+                        outline.setRoundRect(
+                                0, 0, view.getWidth(), view.getHeight(), mCornerRadius);
+                    }
+                });
+        mTextureView.setClipToOutline(true);
+        mErrorMessage = view.findViewById(R.id.error_message);
+    }
+
+    private void initCamera(SurfaceTexture surface) {
+        // Check if the camera has already created.
+        if (mCamera == null) {
+            mCamera = new QrCamera(mContext, this);
+            mCamera.start(surface);
+        }
+    }
+
+    private void destroyCamera() {
+        if (mCamera != null) {
+            mCamera.stop();
+            mCamera = null;
+        }
+    }
+
+    @Override
+    public void onSurfaceTextureAvailable(@NonNull SurfaceTexture surface, int width, int height) {
+        initCamera(surface);
+    }
+
+    @Override
+    public void onSurfaceTextureSizeChanged(
+            @NonNull SurfaceTexture surface, int width, int height) {}
+
+    @Override
+    public boolean onSurfaceTextureDestroyed(@NonNull SurfaceTexture surface) {
+        destroyCamera();
+        return true;
+    }
+
+    @Override
+    public void onSurfaceTextureUpdated(@NonNull SurfaceTexture surface) {}
+
+    @Override
+    public void handleSuccessfulResult(String qrCode) {
+        if (DEBUG) {
+            Log.d(TAG, "handleSuccessfulResult(), get the qr code string.");
+        }
+        mBroadcastMetadata = qrCode;
+        handleBtLeAudioScanner();
+    }
+
+    @Override
+    public void handleCameraFailure() {
+        destroyCamera();
+    }
+
+    @Override
+    public Size getViewSize() {
+        return new Size(mTextureView.getWidth(), mTextureView.getHeight());
+    }
+
+    @Override
+    public Rect getFramePosition(Size previewSize, int cameraOrientation) {
+        return new Rect(0, 0, previewSize.getHeight(), previewSize.getHeight());
+    }
+
+    @Override
+    public void setTransform(Matrix transform) {
+        mTextureView.setTransform(transform);
+    }
+
+    @Override
+    public boolean isValid(String qrCode) {
+        if (qrCode.startsWith(BluetoothBroadcastUtils.SCHEME_BT_BROADCAST_METADATA)) {
+            return true;
+        } else {
+            showErrorMessage(R.string.bt_le_audio_qr_code_is_not_valid_format);
+            return false;
+        }
+    }
+
+    protected boolean isDecodeTaskAlive() {
+        return mCamera != null && mCamera.isDecodeTaskAlive();
+    }
+
+    private final Handler mHandler =
+            new Handler() {
+                @Override
+                public void handleMessage(Message msg) {
+                    switch (msg.what) {
+                        case MESSAGE_HIDE_ERROR_MESSAGE:
+                            mErrorMessage.setVisibility(View.INVISIBLE);
+                            break;
+
+                        case MESSAGE_SHOW_ERROR_MESSAGE:
+                            final String errorMessage = (String) msg.obj;
+
+                            mErrorMessage.setVisibility(View.VISIBLE);
+                            mErrorMessage.setText(errorMessage);
+                            mErrorMessage.sendAccessibilityEvent(
+                                    AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
+
+                            // Cancel any pending messages to hide error view and requeue the
+                            // message so
+                            // user has time to see error
+                            removeMessages(MESSAGE_HIDE_ERROR_MESSAGE);
+                            sendEmptyMessageDelayed(
+                                    MESSAGE_HIDE_ERROR_MESSAGE, SHOW_ERROR_MESSAGE_INTERVAL);
+                            break;
+
+                        case MESSAGE_SCAN_BROADCAST_SUCCESS:
+                            Log.d(TAG, "scan success");
+                            final Intent resultIntent = new Intent();
+                            resultIntent.putExtra(KEY_BROADCAST_METADATA, mBroadcastMetadata);
+                            getActivity().setResult(Activity.RESULT_OK, resultIntent);
+                            notifyUserForQrCodeRecognition();
+                            break;
+                        default:
+                    }
+                }
+            };
+
+    private void notifyUserForQrCodeRecognition() {
+        if (mCamera != null) {
+            mCamera.stop();
+        }
+
+        mErrorMessage.setVisibility(View.INVISIBLE);
+
+        triggerVibrationForQrCodeRecognition(getContext());
+
+        getActivity().finish();
+    }
+
+    private static void triggerVibrationForQrCodeRecognition(Context context) {
+        Vibrator vibrator = context.getSystemService(Vibrator.class);
+        if (vibrator == null) {
+            return;
+        }
+        vibrator.vibrate(
+                VibrationEffect.createOneShot(
+                        VIBRATE_DURATION_QR_CODE_RECOGNITION.toMillis(),
+                        VibrationEffect.DEFAULT_AMPLITUDE));
+    }
+
+    private void showErrorMessage(@StringRes int messageResId) {
+        final Message message =
+                mHandler.obtainMessage(MESSAGE_SHOW_ERROR_MESSAGE, getString(messageResId));
+        message.sendToTarget();
+    }
+
+    private void handleBtLeAudioScanner() {
+        Message message = mHandler.obtainMessage(MESSAGE_SCAN_BROADCAST_SUCCESS);
+        mHandler.sendMessageDelayed(message, SHOW_SUCCESS_SQUARE_INTERVAL);
+    }
+
+    private void updateSummary() {
+        mSummary.setText(getString(R.string.bt_le_audio_scan_qr_code_scanner));
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.LE_AUDIO_BROADCAST_SCAN_QR_CODE;
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/fastpair/FastPairDeviceGroupController.java b/src/com/android/settings/connecteddevice/fastpair/FastPairDeviceGroupController.java
index ac117f1..52ad91c 100644
--- a/src/com/android/settings/connecteddevice/fastpair/FastPairDeviceGroupController.java
+++ b/src/com/android/settings/connecteddevice/fastpair/FastPairDeviceGroupController.java
@@ -22,6 +22,7 @@
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.pm.PackageManager;
+import android.util.Log;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.VisibleForTesting;
@@ -44,7 +45,10 @@
 public class FastPairDeviceGroupController extends BasePreferenceController
         implements PreferenceControllerMixin, DefaultLifecycleObserver, DevicePreferenceCallback {
 
+    private static final String TAG = "FastPairDeviceGroupCtr";
+
     private static final String KEY = "fast_pair_device_list";
+    private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
 
     @VisibleForTesting PreferenceGroup mPreferenceGroup;
     private final FastPairDeviceUpdater mFastPairDeviceUpdater;
@@ -68,6 +72,7 @@
             mFastPairDeviceUpdater =
                     fastPairFeatureProvider.getFastPairDeviceUpdater(context, this);
         } else {
+            Log.d(TAG, "Flag disabled. Ignored.");
             mFastPairDeviceUpdater = null;
         }
         mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
@@ -77,7 +82,12 @@
     @Override
     public void onStart(@NonNull LifecycleOwner owner) {
         if (mFastPairDeviceUpdater != null) {
+            mFastPairDeviceUpdater.setPreferenceContext(mContext);
             mFastPairDeviceUpdater.registerCallback();
+        } else {
+            if (DEBUG) {
+                Log.d(TAG, "Callback register: Fast Pair device updater is null. Ignore.");
+            }
         }
         mContext.registerReceiver(mReceiver, mIntentFilter, Context.RECEIVER_EXPORTED_UNAUDITED);
     }
@@ -85,7 +95,12 @@
     @Override
     public void onStop(@NonNull LifecycleOwner owner) {
         if (mFastPairDeviceUpdater != null) {
+            mFastPairDeviceUpdater.setPreferenceContext(null);
             mFastPairDeviceUpdater.unregisterCallback();
+        } else {
+            if (DEBUG) {
+                Log.d(TAG, "Callback unregister: Fast Pair device updater is null. Ignore.");
+            }
         }
         mContext.unregisterReceiver(mReceiver);
     }
@@ -117,14 +132,24 @@
 
     @Override
     public void onDeviceAdded(Preference preference) {
-        if (preference == null) return;
+        if (preference == null) {
+            if (DEBUG) {
+                Log.d(TAG, "onDeviceAdded receives null preference. Ignore.");
+            }
+            return;
+        }
         mPreferenceGroup.addPreference(preference);
         updatePreferenceVisibility();
     }
 
     @Override
     public void onDeviceRemoved(Preference preference) {
-        if (preference == null) return;
+        if (preference == null) {
+            if (DEBUG) {
+                Log.d(TAG, "onDeviceRemoved receives null preference. Ignore.");
+            }
+            return;
+        }
         mPreferenceGroup.removePreference(preference);
         updatePreferenceVisibility();
     }
diff --git a/src/com/android/settings/connecteddevice/fastpair/FastPairDevicePreferenceController.java b/src/com/android/settings/connecteddevice/fastpair/FastPairDevicePreferenceController.java
index 6a5b6b9..a1c6d18 100644
--- a/src/com/android/settings/connecteddevice/fastpair/FastPairDevicePreferenceController.java
+++ b/src/com/android/settings/connecteddevice/fastpair/FastPairDevicePreferenceController.java
@@ -81,6 +81,7 @@
             mFastPairDeviceUpdater =
                     fastPairFeatureProvider.getFastPairDeviceUpdater(context, this);
         } else {
+            Log.d(TAG, "Flag disabled. Ignore.");
             mFastPairDeviceUpdater = null;
         }
         mIntentFilter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
@@ -90,7 +91,12 @@
     @Override
     public void onStart(@NonNull LifecycleOwner owner) {
         if (mFastPairDeviceUpdater != null) {
+            mFastPairDeviceUpdater.setPreferenceContext(mContext);
             mFastPairDeviceUpdater.registerCallback();
+        } else {
+            if (DEBUG) {
+                Log.d(TAG, "Callback register: Fast Pair device updater is null. Ignore.");
+            }
         }
         mContext.registerReceiver(mReceiver, mIntentFilter, Context.RECEIVER_EXPORTED_UNAUDITED);
     }
@@ -98,7 +104,12 @@
     @Override
     public void onStop(@NonNull LifecycleOwner owner) {
         if (mFastPairDeviceUpdater != null) {
+            mFastPairDeviceUpdater.setPreferenceContext(null);
             mFastPairDeviceUpdater.unregisterCallback();
+        } else {
+            if (DEBUG) {
+                Log.d(TAG, "Callback unregister: Fast Pair device updater is null. Ignore.");
+            }
         }
         mContext.unregisterReceiver(mReceiver);
     }
@@ -109,7 +120,6 @@
         mPreferenceGroup = screen.findPreference(getPreferenceKey());
         mSeeAllPreference = mPreferenceGroup.findPreference(KEY_SEE_ALL);
         updatePreferenceVisibility();
-
         if (isAvailable()) {
             final Context context = screen.getContext();
             mFastPairDeviceUpdater.setPreferenceContext(context);
diff --git a/src/com/android/settings/connecteddevice/fastpair/FastPairDeviceUpdater.java b/src/com/android/settings/connecteddevice/fastpair/FastPairDeviceUpdater.java
index b975b9e..d1407ae 100644
--- a/src/com/android/settings/connecteddevice/fastpair/FastPairDeviceUpdater.java
+++ b/src/com/android/settings/connecteddevice/fastpair/FastPairDeviceUpdater.java
@@ -16,37 +16,24 @@
 
 package com.android.settings.connecteddevice.fastpair;
 
-import android.annotation.NonNull;
+import android.annotation.Nullable;
 import android.content.Context;
 
 /**
- * Updates the Fast Pair devices. It notifies the upper level whether to add/remove the
- * preference through {@link DevicePreferenceCallback}
+ * Updates the Fast Pair devices. It notifies the upper level whether to add/remove the preference
+ * through {@link DevicePreferenceCallback}
  */
 public interface FastPairDeviceUpdater {
 
-    /**
-     * Registers the Fast Pair event callback and update the list
-     */
-    default void registerCallback() {
-    }
+    /** Registers the Fast Pair event callback and update the list */
+    default void registerCallback() {}
 
-    /**
-     * Unregisters the Fast Pair event callback
-     */
-    default void unregisterCallback() {
-    }
+    /** Unregisters the Fast Pair event callback */
+    default void unregisterCallback() {}
 
-    /**
-     * Forces to update the list of Fast Pair devices
-     */
-    default void forceUpdate() {
-    }
+    /** Forces to update the list of Fast Pair devices */
+    default void forceUpdate() {}
 
-    /**
-     * Sets the context to generate the {@link Preference}, so it could get the correct theme.
-     */
-    default void setPreferenceContext(@NonNull Context preferenceContext) {
-    }
+    /** Sets the context to generate the {@link Preference}, so it could get the correct theme. */
+    default void setPreferenceContext(@Nullable Context preferenceContext) {}
 }
-
diff --git a/src/com/android/settings/connecteddevice/stylus/StylusDevicesController.java b/src/com/android/settings/connecteddevice/stylus/StylusDevicesController.java
index 985c8b7..ec19e8d 100644
--- a/src/com/android/settings/connecteddevice/stylus/StylusDevicesController.java
+++ b/src/com/android/settings/connecteddevice/stylus/StylusDevicesController.java
@@ -32,6 +32,7 @@
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.InputDevice;
+import android.view.KeyEvent;
 import android.view.inputmethod.InputMethodInfo;
 import android.view.inputmethod.InputMethodManager;
 
@@ -40,7 +41,8 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceCategory;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.SwitchPreferenceCompat;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.dashboard.profileselector.ProfileSelectDialog;
@@ -106,6 +108,12 @@
             return null;
         }
 
+        boolean doesStylusSupportTailButton = mInputDevice.hasKeys(
+                KeyEvent.KEYCODE_STYLUS_BUTTON_TAIL)[0];
+        if (!doesStylusSupportTailButton) {
+            return null;
+        }
+
         Preference pref = preference == null ? new Preference(mContext) : preference;
         pref.setKey(KEY_DEFAULT_NOTES);
         pref.setTitle(mContext.getString(R.string.stylus_default_notes_app));
@@ -157,8 +165,8 @@
         return pref;
     }
 
-    private SwitchPreference createButtonPressPreference() {
-        SwitchPreference pref = new SwitchPreference(mContext);
+    private TwoStatePreference createButtonPressPreference() {
+        TwoStatePreference pref = new SwitchPreferenceCompat(mContext);
         pref.setKey(KEY_IGNORE_BUTTON);
         pref.setTitle(mContext.getString(R.string.stylus_ignore_button));
         pref.setIcon(R.drawable.ic_block);
@@ -198,7 +206,7 @@
             case KEY_IGNORE_BUTTON:
                 Settings.Secure.putInt(mContext.getContentResolver(),
                         Secure.STYLUS_BUTTONS_ENABLED,
-                        ((SwitchPreference) preference).isChecked() ? 0 : 1);
+                        ((TwoStatePreference) preference).isChecked() ? 0 : 1);
                 break;
         }
         return true;
diff --git a/src/com/android/settings/connecteddevice/usb/UsbDetailsPowerRoleController.java b/src/com/android/settings/connecteddevice/usb/UsbDetailsPowerRoleController.java
index 07bd175..f00435a 100644
--- a/src/com/android/settings/connecteddevice/usb/UsbDetailsPowerRoleController.java
+++ b/src/com/android/settings/connecteddevice/usb/UsbDetailsPowerRoleController.java
@@ -26,7 +26,8 @@
 import androidx.preference.Preference.OnPreferenceClickListener;
 import androidx.preference.PreferenceCategory;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.SwitchPreferenceCompat;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.Utils;
@@ -39,7 +40,7 @@
     private static final String KEY_USB_USE_POWER_ONLY = "usb_use_power_only";
 
     private PreferenceCategory mPreferenceCategory;
-    private SwitchPreference mSwitchPreference;
+    private TwoStatePreference mSwitchPreference;
 
     private int mNextPowerRole;
 
@@ -60,7 +61,7 @@
     public void displayPreference(PreferenceScreen screen) {
         super.displayPreference(screen);
         mPreferenceCategory = screen.findPreference(getPreferenceKey());
-        mSwitchPreference = new SwitchPreference(mPreferenceCategory.getContext());
+        mSwitchPreference = new SwitchPreferenceCompat(mPreferenceCategory.getContext());
         mSwitchPreference.setTitle(R.string.usb_use_power_only);
         mSwitchPreference.setKey(KEY_USB_USE_POWER_ONLY);
         mSwitchPreference.setOnPreferenceClickListener(this);
diff --git a/src/com/android/settings/connecteddevice/usb/UsbDetailsTranscodeMtpController.java b/src/com/android/settings/connecteddevice/usb/UsbDetailsTranscodeMtpController.java
index 280e1d2..192ae74 100644
--- a/src/com/android/settings/connecteddevice/usb/UsbDetailsTranscodeMtpController.java
+++ b/src/com/android/settings/connecteddevice/usb/UsbDetailsTranscodeMtpController.java
@@ -25,7 +25,8 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceCategory;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.SwitchPreferenceCompat;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.Utils;
@@ -41,7 +42,7 @@
     private static final String KEY_USB_TRANSCODE_FILES = "usb_transcode_files";
 
     private PreferenceCategory mPreferenceCategory;
-    private SwitchPreference mSwitchPreference;
+    private TwoStatePreference mSwitchPreference;
 
     public UsbDetailsTranscodeMtpController(Context context, UsbDetailsFragment fragment,
             UsbBackend backend) {
@@ -53,7 +54,7 @@
     public void displayPreference(PreferenceScreen screen) {
         super.displayPreference(screen);
         mPreferenceCategory = screen.findPreference(getPreferenceKey());
-        mSwitchPreference = new SwitchPreference(mPreferenceCategory.getContext());
+        mSwitchPreference = new SwitchPreferenceCompat(mPreferenceCategory.getContext());
         mSwitchPreference.setTitle(R.string.usb_transcode_files);
         mSwitchPreference.setKey(KEY_USB_TRANSCODE_FILES);
         mSwitchPreference.setOnPreferenceClickListener(this);
diff --git a/src/com/android/settings/core/InstrumentedPreferenceFragment.java b/src/com/android/settings/core/InstrumentedPreferenceFragment.java
index ba92eae..4d871d4 100644
--- a/src/com/android/settings/core/InstrumentedPreferenceFragment.java
+++ b/src/com/android/settings/core/InstrumentedPreferenceFragment.java
@@ -27,7 +27,7 @@
 import androidx.annotation.XmlRes;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 import androidx.recyclerview.widget.RecyclerView;
 
 import com.android.internal.jank.InteractionJankMonitor;
@@ -71,9 +71,9 @@
         super.onStart();
         // Override the OnPreferenceTreeClickListener in super.onStart() to inject jank detection.
         getPreferenceManager().setOnPreferenceTreeClickListener((preference) -> {
-            if (preference instanceof SwitchPreference) {
+            if (preference instanceof TwoStatePreference twoStatePreference) {
                 SettingsJankMonitor.detectSwitchPreferenceClickJank(
-                        getListView(), (SwitchPreference) preference);
+                        getListView(), twoStatePreference);
             }
             return onPreferenceTreeClick(preference);
         });
diff --git a/src/com/android/settings/core/PreferenceXmlParserUtils.java b/src/com/android/settings/core/PreferenceXmlParserUtils.java
index f4fd5f7..acb1d34 100644
--- a/src/com/android/settings/core/PreferenceXmlParserUtils.java
+++ b/src/com/android/settings/core/PreferenceXmlParserUtils.java
@@ -49,7 +49,7 @@
     private static final String TAG = "PreferenceXmlParserUtil";
     public static final String PREF_SCREEN_TAG = "PreferenceScreen";
     private static final List<String> SUPPORTED_PREF_TYPES = Arrays.asList(
-            "Preference", "PreferenceCategory", "PreferenceScreen",
+            "Preference", "PreferenceCategory", "PreferenceScreen", "SwitchPreferenceCompat",
             "com.android.settings.widget.WorkOnlyCategory");
     public static final int PREPEND_VALUE = 0;
     public static final int APPEND_VALUE = 1;
diff --git a/src/com/android/settings/core/gateway/SettingsGateway.java b/src/com/android/settings/core/gateway/SettingsGateway.java
index e89f20e..554d23e 100644
--- a/src/com/android/settings/core/gateway/SettingsGateway.java
+++ b/src/com/android/settings/core/gateway/SettingsGateway.java
@@ -143,7 +143,6 @@
 import com.android.settings.network.telephony.MobileNetworkSettings;
 import com.android.settings.network.telephony.NetworkSelectSettings;
 import com.android.settings.network.tether.TetherSettings;
-import com.android.settings.nfc.AndroidBeam;
 import com.android.settings.nfc.PaymentSettings;
 import com.android.settings.notification.ConfigureNotificationSettings;
 import com.android.settings.notification.NotificationAccessSettings;
@@ -258,7 +257,6 @@
             PrivateVolumeForget.class.getName(),
             PublicVolumeSettings.class.getName(),
             DevelopmentSettingsDashboardFragment.class.getName(),
-            AndroidBeam.class.getName(),
             WifiDisplaySettings.class.getName(),
             PowerUsageSummary.class.getName(),
             AccountSyncSettings.class.getName(),
diff --git a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
index 3345a55..8214d0b 100644
--- a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
+++ b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
@@ -55,7 +55,7 @@
 import androidx.annotation.VisibleForTesting;
 import androidx.fragment.app.FragmentActivity;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
@@ -376,16 +376,16 @@
     }
 
     private void setSwitchChecked(Preference pref, boolean checked) {
-        if (pref instanceof PrimarySwitchPreference) {
-            ((PrimarySwitchPreference) pref).setChecked(checked);
-        } else if (pref instanceof SwitchPreference) {
-            ((SwitchPreference) pref).setChecked(checked);
+        if (pref instanceof PrimarySwitchPreference primarySwitchPreference) {
+            primarySwitchPreference.setChecked(checked);
+        } else if (pref instanceof TwoStatePreference twoStatePreference) {
+            twoStatePreference.setChecked(checked);
         }
     }
 
     private void setSwitchEnabled(Preference pref, boolean enabled) {
-        if (pref instanceof PrimarySwitchPreference) {
-            ((PrimarySwitchPreference) pref).setSwitchEnabled(enabled);
+        if (pref instanceof PrimarySwitchPreference primarySwitchPreference) {
+            primarySwitchPreference.setSwitchEnabled(enabled);
         } else {
             pref.setEnabled(enabled);
         }
diff --git a/src/com/android/settings/dashboard/DashboardFragment.java b/src/com/android/settings/dashboard/DashboardFragment.java
index 9d673b1..0973076 100644
--- a/src/com/android/settings/dashboard/DashboardFragment.java
+++ b/src/com/android/settings/dashboard/DashboardFragment.java
@@ -38,7 +38,7 @@
 import androidx.preference.PreferenceGroup;
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.SwitchPreferenceCompat;
 
 import com.android.settings.R;
 import com.android.settings.SettingsPreferenceFragment;
@@ -600,7 +600,7 @@
                         .setWidgetLayoutResource(R.layout.preference_external_action_icon);
                 return externalActionPreference;
             case SWITCH:
-                return new SwitchPreference(getPrefContext());
+                return new SwitchPreferenceCompat(getPrefContext());
             case SWITCH_WITH_ACTION:
                 return new PrimarySwitchPreference(getPrefContext());
             case GROUP:
diff --git a/src/com/android/settings/dashboard/profileselector/ProfileSelectAccountFragment.java b/src/com/android/settings/dashboard/profileselector/ProfileSelectAccountFragment.java
index cf91031..77dc3a7 100644
--- a/src/com/android/settings/dashboard/profileselector/ProfileSelectAccountFragment.java
+++ b/src/com/android/settings/dashboard/profileselector/ProfileSelectAccountFragment.java
@@ -15,10 +15,12 @@
  */
 
 package com.android.settings.dashboard.profileselector;
+
 import androidx.fragment.app.Fragment;
 
 import com.android.settings.R;
 import com.android.settings.accounts.AccountPersonalDashboardFragment;
+import com.android.settings.accounts.AccountPrivateDashboardFragment;
 import com.android.settings.accounts.AccountWorkProfileDashboardFragment;
 
 /**
@@ -28,10 +30,12 @@
 
     @Override
     public Fragment[] getFragments() {
-        return new Fragment[] {
-                new AccountPersonalDashboardFragment(),
-                new AccountWorkProfileDashboardFragment()
-        };
+        return ProfileSelectFragment.getFragments(
+                getContext(),
+                null /* bundle */,
+                AccountPersonalDashboardFragment::new,
+                AccountWorkProfileDashboardFragment::new,
+                AccountPrivateDashboardFragment::new);
     }
 
     @Override
diff --git a/src/com/android/settings/dashboard/profileselector/ProfileSelectDialog.java b/src/com/android/settings/dashboard/profileselector/ProfileSelectDialog.java
index 6b50b70..561a51a 100644
--- a/src/com/android/settings/dashboard/profileselector/ProfileSelectDialog.java
+++ b/src/com/android/settings/dashboard/profileselector/ProfileSelectDialog.java
@@ -25,7 +25,9 @@
 import android.content.DialogInterface.OnShowListener;
 import android.content.Intent;
 import android.content.pm.UserInfo;
+import android.content.pm.UserProperties;
 import android.os.Bundle;
+import android.os.Flags;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.util.Log;
@@ -183,7 +185,10 @@
         final UserManager userManager = UserManager.get(context);
         for (int i = userHandles.size() - 1; i >= 0; i--) {
             UserInfo userInfo = userManager.getUserInfo(userHandles.get(i).getIdentifier());
-            if (userInfo == null || userInfo.isCloneProfile()) {
+            if (userInfo == null
+                    || userInfo.isCloneProfile()
+                    || (Flags.allowPrivateProfile()
+                        && shouldHideUserInQuietMode(userHandles.get(i), userManager))) {
                 if (DEBUG) {
                     Log.d(TAG, "Delete the user: " + userHandles.get(i).getIdentifier());
                 }
@@ -214,7 +219,10 @@
         final UserManager userManager = UserManager.get(context);
         for (UserHandle userHandle : List.copyOf(tile.pendingIntentMap.keySet())) {
             UserInfo userInfo = userManager.getUserInfo(userHandle.getIdentifier());
-            if (userInfo == null || userInfo.isCloneProfile()) {
+            if (userInfo == null
+                    || userInfo.isCloneProfile()
+                    || (Flags.allowPrivateProfile()
+                        && shouldHideUserInQuietMode(userHandle, userManager))) {
                 if (DEBUG) {
                     Log.d(TAG, "Delete the user: " + userHandle.getIdentifier());
                 }
@@ -223,4 +231,11 @@
             }
         }
     }
+
+    private static boolean shouldHideUserInQuietMode(
+            UserHandle userHandle, UserManager userManager) {
+        UserProperties userProperties = userManager.getUserProperties(userHandle);
+        return userProperties.getHideInSettingsInQuietMode()
+                && userManager.isQuietModeEnabled(userHandle);
+    }
 }
diff --git a/src/com/android/settings/dashboard/profileselector/ProfileSelectFragment.java b/src/com/android/settings/dashboard/profileselector/ProfileSelectFragment.java
index 5c0580d..dc1b792 100644
--- a/src/com/android/settings/dashboard/profileselector/ProfileSelectFragment.java
+++ b/src/com/android/settings/dashboard/profileselector/ProfileSelectFragment.java
@@ -17,21 +17,28 @@
 package com.android.settings.dashboard.profileselector;
 
 import static android.app.admin.DevicePolicyResources.Strings.Settings.PERSONAL_CATEGORY_HEADER;
+import static android.app.admin.DevicePolicyResources.Strings.Settings.PRIVATE_CATEGORY_HEADER;
 import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_CATEGORY_HEADER;
 import static android.content.Intent.EXTRA_USER_ID;
 
 import android.annotation.IntDef;
 import android.app.Activity;
 import android.app.admin.DevicePolicyManager;
+import android.content.Context;
+import android.content.pm.UserInfo;
 import android.os.Bundle;
+import android.os.Flags;
 import android.os.UserHandle;
 import android.os.UserManager;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.FrameLayout;
 import android.widget.LinearLayout;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 import androidx.fragment.app.Fragment;
 import androidx.recyclerview.widget.RecyclerView;
@@ -42,12 +49,14 @@
 import com.android.settings.SettingsActivity;
 import com.android.settings.Utils;
 import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.privatespace.PrivateSpaceMaintainer;
 
 import com.google.android.material.tabs.TabLayout;
 import com.google.android.material.tabs.TabLayoutMediator;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
+import java.util.ArrayList;
 
 /**
  * Base fragment class for profile settings.
@@ -77,9 +86,14 @@
         int WORK = 1 << 1;
 
         /**
-         * It is personal and work profile
+         * It is private profile
          */
-        int ALL = PERSONAL | WORK;
+        int PRIVATE = 1 << 2;
+
+        /**
+         * It is personal, work, and private profile
+         */
+        int ALL = PERSONAL | WORK | PRIVATE;
     }
 
     /**
@@ -97,6 +111,11 @@
      */
     public static final int WORK_TAB = 1;
 
+    /**
+     * Used in fragment argument with Extra key {@link SettingsActivity.EXTRA_SHOW_FRAGMENT_TAB}
+     */
+    public static final int PRIVATE_TAB = 2;
+
     private ViewGroup mContentView;
 
     private ViewPager2 mViewPager;
@@ -215,12 +234,20 @@
             if (isWorkProfile) {
                 return WORK_TAB;
             }
+            UserInfo userInfo = UserManager.get(activity).getUserInfo(userId);
+            if (Flags.allowPrivateProfile() && userInfo != null && userInfo.isPrivateProfile()) {
+                return PRIVATE_TAB;
+            }
         }
         // Start intent from a specific user eg: adb shell --user 10
         final int intentUser = activity.getIntent().getContentUserHint();
         if (UserManager.get(activity).isManagedProfile(intentUser)) {
             return WORK_TAB;
         }
+        UserInfo userInfo = UserManager.get(activity).getUserInfo(intentUser);
+        if (Flags.allowPrivateProfile() && userInfo != null && userInfo.isPrivateProfile()) {
+            return PRIVATE_TAB;
+        }
 
         return PERSONAL_TAB;
     }
@@ -229,13 +256,114 @@
         final DevicePolicyManager devicePolicyManager =
                 getContext().getSystemService(DevicePolicyManager.class);
 
-        if (position == WORK_TAB) {
+        if (Flags.allowPrivateProfile()) {
+            int tabForPosition =
+                    ((ViewPagerAdapter) mViewPager.getAdapter()).getTabForPosition(position);
+
+            if (tabForPosition == WORK_TAB) {
+                return devicePolicyManager.getResources().getString(WORK_CATEGORY_HEADER,
+                        () -> getContext().getString(
+                                com.android.settingslib.R.string.category_work));
+            }
+
+            if (tabForPosition == PRIVATE_TAB) {
+                return devicePolicyManager.getResources().getString(PRIVATE_CATEGORY_HEADER,
+                        () -> getContext()
+                                .getString(com.android.settingslib.R.string.category_private));
+            }
+
+        } else if (position == WORK_TAB) {
             return devicePolicyManager.getResources().getString(WORK_CATEGORY_HEADER,
                     () -> getContext().getString(com.android.settingslib.R.string.category_work));
+
+        }
+        return devicePolicyManager.getResources().getString(PERSONAL_CATEGORY_HEADER,
+                () -> getContext().getString(
+                        com.android.settingslib.R.string.category_personal));
+    }
+
+    /** Creates fragments of passed types, and returns them in an array. */
+    @NonNull static Fragment[] getFragments(
+            Context context,
+            @Nullable Bundle bundle,
+            FragmentConstructor personalFragmentConstructor,
+            FragmentConstructor workFragmentConstructor,
+            FragmentConstructor privateFragmentConstructor) {
+        return getFragments(
+                context,
+                bundle,
+                personalFragmentConstructor,
+                workFragmentConstructor,
+                privateFragmentConstructor,
+                new PrivateSpaceInfoProvider() {},
+                new ManagedProfileInfoProvider() {});
+    }
+
+    /**
+     * Creates fragments of passed types, and returns them in an array. This overload exists only
+     * for helping with testing.
+     */
+    @NonNull static Fragment[] getFragments(
+            Context context,
+            @Nullable Bundle bundle,
+            FragmentConstructor personalFragmentConstructor,
+            FragmentConstructor workFragmentConstructor,
+            FragmentConstructor privateFragmentConstructor,
+            PrivateSpaceInfoProvider privateSpaceInfoProvider,
+            ManagedProfileInfoProvider managedProfileInfoProvider) {
+        Fragment[] result = new Fragment[0];
+        ArrayList<Fragment> fragments = new ArrayList<>();
+
+        try {
+            final Bundle personalOnly = bundle != null ? bundle : new Bundle();
+            personalOnly.putInt(EXTRA_PROFILE, ProfileType.PERSONAL);
+            final Fragment personalFragment =
+                    personalFragmentConstructor.constructAndGetFragment();
+            personalFragment.setArguments(personalOnly);
+            fragments.add(personalFragment);
+
+            if (managedProfileInfoProvider.getManagedProfile(context) != null) {
+                final Bundle workOnly = bundle != null ? bundle.deepCopy() : new Bundle();
+                workOnly.putInt(EXTRA_PROFILE, ProfileType.WORK);
+                final Fragment workFragment =
+                        workFragmentConstructor.constructAndGetFragment();
+                workFragment.setArguments(workOnly);
+                fragments.add(workFragment);
+            }
+
+            if (Flags.allowPrivateProfile()
+                    && !privateSpaceInfoProvider.isPrivateSpaceLocked(context)) {
+                final Bundle privateOnly = bundle != null ? bundle.deepCopy() : new Bundle();
+                privateOnly.putInt(EXTRA_PROFILE, ProfileType.PRIVATE);
+                final Fragment privateFragment =
+                        privateFragmentConstructor.constructAndGetFragment();
+                privateFragment.setArguments(privateOnly);
+                fragments.add(privateFragment);
+            }
+
+            result = new Fragment[fragments.size()];
+            fragments.toArray(result);
+        } catch (Exception e) {
+            Log.e(TAG, "Failed to create fragment");
         }
 
-        return devicePolicyManager.getResources().getString(PERSONAL_CATEGORY_HEADER,
-                () -> getContext().getString(com.android.settingslib.R.string.category_personal));
+        return result;
+    }
+
+    interface FragmentConstructor {
+        Fragment constructAndGetFragment();
+    }
+
+    interface PrivateSpaceInfoProvider {
+        default boolean isPrivateSpaceLocked(Context context) {
+            return PrivateSpaceMaintainer.getInstance(context).isPrivateSpaceLocked();
+        }
+    }
+
+    interface ManagedProfileInfoProvider {
+        default UserHandle getManagedProfile(Context context) {
+            return Utils.getManagedProfile(context.getSystemService(UserManager.class));
+        }
     }
 
     static class ViewPagerAdapter extends FragmentStateAdapter {
@@ -256,5 +384,22 @@
         public int getItemCount() {
             return mChildFragments.length;
         }
+
+        private int getTabForPosition(int position) {
+            if (position >= mChildFragments.length) {
+                Log.e(TAG, "tab requested for out of bound position " + position);
+                return PERSONAL_TAB;
+            }
+            @ProfileType
+            int profileType = mChildFragments[position].getArguments().getInt(EXTRA_PROFILE);
+
+            if (profileType == ProfileType.WORK) {
+                return WORK_TAB;
+            }
+            if (profileType == ProfileType.PRIVATE) {
+                return PRIVATE_TAB;
+            }
+            return PERSONAL_TAB;
+        }
     }
 }
diff --git a/src/com/android/settings/dashboard/profileselector/ProfileSelectKeyboardFragment.java b/src/com/android/settings/dashboard/profileselector/ProfileSelectKeyboardFragment.java
index c4386e6..d35692c 100644
--- a/src/com/android/settings/dashboard/profileselector/ProfileSelectKeyboardFragment.java
+++ b/src/com/android/settings/dashboard/profileselector/ProfileSelectKeyboardFragment.java
@@ -16,8 +16,6 @@
 
 package com.android.settings.dashboard.profileselector;
 
-import android.os.Bundle;
-
 import androidx.fragment.app.Fragment;
 
 import com.android.settings.R;
@@ -39,19 +37,11 @@
 
     @Override
     public Fragment[] getFragments() {
-        final Bundle personalOnly = new Bundle();
-        personalOnly.putInt(EXTRA_PROFILE, ProfileType.PERSONAL);
-        final Fragment personalFragment = new AvailableVirtualKeyboardFragment();
-        personalFragment.setArguments(personalOnly);
-
-        final Bundle workOnly = new Bundle();
-        workOnly.putInt(EXTRA_PROFILE, ProfileType.WORK);
-        final Fragment workFragment = new AvailableVirtualKeyboardFragment();
-        workFragment.setArguments(workOnly);
-
-        return new Fragment[]{
-                personalFragment,
-                workFragment
-        };
+        return ProfileSelectFragment.getFragments(
+                getContext(),
+                null /* bundle */,
+                AvailableVirtualKeyboardFragment::new,
+                AvailableVirtualKeyboardFragment::new,
+                AvailableVirtualKeyboardFragment::new);
     }
 }
diff --git a/src/com/android/settings/dashboard/profileselector/ProfileSelectLocationFragment.java b/src/com/android/settings/dashboard/profileselector/ProfileSelectLocationFragment.java
index 28fb97b..feaec74 100644
--- a/src/com/android/settings/dashboard/profileselector/ProfileSelectLocationFragment.java
+++ b/src/com/android/settings/dashboard/profileselector/ProfileSelectLocationFragment.java
@@ -45,20 +45,12 @@
 
     @Override
     public Fragment[] getFragments() {
-
-        final Bundle workOnly = new Bundle();
-        workOnly.putInt(EXTRA_PROFILE, ProfileSelectFragment.ProfileType.WORK);
-        final Fragment workFragment = new LocationWorkProfileSettings();
-        workFragment.setArguments(workOnly);
-
-        final Bundle personalOnly = new Bundle();
-        personalOnly.putInt(EXTRA_PROFILE, ProfileSelectFragment.ProfileType.PERSONAL);
-        final Fragment personalFragment = new LocationPersonalSettings();
-        personalFragment.setArguments(personalOnly);
-        return new Fragment[]{
-                personalFragment,
-                workFragment
-        };
+        return ProfileSelectFragment.getFragments(
+                getContext(),
+                null /* bundle */,
+                LocationPersonalSettings::new,
+                LocationWorkProfileSettings::new,
+                LocationPersonalSettings::new);
     }
 
     @Override
diff --git a/src/com/android/settings/dashboard/profileselector/ProfileSelectLocationServicesFragment.java b/src/com/android/settings/dashboard/profileselector/ProfileSelectLocationServicesFragment.java
index 111e4ce..8e48c7b 100644
--- a/src/com/android/settings/dashboard/profileselector/ProfileSelectLocationServicesFragment.java
+++ b/src/com/android/settings/dashboard/profileselector/ProfileSelectLocationServicesFragment.java
@@ -16,8 +16,6 @@
 
 package com.android.settings.dashboard.profileselector;
 
-import android.os.Bundle;
-
 import androidx.fragment.app.Fragment;
 
 import com.android.settings.R;
@@ -31,19 +29,12 @@
 
     @Override
     public Fragment[] getFragments() {
-        final Bundle workOnly = new Bundle();
-        workOnly.putInt(EXTRA_PROFILE, ProfileType.WORK);
-        final Fragment workFragment = new LocationServicesForWork();
-        workFragment.setArguments(workOnly);
-
-        final Bundle personalOnly = new Bundle();
-        personalOnly.putInt(EXTRA_PROFILE, ProfileType.PERSONAL);
-        final Fragment personalFragment = new LocationServices();
-        personalFragment.setArguments(personalOnly);
-        return new Fragment[]{
-                personalFragment, // 0
-                workFragment
-        };
+        return ProfileSelectFragment.getFragments(
+                getContext(),
+                null /* bundle */,
+                LocationServices::new,
+                LocationServicesForWork::new,
+                LocationServices::new);
     }
 
     @Override
diff --git a/src/com/android/settings/dashboard/profileselector/ProfileSelectManageApplications.java b/src/com/android/settings/dashboard/profileselector/ProfileSelectManageApplications.java
index 36aa9c5..4c82f6c 100644
--- a/src/com/android/settings/dashboard/profileselector/ProfileSelectManageApplications.java
+++ b/src/com/android/settings/dashboard/profileselector/ProfileSelectManageApplications.java
@@ -31,19 +31,12 @@
 
     @Override
     public Fragment[] getFragments() {
-        final Bundle workOnly = getArguments() != null ? getArguments().deepCopy() : new Bundle();
-        workOnly.putInt(EXTRA_PROFILE, ProfileSelectFragment.ProfileType.WORK);
-        final Fragment workFragment = new ManageApplications();
-        workFragment.setArguments(workOnly);
-
-        final Bundle personalOnly = getArguments() != null ? getArguments() : new Bundle();
-        personalOnly.putInt(EXTRA_PROFILE, ProfileSelectFragment.ProfileType.PERSONAL);
-        final Fragment personalFragment = new ManageApplications();
-        personalFragment.setArguments(personalOnly);
-        return new Fragment[]{
-                personalFragment, //0
-                workFragment
-        };
+        return ProfileSelectFragment.getFragments(
+                getContext(),
+                getArguments(),
+                ManageApplications::new,
+                ManageApplications::new,
+                ManageApplications::new);
     }
 
     @Override
diff --git a/src/com/android/settings/dashboard/profileselector/ProfileSelectPhysicalKeyboardFragment.java b/src/com/android/settings/dashboard/profileselector/ProfileSelectPhysicalKeyboardFragment.java
index 3c1546e..239d609 100644
--- a/src/com/android/settings/dashboard/profileselector/ProfileSelectPhysicalKeyboardFragment.java
+++ b/src/com/android/settings/dashboard/profileselector/ProfileSelectPhysicalKeyboardFragment.java
@@ -51,22 +51,11 @@
 
     @Override
     public Fragment[] getFragments() {
-        final Bundle personalOnly = new Bundle();
-        personalOnly.putInt(EXTRA_PROFILE, ProfileType.PERSONAL);
-        final Fragment personalFragment = new NewKeyboardLayoutEnabledLocalesFragment();
-        personalOnly.putParcelable(
-                Settings.EXTRA_INPUT_DEVICE_IDENTIFIER, mInputDeviceIdentifier);
-        personalFragment.setArguments(personalOnly);
-
-        final Bundle workOnly = new Bundle();
-        workOnly.putInt(EXTRA_PROFILE, ProfileType.WORK);
-        final Fragment workFragment = new NewKeyboardLayoutEnabledLocalesFragment();
-        workOnly.putParcelable(Settings.EXTRA_INPUT_DEVICE_IDENTIFIER, mInputDeviceIdentifier);
-        workFragment.setArguments(workOnly);
-
-        return new Fragment[]{
-                personalFragment,
-                workFragment
-        };
+        return ProfileSelectFragment.getFragments(
+                getContext(),
+                null /* bundle */,
+                NewKeyboardLayoutEnabledLocalesFragment::new,
+                NewKeyboardLayoutEnabledLocalesFragment::new,
+                NewKeyboardLayoutEnabledLocalesFragment::new);
     }
 }
diff --git a/src/com/android/settings/dashboard/profileselector/ProfileSelectStorageFragment.java b/src/com/android/settings/dashboard/profileselector/ProfileSelectStorageFragment.java
index 5babf30..b523e7e 100644
--- a/src/com/android/settings/dashboard/profileselector/ProfileSelectStorageFragment.java
+++ b/src/com/android/settings/dashboard/profileselector/ProfileSelectStorageFragment.java
@@ -193,20 +193,12 @@
             return mFragments;
         }
 
-        final Bundle workBundle = new Bundle();
-        workBundle.putInt(EXTRA_PROFILE, ProfileType.WORK);
-        final Fragment workFragment = new StorageCategoryFragment();
-        workFragment.setArguments(workBundle);
-
-        final Bundle personalBundle = new Bundle();
-        personalBundle.putInt(EXTRA_PROFILE, ProfileType.PERSONAL);
-        final Fragment personalFragment = new StorageCategoryFragment();
-        personalFragment.setArguments(personalBundle);
-
-        mFragments = new Fragment[] {
-            personalFragment,
-            workFragment
-        };
+        mFragments = ProfileSelectFragment.getFragments(
+                getContext(),
+                null /* bundle */,
+                StorageCategoryFragment::new,
+                StorageCategoryFragment::new,
+                StorageCategoryFragment::new);
         return mFragments;
     }
 
diff --git a/src/com/android/settings/dashboard/profileselector/UserAdapter.java b/src/com/android/settings/dashboard/profileselector/UserAdapter.java
index 0552a81..66ba815 100644
--- a/src/com/android/settings/dashboard/profileselector/UserAdapter.java
+++ b/src/com/android/settings/dashboard/profileselector/UserAdapter.java
@@ -17,7 +17,6 @@
 package com.android.settings.dashboard.profileselector;
 
 import static android.app.admin.DevicePolicyResources.Strings.Settings.PERSONAL_CATEGORY_HEADER;
-import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_CATEGORY_HEADER;
 
 import android.app.ActivityManager;
 import android.app.admin.DevicePolicyManager;
@@ -51,11 +50,13 @@
     /** Holder for user details */
     public static class UserDetails {
         private final UserHandle mUserHandle;
+        private final UserManager mUserManager;
         private final Drawable mIcon;
         private final String mTitle;
 
         public UserDetails(UserHandle userHandle, UserManager um, Context context) {
             mUserHandle = userHandle;
+            mUserManager = um;
             UserInfo userInfo = um.getUserInfo(mUserHandle.getIdentifier());
             int tintColor = Utils.getColorAttrDefaultColor(context,
                     com.android.internal.R.attr.materialColorPrimaryContainer);
@@ -73,16 +74,13 @@
             DevicePolicyManager devicePolicyManager =
                     Objects.requireNonNull(context.getSystemService(DevicePolicyManager.class));
             DevicePolicyResourcesManager resources = devicePolicyManager.getResources();
-            int userHandle = mUserHandle.getIdentifier();
-            if (userHandle == UserHandle.USER_CURRENT
-                    || userHandle == ActivityManager.getCurrentUser()) {
+            int userId = mUserHandle.getIdentifier();
+            if (userId == UserHandle.USER_CURRENT || userId == ActivityManager.getCurrentUser()) {
                 return resources.getString(PERSONAL_CATEGORY_HEADER,
                         () -> context.getString(
                                 com.android.settingslib.R.string.category_personal));
-            } else {
-                return resources.getString(WORK_CATEGORY_HEADER,
-                        () -> context.getString(com.android.settingslib.R.string.category_work));
             }
+            return (String) mUserManager.getBadgedLabelForUser(/* label= */ "", mUserHandle);
         }
     }
 
diff --git a/src/com/android/settings/datausage/AppDataUsage.java b/src/com/android/settings/datausage/AppDataUsage.java
index 33307a3..fb28d68 100644
--- a/src/com/android/settings/datausage/AppDataUsage.java
+++ b/src/com/android/settings/datausage/AppDataUsage.java
@@ -16,49 +16,46 @@
 
 import static android.net.NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND;
 
+import static com.android.settings.datausage.lib.AppDataUsageRepository.getAppUid;
+import static com.android.settings.datausage.lib.AppDataUsageRepository.getAppUidList;
+
 import android.app.Activity;
 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.graphics.drawable.Drawable;
 import android.net.NetworkTemplate;
 import android.os.Bundle;
-import android.os.Process;
 import android.os.UserHandle;
-import android.telephony.SubscriptionManager;
 import android.util.ArraySet;
 import android.util.IconDrawableFactory;
 import android.util.Log;
-import android.util.Range;
-import android.view.View;
-import android.widget.AdapterView;
 
 import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
-import androidx.loader.app.LoaderManager;
-import androidx.loader.content.Loader;
 import androidx.preference.Preference;
 import androidx.preference.Preference.OnPreferenceChangeListener;
-import androidx.preference.PreferenceCategory;
 import androidx.recyclerview.widget.DefaultItemAnimator;
 import androidx.recyclerview.widget.RecyclerView;
 
 import com.android.settings.R;
 import com.android.settings.applications.AppInfoBase;
+import com.android.settings.datausage.lib.AppDataUsageDetailsRepository;
+import com.android.settings.datausage.lib.NetworkTemplates;
+import com.android.settings.datausage.lib.NetworkUsageDetailsData;
+import com.android.settings.fuelgauge.datasaver.DynamicDenylistManager;
 import com.android.settings.network.SubscriptionUtil;
 import com.android.settings.widget.EntityHeaderController;
 import com.android.settingslib.AppItem;
 import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
 import com.android.settingslib.RestrictedLockUtilsInternal;
 import com.android.settingslib.RestrictedSwitchPreference;
-import com.android.settingslib.net.NetworkCycleDataForUid;
-import com.android.settingslib.net.NetworkCycleDataForUidLoader;
 import com.android.settingslib.net.UidDetail;
 import com.android.settingslib.net.UidDetailProvider;
 
+import kotlin.Unit;
+
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -76,38 +73,25 @@
     private static final String KEY_TOTAL_USAGE = "total_usage";
     private static final String KEY_FOREGROUND_USAGE = "foreground_usage";
     private static final String KEY_BACKGROUND_USAGE = "background_usage";
-    private static final String KEY_APP_SETTINGS = "app_settings";
     private static final String KEY_RESTRICT_BACKGROUND = "restrict_background";
-    private static final String KEY_APP_LIST = "app_list";
-    private static final String KEY_CYCLE = "cycle";
     private static final String KEY_UNRESTRICTED_DATA = "unrestricted_data_saver";
 
-    private static final int LOADER_APP_USAGE_DATA = 2;
-    private static final int LOADER_APP_PREF = 3;
-
     private PackageManager mPackageManager;
     private final ArraySet<String> mPackages = new ArraySet<>();
     private Preference mTotalUsage;
     private Preference mForegroundUsage;
     private Preference mBackgroundUsage;
-    private Preference mAppSettings;
     private RestrictedSwitchPreference mRestrictBackground;
-    private PreferenceCategory mAppList;
 
     private Drawable mIcon;
     @VisibleForTesting
     CharSequence mLabel;
     @VisibleForTesting
     String mPackageName;
-    private CycleAdapter mCycleAdapter;
 
-    @Nullable
-    private List<NetworkCycleDataForUid> mUsageData;
     @VisibleForTesting
     NetworkTemplate mTemplate;
     private AppItem mAppItem;
-    private Intent mAppSettingsIntent;
-    private SpinnerPreference mCycle;
     private RestrictedSwitchPreference mUnrestrictedData;
     private DataSaverBackend mDataSaverBackend;
     private Context mContext;
@@ -134,15 +118,16 @@
         mSelectedCycle = (args != null) ? args.getLong(ARG_SELECTED_CYCLE) : 0L;
 
         if (mTemplate == null) {
-            mTemplate = DataUsageUtils.getDefaultTemplate(mContext,
-                    SubscriptionManager.getDefaultDataSubscriptionId());
+            mTemplate = NetworkTemplates.INSTANCE.getDefaultTemplate(mContext);
         }
+        final Activity activity = requireActivity();
+        activity.setTitle(NetworkTemplates.getTitleResId(mTemplate));
         if (mAppItem == null) {
             int uid = (args != null) ? args.getInt(AppInfoBase.ARG_PACKAGE_UID, -1)
                     : getActivity().getIntent().getIntExtra(AppInfoBase.ARG_PACKAGE_UID, -1);
             if (uid == -1) {
                 // TODO: Log error.
-                getActivity().finish();
+                activity.finish();
             } else {
                 addUid(uid);
                 mAppItem = new AppItem(uid);
@@ -154,19 +139,12 @@
             }
         }
 
-        if (mAppItem.key > 0 && UserHandle.isApp(mAppItem.key)) {
-            // In case we've been asked data usage for an app, automatically
-            // include data usage of the corresponding SDK sandbox
-            final int appSandboxUid = Process.toSdkSandboxUid(mAppItem.key);
-            if (!mAppItem.uids.get(appSandboxUid)) {
-                mAppItem.addUid(appSandboxUid);
-            }
-        }
         mTotalUsage = findPreference(KEY_TOTAL_USAGE);
         mForegroundUsage = findPreference(KEY_FOREGROUND_USAGE);
         mBackgroundUsage = findPreference(KEY_BACKGROUND_USAGE);
 
-        initCycle();
+        final List<Integer> uidList = getAppUidList(mAppItem.uids);
+        initCycle(uidList);
 
         final UidDetailProvider uidDetailProvider = getUidDetailProvider();
 
@@ -179,14 +157,16 @@
                 removePreference(KEY_RESTRICT_BACKGROUND);
             } else {
                 if (mPackages.size() != 0) {
+                    int userId = UserHandle.getUserId(mAppItem.key);
                     try {
                         final ApplicationInfo info = mPackageManager.getApplicationInfoAsUser(
-                            mPackages.valueAt(0), 0, UserHandle.getUserId(mAppItem.key));
+                                mPackages.valueAt(0), 0, userId);
                         mIcon = IconDrawableFactory.newInstance(getActivity()).getBadgedIcon(info);
                         mLabel = info.loadLabel(mPackageManager);
                         mPackageName = info.packageName;
                     } catch (PackageManager.NameNotFoundException e) {
                     }
+                    use(AppDataUsageAppSettingsController.class).init(mPackages, userId);
                 }
                 mRestrictBackground = findPreference(KEY_RESTRICT_BACKGROUND);
                 mRestrictBackground.setOnPreferenceChangeListener(this);
@@ -194,32 +174,8 @@
                 mUnrestrictedData.setOnPreferenceChangeListener(this);
             }
             mDataSaverBackend = new DataSaverBackend(mContext);
-            mAppSettings = findPreference(KEY_APP_SETTINGS);
 
-            mAppSettingsIntent = new Intent(Intent.ACTION_MANAGE_NETWORK_USAGE);
-            mAppSettingsIntent.addCategory(Intent.CATEGORY_DEFAULT);
-
-            final PackageManager pm = getPackageManager();
-            boolean matchFound = false;
-            for (String packageName : mPackages) {
-                mAppSettingsIntent.setPackage(packageName);
-                if (pm.resolveActivity(mAppSettingsIntent, 0) != null) {
-                    matchFound = true;
-                    break;
-                }
-            }
-            if (!matchFound) {
-                removePreference(KEY_APP_SETTINGS);
-                mAppSettings = null;
-            }
-
-            if (mPackages.size() > 1) {
-                mAppList = findPreference(KEY_APP_LIST);
-                LoaderManager.getInstance(this).restartLoader(LOADER_APP_PREF, Bundle.EMPTY,
-                        mAppPrefCallbacks);
-            } else {
-                removePreference(KEY_APP_LIST);
-            }
+            use(AppDataUsageListController.class).init(uidList);
         } else {
             final Context context = getActivity();
             final UidDetail uidDetail = uidDetailProvider.getUidDetail(mAppItem.key, true);
@@ -228,20 +184,16 @@
             mPackageName = context.getPackageName();
 
             removePreference(KEY_UNRESTRICTED_DATA);
-            removePreference(KEY_APP_SETTINGS);
             removePreference(KEY_RESTRICT_BACKGROUND);
-            removePreference(KEY_APP_LIST);
         }
 
         addEntityHeader();
     }
 
     @Override
-    public void onResume() {
-        super.onResume();
-        // No animations will occur before:
-        //  - LOADER_APP_USAGE_DATA initially updates the cycle
-        //  - updatePrefs() initially updates the preference visibility
+    public void onStart() {
+        super.onStart();
+        // No animations will occur before bindData() initially updates the cycle.
         // This is mainly for the cycle spinner, because when the page is entered from the
         // AppInfoDashboardFragment, there is no way to know whether the cycle data is available
         // before finished the async loading.
@@ -249,11 +201,14 @@
         // setBackPreferenceListAnimatorIfLoaded().
         mIsLoading = true;
         getListView().setItemAnimator(null);
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
         if (mDataSaverBackend != null) {
             mDataSaverBackend.addListener(this);
         }
-        LoaderManager.getInstance(this).restartLoader(LOADER_APP_USAGE_DATA, null /* args */,
-                mUidDataCallbacks);
         updatePrefs();
     }
 
@@ -279,17 +234,6 @@
     }
 
     @Override
-    public boolean onPreferenceTreeClick(Preference preference) {
-        if (preference == mAppSettings) {
-            // TODO: target towards entire UID instead of just first package
-            getActivity().startActivityAsUser(mAppSettingsIntent, new UserHandle(
-                    UserHandle.getUserId(mAppItem.key)));
-            return true;
-        }
-        return super.onPreferenceTreeClick(preference);
-    }
-
-    @Override
     protected int getPreferenceScreenResId() {
         return R.xml.app_data_usage;
     }
@@ -309,14 +253,17 @@
         return new UidDetailProvider(mContext);
     }
 
-    private void initCycle() {
-        mCycle = findPreference(KEY_CYCLE);
-        mCycleAdapter = new CycleAdapter(mContext, mCycle);
+    @VisibleForTesting
+    void initCycle(List<Integer> uidList) {
+        var controller = use(AppDataUsageCycleController.class);
+        var repository = new AppDataUsageDetailsRepository(mContext, mTemplate, mCycles, uidList);
+        controller.init(repository, data -> {
+            bindData(data);
+            return Unit.INSTANCE;
+        });
         if (mCycles != null) {
-            // If coming from a page like DataUsageList where already has a selected cycle, display
-            // that before loading to reduce flicker.
-            mCycleAdapter.setInitialCycleList(mCycles, mSelectedCycle);
-            mCycle.setHasCycles(true);
+            Log.d(TAG, "setInitialCycles: " + mCycles + " " + mSelectedCycle);
+            controller.setInitialCycles(mCycles, mSelectedCycle);
         }
     }
 
@@ -360,39 +307,27 @@
     }
 
     private void addUid(int uid) {
-        if (Process.isSdkSandboxUid(uid)) {
-            // For a sandbox process, get the associated app UID
-            uid = Process.getAppUidForSdkSandboxUid(uid);
-        }
-        String[] packages = mPackageManager.getPackagesForUid(uid);
+        String[] packages = mPackageManager.getPackagesForUid(getAppUid(uid));
         if (packages != null) {
             Collections.addAll(mPackages, packages);
         }
     }
 
     @VisibleForTesting
-    void bindData(int position) {
-        final long backgroundBytes, foregroundBytes;
-        if (mUsageData == null || position >= mUsageData.size()) {
-            backgroundBytes = foregroundBytes = 0;
-            mCycle.setHasCycles(false);
-        } else {
-            mCycle.setHasCycles(true);
-            final NetworkCycleDataForUid data = mUsageData.get(position);
-            backgroundBytes = data.getBackgroudUsage();
-            foregroundBytes = data.getForegroudUsage();
-        }
-        final long totalBytes = backgroundBytes + foregroundBytes;
-
-        mTotalUsage.setSummary(DataUsageUtils.formatDataUsage(mContext, totalBytes));
-        mForegroundUsage.setSummary(DataUsageUtils.formatDataUsage(mContext, foregroundBytes));
-        mBackgroundUsage.setSummary(DataUsageUtils.formatDataUsage(mContext, backgroundBytes));
+    void bindData(@NonNull NetworkUsageDetailsData data) {
+        mIsLoading = false;
+        mTotalUsage.setSummary(DataUsageUtils.formatDataUsage(mContext, data.getTotalUsage()));
+        mForegroundUsage.setSummary(
+                DataUsageUtils.formatDataUsage(mContext, data.getForegroundUsage()));
+        mBackgroundUsage.setSummary(
+                DataUsageUtils.formatDataUsage(mContext, data.getBackgroundUsage()));
     }
 
     private boolean getAppRestrictBackground() {
         final int uid = mAppItem.key;
         final int uidPolicy = services.mPolicyManager.getUidPolicy(uid);
-        return (uidPolicy & POLICY_REJECT_METERED_BACKGROUND) != 0;
+        return (uidPolicy & POLICY_REJECT_METERED_BACKGROUND) != 0
+                && DynamicDenylistManager.getInstance(mContext).isInManualDenylist(uid);
     }
 
     private boolean getUnrestrictData() {
@@ -436,94 +371,6 @@
         return SettingsEnums.APP_DATA_USAGE;
     }
 
-    private final AdapterView.OnItemSelectedListener mCycleListener =
-            new AdapterView.OnItemSelectedListener() {
-        @Override
-        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
-            bindData(position);
-        }
-
-        @Override
-        public void onNothingSelected(AdapterView<?> parent) {
-            // ignored
-        }
-    };
-
-    @VisibleForTesting
-    final LoaderManager.LoaderCallbacks<List<NetworkCycleDataForUid>> mUidDataCallbacks =
-            new LoaderManager.LoaderCallbacks<>() {
-                @Override
-                @NonNull
-                public Loader<List<NetworkCycleDataForUid>> onCreateLoader(int id, Bundle args) {
-                    final NetworkCycleDataForUidLoader.Builder<?> builder =
-                            NetworkCycleDataForUidLoader.builder(mContext);
-                    builder.setRetrieveDetail(true)
-                            .setNetworkTemplate(mTemplate);
-                    for (int i = 0; i < mAppItem.uids.size(); i++) {
-                        builder.addUid(mAppItem.uids.keyAt(i));
-                    }
-                    if (mCycles != null) {
-                        builder.setCycles(mCycles);
-                    }
-                    return builder.build();
-                }
-
-                @Override
-                public void onLoadFinished(@NonNull Loader<List<NetworkCycleDataForUid>> loader,
-                        List<NetworkCycleDataForUid> data) {
-                    mUsageData = data;
-                    mCycle.setOnItemSelectedListener(mCycleListener);
-                    mCycleAdapter.updateCycleList(data.stream()
-                            .map(cycle -> new Range<>(cycle.getStartTime(), cycle.getEndTime()))
-                            .toList());
-                    if (mSelectedCycle > 0L) {
-                        final int numCycles = data.size();
-                        int position = 0;
-                        for (int i = 0; i < numCycles; i++) {
-                            final NetworkCycleDataForUid cycleData = data.get(i);
-                            if (cycleData.getEndTime() == mSelectedCycle) {
-                                position = i;
-                                break;
-                            }
-                        }
-                        if (position > 0) {
-                            mCycle.setSelection(position);
-                        }
-                        bindData(position);
-                    } else {
-                        bindData(0 /* position */);
-                    }
-                    mIsLoading = false;
-                }
-
-                @Override
-                public void onLoaderReset(@NonNull Loader<List<NetworkCycleDataForUid>> loader) {
-                }
-            };
-
-    private final LoaderManager.LoaderCallbacks<ArraySet<Preference>> mAppPrefCallbacks =
-            new LoaderManager.LoaderCallbacks<>() {
-                @Override
-                @NonNull
-                public Loader<ArraySet<Preference>> onCreateLoader(int i, Bundle bundle) {
-                    return new AppPrefLoader(getPrefContext(), mPackages, getPackageManager());
-                }
-
-                @Override
-                public void onLoadFinished(@NonNull Loader<ArraySet<Preference>> loader,
-                        ArraySet<Preference> preferences) {
-                    if (preferences != null && mAppList != null) {
-                        for (Preference preference : preferences) {
-                            mAppList.addPreference(preference);
-                        }
-                    }
-                }
-
-                @Override
-                public void onLoaderReset(@NonNull Loader<ArraySet<Preference>> loader) {
-                }
-            };
-
     @Override
     public void onDataSaverChanged(boolean isDataSaving) {
 
diff --git a/src/com/android/settings/datausage/AppDataUsageActivity.java b/src/com/android/settings/datausage/AppDataUsageActivity.java
index 48bedce..9a5a2cb 100644
--- a/src/com/android/settings/datausage/AppDataUsageActivity.java
+++ b/src/com/android/settings/datausage/AppDataUsageActivity.java
@@ -17,9 +17,9 @@
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.os.Bundle;
+import android.provider.Settings;
 import android.util.Log;
 
-import com.android.settings.R;
 import com.android.settings.SettingsActivity;
 import com.android.settingslib.AppItem;
 
@@ -61,14 +61,12 @@
         args.putParcelable(AppDataUsage.ARG_APP_ITEM, appItem);
         intent.putExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS, args);
         intent.putExtra(EXTRA_SHOW_FRAGMENT, AppDataUsage.class.getName());
-        intent.putExtra(EXTRA_SHOW_FRAGMENT_TITLE_RESID, R.string.data_usage_app_summary_title);
 
         super.onCreate(savedInstanceState);
     }
 
     @Override
     protected boolean isValidFragment(String fragmentName) {
-        return super.isValidFragment(fragmentName)
-                || AppDataUsage.class.getName().equals(fragmentName);
+        return AppDataUsage.class.getName().equals(fragmentName);
     }
 }
diff --git a/src/com/android/settings/datausage/AppDataUsageAppSettingsController.kt b/src/com/android/settings/datausage/AppDataUsageAppSettingsController.kt
new file mode 100644
index 0000000..53a18c6
--- /dev/null
+++ b/src/com/android/settings/datausage/AppDataUsageAppSettingsController.kt
@@ -0,0 +1,90 @@
+/*
+ * 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.datausage
+
+import android.content.Context
+import android.content.Intent
+import android.os.UserHandle
+import androidx.annotation.OpenForTesting
+import androidx.annotation.VisibleForTesting
+import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.LifecycleOwner
+import androidx.lifecycle.lifecycleScope
+import androidx.lifecycle.repeatOnLifecycle
+import androidx.preference.Preference
+import androidx.preference.PreferenceScreen
+import com.android.settings.core.BasePreferenceController
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+
+@OpenForTesting
+open class AppDataUsageAppSettingsController(context: Context, preferenceKey: String) :
+    BasePreferenceController(context, preferenceKey) {
+
+    private var packageNames: Iterable<String> = emptyList()
+    private var userId: Int = -1
+    private lateinit var preference: Preference
+    private var resolvedIntent: Intent? = null
+
+    private val packageManager = mContext.packageManager
+
+    override fun getAvailabilityStatus() = AVAILABLE
+
+    fun init(packageNames: Iterable<String>, userId: Int) {
+        this.packageNames = packageNames
+        this.userId = userId
+    }
+
+    override fun displayPreference(screen: PreferenceScreen) {
+        super.displayPreference(screen)
+        preference = screen.findPreference(preferenceKey)!!
+    }
+
+    override fun onViewCreated(viewLifecycleOwner: LifecycleOwner) {
+        viewLifecycleOwner.lifecycleScope.launch {
+            viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
+                update()
+            }
+        }
+    }
+
+    private suspend fun update() {
+        resolvedIntent = withContext(Dispatchers.Default) {
+            packageNames.map { packageName ->
+                Intent(SettingsIntent).setPackage(packageName)
+            }.firstOrNull { intent ->
+                packageManager.resolveActivityAsUser(intent, 0, userId) != null
+            }
+        }
+        preference.isVisible = resolvedIntent != null
+    }
+
+    override fun handlePreferenceTreeClick(preference: Preference): Boolean {
+        if (preference.key == mPreferenceKey) {
+            resolvedIntent?.let { mContext.startActivityAsUser(it, UserHandle.of(userId)) }
+            return true
+        }
+        return false
+    }
+
+    private companion object {
+        val SettingsIntent = Intent(Intent.ACTION_MANAGE_NETWORK_USAGE).apply {
+            addCategory(Intent.CATEGORY_DEFAULT)
+        }
+    }
+}
diff --git a/src/com/android/settings/datausage/AppDataUsageCycleController.kt b/src/com/android/settings/datausage/AppDataUsageCycleController.kt
new file mode 100644
index 0000000..a3b7499
--- /dev/null
+++ b/src/com/android/settings/datausage/AppDataUsageCycleController.kt
@@ -0,0 +1,107 @@
+/*
+ * 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.datausage
+
+import android.content.Context
+import android.view.View
+import android.widget.AdapterView
+import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.LifecycleOwner
+import androidx.lifecycle.lifecycleScope
+import androidx.lifecycle.repeatOnLifecycle
+import androidx.preference.PreferenceScreen
+import com.android.settings.core.BasePreferenceController
+import com.android.settings.datausage.lib.IAppDataUsageDetailsRepository
+import com.android.settings.datausage.lib.NetworkUsageDetailsData
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+
+class AppDataUsageCycleController(context: Context, preferenceKey: String) :
+    BasePreferenceController(context, preferenceKey) {
+
+    private lateinit var repository: IAppDataUsageDetailsRepository
+    private var onUsageDataUpdated: (NetworkUsageDetailsData) -> Unit = {}
+    private lateinit var preference: SpinnerPreference
+    private var cycleAdapter: CycleAdapter? = null
+
+    private var usageDetailsDataList: List<NetworkUsageDetailsData> = emptyList()
+
+    override fun getAvailabilityStatus() = AVAILABLE
+
+    override fun displayPreference(screen: PreferenceScreen) {
+        super.displayPreference(screen)
+        preference = screen.findPreference(preferenceKey)!!
+        if (cycleAdapter == null) {
+            cycleAdapter = CycleAdapter(mContext, preference)
+        }
+    }
+
+    fun init(
+        repository: IAppDataUsageDetailsRepository,
+        onUsageDataUpdated: (NetworkUsageDetailsData) -> Unit,
+    ) {
+        this.repository = repository
+        this.onUsageDataUpdated = onUsageDataUpdated
+    }
+
+    /**
+     * Sets the initial cycles.
+     *
+     * If coming from a page like DataUsageList where already has a selected cycle, display that
+     * before loading to reduce flicker.
+     */
+    fun setInitialCycles(initialCycles: List<Long>, initialSelectedEndTime: Long) {
+        if (initialCycles.isNotEmpty()) {
+            cycleAdapter?.setInitialCycleList(initialCycles, initialSelectedEndTime)
+            preference.setHasCycles(true)
+        }
+    }
+
+    override fun onViewCreated(viewLifecycleOwner: LifecycleOwner) {
+        viewLifecycleOwner.lifecycleScope.launch {
+            viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
+                update()
+            }
+        }
+    }
+
+    private suspend fun update() {
+        usageDetailsDataList = withContext(Dispatchers.Default) {
+            repository.queryDetailsForCycles()
+        }
+        if (usageDetailsDataList.isEmpty()) {
+            preference.setHasCycles(false)
+            onUsageDataUpdated(NetworkUsageDetailsData.AllZero)
+            return
+        }
+
+        preference.setHasCycles(true)
+        cycleAdapter?.updateCycleList(usageDetailsDataList.map { it.range })
+        preference.setOnItemSelectedListener(cycleListener)
+    }
+
+    private val cycleListener = object : AdapterView.OnItemSelectedListener {
+        override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
+            usageDetailsDataList.getOrNull(position)?.let(onUsageDataUpdated)
+        }
+
+        override fun onNothingSelected(parent: AdapterView<*>?) {
+            // ignored
+        }
+    }
+}
diff --git a/src/com/android/settings/datausage/AppDataUsageListController.kt b/src/com/android/settings/datausage/AppDataUsageListController.kt
new file mode 100644
index 0000000..746782a
--- /dev/null
+++ b/src/com/android/settings/datausage/AppDataUsageListController.kt
@@ -0,0 +1,76 @@
+/*
+ * 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.datausage
+
+import android.content.Context
+import androidx.annotation.OpenForTesting
+import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.LifecycleOwner
+import androidx.lifecycle.lifecycleScope
+import androidx.lifecycle.repeatOnLifecycle
+import androidx.preference.PreferenceGroup
+import androidx.preference.PreferenceScreen
+import com.android.settings.core.BasePreferenceController
+import com.android.settings.datausage.lib.AppPreferenceRepository
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+
+@OpenForTesting
+open class AppDataUsageListController @JvmOverloads constructor(
+    context: Context,
+    preferenceKey: String,
+    private val repository: AppPreferenceRepository = AppPreferenceRepository(context),
+) : BasePreferenceController(context, preferenceKey) {
+
+    private var uids: List<Int> = emptyList()
+    private lateinit var preference: PreferenceGroup
+
+    fun init(uids: List<Int>) {
+        this.uids = uids
+    }
+
+    override fun getAvailabilityStatus() = AVAILABLE
+
+    override fun displayPreference(screen: PreferenceScreen) {
+        super.displayPreference(screen)
+        preference = screen.findPreference(preferenceKey)!!
+    }
+
+    override fun onViewCreated(viewLifecycleOwner: LifecycleOwner) {
+        viewLifecycleOwner.lifecycleScope.launch {
+            viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
+                updateList()
+            }
+        }
+    }
+
+    private suspend fun updateList() {
+        if (uids.size <= 1) {
+            preference.isVisible = false
+            return
+        }
+        preference.isVisible = true
+        val appPreferences = withContext(Dispatchers.Default) {
+            repository.loadAppPreferences(uids)
+        }
+        preference.removeAll()
+        for (appPreference in appPreferences) {
+            preference.addPreference(appPreference)
+        }
+    }
+}
diff --git a/src/com/android/settings/datausage/AppPrefLoader.java b/src/com/android/settings/datausage/AppPrefLoader.java
deleted file mode 100644
index 1e0a554..0000000
--- a/src/com/android/settings/datausage/AppPrefLoader.java
+++ /dev/null
@@ -1,60 +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.datausage;
-
-import android.content.Context;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
-import android.util.ArraySet;
-
-import androidx.preference.Preference;
-
-import com.android.settingslib.utils.AsyncLoaderCompat;
-
-public class AppPrefLoader extends AsyncLoaderCompat<ArraySet<Preference>> {
-    private ArraySet<String> mPackages;
-    private PackageManager mPackageManager;
-    private Context mPrefContext;
-
-    public AppPrefLoader(Context prefContext, ArraySet<String> pkgs, PackageManager pm) {
-        super(prefContext);
-        mPackages = pkgs;
-        mPackageManager = pm;
-        mPrefContext = prefContext;
-    }
-
-    @Override
-    public ArraySet<Preference> loadInBackground() {
-        ArraySet<Preference> results = new ArraySet<>();
-        for (int i = 1, size = mPackages.size(); i < size; i++) {
-            try {
-                ApplicationInfo info = mPackageManager.getApplicationInfo(mPackages.valueAt(i), 0);
-                Preference preference = new Preference(mPrefContext);
-                preference.setIcon(info.loadIcon(mPackageManager));
-                preference.setTitle(info.loadLabel(mPackageManager));
-                preference.setSelectable(false);
-                results.add(preference);
-            } catch (PackageManager.NameNotFoundException e) {
-            }
-        }
-        return results;
-    }
-
-    @Override
-    protected void onDiscardResult(ArraySet<Preference> result) {
-    }
-}
diff --git a/src/com/android/settings/datausage/BillingCyclePreference.kt b/src/com/android/settings/datausage/BillingCyclePreference.kt
index 619f7e9..a6904bc 100644
--- a/src/com/android/settings/datausage/BillingCyclePreference.kt
+++ b/src/com/android/settings/datausage/BillingCyclePreference.kt
@@ -16,15 +16,21 @@
 
 import android.app.settings.SettingsEnums
 import android.content.Context
-import android.content.Intent
 import android.net.NetworkTemplate
 import android.os.Bundle
 import android.util.AttributeSet
-import androidx.preference.Preference
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.remember
+import androidx.compose.ui.res.stringResource
+import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.settings.R
 import com.android.settings.core.SubSettingLauncher
 import com.android.settings.datausage.lib.BillingCycleRepository
-import com.android.settings.network.MobileDataEnabledListener
+import com.android.settings.network.mobileDataEnabledFlow
+import com.android.settings.spa.preference.ComposePreference
+import com.android.settingslib.spa.widget.preference.Preference
+import com.android.settingslib.spa.widget.preference.PreferenceModel
+import kotlinx.coroutines.flow.map
 
 /**
  * Preference which displays billing cycle of subscription
@@ -36,45 +42,31 @@
     context: Context,
     attrs: AttributeSet?,
     private val repository: BillingCycleRepository = BillingCycleRepository(context),
-) : Preference(context, attrs), TemplatePreference {
-    private lateinit var template: NetworkTemplate
-    private var subId = 0
-
-    private val listener = MobileDataEnabledListener(context) {
-        updateEnabled()
-    }
+) : ComposePreference(context, attrs), TemplatePreference {
 
     override fun setTemplate(template: NetworkTemplate, subId: Int) {
-        this.template = template
-        this.subId = subId
-        summary = null
-        updateEnabled()
-        intent = intent
+        setContent {
+            val isModifiable by remember {
+                context.mobileDataEnabledFlow(subId).map { repository.isModifiable(subId) }
+            }.collectAsStateWithLifecycle(initialValue = false)
+
+            Preference(object : PreferenceModel {
+                override val title = stringResource(R.string.billing_cycle)
+                override val enabled = { isModifiable }
+                override val onClick = { launchBillingCycleSettings(template) }
+            })
+        }
     }
 
-    override fun onAttached() {
-        super.onAttached()
-        listener.start(subId)
-    }
-
-    override fun onDetached() {
-        listener.stop()
-        super.onDetached()
-    }
-
-    private fun updateEnabled() {
-        isEnabled = repository.isModifiable(subId)
-    }
-
-    override fun getIntent(): Intent {
+    private fun launchBillingCycleSettings(template: NetworkTemplate) {
         val args = Bundle().apply {
             putParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE, template)
         }
-        return SubSettingLauncher(context).apply {
+        SubSettingLauncher(context).apply {
             setDestination(BillingCycleSettings::class.java.name)
             setArguments(args)
             setTitleRes(R.string.billing_cycle)
             setSourceMetricsCategory(SettingsEnums.PAGE_UNKNOWN)
-        }.toIntent()
+        }.launch()
     }
 }
diff --git a/src/com/android/settings/datausage/BillingCycleSettings.java b/src/com/android/settings/datausage/BillingCycleSettings.java
index c3ddb2e..9a7411a 100644
--- a/src/com/android/settings/datausage/BillingCycleSettings.java
+++ b/src/com/android/settings/datausage/BillingCycleSettings.java
@@ -40,10 +40,11 @@
 import androidx.appcompat.app.AlertDialog;
 import androidx.fragment.app.Fragment;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settings.datausage.lib.NetworkTemplates;
 import com.android.settings.network.SubscriptionUtil;
 import com.android.settings.network.telephony.MobileNetworkUtils;
 import com.android.settings.search.BaseSearchIndexProvider;
@@ -82,8 +83,8 @@
     NetworkTemplate mNetworkTemplate;
     private Preference mBillingCycle;
     private Preference mDataWarning;
-    private SwitchPreference mEnableDataWarning;
-    private SwitchPreference mEnableDataLimit;
+    private TwoStatePreference mEnableDataWarning;
+    private TwoStatePreference mEnableDataLimit;
     private Preference mDataLimit;
     private DataUsageController mDataUsageController;
 
@@ -92,8 +93,8 @@
             Preference billingCycle,
             Preference dataLimit,
             Preference dataWarning,
-            SwitchPreference enableLimit,
-            SwitchPreference enableWarning) {
+            TwoStatePreference enableLimit,
+            TwoStatePreference enableWarning) {
         services.mPolicyEditor = policyEditor;
         mBillingCycle = billingCycle;
         mDataLimit = dataLimit;
@@ -128,15 +129,14 @@
         }
 
         if (mNetworkTemplate == null) {
-            mNetworkTemplate = DataUsageUtils.getDefaultTemplate(context,
-                DataUsageUtils.getDefaultSubscriptionId(context));
+            mNetworkTemplate = NetworkTemplates.INSTANCE.getDefaultTemplate(context);
         }
 
         mBillingCycle = findPreference(KEY_BILLING_CYCLE);
-        mEnableDataWarning = (SwitchPreference) findPreference(KEY_SET_DATA_WARNING);
+        mEnableDataWarning = (TwoStatePreference) findPreference(KEY_SET_DATA_WARNING);
         mEnableDataWarning.setOnPreferenceChangeListener(this);
         mDataWarning = findPreference(KEY_DATA_WARNING);
-        mEnableDataLimit = (SwitchPreference) findPreference(KEY_SET_DATA_LIMIT);
+        mEnableDataLimit = (TwoStatePreference) findPreference(KEY_SET_DATA_LIMIT);
         mEnableDataLimit.setOnPreferenceChangeListener(this);
         mDataLimit = findPreference(KEY_DATA_LIMIT);
     }
diff --git a/src/com/android/settings/datausage/CellDataPreference.java b/src/com/android/settings/datausage/CellDataPreference.java
index 9374217..3bd3ecc 100644
--- a/src/com/android/settings/datausage/CellDataPreference.java
+++ b/src/com/android/settings/datausage/CellDataPreference.java
@@ -26,11 +26,10 @@
 import android.util.AttributeSet;
 import android.util.Log;
 import android.view.View;
-import android.widget.Checkable;
+import android.widget.CompoundButton;
 
 import androidx.annotation.VisibleForTesting;
 import androidx.appcompat.app.AlertDialog.Builder;
-import androidx.core.content.res.TypedArrayUtils;
 import androidx.preference.PreferenceViewHolder;
 
 import com.android.settings.R;
@@ -51,12 +50,10 @@
     public int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
     public boolean mChecked;
     public boolean mMultiSimDialog;
-    private MobileDataEnabledListener mDataStateListener;
+    private final MobileDataEnabledListener mDataStateListener;
 
     public CellDataPreference(Context context, AttributeSet attrs) {
-        super(context, attrs, TypedArrayUtils.getAttr(context,
-                androidx.preference.R.attr.switchPreferenceStyle,
-                android.R.attr.switchPreferenceStyle));
+        super(context, attrs, androidx.preference.R.attr.switchPreferenceCompatStyle);
         mDataStateListener = new MobileDataEnabledListener(context, this);
     }
 
@@ -170,9 +167,10 @@
     @Override
     public void onBindViewHolder(PreferenceViewHolder holder) {
         super.onBindViewHolder(holder);
-        final View switchView = holder.findViewById(android.R.id.switch_widget);
+        final CompoundButton switchView =
+                (CompoundButton) holder.findViewById(androidx.preference.R.id.switchWidget);
         switchView.setClickable(false);
-        ((Checkable) switchView).setChecked(mChecked);
+        switchView.setChecked(mChecked);
     }
 
     @Override
diff --git a/src/com/android/settings/datausage/ChartDataUsagePreference.java b/src/com/android/settings/datausage/ChartDataUsagePreference.java
index e5a7307..e8e2109 100644
--- a/src/com/android/settings/datausage/ChartDataUsagePreference.java
+++ b/src/com/android/settings/datausage/ChartDataUsagePreference.java
@@ -112,9 +112,6 @@
             // increment by current bucket total
             totalData += data.getUsage();
 
-            if (points.size() == 1) {
-                points.put(toInt(startTime - mStart) - 1, -1);
-            }
             points.put(toInt(startTime - mStart + 1), (int) (totalData / RESOLUTION));
             points.put(toInt(endTime - mStart), (int) (totalData / RESOLUTION));
         }
diff --git a/src/com/android/settings/datausage/ChartDataUsagePreferenceController.kt b/src/com/android/settings/datausage/ChartDataUsagePreferenceController.kt
index 0479be4..780978f 100644
--- a/src/com/android/settings/datausage/ChartDataUsagePreferenceController.kt
+++ b/src/com/android/settings/datausage/ChartDataUsagePreferenceController.kt
@@ -26,6 +26,7 @@
 import androidx.preference.PreferenceScreen
 import com.android.settings.core.BasePreferenceController
 import com.android.settings.datausage.lib.INetworkCycleDataRepository
+import com.android.settings.datausage.lib.NetworkCycleChartData
 import com.android.settings.datausage.lib.NetworkCycleDataRepository
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.launch
@@ -38,6 +39,8 @@
     private lateinit var repository: INetworkCycleDataRepository
     private lateinit var preference: ChartDataUsagePreference
     private lateinit var lifecycleScope: LifecycleCoroutineScope
+    private var lastStartTime: Long? = null
+    private var lastEndTime: Long? = null
 
     open fun init(template: NetworkTemplate) {
         this.repository = NetworkCycleDataRepository(mContext, template)
@@ -71,10 +74,15 @@
     }
 
     fun update(startTime: Long, endTime: Long) {
+        if (lastStartTime == startTime && lastEndTime == endTime) return
+        lastStartTime = startTime
+        lastEndTime = endTime
+
         preference.setTime(startTime, endTime)
+        preference.setNetworkCycleData(NetworkCycleChartData.AllZero)
         lifecycleScope.launch {
             val chartData = withContext(Dispatchers.Default) {
-                repository.querySummary(startTime, endTime)
+                repository.queryChartData(startTime, endTime)
             }
             preference.setNetworkCycleData(chartData)
         }
diff --git a/src/com/android/settings/datausage/DataSaverBackend.java b/src/com/android/settings/datausage/DataSaverBackend.java
index b4b6b8c..6e99453 100644
--- a/src/com/android/settings/datausage/DataSaverBackend.java
+++ b/src/com/android/settings/datausage/DataSaverBackend.java
@@ -23,6 +23,7 @@
 import android.net.NetworkPolicyManager;
 import android.util.SparseIntArray;
 
+import com.android.settings.fuelgauge.datasaver.DynamicDenylistManager;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 import com.android.settingslib.utils.ThreadUtils;
@@ -39,6 +40,7 @@
     private final MetricsFeatureProvider mMetricsFeatureProvider;
 
     private final NetworkPolicyManager mPolicyManager;
+    private final DynamicDenylistManager mDynamicDenylistManager;
     private final ArrayList<Listener> mListeners = new ArrayList<>();
     private SparseIntArray mUidPolicies = new SparseIntArray();
     private boolean mAllowlistInitialized;
@@ -50,6 +52,7 @@
         mContext = context.getApplicationContext();
         mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         mPolicyManager = NetworkPolicyManager.from(mContext);
+        mDynamicDenylistManager = DynamicDenylistManager.getInstance(mContext);
     }
 
     public void addListener(Listener listener) {
@@ -83,7 +86,7 @@
 
     public void setIsAllowlisted(int uid, String packageName, boolean allowlisted) {
         final int policy = allowlisted ? POLICY_ALLOW_METERED_BACKGROUND : POLICY_NONE;
-        mPolicyManager.setUidPolicy(uid, policy);
+        mDynamicDenylistManager.setUidPolicyLocked(uid, policy);
         mUidPolicies.put(uid, policy);
         if (allowlisted) {
             mMetricsFeatureProvider.action(
@@ -113,7 +116,7 @@
 
     public void setIsDenylisted(int uid, String packageName, boolean denylisted) {
         final int policy = denylisted ? POLICY_REJECT_METERED_BACKGROUND : POLICY_NONE;
-        mPolicyManager.setUidPolicy(uid, policy);
+        mDynamicDenylistManager.setUidPolicyLocked(uid, policy);
         mUidPolicies.put(uid, policy);
         if (denylisted) {
             mMetricsFeatureProvider.action(
@@ -123,7 +126,8 @@
 
     public boolean isDenylisted(int uid) {
         loadDenylist();
-        return mUidPolicies.get(uid, POLICY_NONE) == POLICY_REJECT_METERED_BACKGROUND;
+        return mUidPolicies.get(uid, POLICY_NONE) == POLICY_REJECT_METERED_BACKGROUND
+                && mDynamicDenylistManager.isInManualDenylist(uid);
     }
 
     private void loadDenylist() {
diff --git a/src/com/android/settings/datausage/DataSaverSummary.kt b/src/com/android/settings/datausage/DataSaverSummary.kt
index 0828d36..cdd46f2 100644
--- a/src/com/android/settings/datausage/DataSaverSummary.kt
+++ b/src/com/android/settings/datausage/DataSaverSummary.kt
@@ -19,7 +19,6 @@
 import android.content.Context
 import android.os.Bundle
 import android.telephony.SubscriptionManager
-import android.widget.Switch
 import com.android.settings.R
 import com.android.settings.SettingsActivity
 import com.android.settings.dashboard.DashboardFragment
@@ -51,9 +50,7 @@
         switchBar = (activity as SettingsActivity).switchBar.apply {
             setTitle(getString(R.string.data_saver_switch_title))
             show()
-            addOnSwitchChangeListener { _: Switch, isChecked: Boolean ->
-                onSwitchChanged(isChecked)
-            }
+            addOnSwitchChangeListener { _, isChecked -> onSwitchChanged(isChecked) }
         }
     }
 
@@ -105,4 +102,4 @@
                         SubscriptionManager.INVALID_SUBSCRIPTION_ID)
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/com/android/settings/datausage/DataUsageList.kt b/src/com/android/settings/datausage/DataUsageList.kt
index 9ac7161..30e8db3 100644
--- a/src/com/android/settings/datausage/DataUsageList.kt
+++ b/src/com/android/settings/datausage/DataUsageList.kt
@@ -31,9 +31,10 @@
 import com.android.settings.R
 import com.android.settings.datausage.lib.BillingCycleRepository
 import com.android.settings.datausage.lib.NetworkUsageData
-import com.android.settings.network.MobileDataEnabledListener
 import com.android.settings.network.MobileNetworkRepository
+import com.android.settings.network.mobileDataEnabledFlow
 import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity
+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
@@ -43,10 +44,7 @@
  * to inspect based on usage cycle and control through [NetworkPolicy].
  */
 @OpenForTesting
-open class DataUsageList : DataUsageBaseFragment(), MobileDataEnabledListener.Client {
-    @VisibleForTesting
-    lateinit var dataStateListener: MobileDataEnabledListener
-
+open class DataUsageList : DataUsageBaseFragment() {
     @JvmField
     @VisibleForTesting
     var template: NetworkTemplate? = null
@@ -55,9 +53,6 @@
     @VisibleForTesting
     var subId = SubscriptionManager.INVALID_SUBSCRIPTION_ID
 
-    // Spinner will keep the selected cycle even after paused, this only keeps the displayed cycle,
-    // which need be cleared when resumed.
-    private var lastDisplayedUsageData: NetworkUsageData? = null
     private lateinit var usageAmount: Preference
     private var subscriptionInfoEntity: SubscriptionInfoEntity? = null
     private lateinit var dataUsageListAppsController: DataUsageListAppsController
@@ -77,7 +72,7 @@
             finish()
             return
         }
-        billingCycleRepository = createBillingCycleRepository();
+        billingCycleRepository = createBillingCycleRepository()
         if (!billingCycleRepository.isBandwidthControlEnabled()) {
             Log.w(TAG, "No bandwidth control; leaving")
             finish()
@@ -92,7 +87,6 @@
             return
         }
         updateSubscriptionInfoEntity()
-        dataStateListener = MobileDataEnabledListener(activity, this)
         dataUsageListAppsController = use(DataUsageListAppsController::class.java).apply {
             init(template)
         }
@@ -106,6 +100,9 @@
     override fun onViewCreated(v: View, savedInstanceState: Bundle?) {
         super.onViewCreated(v, savedInstanceState)
 
+        requireContext().mobileDataEnabledFlow(subId)
+            .collectLatestWithLifecycle(viewLifecycleOwner) { updatePolicy() }
+
         val template = template ?: return
         dataUsageListHeaderController = DataUsageListHeaderController(
             setPinnedHeaderView(R.layout.apps_filter_spinner),
@@ -117,18 +114,6 @@
         )
     }
 
-    override fun onResume() {
-        super.onResume()
-        dataStateListener.start(subId)
-        lastDisplayedUsageData = null
-        updatePolicy()
-    }
-
-    override fun onPause() {
-        super.onPause()
-        dataStateListener.stop()
-    }
-
     override fun getPreferenceScreenResId() = R.xml.data_usage_list
 
     override fun getLogTag() = TAG
@@ -158,13 +143,6 @@
         }
     }
 
-    /**
-     * Implementation of `MobileDataEnabledListener.Client`
-     */
-    override fun onMobileDataEnabledChange() {
-        updatePolicy()
-    }
-
     /** Update chart sweeps and cycle list to reflect [NetworkPolicy] for current [template]. */
     @VisibleForTesting
     fun updatePolicy() {
@@ -188,15 +166,9 @@
      * Updates the chart and detail data when initial loaded or selected cycle changed.
      */
     private fun updateSelectedCycle(usageData: NetworkUsageData) {
-        if (usageData == lastDisplayedUsageData) {
-            // Avoid duplicate update to avoid page flash.
-            return
-        }
-        lastDisplayedUsageData = usageData
         Log.d(TAG, "showing cycle $usageData")
 
-        val totalPhrase = DataUsageUtils.formatDataUsage(requireContext(), usageData.usage)
-        usageAmount.title = getString(R.string.data_used_template, totalPhrase)
+        usageAmount.title = usageData.getDataUsedString(requireContext())
 
         updateChart(usageData)
         updateApps(usageData)
diff --git a/src/com/android/settings/datausage/DataUsageListHeaderController.kt b/src/com/android/settings/datausage/DataUsageListHeaderController.kt
index 58fc3b5..ad76ede 100644
--- a/src/com/android/settings/datausage/DataUsageListHeaderController.kt
+++ b/src/com/android/settings/datausage/DataUsageListHeaderController.kt
@@ -45,7 +45,7 @@
     sourceMetricsCategory: Int,
     viewLifecycleOwner: LifecycleOwner,
     private val onCyclesLoad: (usageDataList: List<NetworkUsageData>) -> Unit,
-    private val onItemSelected: (usageData: NetworkUsageData) -> Unit,
+    private val updateSelectedCycle: (usageData: NetworkUsageData) -> Unit,
     private val repository: INetworkCycleDataRepository =
         NetworkCycleDataRepository(header.context, template),
 ) {
@@ -53,6 +53,17 @@
 
     private val configureButton: View = header.requireViewById(R.id.filter_settings)
     private val cycleSpinner: Spinner = header.requireViewById(R.id.filter_spinner)
+
+    private val cycleListener = object : AdapterView.OnItemSelectedListener {
+        override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
+            setSelectedCycle(position)
+        }
+
+        override fun onNothingSelected(parent: AdapterView<*>?) {
+            // ignored
+        }
+    }
+
     private val cycleAdapter = CycleAdapter(context, object : SpinnerInterface {
         override fun setAdapter(cycleAdapter: CycleAdapter) {
             cycleSpinner.adapter = cycleAdapter
@@ -62,21 +73,15 @@
 
         override fun setSelection(position: Int) {
             cycleSpinner.setSelection(position)
-        }
-    })
-    private var cycles: List<NetworkUsageData> = emptyList()
-
-    private val cycleListener = object : AdapterView.OnItemSelectedListener {
-        override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
-            if (0 <= position && position < cycleAdapter.count) {
-                cycles.getOrNull(position)?.let(onItemSelected)
+            if (cycleSpinner.onItemSelectedListener == null) {
+                cycleSpinner.onItemSelectedListener = cycleListener
+            } else {
+                setSelectedCycle(position)
             }
         }
+    })
 
-        override fun onNothingSelected(parent: AdapterView<*>?) {
-            // ignored
-        }
-    }
+    private var cycles: List<NetworkUsageData> = emptyList()
 
     init {
         configureButton.setOnClickListener {
@@ -114,11 +119,12 @@
     }
 
     private fun updateCycleData() {
-        cycleSpinner.onItemSelectedListener = cycleListener
-        // calculate policy cycles based on available data
-        // generate cycle list based on policy and available history
         cycleAdapter.updateCycleList(cycles.map { Range(it.startTime, it.endTime) })
         cycleSpinner.visibility = View.VISIBLE
         onCyclesLoad(cycles)
     }
+
+    private fun setSelectedCycle(position: Int) {
+        cycles.getOrNull(position)?.let(updateSelectedCycle)
+    }
 }
diff --git a/src/com/android/settings/datausage/DataUsageSummary.java b/src/com/android/settings/datausage/DataUsageSummary.java
index 4f876ab..5681c92 100644
--- a/src/com/android/settings/datausage/DataUsageSummary.java
+++ b/src/com/android/settings/datausage/DataUsageSummary.java
@@ -36,11 +36,11 @@
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
+import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.datausage.lib.DataUsageLib;
 import com.android.settings.network.ProxySubscriptionManager;
 import com.android.settings.network.SubscriptionUtil;
 import com.android.settings.network.telephony.MobileNetworkUtils;
-import com.android.settingslib.NetworkPolicyEditor;
 import com.android.settingslib.core.AbstractPreferenceController;
 
 import java.util.ArrayList;
@@ -49,7 +49,7 @@
 /**
  * Settings preference fragment that displays data usage summary.
  */
-public class DataUsageSummary extends DataUsageBaseFragment implements DataUsageEditController {
+public class DataUsageSummary extends DashboardFragment {
 
     private static final String TAG = "DataUsageSummary";
 
@@ -57,14 +57,9 @@
 
     public static final String KEY_RESTRICT_BACKGROUND = "restrict_background";
 
-    private static final String KEY_STATUS_HEADER = "status_header";
-
     // Mobile data keys
     public static final String KEY_MOBILE_USAGE_TITLE = "mobile_category";
 
-    private DataUsageSummaryPreference mSummaryPreference;
-    private DataUsageSummaryPreferenceController mSummaryController;
-    private NetworkTemplate mDefaultTemplate;
     private ProxySubscriptionManager mProxySubscriptionMgr;
 
     @Override
@@ -100,8 +95,6 @@
         if (defaultSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
             hasMobileData = false;
         }
-        mDefaultTemplate = DataUsageUtils.getDefaultTemplate(context, defaultSubId);
-        mSummaryPreference = findPreference(KEY_STATUS_HEADER);
 
         if (!hasMobileData || !UserManager.get(context).isAdminUser()) {
             removePreference(KEY_RESTRICT_BACKGROUND);
@@ -127,15 +120,6 @@
     }
 
     @Override
-    public boolean onPreferenceTreeClick(Preference preference) {
-        if (preference == findPreference(KEY_STATUS_HEADER)) {
-            BillingCycleSettings.BytesEditorFragment.show(this, false);
-            return false;
-        }
-        return super.onPreferenceTreeClick(preference);
-    }
-
-    @Override
     protected int getPreferenceScreenResId() {
         return R.xml.data_usage;
     }
@@ -153,9 +137,8 @@
             MobileNetworkUtils.isMobileNetworkUserRestricted(context)) {
             return controllers;
         }
-        mSummaryController =
-                new DataUsageSummaryPreferenceController(activity,
-                        DataUsageUtils.getDefaultSubscriptionId(activity));
+        final var mSummaryController = new DataUsageSummaryPreferenceController(activity,
+                DataUsageUtils.getDefaultSubscriptionId(activity));
         controllers.add(mSummaryController);
         return controllers;
     }
@@ -269,22 +252,6 @@
         return SettingsEnums.DATA_USAGE_SUMMARY;
     }
 
-    @Override
-    public NetworkPolicyEditor getNetworkPolicyEditor() {
-        return services.mPolicyEditor;
-    }
-
-    @Override
-    public NetworkTemplate getNetworkTemplate() {
-        return mDefaultTemplate;
-    }
-
-    @Override
-    public void updateDataUsage() {
-        updateState();
-        mSummaryController.updateState(mSummaryPreference);
-    }
-
     private static boolean isGuestUser(Context context) {
         if (context == null) return false;
         final UserManager userManager = context.getSystemService(UserManager.class);
diff --git a/src/com/android/settings/datausage/DataUsageUtils.java b/src/com/android/settings/datausage/DataUsageUtils.java
index 0c6f4c8..2bbf3e2 100644
--- a/src/com/android/settings/datausage/DataUsageUtils.java
+++ b/src/com/android/settings/datausage/DataUsageUtils.java
@@ -17,7 +17,6 @@
 import static android.content.pm.PackageManager.FEATURE_ETHERNET;
 import static android.content.pm.PackageManager.FEATURE_USB_HOST;
 import static android.content.pm.PackageManager.FEATURE_WIFI;
-import static android.telephony.TelephonyManager.SIM_STATE_READY;
 
 import android.app.usage.NetworkStats.Bucket;
 import android.app.usage.NetworkStatsManager;
@@ -49,7 +48,6 @@
 public final class DataUsageUtils {
     static final boolean TEST_RADIOS = false;
     static final String TEST_RADIOS_PROP = "test.radios";
-    private static final boolean LOGD = false;
     private static final String ETHERNET = "ethernet";
     private static final String TAG = "DataUsageUtils";
 
@@ -107,44 +105,6 @@
     }
 
     /**
-     * Test if device has a mobile data radio with SIM in ready state.
-     */
-    public static boolean hasReadyMobileRadio(Context context) {
-        if (DataUsageUtils.TEST_RADIOS) {
-            return SystemProperties.get(DataUsageUtils.TEST_RADIOS_PROP).contains("mobile");
-        }
-        final List<SubscriptionInfo> subInfoList =
-                ProxySubscriptionManager.getInstance(context)
-                .getActiveSubscriptionsInfo();
-        // No activated Subscriptions
-        if (subInfoList == null) {
-            if (LOGD) {
-                Log.d(TAG, "hasReadyMobileRadio: subInfoList=null");
-            }
-            return false;
-        }
-        final TelephonyManager tele = context.getSystemService(TelephonyManager.class);
-        // require both supported network and ready SIM
-        boolean isReady = true;
-        for (SubscriptionInfo subInfo : subInfoList) {
-            isReady = isReady & tele.getSimState(subInfo.getSimSlotIndex()) == SIM_STATE_READY;
-            if (LOGD) {
-                Log.d(TAG, "hasReadyMobileRadio: subInfo=" + subInfo);
-            }
-        }
-
-        final boolean isDataCapable = tele.isDataCapable();
-        final boolean retVal = isDataCapable && isReady;
-        if (LOGD) {
-            Log.d(TAG, "hasReadyMobileRadio:"
-                    + " telephonManager.isDataCapable()="
-                    + isDataCapable
-                    + " isReady=" + isReady);
-        }
-        return retVal;
-    }
-
-    /**
      * Whether device has a Wi-Fi data radio.
      */
     public static boolean hasWifiRadio(Context context) {
diff --git a/src/com/android/settings/datausage/SpinnerPreference.java b/src/com/android/settings/datausage/SpinnerPreference.java
index a705079..c81ac55 100644
--- a/src/com/android/settings/datausage/SpinnerPreference.java
+++ b/src/com/android/settings/datausage/SpinnerPreference.java
@@ -94,7 +94,6 @@
                 @Override
                 public void onItemSelected(
                         AdapterView<?> parent, View view, int position, long id) {
-                    if (mPosition == position) return;
                     mPosition = position;
                     mCurrentObject = mAdapter.getItem(position);
                     if (mListener != null) {
diff --git a/src/com/android/settings/datausage/lib/AppDataUsageDetailsRepository.kt b/src/com/android/settings/datausage/lib/AppDataUsageDetailsRepository.kt
new file mode 100644
index 0000000..cd3372f
--- /dev/null
+++ b/src/com/android/settings/datausage/lib/AppDataUsageDetailsRepository.kt
@@ -0,0 +1,62 @@
+/*
+ * 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.datausage.lib
+
+import android.app.usage.NetworkStats
+import android.content.Context
+import android.net.NetworkTemplate
+import android.util.Range
+import com.android.settings.datausage.lib.AppDataUsageRepository.Companion.withSdkSandboxUids
+import com.android.settingslib.spa.framework.util.asyncMap
+
+interface IAppDataUsageDetailsRepository {
+    suspend fun queryDetailsForCycles(): List<NetworkUsageDetailsData>
+}
+
+class AppDataUsageDetailsRepository @JvmOverloads constructor(
+    context: Context,
+    private val template: NetworkTemplate,
+    private val cycles: List<Long>?,
+    uids: List<Int>,
+    private val networkCycleDataRepository: INetworkCycleDataRepository =
+        NetworkCycleDataRepository(context, template),
+    private val networkStatsRepository: NetworkStatsRepository =
+        NetworkStatsRepository(context, template),
+) : IAppDataUsageDetailsRepository {
+    private val withSdkSandboxUids = withSdkSandboxUids(uids)
+
+    override suspend fun queryDetailsForCycles(): List<NetworkUsageDetailsData> =
+        getCycles().asyncMap { queryDetails(it) }.filter { it.totalUsage > 0 }
+
+    private fun getCycles(): List<Range<Long>> =
+        cycles?.zipWithNext { endTime, startTime -> Range(startTime, endTime) }
+            ?: networkCycleDataRepository.getCycles()
+
+    private fun queryDetails(range: Range<Long>): NetworkUsageDetailsData {
+        val buckets = networkStatsRepository.queryBuckets(range.lower, range.upper)
+            .filter { it.uid in withSdkSandboxUids }
+        val totalUsage = buckets.sumOf { it.bytes }
+        val foregroundUsage =
+            buckets.filter { it.state == NetworkStats.Bucket.STATE_FOREGROUND }.sumOf { it.bytes }
+        return NetworkUsageDetailsData(
+            range = range,
+            totalUsage = totalUsage,
+            foregroundUsage = foregroundUsage,
+            backgroundUsage = totalUsage - foregroundUsage,
+        )
+    }
+}
diff --git a/src/com/android/settings/datausage/lib/AppDataUsageRepository.kt b/src/com/android/settings/datausage/lib/AppDataUsageRepository.kt
index 074a555..1844a7a 100644
--- a/src/com/android/settings/datausage/lib/AppDataUsageRepository.kt
+++ b/src/com/android/settings/datausage/lib/AppDataUsageRepository.kt
@@ -17,16 +17,17 @@
 package com.android.settings.datausage.lib
 
 import android.app.usage.NetworkStats
-import android.app.usage.NetworkStatsManager
 import android.content.Context
 import android.net.NetworkPolicyManager
 import android.net.NetworkTemplate
 import android.os.Process
 import android.os.UserHandle
-import android.util.Log
 import android.util.SparseArray
+import android.util.SparseBooleanArray
 import androidx.annotation.VisibleForTesting
+import androidx.core.util.keyIterator
 import com.android.settings.R
+import com.android.settings.datausage.lib.NetworkStatsRepository.Companion.Bucket
 import com.android.settingslib.AppItem
 import com.android.settingslib.net.UidDetailProvider
 import com.android.settingslib.spaprivileged.framework.common.userManager
@@ -34,14 +35,14 @@
 class AppDataUsageRepository(
     private val context: Context,
     private val currentUserId: Int,
-    private val template: NetworkTemplate,
+    template: NetworkTemplate,
     private val getPackageName: (AppItem) -> String?,
 ) {
-    private val networkStatsManager = context.getSystemService(NetworkStatsManager::class.java)!!
+    private val networkStatsRepository = NetworkStatsRepository(context, template)
 
     fun getAppPercent(carrierId: Int?, startTime: Long, endTime: Long): List<Pair<AppItem, Int>> {
-        val networkStats = querySummary(startTime, endTime) ?: return emptyList()
-        return getAppPercent(carrierId, convertToBuckets(networkStats))
+        val buckets = networkStatsRepository.queryBuckets(startTime, endTime)
+        return getAppPercent(carrierId, buckets)
     }
 
     @VisibleForTesting
@@ -76,13 +77,6 @@
         }
     }
 
-    private fun querySummary(startTime: Long, endTime: Long): NetworkStats? = try {
-        networkStatsManager.querySummary(template, startTime, endTime)
-    } catch (e: RuntimeException) {
-        Log.e(TAG, "Exception querying network detail.", e)
-        null
-    }
-
     private fun filterItems(carrierId: Int?, items: List<AppItem>): List<AppItem> {
         // When there is no specified SubscriptionInfo, Wi-Fi data usage will be displayed.
         // In this case, the carrier service package also needs to be hidden.
@@ -104,7 +98,7 @@
 
     private fun bindStats(
         buckets: List<Bucket>,
-        profiles: MutableList<UserHandle>,
+        profiles: List<UserHandle>,
         knownItems: SparseArray<AppItem>,
         items: ArrayList<AppItem>,
     ) {
@@ -126,12 +120,7 @@
                             items = items,
                         )
                     }
-                    // Map SDK sandbox back to its corresponding app
-                    collapseKey = if (Process.isSdkSandboxUid(uid)) {
-                        Process.getAppUidForSdkSandboxUid(uid)
-                    } else {
-                        uid
-                    }
+                    collapseKey = getAppUid(uid)
                     category = AppItem.CATEGORY_APP
                 } else {
                     // If it is a removed user add it to the removed users' key
@@ -192,23 +181,33 @@
     }
 
     companion object {
-        private const val TAG = "AppDataUsageRepository"
+        @JvmStatic
+        fun getAppUidList(uids: SparseBooleanArray) =
+            uids.keyIterator().asSequence().map { getAppUid(it) }.distinct().toList()
 
-        @VisibleForTesting
-        data class Bucket(
-            val uid: Int,
-            val bytes: Long,
-        )
+        @JvmStatic
+        fun getAppUid(uid: Int): Int {
+            if (Process.isSdkSandboxUid(uid)) {
+                // For a sandbox process, get the associated app UID
+                return Process.getAppUidForSdkSandboxUid(uid)
+            }
+            return uid
+        }
 
-        private fun convertToBuckets(stats: NetworkStats): List<Bucket> {
-            val buckets = mutableListOf<Bucket>()
-            stats.use {
-                val bucket = NetworkStats.Bucket()
-                while (it.getNextBucket(bucket)) {
-                    buckets += Bucket(uid = bucket.uid, bytes = bucket.rxBytes + bucket.txBytes)
+        /**
+         * Gets the apps' uids, also add the apps' SDK sandboxes' uids.
+         *
+         * In case we've been asked data usage for an app, include data usage of the corresponding
+         * SDK sandbox.
+         */
+        fun withSdkSandboxUids(uids: List<Int>): List<Int> {
+            val set = uids.toMutableSet()
+            for (uid in uids) {
+                if (Process.isApplicationUid(uid)) {
+                    set += Process.toSdkSandboxUid(uid)
                 }
             }
-            return buckets
+            return set.toList()
         }
     }
 }
diff --git a/src/com/android/settings/datausage/lib/AppDataUsageSummaryRepository.kt b/src/com/android/settings/datausage/lib/AppDataUsageSummaryRepository.kt
new file mode 100644
index 0000000..b723e27
--- /dev/null
+++ b/src/com/android/settings/datausage/lib/AppDataUsageSummaryRepository.kt
@@ -0,0 +1,40 @@
+/*
+ * 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.datausage.lib
+
+import android.content.Context
+import android.net.NetworkTemplate
+import com.android.settings.datausage.lib.AppDataUsageRepository.Companion.withSdkSandboxUids
+import com.android.settings.datausage.lib.NetworkStatsRepository.Companion.AllTimeRange
+import com.android.settingslib.spa.framework.util.asyncMap
+
+interface IAppDataUsageSummaryRepository {
+    suspend fun querySummary(uid: Int): NetworkUsageData?
+}
+
+class AppDataUsageSummaryRepository(
+    context: Context,
+    template: NetworkTemplate,
+    private val networkStatsRepository: NetworkStatsRepository =
+        NetworkStatsRepository(context, template),
+) : IAppDataUsageSummaryRepository {
+
+    override suspend fun querySummary(uid: Int): NetworkUsageData? =
+        withSdkSandboxUids(listOf(uid)).asyncMap {
+            networkStatsRepository.queryAggregateForUid(range = AllTimeRange, uid = it)
+        }.filterNotNull().aggregate()
+}
diff --git a/src/com/android/settings/datausage/lib/AppPreferenceRepository.kt b/src/com/android/settings/datausage/lib/AppPreferenceRepository.kt
new file mode 100644
index 0000000..a71bc8f
--- /dev/null
+++ b/src/com/android/settings/datausage/lib/AppPreferenceRepository.kt
@@ -0,0 +1,48 @@
+/*
+ * 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.datausage.lib
+
+import android.content.Context
+import android.content.pm.PackageManager
+import android.os.UserHandle
+import androidx.preference.Preference
+import com.android.settingslib.Utils
+
+class AppPreferenceRepository(private val context: Context) {
+    private val packageManager = context.packageManager
+
+    fun loadAppPreferences(uids: List<Int>): List<Preference> = uids.flatMap { uid ->
+        val userId = UserHandle.getUserId(uid)
+        getPackagesForUid(uid).mapNotNull { packageName ->
+            getPreference(packageName, userId)
+        }
+    }
+
+    private fun getPackagesForUid(uid: Int): Array<String> =
+        packageManager.getPackagesForUid(uid) ?: emptyArray()
+
+    private fun getPreference(packageName: String, userId: Int): Preference? = try {
+        val app = packageManager.getApplicationInfoAsUser(packageName, 0, userId)
+        Preference(context).apply {
+            icon = Utils.getBadgedIcon(context, app)
+            title = app.loadLabel(packageManager)
+            isSelectable = false
+        }
+    } catch (e: PackageManager.NameNotFoundException) {
+        null
+    }
+}
diff --git a/src/com/android/settings/datausage/lib/NetworkCycleChartData.kt b/src/com/android/settings/datausage/lib/NetworkCycleChartData.kt
index fd3c504..4e73190 100644
--- a/src/com/android/settings/datausage/lib/NetworkCycleChartData.kt
+++ b/src/com/android/settings/datausage/lib/NetworkCycleChartData.kt
@@ -26,6 +26,11 @@
     val dailyUsage: List<NetworkUsageData>,
 ) {
     companion object {
+        val AllZero = NetworkCycleChartData(
+            total = NetworkUsageData.AllZero,
+            dailyUsage = emptyList(),
+        )
+
         val BUCKET_DURATION = 1.days
     }
 }
diff --git a/src/com/android/settings/datausage/lib/NetworkCycleDataRepository.kt b/src/com/android/settings/datausage/lib/NetworkCycleDataRepository.kt
index f10d506..4256130 100644
--- a/src/com/android/settings/datausage/lib/NetworkCycleDataRepository.kt
+++ b/src/com/android/settings/datausage/lib/NetworkCycleDataRepository.kt
@@ -16,39 +16,37 @@
 
 package com.android.settings.datausage.lib
 
-import android.app.usage.NetworkStats
-import android.app.usage.NetworkStatsManager
 import android.content.Context
 import android.net.NetworkPolicy
 import android.net.NetworkPolicyManager
 import android.net.NetworkTemplate
 import android.text.format.DateUtils
-import android.util.Log
 import android.util.Range
-import androidx.annotation.VisibleForTesting
 import com.android.settingslib.NetworkPolicyEditor
-import kotlinx.coroutines.async
-import kotlinx.coroutines.awaitAll
-import kotlinx.coroutines.coroutineScope
+import com.android.settingslib.spa.framework.util.asyncMap
 
 interface INetworkCycleDataRepository {
     suspend fun loadCycles(): List<NetworkUsageData>
+    fun getCycles(): List<Range<Long>>
     fun getPolicy(): NetworkPolicy?
-    suspend fun querySummary(startTime: Long, endTime: Long): NetworkCycleChartData?
+    suspend fun queryChartData(startTime: Long, endTime: Long): NetworkCycleChartData?
 }
 
 class NetworkCycleDataRepository(
     context: Context,
     private val networkTemplate: NetworkTemplate,
+    private val networkStatsRepository: NetworkStatsRepository =
+        NetworkStatsRepository(context, networkTemplate),
 ) : INetworkCycleDataRepository {
-    private val networkStatsManager = context.getSystemService(NetworkStatsManager::class.java)!!
 
     private val policyManager = context.getSystemService(NetworkPolicyManager::class.java)!!
 
     override suspend fun loadCycles(): List<NetworkUsageData> =
         getCycles().queryUsage().filter { it.usage > 0 }
 
-    private fun getCycles(): List<Range<Long>> {
+    fun loadFirstCycle(): NetworkUsageData? = getCycles().firstOrNull()?.let { queryUsage(it) }
+
+    override fun getCycles(): List<Range<Long>> {
         val policy = getPolicy() ?: return queryCyclesAsFourWeeks()
         return policy.cycleIterator().asSequence().map {
             Range(it.lower.toInstant().toEpochMilli(), it.upper.toInstant().toEpochMilli())
@@ -56,99 +54,48 @@
     }
 
     private fun queryCyclesAsFourWeeks(): List<Range<Long>> {
-        val timeRange = getTimeRange()
+        val timeRange = networkStatsRepository.getTimeRange() ?: return emptyList()
         return reverseBucketRange(
             startTime = timeRange.lower,
             endTime = timeRange.upper,
-            bucketSize = DateUtils.WEEK_IN_MILLIS * 4,
+            step = DateUtils.WEEK_IN_MILLIS * 4,
         )
     }
 
-    @VisibleForTesting
-    fun getTimeRange(): Range<Long> = getTimeRangeOf(
-        networkStatsManager.queryDetailsForDevice(networkTemplate, Long.MIN_VALUE, Long.MAX_VALUE)
-    )
-
-    private fun getTimeRangeOf(stats: NetworkStats): Range<Long> {
-        var start = Long.MAX_VALUE
-        var end = Long.MIN_VALUE
-        val bucket = NetworkStats.Bucket()
-        while (stats.getNextBucket(bucket)) {
-            start = start.coerceAtMost(bucket.startTimeStamp)
-            end = end.coerceAtLeast(bucket.endTimeStamp)
-        }
-        return Range(start, end)
-    }
-
     override fun getPolicy(): NetworkPolicy? =
         with(NetworkPolicyEditor(policyManager)) {
             read()
             getPolicy(networkTemplate)
         }
 
-    override suspend fun querySummary(startTime: Long, endTime: Long): NetworkCycleChartData? {
-        val usage = getUsage(startTime, endTime)
+    override suspend fun queryChartData(startTime: Long, endTime: Long): NetworkCycleChartData? {
+        val usage = networkStatsRepository.querySummaryForDevice(startTime, endTime)
         if (usage > 0L) {
             return NetworkCycleChartData(
                 total = NetworkUsageData(startTime, endTime, usage),
                 dailyUsage = bucketRange(
                     startTime = startTime,
                     endTime = endTime,
-                    bucketSize = NetworkCycleChartData.BUCKET_DURATION.inWholeMilliseconds,
+                    step = NetworkCycleChartData.BUCKET_DURATION.inWholeMilliseconds,
                 ).queryUsage(),
             )
         }
         return null
     }
 
-    private suspend fun List<Range<Long>>.queryUsage(): List<NetworkUsageData> = coroutineScope {
-        map { range ->
-            async {
-                NetworkUsageData(
-                    startTime = range.lower,
-                    endTime = range.upper,
-                    usage = getUsage(range.lower, range.upper),
-                )
-            }
-        }.awaitAll()
-    }
+    private suspend fun List<Range<Long>>.queryUsage(): List<NetworkUsageData> =
+        asyncMap { queryUsage(it) }
 
-    private fun bucketRange(startTime: Long, endTime: Long, bucketSize: Long): List<Range<Long>> {
-        val buckets = mutableListOf<Range<Long>>()
-        var currentStart = startTime
-        while (currentStart < endTime) {
-            val bucketEnd = currentStart + bucketSize
-            buckets += Range(currentStart, bucketEnd)
-            currentStart = bucketEnd
-        }
-        return buckets
-    }
+    fun queryUsage(range: Range<Long>) = NetworkUsageData(
+        startTime = range.lower,
+        endTime = range.upper,
+        usage = networkStatsRepository.querySummaryForDevice(range.lower, range.upper),
+    )
 
-    private fun reverseBucketRange(
-        startTime: Long,
-        endTime: Long,
-        bucketSize: Long,
-    ): List<Range<Long>> {
-        val buckets = mutableListOf<Range<Long>>()
-        var currentEnd = endTime
-        while (currentEnd > startTime) {
-            val bucketStart = currentEnd - bucketSize
-            buckets += Range(bucketStart, currentEnd)
-            currentEnd = bucketStart
-        }
-        return buckets
-    }
+    private fun bucketRange(startTime: Long, endTime: Long, step: Long): List<Range<Long>> =
+        (startTime..endTime step step).zipWithNext(::Range)
 
-    private fun getUsage(start: Long, end: Long): Long = try {
-        networkStatsManager.querySummaryForDevice(networkTemplate, start, end).let {
-            it.rxBytes + it.txBytes
-        }
-    } catch (e: Exception) {
-        Log.e(TAG, "Exception querying network detail.", e)
-        0
-    }
-
-    companion object {
-        private const val TAG = "NetworkCycleDataRepository"
-    }
+    private fun reverseBucketRange(startTime: Long, endTime: Long, step: Long): List<Range<Long>> =
+        (endTime downTo (startTime - step + 1) step step)
+            .zipWithNext { bucketEnd, bucketStart -> Range(bucketStart, bucketEnd) }
 }
diff --git a/src/com/android/settings/datausage/lib/NetworkStatsRepository.kt b/src/com/android/settings/datausage/lib/NetworkStatsRepository.kt
new file mode 100644
index 0000000..f2e18f2
--- /dev/null
+++ b/src/com/android/settings/datausage/lib/NetworkStatsRepository.kt
@@ -0,0 +1,103 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.datausage.lib
+
+import android.app.usage.NetworkStats
+import android.app.usage.NetworkStatsManager
+import android.content.Context
+import android.net.NetworkTemplate
+import android.util.Log
+import android.util.Range
+
+class NetworkStatsRepository(context: Context, private val template: NetworkTemplate) {
+    private val networkStatsManager = context.getSystemService(NetworkStatsManager::class.java)!!
+
+    fun queryAggregateForUid(
+        range: Range<Long>,
+        uid: Int,
+        state: Int = NetworkStats.Bucket.STATE_ALL,
+    ): NetworkUsageData? = try {
+        networkStatsManager.queryDetailsForUidTagState(
+            template, range.lower, range.upper, uid, NetworkStats.Bucket.TAG_NONE, state,
+        ).aggregate()
+    } catch (e: Exception) {
+        Log.e(TAG, "Exception queryDetailsForUidTagState", e)
+        null
+    }
+
+    fun getTimeRange(): Range<Long>? = try {
+        networkStatsManager.queryDetailsForDevice(template, Long.MIN_VALUE, Long.MAX_VALUE)
+            .aggregate()?.timeRange
+    } catch (e: Exception) {
+        Log.e(TAG, "Exception queryDetailsForDevice", e)
+        null
+    }
+
+    fun querySummaryForDevice(startTime: Long, endTime: Long): Long = try {
+        networkStatsManager.querySummaryForDevice(template, startTime, endTime).bytes
+    } catch (e: Exception) {
+        Log.e(TAG, "Exception querySummaryForDevice", e)
+        0
+    }
+
+    fun queryBuckets(startTime: Long, endTime: Long): List<Bucket> = try {
+        networkStatsManager.querySummary(template, startTime, endTime).convertToBuckets()
+    } catch (e: Exception) {
+        Log.e(TAG, "Exception querySummary", e)
+        emptyList()
+    }
+
+    companion object {
+        private const val TAG = "NetworkStatsRepository"
+
+        val AllTimeRange = Range(Long.MIN_VALUE, Long.MAX_VALUE)
+
+        data class Bucket(
+            val uid: Int,
+            val bytes: Long,
+            val state: Int = NetworkStats.Bucket.STATE_ALL,
+        )
+
+        private fun NetworkStats.convertToBuckets(): List<Bucket> = use {
+            val buckets = mutableListOf<Bucket>()
+            val bucket = NetworkStats.Bucket()
+            while (getNextBucket(bucket)) {
+                buckets += Bucket(uid = bucket.uid, bytes = bucket.bytes, state = bucket.state)
+            }
+            buckets
+        }
+
+        private fun NetworkStats.aggregate(): NetworkUsageData? = use {
+            var startTime = Long.MAX_VALUE
+            var endTime = Long.MIN_VALUE
+            var usage = 0L
+            val bucket = NetworkStats.Bucket()
+            while (getNextBucket(bucket)) {
+                startTime = startTime.coerceAtMost(bucket.startTimeStamp)
+                endTime = endTime.coerceAtLeast(bucket.endTimeStamp)
+                usage += bucket.bytes
+            }
+            when {
+                startTime > endTime -> null
+                else -> NetworkUsageData(startTime, endTime, usage)
+            }
+        }
+
+        private val NetworkStats.Bucket.bytes: Long
+            get() = rxBytes + txBytes
+    }
+}
diff --git a/src/com/android/settings/datausage/lib/NetworkTemplates.kt b/src/com/android/settings/datausage/lib/NetworkTemplates.kt
new file mode 100644
index 0000000..9020070
--- /dev/null
+++ b/src/com/android/settings/datausage/lib/NetworkTemplates.kt
@@ -0,0 +1,56 @@
+/*
+ * 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.datausage.lib
+
+import android.content.Context
+import android.net.NetworkTemplate
+import android.telephony.SubscriptionManager
+import androidx.annotation.StringRes
+import com.android.settings.R
+import com.android.settings.datausage.DataUsageUtils
+
+interface INetworkTemplates {
+    /**
+     * Returns the default network template based on the availability of mobile data, Wifi. Returns
+     * ethernet template if both mobile data and Wifi are not available.
+     */
+    fun getDefaultTemplate(context: Context): NetworkTemplate
+}
+
+object NetworkTemplates : INetworkTemplates {
+    @JvmStatic
+    @StringRes
+    fun NetworkTemplate.getTitleResId(): Int =
+        when (matchRule) {
+            NetworkTemplate.MATCH_MOBILE,
+            NetworkTemplate.MATCH_CARRIER -> R.string.cellular_data_usage
+
+            NetworkTemplate.MATCH_WIFI -> R.string.wifi_data_usage
+            NetworkTemplate.MATCH_ETHERNET -> R.string.ethernet_data_usage
+            else -> R.string.data_usage_app_summary_title
+        }
+
+    /**
+     * Returns the default network template based on the availability of mobile data, Wifi. Returns
+     * ethernet template if both mobile data and Wifi are not available.
+     */
+    override fun getDefaultTemplate(context: Context): NetworkTemplate =
+        DataUsageUtils.getDefaultTemplate(
+            context,
+            SubscriptionManager.getDefaultDataSubscriptionId(),
+        )
+}
diff --git a/src/com/android/settings/datausage/lib/NetworkUsageData.kt b/src/com/android/settings/datausage/lib/NetworkUsageData.kt
index fc5db2b..f9d83d5 100644
--- a/src/com/android/settings/datausage/lib/NetworkUsageData.kt
+++ b/src/com/android/settings/datausage/lib/NetworkUsageData.kt
@@ -16,6 +16,12 @@
 
 package com.android.settings.datausage.lib
 
+import android.content.Context
+import android.text.format.DateUtils
+import android.util.Range
+import com.android.settings.R
+import com.android.settings.datausage.DataUsageUtils
+
 /**
  * Base data structure representing usage data in a period.
  */
@@ -23,4 +29,36 @@
     val startTime: Long,
     val endTime: Long,
     val usage: Long,
-)
+) {
+    val timeRange = Range(startTime, endTime)
+
+    fun formatStartDate(context: Context): String =
+        DateUtils.formatDateTime(context, startTime, DATE_FORMAT)
+
+    fun formatDateRange(context: Context): String =
+        DateUtils.formatDateRange(context, startTime, endTime, DATE_FORMAT)
+
+    fun formatUsage(context: Context): CharSequence = DataUsageUtils.formatDataUsage(context, usage)
+
+    fun getDataUsedString(context: Context): String =
+        context.getString(R.string.data_used_template, formatUsage(context))
+
+    companion object {
+        val AllZero = NetworkUsageData(
+            startTime = 0L,
+            endTime = 0L,
+            usage = 0L,
+        )
+
+        private const val DATE_FORMAT = DateUtils.FORMAT_SHOW_DATE or DateUtils.FORMAT_ABBREV_MONTH
+    }
+}
+
+fun List<NetworkUsageData>.aggregate(): NetworkUsageData? = when {
+    isEmpty() -> null
+    else -> NetworkUsageData(
+        startTime = minOf { it.startTime },
+        endTime = maxOf { it.endTime },
+        usage = sumOf { it.usage },
+    )
+}
diff --git a/src/com/android/settings/datausage/lib/NetworkUsageDetailsData.kt b/src/com/android/settings/datausage/lib/NetworkUsageDetailsData.kt
new file mode 100644
index 0000000..19ff81c
--- /dev/null
+++ b/src/com/android/settings/datausage/lib/NetworkUsageDetailsData.kt
@@ -0,0 +1,38 @@
+/*
+ * 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.datausage.lib
+
+import android.util.Range
+
+/**
+ * Details data structure representing usage data in a period.
+ */
+data class NetworkUsageDetailsData(
+    val range: Range<Long>,
+    val totalUsage: Long,
+    val foregroundUsage: Long,
+    val backgroundUsage: Long,
+) {
+    companion object {
+        val AllZero = NetworkUsageDetailsData(
+            range = Range(0, 0),
+            totalUsage = 0,
+            foregroundUsage = 0,
+            backgroundUsage = 0,
+        )
+    }
+}
diff --git a/src/com/android/settings/datetime/AutoTimeFormatPreferenceController.java b/src/com/android/settings/datetime/AutoTimeFormatPreferenceController.java
index 7b7e064..59f7f72 100644
--- a/src/com/android/settings/datetime/AutoTimeFormatPreferenceController.java
+++ b/src/com/android/settings/datetime/AutoTimeFormatPreferenceController.java
@@ -23,7 +23,6 @@
 import android.text.format.DateFormat;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
 import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
@@ -52,10 +51,10 @@
 
     @Override
     public void updateState(Preference preference) {
-        if (!(preference instanceof SwitchPreference)) {
+        if (!(preference instanceof TwoStatePreference)) {
             return;
         }
-        ((SwitchPreference) preference).setChecked(isAutoTimeFormatSelection(mContext));
+        ((TwoStatePreference) preference).setChecked(isAutoTimeFormatSelection(mContext));
     }
 
     @Override
@@ -64,7 +63,7 @@
             || !TextUtils.equals(KEY_AUTO_24_HOUR, preference.getKey())) {
             return false;
         }
-        boolean auto24HourEnabled = ((SwitchPreference) preference).isChecked();
+        boolean auto24HourEnabled = ((TwoStatePreference) preference).isChecked();
         Boolean is24Hour;
         if (auto24HourEnabled) {
             is24Hour = null;
diff --git a/src/com/android/settings/datetime/AutoTimePreferenceController.java b/src/com/android/settings/datetime/AutoTimePreferenceController.java
index 2b158e0..ca1d4ae 100644
--- a/src/com/android/settings/datetime/AutoTimePreferenceController.java
+++ b/src/com/android/settings/datetime/AutoTimePreferenceController.java
@@ -28,7 +28,7 @@
 import android.content.Context;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.settings.core.PreferenceControllerMixin;
@@ -77,11 +77,11 @@
 
     @Override
     public void updateState(Preference preference) {
-        if (!(preference instanceof SwitchPreference)) {
+        if (!(preference instanceof TwoStatePreference)) {
             return;
         }
 
-        ((SwitchPreference) preference).setChecked(isEnabled());
+        ((TwoStatePreference) preference).setChecked(isEnabled());
     }
 
     @Override
diff --git a/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java b/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java
index 7d1c1b6..c821ad4 100644
--- a/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java
+++ b/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java
@@ -29,7 +29,7 @@
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.settings.R;
@@ -92,11 +92,11 @@
 
     @Override
     public void updateState(Preference preference) {
-        if (!(preference instanceof SwitchPreference)) {
+        if (!(preference instanceof TwoStatePreference)) {
             return;
         }
 
-        ((SwitchPreference) preference).setChecked(isEnabled());
+        ((TwoStatePreference) preference).setChecked(isEnabled());
     }
 
     @Override
diff --git a/src/com/android/settings/datetime/TimeFormatPreferenceController.java b/src/com/android/settings/datetime/TimeFormatPreferenceController.java
index 900ec7a..2d2e0a5 100644
--- a/src/com/android/settings/datetime/TimeFormatPreferenceController.java
+++ b/src/com/android/settings/datetime/TimeFormatPreferenceController.java
@@ -23,7 +23,6 @@
 import android.text.format.DateFormat;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
 import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
@@ -82,7 +81,7 @@
                 || !TextUtils.equals(KEY_TIME_FORMAT, preference.getKey())) {
             return false;
         }
-        final boolean is24Hour = ((SwitchPreference) preference).isChecked();
+        final boolean is24Hour = ((TwoStatePreference) preference).isChecked();
         update24HourFormat(mContext, is24Hour);
         mUpdateTimeAndDateCallback.updateTimeAndDateDisplay(mContext);
         return true;
diff --git a/src/com/android/settings/deletionhelper/AutomaticStorageManagerSwitchBarController.java b/src/com/android/settings/deletionhelper/AutomaticStorageManagerSwitchBarController.java
index f46bb0d..a8cb9ad 100644
--- a/src/com/android/settings/deletionhelper/AutomaticStorageManagerSwitchBarController.java
+++ b/src/com/android/settings/deletionhelper/AutomaticStorageManagerSwitchBarController.java
@@ -20,7 +20,8 @@
 import android.content.Context;
 import android.os.SystemProperties;
 import android.provider.Settings;
-import android.widget.Switch;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
 
 import androidx.fragment.app.FragmentManager;
 import androidx.preference.Preference;
@@ -29,11 +30,10 @@
 import com.android.settings.widget.SettingsMainSwitchBar;
 import com.android.settingslib.Utils;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
-import com.android.settingslib.widget.OnMainSwitchChangeListener;
 
 /** Handles the logic for flipping the storage management toggle on a {@link SwitchBar}. */
 public class AutomaticStorageManagerSwitchBarController
-        implements OnMainSwitchChangeListener {
+        implements OnCheckedChangeListener {
     private static final String STORAGE_MANAGER_ENABLED_BY_DEFAULT_PROPERTY =
             "ro.storage_manager.enabled";
 
@@ -64,7 +64,7 @@
     }
 
     @Override
-    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         mMetrics.action(mContext, SettingsEnums.ACTION_TOGGLE_STORAGE_MANAGER, isChecked);
         mDaysToRetainPreference.setEnabled(isChecked);
         Settings.Secure.putInt(
diff --git a/src/com/android/settings/development/AdbAuthorizationTimeoutPreferenceController.java b/src/com/android/settings/development/AdbAuthorizationTimeoutPreferenceController.java
index 79aa8e6..c2ae189 100644
--- a/src/com/android/settings/development/AdbAuthorizationTimeoutPreferenceController.java
+++ b/src/com/android/settings/development/AdbAuthorizationTimeoutPreferenceController.java
@@ -20,7 +20,7 @@
 import android.provider.Settings;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
 
@@ -51,7 +51,7 @@
                 Settings.Global.DEFAULT_ADB_ALLOWED_CONNECTION_TIME);
         // An authTimeout of 0 indicates this preference is enabled and adb authorizations will not
         // be automatically revoked.
-        ((SwitchPreference) mPreference).setChecked(authTimeout == 0);
+        ((TwoStatePreference) mPreference).setChecked(authTimeout == 0);
     }
 
     @Override
@@ -64,7 +64,7 @@
     public void onDeveloperOptionsSwitchDisabled() {
         super.onDeveloperOptionsSwitchDisabled();
         writeSetting(false);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 
     private void writeSetting(boolean isEnabled) {
diff --git a/src/com/android/settings/development/AllowAppsOnExternalPreferenceController.java b/src/com/android/settings/development/AllowAppsOnExternalPreferenceController.java
index 14474f2..cc86513 100644
--- a/src/com/android/settings/development/AllowAppsOnExternalPreferenceController.java
+++ b/src/com/android/settings/development/AllowAppsOnExternalPreferenceController.java
@@ -21,7 +21,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -59,7 +59,7 @@
         final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.FORCE_ALLOW_ON_EXTERNAL, SETTING_VALUE_OFF);
 
-        ((SwitchPreference) mPreference).setChecked(mode != SETTING_VALUE_OFF);
+        ((TwoStatePreference) mPreference).setChecked(mode != SETTING_VALUE_OFF);
     }
 
     @Override
@@ -67,6 +67,6 @@
         super.onDeveloperOptionsSwitchDisabled();
         Settings.Global.putInt(mContext.getContentResolver(),
                 Settings.Global.FORCE_ALLOW_ON_EXTERNAL, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 }
diff --git a/src/com/android/settings/development/AppsNotRespondingPreferenceController.java b/src/com/android/settings/development/AppsNotRespondingPreferenceController.java
index 15e2663..3ce2870 100644
--- a/src/com/android/settings/development/AppsNotRespondingPreferenceController.java
+++ b/src/com/android/settings/development/AppsNotRespondingPreferenceController.java
@@ -20,7 +20,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -57,7 +57,7 @@
     public void updateState(Preference preference) {
         final int mode = Settings.Secure.getInt(mContext.getContentResolver(),
                 Settings.Secure.ANR_SHOW_BACKGROUND, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(mode != SETTING_VALUE_OFF);
+        ((TwoStatePreference) mPreference).setChecked(mode != SETTING_VALUE_OFF);
     }
 
     @Override
@@ -65,6 +65,6 @@
         super.onDeveloperOptionsSwitchDisabled();
         Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.ANR_SHOW_BACKGROUND, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 }
diff --git a/src/com/android/settings/development/ArtVerifierPreferenceController.java b/src/com/android/settings/development/ArtVerifierPreferenceController.java
index 4b2f030..0f47920 100644
--- a/src/com/android/settings/development/ArtVerifierPreferenceController.java
+++ b/src/com/android/settings/development/ArtVerifierPreferenceController.java
@@ -21,7 +21,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -59,7 +59,7 @@
         final int verifyDebuggable = Settings.Global.getInt(
                 mContext.getContentResolver(),
                 Settings.Global.ART_VERIFIER_VERIFY_DEBUGGABLE, SETTING_VALUE_ON);
-        ((SwitchPreference) mPreference).setChecked(verifyDebuggable != SETTING_VALUE_OFF);
+        ((TwoStatePreference) mPreference).setChecked(verifyDebuggable != SETTING_VALUE_OFF);
     }
 
     @Override
@@ -67,6 +67,6 @@
         super.onDeveloperOptionsSwitchDisabled();
         Settings.Global.putInt(mContext.getContentResolver(),
                 Settings.Global.ART_VERIFIER_VERIFY_DEBUGGABLE, SETTING_VALUE_ON);
-        ((SwitchPreference) mPreference).setChecked(true);
+        ((TwoStatePreference) mPreference).setChecked(true);
     }
 }
diff --git a/src/com/android/settings/development/AutomaticSystemServerHeapDumpPreferenceController.java b/src/com/android/settings/development/AutomaticSystemServerHeapDumpPreferenceController.java
index aa76bb8..05a5dc9 100644
--- a/src/com/android/settings/development/AutomaticSystemServerHeapDumpPreferenceController.java
+++ b/src/com/android/settings/development/AutomaticSystemServerHeapDumpPreferenceController.java
@@ -22,7 +22,7 @@
 import android.provider.Settings;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -71,7 +71,7 @@
     public void updateState(Preference preference) {
         final int mode = Settings.Secure.getInt(mContext.getContentResolver(),
                 Settings.Global.ENABLE_AUTOMATIC_SYSTEM_SERVER_HEAP_DUMPS, SETTING_VALUE_ON);
-        ((SwitchPreference) mPreference).setChecked(mode != SETTING_VALUE_OFF);
+        ((TwoStatePreference) mPreference).setChecked(mode != SETTING_VALUE_OFF);
     }
 
     @Override
@@ -79,6 +79,6 @@
         super.onDeveloperOptionsSwitchDisabled();
         Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Global.ENABLE_AUTOMATIC_SYSTEM_SERVER_HEAP_DUMPS, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 }
diff --git a/src/com/android/settings/development/BackAnimationPreferenceController.java b/src/com/android/settings/development/BackAnimationPreferenceController.java
index 003b1f9..aa4faf5 100644
--- a/src/com/android/settings/development/BackAnimationPreferenceController.java
+++ b/src/com/android/settings/development/BackAnimationPreferenceController.java
@@ -20,7 +20,7 @@
 import android.provider.Settings;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.settings.core.PreferenceControllerMixin;
@@ -76,7 +76,7 @@
     public void updateState(Preference preference) {
         final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.ENABLE_BACK_ANIMATION, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(mode != SETTING_VALUE_OFF);
+        ((TwoStatePreference) mPreference).setChecked(mode != SETTING_VALUE_OFF);
     }
 
     @Override
@@ -84,6 +84,6 @@
         super.onDeveloperOptionsSwitchDisabled();
         Settings.Global.putInt(mContext.getContentResolver(),
                 Settings.Global.ENABLE_BACK_ANIMATION, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 }
diff --git a/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java b/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java
index e47048a..b43303b 100644
--- a/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java
+++ b/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java
@@ -23,7 +23,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -66,10 +66,10 @@
         if (offloadSupported) {
             final boolean offloadDisabled =
                     SystemProperties.getBoolean(A2DP_OFFLOAD_DISABLED_PROPERTY, false);
-            ((SwitchPreference) mPreference).setChecked(offloadDisabled);
+            ((TwoStatePreference) mPreference).setChecked(offloadDisabled);
         } else {
             mPreference.setEnabled(false);
-            ((SwitchPreference) mPreference).setChecked(true);
+            ((TwoStatePreference) mPreference).setChecked(true);
         }
     }
 
@@ -79,7 +79,7 @@
         final boolean offloadSupported =
                 SystemProperties.getBoolean(A2DP_OFFLOAD_SUPPORTED_PROPERTY, false);
         if (offloadSupported) {
-            ((SwitchPreference) mPreference).setChecked(false);
+            ((TwoStatePreference) mPreference).setChecked(false);
             SystemProperties.set(A2DP_OFFLOAD_DISABLED_PROPERTY, "false");
         }
     }
diff --git a/src/com/android/settings/development/BluetoothAbsoluteVolumePreferenceController.java b/src/com/android/settings/development/BluetoothAbsoluteVolumePreferenceController.java
index 77f0f50..1e5a7ca 100644
--- a/src/com/android/settings/development/BluetoothAbsoluteVolumePreferenceController.java
+++ b/src/com/android/settings/development/BluetoothAbsoluteVolumePreferenceController.java
@@ -21,7 +21,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -57,13 +57,13 @@
     public void updateState(Preference preference) {
         final boolean isEnabled = SystemProperties.getBoolean(
                 BLUETOOTH_DISABLE_ABSOLUTE_VOLUME_PROPERTY, false /* default */);
-        ((SwitchPreference) mPreference).setChecked(isEnabled);
+        ((TwoStatePreference) mPreference).setChecked(isEnabled);
     }
 
     @Override
     protected void onDeveloperOptionsSwitchDisabled() {
         super.onDeveloperOptionsSwitchDisabled();
         SystemProperties.set(BLUETOOTH_DISABLE_ABSOLUTE_VOLUME_PROPERTY, "false");
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 }
diff --git a/src/com/android/settings/development/BluetoothDeviceNoNamePreferenceController.java b/src/com/android/settings/development/BluetoothDeviceNoNamePreferenceController.java
index 849e981..c306aca 100644
--- a/src/com/android/settings/development/BluetoothDeviceNoNamePreferenceController.java
+++ b/src/com/android/settings/development/BluetoothDeviceNoNamePreferenceController.java
@@ -21,7 +21,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -57,13 +57,13 @@
     public void updateState(Preference preference) {
         final boolean isEnabled = SystemProperties.getBoolean(
                 BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY, false /* default */);
-        ((SwitchPreference) mPreference).setChecked(isEnabled);
+        ((TwoStatePreference) mPreference).setChecked(isEnabled);
     }
 
     @Override
     protected void onDeveloperOptionsSwitchDisabled() {
         super.onDeveloperOptionsSwitchDisabled();
         SystemProperties.set(BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY, "false");
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 }
diff --git a/src/com/android/settings/development/BluetoothLeAudioAllowListPreferenceController.java b/src/com/android/settings/development/BluetoothLeAudioAllowListPreferenceController.java
index a643a20..51533e7 100644
--- a/src/com/android/settings/development/BluetoothLeAudioAllowListPreferenceController.java
+++ b/src/com/android/settings/development/BluetoothLeAudioAllowListPreferenceController.java
@@ -21,10 +21,11 @@
 import android.bluetooth.BluetoothStatusCodes;
 import android.content.Context;
 import android.os.SystemProperties;
+import android.sysprop.BluetoothProperties;
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -36,27 +37,27 @@
         extends DeveloperOptionsPreferenceController
         implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin {
 
-    private static final String PREFERENCE_KEY = "bluetooth_enable_leaudio_allow_list";
+    private static final String PREFERENCE_KEY = "bluetooth_bypass_leaudio_allowlist";
 
-    private static final String LE_AUDIO_ALLOW_LIST_SWITCH_SUPPORT_PROPERTY =
-            "ro.bluetooth.leaudio_allow_list.supported";
+    static final String LE_AUDIO_CONNECTION_BY_DEFAULT_PROPERTY =
+            "ro.bluetooth.leaudio.le_audio_connection_by_default";
     @VisibleForTesting
-    static final String LE_AUDIO_ALLOW_LIST_ENABLED_PROPERTY =
-            "persist.bluetooth.leaudio.enable_allow_list";
+    static final String BYPASS_LE_AUDIO_ALLOWLIST_PROPERTY =
+            "persist.bluetooth.leaudio.bypass_allow_list";
 
     @VisibleForTesting
     BluetoothAdapter mBluetoothAdapter;
+    @VisibleForTesting boolean mLeAudioConnectionByDefault;
 
     private final DevelopmentSettingsDashboardFragment mFragment;
 
-    @VisibleForTesting
-    boolean mChanged = false;
-
     public BluetoothLeAudioAllowListPreferenceController(Context context,
             DevelopmentSettingsDashboardFragment fragment) {
         super(context);
         mFragment = fragment;
         mBluetoothAdapter = context.getSystemService(BluetoothManager.class).getAdapter();
+        mLeAudioConnectionByDefault =
+                SystemProperties.getBoolean(LE_AUDIO_CONNECTION_BY_DEFAULT_PROPERTY, true);
     }
 
     @Override
@@ -65,52 +66,48 @@
     }
 
     @Override
+    public boolean isAvailable() {
+        return BluetoothProperties.isProfileBapUnicastClientEnabled().orElse(false)
+                && mLeAudioConnectionByDefault;
+    }
+
+    @Override
     public boolean onPreferenceChange(Preference preference, Object newValue) {
-        BluetoothRebootDialog.show(mFragment);
-        mChanged = true;
-        return false;
+        final boolean isBypassed = (Boolean) newValue;
+        SystemProperties.set(BYPASS_LE_AUDIO_ALLOWLIST_PROPERTY,
+                isBypassed ? "true" : "false");
+        return true;
     }
 
     @Override
     public void updateState(Preference preference) {
         if (mBluetoothAdapter == null) {
-            return;
-        }
-
-        final int leAudioSupportedState = mBluetoothAdapter.isLeAudioSupported();
-        final boolean leAudioEnabled =
-                (leAudioSupportedState == BluetoothStatusCodes.FEATURE_SUPPORTED);
-        final boolean leAudioAllowListSupport =
-                SystemProperties.getBoolean(LE_AUDIO_ALLOW_LIST_SWITCH_SUPPORT_PROPERTY, false);
-
-        if (leAudioEnabled && leAudioAllowListSupport) {
-            final boolean leAudioAllowListEnabled =
-                    SystemProperties.getBoolean(LE_AUDIO_ALLOW_LIST_ENABLED_PROPERTY, false);
-            ((SwitchPreference) mPreference).setChecked(leAudioAllowListEnabled);
-        } else {
             mPreference.setEnabled(false);
-            ((SwitchPreference) mPreference).setChecked(false);
-        }
-    }
-
-    /**
-     * Called when the RebootDialog confirm is clicked.
-     */
-    public void onRebootDialogConfirmed() {
-        if (!mChanged) {
             return;
         }
 
-        final boolean leAudioAllowListEnabled =
-                SystemProperties.getBoolean(LE_AUDIO_ALLOW_LIST_ENABLED_PROPERTY, false);
-        SystemProperties.set(LE_AUDIO_ALLOW_LIST_ENABLED_PROPERTY,
-                Boolean.toString(!leAudioAllowListEnabled));
+        final boolean isLeAudioSupported =
+                (mBluetoothAdapter.isLeAudioSupported() == BluetoothStatusCodes.FEATURE_SUPPORTED);
+        if (!isLeAudioSupported) {
+            mPreference.setEnabled(false);
+            ((TwoStatePreference) mPreference).setChecked(false);
+            return;
+        }
+
+        mPreference.setEnabled(true);
+        final boolean isLeAudioAllowlistBypassed =
+                SystemProperties.getBoolean(BYPASS_LE_AUDIO_ALLOWLIST_PROPERTY, false);
+        ((TwoStatePreference) mPreference).setChecked(isLeAudioAllowlistBypassed);
     }
 
-    /**
-     * Called when the RebootDialog cancel is clicked.
-     */
-    public void onRebootDialogCanceled() {
-        mChanged = false;
+    @Override
+    protected void onDeveloperOptionsSwitchDisabled() {
+        super.onDeveloperOptionsSwitchDisabled();
+        final boolean isBypassed =
+                SystemProperties.getBoolean(BYPASS_LE_AUDIO_ALLOWLIST_PROPERTY, false);
+        if (isBypassed) {
+            SystemProperties.set(BYPASS_LE_AUDIO_ALLOWLIST_PROPERTY, Boolean.toString(false));
+            ((TwoStatePreference) mPreference).setChecked(false);
+        }
     }
 }
diff --git a/src/com/android/settings/development/BluetoothLeAudioDeviceDetailsPreferenceController.java b/src/com/android/settings/development/BluetoothLeAudioDeviceDetailsPreferenceController.java
index 980bdaa..0a82990 100644
--- a/src/com/android/settings/development/BluetoothLeAudioDeviceDetailsPreferenceController.java
+++ b/src/com/android/settings/development/BluetoothLeAudioDeviceDetailsPreferenceController.java
@@ -21,11 +21,10 @@
 import android.bluetooth.BluetoothStatusCodes;
 import android.content.Context;
 import android.os.SystemProperties;
-import android.provider.DeviceConfig;
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -39,7 +38,8 @@
         implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin {
 
     private static final String PREFERENCE_KEY = "bluetooth_show_leaudio_device_details";
-    private static final String CONFIG_LE_AUDIO_ENABLED_BY_DEFAULT = "le_audio_enabled_by_default";
+    private static final String LE_AUDIO_CONNECTION_BY_DEFAULT_PROPERTY =
+            "ro.bluetooth.leaudio.le_audio_connection_by_default";
     private static final boolean LE_AUDIO_TOGGLE_VISIBLE_DEFAULT_VALUE = true;
     static int sLeAudioSupportedStateCache = BluetoothStatusCodes.ERROR_UNKNOWN;
 
@@ -48,10 +48,13 @@
 
     @VisibleForTesting
     BluetoothAdapter mBluetoothAdapter;
+    @VisibleForTesting boolean mLeAudioEnabledByDefault;
 
     public BluetoothLeAudioDeviceDetailsPreferenceController(Context context) {
         super(context);
         mBluetoothAdapter = context.getSystemService(BluetoothManager.class).getAdapter();
+        mLeAudioEnabledByDefault =
+                SystemProperties.getBoolean(LE_AUDIO_CONNECTION_BY_DEFAULT_PROPERTY, true);
     }
 
     @Override
@@ -70,7 +73,8 @@
         }
 
         // Display the option only if LE Audio is supported
-        return (sLeAudioSupportedStateCache == BluetoothStatusCodes.FEATURE_SUPPORTED);
+        return !mLeAudioEnabledByDefault
+                && (sLeAudioSupportedStateCache == BluetoothStatusCodes.FEATURE_SUPPORTED);
     }
 
     @Override
@@ -88,11 +92,7 @@
 
         final boolean isLeAudioToggleVisible = SystemProperties.getBoolean(
                 LE_AUDIO_TOGGLE_VISIBLE_PROPERTY, LE_AUDIO_TOGGLE_VISIBLE_DEFAULT_VALUE);
-        final boolean leAudioEnabledByDefault = DeviceConfig.getBoolean(
-                DeviceConfig.NAMESPACE_BLUETOOTH, CONFIG_LE_AUDIO_ENABLED_BY_DEFAULT, false);
 
-        mPreference.setEnabled(!leAudioEnabledByDefault);
-        ((SwitchPreference) mPreference).setChecked(isLeAudioToggleVisible
-                || leAudioEnabledByDefault);
+        ((TwoStatePreference) mPreference).setChecked(isLeAudioToggleVisible);
     }
 }
diff --git a/src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceController.java b/src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceController.java
index 904f828..91b9eb8 100644
--- a/src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceController.java
+++ b/src/com/android/settings/development/BluetoothLeAudioHwOffloadPreferenceController.java
@@ -18,7 +18,6 @@
 
 import static com.android.settings.development.BluetoothA2dpHwOffloadPreferenceController.A2DP_OFFLOAD_DISABLED_PROPERTY;
 
-
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothManager;
 import android.bluetooth.BluetoothStatusCodes;
@@ -27,7 +26,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -87,10 +86,10 @@
         if (leAudioEnabled && leAudioOffloadSupported && !a2dpOffloadDisabled) {
             final boolean offloadDisabled =
                     SystemProperties.getBoolean(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, true);
-            ((SwitchPreference) mPreference).setChecked(offloadDisabled);
+            ((TwoStatePreference) mPreference).setChecked(offloadDisabled);
         } else {
             mPreference.setEnabled(false);
-            ((SwitchPreference) mPreference).setChecked(true);
+            ((TwoStatePreference) mPreference).setChecked(true);
         }
     }
 
@@ -108,7 +107,7 @@
         final boolean a2dpOffloadDisabled =
                 SystemProperties.getBoolean(A2DP_OFFLOAD_DISABLED_PROPERTY, false);
         if (leAudioEnabled && leAudioOffloadSupported && !a2dpOffloadDisabled) {
-            ((SwitchPreference) mPreference).setChecked(true);
+            ((TwoStatePreference) mPreference).setChecked(true);
             SystemProperties.set(LE_AUDIO_OFFLOAD_DISABLED_PROPERTY, "true");
         } else {
             mPreference.setEnabled(false);
diff --git a/src/com/android/settings/development/BluetoothLeAudioPreferenceController.java b/src/com/android/settings/development/BluetoothLeAudioPreferenceController.java
index 9cbbc7f..f1b81b4 100644
--- a/src/com/android/settings/development/BluetoothLeAudioPreferenceController.java
+++ b/src/com/android/settings/development/BluetoothLeAudioPreferenceController.java
@@ -24,7 +24,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -84,7 +84,7 @@
         final boolean leAudioEnabled =
                 (isLeAudioSupportedStatus == BluetoothStatusCodes.FEATURE_SUPPORTED);
 
-        ((SwitchPreference) mPreference).setChecked(!leAudioEnabled);
+        ((TwoStatePreference) mPreference).setChecked(!leAudioEnabled);
 
         // Disable option if Bluetooth is disabled or if switch is not supported
         if (isLeAudioSupportedStatus == BluetoothStatusCodes.ERROR_BLUETOOTH_NOT_ENABLED
diff --git a/src/com/android/settings/development/BugReportInPowerPreferenceController.java b/src/com/android/settings/development/BugReportInPowerPreferenceController.java
index 5ad63e0..c8c46c9 100644
--- a/src/com/android/settings/development/BugReportInPowerPreferenceController.java
+++ b/src/com/android/settings/development/BugReportInPowerPreferenceController.java
@@ -22,7 +22,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -68,7 +68,7 @@
     public void updateState(Preference preference) {
         final int mode = Settings.Secure.getInt(mContext.getContentResolver(),
                 Settings.Secure.BUGREPORT_IN_POWER_MENU, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(mode != SETTING_VALUE_OFF);
+        ((TwoStatePreference) mPreference).setChecked(mode != SETTING_VALUE_OFF);
     }
 
     @Override
@@ -76,6 +76,6 @@
         super.onDeveloperOptionsSwitchDisabled();
         Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.BUGREPORT_IN_POWER_MENU, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 }
diff --git a/src/com/android/settings/development/CameraLaserSensorPreferenceController.java b/src/com/android/settings/development/CameraLaserSensorPreferenceController.java
index 6717280..0a9600a 100644
--- a/src/com/android/settings/development/CameraLaserSensorPreferenceController.java
+++ b/src/com/android/settings/development/CameraLaserSensorPreferenceController.java
@@ -22,7 +22,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.core.PreferenceControllerMixin;
@@ -72,7 +72,7 @@
     @Override
     public void updateState(Preference preference) {
         final boolean enabled = isLaserSensorEnabled();
-        ((SwitchPreference) mPreference).setChecked(enabled);
+        ((TwoStatePreference) mPreference).setChecked(enabled);
     }
 
     // There should be no impact on the current
diff --git a/src/com/android/settings/development/ColorModePreference.java b/src/com/android/settings/development/ColorModePreference.java
index fef9d21..f4a2c79 100644
--- a/src/com/android/settings/development/ColorModePreference.java
+++ b/src/com/android/settings/development/ColorModePreference.java
@@ -24,14 +24,14 @@
 import android.util.AttributeSet;
 import android.view.Display;
 
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settingslib.R;
 
 import java.util.ArrayList;
 import java.util.List;
 
-public class ColorModePreference extends SwitchPreference implements DisplayListener {
+public class ColorModePreference extends TwoStatePreference implements DisplayListener {
 
     private DisplayManager mDisplayManager;
     private Display mDisplay;
diff --git a/src/com/android/settings/development/CoolColorTemperaturePreferenceController.java b/src/com/android/settings/development/CoolColorTemperaturePreferenceController.java
index 54df6ba..82964e7 100644
--- a/src/com/android/settings/development/CoolColorTemperaturePreferenceController.java
+++ b/src/com/android/settings/development/CoolColorTemperaturePreferenceController.java
@@ -22,7 +22,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.core.PreferenceControllerMixin;
@@ -65,14 +65,14 @@
     public void updateState(Preference preference) {
         final boolean enableColorTemperature = SystemProperties.getBoolean(
                 COLOR_TEMPERATURE_PROPERTY, false /* default */);
-        ((SwitchPreference) mPreference).setChecked(enableColorTemperature);
+        ((TwoStatePreference) mPreference).setChecked(enableColorTemperature);
     }
 
     @Override
     protected void onDeveloperOptionsSwitchDisabled() {
         super.onDeveloperOptionsSwitchDisabled();
         SystemProperties.set(COLOR_TEMPERATURE_PROPERTY, Boolean.toString(false));
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 
     @VisibleForTesting
diff --git a/src/com/android/settings/development/DebugViewAttributesPreferenceController.java b/src/com/android/settings/development/DebugViewAttributesPreferenceController.java
index 04d819c..58d764c 100644
--- a/src/com/android/settings/development/DebugViewAttributesPreferenceController.java
+++ b/src/com/android/settings/development/DebugViewAttributesPreferenceController.java
@@ -21,7 +21,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -59,7 +59,7 @@
     public void updateState(Preference preference) {
         final int debugViewAttrMode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.DEBUG_VIEW_ATTRIBUTES, 0 /* default */);
-        ((SwitchPreference) mPreference).setChecked(debugViewAttrMode != SETTING_VALUE_OFF);
+        ((TwoStatePreference) mPreference).setChecked(debugViewAttrMode != SETTING_VALUE_OFF);
     }
 
     @Override
@@ -67,6 +67,6 @@
         super.onDeveloperOptionsSwitchDisabled();
         Settings.Global.putInt(mContext.getContentResolver(),
                 Settings.Global.DEBUG_VIEW_ATTRIBUTES, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 }
diff --git a/src/com/android/settings/development/DesktopModePreferenceController.java b/src/com/android/settings/development/DesktopModePreferenceController.java
index 0e257f6..dcd0c14 100644
--- a/src/com/android/settings/development/DesktopModePreferenceController.java
+++ b/src/com/android/settings/development/DesktopModePreferenceController.java
@@ -24,7 +24,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.core.PreferenceControllerMixin;
@@ -71,7 +71,7 @@
     public void updateState(Preference preference) {
         final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(mode != SETTING_VALUE_OFF);
+        ((TwoStatePreference) mPreference).setChecked(mode != SETTING_VALUE_OFF);
     }
 
     @Override
@@ -79,7 +79,7 @@
         super.onDeveloperOptionsSwitchDisabled();
         Settings.Global.putInt(mContext.getContentResolver(),
                 DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 
     @VisibleForTesting
diff --git a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
index 47b9d09..9c8c186 100644
--- a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
+++ b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
@@ -45,7 +45,8 @@
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
-import android.widget.Switch;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
 
 import androidx.annotation.VisibleForTesting;
 import androidx.localbroadcastmanager.content.LocalBroadcastManager;
@@ -80,7 +81,6 @@
 import com.android.settingslib.development.DevelopmentSettingsEnabler;
 import com.android.settingslib.development.SystemPropPoker;
 import com.android.settingslib.search.SearchIndexable;
-import com.android.settingslib.widget.OnMainSwitchChangeListener;
 
 import com.google.android.setupcompat.util.WizardManagerHelper;
 
@@ -89,7 +89,7 @@
 
 @SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
 public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFragment
-        implements OnMainSwitchChangeListener, OemUnlockDialogHost, AdbDialogHost,
+        implements OnCheckedChangeListener, OemUnlockDialogHost, AdbDialogHost,
         AdbClearKeysDialogHost, LogPersistDialogHost,
         BluetoothRebootDialog.OnRebootDialogListener,
         AbstractBluetoothPreferenceController.Callback,
@@ -333,10 +333,7 @@
     }
 
     @Override
-    public void onSwitchChanged(Switch switchView, boolean isChecked) {
-        if (switchView != mSwitchBar.getSwitch()) {
-            return;
-        }
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         final boolean developmentEnabledState =
                 DevelopmentSettingsEnabler.isDevelopmentSettingsEnabled(getContext());
         if (isChecked != developmentEnabledState) {
@@ -442,11 +439,6 @@
                 getDevelopmentOptionsController(
                         BluetoothLeAudioPreferenceController.class);
         leAudioFeatureController.onRebootDialogConfirmed();
-
-        final BluetoothLeAudioAllowListPreferenceController leAudioAllowListController =
-                getDevelopmentOptionsController(
-                    BluetoothLeAudioAllowListPreferenceController.class);
-        leAudioAllowListController.onRebootDialogConfirmed();
     }
 
     @Override
@@ -464,11 +456,6 @@
                 getDevelopmentOptionsController(
                         BluetoothLeAudioPreferenceController.class);
         leAudioFeatureController.onRebootDialogCanceled();
-
-        final BluetoothLeAudioAllowListPreferenceController leAudioAllowListController =
-                getDevelopmentOptionsController(
-                    BluetoothLeAudioAllowListPreferenceController.class);
-        leAudioAllowListController.onRebootDialogCanceled();
     }
 
     @Override
@@ -679,6 +666,7 @@
         controllers.add(new ShowKeyPressesPreferenceController(context));
         controllers.add(new ShowSurfaceUpdatesPreferenceController(context));
         controllers.add(new ShowLayoutBoundsPreferenceController(context));
+        controllers.add(new ShowHdrSdrRatioPreferenceController(context));
         controllers.add(new ShowRefreshRatePreferenceController(context));
         controllers.add(new RtlLayoutPreferenceController(context));
         controllers.add(new WindowAnimationScalePreferenceController(context));
diff --git a/src/com/android/settings/development/DisableAutomaticUpdatesPreferenceController.java b/src/com/android/settings/development/DisableAutomaticUpdatesPreferenceController.java
index f10e171..4f7fb4d 100644
--- a/src/com/android/settings/development/DisableAutomaticUpdatesPreferenceController.java
+++ b/src/com/android/settings/development/DisableAutomaticUpdatesPreferenceController.java
@@ -21,7 +21,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -63,7 +63,7 @@
         final int updatesEnabled = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.OTA_DISABLE_AUTOMATIC_UPDATE, 0 /* default */);
 
-        ((SwitchPreference) mPreference).setChecked(updatesEnabled != DISABLE_UPDATES_SETTING);
+        ((TwoStatePreference) mPreference).setChecked(updatesEnabled != DISABLE_UPDATES_SETTING);
     }
 
     @Override
@@ -71,6 +71,6 @@
         super.onDeveloperOptionsSwitchDisabled();
         Settings.Global.putInt(mContext.getContentResolver(),
                 Settings.Global.OTA_DISABLE_AUTOMATIC_UPDATE, DISABLE_UPDATES_SETTING);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 }
diff --git a/src/com/android/settings/development/EnableBlursPreferenceController.java b/src/com/android/settings/development/EnableBlursPreferenceController.java
index 129d999..d3a521a 100644
--- a/src/com/android/settings/development/EnableBlursPreferenceController.java
+++ b/src/com/android/settings/development/EnableBlursPreferenceController.java
@@ -23,7 +23,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -69,7 +69,7 @@
     public void updateState(Preference preference) {
         boolean isEnabled = Settings.Global.getInt(mContext.getContentResolver(),
                     Settings.Global.DISABLE_WINDOW_BLURS, 0) == 0;
-        ((SwitchPreference) mPreference).setChecked(isEnabled);
+        ((TwoStatePreference) mPreference).setChecked(isEnabled);
     }
 
     @Override
diff --git a/src/com/android/settings/development/EnableGnssRawMeasFullTrackingPreferenceController.java b/src/com/android/settings/development/EnableGnssRawMeasFullTrackingPreferenceController.java
index 6348d62..69a4154 100644
--- a/src/com/android/settings/development/EnableGnssRawMeasFullTrackingPreferenceController.java
+++ b/src/com/android/settings/development/EnableGnssRawMeasFullTrackingPreferenceController.java
@@ -20,7 +20,7 @@
 import android.provider.Settings;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -59,7 +59,8 @@
         final int enableGnssRawMeasFullTrackingMode =
                 Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.ENABLE_GNSS_RAW_MEAS_FULL_TRACKING, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(enableGnssRawMeasFullTrackingMode != SETTING_VALUE_OFF);
+        ((TwoStatePreference) mPreference)
+                .setChecked(enableGnssRawMeasFullTrackingMode != SETTING_VALUE_OFF);
     }
 
     @Override
@@ -67,6 +68,6 @@
         super.onDeveloperOptionsSwitchDisabled();
         Settings.Global.putInt(mContext.getContentResolver(),
                 Settings.Global.ENABLE_GNSS_RAW_MEAS_FULL_TRACKING, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 }
diff --git a/src/com/android/settings/development/EnableGpuDebugLayersPreferenceController.java b/src/com/android/settings/development/EnableGpuDebugLayersPreferenceController.java
index 163605f..847bd41 100644
--- a/src/com/android/settings/development/EnableGpuDebugLayersPreferenceController.java
+++ b/src/com/android/settings/development/EnableGpuDebugLayersPreferenceController.java
@@ -21,7 +21,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -58,7 +58,8 @@
     public void updateState(Preference preference) {
         final int enableGpuDebugLayersMode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.ENABLE_GPU_DEBUG_LAYERS, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(enableGpuDebugLayersMode != SETTING_VALUE_OFF);
+        ((TwoStatePreference) mPreference)
+                .setChecked(enableGpuDebugLayersMode != SETTING_VALUE_OFF);
     }
 
     @Override
@@ -66,6 +67,6 @@
         super.onDeveloperOptionsSwitchDisabled();
         Settings.Global.putInt(mContext.getContentResolver(),
                 Settings.Global.ENABLE_GPU_DEBUG_LAYERS, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 }
diff --git a/src/com/android/settings/development/EnableVerboseVendorLoggingPreferenceController.java b/src/com/android/settings/development/EnableVerboseVendorLoggingPreferenceController.java
index f13143d..2425768 100644
--- a/src/com/android/settings/development/EnableVerboseVendorLoggingPreferenceController.java
+++ b/src/com/android/settings/development/EnableVerboseVendorLoggingPreferenceController.java
@@ -25,7 +25,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -84,7 +84,7 @@
         ThreadUtils.postOnBackgroundThread(() -> {
                     final boolean enabled = getVerboseLoggingEnabled();
                     ThreadUtils.getUiThreadHandler().post(() ->
-                            ((SwitchPreference) mPreference).setChecked(enabled));
+                            ((TwoStatePreference) mPreference).setChecked(enabled));
                 }
         );
     }
@@ -95,7 +95,7 @@
         super.onDeveloperOptionsSwitchDisabled();
         ThreadUtils.postOnBackgroundThread(() ->
                 setVerboseLoggingEnabled(false));
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 
     @VisibleForTesting
diff --git a/src/com/android/settings/development/ForceDarkPreferenceController.java b/src/com/android/settings/development/ForceDarkPreferenceController.java
index 90e67e0..c81c16f 100644
--- a/src/com/android/settings/development/ForceDarkPreferenceController.java
+++ b/src/com/android/settings/development/ForceDarkPreferenceController.java
@@ -21,7 +21,7 @@
 import android.view.ThreadedRenderer;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -54,13 +54,13 @@
     public void updateState(Preference preference) {
         final boolean isEnabled = SystemProperties.getBoolean(
                 ThreadedRenderer.DEBUG_FORCE_DARK, false /* default */);
-        ((SwitchPreference) mPreference).setChecked(isEnabled);
+        ((TwoStatePreference) mPreference).setChecked(isEnabled);
     }
 
     @Override
     protected void onDeveloperOptionsSwitchDisabled() {
         super.onDeveloperOptionsSwitchDisabled();
         SystemProperties.set(ThreadedRenderer.DEBUG_FORCE_DARK, null);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 }
diff --git a/src/com/android/settings/development/ForceEnableNotesRolePreferenceController.java b/src/com/android/settings/development/ForceEnableNotesRolePreferenceController.java
index 4060bb6..45eeafa 100644
--- a/src/com/android/settings/development/ForceEnableNotesRolePreferenceController.java
+++ b/src/com/android/settings/development/ForceEnableNotesRolePreferenceController.java
@@ -39,7 +39,7 @@
 import android.os.UserManager;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.internal.R;
 import com.android.internal.annotations.VisibleForTesting;
@@ -81,13 +81,13 @@
 
     @Override
     public void updateState(Preference preference) {
-        ((SwitchPreference) mPreference).setChecked(isEnabled());
+        ((TwoStatePreference) mPreference).setChecked(isEnabled());
     }
 
     @Override
     protected void onDeveloperOptionsSwitchDisabled() {
         super.onDeveloperOptionsSwitchDisabled();
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
         setEnabled(false);
     }
 
diff --git a/src/com/android/settings/development/ForceMSAAPreferenceController.java b/src/com/android/settings/development/ForceMSAAPreferenceController.java
index a1a4d66..4fd4cc2 100644
--- a/src/com/android/settings/development/ForceMSAAPreferenceController.java
+++ b/src/com/android/settings/development/ForceMSAAPreferenceController.java
@@ -20,7 +20,7 @@
 import android.sysprop.DisplayProperties;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -51,13 +51,13 @@
     @Override
     public void updateState(Preference preference) {
         final boolean isEnabled = DisplayProperties.debug_force_msaa().orElse(false);
-        ((SwitchPreference) mPreference).setChecked(isEnabled);
+        ((TwoStatePreference) mPreference).setChecked(isEnabled);
     }
 
     @Override
     protected void onDeveloperOptionsSwitchDisabled() {
         super.onDeveloperOptionsSwitchDisabled();
         DisplayProperties.debug_force_msaa(false);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 }
diff --git a/src/com/android/settings/development/ForcePeakRefreshRatePreferenceController.java b/src/com/android/settings/development/ForcePeakRefreshRatePreferenceController.java
index d5d4025..80b295c 100644
--- a/src/com/android/settings/development/ForcePeakRefreshRatePreferenceController.java
+++ b/src/com/android/settings/development/ForcePeakRefreshRatePreferenceController.java
@@ -16,16 +16,17 @@
 
 package com.android.settings.development;
 
+import static com.android.internal.display.RefreshRateSettingsUtils.DEFAULT_REFRESH_RATE;
+import static com.android.internal.display.RefreshRateSettingsUtils.findHighestRefreshRateForDefaultDisplay;
+
 import android.content.Context;
-import android.hardware.display.DisplayManager;
 import android.provider.Settings;
 import android.util.Log;
-import android.view.Display;
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.core.PreferenceControllerMixin;
@@ -35,9 +36,6 @@
         implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin {
 
     @VisibleForTesting
-    static float DEFAULT_REFRESH_RATE = 60f;
-
-    @VisibleForTesting
     static float NO_CONFIG = 0f;
 
     @VisibleForTesting
@@ -48,17 +46,7 @@
 
     public ForcePeakRefreshRatePreferenceController(Context context) {
         super(context);
-
-        final DisplayManager dm = context.getSystemService(DisplayManager.class);
-        final Display display = dm.getDisplay(Display.DEFAULT_DISPLAY);
-
-        if (display == null) {
-            Log.w(TAG, "No valid default display device");
-            mPeakRefreshRate = DEFAULT_REFRESH_RATE;
-        } else {
-            mPeakRefreshRate = findPeakRefreshRate(display.getSupportedModes());
-        }
-
+        mPeakRefreshRate = findHighestRefreshRateForDefaultDisplay(context);
         Log.d(TAG, "DEFAULT_REFRESH_RATE : " + DEFAULT_REFRESH_RATE
             + " mPeakRefreshRate : " + mPeakRefreshRate);
     }
@@ -84,7 +72,7 @@
 
     @Override
     public void updateState(Preference preference) {
-        ((SwitchPreference) mPreference).setChecked(isForcePeakRefreshRateEnabled());
+        ((TwoStatePreference) mPreference).setChecked(isForcePeakRefreshRateEnabled());
     }
 
     @Override
@@ -102,12 +90,12 @@
         Settings.System.putFloat(mContext.getContentResolver(),
             Settings.System.MIN_REFRESH_RATE, NO_CONFIG);
 
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 
     @VisibleForTesting
     void forcePeakRefreshRate(boolean enable) {
-        final float peakRefreshRate = enable ? mPeakRefreshRate : NO_CONFIG;
+        final float peakRefreshRate = enable ? Float.POSITIVE_INFINITY : NO_CONFIG;
         Settings.System.putFloat(mContext.getContentResolver(),
             Settings.System.MIN_REFRESH_RATE, peakRefreshRate);
     }
@@ -116,17 +104,7 @@
         final float peakRefreshRate = Settings.System.getFloat(mContext.getContentResolver(),
             Settings.System.MIN_REFRESH_RATE, NO_CONFIG);
 
-        return peakRefreshRate >= mPeakRefreshRate;
-    }
-
-    private float findPeakRefreshRate(Display.Mode[] modes) {
-        float peakRefreshRate = DEFAULT_REFRESH_RATE;
-        for (Display.Mode mode : modes) {
-            if (Math.round(mode.getRefreshRate()) > peakRefreshRate) {
-                peakRefreshRate = mode.getRefreshRate();
-            }
-        }
-
-        return peakRefreshRate;
+        return Math.round(peakRefreshRate) == Math.round(mPeakRefreshRate)
+                || Float.isInfinite(peakRefreshRate);
     }
 }
diff --git a/src/com/android/settings/development/FreeformWindowsPreferenceController.java b/src/com/android/settings/development/FreeformWindowsPreferenceController.java
index 8bb2b1c..872c046 100644
--- a/src/com/android/settings/development/FreeformWindowsPreferenceController.java
+++ b/src/com/android/settings/development/FreeformWindowsPreferenceController.java
@@ -22,7 +22,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.core.PreferenceControllerMixin;
@@ -69,7 +69,7 @@
     public void updateState(Preference preference) {
         final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(mode != SETTING_VALUE_OFF);
+        ((TwoStatePreference) mPreference).setChecked(mode != SETTING_VALUE_OFF);
     }
 
     @Override
@@ -77,7 +77,7 @@
         super.onDeveloperOptionsSwitchDisabled();
         Settings.Global.putInt(mContext.getContentResolver(),
                 Settings.Global.DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 
     @VisibleForTesting
diff --git a/src/com/android/settings/development/GlobalSettingSwitchPreferenceController.java b/src/com/android/settings/development/GlobalSettingSwitchPreferenceController.java
index d79c231..1c16762 100644
--- a/src/com/android/settings/development/GlobalSettingSwitchPreferenceController.java
+++ b/src/com/android/settings/development/GlobalSettingSwitchPreferenceController.java
@@ -20,7 +20,7 @@
 import android.provider.Settings;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -67,13 +67,13 @@
     public void updateState(Preference preference) {
         final int mode =
             Settings.Global.getInt(mContext.getContentResolver(), mSettingsKey, mDefault);
-        ((SwitchPreference) mPreference).setChecked(mode != mOff);
+        ((TwoStatePreference) mPreference).setChecked(mode != mOff);
     }
 
     @Override
     protected void onDeveloperOptionsSwitchDisabled() {
         super.onDeveloperOptionsSwitchDisabled();
         Settings.Global.putInt(mContext.getContentResolver(), mSettingsKey, mOff);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 }
diff --git a/src/com/android/settings/development/GpuViewUpdatesPreferenceController.java b/src/com/android/settings/development/GpuViewUpdatesPreferenceController.java
index 0087e28..dc0c984 100644
--- a/src/com/android/settings/development/GpuViewUpdatesPreferenceController.java
+++ b/src/com/android/settings/development/GpuViewUpdatesPreferenceController.java
@@ -21,7 +21,7 @@
 import android.view.ThreadedRenderer;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -54,13 +54,13 @@
     public void updateState(Preference preference) {
         final boolean isEnabled = SystemProperties.getBoolean(
                 ThreadedRenderer.DEBUG_DIRTY_REGIONS_PROPERTY, false /* default */);
-        ((SwitchPreference) mPreference).setChecked(isEnabled);
+        ((TwoStatePreference) mPreference).setChecked(isEnabled);
     }
 
     @Override
     protected void onDeveloperOptionsSwitchDisabled() {
         super.onDeveloperOptionsSwitchDisabled();
         SystemProperties.set(ThreadedRenderer.DEBUG_DIRTY_REGIONS_PROPERTY, null);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 }
diff --git a/src/com/android/settings/development/HardwareLayersUpdatesPreferenceController.java b/src/com/android/settings/development/HardwareLayersUpdatesPreferenceController.java
index 8ffbdcd..5a1f6f5 100644
--- a/src/com/android/settings/development/HardwareLayersUpdatesPreferenceController.java
+++ b/src/com/android/settings/development/HardwareLayersUpdatesPreferenceController.java
@@ -21,7 +21,7 @@
 import android.view.ThreadedRenderer;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -54,13 +54,13 @@
     public void updateState(Preference preference) {
         final boolean isEnabled = SystemProperties.getBoolean(
                 ThreadedRenderer.DEBUG_SHOW_LAYERS_UPDATES_PROPERTY, false /* default */);
-        ((SwitchPreference) mPreference).setChecked(isEnabled);
+        ((TwoStatePreference) mPreference).setChecked(isEnabled);
     }
 
     @Override
     protected void onDeveloperOptionsSwitchDisabled() {
         super.onDeveloperOptionsSwitchDisabled();
         SystemProperties.set(ThreadedRenderer.DEBUG_SHOW_LAYERS_UPDATES_PROPERTY, null);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 }
diff --git a/src/com/android/settings/development/HardwareOverlaysPreferenceController.java b/src/com/android/settings/development/HardwareOverlaysPreferenceController.java
index c10e107..8ebf3cd 100644
--- a/src/com/android/settings/development/HardwareOverlaysPreferenceController.java
+++ b/src/com/android/settings/development/HardwareOverlaysPreferenceController.java
@@ -24,7 +24,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -71,7 +71,7 @@
     @Override
     protected void onDeveloperOptionsSwitchDisabled() {
         super.onDeveloperOptionsSwitchDisabled();
-        final SwitchPreference switchPreference = (SwitchPreference) mPreference;
+        final TwoStatePreference switchPreference = (TwoStatePreference) mPreference;
         if (switchPreference.isChecked()) {
             // Writing false to the preference when the setting is already off will have a
             // side effect of turning on the preference that we wish to avoid
@@ -96,7 +96,7 @@
             @SuppressWarnings("unused") final int showUpdates = reply.readInt();
             @SuppressWarnings("unused") final int showBackground = reply.readInt();
             final int disableOverlays = reply.readInt();
-            ((SwitchPreference) mPreference).setChecked(disableOverlays != SETTING_VALUE_OFF);
+            ((TwoStatePreference) mPreference).setChecked(disableOverlays != SETTING_VALUE_OFF);
             reply.recycle();
             data.recycle();
         } catch (RemoteException ex) {
diff --git a/src/com/android/settings/development/KeepActivitiesPreferenceController.java b/src/com/android/settings/development/KeepActivitiesPreferenceController.java
index 0ba2c42..ef8daaa 100644
--- a/src/com/android/settings/development/KeepActivitiesPreferenceController.java
+++ b/src/com/android/settings/development/KeepActivitiesPreferenceController.java
@@ -25,7 +25,7 @@
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -68,14 +68,14 @@
     public void updateState(Preference preference) {
         final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.ALWAYS_FINISH_ACTIVITIES, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(mode != SETTING_VALUE_OFF);
+        ((TwoStatePreference) mPreference).setChecked(mode != SETTING_VALUE_OFF);
     }
 
     @Override
     protected void onDeveloperOptionsSwitchDisabled() {
         super.onDeveloperOptionsSwitchDisabled();
         writeImmediatelyDestroyActivitiesOptions(false);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 
     private void writeImmediatelyDestroyActivitiesOptions(boolean isEnabled) {
diff --git a/src/com/android/settings/development/LocalTerminalPreferenceController.java b/src/com/android/settings/development/LocalTerminalPreferenceController.java
index d48615c..797ba51 100644
--- a/src/com/android/settings/development/LocalTerminalPreferenceController.java
+++ b/src/com/android/settings/development/LocalTerminalPreferenceController.java
@@ -7,7 +7,7 @@
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -63,7 +63,7 @@
     public void updateState(Preference preference) {
         final boolean isTerminalEnabled = mPackageManager.getApplicationEnabledSetting(
                 TERMINAL_APP_PACKAGE) == PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
-        ((SwitchPreference) mPreference).setChecked(isTerminalEnabled);
+        ((TwoStatePreference) mPreference).setChecked(isTerminalEnabled);
     }
 
     @Override
@@ -78,7 +78,7 @@
         super.onDeveloperOptionsSwitchDisabled();
         mPackageManager.setApplicationEnabledSetting(TERMINAL_APP_PACKAGE,
                 PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, 0 /* flags */);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 
     @VisibleForTesting
diff --git a/src/com/android/settings/development/MobileDataAlwaysOnPreferenceController.java b/src/com/android/settings/development/MobileDataAlwaysOnPreferenceController.java
index b2fa693..8d5990a 100644
--- a/src/com/android/settings/development/MobileDataAlwaysOnPreferenceController.java
+++ b/src/com/android/settings/development/MobileDataAlwaysOnPreferenceController.java
@@ -21,7 +21,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -59,7 +59,7 @@
         final int mobileDataAlwaysOnMode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.MOBILE_DATA_ALWAYS_ON, SETTING_VALUE_ON);
 
-        ((SwitchPreference) mPreference).setChecked(mobileDataAlwaysOnMode != SETTING_VALUE_OFF);
+        ((TwoStatePreference) mPreference).setChecked(mobileDataAlwaysOnMode != SETTING_VALUE_OFF);
     }
 
     @Override
@@ -67,6 +67,6 @@
         super.onDeveloperOptionsSwitchDisabled();
         Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.MOBILE_DATA_ALWAYS_ON,
                 SETTING_VALUE_ON);
-        ((SwitchPreference) mPreference).setChecked(true);
+        ((TwoStatePreference) mPreference).setChecked(true);
     }
 }
diff --git a/src/com/android/settings/development/MockModemPreferenceController.java b/src/com/android/settings/development/MockModemPreferenceController.java
index 655f157..aaca787 100644
--- a/src/com/android/settings/development/MockModemPreferenceController.java
+++ b/src/com/android/settings/development/MockModemPreferenceController.java
@@ -22,7 +22,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -67,7 +67,7 @@
         try {
             final boolean isEnabled = SystemProperties.getBoolean(
                     ALLOW_MOCK_MODEM_PROPERTY, false /* default */);
-            ((SwitchPreference) mPreference).setChecked(isEnabled);
+            ((TwoStatePreference) mPreference).setChecked(isEnabled);
         } catch (RuntimeException e) {
             Log.e(TAG, "Fail to get radio system property: " + e.getMessage());
         }
@@ -78,7 +78,7 @@
         super.onDeveloperOptionsSwitchDisabled();
         try {
             SystemProperties.set(ALLOW_MOCK_MODEM_PROPERTY, "false");
-            ((SwitchPreference) mPreference).setChecked(false);
+            ((TwoStatePreference) mPreference).setChecked(false);
         } catch (RuntimeException e) {
             Log.e(TAG, "Fail to set radio system property: " + e.getMessage());
         }
diff --git a/src/com/android/settings/development/NfcSnoopLogPreferenceController.java b/src/com/android/settings/development/NfcSnoopLogPreferenceController.java
index ef7e194..01fbb92 100644
--- a/src/com/android/settings/development/NfcSnoopLogPreferenceController.java
+++ b/src/com/android/settings/development/NfcSnoopLogPreferenceController.java
@@ -22,7 +22,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
 
@@ -69,7 +69,7 @@
     public void updateState(Preference preference) {
         try {
             final String currentValue = SystemProperties.get(NFC_NFCSNOOP_LOG_MODE_PROPERTY);
-            ((SwitchPreference) mPreference).setChecked(currentValue.equals(NFCSNOOP_MODE_FULL));
+            ((TwoStatePreference) mPreference).setChecked(currentValue.equals(NFCSNOOP_MODE_FULL));
         } catch (RuntimeException e) {
             Log.e(TAG, "Fail to get nfc system property: " + e.getMessage());
         }
@@ -80,7 +80,7 @@
         super.onDeveloperOptionsSwitchDisabled();
         try {
             SystemProperties.set(NFC_NFCSNOOP_LOG_MODE_PROPERTY, NFCSNOOP_MODE_FILTERED);
-            ((SwitchPreference) mPreference).setChecked(false);
+            ((TwoStatePreference) mPreference).setChecked(false);
         } catch (RuntimeException e) {
             Log.e(TAG, "Fail to set nfc system property: " + e.getMessage());
         }
diff --git a/src/com/android/settings/development/NfcStackDebugLogPreferenceController.java b/src/com/android/settings/development/NfcStackDebugLogPreferenceController.java
index a3cab25..4464923 100644
--- a/src/com/android/settings/development/NfcStackDebugLogPreferenceController.java
+++ b/src/com/android/settings/development/NfcStackDebugLogPreferenceController.java
@@ -22,7 +22,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -63,7 +63,7 @@
         try {
             final boolean isEnabled = SystemProperties.getBoolean(
                     NFC_STACK_DEBUGLOG_ENABLED_PROPERTY, false /* default */);
-            ((SwitchPreference) mPreference).setChecked(isEnabled);
+            ((TwoStatePreference) mPreference).setChecked(isEnabled);
         } catch (RuntimeException e) {
             Log.e(TAG, "Fail to get nfc system property: " + e.getMessage());
         }
@@ -74,7 +74,7 @@
         super.onDeveloperOptionsSwitchDisabled();
         try {
             SystemProperties.set(NFC_STACK_DEBUGLOG_ENABLED_PROPERTY, "false");
-            ((SwitchPreference) mPreference).setChecked(false);
+            ((TwoStatePreference) mPreference).setChecked(false);
         } catch (RuntimeException e) {
             Log.e(TAG, "Fail to set nfc system property: " + e.getMessage());
         }
diff --git a/src/com/android/settings/development/NfcVerboseVendorLogPreferenceController.java b/src/com/android/settings/development/NfcVerboseVendorLogPreferenceController.java
index dcac14c..d0f9d9e 100644
--- a/src/com/android/settings/development/NfcVerboseVendorLogPreferenceController.java
+++ b/src/com/android/settings/development/NfcVerboseVendorLogPreferenceController.java
@@ -22,7 +22,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
 
@@ -69,7 +69,7 @@
     public void updateState(Preference preference) {
         try {
             final String currentValue = SystemProperties.get(NFC_VERBOSE_VENDOR_LOG_PROPERTY);
-            ((SwitchPreference) mPreference)
+            ((TwoStatePreference) mPreference)
                     .setChecked(currentValue.equals(VERBOSE_VENDOR_LOG_ENABLED));
         } catch (RuntimeException e) {
             Log.e(TAG, "Fail to get nfc system property: " + e.getMessage());
@@ -81,7 +81,7 @@
         super.onDeveloperOptionsSwitchDisabled();
         try {
             SystemProperties.set(NFC_VERBOSE_VENDOR_LOG_PROPERTY, VERBOSE_VENDOR_LOG_DISABLED);
-            ((SwitchPreference) mPreference).setChecked(false);
+            ((TwoStatePreference) mPreference).setChecked(false);
         } catch (RuntimeException e) {
             Log.e(TAG, "Fail to set nfc system property: " + e.getMessage());
         }
diff --git a/src/com/android/settings/development/NonResizableMultiWindowPreferenceController.java b/src/com/android/settings/development/NonResizableMultiWindowPreferenceController.java
index b1c4be9..50d90bd 100644
--- a/src/com/android/settings/development/NonResizableMultiWindowPreferenceController.java
+++ b/src/com/android/settings/development/NonResizableMultiWindowPreferenceController.java
@@ -23,7 +23,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -66,7 +66,7 @@
     public void updateState(Preference preference) {
         final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(mode != SETTING_VALUE_OFF);
+        ((TwoStatePreference) mPreference).setChecked(mode != SETTING_VALUE_OFF);
     }
 
     @Override
@@ -74,6 +74,6 @@
         super.onDeveloperOptionsSwitchDisabled();
         Settings.Global.putInt(mContext.getContentResolver(),
                 DEVELOPMENT_ENABLE_NON_RESIZABLE_MULTI_WINDOW, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 }
diff --git a/src/com/android/settings/development/NotificationChannelWarningsPreferenceController.java b/src/com/android/settings/development/NotificationChannelWarningsPreferenceController.java
index 22b3f83..93fe7f0 100644
--- a/src/com/android/settings/development/NotificationChannelWarningsPreferenceController.java
+++ b/src/com/android/settings/development/NotificationChannelWarningsPreferenceController.java
@@ -22,7 +22,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -62,7 +62,7 @@
     public void updateState(Preference preference) {
         final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.SHOW_NOTIFICATION_CHANNEL_WARNINGS, 0);
-        ((SwitchPreference) mPreference).setChecked(mode != SETTING_VALUE_OFF);
+        ((TwoStatePreference) mPreference).setChecked(mode != SETTING_VALUE_OFF);
     }
 
     @Override
@@ -70,7 +70,7 @@
         super.onDeveloperOptionsSwitchDisabled();
         Settings.Global.putInt(mContext.getContentResolver(),
                 Settings.Global.SHOW_NOTIFICATION_CHANNEL_WARNINGS, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 
     @VisibleForTesting
diff --git a/src/com/android/settings/development/OWNERS b/src/com/android/settings/development/OWNERS
new file mode 100644
index 0000000..6443afe
--- /dev/null
+++ b/src/com/android/settings/development/OWNERS
@@ -0,0 +1,5 @@
+# ShowHdrSdrRatioPreferenceController
+per-file ShowHdrSdrRatioPreferenceController.java=file:platform/frameworks/native:/services/surfaceflinger/OWNERS
+
+# ShowRefreshRatePreferenceController
+per-file ShowRefreshRatePreferenceController.java=file:platform/frameworks/native:/services/surfaceflinger/OWNERS
diff --git a/src/com/android/settings/development/OverlaySettingsPreferenceController.java b/src/com/android/settings/development/OverlaySettingsPreferenceController.java
index cd08793..c60cb6f 100644
--- a/src/com/android/settings/development/OverlaySettingsPreferenceController.java
+++ b/src/com/android/settings/development/OverlaySettingsPreferenceController.java
@@ -23,7 +23,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -59,7 +59,7 @@
 
     @Override
     public void updateState(Preference preference) {
-        ((SwitchPreference) preference).setChecked(isOverlaySettingsEnabled(mContext));
+        ((TwoStatePreference) preference).setChecked(isOverlaySettingsEnabled(mContext));
     }
 
     /**
diff --git a/src/com/android/settings/development/PhantomProcessPreferenceController.java b/src/com/android/settings/development/PhantomProcessPreferenceController.java
index b277fe1..f03cf95 100644
--- a/src/com/android/settings/development/PhantomProcessPreferenceController.java
+++ b/src/com/android/settings/development/PhantomProcessPreferenceController.java
@@ -23,7 +23,7 @@
 import android.util.Log;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -66,7 +66,7 @@
         try {
             final boolean isEnabled = !FeatureFlagUtils.isEnabled(mContext,
                     SETTINGS_ENABLE_MONITOR_PHANTOM_PROCS);
-            ((SwitchPreference) mPreference).setChecked(isEnabled);
+            ((TwoStatePreference) mPreference).setChecked(isEnabled);
         } catch (RuntimeException e) {
             Log.e(TAG, "Fail to get feature flag: " + e.getMessage());
         }
@@ -79,7 +79,7 @@
             FeatureFlagUtils.setEnabled(mContext,
                     SETTINGS_ENABLE_MONITOR_PHANTOM_PROCS,
                     true /* Enable the monitoring */);
-            ((SwitchPreference) mPreference).setChecked(false);
+            ((TwoStatePreference) mPreference).setChecked(false);
         } catch (RuntimeException e) {
             Log.e(TAG, "Fail to set feature flag: " + e.getMessage());
         }
diff --git a/src/com/android/settings/development/PointerLocationPreferenceController.java b/src/com/android/settings/development/PointerLocationPreferenceController.java
index 0fd0137..3b76740 100644
--- a/src/com/android/settings/development/PointerLocationPreferenceController.java
+++ b/src/com/android/settings/development/PointerLocationPreferenceController.java
@@ -21,7 +21,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -57,7 +57,7 @@
     public void updateState(Preference preference) {
         final int pointerLocationMode = Settings.System.getInt(mContext.getContentResolver(),
                 Settings.System.POINTER_LOCATION, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(pointerLocationMode != SETTING_VALUE_OFF);
+        ((TwoStatePreference) mPreference).setChecked(pointerLocationMode != SETTING_VALUE_OFF);
     }
 
     @Override
@@ -65,6 +65,6 @@
         super.onDeveloperOptionsSwitchDisabled();
         Settings.System.putInt(mContext.getContentResolver(), Settings.System.POINTER_LOCATION,
                 SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 }
diff --git a/src/com/android/settings/development/ResizableActivityPreferenceController.java b/src/com/android/settings/development/ResizableActivityPreferenceController.java
index c74e995..28b1478 100644
--- a/src/com/android/settings/development/ResizableActivityPreferenceController.java
+++ b/src/com/android/settings/development/ResizableActivityPreferenceController.java
@@ -21,7 +21,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -58,7 +58,7 @@
     public void updateState(Preference preference) {
         final int mode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.DEVELOPMENT_FORCE_RESIZABLE_ACTIVITIES, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(mode != SETTING_VALUE_OFF);
+        ((TwoStatePreference) mPreference).setChecked(mode != SETTING_VALUE_OFF);
     }
 
     @Override
@@ -66,6 +66,6 @@
         super.onDeveloperOptionsSwitchDisabled();
         Settings.Global.putInt(mContext.getContentResolver(),
                 Settings.Global.DEVELOPMENT_FORCE_RESIZABLE_ACTIVITIES, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 }
diff --git a/src/com/android/settings/development/RtlLayoutPreferenceController.java b/src/com/android/settings/development/RtlLayoutPreferenceController.java
index 913259e..bb7061d 100644
--- a/src/com/android/settings/development/RtlLayoutPreferenceController.java
+++ b/src/com/android/settings/development/RtlLayoutPreferenceController.java
@@ -22,7 +22,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.internal.app.LocalePicker;
 import com.android.settings.core.PreferenceControllerMixin;
@@ -59,7 +59,7 @@
     public void updateState(Preference preference) {
         int rtlLayoutMode = Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.DEVELOPMENT_FORCE_RTL, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(rtlLayoutMode != SETTING_VALUE_OFF);
+        ((TwoStatePreference) mPreference).setChecked(rtlLayoutMode != SETTING_VALUE_OFF);
     }
 
     @Override
@@ -67,7 +67,7 @@
         super.onDeveloperOptionsSwitchDisabled();
         writeToForceRtlLayoutSetting(false);
         updateLocales();
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 
     @VisibleForTesting
diff --git a/src/com/android/settings/development/SecureSettingSwitchPreferenceController.java b/src/com/android/settings/development/SecureSettingSwitchPreferenceController.java
index a72c0e0..199ecab 100644
--- a/src/com/android/settings/development/SecureSettingSwitchPreferenceController.java
+++ b/src/com/android/settings/development/SecureSettingSwitchPreferenceController.java
@@ -20,7 +20,7 @@
 import android.provider.Settings;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -54,13 +54,13 @@
     public void updateState(Preference preference) {
         final int mode = Settings.Secure.getInt(
             mContext.getContentResolver(), mSettingsKey, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(mode != SETTING_VALUE_OFF);
+        ((TwoStatePreference) mPreference).setChecked(mode != SETTING_VALUE_OFF);
     }
 
     @Override
     protected void onDeveloperOptionsSwitchDisabled() {
         super.onDeveloperOptionsSwitchDisabled();
         Settings.Secure.putInt(mContext.getContentResolver(), mSettingsKey, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 }
diff --git a/src/com/android/settings/development/ShowFirstCrashDialogPreferenceController.java b/src/com/android/settings/development/ShowFirstCrashDialogPreferenceController.java
index 5e0cda8..df5ad4e 100644
--- a/src/com/android/settings/development/ShowFirstCrashDialogPreferenceController.java
+++ b/src/com/android/settings/development/ShowFirstCrashDialogPreferenceController.java
@@ -21,7 +21,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -66,7 +66,7 @@
     public void updateState(Preference preference) {
         final int mode = Settings.Secure.getInt(mContext.getContentResolver(),
                 Settings.Secure.SHOW_FIRST_CRASH_DIALOG_DEV_OPTION, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(mode != SETTING_VALUE_OFF);
+        ((TwoStatePreference) mPreference).setChecked(mode != SETTING_VALUE_OFF);
     }
 
     @Override
@@ -74,6 +74,6 @@
         super.onDeveloperOptionsSwitchDisabled();
         Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.SHOW_FIRST_CRASH_DIALOG_DEV_OPTION, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 }
diff --git a/src/com/android/settings/development/ShowHdrSdrRatioPreferenceController.java b/src/com/android/settings/development/ShowHdrSdrRatioPreferenceController.java
new file mode 100644
index 0000000..2e7807e
--- /dev/null
+++ b/src/com/android/settings/development/ShowHdrSdrRatioPreferenceController.java
@@ -0,0 +1,144 @@
+/**
+ * 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.development;
+
+import android.content.Context;
+import android.hardware.display.DisplayManager;
+import android.os.IBinder;
+import android.os.Parcel;
+import android.os.RemoteException;
+import android.os.ServiceManager;
+import android.view.Display;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+import androidx.preference.TwoStatePreference;
+
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.flags.Flags;
+import com.android.settingslib.development.DeveloperOptionsPreferenceController;
+
+/**
+ * Controller class for controlling the hdr/sdr ratio on SurfaceFlinger
+ */
+public class ShowHdrSdrRatioPreferenceController extends DeveloperOptionsPreferenceController
+        implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin {
+
+    private static final String SHOW_REFRESH_RATE_KEY = "show_hdr_sdr_ratio";
+
+    private static final int SETTING_VALUE_QUERY = 2;
+    private static final int SETTING_VALUE_ON = 1;
+    private static final int SETTING_VALUE_OFF = 0;
+
+    private static final String SURFACE_FLINGER_SERVICE_KEY = "SurfaceFlinger";
+
+    private static final int SURFACE_FLINGER_CODE = 1043;
+
+    private static final String SURFACE_COMPOSER_INTERFACE_KEY = "android.ui.ISurfaceComposer";
+
+    private final IBinder mSurfaceFlinger;
+
+    private final boolean mIsHdrSdrRatioAvailable;
+
+    public ShowHdrSdrRatioPreferenceController(Context context) {
+        super(context);
+        mSurfaceFlinger = ServiceManager.getService(SURFACE_FLINGER_SERVICE_KEY);
+        DisplayManager displayManager = context.getSystemService(DisplayManager.class);
+        Display display = displayManager.getDisplay(Display.DEFAULT_DISPLAY);
+        mIsHdrSdrRatioAvailable = display != null && display.isHdrSdrRatioAvailable();
+    }
+
+    @VisibleForTesting
+    ShowHdrSdrRatioPreferenceController(Context context, IBinder surfaceFlinger,
+                                        boolean isHdrSdrRatioAvailable) {
+        super(context);
+        mSurfaceFlinger = surfaceFlinger;
+        mIsHdrSdrRatioAvailable = isHdrSdrRatioAvailable;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return SHOW_REFRESH_RATE_KEY;
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        final boolean isEnabled = (Boolean) newValue;
+        writeShowHdrSdrRatioSetting(isEnabled);
+        return true;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        super.updateState(preference);
+        updateShowHdrSdrRatioSetting();
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return Flags.developmentHdrSdrRatio() && mIsHdrSdrRatioAvailable;
+    }
+
+    @Override
+    protected void onDeveloperOptionsSwitchDisabled() {
+        super.onDeveloperOptionsSwitchDisabled();
+        final TwoStatePreference preference = (TwoStatePreference) mPreference;
+        if (preference.isChecked()) {
+            // Writing false to the preference when the setting is already off will have a
+            // side effect of turning on the preference that we wish to avoid
+            writeShowHdrSdrRatioSetting(false);
+            preference.setChecked(false);
+        }
+    }
+
+    private void updateShowHdrSdrRatioSetting() {
+        // magic communication with surface flinger.
+        try {
+            if (mSurfaceFlinger != null) {
+                final Parcel data = Parcel.obtain();
+                final Parcel reply = Parcel.obtain();
+                data.writeInterfaceToken(SURFACE_COMPOSER_INTERFACE_KEY);
+                data.writeInt(SETTING_VALUE_QUERY);
+                mSurfaceFlinger.transact(SURFACE_FLINGER_CODE, data, reply, 0 /* flags */);
+                final boolean enabled = reply.readBoolean();
+                ((TwoStatePreference) mPreference).setChecked(enabled);
+                reply.recycle();
+                data.recycle();
+            }
+        } catch (RemoteException ex) {
+            // intentional no-op
+        }
+    }
+
+    @VisibleForTesting
+    void writeShowHdrSdrRatioSetting(boolean isEnabled) {
+        try {
+            if (mSurfaceFlinger != null) {
+                final Parcel data = Parcel.obtain();
+                data.writeInterfaceToken(SURFACE_COMPOSER_INTERFACE_KEY);
+                final int showHdrSdrRatio = isEnabled ? SETTING_VALUE_ON : SETTING_VALUE_OFF;
+                data.writeInt(showHdrSdrRatio);
+                mSurfaceFlinger.transact(SURFACE_FLINGER_CODE, data,
+                        null /* reply */, 0 /* flags */);
+                data.recycle();
+            }
+        } catch (RemoteException ex) {
+            // intentional no-op
+        }
+        updateShowHdrSdrRatioSetting();
+    }
+}
diff --git a/src/com/android/settings/development/ShowKeyPressesPreferenceController.java b/src/com/android/settings/development/ShowKeyPressesPreferenceController.java
index 247f59a..e8faec5 100644
--- a/src/com/android/settings/development/ShowKeyPressesPreferenceController.java
+++ b/src/com/android/settings/development/ShowKeyPressesPreferenceController.java
@@ -21,7 +21,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -59,7 +59,7 @@
     public void updateState(Preference preference) {
         int showKeyPresses = Settings.System.getInt(mContext.getContentResolver(),
                 Settings.System.SHOW_KEY_PRESSES, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(showKeyPresses != SETTING_VALUE_OFF);
+        ((TwoStatePreference) mPreference).setChecked(showKeyPresses != SETTING_VALUE_OFF);
     }
 
     @Override
@@ -67,6 +67,6 @@
         super.onDeveloperOptionsSwitchDisabled();
         Settings.System.putInt(mContext.getContentResolver(), Settings.System.SHOW_KEY_PRESSES,
                 SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 }
diff --git a/src/com/android/settings/development/ShowLayoutBoundsPreferenceController.java b/src/com/android/settings/development/ShowLayoutBoundsPreferenceController.java
index f78a297..f439874 100644
--- a/src/com/android/settings/development/ShowLayoutBoundsPreferenceController.java
+++ b/src/com/android/settings/development/ShowLayoutBoundsPreferenceController.java
@@ -20,7 +20,7 @@
 import android.sysprop.DisplayProperties;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -51,13 +51,13 @@
     @Override
     public void updateState(Preference preference) {
         final boolean isEnabled = DisplayProperties.debug_layout().orElse(false);
-        ((SwitchPreference) mPreference).setChecked(isEnabled);
+        ((TwoStatePreference) mPreference).setChecked(isEnabled);
     }
 
     @Override
     protected void onDeveloperOptionsSwitchDisabled() {
         super.onDeveloperOptionsSwitchDisabled();
         DisplayProperties.debug_layout(false);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 }
diff --git a/src/com/android/settings/development/ShowRefreshRatePreferenceController.java b/src/com/android/settings/development/ShowRefreshRatePreferenceController.java
index e56268d..4d52252 100644
--- a/src/com/android/settings/development/ShowRefreshRatePreferenceController.java
+++ b/src/com/android/settings/development/ShowRefreshRatePreferenceController.java
@@ -24,7 +24,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -75,7 +75,7 @@
     @Override
     protected void onDeveloperOptionsSwitchDisabled() {
         super.onDeveloperOptionsSwitchDisabled();
-        final SwitchPreference preference = (SwitchPreference) mPreference;
+        final TwoStatePreference preference = (TwoStatePreference) mPreference;
         if (preference.isChecked()) {
             // Writing false to the preference when the setting is already off will have a
             // side effect of turning on the preference that we wish to avoid
@@ -95,7 +95,7 @@
                 data.writeInt(SETTING_VALUE_QUERY);
                 mSurfaceFlinger.transact(SURFACE_FLINGER_CODE, data, reply, 0 /* flags */);
                 final boolean enabled = reply.readBoolean();
-                ((SwitchPreference) mPreference).setChecked(enabled);
+                ((TwoStatePreference) mPreference).setChecked(enabled);
                 reply.recycle();
                 data.recycle();
             }
diff --git a/src/com/android/settings/development/ShowSurfaceUpdatesPreferenceController.java b/src/com/android/settings/development/ShowSurfaceUpdatesPreferenceController.java
index 5dadb6f..359bb80 100644
--- a/src/com/android/settings/development/ShowSurfaceUpdatesPreferenceController.java
+++ b/src/com/android/settings/development/ShowSurfaceUpdatesPreferenceController.java
@@ -24,7 +24,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -72,7 +72,7 @@
     @Override
     protected void onDeveloperOptionsSwitchDisabled() {
         super.onDeveloperOptionsSwitchDisabled();
-        final SwitchPreference preference = (SwitchPreference) mPreference;
+        final TwoStatePreference preference = (TwoStatePreference) mPreference;
         if (preference.isChecked()) {
             // Writing false to the preference when the setting is already off will have a
             // side effect of turning on the preference that we wish to avoid
@@ -93,7 +93,7 @@
                 @SuppressWarnings("unused") final int showCpu = reply.readInt();
                 @SuppressWarnings("unused") final int enableGL = reply.readInt();
                 final int showUpdates = reply.readInt();
-                ((SwitchPreference) mPreference).setChecked(showUpdates != SETTING_VALUE_OFF);
+                ((TwoStatePreference) mPreference).setChecked(showUpdates != SETTING_VALUE_OFF);
                 reply.recycle();
                 data.recycle();
             }
diff --git a/src/com/android/settings/development/ShowTapsPreferenceController.java b/src/com/android/settings/development/ShowTapsPreferenceController.java
index 25d421d..e469a8c 100644
--- a/src/com/android/settings/development/ShowTapsPreferenceController.java
+++ b/src/com/android/settings/development/ShowTapsPreferenceController.java
@@ -21,7 +21,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -57,7 +57,7 @@
     public void updateState(Preference preference) {
         int showTapsMode = Settings.System.getInt(mContext.getContentResolver(),
                 Settings.System.SHOW_TOUCHES, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(showTapsMode != SETTING_VALUE_OFF);
+        ((TwoStatePreference) mPreference).setChecked(showTapsMode != SETTING_VALUE_OFF);
     }
 
     @Override
@@ -65,6 +65,6 @@
         super.onDeveloperOptionsSwitchDisabled();
         Settings.System.putInt(mContext.getContentResolver(), Settings.System.SHOW_TOUCHES,
                 SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 }
diff --git a/src/com/android/settings/development/StrictModePreferenceController.java b/src/com/android/settings/development/StrictModePreferenceController.java
index c28e476..047c8ec 100644
--- a/src/com/android/settings/development/StrictModePreferenceController.java
+++ b/src/com/android/settings/development/StrictModePreferenceController.java
@@ -25,7 +25,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -64,14 +64,14 @@
 
     @Override
     public void updateState(Preference preference) {
-        ((SwitchPreference) mPreference).setChecked(isStrictModeEnabled());
+        ((TwoStatePreference) mPreference).setChecked(isStrictModeEnabled());
     }
 
     @Override
     protected void onDeveloperOptionsSwitchDisabled() {
         super.onDeveloperOptionsSwitchDisabled();
         writeStrictModeVisualOptions(false);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 
     private boolean isStrictModeEnabled() {
diff --git a/src/com/android/settings/development/StylusHandwritingPreferenceController.java b/src/com/android/settings/development/StylusHandwritingPreferenceController.java
index 12cd781..7a95144 100644
--- a/src/com/android/settings/development/StylusHandwritingPreferenceController.java
+++ b/src/com/android/settings/development/StylusHandwritingPreferenceController.java
@@ -20,7 +20,7 @@
 import android.provider.Settings;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -57,7 +57,7 @@
         final int enable = Settings.Secure.getInt(mContext.getContentResolver(),
                 Settings.Secure.STYLUS_HANDWRITING_ENABLED,
                 Settings.Secure.STYLUS_HANDWRITING_DEFAULT_VALUE);
-        ((SwitchPreference) mPreference).setChecked(enable != SETTING_VALUE_OFF);
+        ((TwoStatePreference) mPreference).setChecked(enable != SETTING_VALUE_OFF);
     }
 
     @Override
@@ -66,6 +66,6 @@
         Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.STYLUS_HANDWRITING_ENABLED,
                 Settings.Secure.STYLUS_HANDWRITING_DEFAULT_VALUE);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 }
diff --git a/src/com/android/settings/development/SystemSettingSwitchPreferenceController.java b/src/com/android/settings/development/SystemSettingSwitchPreferenceController.java
index 476cf50..c7b532a 100644
--- a/src/com/android/settings/development/SystemSettingSwitchPreferenceController.java
+++ b/src/com/android/settings/development/SystemSettingSwitchPreferenceController.java
@@ -20,7 +20,7 @@
 import android.provider.Settings;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -54,13 +54,13 @@
     public void updateState(Preference preference) {
         final int mode = Settings.System.getInt(
             mContext.getContentResolver(), mSettingsKey, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(mode != SETTING_VALUE_OFF);
+        ((TwoStatePreference) mPreference).setChecked(mode != SETTING_VALUE_OFF);
     }
 
     @Override
     protected void onDeveloperOptionsSwitchDisabled() {
         super.onDeveloperOptionsSwitchDisabled();
         Settings.System.putInt(mContext.getContentResolver(), mSettingsKey, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 }
diff --git a/src/com/android/settings/development/TetheringHardwareAccelPreferenceController.java b/src/com/android/settings/development/TetheringHardwareAccelPreferenceController.java
index f838a76..8fe6198 100644
--- a/src/com/android/settings/development/TetheringHardwareAccelPreferenceController.java
+++ b/src/com/android/settings/development/TetheringHardwareAccelPreferenceController.java
@@ -21,7 +21,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -61,7 +61,7 @@
         final int tetheringMode = Settings.Global.getInt(
                 mContext.getContentResolver(),
                 Settings.Global.TETHER_OFFLOAD_DISABLED, 0 /* default */);
-        ((SwitchPreference) mPreference).setChecked(tetheringMode != SETTING_VALUE_OFF);
+        ((TwoStatePreference) mPreference).setChecked(tetheringMode != SETTING_VALUE_OFF);
     }
 
     @Override
@@ -69,6 +69,6 @@
         super.onDeveloperOptionsSwitchDisabled();
         Settings.Global.putInt(mContext.getContentResolver(),
                 Settings.Global.TETHER_OFFLOAD_DISABLED, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 }
diff --git a/src/com/android/settings/development/TransparentNavigationBarPreferenceController.java b/src/com/android/settings/development/TransparentNavigationBarPreferenceController.java
index d1f54b5..16e72db 100644
--- a/src/com/android/settings/development/TransparentNavigationBarPreferenceController.java
+++ b/src/com/android/settings/development/TransparentNavigationBarPreferenceController.java
@@ -24,7 +24,7 @@
 import android.os.ServiceManager;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.internal.R;
 import com.android.internal.annotations.VisibleForTesting;
@@ -62,13 +62,13 @@
 
     @Override
     public void updateState(Preference preference) {
-        ((SwitchPreference) mPreference).setChecked(isEnabled());
+        ((TwoStatePreference) mPreference).setChecked(isEnabled());
     }
 
     @Override
     protected void onDeveloperOptionsSwitchDisabled() {
         super.onDeveloperOptionsSwitchDisabled();
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
         final boolean enabled = isEnabled();
         if (!enabled) {
             setEnabled(false);
diff --git a/src/com/android/settings/development/UsbAudioRoutingPreferenceController.java b/src/com/android/settings/development/UsbAudioRoutingPreferenceController.java
index e130b2b..27a08a8 100644
--- a/src/com/android/settings/development/UsbAudioRoutingPreferenceController.java
+++ b/src/com/android/settings/development/UsbAudioRoutingPreferenceController.java
@@ -25,7 +25,7 @@
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.RestrictedSwitchPreference;
@@ -81,7 +81,7 @@
         super.onDeveloperOptionsSwitchDisabled();
         Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.USB_AUDIO_AUTOMATIC_ROUTING_DISABLED, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 
     @Override
diff --git a/src/com/android/settings/development/WaitForDebuggerPreferenceController.java b/src/com/android/settings/development/WaitForDebuggerPreferenceController.java
index 80cb225..bb3b3e5 100644
--- a/src/com/android/settings/development/WaitForDebuggerPreferenceController.java
+++ b/src/com/android/settings/development/WaitForDebuggerPreferenceController.java
@@ -29,7 +29,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -79,7 +79,7 @@
     }
 
     private void updateState(Preference preference, String debugApp) {
-        final SwitchPreference switchPreference = (SwitchPreference) preference;
+        final TwoStatePreference switchPreference = (TwoStatePreference) preference;
         final boolean debuggerEnabled = Settings.Global.getInt(mContext.getContentResolver(),
             Settings.Global.WAIT_FOR_DEBUGGER, SETTING_VALUE_OFF) != SETTING_VALUE_OFF;
         writeDebuggerAppOptions(debugApp, debuggerEnabled, true /* persistent */);
@@ -92,7 +92,7 @@
         super.onDeveloperOptionsSwitchDisabled();
         writeDebuggerAppOptions(null /* package name */,
                 false /* waitForDebugger */, false /* persistent */);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 
     @VisibleForTesting
diff --git a/src/com/android/settings/development/WifiDisplayCertificationPreferenceController.java b/src/com/android/settings/development/WifiDisplayCertificationPreferenceController.java
index 0236f15..ed1bb6e 100644
--- a/src/com/android/settings/development/WifiDisplayCertificationPreferenceController.java
+++ b/src/com/android/settings/development/WifiDisplayCertificationPreferenceController.java
@@ -21,7 +21,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -60,7 +60,7 @@
         final int wifiDisplayCertificationMode = Settings.Global.getInt(
                 mContext.getContentResolver(), Settings.Global.WIFI_DISPLAY_CERTIFICATION_ON,
                 SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(
+        ((TwoStatePreference) mPreference).setChecked(
             wifiDisplayCertificationMode != SETTING_VALUE_OFF);
     }
 
@@ -69,6 +69,6 @@
         super.onDeveloperOptionsSwitchDisabled();
         Settings.Global.putInt(mContext.getContentResolver(),
                 Settings.Global.WIFI_DISPLAY_CERTIFICATION_ON, SETTING_VALUE_OFF);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 }
diff --git a/src/com/android/settings/development/WifiNonPersistentMacRandomizationPreferenceController.java b/src/com/android/settings/development/WifiNonPersistentMacRandomizationPreferenceController.java
index 3f6d775..a4dcda4 100644
--- a/src/com/android/settings/development/WifiNonPersistentMacRandomizationPreferenceController.java
+++ b/src/com/android/settings/development/WifiNonPersistentMacRandomizationPreferenceController.java
@@ -20,7 +20,7 @@
 import android.provider.Settings;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -60,7 +60,7 @@
                 NON_PERSISTENT_MAC_RANDOMIZATION_FEATURE_FLAG, 0) == 1) {
             enabled = true;
         }
-        ((SwitchPreference) mPreference).setChecked(enabled);
+        ((TwoStatePreference) mPreference).setChecked(enabled);
     }
 
     @Override
@@ -68,6 +68,6 @@
         super.onDeveloperOptionsSwitchDisabled();
         Settings.Global.putInt(mContext.getContentResolver(),
                 NON_PERSISTENT_MAC_RANDOMIZATION_FEATURE_FLAG, 0);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 }
diff --git a/src/com/android/settings/development/WifiScanThrottlingPreferenceController.java b/src/com/android/settings/development/WifiScanThrottlingPreferenceController.java
index 2632691..0adbbfd 100644
--- a/src/com/android/settings/development/WifiScanThrottlingPreferenceController.java
+++ b/src/com/android/settings/development/WifiScanThrottlingPreferenceController.java
@@ -20,7 +20,7 @@
 import android.net.wifi.WifiManager;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -50,13 +50,13 @@
 
     @Override
     public void updateState(Preference preference) {
-        ((SwitchPreference) mPreference).setChecked(mWifiManager.isScanThrottleEnabled());
+        ((TwoStatePreference) mPreference).setChecked(mWifiManager.isScanThrottleEnabled());
     }
 
     @Override
     protected void onDeveloperOptionsSwitchDisabled() {
         super.onDeveloperOptionsSwitchDisabled();
         mWifiManager.setScanThrottleEnabled(true);
-        ((SwitchPreference) mPreference).setChecked(true);
+        ((TwoStatePreference) mPreference).setChecked(true);
     }
 }
diff --git a/src/com/android/settings/development/WifiVerboseLoggingPreferenceController.java b/src/com/android/settings/development/WifiVerboseLoggingPreferenceController.java
index 92ed65d..9ee5193 100644
--- a/src/com/android/settings/development/WifiVerboseLoggingPreferenceController.java
+++ b/src/com/android/settings/development/WifiVerboseLoggingPreferenceController.java
@@ -21,7 +21,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -59,7 +59,7 @@
     @Override
     public void updateState(Preference preference) {
         final boolean enabled = mWifiManager.isVerboseLoggingEnabled();
-        ((SwitchPreference) mPreference).setChecked(enabled);
+        ((TwoStatePreference) mPreference).setChecked(enabled);
 
     }
 
@@ -67,6 +67,6 @@
     protected void onDeveloperOptionsSwitchDisabled() {
         super.onDeveloperOptionsSwitchDisabled();
         mWifiManager.setVerboseLoggingEnabled(false);
-        ((SwitchPreference) mPreference).setChecked(false);
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 }
diff --git a/src/com/android/settings/development/bluetooth/BluetoothHDAudioPreferenceController.java b/src/com/android/settings/development/bluetooth/BluetoothHDAudioPreferenceController.java
index 8092194..feaa36e 100644
--- a/src/com/android/settings/development/bluetooth/BluetoothHDAudioPreferenceController.java
+++ b/src/com/android/settings/development/bluetooth/BluetoothHDAudioPreferenceController.java
@@ -22,7 +22,7 @@
 import android.util.Log;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.development.BluetoothA2dpConfigStore;
 import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -64,7 +64,7 @@
         if (supported) {
             final boolean isEnabled = bluetoothA2dp.isOptionalCodecsEnabled(activeDevice)
                     == BluetoothA2dp.OPTIONAL_CODECS_PREF_ENABLED;
-            ((SwitchPreference) mPreference).setChecked(isEnabled);
+            ((TwoStatePreference) mPreference).setChecked(isEnabled);
         }
     }
 
diff --git a/src/com/android/settings/development/compat/PlatformCompatDashboard.java b/src/com/android/settings/development/compat/PlatformCompatDashboard.java
index 3f0ffc7..05159c7 100644
--- a/src/com/android/settings/development/compat/PlatformCompatDashboard.java
+++ b/src/com/android/settings/development/compat/PlatformCompatDashboard.java
@@ -33,7 +33,8 @@
 import androidx.preference.Preference;
 import androidx.preference.Preference.OnPreferenceChangeListener;
 import androidx.preference.PreferenceCategory;
-import androidx.preference.SwitchPreference;
+import androidx.preference.SwitchPreferenceCompat;
+import androidx.preference.TwoStatePreference;
 
 import com.android.internal.compat.CompatibilityChangeConfig;
 import com.android.internal.compat.CompatibilityChangeInfo;
@@ -171,7 +172,7 @@
     Preference createPreferenceForChange(Context context, CompatibilityChangeInfo change,
             CompatibilityChangeConfig configMappings) {
         final boolean currentValue = configMappings.isChangeEnabled(change.getId());
-        final SwitchPreference item = new SwitchPreference(context);
+        final TwoStatePreference item = new SwitchPreferenceCompat(context);
         final String changeName =
                 change.getName() != null ? change.getName() : "Change_" + change.getId();
         item.setSummary(changeName);
diff --git a/src/com/android/settings/development/featureflags/FeatureFlagPreference.java b/src/com/android/settings/development/featureflags/FeatureFlagPreference.java
index d6bdb77..baac047 100644
--- a/src/com/android/settings/development/featureflags/FeatureFlagPreference.java
+++ b/src/com/android/settings/development/featureflags/FeatureFlagPreference.java
@@ -19,9 +19,9 @@
 import android.content.Context;
 import android.util.FeatureFlagUtils;
 
-import androidx.preference.SwitchPreference;
+import androidx.preference.SwitchPreferenceCompat;
 
-public class FeatureFlagPreference extends SwitchPreference {
+public class FeatureFlagPreference extends SwitchPreferenceCompat {
 
     private final String mKey;
     private final boolean mIsPersistent;
diff --git a/src/com/android/settings/development/graphicsdriver/GraphicsDriverEnableAngleAsSystemDriverController.java b/src/com/android/settings/development/graphicsdriver/GraphicsDriverEnableAngleAsSystemDriverController.java
index 95cf64c..e75ab1a 100644
--- a/src/com/android/settings/development/graphicsdriver/GraphicsDriverEnableAngleAsSystemDriverController.java
+++ b/src/com/android/settings/development/graphicsdriver/GraphicsDriverEnableAngleAsSystemDriverController.java
@@ -25,7 +25,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.core.PreferenceControllerMixin;
@@ -52,9 +52,6 @@
     private boolean mShouldToggleSwitchBackOnRebootDialogDismiss;
 
     @VisibleForTesting
-    static final String PROPERTY_RO_GFX_ANGLE_SUPPORTED = "ro.gfx.angle.supported";
-
-    @VisibleForTesting
     static final String PROPERTY_PERSISTENT_GRAPHICS_EGL = "persist.graphics.egl";
 
     @VisibleForTesting
@@ -97,11 +94,6 @@
         return mSystemProperties.getBoolean(PROPERTY_DEBUG_ANGLE_DEVELOPER_OPTION, false);
     }
 
-    private boolean isAngleSupported() {
-        return TextUtils.equals(
-                        mSystemProperties.get(PROPERTY_RO_GFX_ANGLE_SUPPORTED, ""), "true");
-    }
-
     @VisibleForTesting
     GraphicsDriverEnableAngleAsSystemDriverController(
             Context context, DevelopmentSettingsDashboardFragment fragment, Injector injector) {
@@ -145,10 +137,6 @@
 
     /** Return the default value of "persist.graphics.egl" */
     public boolean isDefaultValue() {
-        if (!isAngleSupported()) {
-            return true;
-        }
-
         final String currentGlesDriver =
                 mSystemProperties.get(PROPERTY_PERSISTENT_GRAPHICS_EGL, "");
         // default value of "persist.graphics.egl" is ""
@@ -158,21 +146,16 @@
     @Override
     public void updateState(Preference preference) {
         super.updateState(preference);
-        if (isAngleSupported()) {
-            // set switch on if "persist.graphics.egl" is "angle" and angle is built in /vendor
-            // set switch off otherwise.
-            final String currentGlesDriver =
-                    mSystemProperties.get(PROPERTY_PERSISTENT_GRAPHICS_EGL, "");
-            final boolean isAngle = TextUtils.equals(ANGLE_DRIVER_SUFFIX, currentGlesDriver);
-            ((SwitchPreference) mPreference).setChecked(isAngle);
-        } else {
-            mPreference.setEnabled(false);
-            ((SwitchPreference) mPreference).setChecked(false);
-        }
+        // set switch on if "persist.graphics.egl" is "angle".
+        final String currentGlesDriver =
+                mSystemProperties.get(PROPERTY_PERSISTENT_GRAPHICS_EGL, "");
+        final boolean isAngle = TextUtils.equals(ANGLE_DRIVER_SUFFIX, currentGlesDriver);
+        ((TwoStatePreference) mPreference).setChecked(isAngle);
 
-        // Regardless of whether ANGLE is enabled, disable the developer option UI
-        // as long as UI is not enabled via debug property.
-        if (!isAngleDeveloperOptionEnabled()) {
+        // Disable the developer option toggle UI if ANGLE is disabled, this means next time the
+        // debug property needs to be set to true again to enable ANGLE. If ANGLE is enabled, don't
+        // disable the developer option toggle UI so that it can be turned off easily.
+        if (!isAngleDeveloperOptionEnabled() && !((TwoStatePreference) mPreference).isChecked()) {
             mPreference.setEnabled(false);
         }
     }
@@ -181,12 +164,10 @@
     protected void onDeveloperOptionsSwitchDisabled() {
         // 1) disable the switch
         super.onDeveloperOptionsSwitchDisabled();
-        if (isAngleSupported()) {
-            // 2) set the persist.graphics.egl empty string
-            GraphicsEnvironment.getInstance().toggleAngleAsSystemDriver(false);
-            // 3) reset the switch
-            ((SwitchPreference) mPreference).setChecked(false);
-        }
+        // 2) set the persist.graphics.egl empty string
+        GraphicsEnvironment.getInstance().toggleAngleAsSystemDriver(false);
+        // 3) reset the switch
+        ((TwoStatePreference) mPreference).setChecked(false);
     }
 
     void toggleSwitchBack() {
@@ -196,7 +177,7 @@
             // if persist.graphics.egl = "angle", set the property value back to ""
             GraphicsEnvironment.getInstance().toggleAngleAsSystemDriver(false);
             // toggle switch off
-            ((SwitchPreference) mPreference).setChecked(false);
+            ((TwoStatePreference) mPreference).setChecked(false);
             return;
         }
 
@@ -204,7 +185,7 @@
             // if persist.graphicx.egl = "", set the persist.graphics.egl back to "angle"
             GraphicsEnvironment.getInstance().toggleAngleAsSystemDriver(true);
             // toggle switch on
-            ((SwitchPreference) mPreference).setChecked(true);
+            ((TwoStatePreference) mPreference).setChecked(true);
             return;
         }
 
diff --git a/src/com/android/settings/development/graphicsdriver/GraphicsDriverGlobalSwitchBarController.java b/src/com/android/settings/development/graphicsdriver/GraphicsDriverGlobalSwitchBarController.java
index b1faefa..79a28a5 100644
--- a/src/com/android/settings/development/graphicsdriver/GraphicsDriverGlobalSwitchBarController.java
+++ b/src/com/android/settings/development/graphicsdriver/GraphicsDriverGlobalSwitchBarController.java
@@ -43,16 +43,13 @@
                    GraphicsDriverContentObserver.OnGraphicsDriverContentChangedListener,
                    LifecycleObserver, OnStart, OnStop {
 
-    private final Context mContext;
     private final ContentResolver mContentResolver;
-    @VisibleForTesting
-    SwitchWidgetController mSwitchWidgetController;
+    private final SwitchWidgetController mSwitchWidgetController;
     @VisibleForTesting
     GraphicsDriverContentObserver mGraphicsDriverContentObserver;
 
     GraphicsDriverGlobalSwitchBarController(
             Context context, SwitchWidgetController switchWidgetController) {
-        mContext = context;
         mContentResolver = context.getContentResolver();
         mGraphicsDriverContentObserver =
                 new GraphicsDriverContentObserver(new Handler(Looper.getMainLooper()), this);
diff --git a/src/com/android/settings/development/qstile/DevelopmentTilePreferenceController.java b/src/com/android/settings/development/qstile/DevelopmentTilePreferenceController.java
index d713ff3..7fc9d9e 100644
--- a/src/com/android/settings/development/qstile/DevelopmentTilePreferenceController.java
+++ b/src/com/android/settings/development/qstile/DevelopmentTilePreferenceController.java
@@ -31,7 +31,8 @@
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.SwitchPreferenceCompat;
+import androidx.preference.TwoStatePreference;
 
 import com.android.internal.statusbar.IStatusBarService;
 import com.android.settings.core.BasePreferenceController;
@@ -82,7 +83,7 @@
                     || ((enabledSetting == PackageManager.COMPONENT_ENABLED_STATE_DEFAULT)
                     && sInfo.enabled);
 
-            SwitchPreference preference = new SwitchPreference(context);
+            TwoStatePreference preference = new SwitchPreferenceCompat(context);
             preference.setTitle(sInfo.loadLabel(mPackageManager));
             preference.setIcon(sInfo.icon);
             preference.setKey(sInfo.name);
diff --git a/src/com/android/settings/development/snooplogger/SnoopLoggerFiltersPreference.java b/src/com/android/settings/development/snooplogger/SnoopLoggerFiltersPreference.java
index f0c9ff4..7462e0d 100644
--- a/src/com/android/settings/development/snooplogger/SnoopLoggerFiltersPreference.java
+++ b/src/com/android/settings/development/snooplogger/SnoopLoggerFiltersPreference.java
@@ -19,12 +19,12 @@
 import android.content.Context;
 import android.os.SystemProperties;
 
-import androidx.preference.SwitchPreference;
+import androidx.preference.SwitchPreferenceCompat;
 
 /**
  * Bluetooth Snoop Logger Filters Preference
  */
-public class SnoopLoggerFiltersPreference extends SwitchPreference {
+public class SnoopLoggerFiltersPreference extends SwitchPreferenceCompat {
 
     private final String mKey;
     private static final String TAG = "SnoopLoggerFiltersPreference";
diff --git a/src/com/android/settings/development/tare/TareHomePage.java b/src/com/android/settings/development/tare/TareHomePage.java
index cfe8d5e..0eb93fc 100644
--- a/src/com/android/settings/development/tare/TareHomePage.java
+++ b/src/com/android/settings/development/tare/TareHomePage.java
@@ -35,7 +35,6 @@
 import android.widget.Button;
 import android.widget.CompoundButton;
 import android.widget.CompoundButton.OnCheckedChangeListener;
-import android.widget.Switch;
 import android.widget.TextView;
 import android.widget.Toast;
 
@@ -45,7 +44,7 @@
 public class TareHomePage extends Activity {
     private static final String TAG = "TareHomePage";
 
-    private Switch mOnSwitch;
+    private CompoundButton mOnSwitch;
     private Button mRevButton;
     private TextView mAlarmManagerView;
     private TextView mJobSchedulerView;
diff --git a/src/com/android/settings/development/widevine/ForceL3FallbackPreferenceController.java b/src/com/android/settings/development/widevine/ForceL3FallbackPreferenceController.java
new file mode 100644
index 0000000..78468c1
--- /dev/null
+++ b/src/com/android/settings/development/widevine/ForceL3FallbackPreferenceController.java
@@ -0,0 +1,80 @@
+/*
+* 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.development.widevine;
+
+import android.content.Context;
+import android.sysprop.WidevineProperties;
+import android.util.Log;
+
+import androidx.preference.Preference;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.R;
+import com.android.settings.core.TogglePreferenceController;
+import com.android.settingslib.development.DevelopmentSettingsEnabler;
+import com.android.settings.media_drm.Flags;
+
+/**
+ * The controller (in the Media Widevine settings) enforces L3 security level
+* of Widevine CDM.
+*/
+public class ForceL3FallbackPreferenceController extends TogglePreferenceController {
+    private static final String TAG = "ForceL3FallbackPreferenceController";
+
+    public ForceL3FallbackPreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @Override
+    public boolean isChecked() {
+        return WidevineProperties.forcel3_enabled().orElse(false);
+    }
+
+    @Override
+    public boolean setChecked(boolean isChecked) {
+        WidevineProperties.forcel3_enabled(isChecked);
+        return true;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        if (Flags.forceL3Enabled()) {
+            preference.setEnabled(true);
+            Log.i(TAG, "forceL3Enabled is on");
+        } else {
+            preference.setEnabled(false);
+            // In case of flag rollback, the controller should be unchecked.
+            WidevineProperties.forcel3_enabled(false);
+            Log.i(TAG, "forceL3Enabled is off");
+        }
+        super.updateState(preference);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        if (DevelopmentSettingsEnabler.isDevelopmentSettingsEnabled(mContext)) {
+            return AVAILABLE;
+        } else {
+            return CONDITIONALLY_UNAVAILABLE;
+        }
+    }
+
+    @Override
+    public int getSliceHighlightMenuRes() {
+        return R.string.menu_key_system;
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/development/widevine/WidevineSettingsFragment.java b/src/com/android/settings/development/widevine/WidevineSettingsFragment.java
new file mode 100644
index 0000000..058aa40
--- /dev/null
+++ b/src/com/android/settings/development/widevine/WidevineSettingsFragment.java
@@ -0,0 +1,58 @@
+/*
+* 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.development.widevine;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+
+import com.android.settings.R;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settingslib.development.DevelopmentSettingsEnabler;
+import com.android.settingslib.search.SearchIndexable;
+
+/**
+ * Fragment for native widevine settings in Developer options.
+*/
+@SearchIndexable
+public class WidevineSettingsFragment extends DashboardFragment {
+    private static final String TAG = "WidevineSettings";
+
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.widevine_settings;
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.WIDEVINE_SETTINGS;
+    }
+
+    public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+        new BaseSearchIndexProvider(R.xml.widevine_settings) {
+
+            @Override
+            protected boolean isPageSearchEnabled(Context context) {
+                return DevelopmentSettingsEnabler.isDevelopmentSettingsEnabled(context);
+            }
+        };
+}
\ No newline at end of file
diff --git a/src/com/android/settings/deviceinfo/StorageCategoryFragment.java b/src/com/android/settings/deviceinfo/StorageCategoryFragment.java
index 52f453d..1280057 100644
--- a/src/com/android/settings/deviceinfo/StorageCategoryFragment.java
+++ b/src/com/android/settings/deviceinfo/StorageCategoryFragment.java
@@ -37,6 +37,7 @@
 import com.android.settings.Utils;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.dashboard.profileselector.ProfileSelectFragment;
+import com.android.settings.dashboard.profileselector.ProfileSelectFragment.ProfileType;
 import com.android.settings.deviceinfo.storage.ManageStoragePreferenceController;
 import com.android.settings.deviceinfo.storage.NonCurrentUserController;
 import com.android.settings.deviceinfo.storage.StorageAsyncLoader;
@@ -85,7 +86,7 @@
 
     private StorageItemPreferenceController mPreferenceController;
     private List<NonCurrentUserController> mNonCurrentUsers;
-    private boolean mIsWorkProfile;
+    private @ProfileType int mProfileType;
     private int mUserId;
     private boolean mIsLoadedFromCache;
     private StorageCacheHelper mStorageCacheHelper;
@@ -163,9 +164,9 @@
         // These member variables are initialized befoer super.onAttach for
         // createPreferenceControllers to work correctly.
         mUserManager = context.getSystemService(UserManager.class);
-        mIsWorkProfile = getArguments().getInt(ProfileSelectFragment.EXTRA_PROFILE)
-                == ProfileSelectFragment.ProfileType.WORK;
-        mUserId = Utils.getCurrentUserId(mUserManager, mIsWorkProfile);
+        mProfileType = getArguments().getInt(ProfileSelectFragment.EXTRA_PROFILE);
+        mUserId = Utils.getCurrentUserIdOfType(mUserManager, mProfileType);
+
         mStorageCacheHelper = new StorageCacheHelper(getContext(), mUserId);
 
         super.onAttach(context);
@@ -229,8 +230,12 @@
 
     @Override
     public int getMetricsCategory() {
-        return mIsWorkProfile ? SettingsEnums.SETTINGS_STORAGE_CATEGORY_WORK :
-                SettingsEnums.SETTINGS_STORAGE_CATEGORY;
+        if (mProfileType == ProfileSelectFragment.ProfileType.WORK) {
+            return SettingsEnums.SETTINGS_STORAGE_CATEGORY_WORK;
+        } else if (mProfileType == ProfileSelectFragment.ProfileType.PRIVATE) {
+            return SettingsEnums.SETTINGS_STORAGE_CATEGORY_PRIVATE;
+        }
+        return SettingsEnums.SETTINGS_STORAGE_CATEGORY;
     }
 
     @Override
@@ -248,11 +253,12 @@
         final List<AbstractPreferenceController> controllers = new ArrayList<>();
         final StorageManager sm = context.getSystemService(StorageManager.class);
         mPreferenceController = new StorageItemPreferenceController(context, this,
-                null /* volume */, new StorageManagerVolumeProvider(sm), mIsWorkProfile);
+                null /* volume */, new StorageManagerVolumeProvider(sm), mProfileType);
         controllers.add(mPreferenceController);
 
-        mNonCurrentUsers = mIsWorkProfile ? EMPTY_LIST :
-                NonCurrentUserController.getNonCurrentUserControllers(context, mUserManager);
+        mNonCurrentUsers = mProfileType == ProfileSelectFragment.ProfileType.PERSONAL
+                ? NonCurrentUserController.getNonCurrentUserControllers(context, mUserManager)
+                : EMPTY_LIST;
         controllers.addAll(mNonCurrentUsers);
         return controllers;
     }
diff --git a/src/com/android/settings/deviceinfo/StorageDashboardFragment.java b/src/com/android/settings/deviceinfo/StorageDashboardFragment.java
index f31f2be..0da3667 100644
--- a/src/com/android/settings/deviceinfo/StorageDashboardFragment.java
+++ b/src/com/android/settings/deviceinfo/StorageDashboardFragment.java
@@ -308,7 +308,6 @@
         // These member variables are initialized befoer super.onAttach for
         // createPreferenceControllers to work correctly.
         mUserManager = context.getSystemService(UserManager.class);
-        mIsWorkProfile = false;
         mUserId = UserHandle.myUserId();
         mStorageCacheHelper = new StorageCacheHelper(getContext(), mUserId);
 
@@ -423,7 +422,7 @@
         final List<AbstractPreferenceController> controllers = new ArrayList<>();
         final StorageManager sm = context.getSystemService(StorageManager.class);
         mPreferenceController = new StorageItemPreferenceController(context, this,
-                null /* volume */, new StorageManagerVolumeProvider(sm), mIsWorkProfile);
+                null /* volume */, new StorageManagerVolumeProvider(sm));
         controllers.add(mPreferenceController);
 
         mNonCurrentUsers = NonCurrentUserController.getNonCurrentUserControllers(context,
@@ -467,8 +466,7 @@
                     final UserManager userManager = context.getSystemService(UserManager.class);
                     final List<AbstractPreferenceController> controllers = new ArrayList<>();
                     controllers.add(new StorageItemPreferenceController(context, null /* host */,
-                            null /* volume */, new StorageManagerVolumeProvider(sm),
-                            false /* isWorkProfile */));
+                            null /* volume */, new StorageManagerVolumeProvider(sm)));
                     controllers.addAll(NonCurrentUserController.getNonCurrentUserControllers(
                             context, userManager));
                     return controllers;
diff --git a/src/com/android/settings/deviceinfo/StorageWizardMigrateConfirm.java b/src/com/android/settings/deviceinfo/StorageWizardMigrateConfirm.java
index ce17418..a6dd732 100644
--- a/src/com/android/settings/deviceinfo/StorageWizardMigrateConfirm.java
+++ b/src/com/android/settings/deviceinfo/StorageWizardMigrateConfirm.java
@@ -30,6 +30,7 @@
 import android.view.View;
 import android.widget.Toast;
 
+import com.android.internal.widget.LockPatternUtils;
 import com.android.settings.R;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.password.ChooseLockSettingsHelper;
@@ -97,10 +98,19 @@
     @Override
     public void onNavigateNext(View view) {
         // Ensure that all users are unlocked so that we can move their data
+        final LockPatternUtils lpu = new LockPatternUtils(this);
         if (StorageManager.isFileEncrypted()) {
             for (UserInfo user : getSystemService(UserManager.class).getUsers()) {
-                if (!StorageManager.isUserKeyUnlocked(user.id)) {
-                    Log.d(TAG, "User " + user.id + " is currently locked; requesting unlock");
+                if (StorageManager.isUserKeyUnlocked(user.id)) {
+                    continue;
+                }
+                if (!lpu.isSecure(user.id)) {
+                    Log.d(TAG, "Unsecured user " + user.id + " is currently locked; attempting "
+                            + "automatic unlock");
+                    lpu.unlockUserKeyIfUnsecured(user.id);
+                } else {
+                    Log.d(TAG, "Secured user " + user.id + " is currently locked; requesting "
+                            + "manual unlock");
                     final CharSequence description = TextUtils.expandTemplate(
                             getText(R.string.storage_wizard_move_unlock), user.name);
                     final ChooseLockSettingsHelper.Builder builder =
diff --git a/src/com/android/settings/deviceinfo/StorageWizardMoveConfirm.java b/src/com/android/settings/deviceinfo/StorageWizardMoveConfirm.java
index da96104..bf16ab0 100644
--- a/src/com/android/settings/deviceinfo/StorageWizardMoveConfirm.java
+++ b/src/com/android/settings/deviceinfo/StorageWizardMoveConfirm.java
@@ -33,6 +33,7 @@
 import android.view.View;
 
 import com.android.internal.util.Preconditions;
+import com.android.internal.widget.LockPatternUtils;
 import com.android.settings.R;
 import com.android.settings.password.ChooseLockSettingsHelper;
 
@@ -79,10 +80,19 @@
     @Override
     public void onNavigateNext(View view) {
         // Ensure that all users are unlocked so that we can move their data
+        final LockPatternUtils lpu = new LockPatternUtils(this);
         if (StorageManager.isFileEncrypted()) {
             for (UserInfo user : getSystemService(UserManager.class).getUsers()) {
-                if (!StorageManager.isUserKeyUnlocked(user.id)) {
-                    Log.d(TAG, "User " + user.id + " is currently locked; requesting unlock");
+                if (StorageManager.isUserKeyUnlocked(user.id)) {
+                    continue;
+                }
+                if (!lpu.isSecure(user.id)) {
+                    Log.d(TAG, "Unsecured user " + user.id + " is currently locked; attempting "
+                            + "automatic unlock");
+                    lpu.unlockUserKeyIfUnsecured(user.id);
+                } else {
+                    Log.d(TAG, "Secured user " + user.id + " is currently locked; requesting "
+                            + "manual unlock");
                     final CharSequence description = TextUtils.expandTemplate(
                             getText(R.string.storage_wizard_move_unlock), user.name);
                     final ChooseLockSettingsHelper.Builder builder =
diff --git a/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceController.java b/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceController.java
index ccae7e9..1955f36 100644
--- a/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceController.java
+++ b/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceController.java
@@ -27,6 +27,7 @@
 import com.android.settings.R;
 import com.android.settings.Utils;
 import com.android.settings.core.BasePreferenceController;
+import com.android.settings.dashboard.profileselector.ProfileSelectFragment.ProfileType;
 import com.android.settings.deviceinfo.storage.StorageCacheHelper;
 import com.android.settingslib.deviceinfo.PrivateStorageInfo;
 import com.android.settingslib.deviceinfo.StorageManagerVolumeProvider;
@@ -62,8 +63,8 @@
 
     @VisibleForTesting
     protected Future refreshSummaryThread(Preference preference) {
-        int userId = Utils.getCurrentUserId(mContext.getSystemService(UserManager.class),
-                /* isWorkProfile */ false);
+        int userId = Utils.getCurrentUserIdOfType(
+                mContext.getSystemService(UserManager.class), ProfileType.PERSONAL);
         final StorageCacheHelper storageCacheHelper = new StorageCacheHelper(mContext, userId);
         long cachedUsedSize = storageCacheHelper.retrieveUsedSize();
         long cachedTotalSize = storageCacheHelper.retrieveCachedSize().totalSize;
diff --git a/src/com/android/settings/deviceinfo/simstatus/SimEidPreferenceController.kt b/src/com/android/settings/deviceinfo/simstatus/SimEidPreferenceController.kt
index 4d1b90b..e0376dc 100644
--- a/src/com/android/settings/deviceinfo/simstatus/SimEidPreferenceController.kt
+++ b/src/com/android/settings/deviceinfo/simstatus/SimEidPreferenceController.kt
@@ -21,16 +21,24 @@
 import android.view.WindowManager
 import android.widget.ImageView
 import android.widget.TextView
+import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.LifecycleOwner
+import androidx.lifecycle.lifecycleScope
+import androidx.lifecycle.repeatOnLifecycle
 import androidx.preference.Preference
 import androidx.preference.PreferenceScreen
 import com.android.settings.R
 import com.android.settings.core.BasePreferenceController
 import com.android.settings.deviceinfo.PhoneNumberUtil
 import com.android.settings.network.SubscriptionUtil
-import com.android.settings.network.telephony.TelephonyPreferenceDialog
+import com.android.settingslib.CustomDialogPreferenceCompat
 import com.android.settingslib.Utils
 import com.android.settingslib.qrcode.QrCodeGenerator
 import com.android.settingslib.spaprivileged.framework.common.userManager
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
 
 /**
  * This is to show a preference regarding EID of SIM card.
@@ -41,7 +49,8 @@
     BasePreferenceController(context, preferenceKey) {
     private var slotSimStatus: SlotSimStatus? = null
     private var eidStatus: EidStatus? = null
-    private lateinit var preference: TelephonyPreferenceDialog
+    private lateinit var preference: CustomDialogPreferenceCompat
+    private var coroutineScope: CoroutineScope? = null
     private lateinit var eid: String
 
     fun init(slotSimStatus: SlotSimStatus?, eidStatus: EidStatus?) {
@@ -49,21 +58,48 @@
         this.eidStatus = eidStatus
     }
 
-    override fun getAvailabilityStatus(): Int {
-        if (!SubscriptionUtil.isSimHardwareVisible(mContext)) return UNSUPPORTED_ON_DEVICE
-        eid = eidStatus?.eid ?: ""
-        val isAvailable = mContext.userManager.isAdminUser &&
-            !Utils.isWifiOnly(mContext) &&
-            eid.isNotEmpty()
-        return if (isAvailable) AVAILABLE else CONDITIONALLY_UNAVAILABLE
-    }
+    /**
+     * Returns available here, if SIM hardware is visible.
+     *
+     * Also check [getIsAvailableAndUpdateEid] for other availability check which retrieved
+     * asynchronously later.
+     */
+    override fun getAvailabilityStatus() =
+        if (SubscriptionUtil.isSimHardwareVisible(mContext)) AVAILABLE else UNSUPPORTED_ON_DEVICE
 
     override fun displayPreference(screen: PreferenceScreen) {
         super.displayPreference(screen)
         preference = screen.findPreference(preferenceKey)!!
-        val title = getTitle()
-        preference.title = title
-        preference.dialogTitle = title
+    }
+
+    override fun onViewCreated(viewLifecycleOwner: LifecycleOwner) {
+        coroutineScope = viewLifecycleOwner.lifecycleScope
+        coroutineScope?.launch {
+            viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
+                update()
+            }
+        }
+    }
+
+    private suspend fun update() {
+        val isAvailable = withContext(Dispatchers.Default) {
+            getIsAvailableAndUpdateEid()
+        }
+        preference.isVisible = isAvailable
+        if (isAvailable) {
+            val title = withContext(Dispatchers.Default) {
+                getTitle()
+            }
+            preference.title = title
+            preference.dialogTitle = title
+            updateDialog()
+        }
+    }
+
+    private fun getIsAvailableAndUpdateEid(): Boolean {
+        if (!mContext.userManager.isAdminUser || Utils.isWifiOnly(mContext)) return false
+        eid = eidStatus?.eid ?: ""
+        return eid.isNotEmpty()
     }
 
     /** Constructs title string. */
@@ -82,13 +118,7 @@
         return mContext.getString(R.string.status_eid)
     }
 
-    override fun updateState(preference: Preference?) {
-        super.updateState(preference)
-
-        updateDialog()
-    }
-
-    private fun updateDialog() {
+    private suspend fun updateDialog() {
         val dialog = preference.dialog ?: return
         dialog.window?.setFlags(
             WindowManager.LayoutParams.FLAG_SECURE,
@@ -106,11 +136,17 @@
     }
 
     override fun handlePreferenceTreeClick(preference: Preference): Boolean {
-        if (preference.key == preferenceKey) {
-            this.preference.setOnShowListener { updateDialog() }
-            return true
+        if (preference.key != preferenceKey) return false
+        this.preference.setOnShowListener {
+            coroutineScope?.launch { updateDialog() }
         }
-        return super.handlePreferenceTreeClick(preference)
+        return true
+    }
+
+    override fun updateNonIndexableKeys(keys: MutableList<String>) {
+        if (!isAvailable() || !getIsAvailableAndUpdateEid()) {
+            keys += preferenceKey
+        }
     }
 
     companion object {
@@ -122,11 +158,13 @@
          * @param eid is the EID string
          * @return a Bitmap of QR code
          */
-        private fun getEidQrCode(eid: String): Bitmap? = try {
-            QrCodeGenerator.encodeQrCode(eid, QR_CODE_SIZE)
-        } catch (exception: Exception) {
-            Log.w(TAG, "Error when creating QR code width $QR_CODE_SIZE", exception)
-            null
+        private suspend fun getEidQrCode(eid: String): Bitmap? = withContext(Dispatchers.Default) {
+            try {
+                QrCodeGenerator.encodeQrCode(contents = eid, size = QR_CODE_SIZE)
+            } catch (exception: Exception) {
+                Log.w(TAG, "Error when creating QR code width $QR_CODE_SIZE", exception)
+                null
+            }
         }
     }
 }
diff --git a/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogFragment.java b/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogFragment.java
index e82d541..f212eea 100644
--- a/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogFragment.java
+++ b/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogFragment.java
@@ -111,10 +111,7 @@
             Log.d(TAG, "Fragment not attached yet.");
             return;
         }
-        setText(viewId, text, true);
-    }
 
-    public void setText(int viewId, CharSequence text, boolean enableCopy) {
         final TextView textView = mRootView.findViewById(viewId);
         if (textView == null) {
             return;
@@ -125,6 +122,5 @@
             text = PhoneNumberUtil.expandByTts(text);
         }
         textView.setText(text);
-        textView.setTextIsSelectable(enableCopy);
     }
 }
diff --git a/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceController.java b/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceController.java
index a57cd5b..fd42417 100644
--- a/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceController.java
@@ -17,11 +17,13 @@
 package com.android.settings.deviceinfo.storage;
 
 import static com.android.settings.dashboard.profileselector.ProfileSelectFragment.PERSONAL_TAB;
+import static com.android.settings.dashboard.profileselector.ProfileSelectFragment.PRIVATE_TAB;
 import static com.android.settings.dashboard.profileselector.ProfileSelectFragment.WORK_TAB;
 
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
+import android.content.pm.UserInfo;
 import android.content.res.TypedArray;
 import android.graphics.drawable.Drawable;
 import android.net.Uri;
@@ -47,6 +49,7 @@
 import com.android.settings.applications.manageapplications.ManageApplications;
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.dashboard.profileselector.ProfileSelectFragment;
 import com.android.settings.deviceinfo.StorageItemPreference;
 import com.android.settings.deviceinfo.storage.StorageUtils.SystemInfoFragment;
 import com.android.settings.overlay.FeatureFactory;
@@ -108,33 +111,33 @@
     private final Fragment mFragment;
     private final MetricsFeatureProvider mMetricsFeatureProvider;
     private final StorageVolumeProvider mSvp;
-    private VolumeInfo mVolume;
+    @Nullable private VolumeInfo mVolume;
     private int mUserId;
     private long mUsedBytes;
     private long mTotalSize;
 
-    private List<StorageItemPreference> mPrivateStorageItemPreferences;
-    private PreferenceScreen mScreen;
+    @Nullable private List<StorageItemPreference> mPrivateStorageItemPreferences;
+    @Nullable private PreferenceScreen mScreen;
     @VisibleForTesting
-    Preference mPublicStoragePreference;
+    @Nullable Preference mPublicStoragePreference;
     @VisibleForTesting
-    StorageItemPreference mImagesPreference;
+    @Nullable StorageItemPreference mImagesPreference;
     @VisibleForTesting
-    StorageItemPreference mVideosPreference;
+    @Nullable StorageItemPreference mVideosPreference;
     @VisibleForTesting
-    StorageItemPreference mAudioPreference;
+    @Nullable StorageItemPreference mAudioPreference;
     @VisibleForTesting
-    StorageItemPreference mAppsPreference;
+    @Nullable StorageItemPreference mAppsPreference;
     @VisibleForTesting
-    StorageItemPreference mGamesPreference;
+    @Nullable StorageItemPreference mGamesPreference;
     @VisibleForTesting
-    StorageItemPreference mDocumentsAndOtherPreference;
+    @Nullable StorageItemPreference mDocumentsAndOtherPreference;
     @VisibleForTesting
-    StorageItemPreference mSystemPreference;
+    @Nullable StorageItemPreference mSystemPreference;
     @VisibleForTesting
-    StorageItemPreference mTrashPreference;
+    @Nullable StorageItemPreference mTrashPreference;
 
-    private boolean mIsWorkProfile;
+    private final int mProfileType;
 
     private StorageCacheHelper mStorageCacheHelper;
     // The mIsDocumentsPrefShown being used here is to prevent a flicker problem from displaying
@@ -142,15 +145,24 @@
     private boolean mIsDocumentsPrefShown;
     private boolean mIsPreferenceOrderedBySize;
 
-    public StorageItemPreferenceController(Context context, Fragment hostFragment,
-            VolumeInfo volume, StorageVolumeProvider svp, boolean isWorkProfile) {
+    public StorageItemPreferenceController(
+            Context context, Fragment hostFragment, VolumeInfo volume, StorageVolumeProvider svp) {
+        this(context, hostFragment, volume, svp, ProfileSelectFragment.ProfileType.PERSONAL);
+    }
+
+    public StorageItemPreferenceController(
+            Context context,
+            Fragment hostFragment,
+            @Nullable VolumeInfo volume,
+            StorageVolumeProvider svp,
+            @ProfileSelectFragment.ProfileType int profileType) {
         super(context);
         mPackageManager = context.getPackageManager();
         mUserManager = context.getSystemService(UserManager.class);
         mFragment = hostFragment;
         mVolume = volume;
         mSvp = svp;
-        mIsWorkProfile = isWorkProfile;
+        mProfileType = profileType;
         mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         mUserId = getCurrentUserId();
         mIsDocumentsPrefShown = isDocumentsPrefShown();
@@ -168,7 +180,7 @@
 
     @VisibleForTesting
     int getCurrentUserId() {
-        return Utils.getCurrentUserId(mUserManager, mIsWorkProfile);
+        return Utils.getCurrentUserIdOfType(mUserManager, mProfileType);
     }
 
     @Override
@@ -229,7 +241,9 @@
         mVolume = volume;
 
         if (mPublicStoragePreference != null) {
-            mPublicStoragePreference.setVisible(isValidPublicVolume() && !mIsWorkProfile);
+            mPublicStoragePreference.setVisible(
+                    isValidPublicVolume()
+                            && mProfileType == ProfileSelectFragment.ProfileType.PERSONAL);
         }
 
         // If isValidPrivateVolume() is true, these preferences will become visible at
@@ -327,9 +341,16 @@
      * Sets the user id for which this preference controller is handling.
      */
     public void setUserId(UserHandle userHandle) {
-        if (mIsWorkProfile && !mUserManager.isManagedProfile(userHandle.getIdentifier())) {
+        if (mProfileType == ProfileSelectFragment.ProfileType.WORK
+                && !mUserManager.isManagedProfile(userHandle.getIdentifier())) {
             throw new IllegalArgumentException("Only accept work profile userHandle");
         }
+
+        UserInfo userInfo = mUserManager.getUserInfo(userHandle.getIdentifier());
+        if (mProfileType == ProfileSelectFragment.ProfileType.PRIVATE
+                && (userInfo == null || userInfo.isPrivateProfile())) {
+            throw new IllegalArgumentException("Only accept private profile userHandle");
+        }
         mUserId = userHandle.getIdentifier();
 
         tintPreference(mPublicStoragePreference);
@@ -498,8 +519,13 @@
 
     private Bundle getWorkAnnotatedBundle(int additionalCapacity) {
         final Bundle args = new Bundle(1 + additionalCapacity);
-        args.putInt(SettingsActivity.EXTRA_SHOW_FRAGMENT_TAB,
-                mIsWorkProfile ? WORK_TAB : PERSONAL_TAB);
+        if (mProfileType == ProfileSelectFragment.ProfileType.WORK) {
+            args.putInt(SettingsActivity.EXTRA_SHOW_FRAGMENT_TAB, WORK_TAB);
+        } else if (mProfileType == ProfileSelectFragment.ProfileType.PRIVATE) {
+            args.putInt(SettingsActivity.EXTRA_SHOW_FRAGMENT_TAB, PRIVATE_TAB);
+        } else {
+            args.putInt(SettingsActivity.EXTRA_SHOW_FRAGMENT_TAB, PERSONAL_TAB);
+        }
         return args;
     }
 
diff --git a/src/com/android/settings/display/AutoBrightnessDetailPreferenceController.java b/src/com/android/settings/display/AutoBrightnessDetailPreferenceController.java
index ec311f4..9bfb2f4 100644
--- a/src/com/android/settings/display/AutoBrightnessDetailPreferenceController.java
+++ b/src/com/android/settings/display/AutoBrightnessDetailPreferenceController.java
@@ -17,18 +17,18 @@
 package com.android.settings.display;
 
 import android.content.Context;
-import android.widget.Switch;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
 
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.widget.SettingsMainSwitchPreference;
-import com.android.settingslib.widget.OnMainSwitchChangeListener;
 
 /**
  * Controller that updates the adaptive brightness.
  */
 public class AutoBrightnessDetailPreferenceController extends
-        AutoBrightnessPreferenceController implements OnMainSwitchChangeListener {
+        AutoBrightnessPreferenceController implements OnCheckedChangeListener {
 
     public AutoBrightnessDetailPreferenceController(Context context, String key) {
         super(context, key);
@@ -58,7 +58,7 @@
     }
 
     @Override
-    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         if (isChecked != isChecked()) {
             setChecked(isChecked);
         }
diff --git a/src/com/android/settings/display/BatteryPercentagePreferenceController.java b/src/com/android/settings/display/BatteryPercentagePreferenceController.java
index 22915ee..a7113b3 100644
--- a/src/com/android/settings/display/BatteryPercentagePreferenceController.java
+++ b/src/com/android/settings/display/BatteryPercentagePreferenceController.java
@@ -23,7 +23,7 @@
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.internal.R;
 import com.android.settings.Utils;
@@ -71,7 +71,7 @@
                 mContext.getResources().getBoolean(
                 R.bool.config_defaultBatteryPercentageSetting) ? 1 : 0);
 
-        ((SwitchPreference) preference).setChecked(setting == 1);
+        ((TwoStatePreference) preference).setChecked(setting == 1);
     }
 
     @Override
diff --git a/src/com/android/settings/display/BrightnessLevelPreferenceController.java b/src/com/android/settings/display/BrightnessLevelPreferenceController.java
index b6a0ca3..ac1a1cb 100644
--- a/src/com/android/settings/display/BrightnessLevelPreferenceController.java
+++ b/src/com/android/settings/display/BrightnessLevelPreferenceController.java
@@ -14,6 +14,7 @@
 package com.android.settings.display;
 
 import static android.content.Intent.ACTION_SHOW_BRIGHTNESS_DIALOG;
+import static android.content.Intent.EXTRA_BRIGHTNESS_DIALOG_IS_FULL_WIDTH;
 
 import static com.android.settingslib.display.BrightnessUtils.GAMMA_SPACE_MAX;
 import static com.android.settingslib.display.BrightnessUtils.GAMMA_SPACE_MIN;
@@ -53,7 +54,6 @@
     private static final String TAG = "BrightnessPrefCtrl";
     private static final String KEY_BRIGHTNESS = "brightness";
     private static final Uri BRIGHTNESS_ADJ_URI;
-
     private final ContentResolver mContentResolver;
     private final Handler mHandler = new Handler(Looper.getMainLooper());
     private final DisplayManager mDisplayManager;
@@ -141,6 +141,7 @@
         final Intent intent = new Intent(ACTION_SHOW_BRIGHTNESS_DIALOG);
         intent.putExtra(SettingsBaseActivity.EXTRA_PAGE_TRANSITION_TYPE,
                 SettingsTransitionHelper.TransitionType.TRANSITION_NONE);
+        intent.putExtra(EXTRA_BRIGHTNESS_DIALOG_IS_FULL_WIDTH, true);
 
         // Start activity in the same task and pass fade animations
         final ActivityOptions options = ActivityOptions.makeCustomAnimation(mContext,
diff --git a/src/com/android/settings/display/CameraGesturePreferenceController.java b/src/com/android/settings/display/CameraGesturePreferenceController.java
index 8e72a55..7d6fd7a 100644
--- a/src/com/android/settings/display/CameraGesturePreferenceController.java
+++ b/src/com/android/settings/display/CameraGesturePreferenceController.java
@@ -20,7 +20,7 @@
 import android.provider.Settings;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.core.AbstractPreferenceController;
@@ -43,7 +43,7 @@
     public void updateState(Preference preference) {
         int value = Settings.Secure.getInt(mContext.getContentResolver(),
                 CAMERA_GESTURE_DISABLED, 0);
-        ((SwitchPreference) preference).setChecked(value == 0);
+        ((TwoStatePreference) preference).setChecked(value == 0);
     }
 
     @Override
diff --git a/src/com/android/settings/display/DeviceStateAutoRotateSettingController.java b/src/com/android/settings/display/DeviceStateAutoRotateSettingController.java
index 69b34b0..e38f5d4 100644
--- a/src/com/android/settings/display/DeviceStateAutoRotateSettingController.java
+++ b/src/com/android/settings/display/DeviceStateAutoRotateSettingController.java
@@ -27,7 +27,8 @@
 import androidx.lifecycle.LifecycleObserver;
 import androidx.lifecycle.OnLifecycleEvent;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.SwitchPreferenceCompat;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.core.TogglePreferenceController;
@@ -42,7 +43,7 @@
 public class DeviceStateAutoRotateSettingController extends TogglePreferenceController implements
         LifecycleObserver {
 
-    private SwitchPreference mPreference;
+    private TwoStatePreference mPreference;
 
     private final DeviceStateRotationLockSettingsManager mAutoRotateSettingsManager;
     private final int mOrder;
@@ -86,7 +87,7 @@
 
     @Override
     public void displayPreference(PreferenceScreen screen) {
-        mPreference = new SwitchPreference(mContext);
+        mPreference = new SwitchPreferenceCompat(mContext);
         mPreference.setTitle(mDeviceStateDescription);
         mPreference.setKey(getPreferenceKey());
         mPreference.setOrder(mOrder);
diff --git a/src/com/android/settings/display/LiftToWakePreferenceController.java b/src/com/android/settings/display/LiftToWakePreferenceController.java
index d12b7c4..4725dc4 100644
--- a/src/com/android/settings/display/LiftToWakePreferenceController.java
+++ b/src/com/android/settings/display/LiftToWakePreferenceController.java
@@ -21,7 +21,7 @@
 import android.provider.Settings;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.core.AbstractPreferenceController;
@@ -56,6 +56,6 @@
     @Override
     public void updateState(Preference preference) {
         int value = Settings.Secure.getInt(mContext.getContentResolver(), WAKE_GESTURE_ENABLED, 0);
-        ((SwitchPreference) preference).setChecked(value != 0);
+        ((TwoStatePreference) preference).setChecked(value != 0);
     }
 }
diff --git a/src/com/android/settings/display/LockscreenClockPreferenceController.java b/src/com/android/settings/display/LockscreenClockPreferenceController.java
index 70ae55e..bf427b2 100644
--- a/src/com/android/settings/display/LockscreenClockPreferenceController.java
+++ b/src/com/android/settings/display/LockscreenClockPreferenceController.java
@@ -37,7 +37,8 @@
 
     @Override
     public boolean isChecked() {
-        return Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1) != 0;
+        return Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY,
+                getDoublelineClockDefault()) != 0;
     }
 
     @Override
@@ -67,4 +68,9 @@
     public int getSliceHighlightMenuRes() {
         return R.string.menu_key_display;
     }
+
+    protected int getDoublelineClockDefault() {
+        return mContext.getResources()
+            .getInteger(com.android.internal.R.integer.config_doublelineClockDefault);
+    }
 }
diff --git a/src/com/android/settings/display/NightDisplayActivationPreferenceController.java b/src/com/android/settings/display/NightDisplayActivationPreferenceController.java
index c94f443..fd6d199 100644
--- a/src/com/android/settings/display/NightDisplayActivationPreferenceController.java
+++ b/src/com/android/settings/display/NightDisplayActivationPreferenceController.java
@@ -19,7 +19,8 @@
 import android.content.Context;
 import android.hardware.display.ColorDisplayManager;
 import android.text.TextUtils;
-import android.widget.Switch;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
@@ -29,13 +30,12 @@
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 import com.android.settingslib.widget.MainSwitchPreference;
-import com.android.settingslib.widget.OnMainSwitchChangeListener;
 
 /**
  * Controller that updates the night display.
  */
 public class NightDisplayActivationPreferenceController extends
-        TogglePreferenceController implements OnMainSwitchChangeListener {
+        TogglePreferenceController implements OnCheckedChangeListener {
 
     private final MetricsFeatureProvider mMetricsFeatureProvider;
     private ColorDisplayManager mColorDisplayManager;
@@ -81,7 +81,7 @@
     }
 
     @Override
-    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         final boolean activated = mColorDisplayManager.isNightDisplayActivated();
         if (isChecked != activated) {
             // TODO(b/179017365): Create a controller which extends TogglePreferenceController to
diff --git a/src/com/android/settings/display/PeakRefreshRatePreferenceController.java b/src/com/android/settings/display/PeakRefreshRatePreferenceController.java
index dfcc601..c24ad22 100644
--- a/src/com/android/settings/display/PeakRefreshRatePreferenceController.java
+++ b/src/com/android/settings/display/PeakRefreshRatePreferenceController.java
@@ -16,13 +16,15 @@
 
 package com.android.settings.display;
 
+import static com.android.internal.display.RefreshRateSettingsUtils.DEFAULT_REFRESH_RATE;
+import static com.android.internal.display.RefreshRateSettingsUtils.findHighestRefreshRateForDefaultDisplay;
+
 import android.content.Context;
 import android.hardware.display.DisplayManager;
 import android.os.Handler;
 import android.provider.DeviceConfig;
 import android.provider.Settings;
 import android.util.Log;
-import android.view.Display;
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
@@ -39,8 +41,6 @@
 public class PeakRefreshRatePreferenceController extends TogglePreferenceController
         implements LifecycleObserver, OnStart, OnStop {
 
-    @VisibleForTesting static float DEFAULT_REFRESH_RATE = 60f;
-
     @VisibleForTesting float mPeakRefreshRate;
 
     private static final String TAG = "RefreshRatePrefCtr";
@@ -48,7 +48,7 @@
 
     private final Handler mHandler;
     private final IDeviceConfigChange mOnDeviceConfigChange;
-    private final DeviceConfigDisplaySettings mDeviceConfigDisplaySettings;
+    private DeviceConfigDisplaySettings mDeviceConfigDisplaySettings;
     private Preference mPreference;
 
     private interface IDeviceConfigChange {
@@ -65,17 +65,7 @@
                         updateState(mPreference);
                     }
                 };
-
-        final DisplayManager dm = mContext.getSystemService(DisplayManager.class);
-        final Display display = dm.getDisplay(Display.DEFAULT_DISPLAY);
-
-        if (display == null) {
-            Log.w(TAG, "No valid default display device");
-            mPeakRefreshRate = DEFAULT_REFRESH_RATE;
-        } else {
-            mPeakRefreshRate = findPeakRefreshRate(display.getSupportedModes());
-        }
-
+        mPeakRefreshRate = findHighestRefreshRateForDefaultDisplay(context);
         Log.d(
                 TAG,
                 "DEFAULT_REFRESH_RATE : "
@@ -111,12 +101,13 @@
                         mContext.getContentResolver(),
                         Settings.System.PEAK_REFRESH_RATE,
                         getDefaultPeakRefreshRate());
-        return Math.round(peakRefreshRate) == Math.round(mPeakRefreshRate);
+        return Math.round(peakRefreshRate) == Math.round(mPeakRefreshRate)
+                || Float.isInfinite(peakRefreshRate);
     }
 
     @Override
     public boolean setChecked(boolean isChecked) {
-        final float peakRefreshRate = isChecked ? mPeakRefreshRate : DEFAULT_REFRESH_RATE;
+        final float peakRefreshRate = isChecked ? Float.POSITIVE_INFINITY : DEFAULT_REFRESH_RATE;
         Log.d(TAG, "setChecked to : " + peakRefreshRate);
 
         return Settings.System.putFloat(
@@ -139,17 +130,13 @@
     }
 
     @VisibleForTesting
-    float findPeakRefreshRate(Display.Mode[] modes) {
-        float peakRefreshRate = DEFAULT_REFRESH_RATE;
-        for (Display.Mode mode : modes) {
-            if (Math.round(mode.getRefreshRate()) > peakRefreshRate) {
-                peakRefreshRate = mode.getRefreshRate();
-            }
-        }
-        return peakRefreshRate;
+    void injectDeviceConfigDisplaySettings(
+            DeviceConfigDisplaySettings deviceConfigDisplaySettings) {
+        mDeviceConfigDisplaySettings = deviceConfigDisplaySettings;
     }
 
-    private class DeviceConfigDisplaySettings
+    @VisibleForTesting
+    class DeviceConfigDisplaySettings
             implements DeviceConfig.OnPropertiesChangedListener, Executor {
         public void startListening() {
             DeviceConfig.addOnPropertiesChangedListener(
diff --git a/src/com/android/settings/display/ShowOperatorNamePreferenceController.java b/src/com/android/settings/display/ShowOperatorNamePreferenceController.java
index 9e9bf8e..558763a 100644
--- a/src/com/android/settings/display/ShowOperatorNamePreferenceController.java
+++ b/src/com/android/settings/display/ShowOperatorNamePreferenceController.java
@@ -20,7 +20,7 @@
 import android.telephony.SubscriptionManager;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.core.AbstractPreferenceController;
@@ -64,6 +64,6 @@
     public void updateState(Preference preference) {
         int value = Settings.Secure.getInt(mContext.getContentResolver(),
                 KEY_SHOW_OPERATOR_NAME, 1);
-        ((SwitchPreference) preference).setChecked(value != 0);
+        ((TwoStatePreference) preference).setChecked(value != 0);
     }
 }
diff --git a/src/com/android/settings/display/TapToWakePreferenceController.java b/src/com/android/settings/display/TapToWakePreferenceController.java
index 5c2d975..b074d21 100644
--- a/src/com/android/settings/display/TapToWakePreferenceController.java
+++ b/src/com/android/settings/display/TapToWakePreferenceController.java
@@ -17,7 +17,7 @@
 import android.provider.Settings;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.core.AbstractPreferenceController;
@@ -46,7 +46,7 @@
     public void updateState(Preference preference) {
         int value = Settings.Secure.getInt(
                 mContext.getContentResolver(), Settings.Secure.DOUBLE_TAP_TO_WAKE, 0);
-        ((SwitchPreference) preference).setChecked(value != 0);
+        ((TwoStatePreference) preference).setChecked(value != 0);
     }
 
     @Override
diff --git a/src/com/android/settings/display/darkmode/DarkModeActivationPreferenceController.java b/src/com/android/settings/display/darkmode/DarkModeActivationPreferenceController.java
index eac714b..5f441be 100644
--- a/src/com/android/settings/display/darkmode/DarkModeActivationPreferenceController.java
+++ b/src/com/android/settings/display/darkmode/DarkModeActivationPreferenceController.java
@@ -18,7 +18,8 @@
 import android.app.UiModeManager;
 import android.content.Context;
 import android.content.res.Configuration;
-import android.widget.Switch;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
@@ -28,7 +29,6 @@
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 import com.android.settingslib.widget.MainSwitchPreference;
-import com.android.settingslib.widget.OnMainSwitchChangeListener;
 
 import java.time.LocalTime;
 
@@ -36,7 +36,7 @@
  * Controller for activate/deactivate night mode button
  */
 public class DarkModeActivationPreferenceController extends BasePreferenceController implements
-        OnMainSwitchChangeListener {
+        OnCheckedChangeListener {
 
     private final UiModeManager mUiModeManager;
     private final MetricsFeatureProvider mMetricsFeatureProvider;
@@ -96,7 +96,7 @@
     }
 
     @Override
-    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         mMetricsFeatureProvider.logClickedPreference(mPreference, getMetricsCategory());
         final boolean active = (mContext.getResources().getConfiguration().uiMode
                 & Configuration.UI_MODE_NIGHT_YES) != 0;
diff --git a/src/com/android/settings/display/darkmode/DarkModeCustomBedtimePreferenceController.java b/src/com/android/settings/display/darkmode/DarkModeCustomBedtimePreferenceController.java
index c6e379c..488befb 100644
--- a/src/com/android/settings/display/darkmode/DarkModeCustomBedtimePreferenceController.java
+++ b/src/com/android/settings/display/darkmode/DarkModeCustomBedtimePreferenceController.java
@@ -20,6 +20,7 @@
 
 import android.app.UiModeManager;
 import android.content.Context;
+import android.content.Intent;
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
@@ -52,7 +53,12 @@
         super.displayPreference(screen);
         mFooterPreference = screen.findPreference(getPreferenceKey());
         mFooterPreference.setLearnMoreAction(
-                v -> v.getContext().startActivity(mBedtimeSettings.getBedtimeSettingsIntent()));
+                v -> {
+                    Intent bedtimeSettingsIntent = mBedtimeSettings.getBedtimeSettingsIntent();
+                    if (bedtimeSettingsIntent != null) {
+                        v.getContext().startActivity(bedtimeSettingsIntent);
+                    }
+                });
         mFooterPreference.setLearnMoreText(
                 mContext.getString(R.string.dark_ui_bedtime_footer_action));
     }
diff --git a/src/com/android/settings/dream/DreamSettings.java b/src/com/android/settings/dream/DreamSettings.java
index 25825ea..418bb64 100644
--- a/src/com/android/settings/dream/DreamSettings.java
+++ b/src/com/android/settings/dream/DreamSettings.java
@@ -29,7 +29,8 @@
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.Button;
-import android.widget.Switch;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
@@ -44,13 +45,12 @@
 import com.android.settingslib.dream.DreamBackend.WhenToDream;
 import com.android.settingslib.search.SearchIndexable;
 import com.android.settingslib.widget.MainSwitchPreference;
-import com.android.settingslib.widget.OnMainSwitchChangeListener;
 
 import java.util.ArrayList;
 import java.util.List;
 
 @SearchIndexable
-public class DreamSettings extends DashboardFragment implements OnMainSwitchChangeListener {
+public class DreamSettings extends DashboardFragment implements OnCheckedChangeListener {
 
     private static final String TAG = "DreamSettings";
     static final String WHILE_CHARGING_ONLY = "while_charging_only";
@@ -246,7 +246,7 @@
     }
 
     @Override
-    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         setAllPreferencesEnabled(isChecked);
         mPreviewButton.setVisibility(isChecked ? View.VISIBLE : View.GONE);
         updatePaddingForPreviewButton();
diff --git a/src/com/android/settings/emergency/EmergencyGesturePreferenceController.java b/src/com/android/settings/emergency/EmergencyGesturePreferenceController.java
index b6135ab..b222cc1 100644
--- a/src/com/android/settings/emergency/EmergencyGesturePreferenceController.java
+++ b/src/com/android/settings/emergency/EmergencyGesturePreferenceController.java
@@ -17,7 +17,8 @@
 package com.android.settings.emergency;
 
 import android.content.Context;
-import android.widget.Switch;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
@@ -27,13 +28,12 @@
 import com.android.settings.core.BasePreferenceController;
 import com.android.settingslib.emergencynumber.EmergencyNumberUtils;
 import com.android.settingslib.widget.MainSwitchPreference;
-import com.android.settingslib.widget.OnMainSwitchChangeListener;
 
 /**
  * Preference controller for emergency gesture setting
  */
 public class EmergencyGesturePreferenceController extends BasePreferenceController implements
-        OnMainSwitchChangeListener {
+        OnCheckedChangeListener {
 
     @VisibleForTesting
     EmergencyNumberUtils mEmergencyNumberUtils;
@@ -72,7 +72,7 @@
     }
 
     @Override
-    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         mEmergencyNumberUtils.setEmergencyGestureEnabled(isChecked);
     }
 }
diff --git a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
index 82917d2..86ef3cf 100644
--- a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
+++ b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
@@ -27,10 +27,13 @@
 import android.content.pm.PackageManager;
 import android.os.Bundle;
 import android.os.UserHandle;
+import android.text.TextUtils;
 import android.util.Log;
 import android.view.View;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
 
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
@@ -45,14 +48,12 @@
 import com.android.settings.fuelgauge.batteryusage.BatteryEntry;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.widget.EntityHeaderController;
-import com.android.settingslib.HelpUtils;
+import com.android.settingslib.PrimarySwitchPreference;
 import com.android.settingslib.applications.AppUtils;
 import com.android.settingslib.applications.ApplicationsState;
 import com.android.settingslib.core.AbstractPreferenceController;
 import com.android.settingslib.core.instrumentation.Instrumentable;
-import com.android.settingslib.widget.FooterPreference;
 import com.android.settingslib.widget.LayoutPreference;
-import com.android.settingslib.widget.SelectorWithWidgetPreference;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -60,15 +61,15 @@
 import java.util.concurrent.Executors;
 
 /**
- * Power usage detail fragment for each app, this fragment contains
- *
- * 1. Detail battery usage information for app(i.e. usage time, usage amount)
+ * Power usage detail fragment for each app, this fragment contains <br>
+ * <br>
+ * 1. Detail battery usage information for app(i.e. usage time, usage amount) <br>
  * 2. Battery related controls for app(i.e uninstall, force stop)
  */
-public class AdvancedPowerUsageDetail extends DashboardFragment implements
-        ButtonActionDialogFragment.AppButtonsDialogListener,
-        SelectorWithWidgetPreference.OnClickListener {
-
+public class AdvancedPowerUsageDetail extends DashboardFragment
+        implements ButtonActionDialogFragment.AppButtonsDialogListener,
+                Preference.OnPreferenceClickListener,
+                Preference.OnPreferenceChangeListener {
     public static final String TAG = "AdvancedPowerDetail";
     public static final String EXTRA_UID = "extra_uid";
     public static final String EXTRA_PACKAGE_NAME = "extra_package_name";
@@ -85,46 +86,28 @@
     public static final String EXTRA_POWER_USAGE_AMOUNT = "extra_power_usage_amount";
 
     private static final String KEY_PREF_HEADER = "header_view";
-    private static final String KEY_PREF_UNRESTRICTED = "unrestricted_pref";
-    private static final String KEY_PREF_OPTIMIZED = "optimized_pref";
-    private static final String KEY_PREF_RESTRICTED = "restricted_pref";
-    private static final String KEY_FOOTER_PREFERENCE = "app_usage_footer_preference";
-    private static final String PACKAGE_NAME_NONE = "none";
-
-    private static final String HEADER_SUMMARY_FORMAT = "%s\n(%s)";
+    private static final String KEY_ALLOW_BACKGROUND_USAGE = "allow_background_usage";
 
     private static final int REQUEST_UNINSTALL = 0;
     private static final int REQUEST_REMOVE_DEVICE_ADMIN = 1;
 
     private final ExecutorService mExecutor = Executors.newSingleThreadExecutor();
 
-    @VisibleForTesting
-    LayoutPreference mHeaderPreference;
-    @VisibleForTesting
-    ApplicationsState mState;
-    @VisibleForTesting
-    ApplicationsState.AppEntry mAppEntry;
-    @VisibleForTesting
-    BatteryOptimizeUtils mBatteryOptimizeUtils;
-    @VisibleForTesting
-    FooterPreference mFooterPreference;
-    @VisibleForTesting
-    SelectorWithWidgetPreference mRestrictedPreference;
-    @VisibleForTesting
-    SelectorWithWidgetPreference mOptimizePreference;
-    @VisibleForTesting
-    SelectorWithWidgetPreference mUnrestrictedPreference;
-    @VisibleForTesting
-    @BatteryOptimizeUtils.OptimizationMode
-    int mOptimizationMode = BatteryOptimizeUtils.MODE_UNKNOWN;
-    @VisibleForTesting
-    BackupManager mBackupManager;
-    @VisibleForTesting
-    StringBuilder mLogStringBuilder;
-
     private AppButtonsPreferenceController mAppButtonsPreferenceController;
     private PowerUsageTimeController mPowerUsageTimeController;
 
+    @VisibleForTesting LayoutPreference mHeaderPreference;
+    @VisibleForTesting ApplicationsState mState;
+    @VisibleForTesting ApplicationsState.AppEntry mAppEntry;
+    @VisibleForTesting BatteryOptimizeUtils mBatteryOptimizeUtils;
+    @VisibleForTesting PrimarySwitchPreference mAllowBackgroundUsagePreference;
+
+    @VisibleForTesting @BatteryOptimizeUtils.OptimizationMode
+    int mOptimizationMode = BatteryOptimizeUtils.MODE_UNKNOWN;
+
+    @VisibleForTesting BackupManager mBackupManager;
+    @VisibleForTesting StringBuilder mLogStringBuilder;
+
     // A wrapper class to carry LaunchBatteryDetailPage required arguments.
     private static final class LaunchBatteryDetailPageArgs {
         private String mUsagePercent;
@@ -145,9 +128,14 @@
 
     /** Launches battery details page for an individual battery consumer fragment. */
     public static void startBatteryDetailPage(
-            Context context, int sourceMetricsCategory,
-            BatteryDiffEntry diffEntry, String usagePercent, String slotInformation,
-            boolean showTimeInformation, String anomalyHintPrefKey, String anomalyHintText) {
+            Context context,
+            int sourceMetricsCategory,
+            BatteryDiffEntry diffEntry,
+            String usagePercent,
+            String slotInformation,
+            boolean showTimeInformation,
+            String anomalyHintPrefKey,
+            String anomalyHintText) {
         final LaunchBatteryDetailPageArgs launchArgs = new LaunchBatteryDetailPageArgs();
         // configure the launch argument.
         launchArgs.mUsagePercent = usagePercent;
@@ -170,8 +158,11 @@
     }
 
     /** Launches battery details page for an individual battery consumer. */
-    public static void startBatteryDetailPage(Activity caller,
-            InstrumentedPreferenceFragment fragment, BatteryEntry entry, String usagePercent) {
+    public static void startBatteryDetailPage(
+            Activity caller,
+            InstrumentedPreferenceFragment fragment,
+            BatteryEntry entry,
+            String usagePercent) {
         final LaunchBatteryDetailPageArgs launchArgs = new LaunchBatteryDetailPageArgs();
         // configure the launch argument.
         launchArgs.mUsagePercent = usagePercent;
@@ -208,8 +199,10 @@
         args.putBoolean(EXTRA_SHOW_TIME_INFO, launchArgs.mShowTimeInformation);
         args.putString(EXTRA_ANOMALY_HINT_PREF_KEY, launchArgs.mAnomalyHintPrefKey);
         args.putString(EXTRA_ANOMALY_HINT_TEXT, launchArgs.mAnomalyHintText);
-        final int userId = launchArgs.mIsUserEntry ? ActivityManager.getCurrentUser()
-            : UserHandle.getUserId(launchArgs.mUid);
+        final int userId =
+                launchArgs.mIsUserEntry
+                        ? ActivityManager.getCurrentUser()
+                        : UserHandle.getUserId(launchArgs.mUid);
 
         new SubSettingLauncher(context)
                 .setDestination(AdvancedPowerUsageDetail.class.getName())
@@ -220,11 +213,11 @@
                 .launch();
     }
 
-    /**
-     * Start packageName's battery detail page.
-     */
+    /** Start packageName's battery detail page. */
     public static void startBatteryDetailPage(
-            Activity caller, Instrumentable instrumentable, String packageName,
+            Activity caller,
+            Instrumentable instrumentable,
+            String packageName,
             UserHandle userHandle) {
         final Bundle args = new Bundle(3);
         final PackageManager packageManager = caller.getPackageManager();
@@ -257,7 +250,7 @@
         super.onCreate(icicle);
 
         final String packageName = getArguments().getString(EXTRA_PACKAGE_NAME);
-        onCreateForTriState(packageName);
+        onCreateBackgroundUsageState(packageName);
         mHeaderPreference = findPreference(KEY_PREF_HEADER);
 
         if (packageName != null) {
@@ -271,16 +264,19 @@
 
         initHeader();
         mOptimizationMode = mBatteryOptimizeUtils.getAppOptimizationMode();
-        initPreferenceForTriState(getContext());
-        mExecutor.execute(() -> {
-            String packageName =
-                    getLoggingPackageName(getContext(), mBatteryOptimizeUtils.getPackageName());
-            FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()
-                    .action(
-                            getContext(),
-                            SettingsEnums.OPEN_APP_BATTERY_USAGE,
-                            packageName);
-        });
+        initFooter();
+        mExecutor.execute(
+                () -> {
+                    final String packageName =
+                            BatteryUtils.getLoggingPackageName(
+                                    getContext(), mBatteryOptimizeUtils.getPackageName());
+                    FeatureFactory.getFeatureFactory()
+                            .getMetricsFeatureProvider()
+                            .action(
+                                    getContext(),
+                                    SettingsEnums.OPEN_APP_BATTERY_USAGE,
+                                    packageName);
+                });
         mLogStringBuilder = new StringBuilder("onResume mode = ").append(mOptimizationMode);
     }
 
@@ -288,28 +284,28 @@
     public void onPause() {
         super.onPause();
 
-        final int selectedPreference = getSelectedPreference();
-
         notifyBackupManager();
-        mLogStringBuilder.append(", onPause mode = ").append(selectedPreference);
-        logMetricCategory(selectedPreference);
+        final int currentOptimizeMode = mBatteryOptimizeUtils.getAppOptimizationMode();
+        mLogStringBuilder.append(", onPause mode = ").append(currentOptimizeMode);
+        logMetricCategory(currentOptimizeMode);
 
-        mExecutor.execute(() -> {
-            BatteryOptimizeLogUtils.writeLog(
-                    getContext().getApplicationContext(),
-                    Action.LEAVE,
-                    BatteryOptimizeLogUtils.getPackageNameWithUserId(
-                            mBatteryOptimizeUtils.getPackageName(), UserHandle.myUserId()),
-                    mLogStringBuilder.toString());
-        });
-        Log.d(TAG, "Leave with mode: " + selectedPreference);
+        mExecutor.execute(
+                () -> {
+                    BatteryOptimizeLogUtils.writeLog(
+                            getContext().getApplicationContext(),
+                            Action.LEAVE,
+                            BatteryOptimizeLogUtils.getPackageNameWithUserId(
+                                    mBatteryOptimizeUtils.getPackageName(), UserHandle.myUserId()),
+                            mLogStringBuilder.toString());
+                });
+        Log.d(TAG, "Leave with mode: " + currentOptimizeMode);
     }
 
     @VisibleForTesting
     void notifyBackupManager() {
         if (mOptimizationMode != mBatteryOptimizeUtils.getAppOptimizationMode()) {
-            final BackupManager backupManager = mBackupManager != null
-                    ? mBackupManager : new BackupManager(getContext());
+            final BackupManager backupManager =
+                    mBackupManager != null ? mBackupManager : new BackupManager(getContext());
             backupManager.dataChanged();
         }
     }
@@ -319,10 +315,11 @@
         final View appSnippet = mHeaderPreference.findViewById(R.id.entity_header);
         final Activity context = getActivity();
         final Bundle bundle = getArguments();
-        EntityHeaderController controller = EntityHeaderController
-                .newInstance(context, this, appSnippet)
-                .setButtonActions(EntityHeaderController.ActionType.ACTION_NONE,
-                        EntityHeaderController.ActionType.ACTION_NONE);
+        EntityHeaderController controller =
+                EntityHeaderController.newInstance(context, this, appSnippet)
+                        .setButtonActions(
+                                EntityHeaderController.ActionType.ACTION_NONE,
+                                EntityHeaderController.ActionType.ACTION_NONE);
 
         if (mAppEntry == null) {
             controller.setLabel(bundle.getString(EXTRA_LABEL));
@@ -346,40 +343,39 @@
             final long backgroundTimeMs = bundle.getLong(EXTRA_BACKGROUND_TIME);
             final String anomalyHintPrefKey = bundle.getString(EXTRA_ANOMALY_HINT_PREF_KEY);
             final String anomalyHintText = bundle.getString(EXTRA_ANOMALY_HINT_TEXT);
-            mPowerUsageTimeController.handleScreenTimeUpdated(slotTime, screenOnTimeInMs,
-                    backgroundTimeMs, anomalyHintPrefKey, anomalyHintText);
+            mPowerUsageTimeController.handleScreenTimeUpdated(
+                    slotTime,
+                    screenOnTimeInMs,
+                    backgroundTimeMs,
+                    anomalyHintPrefKey,
+                    anomalyHintText);
         }
         controller.done(true /* rebindActions */);
     }
 
     @VisibleForTesting
-    void initPreferenceForTriState(Context context) {
+    void initFooter() {
         final String stateString;
-        final String footerString;
+        final String detailInfoString;
+        final Context context = getContext();
 
         if (mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()) {
             // Present optimized only string when the package name is invalid.
             stateString = context.getString(R.string.manager_battery_usage_optimized_only);
-            footerString = context.getString(
-                    R.string.manager_battery_usage_footer_limited, stateString);
+            detailInfoString =
+                    context.getString(R.string.manager_battery_usage_footer_limited, stateString);
         } else if (mBatteryOptimizeUtils.isSystemOrDefaultApp()) {
             // Present unrestricted only string when the package is system or default active app.
             stateString = context.getString(R.string.manager_battery_usage_unrestricted_only);
-            footerString = context.getString(
-                    R.string.manager_battery_usage_footer_limited, stateString);
+            detailInfoString =
+                    context.getString(R.string.manager_battery_usage_footer_limited, stateString);
         } else {
             // Present default string to normal app.
-            footerString = context.getString(R.string.manager_battery_usage_footer);
+            detailInfoString =
+                    context.getString(
+                            R.string.manager_battery_usage_allow_background_usage_summary);
         }
-        mFooterPreference.setTitle(footerString);
-        final Intent helpIntent = HelpUtils.getHelpIntent(context, context.getString(
-                R.string.help_url_app_usage_settings), /*backupContext=*/ "");
-        if (helpIntent != null) {
-            mFooterPreference.setLearnMoreAction(v ->
-                    startActivityForResult(helpIntent, /*requestCode=*/ 0));
-            mFooterPreference.setLearnMoreText(
-                    context.getString(R.string.manager_battery_usage_link_a11y));
-        }
+        mAllowBackgroundUsagePreference.setSummary(detailInfoString);
     }
 
     @Override
@@ -404,17 +400,21 @@
         final int uid = bundle.getInt(EXTRA_UID, 0);
         final String packageName = bundle.getString(EXTRA_PACKAGE_NAME);
 
-        mAppButtonsPreferenceController = new AppButtonsPreferenceController(
-                (SettingsActivity) getActivity(), this, getSettingsLifecycle(),
-                packageName, mState, REQUEST_UNINSTALL, REQUEST_REMOVE_DEVICE_ADMIN);
+        mAppButtonsPreferenceController =
+                new AppButtonsPreferenceController(
+                        (SettingsActivity) getActivity(),
+                        this,
+                        getSettingsLifecycle(),
+                        packageName,
+                        mState,
+                        REQUEST_UNINSTALL,
+                        REQUEST_REMOVE_DEVICE_ADMIN);
         if (bundle.getBoolean(EXTRA_SHOW_TIME_INFO, false)) {
             mPowerUsageTimeController = new PowerUsageTimeController(getContext());
             controllers.add(mPowerUsageTimeController);
         }
         controllers.add(mAppButtonsPreferenceController);
-        controllers.add(new UnrestrictedPreferenceController(context, uid, packageName));
-        controllers.add(new OptimizedPreferenceController(context, uid, packageName));
-        controllers.add(new RestrictedPreferenceController(context, uid, packageName));
+        controllers.add(new AllowBackgroundPreferenceController(context, uid, packageName));
 
         return controllers;
     }
@@ -435,80 +435,76 @@
     }
 
     @Override
-    public void onRadioButtonClicked(SelectorWithWidgetPreference selected) {
-        final String selectedKey = selected.getKey();
-        updatePreferenceState(mUnrestrictedPreference, selectedKey);
-        updatePreferenceState(mOptimizePreference, selectedKey);
-        updatePreferenceState(mRestrictedPreference, selectedKey);
-        mBatteryOptimizeUtils.setAppUsageState(getSelectedPreference(), Action.APPLY);
+    public boolean onPreferenceClick(Preference preference) {
+        if (!(preference instanceof PrimarySwitchPreference)
+                || !TextUtils.equals(preference.getKey(), KEY_ALLOW_BACKGROUND_USAGE)) {
+            return false;
+        }
+        PowerBackgroundUsageDetail.startPowerBackgroundUsageDetailPage(
+                getContext(), getArguments());
+        return true;
     }
 
-    private void updatePreferenceState(SelectorWithWidgetPreference preference,
-            String selectedKey) {
-        preference.setChecked(selectedKey.equals(preference.getKey()));
+    @Override
+    public boolean onPreferenceChange(@NonNull Preference preference, Object newValue) {
+        if (!(preference instanceof PrimarySwitchPreference)
+                || !TextUtils.equals(preference.getKey(), KEY_ALLOW_BACKGROUND_USAGE)) {
+            return false;
+        }
+        if (newValue instanceof Boolean) {
+            final boolean isAllowBackgroundUsage = (boolean) newValue;
+            mBatteryOptimizeUtils.setAppUsageState(
+                    isAllowBackgroundUsage
+                            ? BatteryOptimizeUtils.MODE_OPTIMIZED
+                            : BatteryOptimizeUtils.MODE_RESTRICTED,
+                    Action.APPLY);
+        }
+        return true;
     }
 
-    private void logMetricCategory(int selectedKey) {
-        if (selectedKey == mOptimizationMode) {
+    private void logMetricCategory(int currentOptimizeMode) {
+        if (currentOptimizeMode == mOptimizationMode) {
             return;
         }
-
         int metricCategory = 0;
-        switch (selectedKey) {
+        switch (currentOptimizeMode) {
             case BatteryOptimizeUtils.MODE_UNRESTRICTED:
-                metricCategory = SettingsEnums.ACTION_APP_BATTERY_USAGE_UNRESTRICTED;
-                break;
             case BatteryOptimizeUtils.MODE_OPTIMIZED:
-                metricCategory = SettingsEnums.ACTION_APP_BATTERY_USAGE_OPTIMIZED;
+                metricCategory = SettingsEnums.ACTION_APP_BATTERY_USAGE_ALLOW_BACKGROUND;
                 break;
             case BatteryOptimizeUtils.MODE_RESTRICTED:
-                metricCategory = SettingsEnums.ACTION_APP_BATTERY_USAGE_RESTRICTED;
+                metricCategory = SettingsEnums.ACTION_APP_BATTERY_USAGE_DISABLE_BACKGROUND;
                 break;
         }
         if (metricCategory == 0) {
             return;
         }
         int finalMetricCategory = metricCategory;
-        mExecutor.execute(() -> {
-            String packageName =
-                    getLoggingPackageName(getContext(), mBatteryOptimizeUtils.getPackageName());
-            FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()
-                    .action(
-                            /* attribution */ SettingsEnums.OPEN_APP_BATTERY_USAGE,
-                            /* action */ finalMetricCategory,
-                            /* pageId */ SettingsEnums.OPEN_APP_BATTERY_USAGE,
-                            packageName,
-                            getArguments().getInt(EXTRA_POWER_USAGE_AMOUNT));
-        });
+        mExecutor.execute(
+                () -> {
+                    String packageName =
+                            BatteryUtils.getLoggingPackageName(
+                                    getContext(), mBatteryOptimizeUtils.getPackageName());
+                    FeatureFactory.getFeatureFactory()
+                            .getMetricsFeatureProvider()
+                            .action(
+                                    /* attribution */ SettingsEnums.OPEN_APP_BATTERY_USAGE,
+                                    /* action */ finalMetricCategory,
+                                    /* pageId */ SettingsEnums.OPEN_APP_BATTERY_USAGE,
+                                    packageName,
+                                    getArguments().getInt(EXTRA_POWER_USAGE_AMOUNT));
+                });
     }
 
-    private void onCreateForTriState(String packageName) {
-        mUnrestrictedPreference = findPreference(KEY_PREF_UNRESTRICTED);
-        mOptimizePreference = findPreference(KEY_PREF_OPTIMIZED);
-        mRestrictedPreference = findPreference(KEY_PREF_RESTRICTED);
-        mFooterPreference = findPreference(KEY_FOOTER_PREFERENCE);
-        mUnrestrictedPreference.setOnClickListener(this);
-        mOptimizePreference.setOnClickListener(this);
-        mRestrictedPreference.setOnClickListener(this);
-
-        mBatteryOptimizeUtils = new BatteryOptimizeUtils(
-                getContext(), getArguments().getInt(EXTRA_UID), packageName);
-    }
-
-    private int getSelectedPreference() {
-        if (mRestrictedPreference.isChecked()) {
-            return BatteryOptimizeUtils.MODE_RESTRICTED;
-        } else if (mUnrestrictedPreference.isChecked()) {
-            return BatteryOptimizeUtils.MODE_UNRESTRICTED;
-        } else if (mOptimizePreference.isChecked()) {
-            return BatteryOptimizeUtils.MODE_OPTIMIZED;
-        } else {
-            return BatteryOptimizeUtils.MODE_UNKNOWN;
+    private void onCreateBackgroundUsageState(String packageName) {
+        mAllowBackgroundUsagePreference = findPreference(KEY_ALLOW_BACKGROUND_USAGE);
+        if (mAllowBackgroundUsagePreference != null) {
+            mAllowBackgroundUsagePreference.setOnPreferenceClickListener(this);
+            mAllowBackgroundUsagePreference.setOnPreferenceChangeListener(this);
         }
-    }
 
-    private static String getLoggingPackageName(Context context, String originalPackingName) {
-        return BatteryUtils.isAppInstalledFromGooglePlayStore(context, originalPackingName)
-                ? originalPackingName : PACKAGE_NAME_NONE;
+        mBatteryOptimizeUtils =
+                new BatteryOptimizeUtils(
+                        getContext(), getArguments().getInt(EXTRA_UID), packageName);
     }
 }
diff --git a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailActivity.java b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailActivity.java
index 67f2323..3ef2c0c 100644
--- a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailActivity.java
+++ b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailActivity.java
@@ -29,14 +29,11 @@
 
 import androidx.appcompat.app.AppCompatActivity;
 
-import com.android.settings.core.SubSettingLauncher;
-import com.android.settings.fuelgauge.AdvancedPowerUsageDetail;
 import com.android.settings.R;
 import com.android.settings.Utils;
+import com.android.settings.core.SubSettingLauncher;
 
-/**
- * Trampoline activity for launching the {@link AdvancedPowerUsageDetail} fragment.
- */
+/** Trampoline activity for launching the {@link AdvancedPowerUsageDetail} fragment. */
 public class AdvancedPowerUsageDetailActivity extends AppCompatActivity {
 
     private static final String TAG = "AdvancedPowerDetailActivity";
diff --git a/src/com/android/settings/fuelgauge/AllowBackgroundPreferenceController.java b/src/com/android/settings/fuelgauge/AllowBackgroundPreferenceController.java
new file mode 100644
index 0000000..ab9a9e0
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/AllowBackgroundPreferenceController.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.fuelgauge;
+
+import android.content.Context;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.PrimarySwitchPreference;
+import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settingslib.widget.MainSwitchPreference;
+
+/** Controller to update the app background usage state */
+public class AllowBackgroundPreferenceController extends AbstractPreferenceController
+        implements PreferenceControllerMixin {
+
+    private static final String TAG = "AllowBackgroundPreferenceController";
+
+    @VisibleForTesting static final String KEY_ALLOW_BACKGROUND_USAGE = "allow_background_usage";
+
+    @VisibleForTesting BatteryOptimizeUtils mBatteryOptimizeUtils;
+
+    public AllowBackgroundPreferenceController(Context context, int uid, String packageName) {
+        super(context);
+        mBatteryOptimizeUtils = new BatteryOptimizeUtils(context, uid, packageName);
+    }
+
+    private void setChecked(Preference preference, boolean checked) {
+        if (preference instanceof PrimarySwitchPreference) {
+            ((PrimarySwitchPreference) preference).setChecked(checked);
+        } else if (preference instanceof MainSwitchPreference) {
+            ((MainSwitchPreference) preference).setChecked(checked);
+        }
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        preference.setEnabled(mBatteryOptimizeUtils.isOptimizeModeMutable());
+
+        final boolean isAllowBackground =
+                mBatteryOptimizeUtils.getAppOptimizationMode()
+                        != BatteryOptimizeUtils.MODE_RESTRICTED;
+        setChecked(preference, isAllowBackground);
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return true;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_ALLOW_BACKGROUND_USAGE;
+    }
+
+    @Override
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        return getPreferenceKey().equals(preference.getKey());
+    }
+}
diff --git a/src/com/android/settings/fuelgauge/AutoRestrictionPreferenceController.java b/src/com/android/settings/fuelgauge/AutoRestrictionPreferenceController.java
index 25415f3..318f230 100644
--- a/src/com/android/settings/fuelgauge/AutoRestrictionPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/AutoRestrictionPreferenceController.java
@@ -19,16 +19,14 @@
 import android.provider.Settings;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.overlay.FeatureFactory;
 
-/**
- * Controller to change and update the auto restriction toggle
- */
-public class AutoRestrictionPreferenceController extends BasePreferenceController implements
-        Preference.OnPreferenceChangeListener {
+/** Controller to change and update the auto restriction toggle */
+public class AutoRestrictionPreferenceController extends BasePreferenceController
+        implements Preference.OnPreferenceChangeListener {
     private static final String KEY_SMART_BATTERY = "auto_restriction";
     private static final int ON = 1;
     private static final int OFF = 0;
@@ -50,15 +48,20 @@
     @Override
     public void updateState(Preference preference) {
         super.updateState(preference);
-        final boolean smartBatteryOn = Settings.Global.getInt(mContext.getContentResolver(),
-                Settings.Global.APP_AUTO_RESTRICTION_ENABLED, ON) == ON;
-        ((SwitchPreference) preference).setChecked(smartBatteryOn);
+        final boolean smartBatteryOn =
+                Settings.Global.getInt(
+                                mContext.getContentResolver(),
+                                Settings.Global.APP_AUTO_RESTRICTION_ENABLED,
+                                ON)
+                        == ON;
+        ((TwoStatePreference) preference).setChecked(smartBatteryOn);
     }
 
     @Override
     public boolean onPreferenceChange(Preference preference, Object newValue) {
         final boolean smartBatteryOn = (Boolean) newValue;
-        Settings.Global.putInt(mContext.getContentResolver(),
+        Settings.Global.putInt(
+                mContext.getContentResolver(),
                 Settings.Global.APP_AUTO_RESTRICTION_ENABLED,
                 smartBatteryOn ? ON : OFF);
         return true;
diff --git a/src/com/android/settings/fuelgauge/BatteryActiveView.java b/src/com/android/settings/fuelgauge/BatteryActiveView.java
index 4856b3d..a9aa6a4 100644
--- a/src/com/android/settings/fuelgauge/BatteryActiveView.java
+++ b/src/com/android/settings/fuelgauge/BatteryActiveView.java
@@ -63,13 +63,15 @@
             return;
         }
         mPaint.setColor(color);
-        canvas.drawRect(start / period * getWidth(), 0, end / period * getWidth(), getHeight(),
-                mPaint);
+        canvas.drawRect(
+                start / period * getWidth(), 0, end / period * getWidth(), getHeight(), mPaint);
     }
 
     public interface BatteryActiveProvider {
         boolean hasData();
+
         long getPeriod();
+
         SparseIntArray getColorArray();
     }
 }
diff --git a/src/com/android/settings/fuelgauge/BatteryBackupHelper.java b/src/com/android/settings/fuelgauge/BatteryBackupHelper.java
index 4dabe12..797b7ad 100644
--- a/src/com/android/settings/fuelgauge/BatteryBackupHelper.java
+++ b/src/com/android/settings/fuelgauge/BatteryBackupHelper.java
@@ -52,6 +52,7 @@
 public final class BatteryBackupHelper implements BackupHelper {
     /** An inditifier for {@link BackupHelper}. */
     public static final String TAG = "BatteryBackupHelper";
+
     // Definition for the device build information.
     public static final String KEY_BUILD_BRAND = "device_build_brand";
     public static final String KEY_BUILD_PRODUCT = "device_build_product";
@@ -70,17 +71,12 @@
     static final String DELIMITER_MODE = ":";
     static final String KEY_OPTIMIZATION_LIST = "optimization_mode_list";
 
-    @VisibleForTesting
-    ArraySet<ApplicationInfo> mTestApplicationInfoList = null;
+    @VisibleForTesting ArraySet<ApplicationInfo> mTestApplicationInfoList = null;
 
-    @VisibleForTesting
-    PowerAllowlistBackend mPowerAllowlistBackend;
-    @VisibleForTesting
-    IDeviceIdleController mIDeviceIdleController;
-    @VisibleForTesting
-    IPackageManager mIPackageManager;
-    @VisibleForTesting
-    BatteryOptimizeUtils mBatteryOptimizeUtils;
+    @VisibleForTesting PowerAllowlistBackend mPowerAllowlistBackend;
+    @VisibleForTesting IDeviceIdleController mIDeviceIdleController;
+    @VisibleForTesting IPackageManager mIPackageManager;
+    @VisibleForTesting BatteryOptimizeUtils mBatteryOptimizeUtils;
 
     private byte[] mOptimizationModeBytes;
     private boolean mVerifyMigrateConfiguration = false;
@@ -95,8 +91,8 @@
     }
 
     @Override
-    public void performBackup(ParcelFileDescriptor oldState, BackupDataOutput data,
-            ParcelFileDescriptor newState) {
+    public void performBackup(
+            ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState) {
         if (!isOwner() || data == null) {
             Log.w(TAG, "ignore performBackup() for non-owner or empty data");
             return;
@@ -149,8 +145,7 @@
     }
 
     @Override
-    public void writeNewStateDescription(ParcelFileDescriptor newState) {
-    }
+    public void writeNewStateDescription(ParcelFileDescriptor newState) {}
 
     private List<String> getFullPowerList() {
         final long timestamp = System.currentTimeMillis();
@@ -166,8 +161,11 @@
             Log.w(TAG, "no data found in the getFullPowerList()");
             return new ArrayList<>();
         }
-        Log.d(TAG, String.format("getFullPowerList() size=%d in %d/ms",
-                allowlistedApps.length, (System.currentTimeMillis() - timestamp)));
+        Log.d(
+                TAG,
+                String.format(
+                        "getFullPowerList() size=%d in %d/ms",
+                        allowlistedApps.length, (System.currentTimeMillis() - timestamp)));
         return Arrays.asList(allowlistedApps);
     }
 
@@ -187,27 +185,34 @@
         for (ApplicationInfo info : applications) {
             final int mode = BatteryOptimizeUtils.getMode(appOps, info.uid, info.packageName);
             @BatteryOptimizeUtils.OptimizationMode
-            final int optimizationMode = BatteryOptimizeUtils.getAppOptimizationMode(
-                    mode, allowlistedApps.contains(info.packageName));
+            final int optimizationMode =
+                    BatteryOptimizeUtils.getAppOptimizationMode(
+                            mode, allowlistedApps.contains(info.packageName));
             // Ignores default optimized/unknown state or system/default apps.
             if (optimizationMode == BatteryOptimizeUtils.MODE_OPTIMIZED
                     || optimizationMode == BatteryOptimizeUtils.MODE_UNKNOWN
                     || isSystemOrDefaultApp(info.packageName, info.uid)) {
                 continue;
             }
-            final String packageOptimizeMode =
-                    info.packageName + DELIMITER_MODE + optimizationMode;
+            final String packageOptimizeMode = info.packageName + DELIMITER_MODE + optimizationMode;
             builder.append(packageOptimizeMode + DELIMITER);
             Log.d(TAG, "backupOptimizationMode: " + packageOptimizeMode);
             BatteryOptimizeLogUtils.writeLog(
-                    sharedPreferences, Action.BACKUP, info.packageName,
+                    sharedPreferences,
+                    Action.BACKUP,
+                    info.packageName,
                     /* actionDescription */ "mode: " + optimizationMode);
             backupCount++;
         }
 
         writeBackupData(data, KEY_OPTIMIZATION_LIST, builder.toString());
-        Log.d(TAG, String.format("backup getInstalledApplications():%d count=%d in %d/ms",
-                applications.size(), backupCount, (System.currentTimeMillis() - timestamp)));
+        Log.d(
+                TAG,
+                String.format(
+                        "backup getInstalledApplications():%d count=%d in %d/ms",
+                        applications.size(),
+                        backupCount,
+                        (System.currentTimeMillis() - timestamp)));
     }
 
     @VisibleForTesting
@@ -225,8 +230,8 @@
         }
         int restoreCount = 0;
         for (int index = 0; index < appConfigurations.length; index++) {
-            final String[] results = appConfigurations[index]
-                    .split(BatteryBackupHelper.DELIMITER_MODE);
+            final String[] results =
+                    appConfigurations[index].split(BatteryBackupHelper.DELIMITER_MODE);
             // Example format: com.android.systemui:2 we should have length=2
             if (results == null || results.length != 2) {
                 Log.w(TAG, "invalid raw data found:" + appConfigurations[index]);
@@ -244,15 +249,17 @@
             try {
                 optimizationMode = Integer.parseInt(results[1]);
             } catch (NumberFormatException e) {
-                Log.e(TAG, "failed to parse the optimization mode: "
-                        + appConfigurations[index], e);
+                Log.e(TAG, "failed to parse the optimization mode: " + appConfigurations[index], e);
                 continue;
             }
             restoreOptimizationMode(packageName, optimizationMode);
             restoreCount++;
         }
-        Log.d(TAG, String.format("restoreOptimizationMode() count=%d in %d/ms",
-                restoreCount, (System.currentTimeMillis() - timestamp)));
+        Log.d(
+                TAG,
+                String.format(
+                        "restoreOptimizationMode() count=%d in %d/ms",
+                        restoreCount, (System.currentTimeMillis() - timestamp)));
         return restoreCount;
     }
 
@@ -268,7 +275,7 @@
         // Start to restore the app optimization mode data.
         final int restoreCount = restoreOptimizationMode(mOptimizationModeBytes);
         if (restoreCount > 0) {
-            BatterySettingsMigrateChecker.verifyOptimizationModes(mContext);
+            BatterySettingsMigrateChecker.verifyBatteryOptimizeModes(mContext);
         }
         mOptimizationModeBytes = null; // clear data
     }
@@ -319,8 +326,9 @@
         if (mIDeviceIdleController != null) {
             return mIDeviceIdleController;
         }
-        mIDeviceIdleController = IDeviceIdleController.Stub.asInterface(
-                ServiceManager.getService(DEVICE_IDLE_SERVICE));
+        mIDeviceIdleController =
+                IDeviceIdleController.Stub.asInterface(
+                        ServiceManager.getService(DEVICE_IDLE_SERVICE));
         return mIDeviceIdleController;
     }
 
@@ -342,7 +350,7 @@
 
     private boolean isSystemOrDefaultApp(String packageName, int uid) {
         return BatteryOptimizeUtils.isSystemOrDefaultApp(
-                getPowerAllowlistBackend(), packageName, uid);
+                mContext, getPowerAllowlistBackend(), packageName, uid);
     }
 
     private ArraySet<ApplicationInfo> getInstalledApplications() {
@@ -374,8 +382,7 @@
         return dataBytes;
     }
 
-    private static void writeBackupData(
-            BackupDataOutput data, String dataKey, String dataContent) {
+    private static void writeBackupData(BackupDataOutput data, String dataKey, String dataContent) {
         if (dataContent == null || dataContent.isEmpty()) {
             return;
         }
diff --git a/src/com/android/settings/fuelgauge/BatteryBroadcastReceiver.java b/src/com/android/settings/fuelgauge/BatteryBroadcastReceiver.java
index 79ecd40..324f897 100644
--- a/src/com/android/settings/fuelgauge/BatteryBroadcastReceiver.java
+++ b/src/com/android/settings/fuelgauge/BatteryBroadcastReceiver.java
@@ -34,19 +34,19 @@
 import java.lang.annotation.RetentionPolicy;
 
 /**
- * Use this broadcastReceiver to listen to the battery change and it will invoke
- * {@link OnBatteryChangedListener}
+ * Use this broadcastReceiver to listen to the battery change and it will invoke {@link
+ * OnBatteryChangedListener}
  */
 public class BatteryBroadcastReceiver extends BroadcastReceiver {
 
     private static final String TAG = "BatteryBroadcastRcvr";
+
     /**
-     * Callback if any of the monitored fields has been changed:
-     *
-     * Battery level(e.g. 100%->99%)
-     * Battery status(e.g. plugged->unplugged)
-     * Battery saver(e.g. off->on)
-     * Battery health(e.g. good->overheat)
+     * Callback if any of the monitored fields has been changed: <br>
+     * <br>
+     * Battery level(e.g. 100%->99%) Battery status(e.g. plugged->unplugged) <br>
+     * Battery saver(e.g.off->on) <br>
+     * Battery health(e.g. good->overheat) <br>
      * Battery charging status(e.g. default->long life)
      */
     public interface OnBatteryChangedListener {
@@ -54,13 +54,15 @@
     }
 
     @Retention(RetentionPolicy.SOURCE)
-    @IntDef({BatteryUpdateType.MANUAL,
-            BatteryUpdateType.BATTERY_LEVEL,
-            BatteryUpdateType.BATTERY_SAVER,
-            BatteryUpdateType.BATTERY_STATUS,
-            BatteryUpdateType.BATTERY_HEALTH,
-            BatteryUpdateType.CHARGING_STATUS,
-            BatteryUpdateType.BATTERY_NOT_PRESENT})
+    @IntDef({
+        BatteryUpdateType.MANUAL,
+        BatteryUpdateType.BATTERY_LEVEL,
+        BatteryUpdateType.BATTERY_SAVER,
+        BatteryUpdateType.BATTERY_STATUS,
+        BatteryUpdateType.BATTERY_HEALTH,
+        BatteryUpdateType.CHARGING_STATUS,
+        BatteryUpdateType.BATTERY_NOT_PRESENT
+    })
     public @interface BatteryUpdateType {
         int MANUAL = 0;
         int BATTERY_LEVEL = 1;
@@ -71,14 +73,10 @@
         int BATTERY_NOT_PRESENT = 6;
     }
 
-    @VisibleForTesting
-    String mBatteryLevel;
-    @VisibleForTesting
-    String mBatteryStatus;
-    @VisibleForTesting
-    int mChargingStatus;
-    @VisibleForTesting
-    int mBatteryHealth;
+    @VisibleForTesting String mBatteryLevel;
+    @VisibleForTesting String mBatteryStatus;
+    @VisibleForTesting int mChargingStatus;
+    @VisibleForTesting int mBatteryHealth;
     private OnBatteryChangedListener mBatteryListener;
     private Context mContext;
 
@@ -102,8 +100,8 @@
         intentFilter.addAction(BatteryUtils.BYPASS_DOCK_DEFENDER_ACTION);
         intentFilter.addAction(UsbManager.ACTION_USB_PORT_COMPLIANCE_CHANGED);
 
-        final Intent intent = mContext.registerReceiver(this, intentFilter,
-                Context.RECEIVER_EXPORTED);
+        final Intent intent =
+                mContext.registerReceiver(this, intentFilter, Context.RECEIVER_EXPORTED);
         updateBatteryStatus(intent, true /* forceUpdate */);
     }
 
@@ -121,10 +119,13 @@
             final String batteryLevel = Utils.getBatteryPercentage(intent);
             final String batteryStatus =
                     Utils.getBatteryStatus(mContext, intent, /* compactStatus= */ false);
-            final int chargingStatus = intent.getIntExtra(
-                    BatteryManager.EXTRA_CHARGING_STATUS, BatteryManager.CHARGING_POLICY_DEFAULT);
-            final int batteryHealth = intent.getIntExtra(
-                    BatteryManager.EXTRA_HEALTH, BatteryManager.BATTERY_HEALTH_UNKNOWN);
+            final int chargingStatus =
+                    intent.getIntExtra(
+                            BatteryManager.EXTRA_CHARGING_STATUS,
+                            BatteryManager.CHARGING_POLICY_DEFAULT);
+            final int batteryHealth =
+                    intent.getIntExtra(
+                            BatteryManager.EXTRA_HEALTH, BatteryManager.BATTERY_HEALTH_UNKNOWN);
             Log.d(
                     TAG,
                     "Battery changed: level: "
@@ -144,7 +145,7 @@
                 mBatteryListener.onBatteryChanged(BatteryUpdateType.CHARGING_STATUS);
             } else if (batteryHealth != mBatteryHealth) {
                 mBatteryListener.onBatteryChanged(BatteryUpdateType.BATTERY_HEALTH);
-            } else if(!batteryLevel.equals(mBatteryLevel)) {
+            } else if (!batteryLevel.equals(mBatteryLevel)) {
                 mBatteryListener.onBatteryChanged(BatteryUpdateType.BATTERY_LEVEL);
             } else if (!batteryStatus.equals(mBatteryStatus)) {
                 mBatteryListener.onBatteryChanged(BatteryUpdateType.BATTERY_STATUS);
diff --git a/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java
index a8335a9..d0b57fd 100644
--- a/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java
@@ -34,21 +34,16 @@
 import com.android.settingslib.Utils;
 import com.android.settingslib.widget.UsageProgressBarPreference;
 
-/**
- * Controller that update the battery header view
- */
+/** Controller that update the battery header view */
 public class BatteryHeaderPreferenceController extends BasePreferenceController
         implements PreferenceControllerMixin, BatteryPreferenceController {
     private static final String TAG = "BatteryHeaderPreferenceController";
 
-    @VisibleForTesting
-    static final String KEY_BATTERY_HEADER = "battery_header";
+    @VisibleForTesting static final String KEY_BATTERY_HEADER = "battery_header";
     private static final int BATTERY_MAX_LEVEL = 100;
 
-    @VisibleForTesting
-    BatteryStatusFeatureProvider mBatteryStatusFeatureProvider;
-    @VisibleForTesting
-    UsageProgressBarPreference mBatteryUsageProgressBarPref;
+    @VisibleForTesting BatteryStatusFeatureProvider mBatteryStatusFeatureProvider;
+    @VisibleForTesting UsageProgressBarPreference mBatteryUsageProgressBarPref;
 
     private BatteryTip mBatteryTip;
     private final PowerManager mPowerManager;
@@ -56,8 +51,8 @@
     public BatteryHeaderPreferenceController(Context context, String key) {
         super(context, key);
         mPowerManager = context.getSystemService(PowerManager.class);
-        mBatteryStatusFeatureProvider = FeatureFactory.getFeatureFactory()
-                .getBatteryStatusFeatureProvider();
+        mBatteryStatusFeatureProvider =
+                FeatureFactory.getFeatureFactory().getBatteryStatusFeatureProvider();
     }
 
     @Override
@@ -96,12 +91,11 @@
                     R.string.battery_state_and_duration, info.statusLabel, info.remainingLabel);
         } else if (mPowerManager.isPowerSaveMode()) {
             // Power save mode is on
-            final String powerSaverOn = mContext.getString(
-                    R.string.battery_tip_early_heads_up_done_title);
+            final String powerSaverOn =
+                    mContext.getString(R.string.battery_tip_early_heads_up_done_title);
             return mContext.getString(
                     R.string.battery_state_and_duration, powerSaverOn, info.remainingLabel);
-        } else if (mBatteryTip != null
-                && mBatteryTip.getType() == BatteryTip.TipType.LOW_BATTERY) {
+        } else if (mBatteryTip != null && mBatteryTip.getType() == BatteryTip.TipType.LOW_BATTERY) {
             // Low battery state
             final String lowBattery = mContext.getString(R.string.low_battery_summary);
             return mContext.getString(
@@ -122,9 +116,7 @@
         mBatteryUsageProgressBarPref.setPercent(info.batteryLevel, BATTERY_MAX_LEVEL);
     }
 
-    /**
-     * Callback which receives text for the summary line.
-     */
+    /** Callback which receives text for the summary line. */
     public void updateBatteryStatus(String label, BatteryInfo info) {
         final CharSequence summary = label != null ? label : generateLabel(info);
         mBatteryUsageProgressBarPref.setBottomSummary(summary);
@@ -132,8 +124,8 @@
     }
 
     public void quickUpdateHeaderPreference() {
-        Intent batteryBroadcast = com.android.settingslib.fuelgauge.BatteryUtils
-                .getBatteryIntent(mContext);
+        Intent batteryBroadcast =
+                com.android.settingslib.fuelgauge.BatteryUtils.getBatteryIntent(mContext);
         final int batteryLevel = Utils.getBatteryLevel(batteryBroadcast);
         final boolean discharging =
                 batteryBroadcast.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1) == 0;
@@ -142,9 +134,7 @@
         mBatteryUsageProgressBarPref.setPercent(batteryLevel, BATTERY_MAX_LEVEL);
     }
 
-    /**
-     * Update summary when battery tips changed.
-     */
+    /** Update summary when battery tips changed. */
     public void updateHeaderByBatteryTips(BatteryTip batteryTip, BatteryInfo batteryInfo) {
         mBatteryTip = batteryTip;
 
@@ -154,7 +144,8 @@
     }
 
     private CharSequence formatBatteryPercentageText(int batteryLevel) {
-        return TextUtils.expandTemplate(mContext.getText(R.string.battery_header_title_alternate),
+        return TextUtils.expandTemplate(
+                mContext.getText(R.string.battery_header_title_alternate),
                 NumberFormat.getIntegerInstance().format(batteryLevel));
     }
 }
diff --git a/src/com/android/settings/fuelgauge/BatteryInfo.java b/src/com/android/settings/fuelgauge/BatteryInfo.java
index 50ce579..ea8ef8d 100644
--- a/src/com/android/settings/fuelgauge/BatteryInfo.java
+++ b/src/com/android/settings/fuelgauge/BatteryInfo.java
@@ -68,93 +68,110 @@
 
     public void bindHistory(final UsageView view, BatteryDataParser... parsers) {
         final Context context = view.getContext();
-        BatteryDataParser parser = new BatteryDataParser() {
-            SparseIntArray points = new SparseIntArray();
-            long startTime;
-            int lastTime = -1;
-            byte lastLevel;
+        BatteryDataParser parser =
+                new BatteryDataParser() {
+                    SparseIntArray mPoints = new SparseIntArray();
+                    long mStartTime;
+                    int mLastTime = -1;
+                    byte mLastLevel;
 
-            @Override
-            public void onParsingStarted(long startTime, long endTime) {
-                this.startTime = startTime;
-                timePeriod = endTime - startTime;
-                view.clearPaths();
-                // Initially configure the graph for history only.
-                view.configureGraph((int) timePeriod, 100);
-            }
+                    @Override
+                    public void onParsingStarted(long startTime, long endTime) {
+                        this.mStartTime = startTime;
+                        timePeriod = endTime - startTime;
+                        view.clearPaths();
+                        // Initially configure the graph for history only.
+                        view.configureGraph((int) timePeriod, 100);
+                    }
 
-            @Override
-            public void onDataPoint(long time, HistoryItem record) {
-                lastTime = (int) time;
-                lastLevel = record.batteryLevel;
-                points.put(lastTime, lastLevel);
-            }
+                    @Override
+                    public void onDataPoint(long time, HistoryItem record) {
+                        mLastTime = (int) time;
+                        mLastLevel = record.batteryLevel;
+                        mPoints.put(mLastTime, mLastLevel);
+                    }
 
-            @Override
-            public void onDataGap() {
-                if (points.size() > 1) {
-                    view.addPath(points);
-                }
-                points.clear();
-            }
+                    @Override
+                    public void onDataGap() {
+                        if (mPoints.size() > 1) {
+                            view.addPath(mPoints);
+                        }
+                        mPoints.clear();
+                    }
 
-            @Override
-            public void onParsingDone() {
-                onDataGap();
+                    @Override
+                    public void onParsingDone() {
+                        onDataGap();
 
-                // Add projection if we have an estimate.
-                if (remainingTimeUs != 0) {
-                    PowerUsageFeatureProvider provider =
-                            FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider();
-                    if (!mCharging && provider.isEnhancedBatteryPredictionEnabled(context)) {
-                        points = provider.getEnhancedBatteryPredictionCurve(context, startTime);
-                    } else {
-                        // Linear extrapolation.
-                        if (lastTime >= 0) {
-                            points.put(lastTime, lastLevel);
-                            points.put((int) (timePeriod +
-                                            PowerUtil.convertUsToMs(remainingTimeUs)),
-                                    mCharging ? 100 : 0);
+                        // Add projection if we have an estimate.
+                        if (remainingTimeUs != 0) {
+                            PowerUsageFeatureProvider provider =
+                                    FeatureFactory.getFeatureFactory()
+                                            .getPowerUsageFeatureProvider();
+                            if (!mCharging
+                                    && provider.isEnhancedBatteryPredictionEnabled(context)) {
+                                mPoints =
+                                        provider.getEnhancedBatteryPredictionCurve(
+                                                context, mStartTime);
+                            } else {
+                                // Linear extrapolation.
+                                if (mLastTime >= 0) {
+                                    mPoints.put(mLastTime, mLastLevel);
+                                    mPoints.put(
+                                            (int)
+                                                    (timePeriod
+                                                            + PowerUtil.convertUsToMs(
+                                                                    remainingTimeUs)),
+                                            mCharging ? 100 : 0);
+                                }
+                            }
+                        }
+
+                        // If we have a projection, reconfigure the graph to show it.
+                        if (mPoints != null && mPoints.size() > 0) {
+                            int maxTime = mPoints.keyAt(mPoints.size() - 1);
+                            view.configureGraph(maxTime, 100);
+                            view.addProjectedPath(mPoints);
                         }
                     }
-                }
-
-                // If we have a projection, reconfigure the graph to show it.
-                if (points != null && points.size() > 0) {
-                    int maxTime = points.keyAt(points.size() - 1);
-                    view.configureGraph(maxTime, 100);
-                    view.addProjectedPath(points);
-                }
-            }
-        };
+                };
         BatteryDataParser[] parserList = new BatteryDataParser[parsers.length + 1];
         for (int i = 0; i < parsers.length; i++) {
             parserList[i] = parsers[i];
         }
         parserList[parsers.length] = parser;
         parseBatteryHistory(parserList);
-        String timeString = context.getString(com.android.settingslib.R.string.charge_length_format,
-                Formatter.formatShortElapsedTime(context, timePeriod));
+        String timeString =
+                context.getString(
+                        com.android.settingslib.R.string.charge_length_format,
+                        Formatter.formatShortElapsedTime(context, timePeriod));
         String remaining = "";
         if (remainingTimeUs != 0) {
-            remaining = context.getString(com.android.settingslib.R.string.remaining_length_format,
-                    Formatter.formatShortElapsedTime(context, remainingTimeUs / 1000));
+            remaining =
+                    context.getString(
+                            com.android.settingslib.R.string.remaining_length_format,
+                            Formatter.formatShortElapsedTime(context, remainingTimeUs / 1000));
         }
-        view.setBottomLabels(new CharSequence[]{timeString, remaining});
+        view.setBottomLabels(new CharSequence[] {timeString, remaining});
     }
 
-    public static void getBatteryInfo(final Context context, final Callback callback,
-            boolean shortString) {
-        BatteryInfo.getBatteryInfo(context, callback,  /* batteryUsageStats */ null, shortString);
+    /** Gets battery info */
+    public static void getBatteryInfo(
+            final Context context, final Callback callback, boolean shortString) {
+        BatteryInfo.getBatteryInfo(context, callback, /* batteryUsageStats */ null, shortString);
     }
 
     static long getSettingsChargeTimeRemaining(final Context context) {
         return Settings.Global.getLong(
                 context.getContentResolver(),
-                com.android.settingslib.fuelgauge.BatteryUtils.GLOBAL_TIME_TO_FULL_MILLIS, -1);
+                com.android.settingslib.fuelgauge.BatteryUtils.GLOBAL_TIME_TO_FULL_MILLIS,
+                -1);
     }
 
-    public static void getBatteryInfo(final Context context, final Callback callback,
+    /** Gets battery info */
+    public static void getBatteryInfo(
+            final Context context,
+            final Callback callback,
             @Nullable final BatteryUsageStats batteryUsageStats,
             boolean shortString) {
         new AsyncTask<Void, Void, BatteryInfo>() {
@@ -166,8 +183,9 @@
                     stats = batteryUsageStats;
                 } else {
                     try {
-                        stats = context.getSystemService(BatteryStatsManager.class)
-                                .getBatteryUsageStats();
+                        stats =
+                                context.getSystemService(BatteryStatsManager.class)
+                                        .getBatteryUsageStats();
                         shouldCloseBatteryUsageStats = true;
                     } catch (RuntimeException e) {
                         Log.e(TAG, "getBatteryInfo() from getBatteryUsageStats()", e);
@@ -175,8 +193,7 @@
                         stats = new BatteryUsageStats.Builder(new String[0]).build();
                     }
                 }
-                final BatteryInfo batteryInfo =
-                        getBatteryInfo(context, stats, shortString);
+                final BatteryInfo batteryInfo = getBatteryInfo(context, stats, shortString);
                 if (shouldCloseBatteryUsageStats) {
                     try {
                         stats.close();
@@ -196,23 +213,22 @@
         }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
     }
 
-    /**
-     * Creates a BatteryInfo based on BatteryUsageStats
-     */
+    /** Creates a BatteryInfo based on BatteryUsageStats */
     @WorkerThread
-    public static BatteryInfo getBatteryInfo(final Context context,
-            @NonNull final BatteryUsageStats batteryUsageStats, boolean shortString) {
+    public static BatteryInfo getBatteryInfo(
+            final Context context,
+            @NonNull final BatteryUsageStats batteryUsageStats,
+            boolean shortString) {
         final long batteryStatsTime = System.currentTimeMillis();
         BatteryUtils.logRuntime(LOG_TAG, "time for getStats", batteryStatsTime);
 
         final long startTime = System.currentTimeMillis();
         PowerUsageFeatureProvider provider =
                 FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider();
-        final long elapsedRealtimeUs =
-                PowerUtil.convertMsToUs(SystemClock.elapsedRealtime());
+        final long elapsedRealtimeUs = PowerUtil.convertMsToUs(SystemClock.elapsedRealtime());
 
-        final Intent batteryBroadcast = context.registerReceiver(null,
-                new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
+        final Intent batteryBroadcast =
+                context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
         // 0 means we are discharging, anything else means charging
         final boolean discharging =
                 batteryBroadcast.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1) == 0;
@@ -221,40 +237,65 @@
             Estimate estimate = provider.getEnhancedBatteryPrediction(context);
             if (estimate != null) {
                 Estimate.storeCachedEstimate(context, estimate);
-                BatteryUtils
-                        .logRuntime(LOG_TAG, "time for enhanced BatteryInfo", startTime);
-                return BatteryInfo.getBatteryInfo(context, batteryBroadcast, batteryUsageStats,
-                        estimate, elapsedRealtimeUs, shortString);
+                BatteryUtils.logRuntime(LOG_TAG, "time for enhanced BatteryInfo", startTime);
+                return BatteryInfo.getBatteryInfo(
+                        context,
+                        batteryBroadcast,
+                        batteryUsageStats,
+                        estimate,
+                        elapsedRealtimeUs,
+                        shortString);
             }
         }
         final long prediction = discharging ? batteryUsageStats.getBatteryTimeRemainingMs() : 0;
-        final Estimate estimate = new Estimate(
-                prediction,
-                false, /* isBasedOnUsage */
-                EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN);
+        final Estimate estimate =
+                new Estimate(
+                        prediction,
+                        false, /* isBasedOnUsage */
+                        EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN);
         BatteryUtils.logRuntime(LOG_TAG, "time for regular BatteryInfo", startTime);
-        return BatteryInfo.getBatteryInfo(context, batteryBroadcast, batteryUsageStats,
-                estimate, elapsedRealtimeUs, shortString);
+        return BatteryInfo.getBatteryInfo(
+                context,
+                batteryBroadcast,
+                batteryUsageStats,
+                estimate,
+                elapsedRealtimeUs,
+                shortString);
     }
 
     @WorkerThread
-    public static BatteryInfo getBatteryInfoOld(Context context, Intent batteryBroadcast,
-            BatteryUsageStats batteryUsageStats, long elapsedRealtimeUs, boolean shortString) {
-        Estimate estimate = new Estimate(
-                batteryUsageStats.getBatteryTimeRemainingMs(),
-                false,
-                EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN);
-        return getBatteryInfo(context, batteryBroadcast, batteryUsageStats, estimate,
-                elapsedRealtimeUs, shortString);
+    public static BatteryInfo getBatteryInfoOld(
+            Context context,
+            Intent batteryBroadcast,
+            BatteryUsageStats batteryUsageStats,
+            long elapsedRealtimeUs,
+            boolean shortString) {
+        Estimate estimate =
+                new Estimate(
+                        batteryUsageStats.getBatteryTimeRemainingMs(),
+                        false,
+                        EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN);
+        return getBatteryInfo(
+                context,
+                batteryBroadcast,
+                batteryUsageStats,
+                estimate,
+                elapsedRealtimeUs,
+                shortString);
     }
 
     @WorkerThread
-    public static BatteryInfo getBatteryInfo(Context context, Intent batteryBroadcast,
-            @NonNull BatteryUsageStats batteryUsageStats, Estimate estimate,
-            long elapsedRealtimeUs, boolean shortString) {
+    public static BatteryInfo getBatteryInfo(
+            Context context,
+            Intent batteryBroadcast,
+            @NonNull BatteryUsageStats batteryUsageStats,
+            Estimate estimate,
+            long elapsedRealtimeUs,
+            boolean shortString) {
         final long startTime = System.currentTimeMillis();
-        final boolean isCompactStatus = context.getResources().getBoolean(
-                com.android.settings.R.bool.config_use_compact_battery_status);
+        final boolean isCompactStatus =
+                context.getResources()
+                        .getBoolean(com.android.settings.R.bool.config_use_compact_battery_status);
         BatteryInfo info = new BatteryInfo();
         info.mBatteryUsageStats = batteryUsageStats;
         info.batteryLevel = Utils.getBatteryLevel(batteryBroadcast);
@@ -262,25 +303,32 @@
         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;
+        info.isBatteryDefender =
+                batteryBroadcast.getIntExtra(
+                                BatteryManager.EXTRA_CHARGING_STATUS,
+                                BatteryManager.CHARGING_POLICY_DEFAULT)
+                        == BatteryManager.CHARGING_POLICY_ADAPTIVE_LONGLIFE;
 
         info.statusLabel = Utils.getBatteryStatus(context, batteryBroadcast, isCompactStatus);
-        info.batteryStatus = batteryBroadcast.getIntExtra(
-                BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_STATUS_UNKNOWN);
+        info.batteryStatus =
+                batteryBroadcast.getIntExtra(
+                        BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_STATUS_UNKNOWN);
         if (!info.mCharging) {
             updateBatteryInfoDischarging(context, shortString, estimate, info);
         } else {
-            updateBatteryInfoCharging(context, batteryBroadcast, batteryUsageStats,
-                    info, isCompactStatus);
+            updateBatteryInfoCharging(
+                    context, batteryBroadcast, batteryUsageStats, info, isCompactStatus);
         }
         BatteryUtils.logRuntime(LOG_TAG, "time for getBatteryInfo", startTime);
         return info;
     }
 
-    private static void updateBatteryInfoCharging(Context context, Intent batteryBroadcast,
-            BatteryUsageStats stats, BatteryInfo info, boolean compactStatus) {
+    private static void updateBatteryInfoCharging(
+            Context context,
+            Intent batteryBroadcast,
+            BatteryUsageStats stats,
+            BatteryInfo info,
+            boolean compactStatus) {
         final Resources resources = context.getResources();
         final long chargeTimeMs = stats.getChargeTimeRemainingMs();
         if (getSettingsChargeTimeRemaining(context) != chargeTimeMs) {
@@ -290,59 +338,76 @@
                     chargeTimeMs);
         }
 
-        final int status = batteryBroadcast.getIntExtra(BatteryManager.EXTRA_STATUS,
-                BatteryManager.BATTERY_STATUS_UNKNOWN);
+        final int status =
+                batteryBroadcast.getIntExtra(
+                        BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_STATUS_UNKNOWN);
         info.discharging = false;
         info.suggestionLabel = null;
         int dockDefenderMode = BatteryUtils.getCurrentDockDefenderMode(context, info);
-        if ((info.isBatteryDefender && status != BatteryManager.BATTERY_STATUS_FULL
-                && dockDefenderMode == BatteryUtils.DockDefenderMode.DISABLED)
+        if ((info.isBatteryDefender
+                        && status != BatteryManager.BATTERY_STATUS_FULL
+                        && dockDefenderMode == BatteryUtils.DockDefenderMode.DISABLED)
                 || dockDefenderMode == BatteryUtils.DockDefenderMode.ACTIVE) {
             // Battery defender active, battery charging paused
             info.remainingLabel = null;
             int chargingLimitedResId = com.android.settingslib.R.string.power_charging_limited;
             info.chargeLabel = context.getString(chargingLimitedResId, info.batteryPercentString);
-        } else if ((chargeTimeMs > 0 && status != BatteryManager.BATTERY_STATUS_FULL
-                && dockDefenderMode == BatteryUtils.DockDefenderMode.DISABLED)
+        } else if ((chargeTimeMs > 0
+                        && status != BatteryManager.BATTERY_STATUS_FULL
+                        && dockDefenderMode == BatteryUtils.DockDefenderMode.DISABLED)
                 || dockDefenderMode == BatteryUtils.DockDefenderMode.TEMPORARILY_BYPASSED) {
             // Battery is charging to full
             info.remainingTimeUs = PowerUtil.convertMsToUs(chargeTimeMs);
-            final CharSequence timeString = StringUtil.formatElapsedTime(context,
-                    (double) PowerUtil.convertUsToMs(info.remainingTimeUs), false /* withSeconds */,
-                    true /* collapseTimeUnit */);
+            final CharSequence timeString =
+                    StringUtil.formatElapsedTime(
+                            context,
+                            (double) PowerUtil.convertUsToMs(info.remainingTimeUs),
+                            false /* withSeconds */,
+                            true /* collapseTimeUnit */);
             int resId = com.android.settingslib.R.string.power_charging_duration;
-            info.remainingLabel = chargeTimeMs <= 0 ? null : context.getString(
-                    com.android.settingslib.R.string.power_remaining_charging_duration_only,
-                    timeString);
-            info.chargeLabel = chargeTimeMs <= 0 ? info.batteryPercentString
-                    : context.getString(resId, info.batteryPercentString, timeString);
+            info.remainingLabel =
+                    chargeTimeMs <= 0
+                            ? null
+                            : context.getString(
+                                    com.android.settingslib.R.string
+                                            .power_remaining_charging_duration_only,
+                                    timeString);
+            info.chargeLabel =
+                    chargeTimeMs <= 0
+                            ? info.batteryPercentString
+                            : context.getString(resId, info.batteryPercentString, timeString);
         } else if (dockDefenderMode == BatteryUtils.DockDefenderMode.FUTURE_BYPASS) {
             // Dock defender will be triggered in the future, charging will be optimized.
-            info.chargeLabel = context.getString(
-                    com.android.settingslib.R.string.power_charging_future_paused,
-                    info.batteryPercentString);
+            info.chargeLabel =
+                    context.getString(
+                            com.android.settingslib.R.string.power_charging_future_paused,
+                            info.batteryPercentString);
         } else {
-            final String chargeStatusLabel = Utils.getBatteryStatus(context, batteryBroadcast,
-                    compactStatus);
+            final String chargeStatusLabel =
+                    Utils.getBatteryStatus(context, batteryBroadcast, compactStatus);
             info.remainingLabel = null;
-            info.chargeLabel = info.batteryLevel == 100 ? info.batteryPercentString :
-                    resources.getString(com.android.settingslib.R.string.power_charging,
-                            info.batteryPercentString, chargeStatusLabel);
+            info.chargeLabel =
+                    info.batteryLevel == 100
+                            ? info.batteryPercentString
+                            : resources.getString(
+                                    com.android.settingslib.R.string.power_charging,
+                                    info.batteryPercentString,
+                                    chargeStatusLabel);
         }
     }
 
-    private static void updateBatteryInfoDischarging(Context context, boolean shortString,
-            Estimate estimate, BatteryInfo info) {
+    private static void updateBatteryInfoDischarging(
+            Context context, boolean shortString, Estimate estimate, BatteryInfo info) {
         final long drainTimeUs = PowerUtil.convertMsToUs(estimate.getEstimateMillis());
         if (drainTimeUs > 0) {
             info.remainingTimeUs = drainTimeUs;
-            info.remainingLabel = PowerUtil.getBatteryRemainingShortStringFormatted(
-                    context,
-                    PowerUtil.convertUsToMs(drainTimeUs)
-            );
+            info.remainingLabel =
+                    PowerUtil.getBatteryRemainingShortStringFormatted(
+                            context, PowerUtil.convertUsToMs(drainTimeUs));
             info.chargeLabel = info.remainingLabel;
-            info.suggestionLabel = PowerUtil.getBatteryTipStringFormatted(
-                    context, PowerUtil.convertUsToMs(drainTimeUs));
+            info.suggestionLabel =
+                    PowerUtil.getBatteryTipStringFormatted(
+                            context, PowerUtil.convertUsToMs(drainTimeUs));
         } else {
             info.remainingLabel = null;
             info.suggestionLabel = null;
@@ -361,8 +426,8 @@
     }
 
     /**
-     * Iterates over battery history included in the BatteryUsageStats that this object
-     * was initialized with.
+     * Iterates over battery history included in the BatteryUsageStats that this object was
+     * initialized with.
      */
     public void parseBatteryHistory(BatteryDataParser... parsers) {
         long startWalltime = 0;
@@ -384,8 +449,7 @@
                 first = false;
                 historyStart = rec.time;
             }
-            if (rec.cmd == HistoryItem.CMD_CURRENT_TIME
-                    || rec.cmd == HistoryItem.CMD_RESET) {
+            if (rec.cmd == HistoryItem.CMD_CURRENT_TIME || rec.cmd == HistoryItem.CMD_RESET) {
                 // If there is a ridiculously large jump in time, then we won't be
                 // able to create a good chart with that data, so just ignore the
                 // times we got before and pretend like our data extends back from
@@ -447,7 +511,7 @@
 
                     if (rec.cmd != HistoryItem.CMD_OVERFLOW
                             && (rec.cmd != HistoryItem.CMD_CURRENT_TIME
-                            || Math.abs(lastWalltime - curWalltime) > (60 * 60 * 1000))) {
+                                    || Math.abs(lastWalltime - curWalltime) > (60 * 60 * 1000))) {
                         for (int j = 0; j < parsers.length; j++) {
                             parsers[j].onDataGap();
                         }
diff --git a/src/com/android/settings/fuelgauge/BatteryInfoLoader.java b/src/com/android/settings/fuelgauge/BatteryInfoLoader.java
index ffee462..5ea94f8 100644
--- a/src/com/android/settings/fuelgauge/BatteryInfoLoader.java
+++ b/src/com/android/settings/fuelgauge/BatteryInfoLoader.java
@@ -26,11 +26,10 @@
  * automatically grab enhanced battery estimates if available or fall back to the system estimate
  * when not available.
  */
-public class BatteryInfoLoader extends AsyncLoaderCompat<BatteryInfo>{
+public class BatteryInfoLoader extends AsyncLoaderCompat<BatteryInfo> {
     private static final String LOG_TAG = "BatteryInfoLoader";
 
-    @VisibleForTesting
-    BatteryUtils mBatteryUtils;
+    @VisibleForTesting BatteryUtils mBatteryUtils;
 
     public BatteryInfoLoader(Context context) {
         super(context);
@@ -38,9 +37,7 @@
     }
 
     @Override
-    protected void onDiscardResult(BatteryInfo result) {
-
-    }
+    protected void onDiscardResult(BatteryInfo result) {}
 
     @Override
     public BatteryInfo loadInBackground() {
diff --git a/src/com/android/settings/fuelgauge/BatteryMeterView.java b/src/com/android/settings/fuelgauge/BatteryMeterView.java
index 1cd9f71..ecd8a1b 100644
--- a/src/com/android/settings/fuelgauge/BatteryMeterView.java
+++ b/src/com/android/settings/fuelgauge/BatteryMeterView.java
@@ -29,14 +29,10 @@
 import com.android.settingslib.graph.ThemedBatteryDrawable;
 
 public class BatteryMeterView extends ImageView {
-    @VisibleForTesting
-    BatteryMeterDrawable mDrawable;
-    @VisibleForTesting
-    ColorFilter mErrorColorFilter;
-    @VisibleForTesting
-    ColorFilter mAccentColorFilter;
-    @VisibleForTesting
-    ColorFilter mForegroundColorFilter;
+    @VisibleForTesting BatteryMeterDrawable mDrawable;
+    @VisibleForTesting ColorFilter mErrorColorFilter;
+    @VisibleForTesting ColorFilter mAccentColorFilter;
+    @VisibleForTesting ColorFilter mForegroundColorFilter;
 
     public BatteryMeterView(Context context) {
         this(context, null, 0);
@@ -51,12 +47,15 @@
 
         final int frameColor =
                 context.getColor(com.android.settingslib.R.color.meter_background_color);
-        mAccentColorFilter = Utils.getAlphaInvariantColorFilterForColor(
-                Utils.getColorAttrDefaultColor(context, android.R.attr.colorAccent));
-        mErrorColorFilter = Utils.getAlphaInvariantColorFilterForColor(
-                context.getColor(R.color.battery_icon_color_error));
-        mForegroundColorFilter = Utils.getAlphaInvariantColorFilterForColor(
-                Utils.getColorAttrDefaultColor(context, android.R.attr.colorForeground));
+        mAccentColorFilter =
+                Utils.getAlphaInvariantColorFilterForColor(
+                        Utils.getColorAttrDefaultColor(context, android.R.attr.colorAccent));
+        mErrorColorFilter =
+                Utils.getAlphaInvariantColorFilterForColor(
+                        context.getColor(R.color.battery_icon_color_error));
+        mForegroundColorFilter =
+                Utils.getAlphaInvariantColorFilterForColor(
+                        Utils.getColorAttrDefaultColor(context, android.R.attr.colorForeground));
         mDrawable = new BatteryMeterDrawable(context, frameColor);
         mDrawable.setColorFilter(mAccentColorFilter);
         setImageDrawable(mDrawable);
@@ -108,10 +107,10 @@
         public BatteryMeterDrawable(Context context, int frameColor) {
             super(context, frameColor);
 
-            mIntrinsicWidth = context.getResources()
-                    .getDimensionPixelSize(R.dimen.battery_meter_width);
-            mIntrinsicHeight = context.getResources()
-                    .getDimensionPixelSize(R.dimen.battery_meter_height);
+            mIntrinsicWidth =
+                    context.getResources().getDimensionPixelSize(R.dimen.battery_meter_width);
+            mIntrinsicHeight =
+                    context.getResources().getDimensionPixelSize(R.dimen.battery_meter_height);
         }
 
         public BatteryMeterDrawable(Context context, int frameColor, int width, int height) {
diff --git a/src/com/android/settings/fuelgauge/BatteryOptimizeLogUtils.java b/src/com/android/settings/fuelgauge/BatteryOptimizeLogUtils.java
index d093d35..afdae8e 100644
--- a/src/com/android/settings/fuelgauge/BatteryOptimizeLogUtils.java
+++ b/src/com/android/settings/fuelgauge/BatteryOptimizeLogUtils.java
@@ -34,8 +34,7 @@
     private static final String BATTERY_OPTIMIZE_FILE_NAME = "battery_optimize_historical_logs";
     private static final String LOGS_KEY = "battery_optimize_logs_key";
 
-    @VisibleForTesting
-    static final int MAX_ENTRIES = 40;
+    @VisibleForTesting static final int MAX_ENTRIES = 40;
 
     private BatteryOptimizeLogUtils() {}
 
@@ -45,8 +44,11 @@
         writeLog(getSharedPreferences(context), action, packageName, actionDescription);
     }
 
-    static void writeLog(SharedPreferences sharedPreferences, Action action,
-            String packageName, String actionDescription) {
+    static void writeLog(
+            SharedPreferences sharedPreferences,
+            Action action,
+            String packageName,
+            String actionDescription) {
         writeLog(
                 sharedPreferences,
                 BatteryOptimizeHistoricalLogEntry.newBuilder()
@@ -70,10 +72,7 @@
 
         String loggingContent =
                 Base64.encodeToString(newLogBuilder.build().toByteArray(), Base64.DEFAULT);
-        sharedPreferences
-                .edit()
-                .putString(LOGS_KEY, loggingContent)
-                .apply();
+        sharedPreferences.edit().putString(LOGS_KEY, loggingContent).apply();
     }
 
     private static BatteryOptimizeHistoricalLog parseLogFromString(String storedLogs) {
@@ -107,9 +106,11 @@
     }
 
     private static String toString(BatteryOptimizeHistoricalLogEntry entry) {
-        return String.format("%s\t%s\taction:%s\tevent:%s",
+        return String.format(
+                "%s\t%s\taction:%s\tevent:%s",
                 ConvertUtils.utcToLocalTimeForLogging(entry.getTimestamp()),
-                entry.getPackageName(), entry.getAction(),
+                entry.getPackageName(),
+                entry.getAction(),
                 entry.getActionDescription());
     }
 
diff --git a/src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java b/src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java
index 124840e..6d3bd6b 100644
--- a/src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java
+++ b/src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java
@@ -45,6 +45,10 @@
     private static final String TAG = "BatteryOptimizeUtils";
     private static final String UNKNOWN_PACKAGE = "unknown";
 
+    // Avoid reload the data again since it is predefined in the resource/config.
+    private static List<String> sBatteryOptimizeModeList = null;
+    private static List<String> sBatteryUnrestrictModeList = null;
+
     @VisibleForTesting AppOpsManager mAppOpsManager;
     @VisibleForTesting BatteryUtils mBatteryUtils;
     @VisibleForTesting PowerAllowlistBackend mPowerAllowListBackend;
@@ -58,24 +62,26 @@
     // If current user is admin, match apps from all users. Otherwise, only match the currect user.
     private static final int RETRIEVE_FLAG_ADMIN =
             PackageManager.MATCH_ANY_USER
-                | PackageManager.MATCH_DISABLED_COMPONENTS
-                | PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS;
+                    | PackageManager.MATCH_DISABLED_COMPONENTS
+                    | PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS;
     private static final int RETRIEVE_FLAG =
             PackageManager.MATCH_DISABLED_COMPONENTS
-                | PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS;
+                    | PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS;
 
     // Optimization modes.
-    static final int MODE_UNKNOWN = 0;
-    static final int MODE_RESTRICTED = 1;
-    static final int MODE_UNRESTRICTED = 2;
-    static final int MODE_OPTIMIZED = 3;
+    public static final int MODE_UNKNOWN = 0;
+    public static final int MODE_RESTRICTED = 1;
+    public static final int MODE_UNRESTRICTED = 2;
+    public static final int MODE_OPTIMIZED = 3;
 
-    @IntDef(prefix = {"MODE_"}, value = {
-        MODE_UNKNOWN,
-        MODE_RESTRICTED,
-        MODE_UNRESTRICTED,
-        MODE_OPTIMIZED,
-    })
+    @IntDef(
+            prefix = {"MODE_"},
+            value = {
+                MODE_UNKNOWN,
+                MODE_RESTRICTED,
+                MODE_UNRESTRICTED,
+                MODE_OPTIMIZED,
+            })
     @Retention(RetentionPolicy.SOURCE)
     static @interface OptimizationMode {}
 
@@ -114,8 +120,12 @@
     /** Resets optimization mode for all applications. */
     public static void resetAppOptimizationMode(
             Context context, IPackageManager ipm, AppOpsManager aom) {
-        resetAppOptimizationMode(context, ipm, aom,
-                PowerAllowlistBackend.getInstance(context), BatteryUtils.getInstance(context));
+        resetAppOptimizationMode(
+                context,
+                ipm,
+                aom,
+                PowerAllowlistBackend.getInstance(context),
+                BatteryUtils.getInstance(context));
     }
 
     /** Sets the {@link OptimizationMode} for associated app. */
@@ -130,21 +140,31 @@
 
     /** Return {@code true} if it is disabled for default optimized mode only. */
     public boolean isDisabledForOptimizeModeOnly() {
-        return getAllowList(mContext).contains(mPackageName)
+        return getForceBatteryOptimizeModeList(mContext).contains(mPackageName)
                 || mBatteryUtils.getPackageUid(mPackageName) == BatteryUtils.UID_NULL;
     }
 
-    /**
-     * Return {@code true} if this package is system or default active app.
-     */
+    /** Return {@code true} if this package is system or default active app. */
     public boolean isSystemOrDefaultApp() {
         mPowerAllowListBackend.refreshList();
-        return isSystemOrDefaultApp(mPowerAllowListBackend, mPackageName, mUid);
+        return isSystemOrDefaultApp(mContext, mPowerAllowListBackend, mPackageName, mUid);
+    }
+
+    /** Return {@code true} if the optimization mode of this package can be changed */
+    public boolean isOptimizeModeMutable() {
+        return !isDisabledForOptimizeModeOnly() && !isSystemOrDefaultApp();
     }
 
     /**
-      * Gets the list of installed applications.
-      */
+     * Return {@code true} if the optimization mode is mutable and current state is not restricted
+     */
+    public boolean isSelectorPreferenceEnabled() {
+        // Enable the preference if apps are not set into restricted mode, otherwise disable it
+        return isOptimizeModeMutable()
+                && getAppOptimizationMode() != BatteryOptimizeUtils.MODE_RESTRICTED;
+    }
+
+    /** Gets the list of installed applications. */
     public static ArraySet<ApplicationInfo> getInstalledApplications(
             Context context, IPackageManager ipm) {
         final ArraySet<ApplicationInfo> applications = new ArraySet<>();
@@ -152,9 +172,10 @@
         for (UserInfo userInfo : um.getProfiles(UserHandle.myUserId())) {
             try {
                 @SuppressWarnings("unchecked")
-                final ParceledListSlice<ApplicationInfo> infoList = ipm.getInstalledApplications(
-                        userInfo.isAdmin() ? RETRIEVE_FLAG_ADMIN : RETRIEVE_FLAG,
-                        userInfo.id);
+                final ParceledListSlice<ApplicationInfo> infoList =
+                        ipm.getInstalledApplications(
+                                userInfo.isAdmin() ? RETRIEVE_FLAG_ADMIN : RETRIEVE_FLAG,
+                                userInfo.id);
                 if (infoList != null) {
                     applications.addAll(infoList.getList());
                 }
@@ -165,15 +186,19 @@
         }
         // Removes the application which is disabled by the system.
         applications.removeIf(
-                info -> info.enabledSetting != PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER
-                    && !info.enabled);
+                info ->
+                        info.enabledSetting != PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER
+                                && !info.enabled);
         return applications;
     }
 
     @VisibleForTesting
     static void resetAppOptimizationMode(
-            Context context, IPackageManager ipm, AppOpsManager aom,
-            PowerAllowlistBackend allowlistBackend, BatteryUtils batteryUtils) {
+            Context context,
+            IPackageManager ipm,
+            AppOpsManager aom,
+            PowerAllowlistBackend allowlistBackend,
+            BatteryUtils batteryUtils) {
         final ArraySet<ApplicationInfo> applications = getInstalledApplications(context, ipm);
         if (applications == null || applications.isEmpty()) {
             Log.w(TAG, "no data found in the getInstalledApplications()");
@@ -183,21 +208,30 @@
         allowlistBackend.refreshList();
         // Resets optimization mode for each application.
         for (ApplicationInfo info : applications) {
-            final int mode = aom.checkOpNoThrow(
-                    AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, info.uid, info.packageName);
+            final int mode =
+                    aom.checkOpNoThrow(
+                            AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, info.uid, info.packageName);
             @OptimizationMode
-            final int optimizationMode = getAppOptimizationMode(
-                    mode, allowlistBackend.isAllowlisted(info.packageName, info.uid));
+            final int optimizationMode =
+                    getAppOptimizationMode(
+                            mode, allowlistBackend.isAllowlisted(info.packageName, info.uid));
             // Ignores default optimized/unknown state or system/default apps.
             if (optimizationMode == MODE_OPTIMIZED
                     || optimizationMode == MODE_UNKNOWN
-                    || isSystemOrDefaultApp(allowlistBackend, info.packageName, info.uid)) {
+                    || isSystemOrDefaultApp(
+                            context, allowlistBackend, info.packageName, info.uid)) {
                 continue;
             }
 
             // Resets to the default mode: MODE_OPTIMIZED.
-            setAppUsageStateInternal(context, MODE_OPTIMIZED, info.uid, info.packageName,
-                    batteryUtils, allowlistBackend, Action.RESET);
+            setAppUsageStateInternal(
+                    context,
+                    MODE_OPTIMIZED,
+                    info.uid,
+                    info.packageName,
+                    batteryUtils,
+                    allowlistBackend,
+                    Action.RESET);
         }
     }
 
@@ -211,19 +245,45 @@
     }
 
     static boolean isSystemOrDefaultApp(
-            PowerAllowlistBackend powerAllowlistBackend, String packageName, int uid) {
+            Context context,
+            PowerAllowlistBackend powerAllowlistBackend,
+            String packageName,
+            int uid) {
         return powerAllowlistBackend.isSysAllowlisted(packageName)
+                // Always forced unrestricted apps are one type of system important apps.
+                || getForceBatteryUnrestrictModeList(context).contains(packageName)
                 || powerAllowlistBackend.isDefaultActiveApp(packageName, uid);
     }
 
-    static List<String> getAllowList(Context context) {
-        return Arrays.asList(context.getResources().getStringArray(
-                R.array.config_disable_optimization_mode_apps));
+    static List<String> getForceBatteryOptimizeModeList(Context context) {
+        if (sBatteryOptimizeModeList == null) {
+            sBatteryOptimizeModeList =
+                    Arrays.asList(
+                            context.getResources()
+                                    .getStringArray(
+                                            R.array.config_force_battery_optimize_mode_apps));
+        }
+        return sBatteryOptimizeModeList;
+    }
+
+    static List<String> getForceBatteryUnrestrictModeList(Context context) {
+        if (sBatteryUnrestrictModeList == null) {
+            sBatteryUnrestrictModeList =
+                    Arrays.asList(
+                            context.getResources()
+                                    .getStringArray(
+                                            R.array.config_force_battery_unrestrict_mode_apps));
+        }
+        return sBatteryUnrestrictModeList;
     }
 
     private static void setAppUsageStateInternal(
-            Context context, @OptimizationMode int mode, int uid, String packageName,
-            BatteryUtils batteryUtils, PowerAllowlistBackend powerAllowlistBackend,
+            Context context,
+            @OptimizationMode int mode,
+            int uid,
+            String packageName,
+            BatteryUtils batteryUtils,
+            PowerAllowlistBackend powerAllowlistBackend,
             Action action) {
         if (mode == MODE_UNKNOWN) {
             Log.d(TAG, "set unknown app optimization mode.");
@@ -237,16 +297,29 @@
                 mode == MODE_RESTRICTED ? AppOpsManager.MODE_IGNORED : AppOpsManager.MODE_ALLOWED;
         final boolean allowListed = mode == MODE_UNRESTRICTED;
 
-        setAppOptimizationModeInternal(context, appOpsManagerMode, allowListed, uid,
-                packageName, batteryUtils, powerAllowlistBackend, action);
+        setAppOptimizationModeInternal(
+                context,
+                appOpsManagerMode,
+                allowListed,
+                uid,
+                packageName,
+                batteryUtils,
+                powerAllowlistBackend,
+                action);
     }
 
     private static void setAppOptimizationModeInternal(
-            Context context, int appStandbyMode, boolean allowListed, int uid, String packageName,
-            BatteryUtils batteryUtils, PowerAllowlistBackend powerAllowlistBackend,
+            Context context,
+            int appStandbyMode,
+            boolean allowListed,
+            int uid,
+            String packageName,
+            BatteryUtils batteryUtils,
+            PowerAllowlistBackend powerAllowlistBackend,
             Action action) {
-        final String packageNameKey = BatteryOptimizeLogUtils
-                .getPackageNameWithUserId(packageName, UserHandle.myUserId());
+        final String packageNameKey =
+                BatteryOptimizeLogUtils.getPackageNameWithUserId(
+                        packageName, UserHandle.myUserId());
         try {
             batteryUtils.setForceAppStandby(uid, packageName, appStandbyMode);
             if (allowListed) {
@@ -260,24 +333,27 @@
             Log.e(TAG, "set OPTIMIZATION MODE failed for " + packageName, e);
         }
         BatteryOptimizeLogUtils.writeLog(
-                context,
-                action,
-                packageNameKey,
-                createLogEvent(appStandbyMode, allowListed));
+                context, action, packageNameKey, createLogEvent(appStandbyMode, allowListed));
     }
 
     private void refreshState() {
         mPowerAllowListBackend.refreshList();
         mAllowListed = mPowerAllowListBackend.isAllowlisted(mPackageName, mUid);
-        mMode = mAppOpsManager
-                .checkOpNoThrow(AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, mUid, mPackageName);
-        Log.d(TAG, String.format("refresh %s state, allowlisted = %s, mode = %d",
-                mPackageName, mAllowListed, mMode));
+        mMode =
+                mAppOpsManager.checkOpNoThrow(
+                        AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, mUid, mPackageName);
+        Log.d(
+                TAG,
+                String.format(
+                        "refresh %s state, allowlisted = %s, mode = %d",
+                        mPackageName, mAllowListed, mMode));
     }
 
     private static String createLogEvent(int appStandbyMode, boolean allowListed) {
-        return appStandbyMode < 0 ? "Apply optimize setting ERROR" :
-                String.format("\tStandbyMode: %s, allowListed: %s, mode: %s",
+        return appStandbyMode < 0
+                ? "Apply optimize setting ERROR"
+                : String.format(
+                        "\tStandbyMode: %s, allowListed: %s, mode: %s",
                         appStandbyMode,
                         allowListed,
                         getAppOptimizationMode(appStandbyMode, allowListed));
diff --git a/src/com/android/settings/fuelgauge/BatteryPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryPreferenceController.java
index badf5c8..08ad1d1 100644
--- a/src/com/android/settings/fuelgauge/BatteryPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/BatteryPreferenceController.java
@@ -16,15 +16,12 @@
 
 package com.android.settings.fuelgauge;
 
-/**
- * Common interface for a preference controller that updates battery status
- */
+/** Common interface for a preference controller that updates battery status */
 public interface BatteryPreferenceController {
 
     /**
-     * Updates the label for the preference controller. If the label is null, the
-     * implementation should revert back to the original label based on the
-     * battery info.
+     * Updates the label for the preference controller. If the label is null, the implementation
+     * should revert back to the original label based on the battery info.
      */
     void updateBatteryStatus(String label, BatteryInfo info);
 }
diff --git a/src/com/android/settings/fuelgauge/BatterySaverController.java b/src/com/android/settings/fuelgauge/BatterySaverController.java
index c712ab0..70abfbc 100644
--- a/src/com/android/settings/fuelgauge/BatterySaverController.java
+++ b/src/com/android/settings/fuelgauge/BatterySaverController.java
@@ -35,22 +35,20 @@
 import com.android.settingslib.core.lifecycle.events.OnStop;
 import com.android.settingslib.fuelgauge.BatterySaverUtils;
 
-/**
- * Controller to update the battery saver entry preference.
- */
+/** Controller to update the battery saver entry preference. */
 public class BatterySaverController extends BasePreferenceController
         implements LifecycleObserver, OnStart, OnStop, BatterySaverReceiver.BatterySaverListener {
     private static final String KEY_BATTERY_SAVER = "battery_saver_summary";
     private final BatterySaverReceiver mBatteryStateChangeReceiver;
     private final PowerManager mPowerManager;
     private Preference mBatterySaverPref;
-    private final ContentObserver mObserver = new ContentObserver(
-            new Handler(Looper.getMainLooper())) {
-        @Override
-        public void onChange(boolean selfChange) {
-            updateSummary();
-        }
-    };
+    private final ContentObserver mObserver =
+            new ContentObserver(new Handler(Looper.getMainLooper())) {
+                @Override
+                public void onChange(boolean selfChange) {
+                    updateSummary();
+                }
+            };
 
     public BatterySaverController(Context context) {
         super(context, KEY_BATTERY_SAVER);
@@ -79,9 +77,11 @@
 
     @Override
     public void onStart() {
-        mContext.getContentResolver().registerContentObserver(
-                Settings.Global.getUriFor(Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL),
-                true /* notifyForDescendants */, mObserver);
+        mContext.getContentResolver()
+                .registerContentObserver(
+                        Settings.Global.getUriFor(Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL),
+                        true /* notifyForDescendants */,
+                        mObserver);
 
         mBatteryStateChangeReceiver.setListening(true);
         updateSummary();
@@ -101,15 +101,20 @@
         }
 
         final ContentResolver resolver = mContext.getContentResolver();
-        final int mode = Settings.Global.getInt(resolver,
-                Global.AUTOMATIC_POWER_SAVE_MODE, PowerManager.POWER_SAVE_MODE_TRIGGER_PERCENTAGE);
+        final int mode =
+                Settings.Global.getInt(
+                        resolver,
+                        Global.AUTOMATIC_POWER_SAVE_MODE,
+                        PowerManager.POWER_SAVE_MODE_TRIGGER_PERCENTAGE);
         if (mode == PowerManager.POWER_SAVE_MODE_TRIGGER_PERCENTAGE) {
-            final int percent = Settings.Global.getInt(resolver,
-                    Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0);
-            return percent != 0 ?
-                    mContext.getString(R.string.battery_saver_off_scheduled_summary,
-                            Utils.formatPercentage(percent)) :
-                    mContext.getString(R.string.battery_saver_off_summary);
+            final int percent =
+                    Settings.Global.getInt(
+                            resolver, Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0);
+            return percent != 0
+                    ? mContext.getString(
+                            R.string.battery_saver_off_scheduled_summary,
+                            Utils.formatPercentage(percent))
+                    : mContext.getString(R.string.battery_saver_off_summary);
         } else {
             return mContext.getString(R.string.battery_saver_pref_auto_routine_summary);
         }
@@ -127,6 +132,5 @@
     }
 
     @Override
-    public void onBatteryChanged(boolean pluggedIn) {
-    }
+    public void onBatteryChanged(boolean pluggedIn) {}
 }
diff --git a/src/com/android/settings/fuelgauge/BatterySaverDrawable.java b/src/com/android/settings/fuelgauge/BatterySaverDrawable.java
index ce29361..bde1335 100644
--- a/src/com/android/settings/fuelgauge/BatterySaverDrawable.java
+++ b/src/com/android/settings/fuelgauge/BatterySaverDrawable.java
@@ -23,9 +23,7 @@
 import com.android.settingslib.Utils;
 import com.android.settingslib.graph.BatteryMeterDrawableBase;
 
-/**
- * Drawable that shows a static battery saver icon - a full battery symbol and a plus sign.
- */
+/** Drawable that shows a static battery saver icon - a full battery symbol and a plus sign. */
 public class BatterySaverDrawable extends BatteryMeterDrawableBase {
 
     private static final int MAX_BATTERY = 100;
diff --git a/src/com/android/settings/fuelgauge/BatterySaverModeVoiceActivity.java b/src/com/android/settings/fuelgauge/BatterySaverModeVoiceActivity.java
index c4e5ce6..fb12dbe 100644
--- a/src/com/android/settings/fuelgauge/BatterySaverModeVoiceActivity.java
+++ b/src/com/android/settings/fuelgauge/BatterySaverModeVoiceActivity.java
@@ -27,8 +27,8 @@
 import com.android.settingslib.fuelgauge.BatterySaverUtils;
 
 /**
- * Activity for modifying the {@link android.os.PowerManager} power save mode
- * setting using the Voice Interaction API.
+ * Activity for modifying the {@link android.os.PowerManager} power save mode setting using the
+ * Voice Interaction API.
  */
 public class BatterySaverModeVoiceActivity extends VoiceSettingsActivity {
     private static final String TAG = "BatterySaverModeVoiceActivity";
@@ -36,9 +36,11 @@
     @Override
     protected boolean onVoiceSettingInteraction(Intent intent) {
         if (intent.hasExtra(EXTRA_BATTERY_SAVER_MODE_ENABLED)) {
-            if (BatterySaverUtils.setPowerSaveMode(this,
+            if (BatterySaverUtils.setPowerSaveMode(
+                    this,
                     intent.getBooleanExtra(EXTRA_BATTERY_SAVER_MODE_ENABLED, false),
-                    /*needFirstTimeWarning=*/ true, SAVER_ENABLED_VOICE)) {
+                    /* needFirstTimeWarning= */ true,
+                    SAVER_ENABLED_VOICE)) {
                 notifySuccess(null);
             } else {
                 Log.v(TAG, "Unable to set power mode");
diff --git a/src/com/android/settings/fuelgauge/BatterySaverReceiver.java b/src/com/android/settings/fuelgauge/BatterySaverReceiver.java
index bf5c51b..7537c54 100644
--- a/src/com/android/settings/fuelgauge/BatterySaverReceiver.java
+++ b/src/com/android/settings/fuelgauge/BatterySaverReceiver.java
@@ -71,6 +71,7 @@
 
     public interface BatterySaverListener {
         void onPowerSaveModeChanged();
+
         void onBatteryChanged(boolean pluggedIn);
     }
 }
diff --git a/src/com/android/settings/fuelgauge/BatterySettingsFeatureProvider.java b/src/com/android/settings/fuelgauge/BatterySettingsFeatureProvider.java
index 3f3cddc..36ccdc6 100644
--- a/src/com/android/settings/fuelgauge/BatterySettingsFeatureProvider.java
+++ b/src/com/android/settings/fuelgauge/BatterySettingsFeatureProvider.java
@@ -18,6 +18,10 @@
 
 import android.content.Context;
 
+import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
+
+import java.util.List;
+
 /** Feature provider for battery settings usage. */
 public interface BatterySettingsFeatureProvider {
 
@@ -29,4 +33,7 @@
 
     /** Check whether the battery information page is enabled in the About phone page */
     boolean isBatteryInfoEnabled(Context context);
+
+    /** A way to add more battery tip detectors. */
+    void addBatteryTipDetector(Context context, List<BatteryTip> tips);
 }
diff --git a/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImpl.java b/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImpl.java
index aacb219..badab69 100644
--- a/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImpl.java
+++ b/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImpl.java
@@ -18,6 +18,10 @@
 
 import android.content.Context;
 
+import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
+
+import java.util.List;
+
 /** Feature provider implementation for battery settings usage. */
 public class BatterySettingsFeatureProviderImpl implements BatterySettingsFeatureProvider {
 
@@ -35,4 +39,7 @@
     public boolean isBatteryInfoEnabled(Context context) {
         return false;
     }
+
+    @Override
+    public void addBatteryTipDetector(Context context, List<BatteryTip> tips) {}
 }
diff --git a/src/com/android/settings/fuelgauge/BatterySettingsMigrateChecker.java b/src/com/android/settings/fuelgauge/BatterySettingsMigrateChecker.java
index 8697e43..dd49c8b 100644
--- a/src/com/android/settings/fuelgauge/BatterySettingsMigrateChecker.java
+++ b/src/com/android/settings/fuelgauge/BatterySettingsMigrateChecker.java
@@ -26,6 +26,7 @@
 import androidx.annotation.VisibleForTesting;
 
 import com.android.settings.fuelgauge.batterysaver.BatterySaverScheduleRadioButtonsController;
+import com.android.settings.fuelgauge.datasaver.DynamicDenylistManager;
 import com.android.settingslib.fuelgauge.BatterySaverUtils;
 
 import java.util.List;
@@ -34,8 +35,7 @@
 public final class BatterySettingsMigrateChecker extends BroadcastReceiver {
     private static final String TAG = "BatterySettingsMigrateChecker";
 
-    @VisibleForTesting
-    static BatteryOptimizeUtils sBatteryOptimizeUtils = null;
+    @VisibleForTesting static BatteryOptimizeUtils sBatteryOptimizeUtils = null;
 
     @Override
     public void onReceive(Context context, Intent intent) {
@@ -50,42 +50,61 @@
     static void verifyConfiguration(Context context) {
         context = context.getApplicationContext();
         verifySaverConfiguration(context);
-        verifyOptimizationModes(context);
+        verifyBatteryOptimizeModes(context);
+        // Initialize and sync settings into SharedPreferences for migration.
+        DynamicDenylistManager.getInstance(context);
     }
 
     /** Avoid users set important apps into the unexpected battery optimize modes */
-    static void verifyOptimizationModes(Context context) {
+    static void verifyBatteryOptimizeModes(Context context) {
         Log.d(TAG, "invoke verifyOptimizationModes()");
-        verifyOptimizationModes(context, BatteryOptimizeUtils.getAllowList(context));
+        verifyBatteryOptimizeModeApps(
+                context,
+                BatteryOptimizeUtils.MODE_OPTIMIZED,
+                BatteryOptimizeUtils.getForceBatteryOptimizeModeList(context));
+        verifyBatteryOptimizeModeApps(
+                context,
+                BatteryOptimizeUtils.MODE_UNRESTRICTED,
+                BatteryOptimizeUtils.getForceBatteryUnrestrictModeList(context));
     }
 
     @VisibleForTesting
-    static void verifyOptimizationModes(Context context, List<String> allowList) {
-        allowList.forEach(packageName -> {
-            final BatteryOptimizeUtils batteryOptimizeUtils =
-                    BatteryBackupHelper.newBatteryOptimizeUtils(context, packageName,
-                            /* testOptimizeUtils */ sBatteryOptimizeUtils);
-            if (batteryOptimizeUtils == null) {
-                return;
-            }
-            if (batteryOptimizeUtils.getAppOptimizationMode() !=
-                    BatteryOptimizeUtils.MODE_OPTIMIZED) {
-                Log.w(TAG, "Reset optimization mode for: " + packageName);
-                batteryOptimizeUtils.setAppUsageState(BatteryOptimizeUtils.MODE_OPTIMIZED,
-                        BatteryOptimizeHistoricalLogEntry.Action.FORCE_RESET);
-            }
-        });
+    static void verifyBatteryOptimizeModeApps(
+            Context context,
+            @BatteryOptimizeUtils.OptimizationMode int optimizationMode,
+            List<String> allowList) {
+        allowList.forEach(
+                packageName -> {
+                    final BatteryOptimizeUtils batteryOptimizeUtils =
+                            BatteryBackupHelper.newBatteryOptimizeUtils(
+                                    context,
+                                    packageName,
+                                    /* testOptimizeUtils */ sBatteryOptimizeUtils);
+                    if (batteryOptimizeUtils == null) {
+                        return;
+                    }
+                    if (batteryOptimizeUtils.getAppOptimizationMode() != optimizationMode) {
+                        Log.w(
+                                TAG,
+                                "Reset " + packageName + " battery mode into " + optimizationMode);
+                        batteryOptimizeUtils.setAppUsageState(
+                                optimizationMode,
+                                BatteryOptimizeHistoricalLogEntry.Action.FORCE_RESET);
+                    }
+                });
     }
 
     static void verifySaverConfiguration(Context context) {
         Log.d(TAG, "invoke verifySaverConfiguration()");
         final ContentResolver resolver = context.getContentResolver();
-        final int threshold = Settings.Global.getInt(resolver,
-                Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0);
+        final int threshold =
+                Settings.Global.getInt(resolver, Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0);
         // Force refine the invalid scheduled battery level.
         if (threshold < BatterySaverScheduleRadioButtonsController.TRIGGER_LEVEL_MIN
                 && threshold > 0) {
-            Settings.Global.putInt(resolver, Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL,
+            Settings.Global.putInt(
+                    resolver,
+                    Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL,
                     BatterySaverScheduleRadioButtonsController.TRIGGER_LEVEL_MIN);
             Log.w(TAG, "Reset invalid scheduled battery level from: " + threshold);
         }
diff --git a/src/com/android/settings/fuelgauge/BatteryStatusFeatureProvider.java b/src/com/android/settings/fuelgauge/BatteryStatusFeatureProvider.java
index 46f00c7..b6b3b35 100644
--- a/src/com/android/settings/fuelgauge/BatteryStatusFeatureProvider.java
+++ b/src/com/android/settings/fuelgauge/BatteryStatusFeatureProvider.java
@@ -16,14 +16,9 @@
 
 package com.android.settings.fuelgauge;
 
-/**
- * Feature Provider used to retrieve battery status
- */
+/** Feature Provider used to retrieve battery status */
 public interface BatteryStatusFeatureProvider {
 
-    /**
-     * Trigger a battery status update; return false if built-in status should be used.
-     */
-    boolean triggerBatteryStatusUpdate(
-            BatteryPreferenceController controller, BatteryInfo info);
+    /** Trigger a battery status update; return false if built-in status should be used. */
+    boolean triggerBatteryStatusUpdate(BatteryPreferenceController controller, BatteryInfo info);
 }
diff --git a/src/com/android/settings/fuelgauge/BatteryStatusFeatureProviderImpl.java b/src/com/android/settings/fuelgauge/BatteryStatusFeatureProviderImpl.java
index dc4b5db..11c4628 100644
--- a/src/com/android/settings/fuelgauge/BatteryStatusFeatureProviderImpl.java
+++ b/src/com/android/settings/fuelgauge/BatteryStatusFeatureProviderImpl.java
@@ -18,9 +18,7 @@
 
 import android.content.Context;
 
-/**
- * Used to override battery status string in Battery Header.
- */
+/** Used to override battery status string in Battery Header. */
 public class BatteryStatusFeatureProviderImpl implements BatteryStatusFeatureProvider {
 
     protected Context mContext;
diff --git a/src/com/android/settings/fuelgauge/BatteryUtils.java b/src/com/android/settings/fuelgauge/BatteryUtils.java
index 171c76b..5a808f2 100644
--- a/src/com/android/settings/fuelgauge/BatteryUtils.java
+++ b/src/com/android/settings/fuelgauge/BatteryUtils.java
@@ -70,14 +70,15 @@
 import java.time.format.FormatStyle;
 import java.util.List;
 
-/**
- * Utils for battery operation
- */
+/** Utils for battery operation */
 public class BatteryUtils {
+    public static final int UID_ZERO = 0;
     public static final int UID_NULL = -1;
     public static final int SDK_NULL = -1;
+
     /** Special UID value for data usage by removed apps. */
     public static final int UID_REMOVED_APPS = -4;
+
     /** Special UID value for data usage by tethering. */
     public static final int UID_TETHERING = -5;
 
@@ -87,13 +88,10 @@
     public static final String BYPASS_DOCK_DEFENDER_ACTION = "battery.dock.defender.bypass";
 
     private static final String GOOGLE_PLAY_STORE_PACKAGE = "com.android.vending";
+    private static final String PACKAGE_NAME_NONE = "none";
 
     @Retention(RetentionPolicy.SOURCE)
-    @IntDef({StatusType.SCREEN_USAGE,
-            StatusType.FOREGROUND,
-            StatusType.BACKGROUND,
-            StatusType.ALL
-    })
+    @IntDef({StatusType.SCREEN_USAGE, StatusType.FOREGROUND, StatusType.BACKGROUND, StatusType.ALL})
     public @interface StatusType {
         int SCREEN_USAGE = 0;
         int FOREGROUND = 1;
@@ -102,10 +100,12 @@
     }
 
     @Retention(RetentionPolicy.SOURCE)
-    @IntDef({DockDefenderMode.FUTURE_BYPASS,
-            DockDefenderMode.ACTIVE,
-            DockDefenderMode.TEMPORARILY_BYPASSED,
-            DockDefenderMode.DISABLED})
+    @IntDef({
+        DockDefenderMode.FUTURE_BYPASS,
+        DockDefenderMode.ACTIVE,
+        DockDefenderMode.TEMPORARILY_BYPASSED,
+        DockDefenderMode.DISABLED
+    })
     public @interface DockDefenderMode {
         int FUTURE_BYPASS = 0;
         int ACTIVE = 1;
@@ -120,8 +120,7 @@
 
     private AppOpsManager mAppOpsManager;
     private Context mContext;
-    @VisibleForTesting
-    PowerUsageFeatureProvider mPowerUsageFeatureProvider;
+    @VisibleForTesting PowerUsageFeatureProvider mPowerUsageFeatureProvider;
 
     public static BatteryUtils getInstance(Context context) {
         if (sInstance == null || sInstance.isDataCorrupted()) {
@@ -139,8 +138,15 @@
                 FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider();
     }
 
-    public long getProcessTimeMs(@StatusType int type, @Nullable BatteryStats.Uid uid,
-            int which) {
+    /** For test to reset single instance. */
+    @VisibleForTesting
+    public void reset() {
+        sInstance = null;
+    }
+
+
+    /** Gets the process time */
+    public long getProcessTimeMs(@StatusType int type, @Nullable BatteryStats.Uid uid, int which) {
         if (uid == null) {
             return 0;
         }
@@ -184,8 +190,9 @@
 
     private long getProcessBackgroundTimeMs(BatteryStats.Uid uid, int which) {
         final long rawRealTimeUs = PowerUtil.convertMsToUs(SystemClock.elapsedRealtime());
-        final long timeUs = uid.getProcessStateTime(
-                BatteryStats.Uid.PROCESS_STATE_BACKGROUND, rawRealTimeUs, which);
+        final long timeUs =
+                uid.getProcessStateTime(
+                        BatteryStats.Uid.PROCESS_STATE_BACKGROUND, rawRealTimeUs, which);
 
         Log.v(TAG, "package: " + mPackageManager.getNameForUid(uid.getUid()));
         Log.v(TAG, "background time(us): " + timeUs);
@@ -199,17 +206,17 @@
     }
 
     /**
-     * Returns true if the specified battery consumer should be excluded from the summary
-     * battery consumption list.
+     * Returns true if the specified battery consumer should be excluded from the summary battery
+     * consumption list.
      */
     public boolean shouldHideUidBatteryConsumer(UidBatteryConsumer consumer) {
-        return shouldHideUidBatteryConsumer(consumer,
-                mPackageManager.getPackagesForUid(consumer.getUid()));
+        return shouldHideUidBatteryConsumer(
+                consumer, mPackageManager.getPackagesForUid(consumer.getUid()));
     }
 
     /**
-     * Returns true if the specified battery consumer should be excluded from the summary
-     * battery consumption list.
+     * Returns true if the specified battery consumer should be excluded from the summary battery
+     * consumption list.
      */
     public boolean shouldHideUidBatteryConsumer(UidBatteryConsumer consumer, String[] packages) {
         return mPowerUsageFeatureProvider.isTypeSystem(consumer.getUid(), packages)
@@ -217,20 +224,16 @@
     }
 
     /**
-     * Returns true if the specified battery consumer should be excluded from
-     * battery consumption lists, either short or full.
+     * Returns true if the specified battery consumer should be excluded from battery consumption
+     * lists, either short or full.
      */
-    public boolean shouldHideUidBatteryConsumerUnconditionally(UidBatteryConsumer consumer,
-            String[] packages) {
+    public boolean shouldHideUidBatteryConsumerUnconditionally(
+            UidBatteryConsumer consumer, String[] packages) {
         final int uid = consumer.getUid();
-        return uid == UID_TETHERING
-                ? false
-                : uid < 0 || isHiddenSystemModule(packages);
+        return uid == UID_TETHERING ? false : uid < 0 || isHiddenSystemModule(packages);
     }
 
-    /**
-     * Returns true if one the specified packages belongs to a hidden system module.
-     */
+    /** Returns true if one the specified packages belongs to a hidden system module. */
     public boolean isHiddenSystemModule(String[] packages) {
         if (packages != null) {
             for (int i = 0, length = packages.length; i < length; i++) {
@@ -245,14 +248,14 @@
     /**
      * Calculate the power usage percentage for an app
      *
-     * @param powerUsageMah   power used by the app
-     * @param totalPowerMah   total power used in the system
+     * @param powerUsageMah power used by the app
+     * @param totalPowerMah total power used in the system
      * @param dischargeAmount The discharge amount calculated by {@link BatteryStats}
      * @return A percentage value scaled by {@paramref dischargeAmount}
      * @see BatteryStats#getDischargeAmount(int)
      */
-    public double calculateBatteryPercent(double powerUsageMah, double totalPowerMah,
-            int dischargeAmount) {
+    public double calculateBatteryPercent(
+            double powerUsageMah, double totalPowerMah, int dischargeAmount) {
         if (totalPowerMah == 0) {
             return 0;
         }
@@ -264,9 +267,8 @@
      * Find the package name for a {@link android.os.BatteryStats.Uid}
      *
      * @param uid id to get the package name
-     * @return the package name. If there are multiple packages related to
-     * given id, return the first one. Or return null if there are no known
-     * packages with the given id
+     * @return the package name. If there are multiple packages related to given id, return the
+     *     first one. Or return null if there are no known packages with the given id
      * @see PackageManager#getPackagesForUid(int)
      */
     public String getPackageName(int uid) {
@@ -282,8 +284,8 @@
      */
     public int getTargetSdkVersion(final String packageName) {
         try {
-            ApplicationInfo info = mPackageManager.getApplicationInfo(packageName,
-                    PackageManager.GET_META_DATA);
+            ApplicationInfo info =
+                    mPackageManager.getApplicationInfo(packageName, PackageManager.GET_META_DATA);
 
             return info.targetSdkVersion;
         } catch (PackageManager.NameNotFoundException e) {
@@ -293,28 +295,26 @@
         return SDK_NULL;
     }
 
-    /**
-     * Check whether background restriction is enabled
-     */
-    public boolean isBackgroundRestrictionEnabled(final int targetSdkVersion, final int uid,
-            final String packageName) {
+    /** Check whether background restriction is enabled */
+    public boolean isBackgroundRestrictionEnabled(
+            final int targetSdkVersion, final int uid, final String packageName) {
         if (targetSdkVersion >= Build.VERSION_CODES.O) {
             return true;
         }
-        final int mode = mAppOpsManager
-                .checkOpNoThrow(AppOpsManager.OP_RUN_IN_BACKGROUND, uid, packageName);
+        final int mode =
+                mAppOpsManager.checkOpNoThrow(AppOpsManager.OP_RUN_IN_BACKGROUND, uid, packageName);
         return mode == AppOpsManager.MODE_IGNORED || mode == AppOpsManager.MODE_ERRORED;
     }
 
     /**
      * Calculate the time since last full charge, including the device off time
      *
-     * @param batteryUsageStats  class that contains the data
-     * @param currentTimeMs      current wall time
+     * @param batteryUsageStats class that contains the data
+     * @param currentTimeMs current wall time
      * @return time in millis
      */
-    public long calculateLastFullChargeTime(BatteryUsageStats batteryUsageStats,
-            long currentTimeMs) {
+    public long calculateLastFullChargeTime(
+            BatteryUsageStats batteryUsageStats, long currentTimeMs) {
         return currentTimeMs - batteryUsageStats.getStatsStartTimestamp();
     }
 
@@ -322,9 +322,7 @@
         Log.d(tag, message + ": " + (System.currentTimeMillis() - startTime) + "ms");
     }
 
-    /**
-     * Return {@code true} if battery defender is on and charging.
-     */
+    /** Return {@code true} if battery defender is on and charging. */
     public static boolean isBatteryDefenderOn(BatteryInfo batteryInfo) {
         return batteryInfo.isBatteryDefender && !batteryInfo.discharging;
     }
@@ -333,13 +331,14 @@
      * Find package uid from package name
      *
      * @param packageName used to find the uid
-     * @return uid for packageName, or {@link #UID_NULL} if exception happens or
-     * {@code packageName} is null
+     * @return uid for packageName, or {@link #UID_NULL} if exception happens or {@code packageName}
+     *     is null
      */
     public int getPackageUid(String packageName) {
         try {
-            return packageName == null ? UID_NULL : mPackageManager.getPackageUid(packageName,
-                    PackageManager.GET_META_DATA);
+            return packageName == null
+                    ? UID_NULL
+                    : mPackageManager.getPackageUid(packageName, PackageManager.GET_META_DATA);
         } catch (PackageManager.NameNotFoundException e) {
             return UID_NULL;
         }
@@ -359,16 +358,18 @@
             return (T) protoClass.getDefaultInstanceForType();
         }
         try {
-            return (T) protoClass.getParserForType()
-                    .parseFrom(Base64.decode(serializedProto, Base64.DEFAULT));
+            return (T)
+                    protoClass
+                            .getParserForType()
+                            .parseFrom(Base64.decode(serializedProto, Base64.DEFAULT));
         } catch (InvalidProtocolBufferException e) {
             Log.e(TAG, "Failed to deserialize proto class", e);
             return (T) protoClass.getDefaultInstanceForType();
         }
     }
 
-    public void setForceAppStandby(int uid, String packageName,
-            int mode) {
+    /** Sets force app standby mode */
+    public void setForceAppStandby(int uid, String packageName, int mode) {
         final boolean isPreOApp = isPreOApp(packageName);
         if (isPreOApp) {
             // Control whether app could run in the background if it is pre O app
@@ -377,22 +378,27 @@
         // Control whether app could run jobs in the background
         mAppOpsManager.setMode(AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, uid, packageName, mode);
 
-        ThreadUtils.postOnBackgroundThread(() -> {
-            final BatteryDatabaseManager batteryDatabaseManager = BatteryDatabaseManager
-                    .getInstance(mContext);
-            if (mode == AppOpsManager.MODE_IGNORED) {
-                batteryDatabaseManager.insertAction(AnomalyDatabaseHelper.ActionType.RESTRICTION,
-                        uid, packageName, System.currentTimeMillis());
-            } else if (mode == AppOpsManager.MODE_ALLOWED) {
-                batteryDatabaseManager.deleteAction(AnomalyDatabaseHelper.ActionType.RESTRICTION,
-                        uid, packageName);
-            }
-        });
+        ThreadUtils.postOnBackgroundThread(
+                () -> {
+                    final BatteryDatabaseManager batteryDatabaseManager =
+                            BatteryDatabaseManager.getInstance(mContext);
+                    if (mode == AppOpsManager.MODE_IGNORED) {
+                        batteryDatabaseManager.insertAction(
+                                AnomalyDatabaseHelper.ActionType.RESTRICTION,
+                                uid,
+                                packageName,
+                                System.currentTimeMillis());
+                    } else if (mode == AppOpsManager.MODE_ALLOWED) {
+                        batteryDatabaseManager.deleteAction(
+                                AnomalyDatabaseHelper.ActionType.RESTRICTION, uid, packageName);
+                    }
+                });
     }
 
     public boolean isForceAppStandbyEnabled(int uid, String packageName) {
-        return mAppOpsManager.checkOpNoThrow(AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, uid,
-                packageName) == AppOpsManager.MODE_IGNORED;
+        return mAppOpsManager.checkOpNoThrow(
+                        AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, uid, packageName)
+                == AppOpsManager.MODE_IGNORED;
     }
 
     public boolean clearForceAppStandby(String packageName) {
@@ -407,12 +413,13 @@
 
     @WorkerThread
     public BatteryInfo getBatteryInfo(final String tag) {
-        final BatteryStatsManager systemService = mContext.getSystemService(
-                BatteryStatsManager.class);
+        final BatteryStatsManager systemService =
+                mContext.getSystemService(BatteryStatsManager.class);
         BatteryUsageStats batteryUsageStats;
         try {
-            batteryUsageStats = systemService.getBatteryUsageStats(
-                    new BatteryUsageStatsQuery.Builder().includeBatteryHistory().build());
+            batteryUsageStats =
+                    systemService.getBatteryUsageStats(
+                            new BatteryUsageStatsQuery.Builder().includeBatteryHistory().build());
         } catch (RuntimeException e) {
             Log.e(TAG, "getBatteryInfo() error from getBatteryUsageStats()", e);
             // Use default BatteryUsageStats.
@@ -424,23 +431,29 @@
         // Stuff we always need to get BatteryInfo
         final Intent batteryBroadcast = getBatteryIntent(mContext);
 
-        final long elapsedRealtimeUs = PowerUtil.convertMsToUs(
-                SystemClock.elapsedRealtime());
+        final long elapsedRealtimeUs = PowerUtil.convertMsToUs(SystemClock.elapsedRealtime());
 
         BatteryInfo batteryInfo;
         Estimate estimate = getEnhancedEstimate();
 
         // couldn't get estimate from cache or provider, use fallback
         if (estimate == null) {
-            estimate = new Estimate(
-                    batteryUsageStats.getBatteryTimeRemainingMs(),
-                    false /* isBasedOnUsage */,
-                    EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN);
+            estimate =
+                    new Estimate(
+                            batteryUsageStats.getBatteryTimeRemainingMs(),
+                            false /* isBasedOnUsage */,
+                            EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN);
         }
 
         BatteryUtils.logRuntime(tag, "BatteryInfoLoader post query", startTime);
-        batteryInfo = BatteryInfo.getBatteryInfo(mContext, batteryBroadcast,
-                batteryUsageStats, estimate, elapsedRealtimeUs, false /* shortString */);
+        batteryInfo =
+                BatteryInfo.getBatteryInfo(
+                        mContext,
+                        batteryBroadcast,
+                        batteryUsageStats,
+                        estimate,
+                        elapsedRealtimeUs,
+                        false /* shortString */);
         BatteryUtils.logRuntime(tag, "BatteryInfoLoader.loadInBackground", startTime);
 
         try {
@@ -455,9 +468,9 @@
     Estimate getEnhancedEstimate() {
         // Align the same logic in the BatteryControllerImpl.updateEstimate()
         Estimate estimate = Estimate.getCachedEstimateIfAvailable(mContext);
-        if (estimate == null &&
-                mPowerUsageFeatureProvider != null &&
-                mPowerUsageFeatureProvider.isEnhancedBatteryPredictionEnabled(mContext)) {
+        if (estimate == null
+                && mPowerUsageFeatureProvider != null
+                && mPowerUsageFeatureProvider.isEnhancedBatteryPredictionEnabled(mContext)) {
             estimate = mPowerUsageFeatureProvider.getEnhancedBatteryPrediction(mContext);
             if (estimate != null) {
                 Estimate.storeCachedEstimate(mContext, estimate);
@@ -492,8 +505,8 @@
 
     public boolean isPreOApp(final String packageName) {
         try {
-            ApplicationInfo info = mPackageManager.getApplicationInfo(packageName,
-                    PackageManager.GET_META_DATA);
+            ApplicationInfo info =
+                    mPackageManager.getApplicationInfo(packageName, PackageManager.GET_META_DATA);
 
             return info.targetSdkVersion < Build.VERSION_CODES.O;
         } catch (PackageManager.NameNotFoundException e) {
@@ -517,18 +530,17 @@
         return false;
     }
 
-    /**
-     * Return {@code true} if we should hide anomaly app represented by {@code uid}
-     */
-    public boolean shouldHideAnomaly(PowerAllowlistBackend powerAllowlistBackend, int uid,
-            AnomalyInfo anomalyInfo) {
+    /** Return {@code true} if we should hide anomaly app represented by {@code uid} */
+    public boolean shouldHideAnomaly(
+            PowerAllowlistBackend powerAllowlistBackend, int uid, AnomalyInfo anomalyInfo) {
         final String[] packageNames = mPackageManager.getPackagesForUid(uid);
         if (ArrayUtils.isEmpty(packageNames)) {
             // Don't show it if app has been uninstalled
             return true;
         }
 
-        return isSystemUid(uid) || powerAllowlistBackend.isAllowlisted(packageNames, uid)
+        return isSystemUid(uid)
+                || powerAllowlistBackend.isAllowlisted(packageNames, uid)
                 || (isSystemApp(mPackageManager, packageNames) && !hasLauncherEntry(packageNames))
                 || (isExcessiveBackgroundAnomaly(anomalyInfo) && !isPreOApp(packageNames));
     }
@@ -546,8 +558,8 @@
     private boolean isSystemApp(PackageManager packageManager, String[] packageNames) {
         for (String packageName : packageNames) {
             try {
-                final ApplicationInfo info = packageManager.getApplicationInfo(packageName,
-                        0 /* flags */);
+                final ApplicationInfo info =
+                        packageManager.getApplicationInfo(packageName, 0 /* flags */);
                 if ((info.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
                     return true;
                 }
@@ -569,11 +581,13 @@
         // components
         // with ComponentInfo#directBootAware == false will be filtered. We should
         // explicitly include both direct boot aware and unaware components here.
-        final List<ResolveInfo> resolveInfos = mPackageManager.queryIntentActivities(launchIntent,
-                PackageManager.MATCH_DISABLED_COMPONENTS
-                        | PackageManager.MATCH_DIRECT_BOOT_AWARE
-                        | PackageManager.MATCH_DIRECT_BOOT_UNAWARE
-                        | PackageManager.MATCH_SYSTEM_ONLY);
+        final List<ResolveInfo> resolveInfos =
+                mPackageManager.queryIntentActivities(
+                        launchIntent,
+                        PackageManager.MATCH_DISABLED_COMPONENTS
+                                | PackageManager.MATCH_DIRECT_BOOT_AWARE
+                                | PackageManager.MATCH_DIRECT_BOOT_UNAWARE
+                                | PackageManager.MATCH_SYSTEM_ONLY);
         for (int i = 0, size = resolveInfos.size(); i < size; i++) {
             final ResolveInfo resolveInfo = resolveInfos.get(i);
             if (ArrayUtils.contains(packageNames, resolveInfo.activityInfo.packageName)) {
@@ -590,8 +604,8 @@
      */
     public long getAppLongVersionCode(String packageName) {
         try {
-            final PackageInfo packageInfo = mPackageManager.getPackageInfo(packageName,
-                    0 /* flags */);
+            final PackageInfo packageInfo =
+                    mPackageManager.getPackageInfo(packageName, 0 /* flags */);
             return packageInfo.getLongVersionCode();
         } catch (PackageManager.NameNotFoundException e) {
             Log.e(TAG, "Cannot find package: " + packageName, e);
@@ -615,6 +629,13 @@
                 && GOOGLE_PLAY_STORE_PACKAGE.equals(installSourceInfo.getInitiatingPackageName());
     }
 
+    /** Gets the logging package name. */
+    public static String getLoggingPackageName(Context context, String originalPackingName) {
+        return BatteryUtils.isAppInstalledFromGooglePlayStore(context, originalPackingName)
+                ? originalPackingName
+                : PACKAGE_NAME_NONE;
+    }
+
     /** Gets the latest sticky battery intent from the Android system. */
     public static Intent getBatteryIntent(Context context) {
         return com.android.settingslib.fuelgauge.BatteryUtils.getBatteryIntent(context);
@@ -623,12 +644,14 @@
     /** Gets the current dock defender mode */
     public static int getCurrentDockDefenderMode(Context context, BatteryInfo batteryInfo) {
         if (batteryInfo.pluggedStatus == BatteryManager.BATTERY_PLUGGED_DOCK) {
-            if (Settings.Global.getInt(context.getContentResolver(),
-                    SETTINGS_GLOBAL_DOCK_DEFENDER_BYPASS, 0) == 1) {
+            if (Settings.Global.getInt(
+                            context.getContentResolver(), SETTINGS_GLOBAL_DOCK_DEFENDER_BYPASS, 0)
+                    == 1) {
                 return DockDefenderMode.TEMPORARILY_BYPASSED;
-            } else if (batteryInfo.isBatteryDefender && FeatureFactory.getFeatureFactory()
-                    .getPowerUsageFeatureProvider()
-                    .isExtraDefend()) {
+            } else if (batteryInfo.isBatteryDefender
+                    && FeatureFactory.getFeatureFactory()
+                            .getPowerUsageFeatureProvider()
+                            .isExtraDefend()) {
                 return DockDefenderMode.ACTIVE;
             } else if (!batteryInfo.isBatteryDefender) {
                 return DockDefenderMode.FUTURE_BYPASS;
@@ -637,59 +660,82 @@
         return DockDefenderMode.DISABLED;
     }
 
-    /** Formats elapsed time without commas in between.  */
+    /** Formats elapsed time without commas in between. */
     public static CharSequence formatElapsedTimeWithoutComma(
             Context context, double millis, boolean withSeconds, boolean collapseTimeUnit) {
         return StringUtil.formatElapsedTime(context, millis, withSeconds, collapseTimeUnit)
-                .toString().replaceAll(",", "");
+                .toString()
+                .replaceAll(",", "");
     }
 
     /** Builds the battery usage time summary. */
-    public static String buildBatteryUsageTimeSummary(final Context context, final boolean isSystem,
-            final long foregroundUsageTimeInMs, final long backgroundUsageTimeInMs,
+    public static String buildBatteryUsageTimeSummary(
+            final Context context,
+            final boolean isSystem,
+            final long foregroundUsageTimeInMs,
+            final long backgroundUsageTimeInMs,
             final long screenOnTimeInMs) {
         StringBuilder summary = new StringBuilder();
         if (isSystem) {
             final long totalUsageTimeInMs = foregroundUsageTimeInMs + backgroundUsageTimeInMs;
             if (totalUsageTimeInMs != 0) {
-                summary.append(buildBatteryUsageTimeInfo(context, totalUsageTimeInMs,
-                        R.string.battery_usage_total_less_than_one_minute,
-                        R.string.battery_usage_for_total_time));
+                summary.append(
+                        buildBatteryUsageTimeInfo(
+                                context,
+                                totalUsageTimeInMs,
+                                R.string.battery_usage_total_less_than_one_minute,
+                                R.string.battery_usage_for_total_time));
             }
         } else {
             if (screenOnTimeInMs != 0) {
-                summary.append(buildBatteryUsageTimeInfo(context, screenOnTimeInMs,
-                        R.string.battery_usage_screen_time_less_than_one_minute,
-                        R.string.battery_usage_screen_time));
+                summary.append(
+                        buildBatteryUsageTimeInfo(
+                                context,
+                                screenOnTimeInMs,
+                                R.string.battery_usage_screen_time_less_than_one_minute,
+                                R.string.battery_usage_screen_time));
             }
             if (screenOnTimeInMs != 0 && backgroundUsageTimeInMs != 0) {
                 summary.append('\n');
             }
             if (backgroundUsageTimeInMs != 0) {
-                summary.append(buildBatteryUsageTimeInfo(context, backgroundUsageTimeInMs,
-                        R.string.battery_usage_background_less_than_one_minute,
-                        R.string.battery_usage_for_background_time));
+                summary.append(
+                        buildBatteryUsageTimeInfo(
+                                context,
+                                backgroundUsageTimeInMs,
+                                R.string.battery_usage_background_less_than_one_minute,
+                                R.string.battery_usage_for_background_time));
             }
         }
         return summary.toString();
     }
+
     /** Format the date of battery related info */
     public static CharSequence getBatteryInfoFormattedDate(long dateInMs) {
         final Instant instant = Instant.ofEpochMilli(dateInMs);
-        final String localDate = instant.atZone(ZoneId.systemDefault()).toLocalDate().format(
-                DateTimeFormatter.ofLocalizedDate(FormatStyle.LONG));
+        final String localDate =
+                instant.atZone(ZoneId.systemDefault())
+                        .toLocalDate()
+                        .format(DateTimeFormatter.ofLocalizedDate(FormatStyle.LONG));
 
         return localDate;
     }
 
     /** Builds the battery usage time information for one timestamp. */
-    private static String buildBatteryUsageTimeInfo(final Context context, long timeInMs,
-            final int lessThanOneMinuteResId, final int normalResId) {
+    private static String buildBatteryUsageTimeInfo(
+            final Context context,
+            long timeInMs,
+            final int lessThanOneMinuteResId,
+            final int normalResId) {
         if (timeInMs < DateUtils.MINUTE_IN_MILLIS) {
             return context.getString(lessThanOneMinuteResId);
         }
-        final CharSequence timeSequence = formatElapsedTimeWithoutComma(
-                context, (double) timeInMs, /*withSeconds=*/ false, /*collapseTimeUnit=*/ false);
+        final CharSequence timeSequence =
+                formatElapsedTimeWithoutComma(
+                        context,
+                        (double) timeInMs,
+                        /* withSeconds= */ false,
+                        /* collapseTimeUnit= */ false);
         return context.getString(normalResId, timeSequence);
     }
 }
diff --git a/src/com/android/settings/fuelgauge/DebugEstimatesLoader.java b/src/com/android/settings/fuelgauge/DebugEstimatesLoader.java
index dda83a8..a68a4de 100644
--- a/src/com/android/settings/fuelgauge/DebugEstimatesLoader.java
+++ b/src/com/android/settings/fuelgauge/DebugEstimatesLoader.java
@@ -40,9 +40,7 @@
     }
 
     @Override
-    protected void onDiscardResult(List<BatteryInfo> result) {
-
-    }
+    protected void onDiscardResult(List<BatteryInfo> result) {}
 
     @Override
     public List<BatteryInfo> loadInBackground() {
@@ -51,29 +49,39 @@
                 FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider();
 
         // get stuff we'll need for both BatteryInfo
-        final long elapsedRealtimeUs = PowerUtil.convertMsToUs(
-                SystemClock.elapsedRealtime());
-        Intent batteryBroadcast = getContext().registerReceiver(null,
-                new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
+        final long elapsedRealtimeUs = PowerUtil.convertMsToUs(SystemClock.elapsedRealtime());
+        Intent batteryBroadcast =
+                getContext()
+                        .registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
         BatteryUsageStats batteryUsageStats;
         try {
-            batteryUsageStats = context.getSystemService(BatteryStatsManager.class)
-                    .getBatteryUsageStats();
+            batteryUsageStats =
+                    context.getSystemService(BatteryStatsManager.class).getBatteryUsageStats();
         } catch (RuntimeException e) {
             Log.e(TAG, "getBatteryInfo() from getBatteryUsageStats()", e);
             // Use default BatteryUsageStats.
             batteryUsageStats = new BatteryUsageStats.Builder(new String[0]).build();
         }
-        BatteryInfo oldinfo = BatteryInfo.getBatteryInfoOld(getContext(), batteryBroadcast,
-                batteryUsageStats, elapsedRealtimeUs, false);
+        BatteryInfo oldinfo =
+                BatteryInfo.getBatteryInfoOld(
+                        getContext(),
+                        batteryBroadcast,
+                        batteryUsageStats,
+                        elapsedRealtimeUs,
+                        false);
 
         Estimate estimate = powerUsageFeatureProvider.getEnhancedBatteryPrediction(context);
         if (estimate == null) {
             estimate = new Estimate(0, false, EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN);
         }
-        BatteryInfo newInfo = BatteryInfo.getBatteryInfo(getContext(), batteryBroadcast,
-                batteryUsageStats,
-                estimate, elapsedRealtimeUs, false);
+        BatteryInfo newInfo =
+                BatteryInfo.getBatteryInfo(
+                        getContext(),
+                        batteryBroadcast,
+                        batteryUsageStats,
+                        estimate,
+                        elapsedRealtimeUs,
+                        false);
 
         List<BatteryInfo> infos = new ArrayList<>();
         infos.add(oldinfo);
diff --git a/src/com/android/settings/fuelgauge/HighPowerDetail.java b/src/com/android/settings/fuelgauge/HighPowerDetail.java
index dc9150a..b2585a6 100644
--- a/src/com/android/settings/fuelgauge/HighPowerDetail.java
+++ b/src/com/android/settings/fuelgauge/HighPowerDetail.java
@@ -40,23 +40,18 @@
 import com.android.settingslib.applications.ApplicationsState.AppEntry;
 import com.android.settingslib.fuelgauge.PowerAllowlistBackend;
 
-public class HighPowerDetail extends InstrumentedDialogFragment implements OnClickListener,
-        View.OnClickListener {
+public class HighPowerDetail extends InstrumentedDialogFragment
+        implements OnClickListener, View.OnClickListener {
 
     private static final String ARG_DEFAULT_ON = "default_on";
 
-    @VisibleForTesting
-    PowerAllowlistBackend mBackend;
-    @VisibleForTesting
-    BatteryUtils mBatteryUtils;
-    @VisibleForTesting
-    String mPackageName;
-    @VisibleForTesting
-    int mPackageUid;
+    @VisibleForTesting PowerAllowlistBackend mBackend;
+    @VisibleForTesting BatteryUtils mBatteryUtils;
+    @VisibleForTesting String mPackageName;
+    @VisibleForTesting int mPackageUid;
     private CharSequence mLabel;
     private boolean mDefaultOn;
-    @VisibleForTesting
-    boolean mIsEnabled;
+    @VisibleForTesting boolean mIsEnabled;
     private Checkable mOptionOn;
     private Checkable mOptionOff;
 
@@ -85,10 +80,13 @@
     }
 
     public Checkable setup(View view, boolean on) {
-        ((TextView) view.findViewById(android.R.id.title)).setText(on
-                ? R.string.ignore_optimizations_on : R.string.ignore_optimizations_off);
-        ((TextView) view.findViewById(android.R.id.summary)).setText(on
-                ? R.string.ignore_optimizations_on_desc : R.string.ignore_optimizations_off_desc);
+        ((TextView) view.findViewById(android.R.id.title))
+                .setText(on ? R.string.ignore_optimizations_on : R.string.ignore_optimizations_off);
+        ((TextView) view.findViewById(android.R.id.summary))
+                .setText(
+                        on
+                                ? R.string.ignore_optimizations_on_desc
+                                : R.string.ignore_optimizations_off_desc);
         view.setClickable(true);
         view.setOnClickListener(this);
         if (!on && mBackend.isSysAllowlisted(mPackageName)) {
@@ -99,10 +97,11 @@
 
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
-        AlertDialog.Builder b = new AlertDialog.Builder(getContext())
-                .setTitle(mLabel)
-                .setNegativeButton(R.string.cancel, null)
-                .setView(R.layout.ignore_optimizations_content);
+        AlertDialog.Builder b =
+                new AlertDialog.Builder(getContext())
+                        .setTitle(mLabel)
+                        .setNegativeButton(R.string.cancel, null)
+                        .setView(R.layout.ignore_optimizations_content);
         if (!mBackend.isSysAllowlisted(mPackageName)) {
             b.setPositiveButton(R.string.done, this);
         }
@@ -141,8 +140,8 @@
             if (newValue != oldValue) {
                 logSpecialPermissionChange(newValue, mPackageName, getContext());
                 if (newValue) {
-                    mBatteryUtils.setForceAppStandby(mPackageUid, mPackageName,
-                            AppOpsManager.MODE_ALLOWED);
+                    mBatteryUtils.setForceAppStandby(
+                            mPackageUid, mPackageName, AppOpsManager.MODE_ALLOWED);
                     mBackend.addApp(mPackageName);
                 } else {
                     mBackend.removeApp(mPackageName);
@@ -153,10 +152,13 @@
 
     @VisibleForTesting
     static void logSpecialPermissionChange(boolean allowlist, String packageName, Context context) {
-        int logCategory = allowlist ? SettingsEnums.APP_SPECIAL_PERMISSION_BATTERY_DENY
-                : SettingsEnums.APP_SPECIAL_PERMISSION_BATTERY_ALLOW;
-        FeatureFactory.getFeatureFactory().getMetricsFeatureProvider().action(context, logCategory,
-                packageName);
+        int logCategory =
+                allowlist
+                        ? SettingsEnums.APP_SPECIAL_PERMISSION_BATTERY_DENY
+                        : SettingsEnums.APP_SPECIAL_PERMISSION_BATTERY_ALLOW;
+        FeatureFactory.getFeatureFactory()
+                .getMetricsFeatureProvider()
+                .action(context, logCategory, packageName);
     }
 
     @Override
@@ -177,8 +179,8 @@
     }
 
     @VisibleForTesting
-    static CharSequence getSummary(Context context, PowerAllowlistBackend powerAllowlist,
-            String pkg, int uid) {
+    static CharSequence getSummary(
+            Context context, PowerAllowlistBackend powerAllowlist, String pkg, int uid) {
         return context.getString(
                 powerAllowlist.isSysAllowlisted(pkg) || powerAllowlist.isDefaultActiveApp(pkg, uid)
                         ? R.string.high_power_system
diff --git a/src/com/android/settings/fuelgauge/InactiveApps.java b/src/com/android/settings/fuelgauge/InactiveApps.java
index a629fce..465a9d8 100644
--- a/src/com/android/settings/fuelgauge/InactiveApps.java
+++ b/src/com/android/settings/fuelgauge/InactiveApps.java
@@ -47,15 +47,16 @@
 public class InactiveApps extends SettingsPreferenceFragment
         implements Preference.OnPreferenceChangeListener {
 
-    private static final CharSequence[] FULL_SETTABLE_BUCKETS_NAMES =
-            {"ACTIVE", "WORKING_SET", "FREQUENT", "RARE", "RESTRICTED"};
+    private static final CharSequence[] FULL_SETTABLE_BUCKETS_NAMES = {
+        "ACTIVE", "WORKING_SET", "FREQUENT", "RARE", "RESTRICTED"
+    };
 
     private static final CharSequence[] FULL_SETTABLE_BUCKETS_VALUES = {
-            Integer.toString(STANDBY_BUCKET_ACTIVE),
-            Integer.toString(STANDBY_BUCKET_WORKING_SET),
-            Integer.toString(STANDBY_BUCKET_FREQUENT),
-            Integer.toString(STANDBY_BUCKET_RARE),
-            Integer.toString(STANDBY_BUCKET_RESTRICTED)
+        Integer.toString(STANDBY_BUCKET_ACTIVE),
+        Integer.toString(STANDBY_BUCKET_WORKING_SET),
+        Integer.toString(STANDBY_BUCKET_FREQUENT),
+        Integer.toString(STANDBY_BUCKET_RARE),
+        Integer.toString(STANDBY_BUCKET_RESTRICTED)
     };
 
     private UsageStatsManager mUsageStats;
@@ -118,7 +119,7 @@
             return possibleBuckets;
         }
         if (minBucket < STANDBY_BUCKET_ACTIVE) {
-            return new CharSequence[]{};
+            return new CharSequence[] {};
         }
         // Use FULL_SETTABLE_BUCKETS_VALUES since we're searching using the int value. The index
         // should apply no matter which array we're going to copy from.
@@ -133,13 +134,20 @@
 
     static String bucketToName(int bucket) {
         switch (bucket) {
-            case STANDBY_BUCKET_EXEMPTED: return "EXEMPTED";
-            case STANDBY_BUCKET_ACTIVE: return "ACTIVE";
-            case STANDBY_BUCKET_WORKING_SET: return "WORKING_SET";
-            case STANDBY_BUCKET_FREQUENT: return "FREQUENT";
-            case STANDBY_BUCKET_RARE: return "RARE";
-            case STANDBY_BUCKET_RESTRICTED: return "RESTRICTED";
-            case STANDBY_BUCKET_NEVER: return "NEVER";
+            case STANDBY_BUCKET_EXEMPTED:
+                return "EXEMPTED";
+            case STANDBY_BUCKET_ACTIVE:
+                return "ACTIVE";
+            case STANDBY_BUCKET_WORKING_SET:
+                return "WORKING_SET";
+            case STANDBY_BUCKET_FREQUENT:
+                return "FREQUENT";
+            case STANDBY_BUCKET_RARE:
+                return "RARE";
+            case STANDBY_BUCKET_RESTRICTED:
+                return "RESTRICTED";
+            case STANDBY_BUCKET_NEVER:
+                return "NEVER";
         }
         return "";
     }
@@ -148,13 +156,13 @@
         final Resources res = getActivity().getResources();
         final int appBucket = mUsageStats.getAppStandbyBucket(p.getKey());
         final String bucketName = bucketToName(appBucket);
-        p.setSummary(res.getString(
-                com.android.settingslib.R.string.standby_bucket_summary, bucketName));
+        p.setSummary(
+                res.getString(com.android.settingslib.R.string.standby_bucket_summary, bucketName));
         // Buckets outside of the range of the dynamic ones are only used for special
         // purposes and can either not be changed out of, or might have undesirable
         // side-effects in combination with other assumptions.
-        final boolean changeable = appBucket >= STANDBY_BUCKET_ACTIVE
-                && appBucket <= STANDBY_BUCKET_RESTRICTED;
+        final boolean changeable =
+                appBucket >= STANDBY_BUCKET_ACTIVE && appBucket <= STANDBY_BUCKET_RESTRICTED;
         if (changeable) {
             p.setValue(Integer.toString(appBucket));
         }
diff --git a/src/com/android/settings/fuelgauge/OptimizedPreferenceController.java b/src/com/android/settings/fuelgauge/OptimizedPreferenceController.java
index ca75b0e..a26ab7a 100644
--- a/src/com/android/settings/fuelgauge/OptimizedPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/OptimizedPreferenceController.java
@@ -17,7 +17,6 @@
 package com.android.settings.fuelgauge;
 
 import android.content.Context;
-import android.util.Log;
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
@@ -31,7 +30,7 @@
 
     private static final String TAG = "OPTIMIZED_PREF";
 
-    @VisibleForTesting String KEY_OPTIMIZED_PREF = "optimized_pref";
+    @VisibleForTesting static final String KEY_OPTIMIZED_PREF = "optimized_preference";
     @VisibleForTesting BatteryOptimizeUtils mBatteryOptimizeUtils;
 
     public OptimizedPreferenceController(Context context, int uid, String packageName) {
@@ -46,24 +45,13 @@
 
     @Override
     public void updateState(Preference preference) {
-        if (mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()) {
-            Log.d(TAG, "disable preference for " + mBatteryOptimizeUtils.getPackageName());
-            preference.setEnabled(true);
-            ((SelectorWithWidgetPreference) preference).setChecked(true);
-            return;
-        }
+        preference.setEnabled(mBatteryOptimizeUtils.isSelectorPreferenceEnabled());
 
-        if (mBatteryOptimizeUtils.getAppOptimizationMode()
-                == BatteryOptimizeUtils.MODE_OPTIMIZED) {
-            Log.d(TAG, "is optimized states");
-            ((SelectorWithWidgetPreference) preference).setChecked(true);
-        } else {
-            ((SelectorWithWidgetPreference) preference).setChecked(false);
-            if (mBatteryOptimizeUtils.isSystemOrDefaultApp()) {
-                Log.d(TAG, "is system or default app, disable pref");
-                preference.setEnabled(false);
-            }
-        }
+        final boolean isOptimized =
+                mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()
+                        || mBatteryOptimizeUtils.getAppOptimizationMode()
+                                == BatteryOptimizeUtils.MODE_OPTIMIZED;
+        ((SelectorWithWidgetPreference) preference).setChecked(isOptimized);
     }
 
     @Override
diff --git a/src/com/android/settings/fuelgauge/PowerBackgroundUsageDetail.java b/src/com/android/settings/fuelgauge/PowerBackgroundUsageDetail.java
new file mode 100644
index 0000000..28ae04f
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/PowerBackgroundUsageDetail.java
@@ -0,0 +1,348 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.fuelgauge;
+
+import static com.android.settings.fuelgauge.BatteryOptimizeHistoricalLogEntry.Action;
+
+import android.app.Activity;
+import android.app.backup.BackupManager;
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.UserHandle;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
+
+import androidx.annotation.VisibleForTesting;
+
+import com.android.settings.R;
+import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.widget.EntityHeaderController;
+import com.android.settingslib.HelpUtils;
+import com.android.settingslib.applications.AppUtils;
+import com.android.settingslib.applications.ApplicationsState;
+import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settingslib.widget.FooterPreference;
+import com.android.settingslib.widget.LayoutPreference;
+import com.android.settingslib.widget.MainSwitchPreference;
+import com.android.settingslib.widget.SelectorWithWidgetPreference;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+/** Allow background usage fragment for each app */
+public class PowerBackgroundUsageDetail extends DashboardFragment
+        implements SelectorWithWidgetPreference.OnClickListener, OnCheckedChangeListener {
+    private static final String TAG = "PowerBackgroundUsageDetail";
+
+    public static final String EXTRA_UID = "extra_uid";
+    public static final String EXTRA_PACKAGE_NAME = "extra_package_name";
+    public static final String EXTRA_LABEL = "extra_label";
+    public static final String EXTRA_POWER_USAGE_AMOUNT = "extra_power_usage_amount";
+    public static final String EXTRA_ICON_ID = "extra_icon_id";
+    private static final String KEY_PREF_HEADER = "header_view";
+    private static final String KEY_PREF_UNRESTRICTED = "unrestricted_preference";
+    private static final String KEY_PREF_OPTIMIZED = "optimized_preference";
+    private static final String KEY_ALLOW_BACKGROUND_USAGE = "allow_background_usage";
+    private static final String KEY_FOOTER_PREFERENCE = "app_usage_footer_preference";
+
+    private final ExecutorService mExecutor = Executors.newSingleThreadExecutor();
+
+    @VisibleForTesting LayoutPreference mHeaderPreference;
+    @VisibleForTesting ApplicationsState mState;
+    @VisibleForTesting ApplicationsState.AppEntry mAppEntry;
+    @VisibleForTesting BatteryOptimizeUtils mBatteryOptimizeUtils;
+    @VisibleForTesting SelectorWithWidgetPreference mOptimizePreference;
+    @VisibleForTesting SelectorWithWidgetPreference mUnrestrictedPreference;
+    @VisibleForTesting MainSwitchPreference mMainSwitchPreference;
+    @VisibleForTesting FooterPreference mFooterPreference;
+    @VisibleForTesting BackupManager mBackupManager;
+    @VisibleForTesting StringBuilder mLogStringBuilder;
+
+    @VisibleForTesting @BatteryOptimizeUtils.OptimizationMode
+    int mOptimizationMode = BatteryOptimizeUtils.MODE_UNKNOWN;
+
+    @Override
+    public void onAttach(Activity activity) {
+        super.onAttach(activity);
+
+        mState = ApplicationsState.getInstance(getActivity().getApplication());
+    }
+
+    @Override
+    public void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+
+        final String packageName = getArguments().getString(EXTRA_PACKAGE_NAME);
+        onCreateBackgroundUsageState(packageName);
+        mHeaderPreference = findPreference(KEY_PREF_HEADER);
+
+        if (packageName != null) {
+            mAppEntry = mState.getEntry(packageName, UserHandle.myUserId());
+        }
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        initHeader();
+        mOptimizationMode = mBatteryOptimizeUtils.getAppOptimizationMode();
+        initFooter();
+        mExecutor.execute(
+                () -> {
+                    String packageName =
+                            BatteryUtils.getLoggingPackageName(
+                                    getContext(), mBatteryOptimizeUtils.getPackageName());
+                    FeatureFactory.getFeatureFactory()
+                            .getMetricsFeatureProvider()
+                            .action(
+                                    getContext(),
+                                    SettingsEnums.OPEN_APP_BATTERY_USAGE,
+                                    packageName);
+                });
+        mLogStringBuilder = new StringBuilder("onResume mode = ").append(mOptimizationMode);
+    }
+
+    @Override
+    public void onPause() {
+        super.onPause();
+
+        notifyBackupManager();
+        final int currentOptimizeMode = mBatteryOptimizeUtils.getAppOptimizationMode();
+        mLogStringBuilder.append(", onPause mode = ").append(currentOptimizeMode);
+        logMetricCategory(currentOptimizeMode);
+
+        mExecutor.execute(
+                () -> {
+                    BatteryOptimizeLogUtils.writeLog(
+                            getContext().getApplicationContext(),
+                            Action.LEAVE,
+                            BatteryOptimizeLogUtils.getPackageNameWithUserId(
+                                    mBatteryOptimizeUtils.getPackageName(), UserHandle.myUserId()),
+                            mLogStringBuilder.toString());
+                });
+        Log.d(TAG, "Leave with mode: " + currentOptimizeMode);
+    }
+
+    @Override
+    public void onRadioButtonClicked(SelectorWithWidgetPreference selected) {
+        final String selectedKey = selected == null ? null : selected.getKey();
+        updateSelectorPreferenceState(mUnrestrictedPreference, selectedKey);
+        updateSelectorPreferenceState(mOptimizePreference, selectedKey);
+        mBatteryOptimizeUtils.setAppUsageState(getSelectedPreference(), Action.APPLY);
+    }
+
+    @Override
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+        mMainSwitchPreference.setChecked(isChecked);
+        updateSelectorPreference(isChecked);
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.FUELGAUGE_POWER_USAGE_MANAGE_BACKGROUND;
+    }
+
+    @Override
+    protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
+        final List<AbstractPreferenceController> controllers = new ArrayList<>();
+        final Bundle bundle = getArguments();
+        final int uid = bundle.getInt(EXTRA_UID, 0);
+        final String packageName = bundle.getString(EXTRA_PACKAGE_NAME);
+
+        controllers.add(new AllowBackgroundPreferenceController(context, uid, packageName));
+        controllers.add(new OptimizedPreferenceController(context, uid, packageName));
+        controllers.add(new UnrestrictedPreferenceController(context, uid, packageName));
+
+        return controllers;
+    }
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.power_background_usage_detail;
+    }
+
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+
+    @VisibleForTesting
+    void updateSelectorPreference(boolean isEnabled) {
+        mOptimizePreference.setEnabled(isEnabled);
+        mUnrestrictedPreference.setEnabled(isEnabled);
+        onRadioButtonClicked(isEnabled ? mOptimizePreference : null);
+    }
+
+    @VisibleForTesting
+    void notifyBackupManager() {
+        if (mOptimizationMode != mBatteryOptimizeUtils.getAppOptimizationMode()) {
+            final BackupManager backupManager =
+                    mBackupManager != null ? mBackupManager : new BackupManager(getContext());
+            backupManager.dataChanged();
+        }
+    }
+
+    @VisibleForTesting
+    int getSelectedPreference() {
+        if (!mMainSwitchPreference.isChecked()) {
+            return BatteryOptimizeUtils.MODE_RESTRICTED;
+        } else if (mUnrestrictedPreference.isChecked()) {
+            return BatteryOptimizeUtils.MODE_UNRESTRICTED;
+        } else if (mOptimizePreference.isChecked()) {
+            return BatteryOptimizeUtils.MODE_OPTIMIZED;
+        } else {
+            return BatteryOptimizeUtils.MODE_UNKNOWN;
+        }
+    }
+
+    static void startPowerBackgroundUsageDetailPage(Context context, Bundle args) {
+        new SubSettingLauncher(context)
+                .setDestination(PowerBackgroundUsageDetail.class.getName())
+                .setArguments(args)
+                .setSourceMetricsCategory(SettingsEnums.FUELGAUGE_POWER_USAGE_MANAGE_BACKGROUND)
+                .launch();
+    }
+
+    @VisibleForTesting
+    void initHeader() {
+        final View appSnippet = mHeaderPreference.findViewById(R.id.entity_header);
+        final Activity context = getActivity();
+        final Bundle bundle = getArguments();
+        EntityHeaderController controller =
+                EntityHeaderController.newInstance(context, this, appSnippet)
+                        .setButtonActions(
+                                EntityHeaderController.ActionType.ACTION_NONE,
+                                EntityHeaderController.ActionType.ACTION_NONE);
+
+        if (mAppEntry == null) {
+            controller.setLabel(bundle.getString(EXTRA_LABEL));
+
+            final int iconId = bundle.getInt(EXTRA_ICON_ID, 0);
+            if (iconId == 0) {
+                controller.setIcon(context.getPackageManager().getDefaultActivityIcon());
+            } else {
+                controller.setIcon(context.getDrawable(bundle.getInt(EXTRA_ICON_ID)));
+            }
+        } else {
+            mState.ensureIcon(mAppEntry);
+            controller.setLabel(mAppEntry);
+            controller.setIcon(mAppEntry);
+            controller.setIsInstantApp(AppUtils.isInstant(mAppEntry.info));
+        }
+
+        controller.done(true /* rebindActions */);
+    }
+
+    @VisibleForTesting
+    void initFooter() {
+        final String stateString;
+        final String footerString;
+        final Context context = getContext();
+
+        if (mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()) {
+            // Present optimized only string when the package name is invalid.
+            stateString = context.getString(R.string.manager_battery_usage_optimized_only);
+            footerString =
+                    context.getString(R.string.manager_battery_usage_footer_limited, stateString);
+        } else if (mBatteryOptimizeUtils.isSystemOrDefaultApp()) {
+            // Present unrestricted only string when the package is system or default active app.
+            stateString = context.getString(R.string.manager_battery_usage_unrestricted_only);
+            footerString =
+                    context.getString(R.string.manager_battery_usage_footer_limited, stateString);
+        } else {
+            // Present default string to normal app.
+            footerString = context.getString(R.string.manager_battery_usage_footer);
+        }
+        mFooterPreference.setTitle(footerString);
+        final Intent helpIntent =
+                HelpUtils.getHelpIntent(
+                        context,
+                        context.getString(R.string.help_url_app_usage_settings),
+                        /* backupContext= */ "");
+        if (helpIntent != null) {
+            mFooterPreference.setLearnMoreAction(
+                    v -> startActivityForResult(helpIntent, /* requestCode= */ 0));
+            mFooterPreference.setLearnMoreText(
+                    context.getString(R.string.manager_battery_usage_link_a11y));
+        }
+    }
+
+    private void onCreateBackgroundUsageState(String packageName) {
+        mOptimizePreference = findPreference(KEY_PREF_OPTIMIZED);
+        mUnrestrictedPreference = findPreference(KEY_PREF_UNRESTRICTED);
+        mMainSwitchPreference = findPreference(KEY_ALLOW_BACKGROUND_USAGE);
+        mFooterPreference = findPreference(KEY_FOOTER_PREFERENCE);
+
+        mOptimizePreference.setOnClickListener(this);
+        mUnrestrictedPreference.setOnClickListener(this);
+        mMainSwitchPreference.addOnSwitchChangeListener(this);
+
+        mBatteryOptimizeUtils =
+                new BatteryOptimizeUtils(
+                        getContext(), getArguments().getInt(EXTRA_UID), packageName);
+    }
+
+    private void updateSelectorPreferenceState(
+            SelectorWithWidgetPreference preference, String selectedKey) {
+        preference.setChecked(TextUtils.equals(selectedKey, preference.getKey()));
+    }
+
+    private void logMetricCategory(int currentOptimizeMode) {
+        if (currentOptimizeMode == mOptimizationMode) {
+            return;
+        }
+        int metricCategory = 0;
+        switch (currentOptimizeMode) {
+            case BatteryOptimizeUtils.MODE_UNRESTRICTED:
+                metricCategory = SettingsEnums.ACTION_APP_BATTERY_USAGE_UNRESTRICTED;
+                break;
+            case BatteryOptimizeUtils.MODE_OPTIMIZED:
+                metricCategory = SettingsEnums.ACTION_APP_BATTERY_USAGE_OPTIMIZED;
+                break;
+            case BatteryOptimizeUtils.MODE_RESTRICTED:
+                metricCategory = SettingsEnums.ACTION_APP_BATTERY_USAGE_RESTRICTED;
+                break;
+        }
+        if (metricCategory == 0) {
+            return;
+        }
+        int finalMetricCategory = metricCategory;
+        mExecutor.execute(
+                () -> {
+                    String packageName =
+                            BatteryUtils.getLoggingPackageName(
+                                    getContext(), mBatteryOptimizeUtils.getPackageName());
+                    FeatureFactory.getFeatureFactory()
+                            .getMetricsFeatureProvider()
+                            .action(
+                                    /* attribution */ SettingsEnums.OPEN_APP_BATTERY_USAGE,
+                                    /* action */ finalMetricCategory,
+                                    /* pageId */ SettingsEnums.OPEN_APP_BATTERY_USAGE,
+                                    packageName,
+                                    getArguments().getInt(EXTRA_POWER_USAGE_AMOUNT));
+                });
+    }
+}
diff --git a/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java b/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java
index 4253ca6..a2ee3e4 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java
@@ -28,19 +28,13 @@
 import java.util.List;
 import java.util.Set;
 
-/**
- * Feature Provider used in power usage
- */
+/** Feature Provider used in power usage */
 public interface PowerUsageFeatureProvider {
 
-    /**
-     * Check whether the battery usage button is enabled in the battery page
-     */
+    /** Check whether the battery usage button is enabled in the battery page */
     boolean isBatteryUsageEnabled();
 
-    /**
-     * Check whether the battery tips card is enabled in the battery usage page
-     */
+    /** Check whether the battery tips card is enabled in the battery usage page */
     boolean isBatteryTipsEnabled();
 
     /**
@@ -48,39 +42,25 @@
      */
     double getBatteryUsageListScreenOnTimeThresholdInMs();
 
-    /**
-     * Returns a threshold (mA) for the minimal comsume power in battery usage list
-     */
+    /** Returns a threshold (mA) for the minimal comsume power in battery usage list */
     double getBatteryUsageListConsumePowerThreshold();
 
-    /**
-     * Returns an allowlist of app names combined into the system-apps item
-     */
+    /** Returns an allowlist of app names combined into the system-apps item */
     List<String> getSystemAppsAllowlist();
 
-    /**
-     * Check whether location setting is enabled
-     */
+    /** Check whether location setting is enabled */
     boolean isLocationSettingEnabled(String[] packages);
 
-    /**
-     * Gets an {@link Intent} to show additional battery info
-     */
+    /** Gets an {@link Intent} to show additional battery info */
     Intent getAdditionalBatteryInfoIntent();
 
-    /**
-     * Check whether it is type service
-     */
+    /** Check whether it is type service */
     boolean isTypeService(int uid);
 
-    /**
-     * Check whether it is type system
-     */
+    /** Check whether it is type system */
     boolean isTypeSystem(int uid, String[] packages);
 
-    /**
-     * Returns an improved prediction for battery time remaining
-     */
+    /** Returns an improved prediction for battery time remaining */
     Estimate getEnhancedBatteryPrediction(Context context);
 
     /**
@@ -90,14 +70,10 @@
      */
     SparseIntArray getEnhancedBatteryPredictionCurve(Context context, long zeroTime);
 
-    /**
-     * Checks whether the toggle for enhanced battery predictions is enabled
-     */
+    /** Checks whether the toggle for enhanced battery predictions is enabled */
     boolean isEnhancedBatteryPredictionEnabled(Context context);
 
-    /**
-     * Checks whether debugging should be enabled for battery estimates
-     */
+    /** Checks whether debugging should be enabled for battery estimates */
     boolean isEstimateDebugEnabled();
 
     /**
@@ -115,88 +91,54 @@
      */
     String getOldEstimateDebugString(String timeRemaining);
 
-    /**
-     * Checks whether smart battery feature is supported in this device
-     */
+    /** Checks whether smart battery feature is supported in this device */
     boolean isSmartBatterySupported();
 
-    /**
-     * Checks whether we should show usage information by slots or not
-     */
+    /** Checks whether we should show usage information by slots or not */
     boolean isChartGraphSlotsEnabled(Context context);
 
-    /**
-     * Returns {@code true} if current defender mode is extra defend
-     */
+    /** Returns {@code true} if current defender mode is extra defend */
     boolean isExtraDefend();
 
-    /**
-     * Returns {@code true} if delay the hourly job when device is booting
-     */
+    /** Returns {@code true} if delay the hourly job when device is booting */
     boolean delayHourlyJobWhenBooting();
 
-    /**
-     * Insert settings configuration data for anomaly detection
-     */
+    /** Insert settings configuration data for anomaly detection */
     void insertSettingsData(Context context, double displayDrain);
 
-    /**
-     * Returns {@link Bundle} for settings anomaly detection result
-     */
+    /** Returns {@link Bundle} for settings anomaly detection result */
     PowerAnomalyEventList detectSettingsAnomaly(Context context, double displayDrain);
 
-    /**
-     * Gets an intent for one time bypass charge limited to resume charging.
-     */
+    /** Gets an intent for one time bypass charge limited to resume charging. */
     Intent getResumeChargeIntent(boolean isDockDefender);
 
-    /**
-     * Returns the intent action used to mark as the full charge start event.
-     */
+    /** Returns the intent action used to mark as the full charge start event. */
     String getFullChargeIntentAction();
 
-    /**
-     * Returns {@link Set} for the system component ids which are combined into others
-     */
+    /** Returns {@link Set} for the system component ids which are combined into others */
     Set<Integer> getOthersSystemComponentSet();
 
-    /**
-     * Returns {@link Set} for the custom system component names which are combined into others
-     */
+    /** Returns {@link Set} for the custom system component names which are combined into others */
     Set<String> getOthersCustomComponentNameSet();
 
-    /**
-     * Returns {@link Set} for hiding system component ids in the usage screen
-     */
+    /** Returns {@link Set} for hiding system component ids in the usage screen */
     Set<Integer> getHideSystemComponentSet();
 
-    /**
-     * Returns {@link Set} for hiding application package names in the usage screen
-     */
+    /** Returns {@link Set} for hiding application package names in the usage screen */
     Set<String> getHideApplicationSet();
 
-    /**
-     * Returns {@link Set} for hiding applications background usage time
-     */
+    /** Returns {@link Set} for hiding applications background usage time */
     Set<String> getHideBackgroundUsageTimeSet();
 
-    /**
-     * Returns {@link Set} for ignoring task root class names for screen on time
-     */
+    /** Returns {@link Set} for ignoring task root class names for screen on time */
     Set<String> getIgnoreScreenOnTimeTaskRootSet();
 
-    /**
-     * Returns the customized device build information for data backup
-     */
+    /** Returns the customized device build information for data backup */
     String getBuildMetadata1(Context context);
 
-    /**
-     * Returns the customized device build information for data backup
-     */
+    /** Returns the customized device build information for data backup */
     String getBuildMetadata2(Context context);
 
-    /**
-     * Whether the app optimization mode is valid to restore
-     */
+    /** Whether the app optimization mode is valid to restore */
     boolean isValidToRestoreOptimizationMode(ArrayMap<String, String> deviceInfoMap);
 }
diff --git a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java
index 5931e206..2e2cf12 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java
@@ -39,8 +39,9 @@
 
     private static final String PACKAGE_CALENDAR_PROVIDER = "com.android.providers.calendar";
     private static final String PACKAGE_MEDIA_PROVIDER = "com.android.providers.media";
-    private static final String[] PACKAGES_SYSTEM = {PACKAGE_MEDIA_PROVIDER,
-            PACKAGE_CALENDAR_PROVIDER, SYSTEMUI_PACKAGE_NAME};
+    private static final String[] PACKAGES_SYSTEM = {
+        PACKAGE_MEDIA_PROVIDER, PACKAGE_CALENDAR_PROVIDER, SYSTEMUI_PACKAGE_NAME
+    };
 
     protected PackageManager mPackageManager;
     protected Context mContext;
@@ -137,8 +138,8 @@
 
     @Override
     public boolean isSmartBatterySupported() {
-        return mContext.getResources().getBoolean(
-                com.android.internal.R.bool.config_smart_battery_available);
+        return mContext.getResources()
+                .getBoolean(com.android.internal.R.bool.config_smart_battery_available);
     }
 
     @Override
diff --git a/src/com/android/settings/fuelgauge/PowerUsageTimeController.java b/src/com/android/settings/fuelgauge/PowerUsageTimeController.java
index 5ee15fb..0dfdd5d 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageTimeController.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageTimeController.java
@@ -36,12 +36,9 @@
     private static final String KEY_SCREEN_TIME_PREF = "battery_usage_screen_time";
     private static final String KEY_BACKGROUND_TIME_PREF = "battery_usage_background_time";
 
-    @VisibleForTesting
-    PreferenceCategory mPowerUsageTimeCategory;
-    @VisibleForTesting
-    PowerUsageTimePreference mScreenTimePreference;
-    @VisibleForTesting
-    PowerUsageTimePreference mBackgroundTimePreference;
+    @VisibleForTesting PreferenceCategory mPowerUsageTimeCategory;
+    @VisibleForTesting PowerUsageTimePreference mScreenTimePreference;
+    @VisibleForTesting PowerUsageTimePreference mBackgroundTimePreference;
 
     public PowerUsageTimeController(Context context) {
         super(context, KEY_POWER_USAGE_TIME);
@@ -61,22 +58,37 @@
         mPowerUsageTimeCategory.setVisible(false);
     }
 
-    void handleScreenTimeUpdated(final String slotTime,
-            final long screenOnTimeInMs, final long backgroundTimeInMs,
-            final String anomalyHintPrefKey, final String anomalyHintText) {
-        final boolean isShowScreenOnTime = showTimePreference(
-                mScreenTimePreference, R.string.power_usage_detail_screen_time,
-                screenOnTimeInMs, anomalyHintPrefKey, anomalyHintText);
-        final boolean isShowBackgroundTime = showTimePreference(
-                mBackgroundTimePreference, R.string.power_usage_detail_background_time,
-                backgroundTimeInMs, anomalyHintPrefKey, anomalyHintText);
+    void handleScreenTimeUpdated(
+            final String slotTime,
+            final long screenOnTimeInMs,
+            final long backgroundTimeInMs,
+            final String anomalyHintPrefKey,
+            final String anomalyHintText) {
+        final boolean isShowScreenOnTime =
+                showTimePreference(
+                        mScreenTimePreference,
+                        R.string.power_usage_detail_screen_time,
+                        screenOnTimeInMs,
+                        anomalyHintPrefKey,
+                        anomalyHintText);
+        final boolean isShowBackgroundTime =
+                showTimePreference(
+                        mBackgroundTimePreference,
+                        R.string.power_usage_detail_background_time,
+                        backgroundTimeInMs,
+                        anomalyHintPrefKey,
+                        anomalyHintText);
         if (isShowScreenOnTime || isShowBackgroundTime) {
             showCategoryTitle(slotTime);
         }
     }
 
-    boolean showTimePreference(PowerUsageTimePreference preference,
-            int titleResId, long summaryTimeMs, String anomalyHintKey, String anomalyHintText) {
+    boolean showTimePreference(
+            PowerUsageTimePreference preference,
+            int titleResId,
+            long summaryTimeMs,
+            String anomalyHintKey,
+            String anomalyHintText) {
         if (preference == null
                 || (summaryTimeMs == 0 && !TextUtils.equals(anomalyHintKey, preference.getKey()))) {
             return false;
@@ -94,15 +106,19 @@
         if (timeInMs < DateUtils.MINUTE_IN_MILLIS) {
             return mContext.getString(R.string.power_usage_time_less_than_one_minute);
         }
-        return formatElapsedTimeWithoutComma(mContext, (double) timeInMs,
-                /*withSeconds=*/ false, /*collapseTimeUnit=*/ false);
+        return formatElapsedTimeWithoutComma(
+                mContext,
+                (double) timeInMs,
+                /* withSeconds= */ false,
+                /* collapseTimeUnit= */ false);
     }
 
     @VisibleForTesting
     void showCategoryTitle(String slotTimestamp) {
-        mPowerUsageTimeCategory.setTitle(slotTimestamp == null
-                ? mContext.getString(R.string.battery_app_usage)
-                : mContext.getString(R.string.battery_app_usage_for, slotTimestamp));
+        mPowerUsageTimeCategory.setTitle(
+                slotTimestamp == null
+                        ? mContext.getString(R.string.battery_app_usage)
+                        : mContext.getString(R.string.battery_app_usage_for, slotTimestamp));
         mPowerUsageTimeCategory.setVisible(true);
     }
 }
diff --git a/src/com/android/settings/fuelgauge/PowerUsageTimePreference.java b/src/com/android/settings/fuelgauge/PowerUsageTimePreference.java
index 16f8be2..16c7770 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageTimePreference.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageTimePreference.java
@@ -28,18 +28,13 @@
 
 import com.android.settings.R;
 
-/**
- * Custom preference for displaying the app power usage time.
- */
+/** Custom preference for displaying the app power usage time. */
 public class PowerUsageTimePreference extends Preference {
     private static final String TAG = "PowerUsageTimePreference";
 
-    @VisibleForTesting
-    CharSequence mTimeTitle;
-    @VisibleForTesting
-    CharSequence mTimeSummary;
-    @VisibleForTesting
-    CharSequence mAnomalyHintText;
+    @VisibleForTesting CharSequence mTimeTitle;
+    @VisibleForTesting CharSequence mTimeSummary;
+    @VisibleForTesting CharSequence mAnomalyHintText;
 
     public PowerUsageTimePreference(Context context, AttributeSet attrs) {
         super(context, attrs);
diff --git a/src/com/android/settings/fuelgauge/RequestIgnoreBatteryOptimizations.java b/src/com/android/settings/fuelgauge/RequestIgnoreBatteryOptimizations.java
index 9ef8c8c..d948cc0 100644
--- a/src/com/android/settings/fuelgauge/RequestIgnoreBatteryOptimizations.java
+++ b/src/com/android/settings/fuelgauge/RequestIgnoreBatteryOptimizations.java
@@ -31,8 +31,8 @@
 import com.android.internal.app.AlertController;
 import com.android.settings.R;
 
-public class RequestIgnoreBatteryOptimizations extends AlertActivity implements
-        DialogInterface.OnClickListener {
+public class RequestIgnoreBatteryOptimizations extends AlertActivity
+        implements DialogInterface.OnClickListener {
     private static final String TAG = "RequestIgnoreBatteryOptimizations";
     private static final boolean DEBUG = false;
 
@@ -42,22 +42,24 @@
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        getWindow().addSystemFlags(android.view.WindowManager.LayoutParams
-                .SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
+        getWindow()
+                .addSystemFlags(
+                        android.view.WindowManager.LayoutParams
+                                .SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
 
         mPowerWhitelistManager = getSystemService(PowerWhitelistManager.class);
 
         Uri data = getIntent().getData();
         if (data == null) {
-            debugLog("No data supplied for IGNORE_BATTERY_OPTIMIZATION_SETTINGS in: "
-                    + getIntent());
+            debugLog(
+                    "No data supplied for IGNORE_BATTERY_OPTIMIZATION_SETTINGS in: " + getIntent());
             finish();
             return;
         }
         mPackageName = data.getSchemeSpecificPart();
         if (mPackageName == null) {
-            debugLog("No data supplied for IGNORE_BATTERY_OPTIMIZATION_SETTINGS in: "
-                    + getIntent());
+            debugLog(
+                    "No data supplied for IGNORE_BATTERY_OPTIMIZATION_SETTINGS in: " + getIntent());
             finish();
             return;
         }
@@ -69,11 +71,16 @@
             return;
         }
 
-        if (getPackageManager().checkPermission(
-                Manifest.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS, mPackageName)
+        if (getPackageManager()
+                        .checkPermission(
+                                Manifest.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS,
+                                mPackageName)
                 != PackageManager.PERMISSION_GRANTED) {
-            debugLog("Requested package " + mPackageName + " does not hold permission "
-                    + Manifest.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
+            debugLog(
+                    "Requested package "
+                            + mPackageName
+                            + " does not hold permission "
+                            + Manifest.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
             finish();
             return;
         }
@@ -88,9 +95,12 @@
         }
 
         final AlertController.AlertParams p = mAlertParams;
-        final CharSequence appLabel = ai.loadSafeLabel(getPackageManager(),
-                PackageItemInfo.DEFAULT_MAX_LABEL_SIZE_PX, PackageItemInfo.SAFE_LABEL_FLAG_TRIM
-                        | PackageItemInfo.SAFE_LABEL_FLAG_FIRST_LINE);
+        final CharSequence appLabel =
+                ai.loadSafeLabel(
+                        getPackageManager(),
+                        PackageItemInfo.DEFAULT_MAX_LABEL_SIZE_PX,
+                        PackageItemInfo.SAFE_LABEL_FLAG_TRIM
+                                | PackageItemInfo.SAFE_LABEL_FLAG_FIRST_LINE);
         p.mTitle = getText(R.string.high_power_prompt_title);
         p.mMessage = getString(R.string.high_power_prompt_body, appLabel);
         p.mPositiveButtonText = getText(R.string.allow);
diff --git a/src/com/android/settings/fuelgauge/RestrictAppPreferenceController.java b/src/com/android/settings/fuelgauge/RestrictAppPreferenceController.java
index e17119f..ea59afa 100644
--- a/src/com/android/settings/fuelgauge/RestrictAppPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/RestrictAppPreferenceController.java
@@ -35,15 +35,11 @@
 
 import java.util.List;
 
-/**
- * Controller to change and update the smart battery toggle
- */
+/** Controller to change and update the smart battery toggle */
 public class RestrictAppPreferenceController extends BasePreferenceController {
-    @VisibleForTesting
-    static final String KEY_RESTRICT_APP = "restricted_app";
+    @VisibleForTesting static final String KEY_RESTRICT_APP = "restricted_app";
 
-    @VisibleForTesting
-    List<AppInfo> mAppInfos;
+    @VisibleForTesting List<AppInfo> mAppInfos;
     private AppOpsManager mAppOpsManager;
     private InstrumentedPreferenceFragment mPreferenceFragment;
     private UserManager mUserManager;
@@ -65,7 +61,8 @@
 
     @Override
     public int getAvailabilityStatus() {
-        return mAppInfos.size() > 0 && !mEnableAppBatteryUsagePage ? AVAILABLE
+        return mAppInfos.size() > 0 && !mEnableAppBatteryUsagePage
+                ? AVAILABLE
                 : CONDITIONALLY_UNAVAILABLE;
     }
 
@@ -76,17 +73,17 @@
         final int num = mAppInfos.size();
         // Fragment change RestrictedAppsList after onPause(), UI needs to be updated in onResume()
         preference.setVisible(num > 0);
-        preference.setSummary(StringUtil.getIcuPluralsString(mContext, num,
-                        R.string.restricted_app_summary));
+        preference.setSummary(
+                StringUtil.getIcuPluralsString(mContext, num, R.string.restricted_app_summary));
     }
 
     @Override
     public boolean handlePreferenceTreeClick(Preference preference) {
         if (getPreferenceKey().equals(preference.getKey())) {
             // start fragment
-            RestrictedAppDetails.startRestrictedAppDetails(mPreferenceFragment,
-                    mAppInfos);
-            FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()
+            RestrictedAppDetails.startRestrictedAppDetails(mPreferenceFragment, mAppInfos);
+            FeatureFactory.getFeatureFactory()
+                    .getMetricsFeatureProvider()
                     .action(mContext, SettingsEnums.OPEN_APP_RESTRICTED_LIST);
             return true;
         }
diff --git a/src/com/android/settings/fuelgauge/RestrictedAppDetails.java b/src/com/android/settings/fuelgauge/RestrictedAppDetails.java
index 8cc59d0..82c92de 100644
--- a/src/com/android/settings/fuelgauge/RestrictedAppDetails.java
+++ b/src/com/android/settings/fuelgauge/RestrictedAppDetails.java
@@ -52,36 +52,28 @@
 
 import java.util.List;
 
-/**
- * Fragment to show a list of anomaly apps, where user could handle these anomalies
- */
-public class RestrictedAppDetails extends DashboardFragment implements
-        BatteryTipPreferenceController.BatteryTipListener {
+/** Fragment to show a list of anomaly apps, where user could handle these anomalies */
+public class RestrictedAppDetails extends DashboardFragment
+        implements BatteryTipPreferenceController.BatteryTipListener {
 
     public static final String TAG = "RestrictedAppDetails";
 
-    @VisibleForTesting
-    static final String EXTRA_APP_INFO_LIST = "app_info_list";
+    @VisibleForTesting static final String EXTRA_APP_INFO_LIST = "app_info_list";
     private static final String KEY_PREF_RESTRICTED_APP_LIST = "restrict_app_list";
     private static final long TIME_NULL = -1;
 
-    @VisibleForTesting
-    List<AppInfo> mAppInfos;
-    @VisibleForTesting
-    IconDrawableFactory mIconDrawableFactory;
-    @VisibleForTesting
-    PreferenceGroup mRestrictedAppListGroup;
-    @VisibleForTesting
-    BatteryUtils mBatteryUtils;
-    @VisibleForTesting
-    PackageManager mPackageManager;
-    @VisibleForTesting
-    BatteryDatabaseManager mBatteryDatabaseManager;
+    @VisibleForTesting List<AppInfo> mAppInfos;
+    @VisibleForTesting IconDrawableFactory mIconDrawableFactory;
+    @VisibleForTesting PreferenceGroup mRestrictedAppListGroup;
+    @VisibleForTesting BatteryUtils mBatteryUtils;
+    @VisibleForTesting PackageManager mPackageManager;
+    @VisibleForTesting BatteryDatabaseManager mBatteryDatabaseManager;
 
     private MetricsFeatureProvider mMetricsFeatureProvider;
 
-    public static void startRestrictedAppDetails(InstrumentedPreferenceFragment fragment,
-            List<AppInfo> appInfos) {
+    /** Starts restricted app details page */
+    public static void startRestrictedAppDetails(
+            InstrumentedPreferenceFragment fragment, List<AppInfo> appInfos) {
         final Bundle args = new Bundle();
         args.putParcelableList(EXTRA_APP_INFO_LIST, appInfos);
 
@@ -104,8 +96,7 @@
         mIconDrawableFactory = IconDrawableFactory.newInstance(context);
         mBatteryUtils = BatteryUtils.getInstance(context);
         mBatteryDatabaseManager = BatteryDatabaseManager.getInstance(context);
-        mMetricsFeatureProvider =
-                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         refreshUi();
     }
 
@@ -144,39 +135,50 @@
     void refreshUi() {
         mRestrictedAppListGroup.removeAll();
         final Context context = getPrefContext();
-        final SparseLongArray timestampArray = mBatteryDatabaseManager
-                .queryActionTime(AnomalyDatabaseHelper.ActionType.RESTRICTION);
+        final SparseLongArray timestampArray =
+                mBatteryDatabaseManager.queryActionTime(
+                        AnomalyDatabaseHelper.ActionType.RESTRICTION);
         final long now = System.currentTimeMillis();
 
         for (int i = 0, size = mAppInfos.size(); i < size; i++) {
             final CheckBoxPreference checkBoxPreference = new AppCheckBoxPreference(context);
             final AppInfo appInfo = mAppInfos.get(i);
             try {
-                final ApplicationInfo applicationInfo = mPackageManager.getApplicationInfoAsUser(
-                        appInfo.packageName, 0 /* flags */, UserHandle.getUserId(appInfo.uid));
+                final ApplicationInfo applicationInfo =
+                        mPackageManager.getApplicationInfoAsUser(
+                                appInfo.packageName,
+                                0 /* flags */,
+                                UserHandle.getUserId(appInfo.uid));
                 checkBoxPreference.setChecked(
                         mBatteryUtils.isForceAppStandbyEnabled(appInfo.uid, appInfo.packageName));
                 checkBoxPreference.setTitle(mPackageManager.getApplicationLabel(applicationInfo));
                 checkBoxPreference.setIcon(
-                        Utils.getBadgedIcon(mIconDrawableFactory, mPackageManager,
+                        Utils.getBadgedIcon(
+                                mIconDrawableFactory,
+                                mPackageManager,
                                 appInfo.packageName,
                                 UserHandle.getUserId(appInfo.uid)));
                 checkBoxPreference.setKey(getKeyFromAppInfo(appInfo));
-                checkBoxPreference.setOnPreferenceChangeListener((pref, value) -> {
-                    final BatteryTipDialogFragment fragment = createDialogFragment(appInfo,
-                            (Boolean) value);
-                    fragment.setTargetFragment(this, 0 /* requestCode */);
-                    fragment.show(getFragmentManager(), TAG);
-                    mMetricsFeatureProvider.action(getContext(),
-                            SettingsEnums.ACTION_APP_RESTRICTED_LIST_UNCHECKED,
-                            appInfo.packageName);
-                    return false;
-                });
+                checkBoxPreference.setOnPreferenceChangeListener(
+                        (pref, value) -> {
+                            final BatteryTipDialogFragment fragment =
+                                    createDialogFragment(appInfo, (Boolean) value);
+                            fragment.setTargetFragment(this, 0 /* requestCode */);
+                            fragment.show(getFragmentManager(), TAG);
+                            mMetricsFeatureProvider.action(
+                                    getContext(),
+                                    SettingsEnums.ACTION_APP_RESTRICTED_LIST_UNCHECKED,
+                                    appInfo.packageName);
+                            return false;
+                        });
 
                 final long timestamp = timestampArray.get(appInfo.uid, TIME_NULL);
                 if (timestamp != TIME_NULL) {
-                    checkBoxPreference.setSummary(getString(R.string.restricted_app_time_summary,
-                            StringUtil.formatRelativeTime(context, now - timestamp, false)));
+                    checkBoxPreference.setSummary(
+                            getString(
+                                    R.string.restricted_app_time_summary,
+                                    StringUtil.formatRelativeTime(
+                                            context, now - timestamp, false)));
                 }
                 final CharSequence test = checkBoxPreference.getSummaryOn();
                 mRestrictedAppListGroup.addPreference(checkBoxPreference);
@@ -196,8 +198,9 @@
             appInfo = ((UnrestrictAppTip) batteryTip).getUnrestrictAppInfo();
         }
 
-        CheckBoxPreference preference = (CheckBoxPreference) mRestrictedAppListGroup
-                .findPreference(getKeyFromAppInfo(appInfo));
+        CheckBoxPreference preference =
+                (CheckBoxPreference)
+                        mRestrictedAppListGroup.findPreference(getKeyFromAppInfo(appInfo));
         if (preference != null) {
             preference.setChecked(isRestricted);
         }
@@ -205,12 +208,12 @@
 
     @VisibleForTesting
     BatteryTipDialogFragment createDialogFragment(AppInfo appInfo, boolean toRestrict) {
-        final BatteryTip batteryTip = toRestrict
-                ? new RestrictAppTip(BatteryTip.StateType.NEW, appInfo)
-                : new UnrestrictAppTip(BatteryTip.StateType.NEW, appInfo);
+        final BatteryTip batteryTip =
+                toRestrict
+                        ? new RestrictAppTip(BatteryTip.StateType.NEW, appInfo)
+                        : new UnrestrictAppTip(BatteryTip.StateType.NEW, appInfo);
 
-        return BatteryTipDialogFragment.newInstance(
-                batteryTip, getMetricsCategory());
+        return BatteryTipDialogFragment.newInstance(batteryTip, getMetricsCategory());
     }
 
     @VisibleForTesting
diff --git a/src/com/android/settings/fuelgauge/RestrictedPreferenceController.java b/src/com/android/settings/fuelgauge/RestrictedPreferenceController.java
deleted file mode 100644
index 7db77f1..0000000
--- a/src/com/android/settings/fuelgauge/RestrictedPreferenceController.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (C) 2021 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.fuelgauge;
-
-import android.content.Context;
-import android.util.Log;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.Preference;
-
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.core.AbstractPreferenceController;
-import com.android.settingslib.widget.SelectorWithWidgetPreference;
-
-public class RestrictedPreferenceController extends AbstractPreferenceController
-        implements PreferenceControllerMixin {
-
-    private static final String TAG = "RESTRICTED_PREF";
-
-    @VisibleForTesting String KEY_RESTRICTED_PREF = "restricted_pref";
-    @VisibleForTesting BatteryOptimizeUtils mBatteryOptimizeUtils;
-
-    public RestrictedPreferenceController(Context context, int uid, String packageName) {
-        super(context);
-        mBatteryOptimizeUtils = new BatteryOptimizeUtils(context, uid, packageName);
-    }
-
-    @Override
-    public void updateState(Preference preference) {
-
-        if (mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()) {
-            Log.d(TAG, "disable preference for " + mBatteryOptimizeUtils.getPackageName());
-            preference.setEnabled(false);
-            return;
-        } else {
-            preference.setEnabled(true);
-        }
-
-        if (mBatteryOptimizeUtils.getAppOptimizationMode()
-                == BatteryOptimizeUtils.MODE_RESTRICTED) {
-            Log.d(TAG, "is restricted states");
-            ((SelectorWithWidgetPreference) preference).setChecked(true);
-        } else {
-            ((SelectorWithWidgetPreference) preference).setChecked(false);
-            if (mBatteryOptimizeUtils.isSystemOrDefaultApp()) {
-                Log.d(TAG, "is system or default app, disable pref");
-                preference.setEnabled(false);
-            }
-        }
-    }
-
-    @Override
-    public boolean isAvailable() {
-        return true;
-    }
-
-    @Override
-    public String getPreferenceKey() {
-        return KEY_RESTRICTED_PREF;
-    }
-
-    @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return getPreferenceKey().equals(preference.getKey());
-    }
-}
diff --git a/src/com/android/settings/fuelgauge/SmartBatteryPreferenceController.java b/src/com/android/settings/fuelgauge/SmartBatteryPreferenceController.java
index 630cf82..ba292f2 100644
--- a/src/com/android/settings/fuelgauge/SmartBatteryPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/SmartBatteryPreferenceController.java
@@ -22,17 +22,15 @@
 import android.text.TextUtils;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.overlay.FeatureFactory;
 
-/**
- * Controller to change and update the smart battery toggle
- */
-public class SmartBatteryPreferenceController extends BasePreferenceController implements
-        Preference.OnPreferenceChangeListener {
+/** Controller to change and update the smart battery toggle */
+public class SmartBatteryPreferenceController extends BasePreferenceController
+        implements Preference.OnPreferenceChangeListener {
 
     private static final String KEY_SMART_BATTERY = "smart_battery";
     private static final int ON = 1;
@@ -70,16 +68,22 @@
     @Override
     public void updateState(Preference preference) {
         super.updateState(preference);
-        final boolean smartBatteryOn = Settings.Global.getInt(mContext.getContentResolver(),
-                Settings.Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED, ON) == ON;
-        ((SwitchPreference) preference).setChecked(smartBatteryOn);
+        final boolean smartBatteryOn =
+                Settings.Global.getInt(
+                                mContext.getContentResolver(),
+                                Settings.Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED,
+                                ON)
+                        == ON;
+        ((TwoStatePreference) preference).setChecked(smartBatteryOn);
     }
 
     @Override
     public boolean onPreferenceChange(Preference preference, Object newValue) {
         final boolean smartBatteryOn = (Boolean) newValue;
-        Settings.Global.putInt(mContext.getContentResolver(),
-                Settings.Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED, smartBatteryOn ? ON : OFF);
+        Settings.Global.putInt(
+                mContext.getContentResolver(),
+                Settings.Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED,
+                smartBatteryOn ? ON : OFF);
         return true;
     }
 }
diff --git a/src/com/android/settings/fuelgauge/SmartBatterySettings.java b/src/com/android/settings/fuelgauge/SmartBatterySettings.java
index 88b1fc9..44dba9a 100644
--- a/src/com/android/settings/fuelgauge/SmartBatterySettings.java
+++ b/src/com/android/settings/fuelgauge/SmartBatterySettings.java
@@ -32,9 +32,7 @@
 import java.util.Arrays;
 import java.util.List;
 
-/**
- * Fragment to show smart battery and restricted app controls
- */
+/** Fragment to show smart battery and restricted app controls */
 @SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
 public class SmartBatterySettings extends DashboardFragment {
     public static final String TAG = "SmartBatterySettings";
@@ -65,12 +63,12 @@
     }
 
     private static List<AbstractPreferenceController> buildPreferenceControllers(
-            Context context, SettingsActivity settingsActivity,
+            Context context,
+            SettingsActivity settingsActivity,
             InstrumentedPreferenceFragment fragment) {
         final List<AbstractPreferenceController> controllers = new ArrayList<>();
         if (settingsActivity != null && fragment != null) {
-            controllers.add(
-                    new RestrictAppPreferenceController(fragment));
+            controllers.add(new RestrictAppPreferenceController(fragment));
         } else {
             controllers.add(new RestrictAppPreferenceController(context));
         }
diff --git a/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceController.java b/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceController.java
index b514888..0f54f3e 100644
--- a/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceController.java
@@ -34,15 +34,13 @@
 import com.android.settingslib.core.lifecycle.events.OnStop;
 import com.android.settingslib.utils.ThreadUtils;
 
-public class TopLevelBatteryPreferenceController extends BasePreferenceController implements
-        LifecycleObserver, OnStart, OnStop, BatteryPreferenceController {
+public class TopLevelBatteryPreferenceController extends BasePreferenceController
+        implements LifecycleObserver, OnStart, OnStop, BatteryPreferenceController {
 
     private static final String TAG = "TopLvBatteryPrefControl";
 
-    @VisibleForTesting
-    Preference mPreference;
-    @VisibleForTesting
-    protected boolean mIsBatteryPresent = true;
+    @VisibleForTesting Preference mPreference;
+    @VisibleForTesting protected boolean mIsBatteryPresent = true;
 
     private final BatteryBroadcastReceiver mBatteryBroadcastReceiver;
 
@@ -53,28 +51,33 @@
     public TopLevelBatteryPreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
         mBatteryBroadcastReceiver = new BatteryBroadcastReceiver(mContext);
-        mBatteryBroadcastReceiver.setBatteryChangedListener(type -> {
-            Log.d(TAG, "onBatteryChanged: type=" + type);
-            if (type == BatteryBroadcastReceiver.BatteryUpdateType.BATTERY_NOT_PRESENT) {
-                mIsBatteryPresent = false;
-            }
-            BatteryInfo.getBatteryInfo(mContext, info -> {
-                Log.d(TAG, "getBatteryInfo: " + info);
-                mBatteryInfo = info;
-                updateState(mPreference);
-                // Update the preference summary text to the latest state.
-                setSummaryAsync(info);
-            }, true /* shortString */);
-        });
+        mBatteryBroadcastReceiver.setBatteryChangedListener(
+                type -> {
+                    Log.d(TAG, "onBatteryChanged: type=" + type);
+                    if (type == BatteryBroadcastReceiver.BatteryUpdateType.BATTERY_NOT_PRESENT) {
+                        mIsBatteryPresent = false;
+                    }
+                    BatteryInfo.getBatteryInfo(
+                            mContext,
+                            info -> {
+                                Log.d(TAG, "getBatteryInfo: " + info);
+                                mBatteryInfo = info;
+                                updateState(mPreference);
+                                // Update the preference summary text to the latest state.
+                                setSummaryAsync(info);
+                            },
+                            true /* shortString */);
+                });
 
-        mBatteryStatusFeatureProvider = FeatureFactory.getFeatureFactory()
-                .getBatteryStatusFeatureProvider();
+        mBatteryStatusFeatureProvider =
+                FeatureFactory.getFeatureFactory().getBatteryStatusFeatureProvider();
     }
 
     @Override
     public int getAvailabilityStatus() {
         return mContext.getResources().getBoolean(R.bool.config_show_top_level_battery)
-                ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+                ? AVAILABLE
+                : UNSUPPORTED_ON_DEVICE;
     }
 
     @Override
@@ -106,13 +109,17 @@
         return getDashboardLabel(mContext, mBatteryInfo, batteryStatusUpdate);
     }
 
-    protected CharSequence getDashboardLabel(Context context, BatteryInfo info,
-            boolean batteryStatusUpdate) {
+    protected CharSequence getDashboardLabel(
+            Context context, BatteryInfo info, boolean batteryStatusUpdate) {
         if (info == null || context == null) {
             return null;
         }
-        Log.d(TAG, "getDashboardLabel: " + mBatteryStatusLabel + " batteryStatusUpdate="
-                + batteryStatusUpdate);
+        Log.d(
+                TAG,
+                "getDashboardLabel: "
+                        + mBatteryStatusLabel
+                        + " batteryStatusUpdate="
+                        + batteryStatusUpdate);
 
         if (batteryStatusUpdate) {
             setSummaryAsync(info);
@@ -121,19 +128,24 @@
     }
 
     private void setSummaryAsync(BatteryInfo info) {
-        ThreadUtils.postOnBackgroundThread(() -> {
-            // Return false if built-in status should be used, will use updateBatteryStatus()
-            // method to inject the customized battery status label.
-            final boolean triggerBatteryStatusUpdate =
-                    mBatteryStatusFeatureProvider.triggerBatteryStatusUpdate(this, info);
-            ThreadUtils.postOnMainThread(() -> {
-                if (!triggerBatteryStatusUpdate) {
-                    mBatteryStatusLabel = null; // will generateLabel()
-                }
-                mPreference.setSummary(
-                        mBatteryStatusLabel == null ? generateLabel(info) : mBatteryStatusLabel);
-            });
-        });
+        ThreadUtils.postOnBackgroundThread(
+                () -> {
+                    // Return false if built-in status should be used, will use
+                    // updateBatteryStatus()
+                    // method to inject the customized battery status label.
+                    final boolean triggerBatteryStatusUpdate =
+                            mBatteryStatusFeatureProvider.triggerBatteryStatusUpdate(this, info);
+                    ThreadUtils.postOnMainThread(
+                            () -> {
+                                if (!triggerBatteryStatusUpdate) {
+                                    mBatteryStatusLabel = null; // will generateLabel()
+                                }
+                                mPreference.setSummary(
+                                        mBatteryStatusLabel == null
+                                                ? generateLabel(info)
+                                                : mBatteryStatusLabel);
+                            });
+                });
     }
 
     private CharSequence generateLabel(BatteryInfo info) {
@@ -156,9 +168,7 @@
         }
     }
 
-    /**
-     * Callback which receives text for the label.
-     */
+    /** Callback which receives text for the label. */
     @Override
     public void updateBatteryStatus(String label, BatteryInfo info) {
         mBatteryStatusLabel = label; // Null if adaptive charging is not active
diff --git a/src/com/android/settings/fuelgauge/UnrestrictedPreferenceController.java b/src/com/android/settings/fuelgauge/UnrestrictedPreferenceController.java
index 4578723..652941b 100644
--- a/src/com/android/settings/fuelgauge/UnrestrictedPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/UnrestrictedPreferenceController.java
@@ -17,7 +17,6 @@
 package com.android.settings.fuelgauge;
 
 import android.content.Context;
-import android.util.Log;
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
@@ -31,7 +30,8 @@
 
     private static final String TAG = "UNRESTRICTED_PREF";
 
-    @VisibleForTesting String KEY_UNRESTRICTED_PREF = "unrestricted_pref";
+    @VisibleForTesting static final String KEY_UNRESTRICTED_PREF = "unrestricted_preference";
+
     @VisibleForTesting BatteryOptimizeUtils mBatteryOptimizeUtils;
 
     public UnrestrictedPreferenceController(Context context, int uid, String packageName) {
@@ -41,26 +41,12 @@
 
     @Override
     public void updateState(Preference preference) {
+        preference.setEnabled(mBatteryOptimizeUtils.isSelectorPreferenceEnabled());
 
-        if (mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()) {
-            Log.d(TAG, "disable preference for " + mBatteryOptimizeUtils.getPackageName());
-            preference.setEnabled(false);
-            return;
-        } else {
-            preference.setEnabled(true);
-        }
-
-        if (mBatteryOptimizeUtils.getAppOptimizationMode()
-                == BatteryOptimizeUtils.MODE_UNRESTRICTED) {
-            Log.d(TAG, "is unrestricted states");
-            ((SelectorWithWidgetPreference) preference).setChecked(true);
-        } else {
-            ((SelectorWithWidgetPreference) preference).setChecked(false);
-            if (mBatteryOptimizeUtils.isSystemOrDefaultApp()) {
-                Log.d(TAG, "is system or default app, disable pref");
-                preference.setEnabled(false);
-            }
-        }
+        final boolean isUnrestricted =
+                mBatteryOptimizeUtils.getAppOptimizationMode()
+                        == BatteryOptimizeUtils.MODE_UNRESTRICTED;
+        ((SelectorWithWidgetPreference) preference).setChecked(isUnrestricted);
     }
 
     @Override
diff --git a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java
index be364ee..5c57c0c 100644
--- a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java
@@ -37,12 +37,9 @@
 import com.android.settingslib.fuelgauge.BatterySaverUtils;
 import com.android.settingslib.widget.MainSwitchPreference;
 
-/**
- * Controller to update the battery saver button
- */
-public class BatterySaverButtonPreferenceController extends
-        TogglePreferenceController implements LifecycleObserver, OnStart, OnStop,
-        BatterySaverReceiver.BatterySaverListener {
+/** Controller to update the battery saver button */
+public class BatterySaverButtonPreferenceController extends TogglePreferenceController
+        implements LifecycleObserver, OnStart, OnStop, BatterySaverReceiver.BatterySaverListener {
     private static final long SWITCH_ANIMATION_DURATION = 350L;
 
     private final BatterySaverReceiver mBatterySaverReceiver;
@@ -104,8 +101,8 @@
 
     @Override
     public boolean setChecked(boolean stateOn) {
-        return BatterySaverUtils.setPowerSaveMode(mContext, stateOn,
-                false /* needFirstTimeWarning */, SAVER_ENABLED_SETTINGS);
+        return BatterySaverUtils.setPowerSaveMode(
+                mContext, stateOn, false /* needFirstTimeWarning */, SAVER_ENABLED_SETTINGS);
     }
 
     @Override
@@ -115,8 +112,7 @@
 
     @Override
     public void onPowerSaveModeChanged() {
-        mHandler.postDelayed(() -> onPowerSaveModeChangedInternal(),
-                SWITCH_ANIMATION_DURATION);
+        mHandler.postDelayed(() -> onPowerSaveModeChangedInternal(), SWITCH_ANIMATION_DURATION);
     }
 
     private void onPowerSaveModeChangedInternal() {
diff --git a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverSchedulePreferenceController.java b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverSchedulePreferenceController.java
index dce1903..ebec5cf 100644
--- a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverSchedulePreferenceController.java
+++ b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverSchedulePreferenceController.java
@@ -32,17 +32,14 @@
 import com.android.settingslib.fuelgauge.BatterySaverUtils;
 
 /**
- * Simple controller to navigate users to the scheduling page from
- * "Settings > Battery > Battery Saver". Also updates the summary for preference based on
- * the currently selected settings.
+ * Simple controller to navigate users to the scheduling page from "Settings > Battery > Battery
+ * Saver". Also updates the summary for preference based on the currently selected settings.
  */
 public class BatterySaverSchedulePreferenceController extends BasePreferenceController {
 
-    @VisibleForTesting
-    Preference mBatterySaverSchedulePreference;
+    @VisibleForTesting Preference mBatterySaverSchedulePreference;
     public static final String KEY_BATTERY_SAVER_SCHEDULE = "battery_saver_schedule";
 
-
     public BatterySaverSchedulePreferenceController(Context context) {
         super(context, KEY_BATTERY_SAVER_SCHEDULE);
         BatterySaverUtils.revertScheduleToNoneIfNeeded(context);
@@ -66,7 +63,8 @@
         if (KEY_PERCENTAGE.equals(mode)) {
             final int threshold =
                     Settings.Global.getInt(resolver, Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0);
-            return mContext.getString(R.string.battery_saver_auto_percentage_summary,
+            return mContext.getString(
+                    R.string.battery_saver_auto_percentage_summary,
                     Utils.formatPercentage(threshold));
         }
         return mContext.getText(R.string.battery_saver_auto_no_schedule);
diff --git a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleRadioButtonsController.java b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleRadioButtonsController.java
index 4266bea..45c1be0 100644
--- a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleRadioButtonsController.java
+++ b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleRadioButtonsController.java
@@ -31,12 +31,12 @@
 /**
  * Responds to user actions in the Settings > Battery > Set a Schedule Screen
  *
- * Note that this is not a preference controller since that screen does not inherit from
+ * <p>Note that this is not a preference controller since that screen does not inherit from
  * DashboardFragment.
  *
- * Will call the appropriate power manager APIs and modify the correct settings to enable
- * users to control their automatic battery saver toggling preferences.
- * See {@link Settings.Global#AUTOMATIC_POWER_SAVE_MODE} for more details.
+ * <p>Will call the appropriate power manager APIs and modify the correct settings to enable users
+ * to control their automatic battery saver toggling preferences. See {@link
+ * Settings.Global#AUTOMATIC_POWER_SAVE_MODE} for more details.
  */
 public class BatterySaverScheduleRadioButtonsController {
     private static final String TAG = "BatterySaverScheduleRadioButtonsController";
@@ -46,8 +46,8 @@
     private Context mContext;
     private BatterySaverScheduleSeekBarController mSeekBarController;
 
-    public BatterySaverScheduleRadioButtonsController(Context context,
-            BatterySaverScheduleSeekBarController seekbar) {
+    public BatterySaverScheduleRadioButtonsController(
+            Context context, BatterySaverScheduleSeekBarController seekbar) {
         mContext = context;
         mSeekBarController = seekbar;
     }
@@ -67,10 +67,11 @@
             case KEY_PERCENTAGE:
                 triggerLevel = TRIGGER_LEVEL_MIN;
                 confirmationExtras.putBoolean(BatterySaverUtils.EXTRA_CONFIRM_TEXT_ONLY, true);
-                confirmationExtras.putInt(BatterySaverUtils.EXTRA_POWER_SAVE_MODE_TRIGGER,
+                confirmationExtras.putInt(
+                        BatterySaverUtils.EXTRA_POWER_SAVE_MODE_TRIGGER,
                         PowerManager.POWER_SAVE_MODE_TRIGGER_PERCENTAGE);
-                confirmationExtras.putInt(BatterySaverUtils.EXTRA_POWER_SAVE_MODE_TRIGGER_LEVEL,
-                        triggerLevel);
+                confirmationExtras.putInt(
+                        BatterySaverUtils.EXTRA_POWER_SAVE_MODE_TRIGGER_LEVEL, triggerLevel);
                 break;
             default:
                 throw new IllegalStateException(
@@ -79,7 +80,7 @@
 
         if (!TextUtils.equals(key, KEY_NO_SCHEDULE)
                 && BatterySaverUtils.maybeShowBatterySaverConfirmation(
-                mContext, confirmationExtras)) {
+                        mContext, confirmationExtras)) {
             // reset this if we need to show the confirmation message
             mode = PowerManager.POWER_SAVE_MODE_TRIGGER_PERCENTAGE;
             triggerLevel = 0;
diff --git a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSeekBarController.java b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSeekBarController.java
index 687221e..8580f6e 100644
--- a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSeekBarController.java
+++ b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSeekBarController.java
@@ -35,30 +35,28 @@
 import com.android.settingslib.fuelgauge.BatterySaverUtils;
 
 /**
- * Responds to user actions in the Settings > Battery > Set a Schedule Screen for the seekbar.
- * Note that this seekbar is only visible when the radio button selected is "Percentage".
+ * Responds to user actions in the Settings > Battery > Set a Schedule Screen for the seekbar. Note
+ * that this seekbar is only visible when the radio button selected is "Percentage".
  *
- * Note that this is not a preference controller since that screen does not inherit from
+ * <p>Note that this is not a preference controller since that screen does not inherit from
  * DashboardFragment.
  *
- * Will call the appropriate power manager APIs and modify the correct settings to enable
- * users to control their automatic battery saver toggling preferences.
- * See {@link Settings.Global#AUTOMATIC_POWER_SAVE_MODE} for more details.
+ * <p>Will call the appropriate power manager APIs and modify the correct settings to enable users
+ * to control their automatic battery saver toggling preferences. See {@link
+ * Settings.Global#AUTOMATIC_POWER_SAVE_MODE} for more details.
  */
-public class BatterySaverScheduleSeekBarController implements
-        OnPreferenceChangeListener, OnSeekBarChangeListener {
+public class BatterySaverScheduleSeekBarController
+        implements OnPreferenceChangeListener, OnSeekBarChangeListener {
 
     public static final int MAX_SEEKBAR_VALUE = 15;
     public static final int MIN_SEEKBAR_VALUE = 2;
     public static final String KEY_BATTERY_SAVER_SEEK_BAR = "battery_saver_seek_bar";
     private static final int LEVEL_UNIT_SCALE = 5;
 
-    @VisibleForTesting
-    public SeekBarPreference mSeekBarPreference;
+    @VisibleForTesting public SeekBarPreference mSeekBarPreference;
     private Context mContext;
 
-    @VisibleForTesting
-    int mPercentage;
+    @VisibleForTesting int mPercentage;
 
     public BatterySaverScheduleSeekBarController(Context context) {
         mContext = context;
@@ -93,7 +91,8 @@
     @Override
     public void onStopTrackingTouch(SeekBar seekBar) {
         if (mPercentage > 0) {
-            Settings.Global.putInt(mContext.getContentResolver(),
+            Settings.Global.putInt(
+                    mContext.getContentResolver(),
                     Global.LOW_POWER_MODE_TRIGGER_LEVEL,
                     mPercentage);
         }
@@ -108,8 +107,7 @@
             final int currentSeekbarValue = Math.max(threshold / 5, MIN_SEEKBAR_VALUE);
             mSeekBarPreference.setVisible(true);
             mSeekBarPreference.setProgress(currentSeekbarValue);
-            final CharSequence stateDescription = formatStateDescription(
-                    currentSeekbarValue * 5);
+            final CharSequence stateDescription = formatStateDescription(currentSeekbarValue * 5);
             mSeekBarPreference.setTitle(stateDescription);
             mSeekBarPreference.overrideSeekBarStateDescription(stateDescription);
         } else {
@@ -130,7 +128,7 @@
     }
 
     private CharSequence formatStateDescription(int percentage) {
-        return mContext.getString(R.string.battery_saver_seekbar_title,
-                Utils.formatPercentage(percentage));
+        return mContext.getString(
+                R.string.battery_saver_seekbar_title, Utils.formatPercentage(percentage));
     }
 }
diff --git a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSettings.java b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSettings.java
index 2d841bd..cded470 100644
--- a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSettings.java
+++ b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSettings.java
@@ -49,32 +49,32 @@
 import java.util.List;
 
 /**
- * Fragment that allows users to customize their automatic battery saver mode settings.
- *
- * Location: Settings > Battery > Battery Saver > Set a Schedule
+ * Fragment that allows users to customize their automatic battery saver mode settings. <br>
+ * <br>
+ * Location: Settings > Battery > Battery Saver > Set a Schedule <br>
  * See {@link BatterySaverSchedulePreferenceController} for the controller that manages navigation
- * to this screen from "Settings > Battery > Battery Saver" and the summary.
- * See {@link BatterySaverScheduleRadioButtonsController} &
- * {@link BatterySaverScheduleSeekBarController} for the controller that manages user
- * interactions in this screen.
+ * to this screen from "Settings > Battery > Battery Saver" and the summary. <br>
+ * See {@link BatterySaverScheduleRadioButtonsController} & {@link
+ * BatterySaverScheduleSeekBarController} for the controller that manages user interactions in this
+ * screen.
  */
 public class BatterySaverScheduleSettings extends RadioButtonPickerFragment {
 
     public BatterySaverScheduleRadioButtonsController mRadioButtonController;
-    @VisibleForTesting
-    Context mContext;
+    @VisibleForTesting Context mContext;
     private int mSaverPercentage;
     private String mSaverScheduleKey;
     private BatterySaverScheduleSeekBarController mSeekBarController;
 
     @VisibleForTesting
-    final ContentObserver mSettingsObserver = new ContentObserver(new Handler()) {
-        @Override
-        public void onChange(boolean selfChange, Uri uri) {
-            getPreferenceScreen().removeAll();
-            updateCandidates();
-        }
-    };
+    final ContentObserver mSettingsObserver =
+            new ContentObserver(new Handler()) {
+                @Override
+                public void onChange(boolean selfChange, Uri uri) {
+                    getPreferenceScreen().removeAll();
+                    updateCandidates();
+                }
+            };
 
     @Override
     protected int getPreferenceScreenResId() {
@@ -85,18 +85,19 @@
     public void onAttach(Context context) {
         super.onAttach(context);
         mSeekBarController = new BatterySaverScheduleSeekBarController(context);
-        mRadioButtonController = new BatterySaverScheduleRadioButtonsController(
-                context, mSeekBarController);
+        mRadioButtonController =
+                new BatterySaverScheduleRadioButtonsController(context, mSeekBarController);
         mContext = context;
     }
 
     @Override
     public void onResume() {
         super.onResume();
-        mContext.getContentResolver().registerContentObserver(
-                Settings.Secure.getUriFor(Settings.Secure.LOW_POWER_WARNING_ACKNOWLEDGED),
-                false,
-                mSettingsObserver);
+        mContext.getContentResolver()
+                .registerContentObserver(
+                        Settings.Secure.getUriFor(Settings.Secure.LOW_POWER_WARNING_ACKNOWLEDGED),
+                        false,
+                        mSettingsObserver);
         mSaverScheduleKey = BatterySaverUtils.getBatterySaverScheduleKey(mContext);
         mSaverPercentage = getSaverPercentage();
     }
@@ -124,24 +125,30 @@
     protected List<? extends CandidateInfo> getCandidates() {
         Context context = getContext();
         List<CandidateInfo> candidates = Lists.newArrayList();
-        candidates.add(new BatterySaverScheduleCandidateInfo(
-                context.getText(R.string.battery_saver_auto_no_schedule),
-                /* summary */ null,
-                KEY_NO_SCHEDULE,
-                /* enabled */ true));
+        candidates.add(
+                new BatterySaverScheduleCandidateInfo(
+                        context.getText(R.string.battery_saver_auto_no_schedule),
+                        /* summary */ null,
+                        KEY_NO_SCHEDULE,
+                        /* enabled */ true));
         BatterySaverUtils.revertScheduleToNoneIfNeeded(context);
-        candidates.add(new BatterySaverScheduleCandidateInfo(
-                context.getText(R.string.battery_saver_auto_percentage),
-                /* summary */ null,
-                KEY_PERCENTAGE,
-                /* enabled */ true));
+        candidates.add(
+                new BatterySaverScheduleCandidateInfo(
+                        context.getText(R.string.battery_saver_auto_percentage),
+                        /* summary */ null,
+                        KEY_PERCENTAGE,
+                        /* enabled */ true));
 
         return candidates;
     }
 
     @Override
-    public void bindPreferenceExtra(SelectorWithWidgetPreference pref, String key,
-            CandidateInfo info, String defaultKey, String systemDefaultKey) {
+    public void bindPreferenceExtra(
+            SelectorWithWidgetPreference pref,
+            String key,
+            CandidateInfo info,
+            String defaultKey,
+            String systemDefaultKey) {
         final BatterySaverScheduleCandidateInfo candidateInfo =
                 (BatterySaverScheduleCandidateInfo) info;
         final CharSequence summary = candidateInfo.getSummary();
@@ -174,14 +181,16 @@
 
     private void logPowerSaver() {
         final int currentSaverPercentage = getSaverPercentage();
-        final String currentSaverScheduleKey = BatterySaverUtils.getBatterySaverScheduleKey(
-                mContext);
+        final String currentSaverScheduleKey =
+                BatterySaverUtils.getBatterySaverScheduleKey(mContext);
         if (mSaverScheduleKey.equals(currentSaverScheduleKey)
                 && mSaverPercentage == currentSaverPercentage) {
             return;
         }
-        FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()
-                .action(SettingsEnums.FUELGAUGE_BATTERY_SAVER,
+        FeatureFactory.getFeatureFactory()
+                .getMetricsFeatureProvider()
+                .action(
+                        SettingsEnums.FUELGAUGE_BATTERY_SAVER,
                         SettingsEnums.FIELD_BATTERY_SAVER_SCHEDULE_TYPE,
                         SettingsEnums.FIELD_BATTERY_SAVER_PERCENTAGE_VALUE,
                         currentSaverScheduleKey,
@@ -189,8 +198,8 @@
     }
 
     private int getSaverPercentage() {
-        return Settings.Global.getInt(mContext.getContentResolver(),
-                Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, -1);
+        return Settings.Global.getInt(
+                mContext.getContentResolver(), Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, -1);
     }
 
     static class BatterySaverScheduleCandidateInfo extends CandidateInfo {
@@ -199,8 +208,8 @@
         private final CharSequence mSummary;
         private final String mKey;
 
-        BatterySaverScheduleCandidateInfo(CharSequence label, CharSequence summary, String key,
-                boolean enabled) {
+        BatterySaverScheduleCandidateInfo(
+                CharSequence label, CharSequence summary, String key, boolean enabled) {
             super(enabled);
             mLabel = label;
             mKey = key;
diff --git a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverSettings.java b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverSettings.java
index c86775f..8e281de 100644
--- a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverSettings.java
+++ b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverSettings.java
@@ -28,9 +28,7 @@
 import com.android.settingslib.search.SearchIndexable;
 import com.android.settingslib.widget.FooterPreference;
 
-/**
- * Battery saver settings page
- */
+/** Battery saver settings page */
 @SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
 public class BatterySaverSettings extends DashboardFragment {
     private static final String TAG = "BatterySaverSettings";
@@ -63,9 +61,7 @@
         return R.string.help_url_battery_saver_settings;
     }
 
-    /**
-     * For Search.
-     */
+    /** For Search. */
     public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
             new BaseSearchIndexProvider(R.xml.battery_saver_settings);
 
@@ -83,13 +79,17 @@
     void addHelpLink() {
         FooterPreference pref = getPreferenceScreen().findPreference(KEY_FOOTER_PREFERENCE);
         if (pref != null) {
-            pref.setLearnMoreAction(v -> {
-                mMetricsFeatureProvider.action(getContext(),
-                        SettingsEnums.ACTION_APP_BATTERY_LEARN_MORE);
-                startActivityForResult(HelpUtils.getHelpIntent(getContext(),
-                        getString(R.string.help_url_battery_saver_settings),
-                        /*backupContext=*/ ""), /*requestCode=*/ 0);
-            });
+            pref.setLearnMoreAction(
+                    v -> {
+                        mMetricsFeatureProvider.action(
+                                getContext(), SettingsEnums.ACTION_APP_BATTERY_LEARN_MORE);
+                        startActivityForResult(
+                                HelpUtils.getHelpIntent(
+                                        getContext(),
+                                        getString(R.string.help_url_battery_saver_settings),
+                                        /* backupContext= */ ""),
+                                /* requestCode= */ 0);
+                    });
             pref.setLearnMoreText(getString(R.string.battery_saver_link_a11y));
         }
     }
diff --git a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverStickyPreferenceController.java b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverStickyPreferenceController.java
index f06083a..dea4e4d 100644
--- a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverStickyPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverStickyPreferenceController.java
@@ -5,15 +5,15 @@
 import android.provider.Settings.Global;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.Utils;
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settings.core.TogglePreferenceController;
 
-public class BatterySaverStickyPreferenceController extends TogglePreferenceController implements
-        PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
+public class BatterySaverStickyPreferenceController extends TogglePreferenceController
+        implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
     private static final int DEFAULT_STICKY_SHUTOFF_LEVEL = 90;
 
     private Context mContext;
@@ -25,36 +25,48 @@
 
     @Override
     public boolean isChecked() {
-        return Settings.Global.getInt(mContext.getContentResolver(),
-            Global.LOW_POWER_MODE_STICKY_AUTO_DISABLE_ENABLED, 1) == 1;
+        return Settings.Global.getInt(
+                        mContext.getContentResolver(),
+                        Global.LOW_POWER_MODE_STICKY_AUTO_DISABLE_ENABLED,
+                        1)
+                == 1;
     }
 
     @Override
     public boolean setChecked(boolean isChecked) {
-        Settings.Global.putInt(mContext.getContentResolver(),
-            Global.LOW_POWER_MODE_STICKY_AUTO_DISABLE_ENABLED,
-            isChecked ? 1 : 0);
+        Settings.Global.putInt(
+                mContext.getContentResolver(),
+                Global.LOW_POWER_MODE_STICKY_AUTO_DISABLE_ENABLED,
+                isChecked ? 1 : 0);
         return true;
     }
 
     @Override
     protected void refreshSummary(Preference preference) {
         super.refreshSummary(preference);
-        final int stickyShutoffLevel = Settings.Global.getInt(mContext.getContentResolver(),
-                Global.LOW_POWER_MODE_STICKY_AUTO_DISABLE_LEVEL, DEFAULT_STICKY_SHUTOFF_LEVEL);
+        final int stickyShutoffLevel =
+                Settings.Global.getInt(
+                        mContext.getContentResolver(),
+                        Global.LOW_POWER_MODE_STICKY_AUTO_DISABLE_LEVEL,
+                        DEFAULT_STICKY_SHUTOFF_LEVEL);
         final String formatPercentage = Utils.formatPercentage(stickyShutoffLevel);
-        preference.setTitle(mContext.getString(R.string.battery_saver_sticky_title_percentage,
-                formatPercentage));
-        preference.setSummary(mContext.getString(R.string.battery_saver_sticky_description_new,
-                formatPercentage));
+        preference.setTitle(
+                mContext.getString(
+                        R.string.battery_saver_sticky_title_percentage, formatPercentage));
+        preference.setSummary(
+                mContext.getString(
+                        R.string.battery_saver_sticky_description_new, formatPercentage));
     }
 
     @Override
     public void updateState(Preference preference) {
-        int setting = Settings.Global.getInt(mContext.getContentResolver(),
-            Global.LOW_POWER_MODE_STICKY_AUTO_DISABLE_ENABLED, 1);
+        int setting =
+                Settings.Global.getInt(
+                        mContext.getContentResolver(),
+                        Global.LOW_POWER_MODE_STICKY_AUTO_DISABLE_ENABLED,
+                        1);
 
-        ((SwitchPreference) preference).setChecked(setting == 1);
+        ((TwoStatePreference) preference).setChecked(setting == 1);
         refreshSummary(preference);
     }
 
diff --git a/src/com/android/settings/fuelgauge/batterytip/AnomalyCleanupJobService.java b/src/com/android/settings/fuelgauge/batterytip/AnomalyCleanupJobService.java
index bb73142..0eaed17 100644
--- a/src/com/android/settings/fuelgauge/batterytip/AnomalyCleanupJobService.java
+++ b/src/com/android/settings/fuelgauge/batterytip/AnomalyCleanupJobService.java
@@ -35,8 +35,7 @@
 public class AnomalyCleanupJobService extends JobService {
     private static final String TAG = "AnomalyCleanUpJobService";
 
-    @VisibleForTesting
-    static final long CLEAN_UP_FREQUENCY_MS = TimeUnit.DAYS.toMillis(1);
+    @VisibleForTesting static final long CLEAN_UP_FREQUENCY_MS = TimeUnit.DAYS.toMillis(1);
 
     public static void scheduleCleanUp(Context context) {
         final JobScheduler jobScheduler = context.getSystemService(JobScheduler.class);
@@ -52,23 +51,24 @@
 
         // Don't schedule it if it already exists, to make sure it runs periodically even after
         // reboot
-        if (pending == null && jobScheduler.schedule(jobBuilder.build())
-                != JobScheduler.RESULT_SUCCESS) {
+        if (pending == null
+                && jobScheduler.schedule(jobBuilder.build()) != JobScheduler.RESULT_SUCCESS) {
             Log.i(TAG, "Anomaly clean up job service schedule failed.");
         }
     }
 
     @Override
     public boolean onStartJob(JobParameters params) {
-        final BatteryDatabaseManager batteryDatabaseManager = BatteryDatabaseManager
-                .getInstance(this);
+        final BatteryDatabaseManager batteryDatabaseManager =
+                BatteryDatabaseManager.getInstance(this);
         final BatteryTipPolicy policy = new BatteryTipPolicy(this);
-        ThreadUtils.postOnBackgroundThread(() -> {
-            batteryDatabaseManager.deleteAllAnomaliesBeforeTimeStamp(
-                    System.currentTimeMillis() - TimeUnit.DAYS.toMillis(
-                            policy.dataHistoryRetainDay));
-            jobFinished(params, false /* wantsReschedule */);
-        });
+        ThreadUtils.postOnBackgroundThread(
+                () -> {
+                    batteryDatabaseManager.deleteAllAnomaliesBeforeTimeStamp(
+                            System.currentTimeMillis()
+                                    - TimeUnit.DAYS.toMillis(policy.dataHistoryRetainDay));
+                    jobFinished(params, false /* wantsReschedule */);
+                });
 
         return true;
     }
diff --git a/src/com/android/settings/fuelgauge/batterytip/AnomalyConfigJobService.java b/src/com/android/settings/fuelgauge/batterytip/AnomalyConfigJobService.java
index ad02c3a..fe75c8e 100644
--- a/src/com/android/settings/fuelgauge/batterytip/AnomalyConfigJobService.java
+++ b/src/com/android/settings/fuelgauge/batterytip/AnomalyConfigJobService.java
@@ -44,8 +44,7 @@
     public static final String KEY_ANOMALY_CONFIG_VERSION = "anomaly_config_version";
     private static final int DEFAULT_VERSION = 0;
 
-    @VisibleForTesting
-    static final long CONFIG_UPDATE_FREQUENCY_MS = TimeUnit.DAYS.toMillis(1);
+    @VisibleForTesting static final long CONFIG_UPDATE_FREQUENCY_MS = TimeUnit.DAYS.toMillis(1);
 
     public static void scheduleConfigUpdate(Context context) {
         final JobScheduler jobScheduler = context.getSystemService(JobScheduler.class);
@@ -61,24 +60,25 @@
 
         // Don't schedule it if it already exists, to make sure it runs periodically even after
         // reboot
-        if (pending == null && jobScheduler.schedule(jobBuilder.build())
-                != JobScheduler.RESULT_SUCCESS) {
+        if (pending == null
+                && jobScheduler.schedule(jobBuilder.build()) != JobScheduler.RESULT_SUCCESS) {
             Log.i(TAG, "Anomaly config update job service schedule failed.");
         }
     }
 
     @Override
     public boolean onStartJob(JobParameters params) {
-        ThreadUtils.postOnBackgroundThread(() -> {
-            final StatsManager statsManager = getSystemService(StatsManager.class);
-            checkAnomalyConfig(statsManager);
-            try {
-                BatteryTipUtils.uploadAnomalyPendingIntent(this, statsManager);
-            } catch (StatsManager.StatsUnavailableException e) {
-                Log.w(TAG, "Failed to uploadAnomalyPendingIntent.", e);
-            }
-            jobFinished(params, false /* wantsReschedule */);
-        });
+        ThreadUtils.postOnBackgroundThread(
+                () -> {
+                    final StatsManager statsManager = getSystemService(StatsManager.class);
+                    checkAnomalyConfig(statsManager);
+                    try {
+                        BatteryTipUtils.uploadAnomalyPendingIntent(this, statsManager);
+                    } catch (StatsManager.StatsUnavailableException e) {
+                        Log.w(TAG, "Failed to uploadAnomalyPendingIntent.", e);
+                    }
+                    jobFinished(params, false /* wantsReschedule */);
+                });
 
         return true;
     }
@@ -90,37 +90,48 @@
 
     @VisibleForTesting
     synchronized void checkAnomalyConfig(StatsManager statsManager) {
-        final SharedPreferences sharedPreferences = getSharedPreferences(PREF_DB,
-                Context.MODE_PRIVATE);
-        final int currentVersion = sharedPreferences.getInt(KEY_ANOMALY_CONFIG_VERSION,
-                DEFAULT_VERSION);
-        final int newVersion = Settings.Global.getInt(getContentResolver(),
-                Settings.Global.ANOMALY_CONFIG_VERSION, DEFAULT_VERSION);
-        final String rawConfig = Settings.Global.getString(getContentResolver(),
-                Settings.Global.ANOMALY_CONFIG);
+        final SharedPreferences sharedPreferences =
+                getSharedPreferences(PREF_DB, Context.MODE_PRIVATE);
+        final int currentVersion =
+                sharedPreferences.getInt(KEY_ANOMALY_CONFIG_VERSION, DEFAULT_VERSION);
+        final int newVersion =
+                Settings.Global.getInt(
+                        getContentResolver(),
+                        Settings.Global.ANOMALY_CONFIG_VERSION,
+                        DEFAULT_VERSION);
+        final String rawConfig =
+                Settings.Global.getString(getContentResolver(), Settings.Global.ANOMALY_CONFIG);
         Log.i(TAG, "CurrentVersion: " + currentVersion + " new version: " + newVersion);
 
         if (newVersion > currentVersion) {
             try {
                 statsManager.removeConfig(StatsManagerConfig.ANOMALY_CONFIG_KEY);
             } catch (StatsManager.StatsUnavailableException e) {
-                Log.i(TAG, "When updating anomaly config, failed to first remove the old config "
-                        + StatsManagerConfig.ANOMALY_CONFIG_KEY, e);
+                Log.i(
+                        TAG,
+                        "When updating anomaly config, failed to first remove the old config "
+                                + StatsManagerConfig.ANOMALY_CONFIG_KEY,
+                        e);
             }
             if (!TextUtils.isEmpty(rawConfig)) {
                 try {
                     final byte[] config = Base64.decode(rawConfig, Base64.DEFAULT);
                     statsManager.addConfig(StatsManagerConfig.ANOMALY_CONFIG_KEY, config);
-                    Log.i(TAG, "Upload the anomaly config. configKey: "
-                            + StatsManagerConfig.ANOMALY_CONFIG_KEY);
+                    Log.i(
+                            TAG,
+                            "Upload the anomaly config. configKey: "
+                                    + StatsManagerConfig.ANOMALY_CONFIG_KEY);
                     SharedPreferences.Editor editor = sharedPreferences.edit();
                     editor.putInt(KEY_ANOMALY_CONFIG_VERSION, newVersion);
                     editor.commit();
                 } catch (IllegalArgumentException e) {
                     Log.e(TAG, "Anomaly raw config is in wrong format", e);
                 } catch (StatsManager.StatsUnavailableException e) {
-                    Log.i(TAG, "Upload of anomaly config failed for configKey "
-                            + StatsManagerConfig.ANOMALY_CONFIG_KEY, e);
+                    Log.i(
+                            TAG,
+                            "Upload of anomaly config failed for configKey "
+                                    + StatsManagerConfig.ANOMALY_CONFIG_KEY,
+                            e);
                 }
             }
         }
diff --git a/src/com/android/settings/fuelgauge/batterytip/AnomalyConfigReceiver.java b/src/com/android/settings/fuelgauge/batterytip/AnomalyConfigReceiver.java
index 369e613..538b047 100644
--- a/src/com/android/settings/fuelgauge/batterytip/AnomalyConfigReceiver.java
+++ b/src/com/android/settings/fuelgauge/batterytip/AnomalyConfigReceiver.java
@@ -23,8 +23,8 @@
 import android.util.Log;
 
 /**
- * Receive broadcast when {@link StatsManager} restart, then check the anomaly config and
- * prepare info for {@link StatsManager}
+ * Receive broadcast when {@link StatsManager} restart, then check the anomaly config and prepare
+ * info for {@link StatsManager}
  */
 public class AnomalyConfigReceiver extends BroadcastReceiver {
     private static final String TAG = "AnomalyConfigReceiver";
diff --git a/src/com/android/settings/fuelgauge/batterytip/AnomalyDatabaseHelper.java b/src/com/android/settings/fuelgauge/batterytip/AnomalyDatabaseHelper.java
index 349a419..6ec516e 100644
--- a/src/com/android/settings/fuelgauge/batterytip/AnomalyDatabaseHelper.java
+++ b/src/com/android/settings/fuelgauge/batterytip/AnomalyDatabaseHelper.java
@@ -26,9 +26,7 @@
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 
-/**
- * Database controls the anomaly logging(e.g. packageName, anomalyType and time)
- */
+/** Database controls the anomaly logging(e.g. packageName, anomalyType and time) */
 public class AnomalyDatabaseHelper extends SQLiteOpenHelper {
     private static final String TAG = "BatteryDatabaseHelper";
 
@@ -36,9 +34,7 @@
     private static final int DATABASE_VERSION = 5;
 
     @Retention(RetentionPolicy.SOURCE)
-    @IntDef({State.NEW,
-            State.HANDLED,
-            State.AUTO_HANDLED})
+    @IntDef({State.NEW, State.HANDLED, State.AUTO_HANDLED})
     public @interface State {
         int NEW = 0;
         int HANDLED = 1;
@@ -57,81 +53,92 @@
     }
 
     public interface AnomalyColumns {
-        /**
-         * The package name of the anomaly app
-         */
+        /** The package name of the anomaly app */
         String PACKAGE_NAME = "package_name";
-        /**
-         * The uid of the anomaly app
-         */
+
+        /** The uid of the anomaly app */
         String UID = "uid";
+
         /**
          * The type of the anomaly app
+         *
          * @see StatsManagerConfig.AnomalyType
          */
         String ANOMALY_TYPE = "anomaly_type";
+
         /**
          * The state of the anomaly app
+         *
          * @see State
          */
         String ANOMALY_STATE = "anomaly_state";
-        /**
-         * The time when anomaly happens
-         */
+
+        /** The time when anomaly happens */
         String TIME_STAMP_MS = "time_stamp_ms";
     }
 
     private static final String CREATE_ANOMALY_TABLE =
-            "CREATE TABLE " + Tables.TABLE_ANOMALY +
-                    "(" +
-                    AnomalyColumns.UID +
-                    " INTEGER NOT NULL, " +
-                    AnomalyColumns.PACKAGE_NAME +
-                    " TEXT, " +
-                    AnomalyColumns.ANOMALY_TYPE +
-                    " INTEGER NOT NULL, " +
-                    AnomalyColumns.ANOMALY_STATE +
-                    " INTEGER NOT NULL, " +
-                    AnomalyColumns.TIME_STAMP_MS +
-                    " INTEGER NOT NULL, " +
-                    " PRIMARY KEY (" + AnomalyColumns.UID + "," + AnomalyColumns.ANOMALY_TYPE + ","
-                    + AnomalyColumns.ANOMALY_STATE + "," + AnomalyColumns.TIME_STAMP_MS + ")"
+            "CREATE TABLE "
+                    + Tables.TABLE_ANOMALY
+                    + "("
+                    + AnomalyColumns.UID
+                    + " INTEGER NOT NULL, "
+                    + AnomalyColumns.PACKAGE_NAME
+                    + " TEXT, "
+                    + AnomalyColumns.ANOMALY_TYPE
+                    + " INTEGER NOT NULL, "
+                    + AnomalyColumns.ANOMALY_STATE
+                    + " INTEGER NOT NULL, "
+                    + AnomalyColumns.TIME_STAMP_MS
+                    + " INTEGER NOT NULL, "
+                    + " PRIMARY KEY ("
+                    + AnomalyColumns.UID
+                    + ","
+                    + AnomalyColumns.ANOMALY_TYPE
+                    + ","
+                    + AnomalyColumns.ANOMALY_STATE
+                    + ","
+                    + AnomalyColumns.TIME_STAMP_MS
+                    + ")"
                     + ")";
 
-
     public interface ActionColumns {
-        /**
-         * The package name of an app been performed an action
-         */
+        /** The package name of an app been performed an action */
         String PACKAGE_NAME = "package_name";
-        /**
-         * The uid of an app been performed an action
-         */
+
+        /** The uid of an app been performed an action */
         String UID = "uid";
+
         /**
          * The type of user action
+         *
          * @see ActionType
          */
         String ACTION_TYPE = "action_type";
-        /**
-         * The time when action been performed
-         */
+
+        /** The time when action been performed */
         String TIME_STAMP_MS = "time_stamp_ms";
     }
 
     private static final String CREATE_ACTION_TABLE =
-            "CREATE TABLE " + Tables.TABLE_ACTION +
-                    "(" +
-                    ActionColumns.UID +
-                    " INTEGER NOT NULL, " +
-                    ActionColumns.PACKAGE_NAME +
-                    " TEXT, " +
-                    ActionColumns.ACTION_TYPE +
-                    " INTEGER NOT NULL, " +
-                    ActionColumns.TIME_STAMP_MS +
-                    " INTEGER NOT NULL, " +
-                    " PRIMARY KEY (" + ActionColumns.ACTION_TYPE + "," + ActionColumns.UID + ","
-                    + ActionColumns.PACKAGE_NAME + ")"
+            "CREATE TABLE "
+                    + Tables.TABLE_ACTION
+                    + "("
+                    + ActionColumns.UID
+                    + " INTEGER NOT NULL, "
+                    + ActionColumns.PACKAGE_NAME
+                    + " TEXT, "
+                    + ActionColumns.ACTION_TYPE
+                    + " INTEGER NOT NULL, "
+                    + ActionColumns.TIME_STAMP_MS
+                    + " INTEGER NOT NULL, "
+                    + " PRIMARY KEY ("
+                    + ActionColumns.ACTION_TYPE
+                    + ","
+                    + ActionColumns.UID
+                    + ","
+                    + ActionColumns.PACKAGE_NAME
+                    + ")"
                     + ")";
 
     private static AnomalyDatabaseHelper sSingleton;
@@ -155,8 +162,14 @@
     @Override
     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
         if (oldVersion < DATABASE_VERSION) {
-            Log.w(TAG, "Detected schema version '" + oldVersion + "'. " +
-                    "Index needs to be rebuilt for schema version '" + newVersion + "'.");
+            Log.w(
+                    TAG,
+                    "Detected schema version '"
+                            + oldVersion
+                            + "'. "
+                            + "Index needs to be rebuilt for schema version '"
+                            + newVersion
+                            + "'.");
             // We need to drop the tables and recreate them
             reconstruct(db);
         }
@@ -164,8 +177,14 @@
 
     @Override
     public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
-        Log.w(TAG, "Detected schema version '" + oldVersion + "'. " +
-                "Index needs to be rebuilt for schema version '" + newVersion + "'.");
+        Log.w(
+                TAG,
+                "Detected schema version '"
+                        + oldVersion
+                        + "'. "
+                        + "Index needs to be rebuilt for schema version '"
+                        + newVersion
+                        + "'.");
         // We need to drop the tables and recreate them
         reconstruct(db);
     }
diff --git a/src/com/android/settings/fuelgauge/batterytip/AnomalyDetectionJobService.java b/src/com/android/settings/fuelgauge/batterytip/AnomalyDetectionJobService.java
index 34fd72d..b1018ba 100644
--- a/src/com/android/settings/fuelgauge/batterytip/AnomalyDetectionJobService.java
+++ b/src/com/android/settings/fuelgauge/batterytip/AnomalyDetectionJobService.java
@@ -57,22 +57,20 @@
 public class AnomalyDetectionJobService extends JobService {
     private static final String TAG = "AnomalyDetectionService";
     private static final int ON = 1;
-    @VisibleForTesting
-    static final int UID_NULL = -1;
-    @VisibleForTesting
-    static final int STATSD_UID_FILED = 1;
-    @VisibleForTesting
-    static final long MAX_DELAY_MS = TimeUnit.MINUTES.toMillis(30);
+    @VisibleForTesting static final int UID_NULL = -1;
+    @VisibleForTesting static final int STATSD_UID_FILED = 1;
+    @VisibleForTesting static final long MAX_DELAY_MS = TimeUnit.MINUTES.toMillis(30);
 
     private final Object mLock = new Object();
+
     @GuardedBy("mLock")
     @VisibleForTesting
     boolean mIsJobCanceled = false;
 
     public static void scheduleAnomalyDetection(Context context, Intent intent) {
         final JobScheduler jobScheduler = context.getSystemService(JobScheduler.class);
-        final ComponentName component = new ComponentName(context,
-                AnomalyDetectionJobService.class);
+        final ComponentName component =
+                new ComponentName(context, AnomalyDetectionJobService.class);
         final JobInfo.Builder jobBuilder =
                 new JobInfo.Builder(R.integer.job_anomaly_detection, component)
                         .setOverrideDeadline(MAX_DELAY_MS);
@@ -88,30 +86,40 @@
         synchronized (mLock) {
             mIsJobCanceled = false;
         }
-        ThreadUtils.postOnBackgroundThread(() -> {
-            final Context context = AnomalyDetectionJobService.this;
-            final BatteryDatabaseManager batteryDatabaseManager =
-                    BatteryDatabaseManager.getInstance(this);
-            final BatteryTipPolicy policy = new BatteryTipPolicy(this);
-            final BatteryUtils batteryUtils = BatteryUtils.getInstance(this);
-            final ContentResolver contentResolver = getContentResolver();
-            final UserManager userManager = getSystemService(UserManager.class);
-            final PowerAllowlistBackend powerAllowlistBackend =
-                    PowerAllowlistBackend.getInstance(context);
-            final PowerUsageFeatureProvider powerUsageFeatureProvider =
-                    FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider();
-            final MetricsFeatureProvider metricsFeatureProvider =
-                    FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
+        ThreadUtils.postOnBackgroundThread(
+                () -> {
+                    final Context context = AnomalyDetectionJobService.this;
+                    final BatteryDatabaseManager batteryDatabaseManager =
+                            BatteryDatabaseManager.getInstance(this);
+                    final BatteryTipPolicy policy = new BatteryTipPolicy(this);
+                    final BatteryUtils batteryUtils = BatteryUtils.getInstance(this);
+                    final ContentResolver contentResolver = getContentResolver();
+                    final UserManager userManager = getSystemService(UserManager.class);
+                    final PowerAllowlistBackend powerAllowlistBackend =
+                            PowerAllowlistBackend.getInstance(context);
+                    final PowerUsageFeatureProvider powerUsageFeatureProvider =
+                            FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider();
+                    final MetricsFeatureProvider metricsFeatureProvider =
+                            FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
 
-            for (JobWorkItem item = dequeueWork(params); item != null; item = dequeueWork(params)) {
-                saveAnomalyToDatabase(context, userManager,
-                        batteryDatabaseManager, batteryUtils, policy, powerAllowlistBackend,
-                        contentResolver, powerUsageFeatureProvider, metricsFeatureProvider,
-                        item.getIntent().getExtras());
+                    for (JobWorkItem item = dequeueWork(params);
+                            item != null;
+                            item = dequeueWork(params)) {
+                        saveAnomalyToDatabase(
+                                context,
+                                userManager,
+                                batteryDatabaseManager,
+                                batteryUtils,
+                                policy,
+                                powerAllowlistBackend,
+                                contentResolver,
+                                powerUsageFeatureProvider,
+                                metricsFeatureProvider,
+                                item.getIntent().getExtras());
 
-                completeWork(params, item);
-            }
-        });
+                        completeWork(params, item);
+                    }
+                });
 
         return true;
     }
@@ -125,34 +133,49 @@
     }
 
     @VisibleForTesting
-    void saveAnomalyToDatabase(Context context, UserManager userManager,
-            BatteryDatabaseManager databaseManager, BatteryUtils batteryUtils,
-            BatteryTipPolicy policy, PowerAllowlistBackend powerAllowlistBackend,
-            ContentResolver contentResolver, PowerUsageFeatureProvider powerUsageFeatureProvider,
-            MetricsFeatureProvider metricsFeatureProvider, Bundle bundle) {
+    void saveAnomalyToDatabase(
+            Context context,
+            UserManager userManager,
+            BatteryDatabaseManager databaseManager,
+            BatteryUtils batteryUtils,
+            BatteryTipPolicy policy,
+            PowerAllowlistBackend powerAllowlistBackend,
+            ContentResolver contentResolver,
+            PowerUsageFeatureProvider powerUsageFeatureProvider,
+            MetricsFeatureProvider metricsFeatureProvider,
+            Bundle bundle) {
         // The Example of intentDimsValue is: 35:{1:{1:{1:10013|}|}|}
         final StatsDimensionsValue intentDimsValue =
                 bundle.getParcelable(StatsManager.EXTRA_STATS_DIMENSIONS_VALUE);
-        final long timeMs = bundle.getLong(AnomalyDetectionReceiver.KEY_ANOMALY_TIMESTAMP,
-                System.currentTimeMillis());
-        final ArrayList<String> cookies = bundle.getStringArrayList(
-                StatsManager.EXTRA_STATS_BROADCAST_SUBSCRIBER_COOKIES);
-        final AnomalyInfo anomalyInfo = new AnomalyInfo(
-                !ArrayUtils.isEmpty(cookies) ? cookies.get(0) : "");
+        final long timeMs =
+                bundle.getLong(
+                        AnomalyDetectionReceiver.KEY_ANOMALY_TIMESTAMP, System.currentTimeMillis());
+        final ArrayList<String> cookies =
+                bundle.getStringArrayList(StatsManager.EXTRA_STATS_BROADCAST_SUBSCRIBER_COOKIES);
+        final AnomalyInfo anomalyInfo =
+                new AnomalyInfo(!ArrayUtils.isEmpty(cookies) ? cookies.get(0) : "");
         Log.i(TAG, "Extra stats value: " + intentDimsValue.toString());
 
         try {
             final int uid = extractUidFromStatsDimensionsValue(intentDimsValue);
-            final boolean autoFeatureOn = powerUsageFeatureProvider.isSmartBatterySupported()
-                    ? Settings.Global.getInt(contentResolver,
-                    Settings.Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED, ON) == ON
-                    : Settings.Global.getInt(contentResolver,
-                            Settings.Global.APP_AUTO_RESTRICTION_ENABLED, ON) == ON;
+            final boolean autoFeatureOn =
+                    powerUsageFeatureProvider.isSmartBatterySupported()
+                            ? Settings.Global.getInt(
+                                            contentResolver,
+                                            Settings.Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED,
+                                            ON)
+                                    == ON
+                            : Settings.Global.getInt(
+                                            contentResolver,
+                                            Settings.Global.APP_AUTO_RESTRICTION_ENABLED,
+                                            ON)
+                                    == ON;
             final String packageName = batteryUtils.getPackageName(uid);
             final long versionCode = batteryUtils.getAppLongVersionCode(packageName);
             final String versionedPackage = packageName + "/" + versionCode;
             if (batteryUtils.shouldHideAnomaly(powerAllowlistBackend, uid, anomalyInfo)) {
-                metricsFeatureProvider.action(SettingsEnums.PAGE_UNKNOWN,
+                metricsFeatureProvider.action(
+                        SettingsEnums.PAGE_UNKNOWN,
                         SettingsEnums.ACTION_ANOMALY_IGNORED,
                         SettingsEnums.PAGE_UNKNOWN,
                         versionedPackage,
@@ -160,17 +183,23 @@
             } else {
                 if (autoFeatureOn && anomalyInfo.autoRestriction) {
                     // Auto restrict this app
-                    batteryUtils.setForceAppStandby(uid, packageName,
-                            AppOpsManager.MODE_IGNORED);
-                    databaseManager.insertAnomaly(uid, packageName, anomalyInfo.anomalyType,
+                    batteryUtils.setForceAppStandby(uid, packageName, AppOpsManager.MODE_IGNORED);
+                    databaseManager.insertAnomaly(
+                            uid,
+                            packageName,
+                            anomalyInfo.anomalyType,
                             AnomalyDatabaseHelper.State.AUTO_HANDLED,
                             timeMs);
                 } else {
-                    databaseManager.insertAnomaly(uid, packageName, anomalyInfo.anomalyType,
+                    databaseManager.insertAnomaly(
+                            uid,
+                            packageName,
+                            anomalyInfo.anomalyType,
                             AnomalyDatabaseHelper.State.NEW,
                             timeMs);
                 }
-                metricsFeatureProvider.action(SettingsEnums.PAGE_UNKNOWN,
+                metricsFeatureProvider.action(
+                        SettingsEnums.PAGE_UNKNOWN,
                         SettingsEnums.ACTION_ANOMALY_TRIGGERED,
                         SettingsEnums.PAGE_UNKNOWN,
                         versionedPackage,
@@ -183,12 +212,12 @@
     }
 
     /**
-     * Extract the uid from {@link StatsDimensionsValue}
-     *
-     * The uid dimension has the format: 1:<int> inside the tuple list. Here are some examples:
-     * 1. Excessive bg anomaly: 27:{1:10089|}
-     * 2. Wakeup alarm anomaly: 35:{1:{1:{1:10013|}|}|}
-     * 3. Bluetooth anomaly:    3:{1:{1:{1:10140|}|}|}
+     * Extract the uid from {@link StatsDimensionsValue} <br>
+     * <br>
+     * The uid dimension has the format: {1:int} inside the tuple list. Here are some examples: <br>
+     * 1.Excessive bg anomaly: 27:{1:10089|} <br>
+     * 2.Wakeup alarm anomaly: 35:{1:{1:{1:10013|}|}|} <br>
+     * 3.Bluetooth anomaly: 3:{1:{1:{1:10140|}|}|}
      */
     @VisibleForTesting
     int extractUidFromStatsDimensionsValue(StatsDimensionsValue statsDimensionsValue) {
diff --git a/src/com/android/settings/fuelgauge/batterytip/AnomalyDetectionReceiver.java b/src/com/android/settings/fuelgauge/batterytip/AnomalyDetectionReceiver.java
index b1bb73a..0d43add 100644
--- a/src/com/android/settings/fuelgauge/batterytip/AnomalyDetectionReceiver.java
+++ b/src/com/android/settings/fuelgauge/batterytip/AnomalyDetectionReceiver.java
@@ -23,9 +23,7 @@
 import android.os.Bundle;
 import android.util.Log;
 
-/**
- * Receive the anomaly info from {@link StatsManager}
- */
+/** Receive the anomaly info from {@link StatsManager} */
 public class AnomalyDetectionReceiver extends BroadcastReceiver {
     private static final String TAG = "SettingsAnomalyReceiver";
 
@@ -35,10 +33,16 @@
     public void onReceive(Context context, Intent intent) {
         final long configUid = intent.getLongExtra(StatsManager.EXTRA_STATS_CONFIG_UID, -1);
         final long configKey = intent.getLongExtra(StatsManager.EXTRA_STATS_CONFIG_KEY, -1);
-        final long subscriptionId = intent.getLongExtra(StatsManager.EXTRA_STATS_SUBSCRIPTION_ID,
-                -1);
-        Log.i(TAG, "Anomaly intent received.  configUid = " + configUid + " configKey = "
-                + configKey + " subscriptionId = " + subscriptionId);
+        final long subscriptionId =
+                intent.getLongExtra(StatsManager.EXTRA_STATS_SUBSCRIPTION_ID, -1);
+        Log.i(
+                TAG,
+                "Anomaly intent received.  configUid = "
+                        + configUid
+                        + " configKey = "
+                        + configKey
+                        + " subscriptionId = "
+                        + subscriptionId);
 
         final Bundle bundle = intent.getExtras();
         if (bundle == null) {
diff --git a/src/com/android/settings/fuelgauge/batterytip/AnomalyInfo.java b/src/com/android/settings/fuelgauge/batterytip/AnomalyInfo.java
index fc15706..da277c6 100644
--- a/src/com/android/settings/fuelgauge/batterytip/AnomalyInfo.java
+++ b/src/com/android/settings/fuelgauge/batterytip/AnomalyInfo.java
@@ -19,9 +19,7 @@
 import android.util.KeyValueListParser;
 import android.util.Log;
 
-/**
- * Model class to parse and store anomaly info from statsd.
- */
+/** Model class to parse and store anomaly info from statsd. */
 public class AnomalyInfo {
     private static final String TAG = "AnomalyInfo";
 
@@ -37,5 +35,4 @@
         anomalyType = parser.getInt(KEY_ANOMALY_TYPE, -1);
         autoRestriction = parser.getBoolean(KEY_AUTO_RESTRICTION, false);
     }
-
 }
diff --git a/src/com/android/settings/fuelgauge/batterytip/AppInfo.java b/src/com/android/settings/fuelgauge/batterytip/AppInfo.java
index e79b874..8166a3d 100644
--- a/src/com/android/settings/fuelgauge/batterytip/AppInfo.java
+++ b/src/com/android/settings/fuelgauge/batterytip/AppInfo.java
@@ -25,16 +25,17 @@
 
 import java.util.Objects;
 
-/**
- * Model class stores app info(e.g. package name, type..) that used in battery tip
- */
+/** Model class stores app info(e.g. package name, type..) that used in battery tip */
 public class AppInfo implements Comparable<AppInfo>, Parcelable {
     public final String packageName;
+
     /**
      * Anomaly type of the app
+     *
      * @see StatsManagerConfig.AnomalyType
      */
     public final ArraySet<Integer> anomalyTypes;
+
     public final long screenOnTimeMs;
     public final int uid;
 
@@ -73,7 +74,11 @@
 
     @Override
     public String toString() {
-        return "packageName=" + packageName + ",anomalyTypes=" + anomalyTypes + ",screenTime="
+        return "packageName="
+                + packageName
+                + ",anomalyTypes="
+                + anomalyTypes
+                + ",screenTime="
                 + screenOnTimeMs;
     }
 
@@ -93,15 +98,16 @@
                 && TextUtils.equals(packageName, other.packageName);
     }
 
-    public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
-        public AppInfo createFromParcel(Parcel in) {
-            return new AppInfo(in);
-        }
+    public static final Parcelable.Creator CREATOR =
+            new Parcelable.Creator() {
+                public AppInfo createFromParcel(Parcel in) {
+                    return new AppInfo(in);
+                }
 
-        public AppInfo[] newArray(int size) {
-            return new AppInfo[size];
-        }
-    };
+                public AppInfo[] newArray(int size) {
+                    return new AppInfo[size];
+                }
+            };
 
     public static final class Builder {
         private ArraySet<Integer> mAnomalyTypes = new ArraySet<>();
@@ -133,4 +139,4 @@
             return new AppInfo(this);
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryDatabaseManager.java b/src/com/android/settings/fuelgauge/batterytip/BatteryDatabaseManager.java
index bb69999..2b0ba45 100644
--- a/src/com/android/settings/fuelgauge/batterytip/BatteryDatabaseManager.java
+++ b/src/com/android/settings/fuelgauge/batterytip/BatteryDatabaseManager.java
@@ -47,8 +47,8 @@
 /**
  * Database manager for battery data. Now it only contains anomaly data stored in {@link AppInfo}.
  *
- * This manager may be accessed by multi-threads. All the database related methods are synchronized
- * so each operation won't be interfered by other threads.
+ * <p>This manager may be accessed by multi-threads. All the database related methods are
+ * synchronized so each operation won't be interfered by other threads.
  */
 public class BatteryDatabaseManager {
     private static BatteryDatabaseManager sSingleton;
@@ -74,16 +74,15 @@
     /**
      * Insert an anomaly log to database.
      *
-     * @param uid          the uid of the app
-     * @param packageName  the package name of the app
-     * @param type         the type of the anomaly
+     * @param uid the uid of the app
+     * @param packageName the package name of the app
+     * @param type the type of the anomaly
      * @param anomalyState the state of the anomaly
-     * @param timestampMs  the time when it is happened
+     * @param timestampMs the time when it is happened
      * @return {@code true} if insert operation succeed
      */
-    public synchronized boolean insertAnomaly(int uid, String packageName, int type,
-            int anomalyState,
-            long timestampMs) {
+    public synchronized boolean insertAnomaly(
+            int uid, String packageName, int type, int anomalyState, long timestampMs) {
         final SQLiteDatabase db = mDatabaseHelper.getWritableDatabase();
         ContentValues values = new ContentValues();
         values.put(UID, uid);
@@ -105,22 +104,31 @@
         final String orderBy = AnomalyDatabaseHelper.AnomalyColumns.TIME_STAMP_MS + " DESC";
         final Map<Integer, AppInfo.Builder> mAppInfoBuilders = new ArrayMap<>();
         final String selection = TIME_STAMP_MS + " > ? AND " + ANOMALY_STATE + " = ? ";
-        final String[] selectionArgs = new String[]{String.valueOf(timestampMsAfter),
-                String.valueOf(state)};
+        final String[] selectionArgs =
+                new String[] {String.valueOf(timestampMsAfter), String.valueOf(state)};
 
-        try (Cursor cursor = db.query(TABLE_ANOMALY, projection, selection, selectionArgs,
-                null /* groupBy */, null /* having */, orderBy)) {
+        try (Cursor cursor =
+                db.query(
+                        TABLE_ANOMALY,
+                        projection,
+                        selection,
+                        selectionArgs,
+                        null /* groupBy */,
+                        null /* having */,
+                        orderBy)) {
             while (cursor.moveToNext()) {
                 final int uid = cursor.getInt(cursor.getColumnIndex(UID));
                 if (!mAppInfoBuilders.containsKey(uid)) {
-                    final AppInfo.Builder builder = new AppInfo.Builder()
-                            .setUid(uid)
-                            .setPackageName(
-                                    cursor.getString(cursor.getColumnIndex(PACKAGE_NAME)));
+                    final AppInfo.Builder builder =
+                            new AppInfo.Builder()
+                                    .setUid(uid)
+                                    .setPackageName(
+                                            cursor.getString(cursor.getColumnIndex(PACKAGE_NAME)));
                     mAppInfoBuilders.put(uid, builder);
                 }
-                mAppInfoBuilders.get(uid).addAnomalyType(
-                        cursor.getInt(cursor.getColumnIndex(ANOMALY_TYPE)));
+                mAppInfoBuilders
+                        .get(uid)
+                        .addAnomalyType(cursor.getInt(cursor.getColumnIndex(ANOMALY_TYPE)));
             }
         }
 
@@ -133,15 +141,15 @@
 
     public synchronized void deleteAllAnomaliesBeforeTimeStamp(long timestampMs) {
         final SQLiteDatabase db = mDatabaseHelper.getWritableDatabase();
-        db.delete(TABLE_ANOMALY, TIME_STAMP_MS + " < ?",
-                new String[]{String.valueOf(timestampMs)});
+        db.delete(
+                TABLE_ANOMALY, TIME_STAMP_MS + " < ?", new String[] {String.valueOf(timestampMs)});
     }
 
     /**
      * Update the type of anomalies to {@code state}
      *
      * @param appInfos represents the anomalies
-     * @param state    which state to update to
+     * @param state which state to update to
      */
     public synchronized void updateAnomalies(List<AppInfo> appInfos, int state) {
         if (!appInfos.isEmpty()) {
@@ -154,8 +162,14 @@
             final SQLiteDatabase db = mDatabaseHelper.getWritableDatabase();
             final ContentValues values = new ContentValues();
             values.put(ANOMALY_STATE, state);
-            db.update(TABLE_ANOMALY, values, PACKAGE_NAME + " IN (" + TextUtils.join(",",
-                    Collections.nCopies(appInfos.size(), "?")) + ")", whereArgs);
+            db.update(
+                    TABLE_ANOMALY,
+                    values,
+                    PACKAGE_NAME
+                            + " IN ("
+                            + TextUtils.join(",", Collections.nCopies(appInfos.size(), "?"))
+                            + ")",
+                    whereArgs);
         }
     }
 
@@ -171,10 +185,17 @@
         final SQLiteDatabase db = mDatabaseHelper.getReadableDatabase();
         final String[] projection = {ActionColumns.UID, ActionColumns.TIME_STAMP_MS};
         final String selection = ActionColumns.ACTION_TYPE + " = ? ";
-        final String[] selectionArgs = new String[]{String.valueOf(type)};
+        final String[] selectionArgs = new String[] {String.valueOf(type)};
 
-        try (Cursor cursor = db.query(TABLE_ACTION, projection, selection, selectionArgs,
-                null /* groupBy */, null /* having */, null /* orderBy */)) {
+        try (Cursor cursor =
+                db.query(
+                        TABLE_ACTION,
+                        projection,
+                        selection,
+                        selectionArgs,
+                        null /* groupBy */,
+                        null /* having */,
+                        null /* orderBy */)) {
             final int uidIndex = cursor.getColumnIndex(ActionColumns.UID);
             final int timestampIndex = cursor.getColumnIndex(ActionColumns.TIME_STAMP_MS);
 
@@ -188,11 +209,12 @@
         return timeStamps;
     }
 
-    /**
-     * Insert an action, or update it if already existed
-     */
-    public synchronized boolean insertAction(@AnomalyDatabaseHelper.ActionType int type,
-            int uid, String packageName, long timestampMs) {
+    /** Insert an action, or update it if already existed */
+    public synchronized boolean insertAction(
+            @AnomalyDatabaseHelper.ActionType int type,
+            int uid,
+            String packageName,
+            long timestampMs) {
         final SQLiteDatabase db = mDatabaseHelper.getWritableDatabase();
         final ContentValues values = new ContentValues();
         values.put(ActionColumns.UID, uid);
@@ -203,17 +225,21 @@
         return db.insertWithOnConflict(TABLE_ACTION, null, values, CONFLICT_REPLACE) != -1;
     }
 
-    /**
-     * Remove an action
-     */
-    public synchronized boolean deleteAction(@AnomalyDatabaseHelper.ActionType int type,
-            int uid, String packageName) {
+    /** Remove an action */
+    public synchronized boolean deleteAction(
+            @AnomalyDatabaseHelper.ActionType int type, int uid, String packageName) {
         SQLiteDatabase db = mDatabaseHelper.getWritableDatabase();
         final String where =
-                ActionColumns.ACTION_TYPE + " = ? AND " + ActionColumns.UID + " = ? AND "
-                        + ActionColumns.PACKAGE_NAME + " = ? ";
-        final String[] whereArgs = new String[]{String.valueOf(type), String.valueOf(uid),
-                String.valueOf(packageName)};
+                ActionColumns.ACTION_TYPE
+                        + " = ? AND "
+                        + ActionColumns.UID
+                        + " = ? AND "
+                        + ActionColumns.PACKAGE_NAME
+                        + " = ? ";
+        final String[] whereArgs =
+                new String[] {
+                    String.valueOf(type), String.valueOf(uid), String.valueOf(packageName)
+                };
 
         return db.delete(TABLE_ACTION, where, whereArgs) != 0;
     }
diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragment.java b/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragment.java
index 3989e89..73b7523 100644
--- a/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragment.java
+++ b/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragment.java
@@ -46,19 +46,15 @@
 
 import java.util.List;
 
-/**
- * Dialog Fragment to show action dialog for each anomaly
- */
-public class BatteryTipDialogFragment extends InstrumentedDialogFragment implements
-        DialogInterface.OnClickListener {
+/** Dialog Fragment to show action dialog for each anomaly */
+public class BatteryTipDialogFragment extends InstrumentedDialogFragment
+        implements DialogInterface.OnClickListener {
 
     private static final String ARG_BATTERY_TIP = "battery_tip";
     private static final String ARG_METRICS_KEY = "metrics_key";
 
-    @VisibleForTesting
-    BatteryTip mBatteryTip;
-    @VisibleForTesting
-    int mMetricsKey;
+    @VisibleForTesting BatteryTip mBatteryTip;
+    @VisibleForTesting int mMetricsKey;
 
     public static BatteryTipDialogFragment newInstance(BatteryTip batteryTip, int metricsKey) {
         BatteryTipDialogFragment dialogFragment = new BatteryTipDialogFragment();
@@ -87,16 +83,17 @@
                         .create();
             case BatteryTip.TipType.HIGH_DEVICE_USAGE:
                 final HighUsageTip highUsageTip = (HighUsageTip) mBatteryTip;
-                final RecyclerView view = (RecyclerView) LayoutInflater.from(context).inflate(
-                        R.layout.recycler_view,
-                        null);
+                final RecyclerView view =
+                        (RecyclerView)
+                                LayoutInflater.from(context).inflate(R.layout.recycler_view, null);
                 view.setLayoutManager(new LinearLayoutManager(context));
-                view.setAdapter(new HighUsageAdapter(context,
-                        highUsageTip.getHighUsageAppList()));
+                view.setAdapter(new HighUsageAdapter(context, highUsageTip.getHighUsageAppList()));
 
                 return new AlertDialog.Builder(context)
-                        .setMessage(getString(R.string.battery_tip_dialog_message,
-                                highUsageTip.getHighUsageAppList().size()))
+                        .setMessage(
+                                getString(
+                                        R.string.battery_tip_dialog_message,
+                                        highUsageTip.getHighUsageAppList().size()))
                         .setView(view)
                         .setPositiveButton(android.R.string.ok, null)
                         .create();
@@ -104,14 +101,19 @@
                 final RestrictAppTip restrictAppTip = (RestrictAppTip) mBatteryTip;
                 final List<AppInfo> restrictedAppList = restrictAppTip.getRestrictAppList();
                 final int num = restrictedAppList.size();
-                final CharSequence appLabel = Utils.getApplicationLabel(context,
-                        restrictedAppList.get(0).packageName);
+                final CharSequence appLabel =
+                        Utils.getApplicationLabel(context, restrictedAppList.get(0).packageName);
 
-                final AlertDialog.Builder builder = new AlertDialog.Builder(context)
-                        .setTitle(StringUtil.getIcuPluralsString(context, num,
-                                R.string.battery_tip_restrict_app_dialog_title))
-                        .setPositiveButton(R.string.battery_tip_restrict_app_dialog_ok, this)
-                        .setNegativeButton(android.R.string.cancel, null);
+                final AlertDialog.Builder builder =
+                        new AlertDialog.Builder(context)
+                                .setTitle(
+                                        StringUtil.getIcuPluralsString(
+                                                context,
+                                                num,
+                                                R.string.battery_tip_restrict_app_dialog_title))
+                                .setPositiveButton(
+                                        R.string.battery_tip_restrict_app_dialog_ok, this)
+                                .setNegativeButton(android.R.string.cancel, null);
                 if (num == 1) {
                     builder.setMessage(
                             getString(R.string.battery_tip_restrict_app_dialog_message, appLabel));
@@ -119,22 +121,25 @@
                     builder.setMessage(
                             getString(
                                     R.string.battery_tip_restrict_apps_less_than_5_dialog_message));
-                    final RecyclerView restrictionView = (RecyclerView) LayoutInflater.from(
-                            context).inflate(R.layout.recycler_view, null);
+                    final RecyclerView restrictionView =
+                            (RecyclerView)
+                                    LayoutInflater.from(context)
+                                            .inflate(R.layout.recycler_view, null);
                     restrictionView.setLayoutManager(new LinearLayoutManager(context));
                     restrictionView.setAdapter(new HighUsageAdapter(context, restrictedAppList));
                     builder.setView(restrictionView);
                 } else {
-                    builder.setMessage(context.getString(
-                            R.string.battery_tip_restrict_apps_more_than_5_dialog_message,
-                            restrictAppTip.getRestrictAppsString(context)));
+                    builder.setMessage(
+                            context.getString(
+                                    R.string.battery_tip_restrict_apps_more_than_5_dialog_message,
+                                    restrictAppTip.getRestrictAppsString(context)));
                 }
 
                 return builder.create();
             case BatteryTip.TipType.REMOVE_APP_RESTRICTION:
                 final UnrestrictAppTip unrestrictAppTip = (UnrestrictAppTip) mBatteryTip;
-                final CharSequence name = Utils.getApplicationLabel(context,
-                        unrestrictAppTip.getPackageName());
+                final CharSequence name =
+                        Utils.getApplicationLabel(context, unrestrictAppTip.getPackageName());
 
                 return new AlertDialog.Builder(context)
                         .setTitle(getString(R.string.battery_tip_unrestrict_app_dialog_title))
@@ -158,9 +163,11 @@
         if (lsn == null) {
             return;
         }
-        final BatteryTipAction action = BatteryTipUtils.getActionForBatteryTip(mBatteryTip,
-                (SettingsActivity) getActivity(),
-                (InstrumentedPreferenceFragment) getTargetFragment());
+        final BatteryTipAction action =
+                BatteryTipUtils.getActionForBatteryTip(
+                        mBatteryTip,
+                        (SettingsActivity) getActivity(),
+                        (InstrumentedPreferenceFragment) getTargetFragment());
         if (action != null) {
             action.handlePositiveAction(mMetricsKey);
         }
@@ -168,10 +175,12 @@
     }
 
     private boolean isPluggedIn() {
-        final Intent batteryIntent = getContext().registerReceiver(null /* receiver */,
-                new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
-        return batteryIntent != null && batteryIntent.getIntExtra(
-                BatteryManager.EXTRA_PLUGGED, 0) != 0;
+        final Intent batteryIntent =
+                getContext()
+                        .registerReceiver(
+                                null /* receiver */,
+                                new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
+        return batteryIntent != null
+                && batteryIntent.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0) != 0;
     }
-
 }
diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoader.java b/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoader.java
index 34c431a..9d63046 100644
--- a/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoader.java
+++ b/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoader.java
@@ -29,10 +29,8 @@
 import com.android.settings.fuelgauge.batterytip.detectors.HighUsageDetector;
 import com.android.settings.fuelgauge.batterytip.detectors.IncompatibleChargerDetector;
 import com.android.settings.fuelgauge.batterytip.detectors.LowBatteryDetector;
-import com.android.settings.fuelgauge.batterytip.detectors.SmartBatteryDetector;
 import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
-import com.android.settings.fuelgauge.batterytip.tips.LowBatteryTip;
-import com.android.settingslib.fuelgauge.EstimateKt;
+import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.utils.AsyncLoaderCompat;
 
 import java.util.ArrayList;
@@ -47,8 +45,8 @@
     private static final String TAG = "BatteryTipLoader";
 
     private BatteryUsageStats mBatteryUsageStats;
-    @VisibleForTesting
-    BatteryUtils mBatteryUtils;
+
+    @VisibleForTesting BatteryUtils mBatteryUtils;
 
     public BatteryTipLoader(Context context, BatteryUsageStats batteryUsageStats) {
         super(context);
@@ -70,11 +68,13 @@
         tips.add(new BatteryDefenderDetector(batteryInfo, context).detect());
         tips.add(new DockDefenderDetector(batteryInfo, context).detect());
         tips.add(new IncompatibleChargerDetector(context).detect());
+        FeatureFactory.getFeatureFactory()
+                .getBatterySettingsFeatureProvider()
+                .addBatteryTipDetector(context, tips);
         Collections.sort(tips);
         return tips;
     }
 
     @Override
-    protected void onDiscardResult(List<BatteryTip> result) {
-    }
+    protected void onDiscardResult(List<BatteryTip> result) {}
 }
diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicy.java b/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicy.java
index 3fbbf5b..2feaad5 100644
--- a/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicy.java
+++ b/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicy.java
@@ -25,10 +25,7 @@
 
 import java.time.Duration;
 
-/**
- * Class to store the policy for battery tips, which comes from
- * {@link Settings.Global}
- */
+/** Class to store the policy for battery tips, which comes from {@link Settings.Global} */
 public class BatteryTipPolicy {
     public static final String TAG = "BatteryTipPolicy";
 
@@ -102,9 +99,9 @@
     public final long highUsagePeriodMs;
 
     /**
-     * The battery draining threshold to detect whether device is heavily used.
-     * If battery drains more than {@link #highUsageBatteryDraining} in last {@link
-     * #highUsagePeriodMs}, treat device as heavily used.
+     * The battery draining threshold to detect whether device is heavily used. If battery drains
+     * more than {@link #highUsageBatteryDraining} in last {@link #highUsagePeriodMs}, treat device
+     * as heavily used.
      *
      * @see Settings.Global#BATTERY_TIP_CONSTANTS
      * @see #KEY_HIGH_USAGE_BATTERY_DRAINING
@@ -171,8 +168,8 @@
     /**
      * Battery drain percentage threshold for excessive background anomaly(i.e. 10%)
      *
-     * This is an additional check for excessive background, to check whether battery drain
-     * for an app is larger than x%
+     * <p>This is an additional check for excessive background, to check whether battery drain for
+     * an app is larger than x%
      *
      * @see Settings.Global#BATTERY_TIP_CONSTANTS
      * @see #KEY_EXCESSIVE_BG_DRAIN_PERCENTAGE
@@ -220,8 +217,9 @@
     @VisibleForTesting
     BatteryTipPolicy(Context context, KeyValueListParser parser) {
         mParser = parser;
-        final String value = Settings.Global.getString(context.getContentResolver(),
-                Settings.Global.BATTERY_TIP_CONSTANTS);
+        final String value =
+                Settings.Global.getString(
+                        context.getContentResolver(), Settings.Global.BATTERY_TIP_CONSTANTS);
 
         try {
             mParser.setString(value);
@@ -234,8 +232,8 @@
         batterySaverTipEnabled = mParser.getBoolean(KEY_BATTERY_SAVER_TIP_ENABLED, true);
         highUsageEnabled = mParser.getBoolean(KEY_HIGH_USAGE_ENABLED, true);
         highUsageAppCount = mParser.getInt(KEY_HIGH_USAGE_APP_COUNT, 3);
-        highUsagePeriodMs = mParser.getLong(KEY_HIGH_USAGE_PERIOD_MS,
-                Duration.ofHours(2).toMillis());
+        highUsagePeriodMs =
+                mParser.getLong(KEY_HIGH_USAGE_PERIOD_MS, Duration.ofHours(2).toMillis());
         highUsageBatteryDraining = mParser.getInt(KEY_HIGH_USAGE_BATTERY_DRAINING, 25);
         appRestrictionEnabled = mParser.getBoolean(KEY_APP_RESTRICTION_ENABLED, true);
         appRestrictionActiveHour = mParser.getInt(KEY_APP_RESTRICTION_ACTIVE_HOUR, 24);
@@ -251,5 +249,4 @@
         testSmartBatteryTip = mParser.getBoolean(KEY_TEST_SMART_BATTERY_TIP, false);
         testLowBatteryTip = mParser.getBoolean(KEY_TEST_LOW_BATTERY_TIP, false);
     }
-
 }
diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java b/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java
index 1a0ca4e..57dd578 100644
--- a/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java
@@ -20,6 +20,7 @@
 import android.content.Context;
 import android.os.BadParcelableException;
 import android.os.Bundle;
+import android.util.ArrayMap;
 import android.util.Log;
 
 import androidx.annotation.VisibleForTesting;
@@ -35,14 +36,11 @@
 import com.android.settings.widget.CardPreference;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 
-/**
- * Controller in charge of the battery tip group
- */
+/** Controller in charge of the battery tip group */
 public class BatteryTipPreferenceController extends BasePreferenceController {
 
     public static final String PREF_NAME = "battery_tip";
@@ -57,15 +55,13 @@
     private SettingsActivity mSettingsActivity;
     private MetricsFeatureProvider mMetricsFeatureProvider;
     private boolean mNeedUpdate;
-    @VisibleForTesting
-    CardPreference mCardPreference;
-    @VisibleForTesting
-    Context mPrefContext;
+    @VisibleForTesting CardPreference mCardPreference;
+    @VisibleForTesting Context mPrefContext;
     InstrumentedPreferenceFragment mFragment;
 
     public BatteryTipPreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
-        mBatteryTipMap = new HashMap<>();
+        mBatteryTipMap = new ArrayMap<>();
         mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         mNeedUpdate = true;
     }
@@ -122,13 +118,15 @@
         final BatteryTip batteryTip = mBatteryTipMap.get(preference.getKey());
         if (batteryTip != null) {
             if (batteryTip.shouldShowDialog()) {
-                BatteryTipDialogFragment dialogFragment = BatteryTipDialogFragment.newInstance(
-                        batteryTip, mFragment.getMetricsCategory());
+                BatteryTipDialogFragment dialogFragment =
+                        BatteryTipDialogFragment.newInstance(
+                                batteryTip, mFragment.getMetricsCategory());
                 dialogFragment.setTargetFragment(mFragment, REQUEST_ANOMALY_ACTION);
                 dialogFragment.show(mFragment.getFragmentManager(), TAG);
             } else {
-                final BatteryTipAction action = BatteryTipUtils.getActionForBatteryTip(batteryTip,
-                        mSettingsActivity, mFragment);
+                final BatteryTipAction action =
+                        BatteryTipUtils.getActionForBatteryTip(
+                                batteryTip, mSettingsActivity, mFragment);
                 if (action != null) {
                     action.handlePositiveAction(mFragment.getMetricsCategory());
                 }
@@ -183,13 +181,11 @@
         return visibleBatteryTip.orElse(null);
     }
 
-    /**
-     * Listener to give the control back to target fragment
-     */
+    /** Listener to give the control back to target fragment */
     public interface BatteryTipListener {
         /**
-         * This method is invoked once battery tip is handled, then target fragment could do
-         * extra work.
+         * This method is invoked once battery tip is handled, then target fragment could do extra
+         * work.
          *
          * @param batteryTip that has been handled
          */
diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryTipUtils.java b/src/com/android/settings/fuelgauge/batterytip/BatteryTipUtils.java
index 61e0fb1..d65bd26 100644
--- a/src/com/android/settings/fuelgauge/batterytip/BatteryTipUtils.java
+++ b/src/com/android/settings/fuelgauge/batterytip/BatteryTipUtils.java
@@ -48,15 +48,13 @@
 public class BatteryTipUtils {
     private static final int REQUEST_CODE = 0;
 
-    /**
-     * Get a list of restricted apps with {@link AppOpsManager#OP_RUN_ANY_IN_BACKGROUND}
-     */
+    /** Get a list of restricted apps with {@link AppOpsManager#OP_RUN_ANY_IN_BACKGROUND} */
     @NonNull
-    public static List<AppInfo> getRestrictedAppsList(AppOpsManager appOpsManager,
-            UserManager userManager) {
+    public static List<AppInfo> getRestrictedAppsList(
+            AppOpsManager appOpsManager, UserManager userManager) {
         final List<UserHandle> userHandles = userManager.getUserProfiles();
-        final List<AppOpsManager.PackageOps> packageOpsList = appOpsManager.getPackagesForOps(
-                new int[]{AppOpsManager.OP_RUN_ANY_IN_BACKGROUND});
+        final List<AppOpsManager.PackageOps> packageOpsList =
+                appOpsManager.getPackagesForOps(new int[] {AppOpsManager.OP_RUN_ANY_IN_BACKGROUND});
         final List<AppInfo> appInfos = new ArrayList<>();
 
         for (int i = 0, size = CollectionUtils.size(packageOpsList); i < size; i++) {
@@ -69,11 +67,12 @@
                 }
                 if (entry.getMode() != AppOpsManager.MODE_ALLOWED
                         && userHandles.contains(
-                        new UserHandle(UserHandle.getUserId(packageOps.getUid())))) {
-                    appInfos.add(new AppInfo.Builder()
-                            .setPackageName(packageOps.getPackageName())
-                            .setUid(packageOps.getUid())
-                            .build());
+                                new UserHandle(UserHandle.getUserId(packageOps.getUid())))) {
+                    appInfos.add(
+                            new AppInfo.Builder()
+                                    .setPackageName(packageOps.getPackageName())
+                                    .setUid(packageOps.getUid())
+                                    .build());
                 }
             }
         }
@@ -89,8 +88,10 @@
      * @param fragment used to populate {@link BatteryTipAction}
      * @return an action for {@code batteryTip}
      */
-    public static BatteryTipAction getActionForBatteryTip(BatteryTip batteryTip,
-            SettingsActivity settingsActivity, InstrumentedPreferenceFragment fragment) {
+    public static BatteryTipAction getActionForBatteryTip(
+            BatteryTip batteryTip,
+            SettingsActivity settingsActivity,
+            InstrumentedPreferenceFragment fragment) {
         switch (batteryTip.getType()) {
             case BatteryTip.TipType.SMART_BATTERY_MANAGER:
                 return new SmartBatteryAction(settingsActivity, fragment);
@@ -112,26 +113,33 @@
 
     /**
      * Upload the {@link PendingIntent} to {@link StatsManager} for anomaly detection
+     *
      * @throws StatsManager.StatsUnavailableException if failed to communicate with stats service
      */
     public static void uploadAnomalyPendingIntent(Context context, StatsManager statsManager)
             throws StatsManager.StatsUnavailableException {
         final Intent extraIntent = new Intent(context, AnomalyDetectionReceiver.class);
-        final PendingIntent pendingIntent = PendingIntent.getBroadcast(context, REQUEST_CODE,
-                extraIntent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_MUTABLE);
-        statsManager.setBroadcastSubscriber(pendingIntent,
-                StatsManagerConfig.ANOMALY_CONFIG_KEY, StatsManagerConfig.SUBSCRIBER_ID);
+        final PendingIntent pendingIntent =
+                PendingIntent.getBroadcast(
+                        context,
+                        REQUEST_CODE,
+                        extraIntent,
+                        PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_MUTABLE);
+        statsManager.setBroadcastSubscriber(
+                pendingIntent,
+                StatsManagerConfig.ANOMALY_CONFIG_KEY,
+                StatsManagerConfig.SUBSCRIBER_ID);
     }
 
-    /**
-     * Detect and return anomaly apps after {@code timeAfterMs}
-     */
+    /** Detect and return anomaly apps after {@code timeAfterMs} */
     public static List<AppInfo> detectAnomalies(Context context, long timeAfterMs) {
-        final List<AppInfo> highUsageApps = BatteryDatabaseManager.getInstance(context)
-                .queryAllAnomalies(timeAfterMs, AnomalyDatabaseHelper.State.NEW);
+        final List<AppInfo> highUsageApps =
+                BatteryDatabaseManager.getInstance(context)
+                        .queryAllAnomalies(timeAfterMs, AnomalyDatabaseHelper.State.NEW);
         // Remove it if it doesn't have label or been restricted
-        highUsageApps.removeIf(AppLabelPredicate.getInstance(context)
-                .or(AppRestrictionPredicate.getInstance(context)));
+        highUsageApps.removeIf(
+                AppLabelPredicate.getInstance(context)
+                        .or(AppRestrictionPredicate.getInstance(context)));
 
         return highUsageApps;
     }
diff --git a/src/com/android/settings/fuelgauge/batterytip/HighUsageAdapter.java b/src/com/android/settings/fuelgauge/batterytip/HighUsageAdapter.java
index cb7b14e..3f8f8e1 100644
--- a/src/com/android/settings/fuelgauge/batterytip/HighUsageAdapter.java
+++ b/src/com/android/settings/fuelgauge/batterytip/HighUsageAdapter.java
@@ -33,9 +33,7 @@
 
 import java.util.List;
 
-/**
- * Adapter for the high usage app list
- */
+/** Adapter for the high usage app list */
 public class HighUsageAdapter extends RecyclerView.Adapter<HighUsageAdapter.ViewHolder> {
     private final Context mContext;
     private final IconDrawableFactory mIconDrawableFactory;
@@ -66,8 +64,8 @@
 
     @Override
     public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
-        final View view = LayoutInflater.from(mContext).inflate(R.layout.app_high_usage_item,
-                parent, false);
+        final View view =
+                LayoutInflater.from(mContext).inflate(R.layout.app_high_usage_item, parent, false);
         return new ViewHolder(view);
     }
 
@@ -75,7 +73,10 @@
     public void onBindViewHolder(ViewHolder holder, int position) {
         final AppInfo app = mHighUsageAppList.get(position);
         holder.appIcon.setImageDrawable(
-                Utils.getBadgedIcon(mIconDrawableFactory, mPackageManager, app.packageName,
+                Utils.getBadgedIcon(
+                        mIconDrawableFactory,
+                        mPackageManager,
+                        app.packageName,
                         UserHandle.getUserId(app.uid)));
         CharSequence label = Utils.getApplicationLabel(mContext, app.packageName);
         if (label == null) {
@@ -89,4 +90,4 @@
     public int getItemCount() {
         return mHighUsageAppList.size();
     }
-}
\ No newline at end of file
+}
diff --git a/src/com/android/settings/fuelgauge/batterytip/HighUsageDataParser.java b/src/com/android/settings/fuelgauge/batterytip/HighUsageDataParser.java
index d5710c2..76f5abc 100644
--- a/src/com/android/settings/fuelgauge/batterytip/HighUsageDataParser.java
+++ b/src/com/android/settings/fuelgauge/batterytip/HighUsageDataParser.java
@@ -20,20 +20,17 @@
 
 import com.android.settings.fuelgauge.BatteryInfo;
 
-/**
- * DataParser used to go through battery data and detect whether battery is
- * heavily used.
- */
+/** DataParser used to go through battery data and detect whether battery is heavily used. */
 public class HighUsageDataParser implements BatteryInfo.BatteryDataParser {
-    /**
-     * time period to check the battery usage
-     */
+    /** Time period to check the battery usage */
     private final long mTimePeriodMs;
+
     /**
-     * treat device as heavily used if battery usage is more than {@code threshold}. 1 means 1%
+     * Treat device as heavily used if battery usage is more than {@code threshold}. 1 means 1%
      * battery usage.
      */
     private int mThreshold;
+
     private long mEndTimeMs;
     private byte mEndBatteryLevel;
     private byte mLastPeriodBatteryLevel;
@@ -69,11 +66,8 @@
         mBatteryDrain = mLastPeriodBatteryLevel - mEndBatteryLevel;
     }
 
-    /**
-     * Return {@code true} if the battery drain in {@link #mTimePeriodMs} is too much
-     */
+    /** Return {@code true} if the battery drain in {@link #mTimePeriodMs} is too much */
     public boolean isDeviceHeavilyUsed() {
         return mBatteryDrain > mThreshold;
     }
 }
-
diff --git a/src/com/android/settings/fuelgauge/batterytip/StatsManagerConfig.java b/src/com/android/settings/fuelgauge/batterytip/StatsManagerConfig.java
index 153aa40..e18d11d 100644
--- a/src/com/android/settings/fuelgauge/batterytip/StatsManagerConfig.java
+++ b/src/com/android/settings/fuelgauge/batterytip/StatsManagerConfig.java
@@ -21,244 +21,197 @@
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 
-/**
- * This class provides all the configs needed if we want to use {@link android.app.StatsManager}
- */
+/** This class provides all the configs needed if we want to use {@link android.app.StatsManager} */
 public class StatsManagerConfig {
     /**
-     * The key that represents the anomaly config.
-     * This value is used in {@link android.app.StatsManager#addConfig(long, byte[])}
+     * The key that represents the anomaly config. This value is used in {@link
+     * android.app.StatsManager#addConfig(long, byte[])}
      */
     public static final long ANOMALY_CONFIG_KEY = 1;
 
-    /**
-     * The key that represents subscriber, which is settings app.
-     */
+    /** The key that represents subscriber, which is settings app. */
     public static final long SUBSCRIBER_ID = 1;
 
     @Retention(RetentionPolicy.SOURCE)
-    @IntDef({AnomalyType.NULL,
-            AnomalyType.UNKNOWN_REASON,
-            AnomalyType.EXCESSIVE_WAKELOCK_ALL_SCREEN_OFF,
-            AnomalyType.EXCESSIVE_WAKEUPS_IN_BACKGROUND,
-            AnomalyType.EXCESSIVE_UNOPTIMIZED_BLE_SCAN,
-            AnomalyType.EXCESSIVE_BACKGROUND_SERVICE,
-            AnomalyType.EXCESSIVE_WIFI_SCAN,
-            AnomalyType.EXCESSIVE_FLASH_WRITES,
-            AnomalyType.EXCESSIVE_MEMORY_IN_BACKGROUND,
-            AnomalyType.EXCESSIVE_DAVEY_RATE,
-            AnomalyType.EXCESSIVE_JANKY_FRAMES,
-            AnomalyType.SLOW_COLD_START_TIME,
-            AnomalyType.SLOW_HOT_START_TIME,
-            AnomalyType.SLOW_WARM_START_TIME,
-            AnomalyType.EXCESSIVE_BACKGROUND_SYNCS,
-            AnomalyType.EXCESSIVE_GPS_SCANS_IN_BACKGROUND,
-            AnomalyType.EXCESSIVE_JOB_SCHEDULING,
-            AnomalyType.EXCESSIVE_MOBILE_NETWORK_IN_BACKGROUND,
-            AnomalyType.EXCESSIVE_WIFI_LOCK_TIME,
-            AnomalyType.JOB_TIMED_OUT,
-            AnomalyType.LONG_UNOPTIMIZED_BLE_SCAN,
-            AnomalyType.BACKGROUND_ANR,
-            AnomalyType.BACKGROUND_CRASH_RATE,
-            AnomalyType.EXCESSIVE_ANR_LOOPING,
-            AnomalyType.EXCESSIVE_ANRS,
-            AnomalyType.EXCESSIVE_CRASH_RATE,
-            AnomalyType.EXCESSIVE_CRASH_LOOPING,
-            AnomalyType.NUMBER_OF_OPEN_FILES,
-            AnomalyType.EXCESSIVE_CAMERA_USAGE_IN_BACKGROUND,
-            AnomalyType.EXCESSIVE_CONTACT_ACCESS,
-            AnomalyType.EXCESSIVE_AUDIO_IN_BACKGROUND,
-            AnomalyType.EXCESSIVE_CRASH_ANR_IN_BACKGROUND,
-            AnomalyType.BATTERY_DRAIN_FROM_UNUSED_APP,
+    @IntDef({
+        AnomalyType.NULL,
+        AnomalyType.UNKNOWN_REASON,
+        AnomalyType.EXCESSIVE_WAKELOCK_ALL_SCREEN_OFF,
+        AnomalyType.EXCESSIVE_WAKEUPS_IN_BACKGROUND,
+        AnomalyType.EXCESSIVE_UNOPTIMIZED_BLE_SCAN,
+        AnomalyType.EXCESSIVE_BACKGROUND_SERVICE,
+        AnomalyType.EXCESSIVE_WIFI_SCAN,
+        AnomalyType.EXCESSIVE_FLASH_WRITES,
+        AnomalyType.EXCESSIVE_MEMORY_IN_BACKGROUND,
+        AnomalyType.EXCESSIVE_DAVEY_RATE,
+        AnomalyType.EXCESSIVE_JANKY_FRAMES,
+        AnomalyType.SLOW_COLD_START_TIME,
+        AnomalyType.SLOW_HOT_START_TIME,
+        AnomalyType.SLOW_WARM_START_TIME,
+        AnomalyType.EXCESSIVE_BACKGROUND_SYNCS,
+        AnomalyType.EXCESSIVE_GPS_SCANS_IN_BACKGROUND,
+        AnomalyType.EXCESSIVE_JOB_SCHEDULING,
+        AnomalyType.EXCESSIVE_MOBILE_NETWORK_IN_BACKGROUND,
+        AnomalyType.EXCESSIVE_WIFI_LOCK_TIME,
+        AnomalyType.JOB_TIMED_OUT,
+        AnomalyType.LONG_UNOPTIMIZED_BLE_SCAN,
+        AnomalyType.BACKGROUND_ANR,
+        AnomalyType.BACKGROUND_CRASH_RATE,
+        AnomalyType.EXCESSIVE_ANR_LOOPING,
+        AnomalyType.EXCESSIVE_ANRS,
+        AnomalyType.EXCESSIVE_CRASH_RATE,
+        AnomalyType.EXCESSIVE_CRASH_LOOPING,
+        AnomalyType.NUMBER_OF_OPEN_FILES,
+        AnomalyType.EXCESSIVE_CAMERA_USAGE_IN_BACKGROUND,
+        AnomalyType.EXCESSIVE_CONTACT_ACCESS,
+        AnomalyType.EXCESSIVE_AUDIO_IN_BACKGROUND,
+        AnomalyType.EXCESSIVE_CRASH_ANR_IN_BACKGROUND,
+        AnomalyType.BATTERY_DRAIN_FROM_UNUSED_APP,
     })
     public @interface AnomalyType {
-        /**
-         * This represents an error condition in the anomaly detection.
-         */
+        /** This represents an error condition in the anomaly detection. */
         int NULL = -1;
 
-        /**
-         * The anomaly type does not match any other defined type.
-         */
+        /** The anomaly type does not match any other defined type. */
         int UNKNOWN_REASON = 0;
 
         /**
-         * The application held a partial (screen off) wake lock for a period of time that
-         * exceeded the threshold with the screen off when not charging.
+         * The application held a partial (screen off) wake lock for a period of time that exceeded
+         * the threshold with the screen off when not charging.
          */
         int EXCESSIVE_WAKELOCK_ALL_SCREEN_OFF = 1;
 
         /**
-         * The application exceeded the maximum number of wakeups while in the background
-         * when not charging.
+         * The application exceeded the maximum number of wakeups while in the background when not
+         * charging.
          */
         int EXCESSIVE_WAKEUPS_IN_BACKGROUND = 2;
 
-        /**
-         * The application did unoptimized Bluetooth scans too frequently when not charging.
-         */
+        /** The application did unoptimized Bluetooth scans too frequently when not charging. */
         int EXCESSIVE_UNOPTIMIZED_BLE_SCAN = 3;
 
         /**
-         * The application ran in the background for a period of time that exceeded the
-         * threshold.
+         * The application ran in the background for a period of time that exceeded the threshold.
          */
         int EXCESSIVE_BACKGROUND_SERVICE = 4;
 
-        /**
-         * The application exceeded the maximum number of wifi scans when not charging.
-         */
+        /** The application exceeded the maximum number of wifi scans when not charging. */
         int EXCESSIVE_WIFI_SCAN = 5;
 
-        /**
-         * The application exceed the maximum number of flash writes
-         */
+        /** The application exceed the maximum number of flash writes */
         int EXCESSIVE_FLASH_WRITES = 6;
 
         /**
-         * The application used more than the maximum memory, while not spending any time
-         * in the foreground.
+         * The application used more than the maximum memory, while not spending any time in the
+         * foreground.
          */
         int EXCESSIVE_MEMORY_IN_BACKGROUND = 7;
 
         /**
-         * The application exceeded the maximum percentage of frames with a render rate of
-         * greater than 700ms.
+         * The application exceeded the maximum percentage of frames with a render rate of greater
+         * than 700ms.
          */
         int EXCESSIVE_DAVEY_RATE = 8;
 
         /**
-         * The application exceeded the maximum percentage of frames with a render rate
-         * greater than 16ms.
+         * The application exceeded the maximum percentage of frames with a render rate greater than
+         * 16ms.
          */
         int EXCESSIVE_JANKY_FRAMES = 9;
 
         /**
-         * The application exceeded the maximum cold start time - the app has not been
-         * launched since last system start, died or was killed.
+         * The application exceeded the maximum cold start time - the app has not been launched
+         * since last system start, died or was killed.
          */
         int SLOW_COLD_START_TIME = 10;
 
         /**
-         * The application exceeded the maximum hot start time - the app and activity are
-         * already in memory.
+         * The application exceeded the maximum hot start time - the app and activity are already in
+         * memory.
          */
         int SLOW_HOT_START_TIME = 11;
 
         /**
-         * The application exceeded the maximum warm start time - the app was already in
-         * memory but the activity wasn’t created yet or was removed from memory.
+         * The application exceeded the maximum warm start time - the app was already in memory but
+         * the activity wasn’t created yet or was removed from memory.
          */
         int SLOW_WARM_START_TIME = 12;
 
-        /**
-         * The application exceeded the maximum number of syncs while in the background.
-         */
+        /** The application exceeded the maximum number of syncs while in the background. */
         int EXCESSIVE_BACKGROUND_SYNCS = 13;
 
-        /**
-         * The application exceeded the maximum number of gps scans while in the background.
-         */
+        /** The application exceeded the maximum number of gps scans while in the background. */
         int EXCESSIVE_GPS_SCANS_IN_BACKGROUND = 14;
 
-        /**
-         * The application scheduled more than the maximum number of jobs while not charging.
-         */
+        /** The application scheduled more than the maximum number of jobs while not charging. */
         int EXCESSIVE_JOB_SCHEDULING = 15;
 
         /**
-         * The application exceeded the maximum amount of mobile network traffic while in
-         * the background.
+         * The application exceeded the maximum amount of mobile network traffic while in the
+         * background.
          */
         int EXCESSIVE_MOBILE_NETWORK_IN_BACKGROUND = 16;
 
         /**
-         * The application held the WiFi lock for more than the maximum amount of time while
-         * not charging.
+         * The application held the WiFi lock for more than the maximum amount of time while not
+         * charging.
          */
         int EXCESSIVE_WIFI_LOCK_TIME = 17;
 
-        /**
-         * The application scheduled a job that ran longer than the maximum amount of time.
-         */
+        /** The application scheduled a job that ran longer than the maximum amount of time. */
         int JOB_TIMED_OUT = 18;
 
         /**
-         * The application did an unoptimized Bluetooth scan that exceeded the maximum
-         * time while in the background.
+         * The application did an unoptimized Bluetooth scan that exceeded the maximum time while in
+         * the background.
          */
         int LONG_UNOPTIMIZED_BLE_SCAN = 19;
 
-        /**
-         * The application exceeded the maximum ANR rate while in the background.
-         */
+        /** The application exceeded the maximum ANR rate while in the background. */
         int BACKGROUND_ANR = 20;
 
-        /**
-         * The application exceeded the maximum crash rate while in the background.
-         */
+        /** The application exceeded the maximum crash rate while in the background. */
         int BACKGROUND_CRASH_RATE = 21;
 
-        /**
-         * The application exceeded the maximum ANR-looping rate.
-         */
+        /** The application exceeded the maximum ANR-looping rate. */
         int EXCESSIVE_ANR_LOOPING = 22;
 
-        /**
-         * The application exceeded the maximum ANR rate.
-         */
+        /** The application exceeded the maximum ANR rate. */
         int EXCESSIVE_ANRS = 23;
 
-        /**
-         * The application exceeded the maximum crash rate.
-         */
+        /** The application exceeded the maximum crash rate. */
         int EXCESSIVE_CRASH_RATE = 24;
 
-        /**
-         * The application exceeded the maximum crash-looping rate.
-         */
+        /** The application exceeded the maximum crash-looping rate. */
         int EXCESSIVE_CRASH_LOOPING = 25;
 
-        /**
-         * The application crashed because no more file descriptors were available.
-         */
+        /** The application crashed because no more file descriptors were available. */
         int NUMBER_OF_OPEN_FILES = 26;
 
-        /**
-         * The application used an excessive amount of CPU while in a
-         * background process state.
-         */
+        /** The application used an excessive amount of CPU while in a background process state. */
         int EXCESSIVE_CPU_USAGE_IN_BACKGROUND = 27;
 
         /**
-         * The application kept the camera open for an excessive amount
-         * of time while in a bckground process state.
+         * The application kept the camera open for an excessive amount of time while in a bckground
+         * process state.
          */
         int EXCESSIVE_CAMERA_USAGE_IN_BACKGROUND = 28;
 
-        /**
-         * The application has accessed the contacts content provider an
-         * excessive amount.
-         */
+        /** The application has accessed the contacts content provider an excessive amount. */
         int EXCESSIVE_CONTACT_ACCESS = 29;
 
-        /**
-         * The application has played too much audio while in a background
-         * process state.
-         */
+        /** The application has played too much audio while in a background process state. */
         int EXCESSIVE_AUDIO_IN_BACKGROUND = 30;
 
         /**
-         * The application has crashed or ANRed too many times while in a
-         * background process state.
+         * The application has crashed or ANRed too many times while in a background process state.
          */
         int EXCESSIVE_CRASH_ANR_IN_BACKGROUND = 31;
 
         /**
-         * An application which has not been used by the user recently
-         * was detected to cause an excessive amount of battery drain.
+         * An application which has not been used by the user recently was detected to cause an
+         * excessive amount of battery drain.
          */
         int BATTERY_DRAIN_FROM_UNUSED_APP = 32;
     }
-
 }
diff --git a/src/com/android/settings/fuelgauge/batterytip/actions/BatterySaverAction.java b/src/com/android/settings/fuelgauge/batterytip/actions/BatterySaverAction.java
index 6f823e9..42b1c2d 100644
--- a/src/com/android/settings/fuelgauge/batterytip/actions/BatterySaverAction.java
+++ b/src/com/android/settings/fuelgauge/batterytip/actions/BatterySaverAction.java
@@ -28,14 +28,12 @@
         super(context);
     }
 
-    /**
-     * Handle the action when user clicks positive button
-     */
+    /** Handle the action when user clicks positive button */
     @Override
     public void handlePositiveAction(int metricsKey) {
-        BatterySaverUtils.setPowerSaveMode(mContext, true, /*needFirstTimeWarning*/ true,
-                SAVER_ENABLED_UNKNOWN);
-        mMetricsFeatureProvider.action(mContext,
-                SettingsEnums.ACTION_TIP_TURN_ON_BATTERY_SAVER, metricsKey);
+        BatterySaverUtils.setPowerSaveMode(
+                mContext, true, /*needFirstTimeWarning*/ true, SAVER_ENABLED_UNKNOWN);
+        mMetricsFeatureProvider.action(
+                mContext, SettingsEnums.ACTION_TIP_TURN_ON_BATTERY_SAVER, metricsKey);
     }
 }
diff --git a/src/com/android/settings/fuelgauge/batterytip/actions/BatteryTipAction.java b/src/com/android/settings/fuelgauge/batterytip/actions/BatteryTipAction.java
index 65aa076..66f9c44 100644
--- a/src/com/android/settings/fuelgauge/batterytip/actions/BatteryTipAction.java
+++ b/src/com/android/settings/fuelgauge/batterytip/actions/BatteryTipAction.java
@@ -33,8 +33,6 @@
         mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
-    /**
-     * Handle the action when user clicks positive button
-     */
+    /** Handle the action when user clicks positive button */
     public abstract void handlePositiveAction(int metricsKey);
 }
diff --git a/src/com/android/settings/fuelgauge/batterytip/actions/OpenBatterySaverAction.java b/src/com/android/settings/fuelgauge/batterytip/actions/OpenBatterySaverAction.java
index 1bc2ebf..9073086 100644
--- a/src/com/android/settings/fuelgauge/batterytip/actions/OpenBatterySaverAction.java
+++ b/src/com/android/settings/fuelgauge/batterytip/actions/OpenBatterySaverAction.java
@@ -22,23 +22,18 @@
 import com.android.settings.core.SubSettingLauncher;
 import com.android.settings.fuelgauge.batterysaver.BatterySaverSettings;
 
-/**
- *
- * Action to open the {@link com.android.settings.fuelgauge.batterysaver.BatterySaverSettings}
- */
+/** Action to open the {@link com.android.settings.fuelgauge.batterysaver.BatterySaverSettings} */
 public class OpenBatterySaverAction extends BatteryTipAction {
 
     public OpenBatterySaverAction(Context context) {
         super(context);
     }
 
-    /**
-     * Handle the action when user clicks positive button
-     */
+    /** Handle the action when user clicks positive button */
     @Override
     public void handlePositiveAction(int metricsKey) {
-        mMetricsFeatureProvider.action(mContext,
-                SettingsEnums.ACTION_TIP_OPEN_BATTERY_SAVER_PAGE, metricsKey);
+        mMetricsFeatureProvider.action(
+                mContext, SettingsEnums.ACTION_TIP_OPEN_BATTERY_SAVER_PAGE, metricsKey);
         new SubSettingLauncher(mContext)
                 .setDestination(BatterySaverSettings.class.getName())
                 .setSourceMetricsCategory(metricsKey)
diff --git a/src/com/android/settings/fuelgauge/batterytip/actions/OpenRestrictAppFragmentAction.java b/src/com/android/settings/fuelgauge/batterytip/actions/OpenRestrictAppFragmentAction.java
index f0d9f28..30c318e 100644
--- a/src/com/android/settings/fuelgauge/batterytip/actions/OpenRestrictAppFragmentAction.java
+++ b/src/com/android/settings/fuelgauge/batterytip/actions/OpenRestrictAppFragmentAction.java
@@ -30,35 +30,32 @@
 
 import java.util.List;
 
-/**
- * Action to open the {@link com.android.settings.fuelgauge.RestrictedAppDetails}
- */
+/** Action to open the {@link com.android.settings.fuelgauge.RestrictedAppDetails} */
 public class OpenRestrictAppFragmentAction extends BatteryTipAction {
     private final RestrictAppTip mRestrictAppTip;
     private final InstrumentedPreferenceFragment mFragment;
-    @VisibleForTesting
-    BatteryDatabaseManager mBatteryDatabaseManager;
+    @VisibleForTesting BatteryDatabaseManager mBatteryDatabaseManager;
 
-    public OpenRestrictAppFragmentAction(InstrumentedPreferenceFragment fragment,
-            RestrictAppTip tip) {
+    public OpenRestrictAppFragmentAction(
+            InstrumentedPreferenceFragment fragment, RestrictAppTip tip) {
         super(fragment.getContext());
         mFragment = fragment;
         mRestrictAppTip = tip;
         mBatteryDatabaseManager = BatteryDatabaseManager.getInstance(mContext);
     }
 
-    /**
-     * Handle the action when user clicks positive button
-     */
+    /** Handle the action when user clicks positive button */
     @Override
     public void handlePositiveAction(int metricsKey) {
-        mMetricsFeatureProvider.action(mContext,
-                SettingsEnums.ACTION_TIP_OPEN_APP_RESTRICTION_PAGE, metricsKey);
+        mMetricsFeatureProvider.action(
+                mContext, SettingsEnums.ACTION_TIP_OPEN_APP_RESTRICTION_PAGE, metricsKey);
         final List<AppInfo> mAppInfos = mRestrictAppTip.getRestrictAppList();
         RestrictedAppDetails.startRestrictedAppDetails(mFragment, mAppInfos);
 
         // Mark all the anomalies as handled, so it won't show up again.
-        ThreadUtils.postOnBackgroundThread(() -> mBatteryDatabaseManager.updateAnomalies(mAppInfos,
-                AnomalyDatabaseHelper.State.HANDLED));
+        ThreadUtils.postOnBackgroundThread(
+                () ->
+                        mBatteryDatabaseManager.updateAnomalies(
+                                mAppInfos, AnomalyDatabaseHelper.State.HANDLED));
     }
 }
diff --git a/src/com/android/settings/fuelgauge/batterytip/actions/RestrictAppAction.java b/src/com/android/settings/fuelgauge/batterytip/actions/RestrictAppAction.java
index 33ac5df..83abf49 100644
--- a/src/com/android/settings/fuelgauge/batterytip/actions/RestrictAppAction.java
+++ b/src/com/android/settings/fuelgauge/batterytip/actions/RestrictAppAction.java
@@ -31,15 +31,11 @@
 
 import java.util.List;
 
-/**
- * Action to restrict the apps, then app is not allowed to run in the background.
- */
+/** Action to restrict the apps, then app is not allowed to run in the background. */
 public class RestrictAppAction extends BatteryTipAction {
     private RestrictAppTip mRestrictAppTip;
-    @VisibleForTesting
-    BatteryDatabaseManager mBatteryDatabaseManager;
-    @VisibleForTesting
-    BatteryUtils mBatteryUtils;
+    @VisibleForTesting BatteryDatabaseManager mBatteryDatabaseManager;
+    @VisibleForTesting BatteryUtils mBatteryUtils;
 
     public RestrictAppAction(Context context, RestrictAppTip tip) {
         super(context);
@@ -48,9 +44,7 @@
         mBatteryDatabaseManager = BatteryDatabaseManager.getInstance(context);
     }
 
-    /**
-     * Handle the action when user clicks positive button
-     */
+    /** Handle the action when user clicks positive button */
     @Override
     public void handlePositiveAction(int metricsKey) {
         final List<AppInfo> appInfos = mRestrictAppTip.getRestrictAppList();
@@ -59,18 +53,19 @@
             final AppInfo appInfo = appInfos.get(i);
             final String packageName = appInfo.packageName;
             // Force app standby, then app can't run in the background
-            mBatteryUtils.setForceAppStandby(appInfo.uid, packageName,
-                    AppOpsManager.MODE_IGNORED);
+            mBatteryUtils.setForceAppStandby(appInfo.uid, packageName, AppOpsManager.MODE_IGNORED);
             if (CollectionUtils.isEmpty(appInfo.anomalyTypes)) {
                 // Only log context if there is no anomaly type
-                mMetricsFeatureProvider.action(SettingsEnums.PAGE_UNKNOWN,
+                mMetricsFeatureProvider.action(
+                        SettingsEnums.PAGE_UNKNOWN,
                         SettingsEnums.ACTION_TIP_RESTRICT_APP,
                         metricsKey,
                         packageName,
                         0);
             } else {
                 for (int type : appInfo.anomalyTypes) {
-                    mMetricsFeatureProvider.action(SettingsEnums.PAGE_UNKNOWN,
+                    mMetricsFeatureProvider.action(
+                            SettingsEnums.PAGE_UNKNOWN,
                             SettingsEnums.ACTION_TIP_RESTRICT_APP,
                             metricsKey,
                             packageName,
diff --git a/src/com/android/settings/fuelgauge/batterytip/actions/SmartBatteryAction.java b/src/com/android/settings/fuelgauge/batterytip/actions/SmartBatteryAction.java
index f6b9c94..55c0031 100644
--- a/src/com/android/settings/fuelgauge/batterytip/actions/SmartBatteryAction.java
+++ b/src/com/android/settings/fuelgauge/batterytip/actions/SmartBatteryAction.java
@@ -36,20 +36,18 @@
         mFragment = fragment;
     }
 
-    /**
-     * Handle the action when user clicks positive button
-     */
+    /** Handle the action when user clicks positive button */
     @Override
     public void handlePositiveAction(int metricsKey) {
-        mMetricsFeatureProvider.action(mContext,
-                SettingsEnums.ACTION_TIP_OPEN_SMART_BATTERY, metricsKey);
+        mMetricsFeatureProvider.action(
+                mContext, SettingsEnums.ACTION_TIP_OPEN_SMART_BATTERY, metricsKey);
         new SubSettingLauncher(mSettingsActivity)
-                .setSourceMetricsCategory(mFragment instanceof Instrumentable
-                        ? ((Instrumentable) mFragment).getMetricsCategory()
-                        : Instrumentable.METRICS_CATEGORY_UNKNOWN)
+                .setSourceMetricsCategory(
+                        mFragment instanceof Instrumentable
+                                ? ((Instrumentable) mFragment).getMetricsCategory()
+                                : Instrumentable.METRICS_CATEGORY_UNKNOWN)
                 .setDestination(SmartBatterySettings.class.getName())
                 .setTitleRes(R.string.smart_battery_manager_title)
                 .launch();
-
     }
 }
diff --git a/src/com/android/settings/fuelgauge/batterytip/actions/UnrestrictAppAction.java b/src/com/android/settings/fuelgauge/batterytip/actions/UnrestrictAppAction.java
index 0ef2c0f..1d959bf 100644
--- a/src/com/android/settings/fuelgauge/batterytip/actions/UnrestrictAppAction.java
+++ b/src/com/android/settings/fuelgauge/batterytip/actions/UnrestrictAppAction.java
@@ -26,13 +26,10 @@
 import com.android.settings.fuelgauge.batterytip.AppInfo;
 import com.android.settings.fuelgauge.batterytip.tips.UnrestrictAppTip;
 
-/**
- * Action to clear the restriction to the app
- */
+/** Action to clear the restriction to the app */
 public class UnrestrictAppAction extends BatteryTipAction {
     private UnrestrictAppTip mUnRestrictAppTip;
-    @VisibleForTesting
-    BatteryUtils mBatteryUtils;
+    @VisibleForTesting BatteryUtils mBatteryUtils;
 
     public UnrestrictAppAction(Context context, UnrestrictAppTip tip) {
         super(context);
@@ -40,15 +37,13 @@
         mBatteryUtils = BatteryUtils.getInstance(context);
     }
 
-    /**
-     * Handle the action when user clicks positive button
-     */
+    /** Handle the action when user clicks positive button */
     @Override
     public void handlePositiveAction(int metricsKey) {
         final AppInfo appInfo = mUnRestrictAppTip.getUnrestrictAppInfo();
         // Clear force app standby, then app can run in the background
-        mBatteryUtils.setForceAppStandby(appInfo.uid, appInfo.packageName,
-                AppOpsManager.MODE_ALLOWED);
+        mBatteryUtils.setForceAppStandby(
+                appInfo.uid, appInfo.packageName, AppOpsManager.MODE_ALLOWED);
         mMetricsFeatureProvider.action(
                 SettingsEnums.PAGE_UNKNOWN,
                 SettingsEnums.ACTION_TIP_UNRESTRICT_APP,
diff --git a/src/com/android/settings/fuelgauge/batterytip/detectors/BatteryDefenderDetector.java b/src/com/android/settings/fuelgauge/batterytip/detectors/BatteryDefenderDetector.java
index 55d2ee4..db572cd 100644
--- a/src/com/android/settings/fuelgauge/batterytip/detectors/BatteryDefenderDetector.java
+++ b/src/com/android/settings/fuelgauge/batterytip/detectors/BatteryDefenderDetector.java
@@ -23,9 +23,7 @@
 import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
 import com.android.settings.overlay.FeatureFactory;
 
-/**
- * Detect whether the battery is overheated
- */
+/** Detect whether the battery is overheated */
 public class BatteryDefenderDetector implements BatteryTipDetector {
     private final BatteryInfo mBatteryInfo;
     private final Context mContext;
@@ -37,11 +35,13 @@
 
     @Override
     public BatteryTip detect() {
-        final boolean isBasicBatteryDefend = mBatteryInfo.isBatteryDefender
-                && !FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider()
-                .isExtraDefend();
-        final int state = isBasicBatteryDefend
-                ? BatteryTip.StateType.NEW : BatteryTip.StateType.INVISIBLE;
+        final boolean isBasicBatteryDefend =
+                mBatteryInfo.isBatteryDefender
+                        && !FeatureFactory.getFeatureFactory()
+                                .getPowerUsageFeatureProvider()
+                                .isExtraDefend();
+        final int state =
+                isBasicBatteryDefend ? 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/batterytip/detectors/DockDefenderDetector.java b/src/com/android/settings/fuelgauge/batterytip/detectors/DockDefenderDetector.java
index 8a839d3..14aeecd 100644
--- a/src/com/android/settings/fuelgauge/batterytip/detectors/DockDefenderDetector.java
+++ b/src/com/android/settings/fuelgauge/batterytip/detectors/DockDefenderDetector.java
@@ -23,9 +23,7 @@
 import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
 import com.android.settings.fuelgauge.batterytip.tips.DockDefenderTip;
 
-/**
- * Detect whether the dock defender mode is enabled.
- */
+/** Detect whether the dock defender mode is enabled. */
 public class DockDefenderDetector implements BatteryTipDetector {
     private final BatteryInfo mBatteryInfo;
     private final Context mContext;
@@ -44,5 +42,4 @@
                         : BatteryTip.StateType.INVISIBLE,
                 mode);
     }
-
 }
diff --git a/src/com/android/settings/fuelgauge/batterytip/detectors/HighUsageDetector.java b/src/com/android/settings/fuelgauge/batterytip/detectors/HighUsageDetector.java
index 8126dcc..8866346 100644
--- a/src/com/android/settings/fuelgauge/batterytip/detectors/HighUsageDetector.java
+++ b/src/com/android/settings/fuelgauge/batterytip/detectors/HighUsageDetector.java
@@ -38,8 +38,8 @@
 import java.util.concurrent.TimeUnit;
 
 /**
- * Detector whether to show summary tip. This detector should be executed as the last
- * {@link BatteryTipDetector} since it need the most up-to-date {@code visibleTips}
+ * Detector whether to show summary tip. This detector should be executed as the last {@link
+ * BatteryTipDetector} since it need the most up-to-date {@code visibleTips}
  */
 public class HighUsageDetector implements BatteryTipDetector {
     private static final String TAG = "HighUsageDetector";
@@ -48,29 +48,31 @@
     private BatteryUsageStats mBatteryUsageStats;
     private final BatteryInfo mBatteryInfo;
     private List<AppInfo> mHighUsageAppList;
-    @VisibleForTesting
-    HighUsageDataParser mDataParser;
-    @VisibleForTesting
-    BatteryUtils mBatteryUtils;
-    @VisibleForTesting
-    boolean mDischarging;
+    @VisibleForTesting HighUsageDataParser mDataParser;
+    @VisibleForTesting BatteryUtils mBatteryUtils;
+    @VisibleForTesting boolean mDischarging;
 
-    public HighUsageDetector(Context context, BatteryTipPolicy policy,
-            BatteryUsageStats batteryUsageStats, BatteryInfo batteryInfo) {
+    public HighUsageDetector(
+            Context context,
+            BatteryTipPolicy policy,
+            BatteryUsageStats batteryUsageStats,
+            BatteryInfo batteryInfo) {
         mPolicy = policy;
         mBatteryUsageStats = batteryUsageStats;
         mBatteryInfo = batteryInfo;
         mHighUsageAppList = new ArrayList<>();
         mBatteryUtils = BatteryUtils.getInstance(context);
-        mDataParser = new HighUsageDataParser(mPolicy.highUsagePeriodMs,
-                mPolicy.highUsageBatteryDraining);
+        mDataParser =
+                new HighUsageDataParser(
+                        mPolicy.highUsagePeriodMs, mPolicy.highUsageBatteryDraining);
         mDischarging = batteryInfo.discharging;
     }
 
     @Override
     public BatteryTip detect() {
-        final long lastFullChargeTimeMs = mBatteryUtils.calculateLastFullChargeTime(
-                mBatteryUsageStats, System.currentTimeMillis());
+        final long lastFullChargeTimeMs =
+                mBatteryUtils.calculateLastFullChargeTime(
+                        mBatteryUsageStats, System.currentTimeMillis());
         if (mPolicy.highUsageEnabled && mDischarging) {
             parseBatteryData();
             if (mDataParser.isDeviceHeavilyUsed() || mPolicy.testHighUsageTip) {
@@ -80,22 +82,25 @@
                         mBatteryUsageStats.getUidBatteryConsumers();
                 // Sort by descending power
                 uidBatteryConsumers.sort(
-                        (consumer1, consumer2) -> Double.compare(consumer2.getConsumedPower(),
-                                consumer1.getConsumedPower()));
+                        (consumer1, consumer2) ->
+                                Double.compare(
+                                        consumer2.getConsumedPower(),
+                                        consumer1.getConsumedPower()));
                 for (UidBatteryConsumer consumer : uidBatteryConsumers) {
-                    final double percent = mBatteryUtils.calculateBatteryPercent(
-                            consumer.getConsumedPower(), totalPower, dischargeAmount);
+                    final double percent =
+                            mBatteryUtils.calculateBatteryPercent(
+                                    consumer.getConsumedPower(), totalPower, dischargeAmount);
                     if ((percent + 0.5f < 1f)
                             || mBatteryUtils.shouldHideUidBatteryConsumer(consumer)) {
                         // Don't show it if we should hide or usage percentage is lower than 1%
                         continue;
                     }
 
-                    mHighUsageAppList.add(new AppInfo.Builder()
-                            .setUid(consumer.getUid())
-                            .setPackageName(
-                                    mBatteryUtils.getPackageName(consumer.getUid()))
-                            .build());
+                    mHighUsageAppList.add(
+                            new AppInfo.Builder()
+                                    .setUid(consumer.getUid())
+                                    .setPackageName(mBatteryUtils.getPackageName(consumer.getUid()))
+                                    .build());
                     if (mHighUsageAppList.size() >= mPolicy.highUsageAppCount) {
                         break;
                     }
@@ -103,10 +108,11 @@
 
                 // When in test mode, add an app if necessary
                 if (mPolicy.testHighUsageTip && mHighUsageAppList.isEmpty()) {
-                    mHighUsageAppList.add(new AppInfo.Builder()
-                            .setPackageName(SETTINGS_PACKAGE_NAME)
-                            .setScreenOnTimeMs(TimeUnit.HOURS.toMillis(3))
-                            .build());
+                    mHighUsageAppList.add(
+                            new AppInfo.Builder()
+                                    .setPackageName(SETTINGS_PACKAGE_NAME)
+                                    .setScreenOnTimeMs(TimeUnit.HOURS.toMillis(3))
+                                    .build());
                 }
             }
         }
diff --git a/src/com/android/settings/fuelgauge/batterytip/detectors/IncompatibleChargerDetector.java b/src/com/android/settings/fuelgauge/batterytip/detectors/IncompatibleChargerDetector.java
index cfd9a2c..5a9e4f3 100644
--- a/src/com/android/settings/fuelgauge/batterytip/detectors/IncompatibleChargerDetector.java
+++ b/src/com/android/settings/fuelgauge/batterytip/detectors/IncompatibleChargerDetector.java
@@ -34,12 +34,12 @@
 
     @Override
     public BatteryTip detect() {
-        final boolean isIncompatibleCharging =
-                Utils.containsIncompatibleChargers(mContext, TAG);
-        final int state = isIncompatibleCharging
-                ? BatteryTip.StateType.NEW : BatteryTip.StateType.INVISIBLE;
-        Log.d(TAG, "detect() state= " + state + " isIncompatibleCharging: "
-                + isIncompatibleCharging);
+        final boolean isIncompatibleCharging = Utils.containsIncompatibleChargers(mContext, TAG);
+        final int state =
+                isIncompatibleCharging ? BatteryTip.StateType.NEW : BatteryTip.StateType.INVISIBLE;
+        Log.d(
+                TAG,
+                "detect() state= " + state + " isIncompatibleCharging: " + isIncompatibleCharging);
         return new IncompatibleChargerTip(state);
     }
 }
diff --git a/src/com/android/settings/fuelgauge/batterytip/detectors/LowBatteryDetector.java b/src/com/android/settings/fuelgauge/batterytip/detectors/LowBatteryDetector.java
index 9e970d2..1ce5a8e 100644
--- a/src/com/android/settings/fuelgauge/batterytip/detectors/LowBatteryDetector.java
+++ b/src/com/android/settings/fuelgauge/batterytip/detectors/LowBatteryDetector.java
@@ -23,22 +23,23 @@
 import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
 import com.android.settings.fuelgauge.batterytip.tips.LowBatteryTip;
 
-/**
- * Detect whether the battery is too low
- */
+/** Detect whether the battery is too low */
 public class LowBatteryDetector implements BatteryTipDetector {
     private final BatteryInfo mBatteryInfo;
     private final BatteryTipPolicy mPolicy;
     private final boolean mIsPowerSaveMode;
     private final int mWarningLevel;
 
-
-    public LowBatteryDetector(Context context, BatteryTipPolicy policy, BatteryInfo batteryInfo,
+    public LowBatteryDetector(
+            Context context,
+            BatteryTipPolicy policy,
+            BatteryInfo batteryInfo,
             boolean isPowerSaveMode) {
         mPolicy = policy;
         mBatteryInfo = batteryInfo;
-        mWarningLevel = context.getResources().getInteger(
-                com.android.internal.R.integer.config_lowBatteryWarningLevel);
+        mWarningLevel =
+                context.getResources()
+                        .getInteger(com.android.internal.R.integer.config_lowBatteryWarningLevel);
         mIsPowerSaveMode = isPowerSaveMode;
     }
 
diff --git a/src/com/android/settings/fuelgauge/batterytip/detectors/SmartBatteryDetector.java b/src/com/android/settings/fuelgauge/batterytip/detectors/SmartBatteryDetector.java
index 0487ac3..7f9dcd6 100644
--- a/src/com/android/settings/fuelgauge/batterytip/detectors/SmartBatteryDetector.java
+++ b/src/com/android/settings/fuelgauge/batterytip/detectors/SmartBatteryDetector.java
@@ -25,9 +25,7 @@
 import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
 import com.android.settings.fuelgauge.batterytip.tips.SmartBatteryTip;
 
-/**
- * Detect whether to show smart battery tip.
- */
+/** Detect whether to show smart battery tip. */
 public class SmartBatteryDetector implements BatteryTipDetector {
     private static final int EXPECTED_BATTERY_LEVEL = 30;
 
@@ -36,8 +34,12 @@
     private final ContentResolver mContentResolver;
     private final boolean mIsPowerSaveMode;
 
-    public SmartBatteryDetector(Context context, BatteryTipPolicy policy, BatteryInfo batteryInfo,
-            ContentResolver contentResolver, boolean isPowerSaveMode) {
+    public SmartBatteryDetector(
+            Context context,
+            BatteryTipPolicy policy,
+            BatteryInfo batteryInfo,
+            ContentResolver contentResolver,
+            boolean isPowerSaveMode) {
         mPolicy = policy;
         mBatteryInfo = batteryInfo;
         mContentResolver = contentResolver;
@@ -46,14 +48,18 @@
 
     @Override
     public BatteryTip detect() {
-        final boolean smartBatteryOff = Settings.Global.getInt(mContentResolver,
-                Settings.Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED, 1) == 0;
+        final boolean smartBatteryOff =
+                Settings.Global.getInt(
+                                mContentResolver,
+                                Settings.Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED,
+                                1)
+                        == 0;
         final boolean isUnderExpectedBatteryLevel =
                 mBatteryInfo.batteryLevel <= EXPECTED_BATTERY_LEVEL;
         // Show it if in test or smart battery is off.
         final boolean enableSmartBatteryTip =
                 smartBatteryOff && !mIsPowerSaveMode && isUnderExpectedBatteryLevel
-                || mPolicy.testSmartBatteryTip;
+                        || mPolicy.testSmartBatteryTip;
         final int state =
                 enableSmartBatteryTip ? BatteryTip.StateType.NEW : BatteryTip.StateType.INVISIBLE;
         return new SmartBatteryTip(state);
diff --git a/src/com/android/settings/fuelgauge/batterytip/tips/AppLabelPredicate.java b/src/com/android/settings/fuelgauge/batterytip/tips/AppLabelPredicate.java
index 1444b12..5bd4dc0 100644
--- a/src/com/android/settings/fuelgauge/batterytip/tips/AppLabelPredicate.java
+++ b/src/com/android/settings/fuelgauge/batterytip/tips/AppLabelPredicate.java
@@ -23,9 +23,7 @@
 
 import java.util.function.Predicate;
 
-/**
- * {@link Predicate} for {@link AppInfo} to check whether it has label
- */
+/** {@link Predicate} for {@link AppInfo} to check whether it has label */
 public class AppLabelPredicate implements Predicate<AppInfo> {
 
     private static AppLabelPredicate sInstance;
diff --git a/src/com/android/settings/fuelgauge/batterytip/tips/AppRestrictionPredicate.java b/src/com/android/settings/fuelgauge/batterytip/tips/AppRestrictionPredicate.java
index 43a4d90..a08953c 100644
--- a/src/com/android/settings/fuelgauge/batterytip/tips/AppRestrictionPredicate.java
+++ b/src/com/android/settings/fuelgauge/batterytip/tips/AppRestrictionPredicate.java
@@ -23,9 +23,7 @@
 
 import java.util.function.Predicate;
 
-/**
- * {@link Predicate} for {@link AppInfo} to check whether it is restricted.
- */
+/** {@link Predicate} for {@link AppInfo} to check whether it is restricted. */
 public class AppRestrictionPredicate implements Predicate<AppInfo> {
 
     private static AppRestrictionPredicate sInstance;
@@ -46,7 +44,8 @@
     @Override
     public boolean test(AppInfo appInfo) {
         // Return true if app already been restricted
-        return mAppOpsManager.checkOpNoThrow(AppOpsManager.OP_RUN_ANY_IN_BACKGROUND,
-                appInfo.uid, appInfo.packageName) == AppOpsManager.MODE_IGNORED;
+        return mAppOpsManager.checkOpNoThrow(
+                        AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, appInfo.uid, appInfo.packageName)
+                == AppOpsManager.MODE_IGNORED;
     }
 }
diff --git a/src/com/android/settings/fuelgauge/batterytip/tips/BatteryDefenderTip.java b/src/com/android/settings/fuelgauge/batterytip/tips/BatteryDefenderTip.java
index 536e5f8..b5ec522 100644
--- a/src/com/android/settings/fuelgauge/batterytip/tips/BatteryDefenderTip.java
+++ b/src/com/android/settings/fuelgauge/batterytip/tips/BatteryDefenderTip.java
@@ -30,9 +30,7 @@
 import com.android.settingslib.HelpUtils;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
-/**
- * Tip to show current battery is overheated
- */
+/** Tip to show current battery is overheated */
 public class BatteryDefenderTip extends BatteryTip {
 
     private static final String TAG = "BatteryDefenderTip";
@@ -70,8 +68,7 @@
 
     @Override
     public void log(Context context, MetricsFeatureProvider metricsFeatureProvider) {
-        metricsFeatureProvider.action(context, SettingsEnums.ACTION_BATTERY_DEFENDER_TIP,
-                mState);
+        metricsFeatureProvider.action(context, SettingsEnums.ACTION_BATTERY_DEFENDER_TIP, mState);
     }
 
     @Override
@@ -97,14 +94,17 @@
 
         cardPreference.setSecondaryButtonText(context.getString(R.string.learn_more));
         cardPreference.setSecondaryButtonClickListener(
-                button -> button.startActivityForResult(
-                        HelpUtils.getHelpIntent(
-                                context,
-                                context.getString(R.string.help_url_battery_defender),
-                                /* backupContext */ ""), /* requestCode */ 0));
+                button ->
+                        button.startActivityForResult(
+                                HelpUtils.getHelpIntent(
+                                        context,
+                                        context.getString(R.string.help_url_battery_defender),
+                                        /* backupContext */ ""), /* requestCode */
+                                0));
         cardPreference.setSecondaryButtonVisible(true);
-        cardPreference.setSecondaryButtonContentDescription(context.getString(
-                R.string.battery_tip_limited_temporarily_sec_button_content_description));
+        cardPreference.setSecondaryButtonContentDescription(
+                context.getString(
+                        R.string.battery_tip_limited_temporarily_sec_button_content_description));
     }
 
     private void resumeCharging(Context context) {
@@ -119,13 +119,14 @@
         Log.i(TAG, "send resume charging broadcast intent=" + intent);
     }
 
-    public static final Creator CREATOR = new Creator() {
-        public BatteryTip createFromParcel(Parcel in) {
-            return new BatteryDefenderTip(in);
-        }
+    public static final Creator CREATOR =
+            new Creator() {
+                public BatteryTip createFromParcel(Parcel in) {
+                    return new BatteryDefenderTip(in);
+                }
 
-        public BatteryTip[] newArray(int size) {
-            return new BatteryDefenderTip[size];
-        }
-    };
+                public BatteryTip[] newArray(int size) {
+                    return new BatteryDefenderTip[size];
+                }
+            };
 }
diff --git a/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTip.java b/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTip.java
index fdafca6..1345032 100644
--- a/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTip.java
+++ b/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTip.java
@@ -35,32 +35,35 @@
 /**
  * Base model for a battery tip(e.g. suggest user to turn on battery saver)
  *
- * Each {@link BatteryTip} contains basic data(e.g. title, summary, icon) as well as the
+ * <p>Each {@link BatteryTip} contains basic data(e.g. title, summary, icon) as well as the
  * pre-defined action(e.g. turn on battery saver)
  */
 public abstract class BatteryTip implements Comparable<BatteryTip>, Parcelable {
+
     @Retention(RetentionPolicy.SOURCE)
-    @IntDef({StateType.NEW,
-            StateType.HANDLED,
-            StateType.INVISIBLE})
+    @IntDef({StateType.NEW, StateType.HANDLED, StateType.INVISIBLE})
     public @interface StateType {
+
         int NEW = 0;
         int HANDLED = 1;
         int INVISIBLE = 2;
     }
 
     @Retention(RetentionPolicy.SOURCE)
-    @IntDef({TipType.SUMMARY,
-            TipType.BATTERY_SAVER,
-            TipType.HIGH_DEVICE_USAGE,
-            TipType.SMART_BATTERY_MANAGER,
-            TipType.APP_RESTRICTION,
-            TipType.REDUCED_BATTERY,
-            TipType.LOW_BATTERY,
-            TipType.REMOVE_APP_RESTRICTION,
-            TipType.BATTERY_DEFENDER,
-            TipType.DOCK_DEFENDER,
-            TipType.INCOMPATIBLE_CHARGER})
+    @IntDef({
+        TipType.SUMMARY,
+        TipType.BATTERY_SAVER,
+        TipType.HIGH_DEVICE_USAGE,
+        TipType.SMART_BATTERY_MANAGER,
+        TipType.APP_RESTRICTION,
+        TipType.REDUCED_BATTERY,
+        TipType.LOW_BATTERY,
+        TipType.REMOVE_APP_RESTRICTION,
+        TipType.BATTERY_DEFENDER,
+        TipType.DOCK_DEFENDER,
+        TipType.INCOMPATIBLE_CHARGER,
+        TipType.BATTERY_WARNING
+    })
     public @interface TipType {
         int SMART_BATTERY_MANAGER = 0;
         int APP_RESTRICTION = 1;
@@ -73,10 +76,11 @@
         int BATTERY_DEFENDER = 8;
         int DOCK_DEFENDER = 9;
         int INCOMPATIBLE_CHARGER = 10;
+        int BATTERY_WARNING = 11;
     }
 
-    @VisibleForTesting
-    static final SparseIntArray TIP_ORDER;
+    @VisibleForTesting static final SparseIntArray TIP_ORDER;
+
     static {
         TIP_ORDER = new SparseIntArray();
         TIP_ORDER.append(TipType.BATTERY_SAVER, 0);
@@ -90,26 +94,26 @@
         TIP_ORDER.append(TipType.SMART_BATTERY_MANAGER, 8);
         TIP_ORDER.append(TipType.REDUCED_BATTERY, 9);
         TIP_ORDER.append(TipType.REMOVE_APP_RESTRICTION, 10);
+        TIP_ORDER.append(TipType.BATTERY_WARNING, 11);
     }
 
     private static final String KEY_PREFIX = "key_battery_tip";
 
-    protected int mType;
     protected int mState;
+    protected int mType;
     protected boolean mShowDialog;
-    /**
-     * Whether we need to update battery tip when configuration change
-     */
+
+    /** Whether we need to update battery tip when configuration change */
     protected boolean mNeedUpdate;
 
-    BatteryTip(Parcel in) {
+    public BatteryTip(Parcel in) {
         mType = in.readInt();
         mState = in.readInt();
         mShowDialog = in.readBoolean();
         mNeedUpdate = in.readBoolean();
     }
 
-    BatteryTip(int type, int state, boolean showDialog) {
+    public BatteryTip(int type, int state, boolean showDialog) {
         mType = type;
         mState = state;
         mShowDialog = showDialog;
@@ -146,15 +150,14 @@
 
     /**
      * Check whether data is still make sense. If not, try recover.
+     *
      * @param context used to do validate check
      */
     public void validateCheck(Context context) {
         // do nothing
     }
 
-    /**
-     * Log the battery tip
-     */
+    /** Log the battery tip */
     public abstract void log(Context context, MetricsFeatureProvider metricsFeatureProvider);
 
     public void updatePreference(Preference preference) {
@@ -203,7 +206,7 @@
         return "type=" + mType + " state=" + mState;
     }
 
-    CardPreference castToCardPreferenceSafely(Preference preference) {
+    public CardPreference castToCardPreferenceSafely(Preference preference) {
         return preference instanceof CardPreference ? (CardPreference) preference : null;
     }
 }
diff --git a/src/com/android/settings/fuelgauge/batterytip/tips/DockDefenderTip.java b/src/com/android/settings/fuelgauge/batterytip/tips/DockDefenderTip.java
index c8cb8f2..2458351 100644
--- a/src/com/android/settings/fuelgauge/batterytip/tips/DockDefenderTip.java
+++ b/src/com/android/settings/fuelgauge/batterytip/tips/DockDefenderTip.java
@@ -32,9 +32,7 @@
 import com.android.settingslib.HelpUtils;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
-/**
- * Tip to show dock defender status
- */
+/** Tip to show dock defender status */
 public class DockDefenderTip extends BatteryTip {
     private static final String TAG = "DockDefenderTip";
     private int mMode;
@@ -84,8 +82,9 @@
 
     @Override
     public int getIconId() {
-        return mMode == DockDefenderMode.ACTIVE ? R.drawable.ic_battery_status_protected_24dp :
-                R.drawable.ic_battery_dock_defender_untriggered_24dp;
+        return mMode == DockDefenderMode.ACTIVE
+                ? R.drawable.ic_battery_status_protected_24dp
+                : R.drawable.ic_battery_dock_defender_untriggered_24dp;
     }
 
     @Override
@@ -98,8 +97,7 @@
 
     @Override
     public void log(Context context, MetricsFeatureProvider metricsFeatureProvider) {
-        metricsFeatureProvider.action(context, SettingsEnums.ACTION_DOCK_DEFENDER_TIP,
-                mState);
+        metricsFeatureProvider.action(context, SettingsEnums.ACTION_DOCK_DEFENDER_TIP, mState);
     }
 
     @Override
@@ -119,15 +117,19 @@
             case DockDefenderMode.ACTIVE:
                 cardPreference.setPrimaryButtonText(
                         context.getString(R.string.battery_tip_charge_to_full_button));
-                cardPreference.setPrimaryButtonClickListener(unused -> {
-                    resumeCharging(context);
-                    mMode = DockDefenderMode.TEMPORARILY_BYPASSED;
-                    context.sendBroadcast(new Intent().setAction(
-                            BatteryUtils.BYPASS_DOCK_DEFENDER_ACTION).setPackage(
-                            context.getPackageName()).addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY
-                            | Intent.FLAG_RECEIVER_FOREGROUND));
-                    updatePreference(preference);
-                });
+                cardPreference.setPrimaryButtonClickListener(
+                        unused -> {
+                            resumeCharging(context);
+                            mMode = DockDefenderMode.TEMPORARILY_BYPASSED;
+                            context.sendBroadcast(
+                                    new Intent()
+                                            .setAction(BatteryUtils.BYPASS_DOCK_DEFENDER_ACTION)
+                                            .setPackage(context.getPackageName())
+                                            .addFlags(
+                                                    Intent.FLAG_RECEIVER_REGISTERED_ONLY
+                                                            | Intent.FLAG_RECEIVER_FOREGROUND));
+                            updatePreference(preference);
+                        });
                 cardPreference.setPrimaryButtonVisible(true);
                 break;
             case DockDefenderMode.TEMPORARILY_BYPASSED:
@@ -140,15 +142,17 @@
 
         cardPreference.setSecondaryButtonText(context.getString(R.string.learn_more));
         cardPreference.setSecondaryButtonClickListener(
-                button -> button.startActivityForResult(
-                        HelpUtils.getHelpIntent(
-                                context,
-                                context.getString(R.string.help_url_dock_defender),
-                                /* backupContext */ ""), /* requestCode */ 0));
+                button ->
+                        button.startActivityForResult(
+                                HelpUtils.getHelpIntent(
+                                        context,
+                                        context.getString(R.string.help_url_dock_defender),
+                                        /* backupContext */ ""), /* requestCode */
+                                0));
         cardPreference.setSecondaryButtonVisible(true);
-        cardPreference.setSecondaryButtonContentDescription(context.getString(
-                R.string.battery_tip_limited_temporarily_sec_button_content_description));
-
+        cardPreference.setSecondaryButtonContentDescription(
+                context.getString(
+                        R.string.battery_tip_limited_temporarily_sec_button_content_description));
     }
 
     private void resumeCharging(Context context) {
@@ -163,13 +167,14 @@
         Log.i(TAG, "send resume charging broadcast intent=" + intent);
     }
 
-    public static final Creator CREATOR = new Creator() {
-        public BatteryTip createFromParcel(Parcel in) {
-            return new DockDefenderTip(in);
-        }
+    public static final Creator CREATOR =
+            new Creator() {
+                public BatteryTip createFromParcel(Parcel in) {
+                    return new DockDefenderTip(in);
+                }
 
-        public BatteryTip[] newArray(int size) {
-            return new DockDefenderTip[size];
-        }
-    };
+                public BatteryTip[] newArray(int size) {
+                    return new DockDefenderTip[size];
+                }
+            };
 }
diff --git a/src/com/android/settings/fuelgauge/batterytip/tips/HighUsageTip.java b/src/com/android/settings/fuelgauge/batterytip/tips/HighUsageTip.java
index 47938fb..44e4f5c 100644
--- a/src/com/android/settings/fuelgauge/batterytip/tips/HighUsageTip.java
+++ b/src/com/android/settings/fuelgauge/batterytip/tips/HighUsageTip.java
@@ -29,17 +29,16 @@
 
 import java.util.List;
 
-/**
- * Tip to show general summary about battery life
- */
+/** Tip to show general summary about battery life */
 public class HighUsageTip extends BatteryTip {
 
     private final long mLastFullChargeTimeMs;
-    @VisibleForTesting
-    final List<AppInfo> mHighUsageAppList;
+    @VisibleForTesting final List<AppInfo> mHighUsageAppList;
 
     public HighUsageTip(long lastFullChargeTimeMs, List<AppInfo> appList) {
-        super(TipType.HIGH_DEVICE_USAGE, appList.isEmpty() ? StateType.INVISIBLE : StateType.NEW,
+        super(
+                TipType.HIGH_DEVICE_USAGE,
+                appList.isEmpty() ? StateType.INVISIBLE : StateType.NEW,
                 true /* showDialog */);
         mLastFullChargeTimeMs = lastFullChargeTimeMs;
         mHighUsageAppList = appList;
@@ -81,13 +80,11 @@
 
     @Override
     public void log(Context context, MetricsFeatureProvider metricsFeatureProvider) {
-        metricsFeatureProvider.action(context, SettingsEnums.ACTION_HIGH_USAGE_TIP,
-                mState);
+        metricsFeatureProvider.action(context, SettingsEnums.ACTION_HIGH_USAGE_TIP, mState);
         for (int i = 0, size = mHighUsageAppList.size(); i < size; i++) {
             final AppInfo appInfo = mHighUsageAppList.get(i);
-            metricsFeatureProvider.action(context,
-                    SettingsEnums.ACTION_HIGH_USAGE_TIP_LIST,
-                    appInfo.packageName);
+            metricsFeatureProvider.action(
+                    context, SettingsEnums.ACTION_HIGH_USAGE_TIP_LIST, appInfo.packageName);
         }
     }
 
@@ -112,14 +109,14 @@
         return stringBuilder.toString();
     }
 
-    public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
-        public BatteryTip createFromParcel(Parcel in) {
-            return new HighUsageTip(in);
-        }
+    public static final Parcelable.Creator CREATOR =
+            new Parcelable.Creator() {
+                public BatteryTip createFromParcel(Parcel in) {
+                    return new HighUsageTip(in);
+                }
 
-        public BatteryTip[] newArray(int size) {
-            return new HighUsageTip[size];
-        }
-    };
-
+                public BatteryTip[] newArray(int size) {
+                    return new HighUsageTip[size];
+                }
+            };
 }
diff --git a/src/com/android/settings/fuelgauge/batterytip/tips/IncompatibleChargerTip.java b/src/com/android/settings/fuelgauge/batterytip/tips/IncompatibleChargerTip.java
index 48cfb7a..ca42141 100644
--- a/src/com/android/settings/fuelgauge/batterytip/tips/IncompatibleChargerTip.java
+++ b/src/com/android/settings/fuelgauge/batterytip/tips/IncompatibleChargerTip.java
@@ -62,8 +62,8 @@
 
     @Override
     public void log(Context context, MetricsFeatureProvider metricsFeatureProvider) {
-       metricsFeatureProvider.action(context, SettingsEnums.ACTION_INCOMPATIBLE_CHARGING_TIP,
-                mState);
+        metricsFeatureProvider.action(
+                context, SettingsEnums.ACTION_INCOMPATIBLE_CHARGING_TIP, mState);
     }
 
     @Override
@@ -79,23 +79,26 @@
         cardPreference.setSelectable(false);
         cardPreference.setPrimaryButtonText(context.getString(R.string.learn_more));
         cardPreference.setPrimaryButtonClickListener(
-                button -> button.startActivityForResult(
-                        HelpUtils.getHelpIntent(
-                                context,
-                                context.getString(R.string.help_url_incompatible_charging),
-                                /* backupContext */ ""), /* requestCode */ 0));
+                button ->
+                        button.startActivityForResult(
+                                HelpUtils.getHelpIntent(
+                                        context,
+                                        context.getString(R.string.help_url_incompatible_charging),
+                                        /* backupContext */ ""), /* requestCode */
+                                0));
         cardPreference.setPrimaryButtonVisible(true);
-        cardPreference.setPrimaryButtonContentDescription(context.getString(
-                R.string.battery_tip_incompatible_charging_content_description));
+        cardPreference.setPrimaryButtonContentDescription(
+                context.getString(R.string.battery_tip_incompatible_charging_content_description));
     }
 
-    public static final Creator CREATOR = new Creator() {
-        public BatteryTip createFromParcel(Parcel in) {
-            return new IncompatibleChargerTip(in);
-        }
+    public static final Creator CREATOR =
+            new Creator() {
+                public BatteryTip createFromParcel(Parcel in) {
+                    return new IncompatibleChargerTip(in);
+                }
 
-        public BatteryTip[] newArray(int size) {
-            return new IncompatibleChargerTip[size];
-        }
-    };
+                public BatteryTip[] newArray(int size) {
+                    return new IncompatibleChargerTip[size];
+                }
+            };
 }
diff --git a/src/com/android/settings/fuelgauge/batterytip/tips/LowBatteryTip.java b/src/com/android/settings/fuelgauge/batterytip/tips/LowBatteryTip.java
index aeff7e9..3073d12 100644
--- a/src/com/android/settings/fuelgauge/batterytip/tips/LowBatteryTip.java
+++ b/src/com/android/settings/fuelgauge/batterytip/tips/LowBatteryTip.java
@@ -62,28 +62,27 @@
 
     @Override
     public void log(Context context, MetricsFeatureProvider metricsFeatureProvider) {
-        metricsFeatureProvider.action(context, SettingsEnums.ACTION_LOW_BATTERY_TIP,
-                mState);
+        metricsFeatureProvider.action(context, SettingsEnums.ACTION_LOW_BATTERY_TIP, mState);
     }
 
     @Override
     public void updateState(BatteryTip tip) {
         final LowBatteryTip lowBatteryTip = (LowBatteryTip) tip;
-        mState = lowBatteryTip.mPowerSaveModeOn
-                ? StateType.INVISIBLE : lowBatteryTip.getState();
+        mState = lowBatteryTip.mPowerSaveModeOn ? StateType.INVISIBLE : lowBatteryTip.getState();
     }
 
     boolean isPowerSaveModeOn() {
         return mPowerSaveModeOn;
     }
 
-    public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
-        public BatteryTip createFromParcel(Parcel in) {
-            return new LowBatteryTip(in);
-        }
+    public static final Parcelable.Creator CREATOR =
+            new Parcelable.Creator() {
+                public BatteryTip createFromParcel(Parcel in) {
+                    return new LowBatteryTip(in);
+                }
 
-        public BatteryTip[] newArray(int size) {
-            return new LowBatteryTip[size];
-        }
-    };
+                public BatteryTip[] newArray(int size) {
+                    return new LowBatteryTip[size];
+                }
+            };
 }
diff --git a/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTip.java b/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTip.java
index 55ac3fa..2b74dd2 100644
--- a/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTip.java
+++ b/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTip.java
@@ -18,9 +18,9 @@
 
 import android.app.settings.SettingsEnums;
 import android.content.Context;
-import android.content.res.Resources;
 import android.icu.text.ListFormatter;
 import android.os.Parcel;
+import android.util.ArrayMap;
 
 import androidx.annotation.VisibleForTesting;
 
@@ -31,13 +31,10 @@
 import com.android.settingslib.utils.StringUtil;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-/**
- * Tip to suggest user to restrict some bad apps
- */
+/** Tip to suggest user to restrict some bad apps */
 public class RestrictAppTip extends BatteryTip {
     private List<AppInfo> mRestrictAppList;
 
@@ -63,28 +60,33 @@
     @Override
     public CharSequence getTitle(Context context) {
         final int num = mRestrictAppList.size();
-        final CharSequence appLabel = num > 0 ? Utils.getApplicationLabel(context,
-                mRestrictAppList.get(0).packageName) : "";
+        final CharSequence appLabel =
+                num > 0
+                        ? Utils.getApplicationLabel(context, mRestrictAppList.get(0).packageName)
+                        : "";
 
-        Map<String, Object> arguments = new HashMap<>();
+        Map<String, Object> arguments = new ArrayMap<>();
         arguments.put("count", num);
         arguments.put("label", appLabel);
         return mState == StateType.HANDLED
-                ? StringUtil.getIcuPluralsString(context, arguments,
-                R.string.battery_tip_restrict_handled_title)
-                : StringUtil.getIcuPluralsString(context, arguments,
-                R.string.battery_tip_restrict_title);
+                ? StringUtil.getIcuPluralsString(
+                        context, arguments, R.string.battery_tip_restrict_handled_title)
+                : StringUtil.getIcuPluralsString(
+                        context, arguments, R.string.battery_tip_restrict_title);
     }
 
     @Override
     public CharSequence getSummary(Context context) {
         final int num = mRestrictAppList.size();
-        final CharSequence appLabel = num > 0 ? Utils.getApplicationLabel(context,
-                mRestrictAppList.get(0).packageName) : "";
-        final int resId = mState == StateType.HANDLED
-                ? R.string.battery_tip_restrict_handled_summary
-                : R.string.battery_tip_restrict_summary;
-        Map<String, Object> arguments = new HashMap<>();
+        final CharSequence appLabel =
+                num > 0
+                        ? Utils.getApplicationLabel(context, mRestrictAppList.get(0).packageName)
+                        : "";
+        final int resId =
+                mState == StateType.HANDLED
+                        ? R.string.battery_tip_restrict_handled_summary
+                        : R.string.battery_tip_restrict_summary;
+        Map<String, Object> arguments = new ArrayMap<>();
         arguments.put("count", num);
         arguments.put("label", appLabel);
         return StringUtil.getIcuPluralsString(context, arguments, resId);
@@ -128,13 +130,13 @@
 
     @Override
     public void log(Context context, MetricsFeatureProvider metricsFeatureProvider) {
-        metricsFeatureProvider.action(context, SettingsEnums.ACTION_APP_RESTRICTION_TIP,
-                mState);
+        metricsFeatureProvider.action(context, SettingsEnums.ACTION_APP_RESTRICTION_TIP, mState);
         if (mState == StateType.NEW) {
             for (int i = 0, size = mRestrictAppList.size(); i < size; i++) {
                 final AppInfo appInfo = mRestrictAppList.get(i);
                 for (Integer anomalyType : appInfo.anomalyTypes) {
-                    metricsFeatureProvider.action(SettingsEnums.PAGE_UNKNOWN,
+                    metricsFeatureProvider.action(
+                            SettingsEnums.PAGE_UNKNOWN,
                             SettingsEnums.ACTION_APP_RESTRICTION_TIP_LIST,
                             SettingsEnums.PAGE_UNKNOWN,
                             appInfo.packageName,
@@ -148,14 +150,11 @@
         return mRestrictAppList;
     }
 
-    /**
-     * Construct the app list string(e.g. app1, app2, and app3)
-     */
+    /** Construct the app list string(e.g. app1, app2, and app3) */
     public CharSequence getRestrictAppsString(Context context) {
         final List<CharSequence> appLabels = new ArrayList<>();
         for (int i = 0, size = mRestrictAppList.size(); i < size; i++) {
-            appLabels.add(Utils.getApplicationLabel(context,
-                    mRestrictAppList.get(i).packageName));
+            appLabels.add(Utils.getApplicationLabel(context, mRestrictAppList.get(i).packageName));
         }
 
         return ListFormatter.getInstance().format(appLabels);
@@ -180,13 +179,14 @@
         dest.writeTypedList(mRestrictAppList);
     }
 
-    public static final Creator CREATOR = new Creator() {
-        public BatteryTip createFromParcel(Parcel in) {
-            return new RestrictAppTip(in);
-        }
+    public static final Creator CREATOR =
+            new Creator() {
+                public BatteryTip createFromParcel(Parcel in) {
+                    return new RestrictAppTip(in);
+                }
 
-        public BatteryTip[] newArray(int size) {
-            return new RestrictAppTip[size];
-        }
-    };
+                public BatteryTip[] newArray(int size) {
+                    return new RestrictAppTip[size];
+                }
+            };
 }
diff --git a/src/com/android/settings/fuelgauge/batterytip/tips/SmartBatteryTip.java b/src/com/android/settings/fuelgauge/batterytip/tips/SmartBatteryTip.java
index 0593e88..c99653b 100644
--- a/src/com/android/settings/fuelgauge/batterytip/tips/SmartBatteryTip.java
+++ b/src/com/android/settings/fuelgauge/batterytip/tips/SmartBatteryTip.java
@@ -23,9 +23,7 @@
 import com.android.settings.R;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
-/**
- * Tip to suggest turn on smart battery if it is not on
- */
+/** Tip to suggest turn on smart battery if it is not on */
 public class SmartBatteryTip extends BatteryTip {
 
     public SmartBatteryTip(@StateType int state) {
@@ -58,18 +56,17 @@
 
     @Override
     public void log(Context context, MetricsFeatureProvider metricsFeatureProvider) {
-        metricsFeatureProvider.action(context, SettingsEnums.ACTION_SMART_BATTERY_TIP,
-                mState);
+        metricsFeatureProvider.action(context, SettingsEnums.ACTION_SMART_BATTERY_TIP, mState);
     }
 
-    public static final Creator CREATOR = new Creator() {
-        public BatteryTip createFromParcel(Parcel in) {
-            return new SmartBatteryTip(in);
-        }
+    public static final Creator CREATOR =
+            new Creator() {
+                public BatteryTip createFromParcel(Parcel in) {
+                    return new SmartBatteryTip(in);
+                }
 
-        public BatteryTip[] newArray(int size) {
-            return new SmartBatteryTip[size];
-        }
-    };
-
+                public BatteryTip[] newArray(int size) {
+                    return new SmartBatteryTip[size];
+                }
+            };
 }
diff --git a/src/com/android/settings/fuelgauge/batterytip/tips/UnrestrictAppTip.java b/src/com/android/settings/fuelgauge/batterytip/tips/UnrestrictAppTip.java
index 3c560f8..7b5caeb 100644
--- a/src/com/android/settings/fuelgauge/batterytip/tips/UnrestrictAppTip.java
+++ b/src/com/android/settings/fuelgauge/batterytip/tips/UnrestrictAppTip.java
@@ -84,13 +84,14 @@
         dest.writeParcelable(mAppInfo, flags);
     }
 
-    public static final Creator CREATOR = new Creator() {
-        public BatteryTip createFromParcel(Parcel in) {
-            return new UnrestrictAppTip(in);
-        }
+    public static final Creator CREATOR =
+            new Creator() {
+                public BatteryTip createFromParcel(Parcel in) {
+                    return new UnrestrictAppTip(in);
+                }
 
-        public BatteryTip[] newArray(int size) {
-            return new UnrestrictAppTip[size];
-        }
-    };
+                public BatteryTip[] newArray(int size) {
+                    return new UnrestrictAppTip[size];
+                }
+            };
 }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/AnomalyEventWrapper.java b/src/com/android/settings/fuelgauge/batteryusage/AnomalyEventWrapper.java
index 5e30d7a..8658fba 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/AnomalyEventWrapper.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/AnomalyEventWrapper.java
@@ -48,7 +48,8 @@
         mResourceIndex = mPowerAnomalyEvent.getKey().getNumber();
     }
 
-    private <T> T getInfo(Function<WarningBannerInfo, T> warningBannerInfoSupplier,
+    private <T> T getInfo(
+            Function<WarningBannerInfo, T> warningBannerInfoSupplier,
             Function<WarningItemInfo, T> warningItemInfoSupplier) {
         if (warningBannerInfoSupplier != null && mPowerAnomalyEvent.hasWarningBannerInfo()) {
             return warningBannerInfoSupplier.apply(mPowerAnomalyEvent.getWarningBannerInfo());
@@ -60,15 +61,19 @@
 
     private int getResourceId(int resourceId, int resourceIndex, String defType) {
         final String key = getStringFromArrayResource(resourceId, resourceIndex);
-        return TextUtils.isEmpty(key) ? 0
+        return TextUtils.isEmpty(key)
+                ? 0
                 : mContext.getResources().getIdentifier(key, defType, mContext.getPackageName());
     }
 
-    private String getString(Function<WarningBannerInfo, String> warningBannerInfoSupplier,
+    private String getString(
+            Function<WarningBannerInfo, String> warningBannerInfoSupplier,
             Function<WarningItemInfo, String> warningItemInfoSupplier,
-            int resourceId, int resourceIndex) {
+            int resourceId,
+            int resourceIndex) {
         final String string = getInfo(warningBannerInfoSupplier, warningItemInfoSupplier);
-        return (!TextUtils.isEmpty(string) || resourceId <= 0) ? string
+        return (!TextUtils.isEmpty(string) || resourceId <= 0)
+                ? string
                 : getStringFromArrayResource(resourceId, resourceIndex);
     }
 
@@ -78,7 +83,8 @@
         }
         final String[] stringArray = mContext.getResources().getStringArray(resourceId);
         return (resourceIndex >= 0 && resourceIndex < stringArray.length)
-                ? stringArray[resourceIndex] : null;
+                ? stringArray[resourceIndex]
+                : null;
     }
 
     void setRelatedBatteryDiffEntry(BatteryDiffEntry batteryDiffEntry) {
@@ -98,13 +104,13 @@
     }
 
     String getTitleString() {
-        final String titleStringFromProto = getInfo(WarningBannerInfo::getTitleString,
-                WarningItemInfo::getTitleString);
+        final String titleStringFromProto =
+                getInfo(WarningBannerInfo::getTitleString, WarningItemInfo::getTitleString);
         if (!TextUtils.isEmpty(titleStringFromProto)) {
             return titleStringFromProto;
         }
-        final int titleFormatResId = getResourceId(R.array.power_anomaly_title_ids,
-                mResourceIndex, "string");
+        final int titleFormatResId =
+                getResourceId(R.array.power_anomaly_title_ids, mResourceIndex, "string");
         if (mPowerAnomalyEvent.hasWarningBannerInfo()) {
             return mContext.getString(titleFormatResId);
         } else if (mPowerAnomalyEvent.hasWarningItemInfo() && mRelatedBatteryDiffEntry != null) {
@@ -115,20 +121,24 @@
     }
 
     String getMainBtnString() {
-        return getString(WarningBannerInfo::getMainButtonString,
+        return getString(
+                WarningBannerInfo::getMainButtonString,
                 WarningItemInfo::getMainButtonString,
-                R.array.power_anomaly_main_btn_strings, mResourceIndex);
+                R.array.power_anomaly_main_btn_strings,
+                mResourceIndex);
     }
 
     String getDismissBtnString() {
-        return getString(WarningBannerInfo::getCancelButtonString,
+        return getString(
+                WarningBannerInfo::getCancelButtonString,
                 WarningItemInfo::getCancelButtonString,
-                R.array.power_anomaly_dismiss_btn_strings, mResourceIndex);
+                R.array.power_anomaly_dismiss_btn_strings,
+                mResourceIndex);
     }
 
     String getAnomalyHintString() {
-        final String anomalyHintStringFromProto = getInfo(null,
-                WarningItemInfo::getWarningInfoString);
+        final String anomalyHintStringFromProto =
+                getInfo(null, WarningItemInfo::getWarningInfoString);
         return TextUtils.isEmpty(anomalyHintStringFromProto)
                 ? getStringFromArrayResource(R.array.power_anomaly_hint_messages, mResourceIndex)
                 : anomalyHintStringFromProto;
@@ -148,8 +158,9 @@
 
     String getAnomalyEntryKey() {
         return mPowerAnomalyEvent.hasWarningItemInfo()
-                && mPowerAnomalyEvent.getWarningItemInfo().hasItemKey()
-                ? mPowerAnomalyEvent.getWarningItemInfo().getItemKey() : null;
+                        && mPowerAnomalyEvent.getWarningItemInfo().hasItemKey()
+                ? mPowerAnomalyEvent.getWarningItemInfo().getItemKey()
+                : null;
     }
 
     boolean hasSubSettingLauncher() {
@@ -163,23 +174,24 @@
         if (mSubSettingLauncher != null) {
             return mSubSettingLauncher;
         }
-        final String destinationClassName = getInfo(
-                WarningBannerInfo::getMainButtonDestination, null);
+        final String destinationClassName =
+                getInfo(WarningBannerInfo::getMainButtonDestination, null);
         if (!TextUtils.isEmpty(destinationClassName)) {
-            final Integer sourceMetricsCategory = getInfo(
-                    WarningBannerInfo::getMainButtonSourceMetricsCategory, null);
-            final String preferenceHighlightKey = getInfo(
-                    WarningBannerInfo::getMainButtonSourceHighlightKey, null);
+            final Integer sourceMetricsCategory =
+                    getInfo(WarningBannerInfo::getMainButtonSourceMetricsCategory, null);
+            final String preferenceHighlightKey =
+                    getInfo(WarningBannerInfo::getMainButtonSourceHighlightKey, null);
             Bundle arguments = Bundle.EMPTY;
             if (!TextUtils.isEmpty(preferenceHighlightKey)) {
                 arguments = new Bundle(1);
-                arguments.putString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY,
-                        preferenceHighlightKey);
+                arguments.putString(
+                        SettingsActivity.EXTRA_FRAGMENT_ARG_KEY, preferenceHighlightKey);
             }
-            mSubSettingLauncher = new SubSettingLauncher(mContext)
-                    .setDestination(destinationClassName)
-                    .setSourceMetricsCategory(sourceMetricsCategory)
-                    .setArguments(arguments);
+            mSubSettingLauncher =
+                    new SubSettingLauncher(mContext)
+                            .setDestination(destinationClassName)
+                            .setSourceMetricsCategory(sourceMetricsCategory)
+                            .setArguments(arguments);
         }
         return mSubSettingLauncher;
     }
@@ -199,13 +211,13 @@
             return null;
         }
         final WarningItemInfo warningItemInfo = mPowerAnomalyEvent.getWarningItemInfo();
-        final Long startTimestamp = warningItemInfo.hasStartTimestamp()
-                ? warningItemInfo.getStartTimestamp() : null;
-        final Long endTimestamp = warningItemInfo.hasEndTimestamp()
-                ? warningItemInfo.getEndTimestamp() : null;
+        final Long startTimestamp =
+                warningItemInfo.hasStartTimestamp() ? warningItemInfo.getStartTimestamp() : null;
+        final Long endTimestamp =
+                warningItemInfo.hasEndTimestamp() ? warningItemInfo.getEndTimestamp() : null;
         if (startTimestamp != null && endTimestamp != null) {
-            mHighlightSlotPair = batteryLevelData
-                    .getIndexByTimestamps(startTimestamp, endTimestamp);
+            mHighlightSlotPair =
+                    batteryLevelData.getIndexByTimestamps(startTimestamp, endTimestamp);
             if (mHighlightSlotPair.first == BatteryChartViewModel.SELECTED_INDEX_INVALID
                     || mHighlightSlotPair.second == BatteryChartViewModel.SELECTED_INDEX_INVALID) {
                 // Drop invalid mHighlightSlotPair index
@@ -222,7 +234,7 @@
         }
         preference.setTitle(titleString);
         preference.setIconResourceId(getIconResId());
-        preference.setMainButtonStrokeColorResourceId(getColorResId());
+        preference.setButtonColorResourceId(getColorResId());
         preference.setMainButtonLabel(getMainBtnString());
         preference.setDismissButtonLabel(getDismissBtnString());
         return true;
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java
index bb6593c..8ae8edd 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java
@@ -55,8 +55,12 @@
 
 /** Controls the update for chart graph and the list items. */
 public class BatteryChartPreferenceController extends AbstractPreferenceController
-        implements PreferenceControllerMixin, LifecycleObserver, OnCreate, OnDestroy,
-        OnSaveInstanceState, OnResume {
+        implements PreferenceControllerMixin,
+                LifecycleObserver,
+                OnCreate,
+                OnDestroy,
+                OnSaveInstanceState,
+                OnResume {
     private static final String TAG = "BatteryChartPreferenceController";
     private static final String PREFERENCE_KEY = "battery_chart";
 
@@ -73,22 +77,14 @@
         void onSelectedIndexUpdated();
     }
 
-    @VisibleForTesting
-    Context mPrefContext;
-    @VisibleForTesting
-    TextView mChartSummaryTextView;
-    @VisibleForTesting
-    BatteryChartView mDailyChartView;
-    @VisibleForTesting
-    BatteryChartView mHourlyChartView;
-    @VisibleForTesting
-    int mDailyChartIndex = BatteryChartViewModel.SELECTED_INDEX_ALL;
-    @VisibleForTesting
-    int mHourlyChartIndex = BatteryChartViewModel.SELECTED_INDEX_ALL;
-    @VisibleForTesting
-    int mDailyHighlightSlotIndex = BatteryChartViewModel.SELECTED_INDEX_INVALID;
-    @VisibleForTesting
-    int mHourlyHighlightSlotIndex = BatteryChartViewModel.SELECTED_INDEX_INVALID;
+    @VisibleForTesting Context mPrefContext;
+    @VisibleForTesting TextView mChartSummaryTextView;
+    @VisibleForTesting BatteryChartView mDailyChartView;
+    @VisibleForTesting BatteryChartView mHourlyChartView;
+    @VisibleForTesting int mDailyChartIndex = BatteryChartViewModel.SELECTED_INDEX_ALL;
+    @VisibleForTesting int mHourlyChartIndex = BatteryChartViewModel.SELECTED_INDEX_ALL;
+    @VisibleForTesting int mDailyHighlightSlotIndex = BatteryChartViewModel.SELECTED_INDEX_INVALID;
+    @VisibleForTesting int mHourlyHighlightSlotIndex = BatteryChartViewModel.SELECTED_INDEX_INVALID;
 
     private boolean mIs24HourFormat;
     private View mBatteryChartViewGroup;
@@ -100,13 +96,14 @@
     private final MetricsFeatureProvider mMetricsFeatureProvider;
     private final Handler mHandler = new Handler(Looper.getMainLooper());
     private final AnimatorListenerAdapter mHourlyChartFadeInAdapter =
-            createHourlyChartAnimatorListenerAdapter(/*visible=*/ true);
+            createHourlyChartAnimatorListenerAdapter(/* visible= */ true);
     private final AnimatorListenerAdapter mHourlyChartFadeOutAdapter =
-            createHourlyChartAnimatorListenerAdapter(/*visible=*/ false);
+            createHourlyChartAnimatorListenerAdapter(/* visible= */ false);
 
     @VisibleForTesting
     final DailyChartLabelTextGenerator mDailyChartLabelTextGenerator =
             new DailyChartLabelTextGenerator();
+
     @VisibleForTesting
     final HourlyChartLabelTextGenerator mHourlyChartLabelTextGenerator =
             new HourlyChartLabelTextGenerator();
@@ -116,8 +113,7 @@
         super(context);
         mActivity = activity;
         mIs24HourFormat = DateFormat.is24HourFormat(context);
-        mMetricsFeatureProvider =
-                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         if (lifecycle != null) {
             lifecycle.addObserver(this);
         }
@@ -128,12 +124,13 @@
         if (savedInstanceState == null) {
             return;
         }
-        mDailyChartIndex =
-                savedInstanceState.getInt(KEY_DAILY_CHART_INDEX, mDailyChartIndex);
-        mHourlyChartIndex =
-                savedInstanceState.getInt(KEY_HOURLY_CHART_INDEX, mHourlyChartIndex);
-        Log.d(TAG, String.format("onCreate() dailyIndex=%d hourlyIndex=%d",
-                mDailyChartIndex, mHourlyChartIndex));
+        mDailyChartIndex = savedInstanceState.getInt(KEY_DAILY_CHART_INDEX, mDailyChartIndex);
+        mHourlyChartIndex = savedInstanceState.getInt(KEY_HOURLY_CHART_INDEX, mHourlyChartIndex);
+        Log.d(
+                TAG,
+                String.format(
+                        "onCreate() dailyIndex=%d hourlyIndex=%d",
+                        mDailyChartIndex, mHourlyChartIndex));
     }
 
     @Override
@@ -149,8 +146,11 @@
         }
         savedInstance.putInt(KEY_DAILY_CHART_INDEX, mDailyChartIndex);
         savedInstance.putInt(KEY_HOURLY_CHART_INDEX, mHourlyChartIndex);
-        Log.d(TAG, String.format("onSaveInstanceState() dailyIndex=%d hourlyIndex=%d",
-                mDailyChartIndex, mHourlyChartIndex));
+        Log.d(
+                TAG,
+                String.format(
+                        "onSaveInstanceState() dailyIndex=%d hourlyIndex=%d",
+                        mDailyChartIndex, mHourlyChartIndex));
     }
 
     @Override
@@ -158,7 +158,7 @@
         if (mActivity == null || mActivity.isChangingConfigurations()) {
             BatteryDiffEntry.clearCache();
         }
-        mHandler.removeCallbacksAndMessages(/*token=*/ null);
+        mHandler.removeCallbacksAndMessages(/* token= */ null);
     }
 
     @Override
@@ -204,19 +204,22 @@
             refreshUi();
             return;
         }
-        mDailyViewModel = new BatteryChartViewModel(
-                batteryLevelData.getDailyBatteryLevels().getLevels(),
-                batteryLevelData.getDailyBatteryLevels().getTimestamps(),
-                BatteryChartViewModel.AxisLabelPosition.CENTER_OF_TRAPEZOIDS,
-                mDailyChartLabelTextGenerator);
+        mDailyViewModel =
+                new BatteryChartViewModel(
+                        batteryLevelData.getDailyBatteryLevels().getLevels(),
+                        batteryLevelData.getDailyBatteryLevels().getTimestamps(),
+                        BatteryChartViewModel.AxisLabelPosition.CENTER_OF_TRAPEZOIDS,
+                        mDailyChartLabelTextGenerator);
         mHourlyViewModels = new ArrayList<>();
         for (BatteryLevelData.PeriodBatteryLevelData hourlyBatteryLevelsPerDay :
                 batteryLevelData.getHourlyBatteryLevelsPerDay()) {
-            mHourlyViewModels.add(new BatteryChartViewModel(
-                    hourlyBatteryLevelsPerDay.getLevels(),
-                    hourlyBatteryLevelsPerDay.getTimestamps(),
-                    BatteryChartViewModel.AxisLabelPosition.BETWEEN_TRAPEZOIDS,
-                    mHourlyChartLabelTextGenerator.updateSpecialCaseContext(batteryLevelData)));
+            mHourlyViewModels.add(
+                    new BatteryChartViewModel(
+                            hourlyBatteryLevelsPerDay.getLevels(),
+                            hourlyBatteryLevelsPerDay.getTimestamps(),
+                            BatteryChartViewModel.AxisLabelPosition.BETWEEN_TRAPEZOIDS,
+                            mHourlyChartLabelTextGenerator.updateSpecialCaseContext(
+                                    batteryLevelData)));
         }
         refreshUi();
     }
@@ -248,17 +251,21 @@
         }
         mDailyChartIndex = mDailyHighlightSlotIndex;
         mHourlyChartIndex = mHourlyHighlightSlotIndex;
-        Log.d(TAG, String.format("onDailyChartSelect:%d, onHourlyChartSelect:%d",
-                mDailyChartIndex, mHourlyChartIndex));
+        Log.d(
+                TAG,
+                String.format(
+                        "onDailyChartSelect:%d, onHourlyChartSelect:%d",
+                        mDailyChartIndex, mHourlyChartIndex));
         refreshUi();
-        mHandler.post(() -> mDailyChartView.announceForAccessibility(
-                getAccessibilityAnnounceMessage()));
+        mHandler.post(
+                () -> mDailyChartView.announceForAccessibility(getAccessibilityAnnounceMessage()));
         if (mOnSelectedIndexUpdatedListener != null) {
             mOnSelectedIndexUpdatedListener.onSelectedIndexUpdated();
         }
     }
 
-    void setBatteryChartView(@NonNull final BatteryChartView dailyChartView,
+    void setBatteryChartView(
+            @NonNull final BatteryChartView dailyChartView,
             @NonNull final BatteryChartView hourlyChartView) {
         final View parentView = (View) dailyChartView.getParent();
         if (parentView != null && parentView.getId() == R.id.battery_chart_group) {
@@ -270,58 +277,67 @@
         }
         if (mBatteryChartViewGroup != null) {
             final View grandparentView = (View) mBatteryChartViewGroup.getParent();
-            mChartSummaryTextView = grandparentView != null
-                    ? grandparentView.findViewById(R.id.chart_summary) : null;
+            mChartSummaryTextView =
+                    grandparentView != null
+                            ? grandparentView.findViewById(R.id.chart_summary)
+                            : null;
         }
     }
 
-    private void setBatteryChartViewInner(@NonNull final BatteryChartView dailyChartView,
+    private void setBatteryChartViewInner(
+            @NonNull final BatteryChartView dailyChartView,
             @NonNull final BatteryChartView hourlyChartView) {
         mDailyChartView = dailyChartView;
-        mDailyChartView.setOnSelectListener(trapezoidIndex -> {
-            if (mDailyChartIndex == trapezoidIndex) {
-                return;
-            }
-            Log.d(TAG, "onDailyChartSelect:" + trapezoidIndex);
-            mDailyChartIndex = trapezoidIndex;
-            mHourlyChartIndex = BatteryChartViewModel.SELECTED_INDEX_ALL;
-            refreshUi();
-            mHandler.post(() -> mDailyChartView.announceForAccessibility(
-                    getAccessibilityAnnounceMessage()));
-            mMetricsFeatureProvider.action(
-                    mPrefContext,
-                    trapezoidIndex == BatteryChartViewModel.SELECTED_INDEX_ALL
-                            ? SettingsEnums.ACTION_BATTERY_USAGE_DAILY_SHOW_ALL
-                            : SettingsEnums.ACTION_BATTERY_USAGE_DAILY_TIME_SLOT,
-                    mDailyChartIndex);
-            if (mOnSelectedIndexUpdatedListener != null) {
-                mOnSelectedIndexUpdatedListener.onSelectedIndexUpdated();
-            }
-        });
+        mDailyChartView.setOnSelectListener(
+                trapezoidIndex -> {
+                    if (mDailyChartIndex == trapezoidIndex) {
+                        return;
+                    }
+                    Log.d(TAG, "onDailyChartSelect:" + trapezoidIndex);
+                    mDailyChartIndex = trapezoidIndex;
+                    mHourlyChartIndex = BatteryChartViewModel.SELECTED_INDEX_ALL;
+                    refreshUi();
+                    mHandler.post(
+                            () ->
+                                    mDailyChartView.announceForAccessibility(
+                                            getAccessibilityAnnounceMessage()));
+                    mMetricsFeatureProvider.action(
+                            mPrefContext,
+                            trapezoidIndex == BatteryChartViewModel.SELECTED_INDEX_ALL
+                                    ? SettingsEnums.ACTION_BATTERY_USAGE_DAILY_SHOW_ALL
+                                    : SettingsEnums.ACTION_BATTERY_USAGE_DAILY_TIME_SLOT,
+                            mDailyChartIndex);
+                    if (mOnSelectedIndexUpdatedListener != null) {
+                        mOnSelectedIndexUpdatedListener.onSelectedIndexUpdated();
+                    }
+                });
         mHourlyChartView = hourlyChartView;
-        mHourlyChartView.setOnSelectListener(trapezoidIndex -> {
-            if (mDailyChartIndex == BatteryChartViewModel.SELECTED_INDEX_ALL) {
-                // This will happen when a daily slot and an hour slot are clicked together.
-                return;
-            }
-            if (mHourlyChartIndex == trapezoidIndex) {
-                return;
-            }
-            Log.d(TAG, "onHourlyChartSelect:" + trapezoidIndex);
-            mHourlyChartIndex = trapezoidIndex;
-            refreshUi();
-            mHandler.post(() -> mHourlyChartView.announceForAccessibility(
-                    getAccessibilityAnnounceMessage()));
-            mMetricsFeatureProvider.action(
-                    mPrefContext,
-                    trapezoidIndex == BatteryChartViewModel.SELECTED_INDEX_ALL
-                            ? SettingsEnums.ACTION_BATTERY_USAGE_SHOW_ALL
-                            : SettingsEnums.ACTION_BATTERY_USAGE_TIME_SLOT,
-                    mHourlyChartIndex);
-            if (mOnSelectedIndexUpdatedListener != null) {
-                mOnSelectedIndexUpdatedListener.onSelectedIndexUpdated();
-            }
-        });
+        mHourlyChartView.setOnSelectListener(
+                trapezoidIndex -> {
+                    if (mDailyChartIndex == BatteryChartViewModel.SELECTED_INDEX_ALL) {
+                        // This will happen when a daily slot and an hour slot are clicked together.
+                        return;
+                    }
+                    if (mHourlyChartIndex == trapezoidIndex) {
+                        return;
+                    }
+                    Log.d(TAG, "onHourlyChartSelect:" + trapezoidIndex);
+                    mHourlyChartIndex = trapezoidIndex;
+                    refreshUi();
+                    mHandler.post(
+                            () ->
+                                    mHourlyChartView.announceForAccessibility(
+                                            getAccessibilityAnnounceMessage()));
+                    mMetricsFeatureProvider.action(
+                            mPrefContext,
+                            trapezoidIndex == BatteryChartViewModel.SELECTED_INDEX_ALL
+                                    ? SettingsEnums.ACTION_BATTERY_USAGE_SHOW_ALL
+                                    : SettingsEnums.ACTION_BATTERY_USAGE_TIME_SLOT,
+                            mHourlyChartIndex);
+                    if (mOnSelectedIndexUpdatedListener != null) {
+                        mOnSelectedIndexUpdatedListener.onSelectedIndexUpdated();
+                    }
+                });
         refreshUi();
     }
 
@@ -371,18 +387,18 @@
 
         if (mDailyChartIndex == BatteryChartViewModel.SELECTED_INDEX_ALL) {
             // Multiple days are selected, hide the hourly chart view.
-            animateBatteryHourlyChartView(/*visible=*/ false);
+            animateBatteryHourlyChartView(/* visible= */ false);
         } else {
-            animateBatteryHourlyChartView(/*visible=*/ true);
-            final BatteryChartViewModel hourlyViewModel =
-                    mHourlyViewModels.get(mDailyChartIndex);
+            animateBatteryHourlyChartView(/* visible= */ true);
+            final BatteryChartViewModel hourlyViewModel = mHourlyViewModels.get(mDailyChartIndex);
             if (mHourlyChartIndex >= hourlyViewModel.size()) {
                 mHourlyChartIndex = BatteryChartViewModel.SELECTED_INDEX_ALL;
             }
             hourlyViewModel.setSelectedIndex(mHourlyChartIndex);
-            hourlyViewModel.setHighlightSlotIndex((mDailyChartIndex == mDailyHighlightSlotIndex)
-                    ? mHourlyHighlightSlotIndex
-                    : BatteryChartViewModel.SELECTED_INDEX_INVALID);
+            hourlyViewModel.setHighlightSlotIndex(
+                    (mDailyChartIndex == mDailyHighlightSlotIndex)
+                            ? mHourlyHighlightSlotIndex
+                            : BatteryChartViewModel.SELECTED_INDEX_INVALID);
             mHourlyChartView.setViewModel(hourlyViewModel);
         }
     }
@@ -401,8 +417,8 @@
             return selectedDayText;
         }
 
-        final String selectedHourText = mHourlyViewModels.get(mDailyChartIndex).getFullText(
-                mHourlyChartIndex);
+        final String selectedHourText =
+                mHourlyViewModels.get(mDailyChartIndex).getFullText(mHourlyChartIndex);
         if (isBatteryLevelDataInOneDay()) {
             return selectedHourText;
         }
@@ -422,7 +438,10 @@
 
     private void animateBatteryChartViewGroup() {
         if (mBatteryChartViewGroup != null && mBatteryChartViewGroup.getAlpha() == 0) {
-            mBatteryChartViewGroup.animate().alpha(1f).setDuration(FADE_IN_ANIMATION_DURATION)
+            mBatteryChartViewGroup
+                    .animate()
+                    .alpha(1f)
+                    .setDuration(FADE_IN_ANIMATION_DURATION)
                     .start();
         }
     }
@@ -435,13 +454,15 @@
 
         if (visible) {
             mHourlyChartView.setVisibility(View.VISIBLE);
-            mHourlyChartView.animate()
+            mHourlyChartView
+                    .animate()
                     .alpha(1f)
                     .setDuration(FADE_IN_ANIMATION_DURATION)
                     .setListener(mHourlyChartFadeInAdapter)
                     .start();
         } else {
-            mHourlyChartView.animate()
+            mHourlyChartView
+                    .animate()
                     .alpha(0f)
                     .setDuration(FADE_OUT_ANIMATION_DURATION)
                     .setListener(mHourlyChartFadeOutAdapter)
@@ -467,6 +488,7 @@
                     mHourlyChartView.setVisibility(visibility);
                 }
             }
+
             @Override
             public void onAnimationCancel(Animator animation) {
                 super.onAnimationCancel(animation);
@@ -483,7 +505,7 @@
 
     private boolean isAllSelected() {
         return (isBatteryLevelDataInOneDay()
-                || mDailyChartIndex == BatteryChartViewModel.SELECTED_INDEX_ALL)
+                        || mDailyChartIndex == BatteryChartViewModel.SELECTED_INDEX_ALL)
                 && mHourlyChartIndex == BatteryChartViewModel.SELECTED_INDEX_ALL;
     }
 
@@ -493,8 +515,9 @@
             return 0;
         }
         List<Long> dailyTimestamps = batteryLevelData.getDailyBatteryLevels().getTimestamps();
-        return (int) ((dailyTimestamps.get(dailyTimestamps.size() - 1) - dailyTimestamps.get(0))
-                / DateUtils.HOUR_IN_MILLIS);
+        return (int)
+                ((dailyTimestamps.get(dailyTimestamps.size() - 1) - dailyTimestamps.get(0))
+                        / DateUtils.HOUR_IN_MILLIS);
     }
 
     /** Used for {@link AppBatteryPreferenceController}. */
@@ -505,17 +528,21 @@
         if (batteryHistoryMap == null || batteryHistoryMap.isEmpty()) {
             return null;
         }
-        Log.d(TAG, String.format("getBatterySinceLastFullChargeUsageData() size=%d time=%d/ms",
-                batteryHistoryMap.size(), (System.currentTimeMillis() - start)));
+        Log.d(
+                TAG,
+                String.format(
+                        "getBatterySinceLastFullChargeUsageData() size=%d time=%d/ms",
+                        batteryHistoryMap.size(), (System.currentTimeMillis() - start)));
 
         final Map<Integer, Map<Integer, BatteryDiffData>> batteryUsageData =
                 DataProcessor.getBatteryUsageData(context, batteryHistoryMap);
         if (batteryUsageData == null) {
             return null;
         }
-        BatteryDiffData allBatteryDiffData = batteryUsageData.get(
-                BatteryChartViewModel.SELECTED_INDEX_ALL).get(
-                BatteryChartViewModel.SELECTED_INDEX_ALL);
+        BatteryDiffData allBatteryDiffData =
+                batteryUsageData
+                        .get(BatteryChartViewModel.SELECTED_INDEX_ALL)
+                        .get(BatteryChartViewModel.SELECTED_INDEX_ALL);
         return allBatteryDiffData == null ? null : allBatteryDiffData.getAppDiffEntryList();
     }
 
@@ -546,23 +573,23 @@
         return null;
     }
 
-    private final class DailyChartLabelTextGenerator implements
-            BatteryChartViewModel.LabelTextGenerator {
+    private final class DailyChartLabelTextGenerator
+            implements BatteryChartViewModel.LabelTextGenerator {
         @Override
         public String generateText(List<Long> timestamps, int index) {
-            return ConvertUtils.utcToLocalTimeDayOfWeek(mContext,
-                    timestamps.get(index), /* isAbbreviation= */ true);
+            return ConvertUtils.utcToLocalTimeDayOfWeek(
+                    mContext, timestamps.get(index), /* isAbbreviation= */ true);
         }
 
         @Override
         public String generateFullText(List<Long> timestamps, int index) {
-            return ConvertUtils.utcToLocalTimeDayOfWeek(mContext,
-                    timestamps.get(index), /* isAbbreviation= */ false);
+            return ConvertUtils.utcToLocalTimeDayOfWeek(
+                    mContext, timestamps.get(index), /* isAbbreviation= */ false);
         }
     }
 
-    private final class HourlyChartLabelTextGenerator implements
-            BatteryChartViewModel.LabelTextGenerator {
+    private final class HourlyChartLabelTextGenerator
+            implements BatteryChartViewModel.LabelTextGenerator {
         private static final int FULL_CHARGE_BATTERY_LEVEL = 100;
 
         private boolean mIsFromFullCharge;
@@ -593,8 +620,10 @@
         public String generateFullText(List<Long> timestamps, int index) {
             return index == timestamps.size() - 1
                     ? generateText(timestamps, index)
-                    : mContext.getString(R.string.battery_usage_timestamps_hyphen,
-                            generateText(timestamps, index), generateText(timestamps, index + 1));
+                    : mContext.getString(
+                            R.string.battery_usage_timestamps_hyphen,
+                            generateText(timestamps, index),
+                            generateText(timestamps, index + 1));
         }
 
         HourlyChartLabelTextGenerator updateSpecialCaseContext(
@@ -604,8 +633,10 @@
             this.mIsFromFullCharge =
                     firstDayLevelData.getLevels().get(0) == FULL_CHARGE_BATTERY_LEVEL;
             this.mFistTimestamp = firstDayLevelData.getTimestamps().get(0);
-            this.mLatestTimestamp = getLast(getLast(
-                    batteryLevelData.getHourlyBatteryLevelsPerDay()).getTimestamps());
+            this.mLatestTimestamp =
+                    getLast(
+                            getLast(batteryLevelData.getHourlyBatteryLevelsPerDay())
+                                    .getTimestamps());
             return this;
         }
     }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartView.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartView.java
index bb468fe..6ff52a2 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartView.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartView.java
@@ -74,7 +74,7 @@
 
     private final String[] mPercentages = getPercentages();
     private final Rect mIndent = new Rect();
-    private final Rect[] mPercentageBounds = new Rect[]{new Rect(), new Rect(), new Rect()};
+    private final Rect[] mPercentageBounds = new Rect[] {new Rect(), new Rect(), new Rect()};
     private final List<Rect> mAxisLabelsBounds = new ArrayList<>();
     private final Set<Integer> mLabelDrawnIndexes = new ArraySet<>();
     private final int mLayoutDirection =
@@ -106,11 +106,9 @@
     private AccessibilityNodeProvider mAccessibilityNodeProvider;
     private BatteryChartView.OnSelectListener mOnSelectListener;
 
-    @VisibleForTesting
-    TrapezoidSlot[] mTrapezoidSlots;
+    @VisibleForTesting TrapezoidSlot[] mTrapezoidSlots;
     // Records the location to calculate selected index.
-    @VisibleForTesting
-    float mTouchUpEventX = Float.MIN_VALUE;
+    @VisibleForTesting float mTouchUpEventX = Float.MIN_VALUE;
 
     public BatteryChartView(Context context) {
         super(context, null);
@@ -133,9 +131,13 @@
             return;
         }
 
-        Log.d(TAG, String.format(
-                "setViewModel(): size: %d, selectedIndex: %d, getHighlightSlotIndex: %d",
-                viewModel.size(), viewModel.selectedIndex(), viewModel.getHighlightSlotIndex()));
+        Log.d(
+                TAG,
+                String.format(
+                        "setViewModel(): size: %d, selectedIndex: %d, getHighlightSlotIndex: %d",
+                        viewModel.size(),
+                        viewModel.selectedIndex(),
+                        viewModel.getHighlightSlotIndex()));
         mViewModel = viewModel;
         initializeAxisLabelsBounds();
         initializeTrapezoidSlots(viewModel.size() - 1);
@@ -169,7 +171,9 @@
             mTextPaint.setTextAlign(Paint.Align.LEFT);
             for (int index = 0; index < mPercentages.length; index++) {
                 mTextPaint.getTextBounds(
-                        mPercentages[index], 0, mPercentages[index].length(),
+                        mPercentages[index],
+                        0,
+                        mPercentages[index].length(),
                         mPercentageBounds[index]);
             }
             // Updates the indent configurations.
@@ -292,7 +296,8 @@
             // Selects all if users click the same trapezoid item two times.
             mOnSelectListener.onSelect(
                     index == mViewModel.selectedIndex()
-                            ? BatteryChartViewModel.SELECTED_INDEX_ALL : index);
+                            ? BatteryChartViewModel.SELECTED_INDEX_ALL
+                            : index);
         }
         view.performHapticFeedback(HapticFeedbackConstants.CONTEXT_CLICK);
     }
@@ -327,8 +332,9 @@
         setBackgroundColor(Color.TRANSPARENT);
         mTrapezoidSolidColor = Utils.getColorAccentDefaultColor(context);
         mTrapezoidColor = Utils.getDisabled(context, mTrapezoidSolidColor);
-        mTrapezoidHoverColor = Utils.getColorAttrDefaultColor(context,
-                com.android.internal.R.attr.materialColorSecondaryContainer);
+        mTrapezoidHoverColor =
+                Utils.getColorAttrDefaultColor(
+                        context, com.android.internal.R.attr.materialColorSecondaryContainer);
         // Initializes the divider line paint.
         final Resources resources = getContext().getResources();
         mDividerWidth = resources.getDimensionPixelSize(R.dimen.chartview_divider_width);
@@ -353,25 +359,26 @@
         // Initializes for drawing text information.
         mTextPadding = resources.getDimensionPixelSize(R.dimen.chartview_text_padding);
         // Initializes the padding top for drawing text information.
-        mTransomViewHeight = resources.getDimensionPixelSize(
-                R.dimen.chartview_transom_layout_height);
+        mTransomViewHeight =
+                resources.getDimensionPixelSize(R.dimen.chartview_transom_layout_height);
     }
 
     private void initializeTransomPaint() {
-        if (mTransomLinePaint != null && mTransomSelectedSlotPaint != null
+        if (mTransomLinePaint != null
+                && mTransomSelectedSlotPaint != null
                 && mTransomIcon != null) {
             return;
         }
         // Initializes the transom line paint.
         final Resources resources = getContext().getResources();
-        final int transomLineWidth = resources.getDimensionPixelSize(
-                R.dimen.chartview_transom_width);
+        final int transomLineWidth =
+                resources.getDimensionPixelSize(R.dimen.chartview_transom_width);
         final int transomRadius = resources.getDimensionPixelSize(R.dimen.chartview_transom_radius);
         mTransomPadding = transomRadius * .5f;
         mTransomTop = resources.getDimensionPixelSize(R.dimen.chartview_transom_padding_top);
         mTransomLineDefaultColor = Utils.getDisabled(mContext, DIVIDER_COLOR);
-        mTransomLineSelectedColor = resources.getColor(
-                R.color.color_battery_anomaly_yellow_selector);
+        mTransomLineSelectedColor =
+                resources.getColor(R.color.color_battery_anomaly_app_warning_selector);
         final int slotHighlightColor = Utils.getDisabled(mContext, mTransomLineSelectedColor);
         mTransomIconSize = resources.getDimensionPixelSize(R.dimen.chartview_transom_icon_size);
         mTransomLinePaint = new Paint();
@@ -396,29 +403,29 @@
         final float availableSpace = bottomOffsetY - topOffsetY;
 
         mDividerPaint.setColor(DIVIDER_COLOR);
-        final float dividerOffsetUnit =
-                availableSpace / (float) (HORIZONTAL_DIVIDER_COUNT - 1);
+        final float dividerOffsetUnit = availableSpace / (float) (HORIZONTAL_DIVIDER_COUNT - 1);
 
         // Draws 5 divider lines.
         for (int index = 0; index < HORIZONTAL_DIVIDER_COUNT; index++) {
             float offsetY = topOffsetY + dividerOffsetUnit * index;
-            canvas.drawLine(mIndent.left, offsetY,
-                    mIndent.left + width, offsetY, mDividerPaint);
+            canvas.drawLine(mIndent.left, offsetY, mIndent.left + width, offsetY, mDividerPaint);
 
             //  Draws percentage text only for 100% / 50% / 0%
             if (index % 2 == 0) {
-                drawPercentage(canvas, /*index=*/ (index + 1) / 2, offsetY);
+                drawPercentage(canvas, /* index= */ (index + 1) / 2, offsetY);
             }
         }
     }
 
     private void drawPercentage(Canvas canvas, int index, float offsetY) {
         if (mTextPaint != null) {
-            mTextPaint.setTextAlign(Paint.Align.RIGHT);
+            mTextPaint.setTextAlign(isRTL() ? Paint.Align.RIGHT : Paint.Align.LEFT);
             mTextPaint.setColor(mDefaultTextColor);
             canvas.drawText(
                     mPercentages[index],
-                    isRTL() ? mIndent.left - mTextPadding : getWidth(),
+                    isRTL()
+                            ? mIndent.left - mTextPadding
+                            : getWidth() - mIndent.width() + mTextPadding,
                     offsetY + mPercentageBounds[index].height() * .5f,
                     mTextPaint);
         }
@@ -438,21 +445,23 @@
             Rect[] axisLabelDisplayAreas;
             switch (mViewModel.axisLabelPosition()) {
                 case CENTER_OF_TRAPEZOIDS:
-                    axisLabelDisplayAreas = getAxisLabelDisplayAreas(
-                            /* size= */ mViewModel.size() - 1,
-                            /* baselineX= */ mIndent.left + mDividerWidth + unitWidth * .5f,
-                            /* offsetX= */ mDividerWidth + unitWidth,
-                            baselineY,
-                            /* shiftFirstAndLast= */ false);
+                    axisLabelDisplayAreas =
+                            getAxisLabelDisplayAreas(
+                                    /* size= */ mViewModel.size() - 1,
+                                    /* baselineX= */ mIndent.left + mDividerWidth + unitWidth * .5f,
+                                    /* offsetX= */ mDividerWidth + unitWidth,
+                                    baselineY,
+                                    /* shiftFirstAndLast= */ false);
                     break;
                 case BETWEEN_TRAPEZOIDS:
                 default:
-                    axisLabelDisplayAreas = getAxisLabelDisplayAreas(
-                            /* size= */ mViewModel.size(),
-                            /* baselineX= */ mIndent.left + mDividerWidth * .5f,
-                            /* offsetX= */ mDividerWidth + unitWidth,
-                            baselineY,
-                            /* shiftFirstAndLast= */ true);
+                    axisLabelDisplayAreas =
+                            getAxisLabelDisplayAreas(
+                                    /* size= */ mViewModel.size(),
+                                    /* baselineX= */ mIndent.left + mDividerWidth * .5f,
+                                    /* offsetX= */ mDividerWidth + unitWidth,
+                                    baselineY,
+                                    /* shiftFirstAndLast= */ true);
                     break;
             }
             drawAxisLabels(canvas, axisLabelDisplayAreas, baselineY);
@@ -481,8 +490,12 @@
     }
 
     /** Gets all the axis label texts displaying area positions if they are shown. */
-    private Rect[] getAxisLabelDisplayAreas(final int size, final float baselineX,
-            final float offsetX, final float baselineY, final boolean shiftFirstAndLast) {
+    private Rect[] getAxisLabelDisplayAreas(
+            final int size,
+            final float baselineX,
+            final float offsetX,
+            final float baselineY,
+            final boolean shiftFirstAndLast) {
         final Rect[] result = new Rect[size];
         for (int index = 0; index < result.length; index++) {
             final float width = mAxisLabelsBounds.get(index).width();
@@ -522,8 +535,11 @@
      * labels and then recursively draw the 3 parts. If there are any overlaps, skip drawing and go
      * back to the uplevel of the recursion.
      */
-    private void drawAxisLabelsBetweenStartIndexAndEndIndex(Canvas canvas,
-            final Rect[] displayAreas, final int startIndex, final int endIndex,
+    private void drawAxisLabelsBetweenStartIndexAndEndIndex(
+            Canvas canvas,
+            final Rect[] displayAreas,
+            final int startIndex,
+            final int endIndex,
             final float baselineY) {
         if (endIndex - startIndex <= 1) {
             return;
@@ -576,15 +592,12 @@
         mTextPaint.setTextAlign(Paint.Align.CENTER);
         // Reverse the sort of axis labels for RTL
         if (isRTL()) {
-            index = mViewModel.axisLabelPosition() == BETWEEN_TRAPEZOIDS
-                            ? mViewModel.size() - index - 1     // for hourly
-                            : mViewModel.size() - index - 2;    // for daily
+            index =
+                    mViewModel.axisLabelPosition() == BETWEEN_TRAPEZOIDS
+                            ? mViewModel.size() - index - 1 // for hourly
+                            : mViewModel.size() - index - 2; // for daily
         }
-        canvas.drawText(
-                mViewModel.getText(index),
-                displayArea.centerX(),
-                baselineY,
-                mTextPaint);
+        canvas.drawText(mViewModel.getText(index), displayArea.centerX(), baselineY, mTextPaint);
         mLabelDrawnIndexes.add(index);
     }
 
@@ -594,8 +607,7 @@
             return;
         }
         final float trapezoidBottom =
-                getHeight() - mIndent.bottom - mDividerHeight - mDividerWidth
-                        - mTrapezoidVOffset;
+                getHeight() - mIndent.bottom - mDividerHeight - mDividerWidth - mTrapezoidVOffset;
         final float availableSpace =
                 trapezoidBottom - mDividerWidth * .5f - mIndent.top - mTrapezoidVOffset;
         final float unitHeight = availableSpace / 100f;
@@ -608,17 +620,24 @@
                 continue;
             }
             // Configures the trapezoid paint color.
-            final int trapezoidColor = (mViewModel.selectedIndex() == index
-                    || mViewModel.selectedIndex() == BatteryChartViewModel.SELECTED_INDEX_ALL)
-                    ? mTrapezoidSolidColor : mTrapezoidColor;
-            final boolean isHoverState = mHoveredIndex == index && isValidToDraw(mViewModel,
-                    mHoveredIndex);
+            final int trapezoidColor =
+                    (mViewModel.selectedIndex() == index
+                                    || mViewModel.selectedIndex()
+                                            == BatteryChartViewModel.SELECTED_INDEX_ALL)
+                            ? mTrapezoidSolidColor
+                            : mTrapezoidColor;
+            final boolean isHoverState =
+                    mHoveredIndex == index && isValidToDraw(mViewModel, mHoveredIndex);
             mTrapezoidPaint.setColor(isHoverState ? mTrapezoidHoverColor : trapezoidColor);
 
-            float leftTop = round(
-                    trapezoidBottom - requireNonNull(mViewModel.getLevel(index)) * unitHeight);
-            float rightTop = round(trapezoidBottom
-                    - requireNonNull(mViewModel.getLevel(index + 1)) * unitHeight);
+            float leftTop =
+                    round(
+                            trapezoidBottom
+                                    - requireNonNull(mViewModel.getLevel(index)) * unitHeight);
+            float rightTop =
+                    round(
+                            trapezoidBottom
+                                    - requireNonNull(mViewModel.getLevel(index + 1)) * unitHeight);
             // Mirror the shape of the trapezoid for RTL
             if (isRTL()) {
                 float temp = leftTop;
@@ -639,8 +658,9 @@
     }
 
     private boolean isHighlightSlotValid() {
-        return mViewModel != null && mViewModel.getHighlightSlotIndex()
-                != BatteryChartViewModel.SELECTED_INDEX_INVALID;
+        return mViewModel != null
+                && mViewModel.getHighlightSlotIndex()
+                        != BatteryChartViewModel.SELECTED_INDEX_INVALID;
     }
 
     private void drawTransomLine(Canvas canvas) {
@@ -652,10 +672,13 @@
         mTransomLinePaint.setColor(mTransomLineDefaultColor);
         final int width = getWidth() - abs(mIndent.width());
         final float transomOffset = mTrapezoidHOffset + mDividerWidth * .5f + mTransomPadding;
-        final float trapezoidBottom = getHeight() - mIndent.bottom - mDividerHeight - mDividerWidth
-                - mTrapezoidVOffset;
-        canvas.drawLine(mIndent.left + transomOffset, mTransomTop,
-                mIndent.left + width - transomOffset, mTransomTop,
+        final float trapezoidBottom =
+                getHeight() - mIndent.bottom - mDividerHeight - mDividerWidth - mTrapezoidVOffset;
+        canvas.drawLine(
+                mIndent.left + transomOffset,
+                mTransomTop,
+                mIndent.left + width - transomOffset,
+                mTransomTop,
                 mTransomLinePaint);
         drawTransomIcon(canvas);
         // Draw selected segment of transom line and a highlight slot
@@ -663,22 +686,28 @@
         final int index = mViewModel.getHighlightSlotIndex();
         final float startX = mTrapezoidSlots[index].mLeft;
         final float endX = mTrapezoidSlots[index].mRight;
-        canvas.drawLine(startX + mTransomPadding, mTransomTop,
-                endX - mTransomPadding, mTransomTop,
+        canvas.drawLine(
+                startX + mTransomPadding,
+                mTransomTop,
+                endX - mTransomPadding,
+                mTransomTop,
                 mTransomLinePaint);
-        canvas.drawRect(startX, mTransomTop, endX, trapezoidBottom,
-                mTransomSelectedSlotPaint);
+        canvas.drawRect(startX, mTransomTop, endX, trapezoidBottom, mTransomSelectedSlotPaint);
     }
 
     private void drawTransomIcon(Canvas canvas) {
         if (mTransomIcon == null) {
             return;
         }
-        final int left = isRTL()
-                ? mIndent.left - mTextPadding - mTransomIconSize
-                : getWidth() - abs(mIndent.width()) + mTextPadding;
-        mTransomIcon.setBounds(left, mTransomTop - mTransomIconSize / 2,
-                left + mTransomIconSize, mTransomTop + mTransomIconSize / 2);
+        final int left =
+                isRTL()
+                        ? mIndent.left - mTextPadding - mTransomIconSize
+                        : getWidth() - abs(mIndent.width()) + mTextPadding;
+        mTransomIcon.setBounds(
+                left,
+                mTransomTop - mTransomIconSize / 2,
+                left + mTransomIconSize,
+                mTransomTop + mTransomIconSize / 2);
         mTransomIcon.draw(canvas);
     }
 
@@ -689,8 +718,7 @@
         }
         for (int index = 0; index < mTrapezoidSlots.length; index++) {
             final TrapezoidSlot slot = mTrapezoidSlots[index];
-            if (x >= slot.mLeft - mTrapezoidHOffset
-                    && x <= slot.mRight + mTrapezoidHOffset) {
+            if (x >= slot.mLeft - mTrapezoidHOffset && x <= slot.mRight + mTrapezoidHOffset) {
                 return index;
             }
         }
@@ -712,9 +740,7 @@
 
     private static boolean isTrapezoidIndexValid(
             @NonNull BatteryChartViewModel viewModel, int trapezoidIndex) {
-        return viewModel != null
-                && trapezoidIndex >= 0
-                && trapezoidIndex < viewModel.size() - 1;
+        return viewModel != null && trapezoidIndex >= 0 && trapezoidIndex < viewModel.size() - 1;
     }
 
     private static boolean isValidToDraw(BatteryChartViewModel viewModel, int trapezoidIndex) {
@@ -733,10 +759,11 @@
     }
 
     private static String[] getPercentages() {
-        return new String[]{
-                formatPercentage(/*percentage=*/ 100, /*round=*/ true),
-                formatPercentage(/*percentage=*/ 50, /*round=*/ true),
-                formatPercentage(/*percentage=*/ 0, /*round=*/ true)};
+        return new String[] {
+            formatPercentage(/* percentage= */ 100, /* round= */ true),
+            formatPercentage(/* percentage= */ 50, /* round= */ true),
+            formatPercentage(/* percentage= */ 0, /* round= */ true)
+        };
     }
 
     private class BatteryChartAccessibilityNodeProvider extends AccessibilityNodeProvider {
@@ -772,8 +799,7 @@
         }
 
         @Override
-        public boolean performAction(int virtualViewId, int action,
-                @Nullable Bundle arguments) {
+        public boolean performAction(int virtualViewId, int action, @Nullable Bundle arguments) {
             if (virtualViewId == AccessibilityNodeProvider.HOST_VIEW_ID) {
                 return performAccessibilityAction(action, arguments);
             }
@@ -783,11 +809,12 @@
                     return true;
 
                 case AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS:
-                    return sendAccessibilityEvent(virtualViewId,
-                            AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED);
+                    return sendAccessibilityEvent(
+                            virtualViewId, AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED);
 
                 case AccessibilityNodeInfo.ACTION_CLEAR_ACCESSIBILITY_FOCUS:
-                    return sendAccessibilityEvent(virtualViewId,
+                    return sendAccessibilityEvent(
+                            virtualViewId,
                             AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED);
 
                 default:
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartViewModel.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartViewModel.java
index bf8a771..6ec01a4 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartViewModel.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartViewModel.java
@@ -57,14 +57,18 @@
     private int mSelectedIndex = SELECTED_INDEX_ALL;
     private int mHighlightSlotIndex = SELECTED_INDEX_INVALID;
 
-    BatteryChartViewModel(@NonNull List<Integer> levels, @NonNull List<Long> timestamps,
+    BatteryChartViewModel(
+            @NonNull List<Integer> levels,
+            @NonNull List<Long> timestamps,
             @NonNull AxisLabelPosition axisLabelPosition,
             @NonNull LabelTextGenerator labelTextGenerator) {
         Preconditions.checkArgument(
                 levels.size() == timestamps.size() && levels.size() >= MIN_LEVELS_DATA_SIZE,
-                String.format(Locale.ENGLISH,
+                String.format(
+                        Locale.ENGLISH,
                         "Invalid BatteryChartViewModel levels.size: %d, timestamps.size: %d.",
-                        levels.size(), timestamps.size()));
+                        levels.size(),
+                        timestamps.size()));
         mLevels = levels;
         mTimestamps = timestamps;
         mAxisLabelPosition = axisLabelPosition;
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java
index f25e16f..eebf1f5 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java
@@ -131,14 +131,14 @@
             final PowerUsageFeatureProvider featureProvider,
             final @NonNull Set<String> systemAppsPackageNames,
             final @NonNull Set<Integer> systemAppsUids) {
+        combineIntoUninstalledApps(context, mAppEntries);
         combineIntoSystemApps(
                 context, featureProvider, systemAppsPackageNames, systemAppsUids, mAppEntries);
         combineSystemItemsIntoOthers(context, featureProvider, mSystemEntries);
     }
 
     private static void purgeBatteryDiffData(
-            final PowerUsageFeatureProvider featureProvider,
-            final List<BatteryDiffEntry> entries) {
+            final PowerUsageFeatureProvider featureProvider, final List<BatteryDiffEntry> entries) {
         final double screenOnTimeThresholdInMs =
                 featureProvider.getBatteryUsageListScreenOnTimeThresholdInMs();
         final double consumePowerThreshold =
@@ -155,7 +155,7 @@
             final String packageName = entry.getPackageName();
             final Integer componentId = entry.mComponentId;
             if ((screenOnTimeInMs < screenOnTimeThresholdInMs
-                    && comsumePower < consumePowerThreshold)
+                            && comsumePower < consumePowerThreshold)
                     || ConvertUtils.FAKE_PACKAGE_NAME.equals(packageName)
                     || hideSystemComponentSet.contains(componentId)
                     || (packageName != null && hideApplicationSet.contains(packageName))) {
@@ -178,18 +178,23 @@
         final Iterator<BatteryDiffEntry> appListIterator = appEntries.iterator();
         while (appListIterator.hasNext()) {
             final BatteryDiffEntry batteryDiffEntry = appListIterator.next();
-            if (needsCombineInSystemApp(batteryDiffEntry, systemAppsAllowlist,
-                    systemAppsPackageNames, systemAppsUids)) {
+            if (needsCombineInSystemApp(
+                    batteryDiffEntry,
+                    systemAppsAllowlist,
+                    systemAppsPackageNames,
+                    systemAppsUids)) {
                 if (systemAppsDiffEntry == null) {
-                    systemAppsDiffEntry = new BatteryDiffEntry(context,
-                            BatteryDiffEntry.SYSTEM_APPS_KEY, BatteryDiffEntry.SYSTEM_APPS_KEY,
-                            ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
+                    systemAppsDiffEntry =
+                            new BatteryDiffEntry(
+                                    context,
+                                    BatteryDiffEntry.SYSTEM_APPS_KEY,
+                                    BatteryDiffEntry.SYSTEM_APPS_KEY,
+                                    ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
                 }
                 systemAppsDiffEntry.mConsumePower += batteryDiffEntry.mConsumePower;
                 systemAppsDiffEntry.mForegroundUsageTimeInMs +=
                         batteryDiffEntry.mForegroundUsageTimeInMs;
-                systemAppsDiffEntry.setTotalConsumePower(
-                        batteryDiffEntry.getTotalConsumePower());
+                systemAppsDiffEntry.setTotalConsumePower(batteryDiffEntry.getTotalConsumePower());
                 appListIterator.remove();
             }
         }
@@ -198,6 +203,35 @@
         }
     }
 
+    private static void combineIntoUninstalledApps(
+            final Context context, final @NonNull List<BatteryDiffEntry> appEntries) {
+        BatteryDiffEntry uninstalledAppDiffEntry = null;
+        final Iterator<BatteryDiffEntry> appListIterator = appEntries.iterator();
+        while (appListIterator.hasNext()) {
+            final BatteryDiffEntry batteryDiffEntry = appListIterator.next();
+            if (!batteryDiffEntry.isUninstalledEntry()) {
+                continue;
+            }
+
+            if (uninstalledAppDiffEntry == null) {
+                uninstalledAppDiffEntry =
+                        new BatteryDiffEntry(
+                                context,
+                                BatteryDiffEntry.UNINSTALLED_APPS_KEY,
+                                BatteryDiffEntry.UNINSTALLED_APPS_KEY,
+                                ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
+            }
+            uninstalledAppDiffEntry.mConsumePower += batteryDiffEntry.mConsumePower;
+            uninstalledAppDiffEntry.mForegroundUsageTimeInMs +=
+                    batteryDiffEntry.mForegroundUsageTimeInMs;
+            uninstalledAppDiffEntry.setTotalConsumePower(batteryDiffEntry.getTotalConsumePower());
+            appListIterator.remove();
+        }
+        if (uninstalledAppDiffEntry != null) {
+            appEntries.add(uninstalledAppDiffEntry);
+        }
+    }
+
     private static void combineSystemItemsIntoOthers(
             final Context context,
             final PowerUsageFeatureProvider featureProvider,
@@ -210,17 +244,20 @@
         while (systemListIterator.hasNext()) {
             final BatteryDiffEntry batteryDiffEntry = systemListIterator.next();
             final int componentId = batteryDiffEntry.mComponentId;
-            if (othersSystemComponentSet.contains(componentId) || (
-                    componentId >= BatteryConsumer.FIRST_CUSTOM_POWER_COMPONENT_ID
+            if (othersSystemComponentSet.contains(componentId)
+                    || (componentId >= BatteryConsumer.FIRST_CUSTOM_POWER_COMPONENT_ID
                             && othersCustomComponentNameSet.contains(
                                     batteryDiffEntry.getAppLabel()))) {
                 if (othersDiffEntry == null) {
-                    othersDiffEntry = new BatteryDiffEntry(context, BatteryDiffEntry.OTHERS_KEY,
-                            BatteryDiffEntry.OTHERS_KEY, ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
+                    othersDiffEntry =
+                            new BatteryDiffEntry(
+                                    context,
+                                    BatteryDiffEntry.OTHERS_KEY,
+                                    BatteryDiffEntry.OTHERS_KEY,
+                                    ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
                 }
                 othersDiffEntry.mConsumePower += batteryDiffEntry.mConsumePower;
-                othersDiffEntry.setTotalConsumePower(
-                        batteryDiffEntry.getTotalConsumePower());
+                othersDiffEntry.setTotalConsumePower(batteryDiffEntry.getTotalConsumePower());
                 systemListIterator.remove();
             }
         }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntry.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntry.java
index b284ea5..bad1b76 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntry.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntry.java
@@ -22,43 +22,66 @@
 import android.graphics.drawable.Drawable;
 import android.os.UserHandle;
 import android.os.UserManager;
+import android.text.TextUtils;
+import android.util.ArrayMap;
 import android.util.Log;
 import android.util.Pair;
 
+import androidx.annotation.GuardedBy;
 import androidx.annotation.VisibleForTesting;
 
 import com.android.settings.R;
 import com.android.settings.fuelgauge.BatteryUtils;
+import com.android.settings.fuelgauge.batteryusage.BatteryEntry.NameAndIcon;
 import com.android.settingslib.utils.StringUtil;
 
 import java.util.Comparator;
-import java.util.HashMap;
 import java.util.Locale;
 import java.util.Map;
 
 /** A container class to carry battery data in a specific time slot. */
 public class BatteryDiffEntry {
     private static final String TAG = "BatteryDiffEntry";
+    private static final Object sResourceCacheLock = new Object();
+    private static final Object sPackageNameAndUidCacheLock = new Object();
+    private static final Object sValidForRestrictionLock = new Object();
 
     static Locale sCurrentLocale = null;
+
     // Caches app label and icon to improve loading performance.
-    static final Map<String, BatteryEntry.NameAndIcon> sResourceCache = new HashMap<>();
+    @GuardedBy("sResourceCacheLock")
+    static final Map<String, NameAndIcon> sResourceCache = new ArrayMap<>();
+
+    // Caches package name and uid to improve loading performance.
+    @GuardedBy("sPackageNameAndUidCacheLock")
+    static final Map<String, Integer> sPackageNameAndUidCache = new ArrayMap<>();
+
     // Whether a specific item is valid to launch restriction page?
     @VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE)
-    static final Map<String, Boolean> sValidForRestriction = new HashMap<>();
+    @GuardedBy("sValidForRestrictionLock")
+    static final Map<String, Boolean> sValidForRestriction = new ArrayMap<>();
+
     /** A comparator for {@link BatteryDiffEntry} based on the sorting key. */
     static final Comparator<BatteryDiffEntry> COMPARATOR =
             (a, b) -> Double.compare(b.getSortingKey(), a.getSortingKey());
+
     static final String SYSTEM_APPS_KEY = "A|SystemApps";
+    static final String UNINSTALLED_APPS_KEY = "A|UninstalledApps";
     static final String OTHERS_KEY = "S|Others";
 
     // key -> (label_id, icon_id)
-    private static final Map<String, Pair<Integer, Integer>> SPECIAL_ENTRY_MAP = Map.of(
-            SYSTEM_APPS_KEY,
-            Pair.create(R.string.battery_usage_system_apps, R.drawable.ic_power_system),
-            OTHERS_KEY,
-            Pair.create(R.string.battery_usage_others,
-                    R.drawable.ic_settings_battery_usage_others));
+    private static final Map<String, Pair<Integer, Integer>> SPECIAL_ENTRY_MAP =
+            Map.of(
+                    SYSTEM_APPS_KEY,
+                    Pair.create(R.string.battery_usage_system_apps, R.drawable.ic_power_system),
+                    UNINSTALLED_APPS_KEY,
+                    Pair.create(
+                            R.string.battery_usage_uninstalled_apps,
+                            R.drawable.ic_battery_uninstalled),
+                    OTHERS_KEY,
+                    Pair.create(
+                            R.string.battery_usage_others,
+                            R.drawable.ic_settings_battery_usage_others));
 
     public long mUid;
     public long mUserId;
@@ -85,16 +108,11 @@
     private UserManager mUserManager;
     private String mDefaultPackageName = null;
 
-    @VisibleForTesting
-    int mAppIconId;
-    @VisibleForTesting
-    String mAppLabel = null;
-    @VisibleForTesting
-    Drawable mAppIcon = null;
-    @VisibleForTesting
-    boolean mIsLoaded = false;
-    @VisibleForTesting
-    boolean mValidForRestriction = true;
+    @VisibleForTesting int mAppIconId;
+    @VisibleForTesting String mAppLabel = null;
+    @VisibleForTesting Drawable mAppIcon = null;
+    @VisibleForTesting boolean mIsLoaded = false;
+    @VisibleForTesting boolean mValidForRestriction = true;
 
     public BatteryDiffEntry(
             Context context,
@@ -135,19 +153,30 @@
     }
 
     public BatteryDiffEntry(Context context, String key, String legacyLabel, int consumerType) {
-        this(context, /*uid=*/ 0, /*userId=*/ 0, key, /*isHidden=*/ false, /*componentId=*/ -1,
-                /*legacyPackageName=*/ null, legacyLabel, consumerType,
-                /*foregroundUsageTimeInMs=*/ 0, /*backgroundUsageTimeInMs=*/ 0,
-                /*screenOnTimeInMs=*/ 0, /*consumePower=*/ 0, /*foregroundUsageConsumePower=*/ 0,
-                /*foregroundServiceUsageConsumePower=*/ 0, /*backgroundUsageConsumePower=*/ 0,
-                /*cachedUsageConsumePower=*/ 0);
+        this(
+                context,
+                /* uid= */ 0,
+                /* userId= */ 0,
+                key,
+                /* isHidden= */ false,
+                /* componentId= */ -1,
+                /* legacyPackageName= */ null,
+                legacyLabel,
+                consumerType,
+                /* foregroundUsageTimeInMs= */ 0,
+                /* backgroundUsageTimeInMs= */ 0,
+                /* screenOnTimeInMs= */ 0,
+                /* consumePower= */ 0,
+                /* foregroundUsageConsumePower= */ 0,
+                /* foregroundServiceUsageConsumePower= */ 0,
+                /* backgroundUsageConsumePower= */ 0,
+                /* cachedUsageConsumePower= */ 0);
     }
 
     /** Sets the total consumed power in a specific time slot. */
     public void setTotalConsumePower(double totalConsumePower) {
         mTotalConsumePower = totalConsumePower;
-        mPercentage = totalConsumePower == 0
-                ? 0 : (mConsumePower / mTotalConsumePower) * 100.0;
+        mPercentage = totalConsumePower == 0 ? 0 : (mConsumePower / mTotalConsumePower) * 100.0;
         mAdjustPercentageOffset = 0;
     }
 
@@ -173,8 +202,21 @@
 
     /** Gets the key for sorting */
     public double getSortingKey() {
-        return getKey() != null && SPECIAL_ENTRY_MAP.containsKey(getKey())
-                ? -1 : getPercentage() + getAdjustPercentageOffset();
+        String key = getKey();
+        if (key == null) {
+            return getPercentage() + getAdjustPercentageOffset();
+        }
+
+        // For special entries, put them to the end of the list.
+        switch (key) {
+            case UNINSTALLED_APPS_KEY:
+            case OTHERS_KEY:
+                return -1;
+            case SYSTEM_APPS_KEY:
+                return -2;
+            default:
+                return getPercentage() + getAdjustPercentageOffset();
+        }
     }
 
     /** Clones a new instance. */
@@ -222,8 +264,8 @@
 
     /** Gets the searching package name for UID battery type. */
     public String getPackageName() {
-        final String packageName = mDefaultPackageName != null
-                ? mDefaultPackageName : mLegacyPackageName;
+        final String packageName =
+                mDefaultPackageName != null ? mDefaultPackageName : mLegacyPackageName;
         if (packageName == null) {
             return packageName;
         }
@@ -231,7 +273,8 @@
         // From "com.opera.browser:privileged_process0" to "com.opera.browser"
         final String[] splitPackageNames = packageName.split(":");
         return splitPackageNames != null && splitPackageNames.length > 0
-                ? splitPackageNames[0] : packageName;
+                ? splitPackageNames[0]
+                : packageName;
     }
 
     /** Whether this item is valid for users to launch restriction page? */
@@ -255,18 +298,49 @@
         }
     }
 
+    /** Whether the current BatteryDiffEntry is uninstalled app or not. */
+    public boolean isUninstalledEntry() {
+        final String packageName = getPackageName();
+        if (TextUtils.isEmpty(packageName)
+                || isSystemEntry()
+                // Some special package UIDs could be 0. Those packages are not installed by users.
+                || mUid == BatteryUtils.UID_ZERO) {
+            return false;
+        }
+
+        final int uid = getPackageUid(packageName);
+        return uid == BatteryUtils.UID_REMOVED_APPS || uid == BatteryUtils.UID_NULL;
+    }
+
+    private int getPackageUid(String packageName) {
+        synchronized (sPackageNameAndUidCacheLock) {
+            if (sPackageNameAndUidCache.containsKey(packageName)) {
+                return sPackageNameAndUidCache.get(packageName);
+            }
+        }
+
+        int uid = BatteryUtils.getInstance(mContext).getPackageUid(packageName);
+        synchronized (sPackageNameAndUidCacheLock) {
+            sPackageNameAndUidCache.put(packageName, uid);
+        }
+        return uid;
+    }
+
     void loadLabelAndIcon() {
         if (mIsLoaded) {
             return;
         }
         // Checks whether we have cached data or not first before fetching.
-        final BatteryEntry.NameAndIcon nameAndIcon = getCache();
+        final NameAndIcon nameAndIcon = getCache();
         if (nameAndIcon != null) {
             mAppLabel = nameAndIcon.mName;
             mAppIcon = nameAndIcon.mIcon;
             mAppIconId = nameAndIcon.mIconId;
         }
-        final Boolean validForRestriction = sValidForRestriction.get(getKey());
+        Boolean validForRestriction = null;
+        synchronized (sValidForRestrictionLock) {
+            validForRestriction = sValidForRestriction.get(getKey());
+        }
         if (validForRestriction != null) {
             mValidForRestriction = validForRestriction;
         }
@@ -278,34 +352,34 @@
 
         // Configures whether we can launch restriction page or not.
         updateRestrictionFlagState();
-        sValidForRestriction.put(getKey(), Boolean.valueOf(mValidForRestriction));
+        synchronized (sValidForRestrictionLock) {
+            sValidForRestriction.put(getKey(), Boolean.valueOf(mValidForRestriction));
+        }
 
         if (getKey() != null && SPECIAL_ENTRY_MAP.containsKey(getKey())) {
             Pair<Integer, Integer> pair = SPECIAL_ENTRY_MAP.get(getKey());
             mAppLabel = mContext.getString(pair.first);
             mAppIconId = pair.second;
             mAppIcon = mContext.getDrawable(mAppIconId);
-            sResourceCache.put(
-                    getKey(),
-                    new BatteryEntry.NameAndIcon(mAppLabel, mAppIcon, mAppIconId));
+            putResourceCache(getKey(), new NameAndIcon(mAppLabel, mAppIcon, mAppIconId));
             return;
         }
 
         // Loads application icon and label based on consumer type.
         switch (mConsumerType) {
             case ConvertUtils.CONSUMER_TYPE_USER_BATTERY:
-                final BatteryEntry.NameAndIcon nameAndIconForUser =
+                final NameAndIcon nameAndIconForUser =
                         BatteryEntry.getNameAndIconFromUserId(mContext, (int) mUserId);
                 if (nameAndIconForUser != null) {
                     mAppIcon = nameAndIconForUser.mIcon;
                     mAppLabel = nameAndIconForUser.mName;
-                    sResourceCache.put(
+                    putResourceCache(
                             getKey(),
-                            new BatteryEntry.NameAndIcon(mAppLabel, mAppIcon, /*iconId=*/ 0));
+                            new NameAndIcon(mAppLabel, mAppIcon, /* iconId= */ 0));
                 }
                 break;
             case ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY:
-                final BatteryEntry.NameAndIcon nameAndIconForSystem =
+                final NameAndIcon nameAndIconForSystem =
                         BatteryEntry.getNameAndIconFromPowerComponent(mContext, mComponentId);
                 if (nameAndIconForSystem != null) {
                     mAppLabel = nameAndIconForSystem.mName;
@@ -313,9 +387,8 @@
                         mAppIconId = nameAndIconForSystem.mIconId;
                         mAppIcon = mContext.getDrawable(nameAndIconForSystem.mIconId);
                     }
-                    sResourceCache.put(
-                            getKey(),
-                            new BatteryEntry.NameAndIcon(mAppLabel, mAppIcon, mAppIconId));
+                    putResourceCache(
+                            getKey(), new NameAndIcon(mAppLabel, mAppIcon, mAppIconId));
                 }
                 break;
             case ConvertUtils.CONSUMER_TYPE_UID_BATTERY:
@@ -327,9 +400,9 @@
                 // Adds badge icon into app icon for work profile.
                 mAppIcon = getBadgeIconForUser(mAppIcon);
                 if (mAppLabel != null || mAppIcon != null) {
-                    sResourceCache.put(
+                    putResourceCache(
                             getKey(),
-                            new BatteryEntry.NameAndIcon(mAppLabel, mAppIcon, /*iconId=*/ 0));
+                            new NameAndIcon(mAppLabel, mAppIcon, /* iconId= */ 0));
                 }
                 break;
         }
@@ -354,29 +427,38 @@
         }
         try {
             mValidForRestriction =
-                    mContext.getPackageManager().getPackageInfo(
-                            getPackageName(),
-                            PackageManager.MATCH_DISABLED_COMPONENTS
-                                    | PackageManager.MATCH_ANY_USER
-                                    | PackageManager.GET_SIGNATURES
-                                    | PackageManager.GET_PERMISSIONS)
+                    mContext.getPackageManager()
+                                    .getPackageInfo(
+                                            getPackageName(),
+                                            PackageManager.MATCH_DISABLED_COMPONENTS
+                                                    | PackageManager.MATCH_ANY_USER
+                                                    | PackageManager.GET_SIGNATURES
+                                                    | PackageManager.GET_PERMISSIONS)
                             != null;
         } catch (Exception e) {
-            Log.e(TAG, String.format("getPackageInfo() error %s for package=%s",
-                    e.getCause(), getPackageName()));
+            Log.e(
+                    TAG,
+                    String.format(
+                            "getPackageInfo() error %s for package=%s",
+                            e.getCause(), getPackageName()));
             mValidForRestriction = false;
         }
     }
 
-    private BatteryEntry.NameAndIcon getCache() {
+    private NameAndIcon getCache() {
         final Locale locale = Locale.getDefault();
         if (sCurrentLocale != locale) {
-            Log.d(TAG, String.format("clearCache() locale is changed from %s to %s",
-                    sCurrentLocale, locale));
+            Log.d(
+                    TAG,
+                    String.format(
+                            "clearCache() locale is changed from %s to %s",
+                            sCurrentLocale, locale));
             sCurrentLocale = locale;
             clearCache();
         }
-        return sResourceCache.get(getKey());
+        synchronized (sResourceCacheLock) {
+            return sResourceCache.get(getKey());
+        }
     }
 
     private void loadNameAndIconForUid() {
@@ -405,14 +487,15 @@
         final String[] packages = packageManager.getPackagesForUid(uid);
         // Loads special defined application label and icon if available.
         if (packages == null || packages.length == 0) {
-            final BatteryEntry.NameAndIcon nameAndIcon =
+            final NameAndIcon nameAndIcon =
                     BatteryEntry.getNameAndIconFromUid(mContext, mAppLabel, uid);
             mAppLabel = nameAndIcon.mName;
             mAppIcon = nameAndIcon.mIcon;
         }
 
-        final BatteryEntry.NameAndIcon nameAndIcon = BatteryEntry.loadNameAndIcon(
-                mContext, uid, /*batteryEntry=*/ null, packageName, mAppLabel, mAppIcon);
+        final NameAndIcon nameAndIcon =
+                BatteryEntry.loadNameAndIcon(
+                        mContext, uid, /* batteryEntry= */ null, packageName, mAppLabel, mAppIcon);
         // Clears BatteryEntry internal cache since we will have another one.
         BatteryEntry.clearUidCache();
         if (nameAndIcon != null) {
@@ -421,45 +504,85 @@
             mDefaultPackageName = nameAndIcon.mPackageName;
             if (mDefaultPackageName != null
                     && !mDefaultPackageName.equals(nameAndIcon.mPackageName)) {
-                Log.w(TAG, String.format("found different package: %s | %s",
-                        mDefaultPackageName, nameAndIcon.mPackageName));
+                Log.w(
+                        TAG,
+                        String.format(
+                                "found different package: %s | %s",
+                                mDefaultPackageName, nameAndIcon.mPackageName));
             }
         }
     }
 
     @Override
     public String toString() {
-        final StringBuilder builder = new StringBuilder()
-                .append("BatteryDiffEntry{")
-                .append(String.format("\n\tname=%s restrictable=%b",
-                        mAppLabel, mValidForRestriction))
-                .append(String.format("\n\tconsume=%.2f%% %f/%f",
-                        mPercentage, mConsumePower, mTotalConsumePower))
-                .append(String.format("\n\tconsume power= foreground:%f foregroundService:%f",
-                        mForegroundUsageConsumePower, mForegroundServiceUsageConsumePower))
-                .append(String.format("\n\tconsume power= background:%f cached:%f",
-                        mBackgroundUsageConsumePower, mCachedUsageConsumePower))
-                .append(String.format("\n\ttime= foreground:%s background:%s screen-on:%s",
-                        StringUtil.formatElapsedTime(mContext, (double) mForegroundUsageTimeInMs,
-                                /*withSeconds=*/ true, /*collapseTimeUnit=*/ false),
-                        StringUtil.formatElapsedTime(mContext, (double) mBackgroundUsageTimeInMs,
-                                /*withSeconds=*/ true, /*collapseTimeUnit=*/ false),
-                        StringUtil.formatElapsedTime(mContext, (double) mScreenOnTimeInMs,
-                                /*withSeconds=*/ true, /*collapseTimeUnit=*/ false)))
-                .append(String.format("\n\tpackage:%s|%s uid:%d userId:%d",
-                        mLegacyPackageName, getPackageName(), mUid, mUserId));
+        final StringBuilder builder =
+                new StringBuilder()
+                        .append("BatteryDiffEntry{")
+                        .append(
+                                String.format(
+                                        "\n\tname=%s restrictable=%b",
+                                        mAppLabel, mValidForRestriction))
+                        .append(
+                                String.format(
+                                        "\n\tconsume=%.2f%% %f/%f",
+                                        mPercentage, mConsumePower, mTotalConsumePower))
+                        .append(
+                                String.format(
+                                        "\n\tconsume power= foreground:%f foregroundService:%f",
+                                        mForegroundUsageConsumePower,
+                                        mForegroundServiceUsageConsumePower))
+                        .append(
+                                String.format(
+                                        "\n\tconsume power= background:%f cached:%f",
+                                        mBackgroundUsageConsumePower, mCachedUsageConsumePower))
+                        .append(
+                                String.format(
+                                        "\n\ttime= foreground:%s background:%s screen-on:%s",
+                                        StringUtil.formatElapsedTime(
+                                                mContext,
+                                                (double) mForegroundUsageTimeInMs,
+                                                /* withSeconds= */ true,
+                                                /* collapseTimeUnit= */ false),
+                                        StringUtil.formatElapsedTime(
+                                                mContext,
+                                                (double) mBackgroundUsageTimeInMs,
+                                                /* withSeconds= */ true,
+                                                /* collapseTimeUnit= */ false),
+                                        StringUtil.formatElapsedTime(
+                                                mContext,
+                                                (double) mScreenOnTimeInMs,
+                                                /* withSeconds= */ true,
+                                                /* collapseTimeUnit= */ false)))
+                        .append(
+                                String.format(
+                                        "\n\tpackage:%s|%s uid:%d userId:%d",
+                                        mLegacyPackageName, getPackageName(), mUid, mUserId));
         return builder.toString();
     }
 
-    /** Clears app icon and label cache data. */
+    /** Clears all cache data. */
     public static void clearCache() {
-        sResourceCache.clear();
-        sValidForRestriction.clear();
+        synchronized (sResourceCacheLock) {
+            sResourceCache.clear();
+        }
+        synchronized (sValidForRestrictionLock) {
+            sValidForRestriction.clear();
+        }
+        synchronized (sPackageNameAndUidCacheLock) {
+            sPackageNameAndUidCache.clear();
+        }
+    }
+
+    private static void putResourceCache(String key, NameAndIcon nameAndIcon) {
+        synchronized (sResourceCacheLock) {
+            sResourceCache.put(key, nameAndIcon);
+        }
     }
 
     private Drawable getBadgeIconForUser(Drawable icon) {
         final int userId = UserHandle.getUserId((int) mUid);
-        return userId == UserHandle.USER_OWNER ? icon :
-                mUserManager.getBadgedIconForUser(icon, new UserHandle(userId));
+        return userId == UserHandle.USER_OWNER
+                ? icon
+                : mUserManager.getBadgedIconForUser(icon, new UserHandle(userId));
     }
 }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryEntry.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryEntry.java
index 506607c..751e7ad 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryEntry.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryEntry.java
@@ -33,6 +33,7 @@
 import android.os.UserBatteryConsumer;
 import android.os.UserHandle;
 import android.os.UserManager;
+import android.util.ArrayMap;
 import android.util.DebugUtils;
 import android.util.Log;
 
@@ -41,12 +42,10 @@
 import com.android.settingslib.Utils;
 
 import java.util.Comparator;
-import java.util.HashMap;
 import java.util.Locale;
 
 /**
- * Wraps the power usage data of a BatterySipper with information about package name
- * and icon image.
+ * Wraps the power usage data of a BatterySipper with information about package name and icon image.
  */
 public class BatteryEntry {
 
@@ -58,11 +57,10 @@
         public final int mIconId;
 
         public NameAndIcon(String name, Drawable icon, int iconId) {
-            this(name, /*packageName=*/ null, icon, iconId);
+            this(name, /* packageName= */ null, icon, iconId);
         }
 
-        public NameAndIcon(
-                String name, String packageName, Drawable icon, int iconId) {
+        public NameAndIcon(String name, String packageName, Drawable icon, int iconId) {
             this.mName = name;
             this.mIcon = icon;
             this.mIconId = iconId;
@@ -78,19 +76,22 @@
     static final int BATTERY_USAGE_INDEX_BACKGROUND = 2;
     static final int BATTERY_USAGE_INDEX_CACHED = 3;
 
-    static final Dimensions[] BATTERY_DIMENSIONS = new Dimensions[] {
-            new Dimensions(
-                    BatteryConsumer.POWER_COMPONENT_ANY, BatteryConsumer.PROCESS_STATE_FOREGROUND),
-            new Dimensions(
-                    BatteryConsumer.POWER_COMPONENT_ANY,
-                    BatteryConsumer.PROCESS_STATE_FOREGROUND_SERVICE),
-            new Dimensions(
-                    BatteryConsumer.POWER_COMPONENT_ANY, BatteryConsumer.PROCESS_STATE_BACKGROUND),
-            new Dimensions(
-                    BatteryConsumer.POWER_COMPONENT_ANY, BatteryConsumer.PROCESS_STATE_CACHED),
-    };
+    static final Dimensions[] BATTERY_DIMENSIONS =
+            new Dimensions[] {
+                new Dimensions(
+                        BatteryConsumer.POWER_COMPONENT_ANY,
+                        BatteryConsumer.PROCESS_STATE_FOREGROUND),
+                new Dimensions(
+                        BatteryConsumer.POWER_COMPONENT_ANY,
+                        BatteryConsumer.PROCESS_STATE_FOREGROUND_SERVICE),
+                new Dimensions(
+                        BatteryConsumer.POWER_COMPONENT_ANY,
+                        BatteryConsumer.PROCESS_STATE_BACKGROUND),
+                new Dimensions(
+                        BatteryConsumer.POWER_COMPONENT_ANY, BatteryConsumer.PROCESS_STATE_CACHED),
+            };
 
-    static final HashMap<String, UidToDetail> sUidCache = new HashMap<>();
+    static final ArrayMap<String, UidToDetail> sUidCache = new ArrayMap<>();
 
     static Locale sCurrentLocale = null;
 
@@ -106,10 +107,8 @@
     private final BatteryConsumer mBatteryConsumer;
     private final int mUid;
     private final boolean mIsHidden;
-    @ConvertUtils.ConsumerType
-    private final int mConsumerType;
-    @BatteryConsumer.PowerComponent
-    private final int mPowerComponentId;
+    @ConvertUtils.ConsumerType private final int mConsumerType;
+    @BatteryConsumer.PowerComponent private final int mPowerComponentId;
     private long mUsageDurationMs;
     private long mTimeInForegroundMs;
     private long mTimeInBackgroundMs;
@@ -131,13 +130,25 @@
         Drawable mIcon;
     }
 
-    public BatteryEntry(Context context, UserManager um, BatteryConsumer batteryConsumer,
-            boolean isHidden, int uid, String[] packages, String packageName) {
+    public BatteryEntry(
+            Context context,
+            UserManager um,
+            BatteryConsumer batteryConsumer,
+            boolean isHidden,
+            int uid,
+            String[] packages,
+            String packageName) {
         this(context, um, batteryConsumer, isHidden, uid, packages, packageName, true);
     }
 
-    public BatteryEntry(Context context, UserManager um, BatteryConsumer batteryConsumer,
-            boolean isHidden, int uid, String[] packages, String packageName,
+    public BatteryEntry(
+            Context context,
+            UserManager um,
+            BatteryConsumer batteryConsumer,
+            boolean isHidden,
+            int uid,
+            String[] packages,
+            String packageName,
             boolean loadDataInBackground) {
         mContext = context;
         mBatteryConsumer = batteryConsumer;
@@ -156,8 +167,10 @@
                 if (packages != null && packages.length == 1) {
                     mDefaultPackageName = packages[0];
                 } else {
-                    mDefaultPackageName = isSystemUid(uid)
-                            ? PACKAGE_SYSTEM : uidBatteryConsumer.getPackageWithHighestDrain();
+                    mDefaultPackageName =
+                            isSystemUid(uid)
+                                    ? PACKAGE_SYSTEM
+                                    : uidBatteryConsumer.getPackageWithHighestDrain();
                 }
             }
             if (mDefaultPackageName != null) {
@@ -167,8 +180,10 @@
                             pm.getApplicationInfo(mDefaultPackageName, 0 /* no flags */);
                     mName = pm.getApplicationLabel(appInfo).toString();
                 } catch (NameNotFoundException e) {
-                    Log.d(TAG, "PackageManager failed to retrieve ApplicationInfo for: "
-                            + mDefaultPackageName);
+                    Log.d(
+                            TAG,
+                            "PackageManager failed to retrieve ApplicationInfo for: "
+                                    + mDefaultPackageName);
                     mName = mDefaultPackageName;
                 }
             }
@@ -176,20 +191,26 @@
                     uidBatteryConsumer.getTimeInStateMs(UidBatteryConsumer.STATE_FOREGROUND);
             mTimeInBackgroundMs =
                     uidBatteryConsumer.getTimeInStateMs(UidBatteryConsumer.STATE_BACKGROUND);
-            mConsumedPowerInForeground = safeGetConsumedPower(
-                    uidBatteryConsumer, BATTERY_DIMENSIONS[BATTERY_USAGE_INDEX_FOREGROUND]);
-            mConsumedPowerInForegroundService = safeGetConsumedPower(
-                    uidBatteryConsumer, BATTERY_DIMENSIONS[BATTERY_USAGE_INDEX_FOREGROUND_SERVICE]);
-            mConsumedPowerInBackground = safeGetConsumedPower(
-                    uidBatteryConsumer, BATTERY_DIMENSIONS[BATTERY_USAGE_INDEX_BACKGROUND]);
-            mConsumedPowerInCached = safeGetConsumedPower(
-                    uidBatteryConsumer, BATTERY_DIMENSIONS[BATTERY_USAGE_INDEX_CACHED]);
+            mConsumedPowerInForeground =
+                    safeGetConsumedPower(
+                            uidBatteryConsumer, BATTERY_DIMENSIONS[BATTERY_USAGE_INDEX_FOREGROUND]);
+            mConsumedPowerInForegroundService =
+                    safeGetConsumedPower(
+                            uidBatteryConsumer,
+                            BATTERY_DIMENSIONS[BATTERY_USAGE_INDEX_FOREGROUND_SERVICE]);
+            mConsumedPowerInBackground =
+                    safeGetConsumedPower(
+                            uidBatteryConsumer, BATTERY_DIMENSIONS[BATTERY_USAGE_INDEX_BACKGROUND]);
+            mConsumedPowerInCached =
+                    safeGetConsumedPower(
+                            uidBatteryConsumer, BATTERY_DIMENSIONS[BATTERY_USAGE_INDEX_CACHED]);
         } else if (batteryConsumer instanceof UserBatteryConsumer) {
             mUid = Process.INVALID_UID;
             mConsumerType = ConvertUtils.CONSUMER_TYPE_USER_BATTERY;
             mConsumedPower = batteryConsumer.getConsumedPower();
-            final NameAndIcon nameAndIcon = getNameAndIconFromUserId(
-                    context, ((UserBatteryConsumer) batteryConsumer).getUserId());
+            final NameAndIcon nameAndIcon =
+                    getNameAndIconFromUserId(
+                            context, ((UserBatteryConsumer) batteryConsumer).getUserId());
             mIcon = nameAndIcon.mIcon;
             mName = nameAndIcon.mName;
         } else {
@@ -198,8 +219,12 @@
     }
 
     /** Battery entry for a power component of AggregateBatteryConsumer */
-    public BatteryEntry(Context context, int powerComponentId, double devicePowerMah,
-            long usageDurationMs, boolean isHidden) {
+    public BatteryEntry(
+            Context context,
+            int powerComponentId,
+            double devicePowerMah,
+            long usageDurationMs,
+            boolean isHidden) {
         mContext = context;
         mBatteryConsumer = null;
         mUid = Process.INVALID_UID;
@@ -209,8 +234,7 @@
         mUsageDurationMs = usageDurationMs;
         mConsumerType = ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY;
 
-        final NameAndIcon nameAndIcon =
-                getNameAndIconFromPowerComponent(context, powerComponentId);
+        final NameAndIcon nameAndIcon = getNameAndIconFromPowerComponent(context, powerComponentId);
         mIconId = nameAndIcon.mIconId;
         mName = nameAndIcon.mName;
         if (mIconId != 0) {
@@ -219,7 +243,10 @@
     }
 
     /** Battery entry for a custom power component of AggregateBatteryConsumer */
-    public BatteryEntry(Context context, int powerComponentId, String powerComponentName,
+    public BatteryEntry(
+            Context context,
+            int powerComponentId,
+            String powerComponentName,
             double devicePowerMah) {
         mContext = context;
         mBatteryConsumer = null;
@@ -266,8 +293,8 @@
         }
 
         final PackageManager pm = context.getPackageManager();
-        final String[] packages = isSystemUid(uid)
-                ? new String[]{PACKAGE_SYSTEM} : pm.getPackagesForUid(uid);
+        final String[] packages =
+                isSystemUid(uid) ? new String[] {PACKAGE_SYSTEM} : pm.getPackagesForUid(uid);
         if (packages != null) {
             final String[] packageLabels = new String[packages.length];
             System.arraycopy(packages, 0, packageLabels, 0, packages.length);
@@ -277,11 +304,15 @@
             final int userId = UserHandle.getUserId(uid);
             for (int i = 0; i < packageLabels.length; i++) {
                 try {
-                    final ApplicationInfo ai = ipm.getApplicationInfo(packageLabels[i],
-                            0 /* no flags */, userId);
+                    final ApplicationInfo ai =
+                            ipm.getApplicationInfo(packageLabels[i], 0 /* no flags */, userId);
                     if (ai == null) {
-                        Log.d(TAG, "Retrieving null app info for package "
-                                + packageLabels[i] + ", user " + userId);
+                        Log.d(
+                                TAG,
+                                "Retrieving null app info for package "
+                                        + packageLabels[i]
+                                        + ", user "
+                                        + userId);
                         continue;
                     }
                     final CharSequence label = ai.loadLabel(pm);
@@ -294,8 +325,13 @@
                         break;
                     }
                 } catch (RemoteException e) {
-                    Log.d(TAG, "Error while retrieving app info for package "
-                            + packageLabels[i] + ", user " + userId, e);
+                    Log.d(
+                            TAG,
+                            "Error while retrieving app info for package "
+                                    + packageLabels[i]
+                                    + ", user "
+                                    + userId,
+                            e);
                 }
             }
 
@@ -307,13 +343,17 @@
                     try {
                         final PackageInfo pi = ipm.getPackageInfo(pkgName, 0, userId);
                         if (pi == null) {
-                            Log.d(TAG, "Retrieving null package info for package "
-                                    + pkgName + ", user " + userId);
+                            Log.d(
+                                    TAG,
+                                    "Retrieving null package info for package "
+                                            + pkgName
+                                            + ", user "
+                                            + userId);
                             continue;
                         }
                         if (pi.sharedUserLabel != 0) {
-                            final CharSequence nm = pm.getText(pkgName,
-                                    pi.sharedUserLabel, pi.applicationInfo);
+                            final CharSequence nm =
+                                    pm.getText(pkgName, pi.sharedUserLabel, pi.applicationInfo);
                             if (nm != null) {
                                 name = nm.toString();
                                 if (pi.applicationInfo.icon != 0) {
@@ -324,8 +364,13 @@
                             }
                         }
                     } catch (RemoteException e) {
-                        Log.d(TAG, "Error while retrieving package info for package "
-                                + pkgName + ", user " + userId, e);
+                        Log.d(
+                                TAG,
+                                "Error while retrieving package info for package "
+                                        + pkgName
+                                        + ", user "
+                                        + userId,
+                                e);
                     }
                 }
             }
@@ -342,7 +387,7 @@
         utd.mPackageName = defaultPackageName;
 
         sUidCache.put(uidString, utd);
-        return new NameAndIcon(name, defaultPackageName, icon, /*iconId=*/ 0);
+        return new NameAndIcon(name, defaultPackageName, icon, /* iconId= */ 0);
     }
 
     /** Returns a string that uniquely identifies this battery consumer. */
@@ -375,16 +420,13 @@
     }
 
     /**
-     * Returns the package name that should be used to represent the UID described
-     * by this entry.
+     * Returns the package name that should be used to represent the UID described by this entry.
      */
     public String getDefaultPackageName() {
         return mDefaultPackageName;
     }
 
-    /**
-     * Returns the UID of the app described by this entry.
-     */
+    /** Returns the UID of the app described by this entry. */
     public int getUid() {
         return mUid;
     }
@@ -407,9 +449,7 @@
         }
     }
 
-    /**
-     * Returns total amount of power (in milli-amp-hours) that is attributed to this entry.
-     */
+    /** Returns total amount of power (in milli-amp-hours) that is attributed to this entry. */
     public double getConsumedPower() {
         return mConsumedPower;
     }
@@ -462,25 +502,30 @@
     }
 
     /**
-     * Adds the consumed power of the supplied BatteryConsumer to this entry. Also
-     * uses its package with highest drain, if necessary.
+     * Adds the consumed power of the supplied BatteryConsumer to this entry. Also uses its package
+     * with highest drain, if necessary.
      */
     public void add(BatteryConsumer batteryConsumer) {
         mConsumedPower += batteryConsumer.getConsumedPower();
         if (batteryConsumer instanceof UidBatteryConsumer) {
             UidBatteryConsumer uidBatteryConsumer = (UidBatteryConsumer) batteryConsumer;
-            mTimeInForegroundMs += uidBatteryConsumer.getTimeInStateMs(
-                    UidBatteryConsumer.STATE_FOREGROUND);
-            mTimeInBackgroundMs += uidBatteryConsumer.getTimeInStateMs(
-                    UidBatteryConsumer.STATE_BACKGROUND);
-            mConsumedPowerInForeground += safeGetConsumedPower(
-                    uidBatteryConsumer, BATTERY_DIMENSIONS[BATTERY_USAGE_INDEX_FOREGROUND]);
-            mConsumedPowerInForegroundService += safeGetConsumedPower(
-                    uidBatteryConsumer, BATTERY_DIMENSIONS[BATTERY_USAGE_INDEX_FOREGROUND_SERVICE]);
-            mConsumedPowerInBackground += safeGetConsumedPower(
-                    uidBatteryConsumer, BATTERY_DIMENSIONS[BATTERY_USAGE_INDEX_BACKGROUND]);
-            mConsumedPowerInCached += safeGetConsumedPower(
-                    uidBatteryConsumer, BATTERY_DIMENSIONS[BATTERY_USAGE_INDEX_CACHED]);
+            mTimeInForegroundMs +=
+                    uidBatteryConsumer.getTimeInStateMs(UidBatteryConsumer.STATE_FOREGROUND);
+            mTimeInBackgroundMs +=
+                    uidBatteryConsumer.getTimeInStateMs(UidBatteryConsumer.STATE_BACKGROUND);
+            mConsumedPowerInForeground +=
+                    safeGetConsumedPower(
+                            uidBatteryConsumer, BATTERY_DIMENSIONS[BATTERY_USAGE_INDEX_FOREGROUND]);
+            mConsumedPowerInForegroundService +=
+                    safeGetConsumedPower(
+                            uidBatteryConsumer,
+                            BATTERY_DIMENSIONS[BATTERY_USAGE_INDEX_FOREGROUND_SERVICE]);
+            mConsumedPowerInBackground +=
+                    safeGetConsumedPower(
+                            uidBatteryConsumer, BATTERY_DIMENSIONS[BATTERY_USAGE_INDEX_BACKGROUND]);
+            mConsumedPowerInCached +=
+                    safeGetConsumedPower(
+                            uidBatteryConsumer, BATTERY_DIMENSIONS[BATTERY_USAGE_INDEX_CACHED]);
             if (mDefaultPackageName == null) {
                 mDefaultPackageName = uidBatteryConsumer.getPackageWithHighestDrain();
             }
@@ -488,8 +533,7 @@
     }
 
     /** Gets name and icon resource from UserBatteryConsumer userId. */
-    public static NameAndIcon getNameAndIconFromUserId(
-            Context context, final int userId) {
+    public static NameAndIcon getNameAndIconFromUserId(Context context, final int userId) {
         UserManager um = context.getSystemService(UserManager.class);
         UserInfo info = um.getUserInfo(userId);
 
@@ -499,27 +543,27 @@
             icon = Utils.getUserIcon(context, um, info);
             name = Utils.getUserLabel(context, info);
         } else {
-            name = context.getResources().getString(
-                    R.string.running_process_item_removed_user_label);
+            name =
+                    context.getResources()
+                            .getString(R.string.running_process_item_removed_user_label);
         }
         return new NameAndIcon(name, icon, 0 /* iconId */);
     }
 
     /** Gets name and icon resource from UidBatteryConsumer uid. */
-    public static NameAndIcon getNameAndIconFromUid(
-            Context context, String name, final int uid) {
+    public static NameAndIcon getNameAndIconFromUid(Context context, String name, final int uid) {
         Drawable icon = context.getDrawable(R.drawable.ic_power_system);
         if (uid == 0) {
-            name = context.getResources()
-                    .getString(com.android.settingslib.R.string.process_kernel_label);
+            name =
+                    context.getResources()
+                            .getString(com.android.settingslib.R.string.process_kernel_label);
         } else if (uid == BatteryUtils.UID_REMOVED_APPS) {
             name = context.getResources().getString(R.string.process_removed_apps);
         } else if (uid == BatteryUtils.UID_TETHERING) {
             name = context.getResources().getString(R.string.process_network_tethering);
         } else if ("mediaserver".equals(name)) {
             name = context.getResources().getString(R.string.process_mediaserver_label);
-        } else if ("dex2oat".equals(name) || "dex2oat32".equals(name)
-                || "dex2oat64".equals(name)) {
+        } else if ("dex2oat".equals(name) || "dex2oat32".equals(name) || "dex2oat64".equals(name)) {
             name = context.getResources().getString(R.string.process_dex2oat_label);
         }
         return new NameAndIcon(name, icon, 0 /* iconId */);
@@ -531,12 +575,12 @@
         String name;
         int iconId;
         switch (powerComponentId) {
-            // Please see go/battery-usage-system-component-map
-            case BatteryConsumer.POWER_COMPONENT_SCREEN:  // id: 0
+                // Please see go/battery-usage-system-component-map
+            case BatteryConsumer.POWER_COMPONENT_SCREEN: // id: 0
                 name = context.getResources().getString(R.string.power_screen);
                 iconId = R.drawable.ic_settings_display;
                 break;
-            case BatteryConsumer.POWER_COMPONENT_CPU:  // id: 1
+            case BatteryConsumer.POWER_COMPONENT_CPU: // id: 1
                 name = context.getResources().getString(R.string.power_cpu);
                 iconId = R.drawable.ic_settings_cpu;
                 break;
@@ -544,11 +588,11 @@
                 name = context.getResources().getString(R.string.power_bluetooth);
                 iconId = R.drawable.ic_settings_bluetooth;
                 break;
-            case BatteryConsumer.POWER_COMPONENT_CAMERA:  // id: 3
+            case BatteryConsumer.POWER_COMPONENT_CAMERA: // id: 3
                 name = context.getResources().getString(R.string.power_camera);
                 iconId = R.drawable.ic_settings_camera;
                 break;
-            case BatteryConsumer.POWER_COMPONENT_FLASHLIGHT:  // id: 6
+            case BatteryConsumer.POWER_COMPONENT_FLASHLIGHT: // id: 6
                 name = context.getResources().getString(R.string.power_flashlight);
                 iconId = R.drawable.ic_settings_flashlight;
                 break;
@@ -556,25 +600,30 @@
                 name = context.getResources().getString(R.string.power_cell);
                 iconId = R.drawable.ic_settings_cellular;
                 break;
-            case BatteryConsumer.POWER_COMPONENT_GNSS:  // id: 10
+            case BatteryConsumer.POWER_COMPONENT_GNSS: // id: 10
                 name = context.getResources().getString(R.string.power_gps);
                 iconId = R.drawable.ic_settings_gps;
                 break;
-            case BatteryConsumer.POWER_COMPONENT_WIFI:  // id: 11
+            case BatteryConsumer.POWER_COMPONENT_WIFI: // id: 11
                 name = context.getResources().getString(R.string.power_wifi);
                 iconId = R.drawable.ic_settings_wireless_no_theme;
                 break;
-            case BatteryConsumer.POWER_COMPONENT_PHONE:  // id: 14
+            case BatteryConsumer.POWER_COMPONENT_PHONE: // id: 14
                 name = context.getResources().getString(R.string.power_phone);
                 iconId = R.drawable.ic_settings_voice_calls;
                 break;
-            case BatteryConsumer.POWER_COMPONENT_AMBIENT_DISPLAY:  // id :15
+            case BatteryConsumer.POWER_COMPONENT_AMBIENT_DISPLAY: // id :15
                 name = context.getResources().getString(R.string.ambient_display_screen_title);
                 iconId = R.drawable.ic_settings_aod;
                 break;
             default:
-                Log.w(TAG, "unknown attribute:" + DebugUtils.constantToString(
-                        BatteryConsumer.class, "POWER_COMPONENT_", powerComponentId));
+                Log.w(
+                        TAG,
+                        "unknown attribute:"
+                                + DebugUtils.constantToString(
+                                        BatteryConsumer.class,
+                                        "POWER_COMPONENT_",
+                                        powerComponentId));
                 name = null;
                 iconId = R.drawable.ic_power_system;
                 break;
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryHistEntry.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryHistEntry.java
index 6f78566..97cdc34 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryHistEntry.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryHistEntry.java
@@ -29,6 +29,7 @@
 
     /** Keys for accessing {@link ContentValues} or {@link Cursor}. */
     public static final String KEY_UID = "uid";
+
     public static final String KEY_USER_ID = "userId";
     public static final String KEY_PACKAGE_NAME = "packageName";
     public static final String KEY_TIMESTAMP = "timestamp";
@@ -57,10 +58,8 @@
     public final double mPercentOfTotal;
     public final long mForegroundUsageTimeInMs;
     public final long mBackgroundUsageTimeInMs;
-    @BatteryConsumer.PowerComponent
-    public final int mDrainType;
-    @ConvertUtils.ConsumerType
-    public final int mConsumerType;
+    @BatteryConsumer.PowerComponent public final int mDrainType;
+    @ConvertUtils.ConsumerType public final int mConsumerType;
     // Records the battery intent relative information.
     public final int mBatteryLevel;
     public final int mBatteryStatus;
@@ -190,25 +189,45 @@
     @Override
     public String toString() {
         final String recordAtDateTime = ConvertUtils.utcToLocalTimeForLogging(mTimestamp);
-        final StringBuilder builder = new StringBuilder()
-                .append("\nBatteryHistEntry{")
-                .append(String.format("\n\tpackage=%s|label=%s|uid=%d|userId=%d|isHidden=%b",
-                        mPackageName, mAppLabel, mUid, mUserId, mIsHidden))
-                .append(String.format("\n\ttimestamp=%s|zoneId=%s|bootTimestamp=%d",
-                        recordAtDateTime, mZoneId, Duration.ofMillis(mBootTimestamp).getSeconds()))
-                .append(String.format("\n\tusage=%f|total=%f|consume=%f",
-                        mPercentOfTotal, mTotalPower, mConsumePower))
-                .append(String.format("\n\tforeground=%f|foregroundService=%f",
-                        mForegroundUsageConsumePower, mForegroundServiceUsageConsumePower))
-                .append(String.format("\n\tbackground=%f|cached=%f",
-                        mBackgroundUsageConsumePower, mCachedUsageConsumePower))
-                .append(String.format("\n\telapsedTime=%d|%d",
-                        Duration.ofMillis(mForegroundUsageTimeInMs).getSeconds(),
-                        Duration.ofMillis(mBackgroundUsageTimeInMs).getSeconds()))
-                .append(String.format("\n\tdrainType=%d|consumerType=%d",
-                        mDrainType, mConsumerType))
-                .append(String.format("\n\tbattery=%d|status=%d|health=%d\n}",
-                        mBatteryLevel, mBatteryStatus, mBatteryHealth));
+        final StringBuilder builder =
+                new StringBuilder()
+                        .append("\nBatteryHistEntry{")
+                        .append(
+                                String.format(
+                                        "\n\tpackage=%s|label=%s|uid=%d|userId=%d|isHidden=%b",
+                                        mPackageName, mAppLabel, mUid, mUserId, mIsHidden))
+                        .append(
+                                String.format(
+                                        "\n\ttimestamp=%s|zoneId=%s|bootTimestamp=%d",
+                                        recordAtDateTime,
+                                        mZoneId,
+                                        Duration.ofMillis(mBootTimestamp).getSeconds()))
+                        .append(
+                                String.format(
+                                        "\n\tusage=%f|total=%f|consume=%f",
+                                        mPercentOfTotal, mTotalPower, mConsumePower))
+                        .append(
+                                String.format(
+                                        "\n\tforeground=%f|foregroundService=%f",
+                                        mForegroundUsageConsumePower,
+                                        mForegroundServiceUsageConsumePower))
+                        .append(
+                                String.format(
+                                        "\n\tbackground=%f|cached=%f",
+                                        mBackgroundUsageConsumePower, mCachedUsageConsumePower))
+                        .append(
+                                String.format(
+                                        "\n\telapsedTime=%d|%d",
+                                        Duration.ofMillis(mForegroundUsageTimeInMs).getSeconds(),
+                                        Duration.ofMillis(mBackgroundUsageTimeInMs).getSeconds()))
+                        .append(
+                                String.format(
+                                        "\n\tdrainType=%d|consumerType=%d",
+                                        mDrainType, mConsumerType))
+                        .append(
+                                String.format(
+                                        "\n\tbattery=%d|status=%d|health=%d\n}",
+                                        mBatteryLevel, mBatteryStatus, mBatteryHealth));
         return builder.toString();
     }
 
@@ -270,65 +289,81 @@
             double ratio,
             BatteryHistEntry lowerHistEntry,
             BatteryHistEntry upperHistEntry) {
-        final double totalPower = interpolate(
-                lowerHistEntry == null ? 0 : lowerHistEntry.mTotalPower,
-                upperHistEntry.mTotalPower,
-                ratio);
-        final double consumePower = interpolate(
-                lowerHistEntry == null ? 0 : lowerHistEntry.mConsumePower,
-                upperHistEntry.mConsumePower,
-                ratio);
-        final double foregroundUsageConsumePower = interpolate(
-                lowerHistEntry == null ? 0 : lowerHistEntry.mForegroundUsageConsumePower,
-                upperHistEntry.mForegroundUsageConsumePower,
-                ratio);
-        final double foregroundServiceUsageConsumePower = interpolate(
-                lowerHistEntry == null ? 0 : lowerHistEntry.mForegroundServiceUsageConsumePower,
-                upperHistEntry.mForegroundServiceUsageConsumePower,
-                ratio);
-        final double backgroundUsageConsumePower = interpolate(
-                lowerHistEntry == null ? 0 : lowerHistEntry.mBackgroundUsageConsumePower,
-                upperHistEntry.mBackgroundUsageConsumePower,
-                ratio);
-        final double cachedUsageConsumePower = interpolate(
-                lowerHistEntry == null ? 0 : lowerHistEntry.mCachedUsageConsumePower,
-                upperHistEntry.mCachedUsageConsumePower,
-                ratio);
-        final double foregroundUsageTimeInMs = interpolate(
-                (double) (lowerHistEntry == null ? 0 : lowerHistEntry.mForegroundUsageTimeInMs),
-                (double) upperHistEntry.mForegroundUsageTimeInMs,
-                ratio);
-        final double backgroundUsageTimeInMs = interpolate(
-                (double) (lowerHistEntry == null ? 0 : lowerHistEntry.mBackgroundUsageTimeInMs),
-                (double) upperHistEntry.mBackgroundUsageTimeInMs,
-                ratio);
+        final double totalPower =
+                interpolate(
+                        lowerHistEntry == null ? 0 : lowerHistEntry.mTotalPower,
+                        upperHistEntry.mTotalPower,
+                        ratio);
+        final double consumePower =
+                interpolate(
+                        lowerHistEntry == null ? 0 : lowerHistEntry.mConsumePower,
+                        upperHistEntry.mConsumePower,
+                        ratio);
+        final double foregroundUsageConsumePower =
+                interpolate(
+                        lowerHistEntry == null ? 0 : lowerHistEntry.mForegroundUsageConsumePower,
+                        upperHistEntry.mForegroundUsageConsumePower,
+                        ratio);
+        final double foregroundServiceUsageConsumePower =
+                interpolate(
+                        lowerHistEntry == null
+                                ? 0
+                                : lowerHistEntry.mForegroundServiceUsageConsumePower,
+                        upperHistEntry.mForegroundServiceUsageConsumePower,
+                        ratio);
+        final double backgroundUsageConsumePower =
+                interpolate(
+                        lowerHistEntry == null ? 0 : lowerHistEntry.mBackgroundUsageConsumePower,
+                        upperHistEntry.mBackgroundUsageConsumePower,
+                        ratio);
+        final double cachedUsageConsumePower =
+                interpolate(
+                        lowerHistEntry == null ? 0 : lowerHistEntry.mCachedUsageConsumePower,
+                        upperHistEntry.mCachedUsageConsumePower,
+                        ratio);
+        final double foregroundUsageTimeInMs =
+                interpolate(
+                        (double)
+                                (lowerHistEntry == null
+                                        ? 0
+                                        : lowerHistEntry.mForegroundUsageTimeInMs),
+                        (double) upperHistEntry.mForegroundUsageTimeInMs,
+                        ratio);
+        final double backgroundUsageTimeInMs =
+                interpolate(
+                        (double)
+                                (lowerHistEntry == null
+                                        ? 0
+                                        : lowerHistEntry.mBackgroundUsageTimeInMs),
+                        (double) upperHistEntry.mBackgroundUsageTimeInMs,
+                        ratio);
         // Checks whether there is any abnormal cases!
         if (upperHistEntry.mConsumePower < consumePower
                 || upperHistEntry.mForegroundUsageConsumePower < foregroundUsageConsumePower
                 || upperHistEntry.mForegroundServiceUsageConsumePower
-                < foregroundServiceUsageConsumePower
+                        < foregroundServiceUsageConsumePower
                 || upperHistEntry.mBackgroundUsageConsumePower < backgroundUsageConsumePower
                 || upperHistEntry.mCachedUsageConsumePower < cachedUsageConsumePower
                 || upperHistEntry.mForegroundUsageTimeInMs < foregroundUsageTimeInMs
                 || upperHistEntry.mBackgroundUsageTimeInMs < backgroundUsageTimeInMs) {
             if (DEBUG) {
-                Log.w(TAG, String.format(
-                        "abnormal interpolation:\nupper:%s\nlower:%s",
-                        upperHistEntry, lowerHistEntry));
+                Log.w(
+                        TAG,
+                        String.format(
+                                "abnormal interpolation:\nupper:%s\nlower:%s",
+                                upperHistEntry, lowerHistEntry));
             }
         }
         final double batteryLevel =
                 lowerHistEntry == null
                         ? upperHistEntry.mBatteryLevel
                         : interpolate(
-                                lowerHistEntry.mBatteryLevel,
-                                upperHistEntry.mBatteryLevel,
-                                ratio);
+                                lowerHistEntry.mBatteryLevel, upperHistEntry.mBatteryLevel, ratio);
         return new BatteryHistEntry(
                 upperHistEntry,
-                /*bootTimestamp=*/ upperHistEntry.mBootTimestamp
-                - (upperTimestamp - slotTimestamp),
-                /*timestamp=*/ slotTimestamp,
+                /* bootTimestamp= */ upperHistEntry.mBootTimestamp
+                        - (upperTimestamp - slotTimestamp),
+                /* timestamp= */ slotTimestamp,
                 totalPower,
                 consumePower,
                 foregroundUsageConsumePower,
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryPreference.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryPreference.java
index d64bf34..2063f2d 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryPreference.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryPreference.java
@@ -26,9 +26,7 @@
 import com.android.settings.R;
 import com.android.settings.fuelgauge.BatteryUtils;
 
-/**
- * Custom preference for displaying the battery level as chart graph.
- */
+/** Custom preference for displaying the battery level as chart graph. */
 public class BatteryHistoryPreference extends Preference {
     private static final String TAG = "BatteryHistoryPreference";
 
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryLevelData.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryLevelData.java
index 09d66c7..231c730 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryLevelData.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryLevelData.java
@@ -47,13 +47,14 @@
         private final List<Integer> mLevels;
 
         public PeriodBatteryLevelData(
-                @NonNull Map<Long, Integer> batteryLevelMap,
-                @NonNull List<Long> timestamps) {
+                @NonNull Map<Long, Integer> batteryLevelMap, @NonNull List<Long> timestamps) {
             mTimestamps = timestamps;
             mLevels = new ArrayList<>(timestamps.size());
             for (Long timestamp : timestamps) {
-                mLevels.add(batteryLevelMap.containsKey(timestamp)
-                        ? batteryLevelMap.get(timestamp) : BATTERY_LEVEL_UNKNOWN);
+                mLevels.add(
+                        batteryLevelMap.containsKey(timestamp)
+                                ? batteryLevelMap.get(timestamp)
+                                : BATTERY_LEVEL_UNKNOWN);
             }
         }
 
@@ -67,8 +68,11 @@
 
         @Override
         public String toString() {
-            return String.format(Locale.ENGLISH, "timestamps: %s; levels: %s",
-                    Objects.toString(mTimestamps), Objects.toString(mLevels));
+            return String.format(
+                    Locale.ENGLISH,
+                    "timestamps: %s; levels: %s",
+                    Objects.toString(mTimestamps),
+                    Objects.toString(mLevels));
         }
 
         private int getIndexByTimestamps(long startTimestamp, long endTimestamp) {
@@ -83,14 +87,15 @@
     }
 
     /**
-     * There could be 2 cases for the daily battery levels:
+     * There could be 2 cases for the daily battery levels: <br>
      * 1) length is 2: The usage data is within 1 day. Only contains start and end data, such as
-     *    data of 2022-01-01 06:00 and 2022-01-01 16:00.
+     * data of 2022-01-01 06:00 and 2022-01-01 16:00. <br>
      * 2) length > 2: The usage data is more than 1 days. The data should be the start, end and 0am
-     *    data of every day between the start and end, such as data of 2022-01-01 06:00,
-     *    2022-01-02 00:00, 2022-01-03 00:00 and 2022-01-03 08:00.
+     * data of every day between the start and end, such as data of 2022-01-01 06:00, 2022-01-02
+     * 00:00, 2022-01-03 00:00 and 2022-01-03 08:00.
      */
     private final PeriodBatteryLevelData mDailyBatteryLevels;
+
     // The size of hourly data must be the size of daily data - 1.
     private final List<PeriodBatteryLevelData> mHourlyBatteryLevelsPerDay;
 
@@ -118,8 +123,9 @@
         final int hourlyHighlightIndex =
                 (dailyHighlightIndex == BatteryChartViewModel.SELECTED_INDEX_INVALID)
                         ? BatteryChartViewModel.SELECTED_INDEX_INVALID
-                        : mHourlyBatteryLevelsPerDay.get(dailyHighlightIndex)
-                        .getIndexByTimestamps(startTimestamp, endTimestamp);
+                        : mHourlyBatteryLevelsPerDay
+                                .get(dailyHighlightIndex)
+                                .getIndexByTimestamps(startTimestamp, endTimestamp);
         return Pair.create(dailyHighlightIndex, hourlyHighlightIndex);
     }
 
@@ -133,14 +139,16 @@
 
     @Override
     public String toString() {
-        return String.format(Locale.ENGLISH,
+        return String.format(
+                Locale.ENGLISH,
                 "dailyBatteryLevels: %s; hourlyBatteryLevelsPerDay: %s",
                 Objects.toString(mDailyBatteryLevels),
                 Objects.toString(mHourlyBatteryLevelsPerDay));
     }
 
     @Nullable
-    static BatteryLevelData combine(@Nullable BatteryLevelData existingBatteryLevelData,
+    static BatteryLevelData combine(
+            @Nullable BatteryLevelData existingBatteryLevelData,
             List<BatteryEvent> batteryLevelRecordEvents) {
         final Map<Long, Integer> batteryLevelMap = new ArrayMap<>(batteryLevelRecordEvents.size());
         for (BatteryEvent event : batteryLevelRecordEvents) {
@@ -152,7 +160,8 @@
             for (int dayIndex = 0; dayIndex < multiDaysData.size(); dayIndex++) {
                 PeriodBatteryLevelData oneDayData = multiDaysData.get(dayIndex);
                 for (int hourIndex = 0; hourIndex < oneDayData.getLevels().size(); hourIndex++) {
-                    batteryLevelMap.put(oneDayData.getTimestamps().get(hourIndex),
+                    batteryLevelMap.put(
+                            oneDayData.getTimestamps().get(hourIndex),
                             oneDayData.getLevels().get(hourIndex));
                 }
             }
@@ -163,11 +172,10 @@
     /**
      * Computes expected daily timestamp slots.
      *
-     * The valid result should be composed of 3 parts:
-     * 1) start timestamp
-     * 2) every 00:00 timestamp (default timezone) between the start and end
-     * 3) end timestamp
-     * Otherwise, returns an empty list.
+     * <p>The valid result should be composed of 3 parts: <br>
+     * 1) start timestamp <br>
+     * 2) every 00:00 timestamp (default timezone) between the start and end <br>
+     * 3) end timestamp Otherwise, returns an empty list.
      */
     @VisibleForTesting
     static List<Long> getDailyTimestamps(final List<Long> timestampList) {
@@ -176,7 +184,8 @@
         final List<Long> dailyTimestampList = new ArrayList<>();
         final long startTimestamp = timestampList.get(0);
         final long endTimestamp = timestampList.get(timestampList.size() - 1);
-        for (long timestamp = startTimestamp; timestamp < endTimestamp;
+        for (long timestamp = startTimestamp;
+                timestamp < endTimestamp;
                 timestamp = TimestampUtils.getNextDayTimestamp(timestamp)) {
             dailyTimestampList.add(timestamp);
         }
@@ -193,7 +202,8 @@
 
             hourlyTimestampsPerDay.add(startTime);
             for (long timestamp = TimestampUtils.getNextEvenHourTimestamp(startTime);
-                    timestamp < endTime; timestamp += TIME_SLOT) {
+                    timestamp < endTime;
+                    timestamp += TIME_SLOT) {
                 hourlyTimestampsPerDay.add(timestamp);
             }
             hourlyTimestampsPerDay.add(endTime);
@@ -203,4 +213,3 @@
         return hourlyTimestamps;
     }
 }
-
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreference.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreference.java
index 2c799fa..bbd1099 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreference.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreference.java
@@ -29,14 +29,10 @@
 import androidx.preference.PreferenceViewHolder;
 
 import com.android.settings.R;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 import com.google.android.material.button.MaterialButton;
 
-/**
- * A preference for displaying the battery tips card view.
- */
+/** A preference for displaying the battery tips card view. */
 public class BatteryTipsCardPreference extends Preference implements View.OnClickListener {
 
     private static final String TAG = "BatteryTipsCardPreference";
@@ -49,23 +45,19 @@
         void onReject();
     }
 
-    private final MetricsFeatureProvider mMetricsFeatureProvider;
     private OnConfirmListener mOnConfirmListener;
     private OnRejectListener mOnRejectListener;
     private int mIconResourceId = 0;
-    private int mMainButtonStrokeColorResourceId = 0;
+    private int mButtonColorResourceId = 0;
 
-    @VisibleForTesting
-    CharSequence mMainButtonLabel;
-    @VisibleForTesting
-    CharSequence mDismissButtonLabel;
+    @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);
-        final FeatureFactory featureFactory = FeatureFactory.getFeatureFactory();
-        mMetricsFeatureProvider = featureFactory.getMetricsFeatureProvider();
     }
 
     public void setOnConfirmListener(OnConfirmListener listener) {
@@ -87,11 +79,11 @@
     }
 
     /**
-     * Sets the stroke color of main button in tips card.
+     * Sets the background color for main button and the text color for dismiss button.
      */
-    public void setMainButtonStrokeColorResourceId(int resourceId) {
-        if (mMainButtonStrokeColorResourceId != resourceId) {
-            mMainButtonStrokeColorResourceId = resourceId;
+    public void setButtonColorResourceId(int resourceId) {
+        if (mButtonColorResourceId != resourceId) {
+            mButtonColorResourceId = resourceId;
             notifyChanged();
         }
     }
@@ -119,7 +111,7 @@
     @Override
     public void onClick(View view) {
         final int viewId = view.getId();
-        if (viewId == R.id.main_button || viewId == R.id.tips_card) {
+        if (viewId == R.id.main_button || viewId == R.id.battery_tips_card) {
             if (mOnConfirmListener != null) {
                 mOnConfirmListener.onConfirm();
             }
@@ -136,17 +128,21 @@
 
         ((TextView) view.findViewById(R.id.title)).setText(getTitle());
 
-        LinearLayout tipsCard = (LinearLayout) view.findViewById(R.id.tips_card);
+        final LinearLayout tipsCard = (LinearLayout) view.findViewById(R.id.battery_tips_card);
         tipsCard.setOnClickListener(this);
-        MaterialButton mainButton = (MaterialButton) view.findViewById(R.id.main_button);
+        final MaterialButton mainButton = (MaterialButton) view.findViewById(R.id.main_button);
         mainButton.setOnClickListener(this);
         mainButton.setText(mMainButtonLabel);
-        if (mMainButtonStrokeColorResourceId != 0) {
-            mainButton.setStrokeColorResource(mMainButtonStrokeColorResourceId);
-        }
-        MaterialButton dismissButton = (MaterialButton) view.findViewById(R.id.dismiss_button);
+        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 44b2421..5a1fb26 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsController.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsController.java
@@ -51,12 +51,9 @@
     private OnAnomalyConfirmListener mOnAnomalyConfirmListener;
     private OnAnomalyRejectListener mOnAnomalyRejectListener;
 
-    @VisibleForTesting
-    BatteryTipsCardPreference mCardPreference;
-    @VisibleForTesting
-    AnomalyEventWrapper mAnomalyEventWrapper = null;
-    @VisibleForTesting
-    Boolean mIsAcceptable = false;
+    @VisibleForTesting BatteryTipsCardPreference mCardPreference;
+    @VisibleForTesting AnomalyEventWrapper mAnomalyEventWrapper = null;
+    @VisibleForTesting Boolean mIsAcceptable = false;
 
     public BatteryTipsController(Context context) {
         super(context, ROOT_PREFERENCE_KEY);
@@ -94,7 +91,8 @@
         }
         mCardPreference.setVisible(false);
         mMetricsFeatureProvider.action(
-                mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_ACCEPT,
+                mContext,
+                SettingsEnums.ACTION_BATTERY_TIPS_CARD_ACCEPT,
                 mAnomalyEventWrapper.getEventId());
     }
 
@@ -117,28 +115,31 @@
         }
 
         // Set battery tips card listener
-        mCardPreference.setOnConfirmListener(() -> {
-            mCardPreference.setVisible(false);
-            if (mOnAnomalyConfirmListener != null) {
-                mOnAnomalyConfirmListener.onAnomalyConfirm();
-            } else if (mAnomalyEventWrapper.launchSubSetting()) {
-                mMetricsFeatureProvider.action(
-                        mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_ACCEPT, eventId);
-            }
-        });
-        mCardPreference.setOnRejectListener(() -> {
-            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(
-                    mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_DISMISS, eventId);
-        });
+        mCardPreference.setOnConfirmListener(
+                () -> {
+                    mCardPreference.setVisible(false);
+                    if (mOnAnomalyConfirmListener != null) {
+                        mOnAnomalyConfirmListener.onAnomalyConfirm();
+                    } else if (mAnomalyEventWrapper.launchSubSetting()) {
+                        mMetricsFeatureProvider.action(
+                                mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_ACCEPT, eventId);
+                    }
+                });
+        mCardPreference.setOnRejectListener(
+                () -> {
+                    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(
+                            mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_DISMISS, eventId);
+                });
 
         mCardPreference.setVisible(true);
         mMetricsFeatureProvider.action(
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java
index 7fedec7..d6f8709 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java
@@ -23,6 +23,7 @@
 import android.os.Handler;
 import android.os.Looper;
 import android.text.TextUtils;
+import android.util.ArrayMap;
 import android.util.ArraySet;
 import android.util.Log;
 import android.view.View;
@@ -50,7 +51,6 @@
 import com.android.settingslib.widget.FooterPreference;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
@@ -58,7 +58,7 @@
 
 /** Controller for battery usage breakdown preference group. */
 public class BatteryUsageBreakdownController extends BasePreferenceController
-        implements LifecycleObserver, OnResume, OnDestroy  {
+        implements LifecycleObserver, OnResume, OnDestroy {
     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";
@@ -74,45 +74,33 @@
     private final MetricsFeatureProvider mMetricsFeatureProvider;
     private final Handler mHandler = new Handler(Looper.getMainLooper());
 
-    @VisibleForTesting
-    final Map<String, Preference> mPreferenceCache = new HashMap<>();
+    @VisibleForTesting final Map<String, Preference> mPreferenceCache = new ArrayMap<>();
 
     private int mSpinnerPosition;
     private String mSlotTimestamp;
 
-    @VisibleForTesting
-    Context mPrefContext;
-    @VisibleForTesting
-    PreferenceCategory mRootPreference;
-    @VisibleForTesting
-    SpinnerPreference mSpinnerPreference;
-    @VisibleForTesting
-    PreferenceGroup mAppListPreferenceGroup;
-    @VisibleForTesting
-    FooterPreference mFooterPreference;
-    @VisibleForTesting
-    BatteryDiffData mBatteryDiffData;
-    @VisibleForTesting
-    String mPercentLessThanThresholdText;
-    @VisibleForTesting
-    boolean mIsHighlightSlot;
-    @VisibleForTesting
-    String mAnomalyEventId;
-    @VisibleForTesting
-    String mAnomalyEntryKey;
-    @VisibleForTesting
-    String mAnomalyHintString;
-    @VisibleForTesting
-    String mAnomalyHintPrefKey;
+    @VisibleForTesting Context mPrefContext;
+    @VisibleForTesting PreferenceCategory mRootPreference;
+    @VisibleForTesting SpinnerPreference mSpinnerPreference;
+    @VisibleForTesting PreferenceGroup mAppListPreferenceGroup;
+    @VisibleForTesting FooterPreference mFooterPreference;
+    @VisibleForTesting BatteryDiffData mBatteryDiffData;
+    @VisibleForTesting String mPercentLessThanThresholdText;
+    @VisibleForTesting boolean mIsHighlightSlot;
+    @VisibleForTesting String mAnomalyEventId;
+    @VisibleForTesting String mAnomalyEntryKey;
+    @VisibleForTesting String mAnomalyHintString;
+    @VisibleForTesting String mAnomalyHintPrefKey;
 
     public BatteryUsageBreakdownController(
-            Context context, Lifecycle lifecycle, SettingsActivity activity,
+            Context context,
+            Lifecycle lifecycle,
+            SettingsActivity activity,
             InstrumentedPreferenceFragment fragment) {
         super(context, ROOT_PREFERENCE_KEY);
         mActivity = activity;
         mFragment = fragment;
-        mMetricsFeatureProvider =
-                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         if (lifecycle != null) {
             lifecycle.addObserver(this);
         }
@@ -133,7 +121,7 @@
 
     @Override
     public void onDestroy() {
-        mHandler.removeCallbacksAndMessages(/*token=*/ null);
+        mHandler.removeCallbacksAndMessages(/* token= */ null);
         mPreferenceCache.clear();
         mAppListPreferenceGroup.removeAll();
     }
@@ -149,14 +137,17 @@
     }
 
     private boolean isAnomalyBatteryDiffEntry(BatteryDiffEntry entry) {
-        return mIsHighlightSlot && mAnomalyEntryKey != null
+        return mIsHighlightSlot
+                && mAnomalyEntryKey != null
                 && mAnomalyEntryKey.equals(entry.getKey());
     }
 
     private String getActionKey(BatteryDiffEntry entry) {
-        final String actionKey = TextUtils.isEmpty(entry.getPackageName())
-                ? PACKAGE_NAME_NONE : entry.getPackageName();
-        return !isAnomalyBatteryDiffEntry(entry) ? actionKey : actionKey + "|"  + mAnomalyEventId;
+        final String actionKey =
+                TextUtils.isEmpty(entry.getPackageName())
+                        ? PACKAGE_NAME_NONE
+                        : entry.getPackageName();
+        return !isAnomalyBatteryDiffEntry(entry) ? actionKey : actionKey + "|" + mAnomalyEventId;
     }
 
     @Override
@@ -174,15 +165,24 @@
                 /* pageId */ SettingsEnums.OPEN_BATTERY_USAGE,
                 getActionKey(diffEntry),
                 (int) Math.round(diffEntry.getPercentage()));
-        Log.d(TAG, String.format("handleClick() label=%s key=%s package=%s",
-                diffEntry.getAppLabel(), diffEntry.getKey(), diffEntry.getPackageName()));
-        final String anomalyHintPrefKey = isAnomalyBatteryDiffEntry(diffEntry)
-                ? mAnomalyHintPrefKey : null;
-        final String anomalyHintText = isAnomalyBatteryDiffEntry(diffEntry)
-                ? mAnomalyHintString : null;
-        AdvancedPowerUsageDetail.startBatteryDetailPage(mActivity, mFragment.getMetricsCategory(),
-                diffEntry, powerPref.getPercentage(), mSlotTimestamp,
-                /*showTimeInformation=*/ true, anomalyHintPrefKey, anomalyHintText);
+        Log.d(
+                TAG,
+                String.format(
+                        "handleClick() label=%s key=%s package=%s",
+                        diffEntry.getAppLabel(), diffEntry.getKey(), diffEntry.getPackageName()));
+        final String anomalyHintPrefKey =
+                isAnomalyBatteryDiffEntry(diffEntry) ? mAnomalyHintPrefKey : null;
+        final String anomalyHintText =
+                isAnomalyBatteryDiffEntry(diffEntry) ? mAnomalyHintString : null;
+        AdvancedPowerUsageDetail.startBatteryDetailPage(
+                mActivity,
+                mFragment.getMetricsCategory(),
+                diffEntry,
+                powerPref.getPercentage(),
+                mSlotTimestamp,
+                /* showTimeInformation= */ true,
+                anomalyHintPrefKey,
+                anomalyHintText);
         return true;
     }
 
@@ -194,15 +194,16 @@
         mSpinnerPreference = screen.findPreference(SPINNER_PREFERENCE_KEY);
         mAppListPreferenceGroup = screen.findPreference(APP_LIST_PREFERENCE_KEY);
         mFooterPreference = screen.findPreference(FOOTER_PREFERENCE_KEY);
-        mPercentLessThanThresholdText = mPrefContext.getString(
-                R.string.battery_usage_less_than_percent,
-                Utils.formatPercentage(BatteryDiffData.SMALL_PERCENTAGE_THRESHOLD, false));
+        mPercentLessThanThresholdText =
+                mPrefContext.getString(
+                        R.string.battery_usage_less_than_percent,
+                        Utils.formatPercentage(BatteryDiffData.SMALL_PERCENTAGE_THRESHOLD, false));
 
         mAppListPreferenceGroup.setOrderingAsAdded(false);
         mSpinnerPreference.initializeSpinner(
-                new String[]{
-                        mPrefContext.getString(R.string.battery_usage_spinner_view_by_apps),
-                        mPrefContext.getString(R.string.battery_usage_spinner_view_by_systems)
+                new String[] {
+                    mPrefContext.getString(R.string.battery_usage_spinner_view_by_apps),
+                    mPrefContext.getString(R.string.battery_usage_spinner_view_by_systems)
                 },
                 new AdapterView.OnItemSelectedListener() {
                     @Override
@@ -210,35 +211,38 @@
                             AdapterView<?> parent, View view, int position, long id) {
                         if (mSpinnerPosition != position) {
                             mSpinnerPosition = position;
-                            mHandler.post(() -> {
-                                removeAndCacheAllUnusedPreferences();
-                                addAllPreferences();
-                                mMetricsFeatureProvider.action(
-                                        mPrefContext,
-                                        SettingsEnums.ACTION_BATTERY_USAGE_SPINNER,
-                                        mSpinnerPosition);
-                            });
+                            mHandler.post(
+                                    () -> {
+                                        removeAndCacheAllUnusedPreferences();
+                                        addAllPreferences();
+                                        mMetricsFeatureProvider.action(
+                                                mPrefContext,
+                                                SettingsEnums.ACTION_BATTERY_USAGE_SPINNER,
+                                                mSpinnerPosition);
+                                    });
                         }
                     }
 
                     @Override
-                    public void onNothingSelected(AdapterView<?> parent) {
-                    }
+                    public void onNothingSelected(AdapterView<?> parent) {}
                 });
     }
 
     /**
      * Updates UI when the battery usage is updated.
-     * @param slotUsageData The battery usage diff data for the selected slot. This is used in
-     *                      the app list.
+     *
+     * @param slotUsageData The battery usage diff data for the selected slot. This is used in the
+     *     app list.
      * @param slotTimestamp The selected slot timestamp information. This is used in the battery
-     *                      usage breakdown category.
-     * @param isAllUsageDataEmpty Whether all the battery usage data is null or empty. This is
-     *                            used when showing the footer.
+     *     usage breakdown category.
+     * @param isAllUsageDataEmpty Whether all the battery usage data is null or empty. This is used
+     *     when showing the footer.
      */
     void handleBatteryUsageUpdated(
-            BatteryDiffData slotUsageData, String slotTimestamp,
-            boolean isAllUsageDataEmpty, boolean isHighlightSlot,
+            BatteryDiffData slotUsageData,
+            String slotTimestamp,
+            boolean isAllUsageDataEmpty,
+            boolean isHighlightSlot,
             Optional<AnomalyEventWrapper> optionalAnomalyEventWrapper) {
         mBatteryDiffData = slotUsageData;
         mSlotTimestamp = slotTimestamp;
@@ -247,14 +251,15 @@
         if (optionalAnomalyEventWrapper != null) {
             final AnomalyEventWrapper anomalyEventWrapper =
                     optionalAnomalyEventWrapper.orElse(null);
-            mAnomalyEventId = anomalyEventWrapper != null
-                    ? anomalyEventWrapper.getEventId() : null;
-            mAnomalyEntryKey = anomalyEventWrapper != null
-                    ? anomalyEventWrapper.getAnomalyEntryKey() : null;
-            mAnomalyHintString = anomalyEventWrapper != null
-                    ? anomalyEventWrapper.getAnomalyHintString() : null;
-            mAnomalyHintPrefKey = anomalyEventWrapper != null
-                    ? anomalyEventWrapper.getAnomalyHintPrefKey() : null;
+            mAnomalyEventId = anomalyEventWrapper != null ? anomalyEventWrapper.getEventId() : null;
+            mAnomalyEntryKey =
+                    anomalyEventWrapper != null ? anomalyEventWrapper.getAnomalyEntryKey() : null;
+            mAnomalyHintString =
+                    anomalyEventWrapper != null ? anomalyEventWrapper.getAnomalyHintString() : null;
+            mAnomalyHintPrefKey =
+                    anomalyEventWrapper != null
+                            ? anomalyEventWrapper.getAnomalyHintPrefKey()
+                            : null;
         }
 
         showCategoryTitle(slotTimestamp);
@@ -263,35 +268,39 @@
     }
 
     private void showCategoryTitle(String slotTimestamp) {
-        mRootPreference.setTitle(slotTimestamp == null
-                ? mPrefContext.getString(
-                        R.string.battery_usage_breakdown_title_since_last_full_charge)
-                : mPrefContext.getString(
-                        R.string.battery_usage_breakdown_title_for_slot, slotTimestamp));
+        mRootPreference.setTitle(
+                slotTimestamp == null
+                        ? mPrefContext.getString(
+                                R.string.battery_usage_breakdown_title_since_last_full_charge)
+                        : mPrefContext.getString(
+                                R.string.battery_usage_breakdown_title_for_slot, slotTimestamp));
         mRootPreference.setVisible(true);
     }
 
     private void showFooterPreference(boolean isAllBatteryUsageEmpty) {
-        mFooterPreference.setTitle(mPrefContext.getString(
-                isAllBatteryUsageEmpty
-                        ? R.string.battery_usage_screen_footer_empty
-                        : R.string.battery_usage_screen_footer));
+        mFooterPreference.setTitle(
+                mPrefContext.getString(
+                        isAllBatteryUsageEmpty
+                                ? R.string.battery_usage_screen_footer_empty
+                                : R.string.battery_usage_screen_footer));
         mFooterPreference.setVisible(true);
     }
 
     private void showSpinnerAndAppList() {
         if (mBatteryDiffData == null) {
-            mHandler.post(() -> {
-                removeAndCacheAllUnusedPreferences();
-            });
+            mHandler.post(
+                    () -> {
+                        removeAndCacheAllUnusedPreferences();
+                    });
             return;
         }
         mSpinnerPreference.setVisible(true);
         mAppListPreferenceGroup.setVisible(true);
-        mHandler.post(() -> {
-            removeAndCacheAllUnusedPreferences();
-            addAllPreferences();
-        });
+        mHandler.post(
+                () -> {
+                    removeAndCacheAllUnusedPreferences();
+                    addAllPreferences();
+                });
     }
 
     private List<BatteryDiffEntry> getBatteryDiffEntries() {
@@ -348,8 +357,11 @@
             }
             prefIndex++;
         }
-        Log.d(TAG, String.format("addAllPreferences() is finished in %d/ms",
-                (System.currentTimeMillis() - start)));
+        Log.d(
+                TAG,
+                String.format(
+                        "addAllPreferences() is finished in %d/ms",
+                        (System.currentTimeMillis() - start)));
     }
 
     @VisibleForTesting
@@ -372,8 +384,7 @@
     }
 
     @VisibleForTesting
-    void setPreferencePercentage(
-            PowerGaugePreference preference, BatteryDiffEntry entry) {
+    void setPreferencePercentage(PowerGaugePreference preference, BatteryDiffEntry entry) {
         preference.setPercentage(
                 entry.getPercentage() < BatteryDiffData.SMALL_PERCENTAGE_THRESHOLD
                         ? mPercentLessThanThresholdText
@@ -383,11 +394,13 @@
     }
 
     @VisibleForTesting
-    void setPreferenceSummary(
-            PowerGaugePreference preference, BatteryDiffEntry entry) {
+    void setPreferenceSummary(PowerGaugePreference preference, BatteryDiffEntry entry) {
         preference.setSummary(
-                BatteryUtils.buildBatteryUsageTimeSummary(mPrefContext, entry.isSystemEntry(),
-                        entry.mForegroundUsageTimeInMs, entry.mBackgroundUsageTimeInMs,
+                BatteryUtils.buildBatteryUsageTimeSummary(
+                        mPrefContext,
+                        entry.isSystemEntry(),
+                        entry.mForegroundUsageTimeInMs,
+                        entry.mBackgroundUsageTimeInMs,
                         entry.mScreenOnTimeInMs));
     }
 }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiver.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiver.java
index 63f0d40..9fb70fa 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiver.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiver.java
@@ -36,23 +36,23 @@
 /** A {@link BatteryUsageBroadcastReceiver} for battery usage data requesting. */
 public final class BatteryUsageBroadcastReceiver extends BroadcastReceiver {
     private static final String TAG = "BatteryUsageBroadcastReceiver";
+
     /** An intent action to request Settings to clear cache data. */
     public static final String ACTION_CLEAR_BATTERY_CACHE_DATA =
             "com.android.settings.battery.action.CLEAR_BATTERY_CACHE_DATA";
+
     /** An intent action for power is plugging. */
     public static final String ACTION_BATTERY_PLUGGING =
             "com.android.settings.battery.action.ACTION_BATTERY_PLUGGING";
+
     /** An intent action for power is unplugging. */
     public static final String ACTION_BATTERY_UNPLUGGING =
             "com.android.settings.battery.action.ACTION_BATTERY_UNPLUGGING";
 
-    @VisibleForTesting
-    static long sBroadcastDelayFromBoot = Duration.ofMinutes(40).toMillis();
-    @VisibleForTesting
-    static boolean sIsDebugMode = Build.TYPE.equals("userdebug");
+    @VisibleForTesting static long sBroadcastDelayFromBoot = Duration.ofMinutes(40).toMillis();
+    @VisibleForTesting static boolean sIsDebugMode = Build.TYPE.equals("userdebug");
 
-    @VisibleForTesting
-    boolean mFetchBatteryUsageData = false;
+    @VisibleForTesting boolean mFetchBatteryUsageData = false;
 
     private final ExecutorService mExecutor = Executors.newSingleThreadExecutor();
 
@@ -63,10 +63,15 @@
         }
         final String action = intent.getAction();
         Log.d(TAG, "onReceive:" + action);
+        if (DatabaseUtils.isWorkProfile(context)) {
+            Log.w(TAG, "do nothing for work profile action=" + action);
+            return;
+        }
         DatabaseUtils.recordDateTime(context, action);
-        final String fullChargeIntentAction = FeatureFactory.getFeatureFactory()
-                .getPowerUsageFeatureProvider()
-                .getFullChargeIntentAction();
+        final String fullChargeIntentAction =
+                FeatureFactory.getFeatureFactory()
+                        .getPowerUsageFeatureProvider()
+                        .getFullChargeIntentAction();
         switch (action) {
             case Intent.ACTION_BATTERY_LEVEL_CHANGED:
                 // Only when fullChargeIntentAction is ACTION_BATTERY_LEVEL_CHANGED,
@@ -113,13 +118,16 @@
         final long broadcastDelay = sBroadcastDelayFromBoot - SystemClock.elapsedRealtime();
         // If current boot time is smaller than expected delay, cancel sending the broadcast.
         if (delayHourlyJobWhenBooting && broadcastDelay > 0) {
-            Log.d(TAG, "cancel sendBroadcastToFetchUsageData when broadcastDelay is "
-                    + broadcastDelay + "ms.");
+            Log.d(
+                    TAG,
+                    "cancel sendBroadcastToFetchUsageData when broadcastDelay is "
+                            + broadcastDelay
+                            + "ms.");
             return;
         }
 
         mFetchBatteryUsageData = true;
-        BatteryUsageDataLoader.enqueueWork(context, /*isFullChargeStart=*/ true);
+        BatteryUsageDataLoader.enqueueWork(context, /* isFullChargeStart= */ true);
         BootBroadcastReceiver.invokeJobRecheck(context);
     }
 
@@ -127,7 +135,11 @@
         final long timestamp = System.currentTimeMillis();
         final Intent intent = BatteryUtils.getBatteryIntent(context);
         final int batteryLevel = BatteryStatus.getBatteryLevel(intent);
-        mExecutor.execute(() -> DatabaseUtils.sendBatteryEventData(context,
-                ConvertUtils.convertToBatteryEvent(timestamp, batteryEventType, batteryLevel)));
+        mExecutor.execute(
+                () ->
+                        DatabaseUtils.sendBatteryEventData(
+                                context,
+                                ConvertUtils.convertToBatteryEvent(
+                                        timestamp, batteryEventType, batteryLevel)));
     }
 }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProvider.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProvider.java
index edba7c4..4f2ee79 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProvider.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProvider.java
@@ -53,6 +53,7 @@
 
     /** Codes */
     private static final int BATTERY_STATE_CODE = 1;
+
     private static final int APP_USAGE_LATEST_TIMESTAMP_CODE = 2;
     private static final int APP_USAGE_EVENT_CODE = 3;
     private static final int BATTERY_EVENT_CODE = 4;
@@ -67,32 +68,32 @@
     static {
         sUriMatcher.addURI(
                 DatabaseUtils.AUTHORITY,
-                /*path=*/ DatabaseUtils.BATTERY_STATE_TABLE,
-                /*code=*/ BATTERY_STATE_CODE);
+                /* path= */ DatabaseUtils.BATTERY_STATE_TABLE,
+                /* code= */ BATTERY_STATE_CODE);
         sUriMatcher.addURI(
                 DatabaseUtils.AUTHORITY,
-                /*path=*/ DatabaseUtils.APP_USAGE_LATEST_TIMESTAMP_PATH,
-                /*code=*/ APP_USAGE_LATEST_TIMESTAMP_CODE);
+                /* path= */ DatabaseUtils.APP_USAGE_LATEST_TIMESTAMP_PATH,
+                /* code= */ APP_USAGE_LATEST_TIMESTAMP_CODE);
         sUriMatcher.addURI(
                 DatabaseUtils.AUTHORITY,
-                /*path=*/ DatabaseUtils.APP_USAGE_EVENT_TABLE,
-                /*code=*/ APP_USAGE_EVENT_CODE);
+                /* path= */ DatabaseUtils.APP_USAGE_EVENT_TABLE,
+                /* code= */ APP_USAGE_EVENT_CODE);
         sUriMatcher.addURI(
                 DatabaseUtils.AUTHORITY,
-                /*path=*/ DatabaseUtils.BATTERY_EVENT_TABLE,
-                /*code=*/ BATTERY_EVENT_CODE);
+                /* path= */ DatabaseUtils.BATTERY_EVENT_TABLE,
+                /* code= */ BATTERY_EVENT_CODE);
         sUriMatcher.addURI(
                 DatabaseUtils.AUTHORITY,
-                /*path=*/ DatabaseUtils.LAST_FULL_CHARGE_TIMESTAMP_PATH,
-                /*code=*/ LAST_FULL_CHARGE_TIMESTAMP_CODE);
+                /* path= */ DatabaseUtils.LAST_FULL_CHARGE_TIMESTAMP_PATH,
+                /* code= */ LAST_FULL_CHARGE_TIMESTAMP_CODE);
         sUriMatcher.addURI(
                 DatabaseUtils.AUTHORITY,
-                /*path=*/ DatabaseUtils.BATTERY_STATE_LATEST_TIMESTAMP_PATH,
-                /*code=*/ BATTERY_STATE_LATEST_TIMESTAMP_CODE);
+                /* path= */ DatabaseUtils.BATTERY_STATE_LATEST_TIMESTAMP_PATH,
+                /* code= */ BATTERY_STATE_LATEST_TIMESTAMP_CODE);
         sUriMatcher.addURI(
                 DatabaseUtils.AUTHORITY,
-                /*path=*/ DatabaseUtils.BATTERY_USAGE_SLOT_TABLE,
-                /*code=*/ BATTERY_USAGE_SLOT_CODE);
+                /* path= */ DatabaseUtils.BATTERY_USAGE_SLOT_TABLE,
+                /* code= */ BATTERY_USAGE_SLOT_CODE);
     }
 
     private Clock mClock;
@@ -177,7 +178,7 @@
                     throw new IllegalArgumentException("unknown URI: " + uri);
             }
         } catch (RuntimeException e) {
-            if (e instanceof  IllegalArgumentException) {
+            if (e instanceof IllegalArgumentException) {
                 throw e;
             }
             Log.e(TAG, "insert() from:" + uri + " error:", e);
@@ -208,8 +209,10 @@
         } catch (RuntimeException e) {
             Log.e(TAG, "query() from:" + uri + " error:", e);
         }
-        Log.d(TAG, String.format("getLastFullChargeTimestamp() in %d/ms",
-                mClock.millis() - timestamp));
+        Log.d(
+                TAG,
+                String.format(
+                        "getLastFullChargeTimestamp() in %d/ms", mClock.millis() - timestamp));
         return cursor;
     }
 
@@ -222,8 +225,11 @@
         } catch (RuntimeException e) {
             Log.e(TAG, "query() from:" + uri + " error:", e);
         }
-        Log.d(TAG, String.format("getBatteryStateLatestTimestamp() no later than %d in %d/ms",
-                queryTimestamp, mClock.millis() - timestamp));
+        Log.d(
+                TAG,
+                String.format(
+                        "getBatteryStateLatestTimestamp() no later than %d in %d/ms",
+                        queryTimestamp, mClock.millis() - timestamp));
         return cursor;
     }
 
@@ -236,8 +242,11 @@
         } catch (RuntimeException e) {
             Log.e(TAG, "query() from:" + uri + " error:", e);
         }
-        Log.d(TAG, String.format("getBatteryStates() after %d in %d/ms",
-                queryTimestamp, mClock.millis() - timestamp));
+        Log.d(
+                TAG,
+                String.format(
+                        "getBatteryStates() after %d in %d/ms",
+                        queryTimestamp, mClock.millis() - timestamp));
         return cursor;
     }
 
@@ -270,8 +279,11 @@
         } catch (RuntimeException e) {
             Log.e(TAG, "query() from:" + uri + " error:", e);
         }
-        Log.d(TAG, String.format("getAppUsageLatestTimestamp() for user %d in %d/ms",
-                queryUserId, (mClock.millis() - timestamp)));
+        Log.d(
+                TAG,
+                String.format(
+                        "getAppUsageLatestTimestamp() for user %d in %d/ms",
+                        queryUserId, (mClock.millis() - timestamp)));
         return cursor;
     }
 
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java
index 4a336eb..ead580b 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java
@@ -39,21 +39,18 @@
     private static final String TAG = "BatteryUsageDataLoader";
 
     // For testing only.
-    @VisibleForTesting
-    static Supplier<List<BatteryEntry>> sFakeBatteryEntryListSupplier;
-    @VisibleForTesting
-    static Supplier<Map<Long, UsageEvents>> sFakeAppUsageEventsSupplier;
-    @VisibleForTesting
-    static Supplier<List<AppUsageEvent>> sFakeUsageEventsListSupplier;
+    @VisibleForTesting static Supplier<List<BatteryEntry>> sFakeBatteryEntryListSupplier;
+    @VisibleForTesting static Supplier<Map<Long, UsageEvents>> sFakeAppUsageEventsSupplier;
+    @VisibleForTesting static Supplier<List<AppUsageEvent>> sFakeUsageEventsListSupplier;
 
-    private BatteryUsageDataLoader() {
-    }
+    private BatteryUsageDataLoader() {}
 
     static void enqueueWork(final Context context, final boolean isFullChargeStart) {
-        AsyncTask.execute(() -> {
-            Log.d(TAG, "loadUsageDataSafely() in the AsyncTask");
-            loadUsageDataSafely(context.getApplicationContext(), isFullChargeStart);
-        });
+        AsyncTask.execute(
+                () -> {
+                    Log.d(TAG, "loadUsageDataSafely() in the AsyncTask");
+                    loadUsageDataSafely(context.getApplicationContext(), isFullChargeStart);
+                });
     }
 
     @VisibleForTesting
@@ -62,19 +59,21 @@
         final long currentTime = System.currentTimeMillis();
         final BatteryUsageStats batteryUsageStats = DataProcessor.getBatteryUsageStats(context);
         final List<BatteryEntry> batteryEntryList =
-                sFakeBatteryEntryListSupplier != null ? sFakeBatteryEntryListSupplier.get()
-                        : DataProcessor.generateBatteryEntryListFromBatteryUsageStats(context,
-                                batteryUsageStats);
+                sFakeBatteryEntryListSupplier != null
+                        ? sFakeBatteryEntryListSupplier.get()
+                        : DataProcessor.generateBatteryEntryListFromBatteryUsageStats(
+                                context, batteryUsageStats);
         if (batteryEntryList == null || batteryEntryList.isEmpty()) {
             Log.w(TAG, "getBatteryEntryList() returns null or empty content");
         }
         final long elapsedTime = System.currentTimeMillis() - currentTime;
         Log.d(TAG, String.format("getBatteryUsageStats() in %d/ms", elapsedTime));
         if (isFullChargeStart) {
-            DatabaseUtils.recordDateTime(
-                    context, DatabaseUtils.KEY_LAST_LOAD_FULL_CHARGE_TIME);
-            DatabaseUtils.sendBatteryEventData(context, ConvertUtils.convertToBatteryEvent(
-                    currentTime, BatteryEventType.FULL_CHARGED, 100));
+            DatabaseUtils.recordDateTime(context, DatabaseUtils.KEY_LAST_LOAD_FULL_CHARGE_TIME);
+            DatabaseUtils.sendBatteryEventData(
+                    context,
+                    ConvertUtils.convertToBatteryEvent(
+                            currentTime, BatteryEventType.FULL_CHARGED, 100));
             DatabaseUtils.removeDismissedPowerAnomalyKeys(context);
         }
 
@@ -105,8 +104,11 @@
             return;
         }
         final long elapsedTime = System.currentTimeMillis() - start;
-        Log.d(TAG, String.format("loadAppUsageData() size=%d in %d/ms", appUsageEventList.size(),
-                elapsedTime));
+        Log.d(
+                TAG,
+                String.format(
+                        "loadAppUsageData() size=%d in %d/ms",
+                        appUsageEventList.size(), elapsedTime));
         // Uploads the AppUsageEvent data into database.
         DatabaseUtils.sendAppUsageEventData(context, appUsageEventList);
     }
@@ -114,18 +116,28 @@
     private static void preprocessBatteryUsageSlots(final Context context) {
         final long start = System.currentTimeMillis();
         final Handler handler = new Handler(Looper.getMainLooper());
-        final BatteryLevelData batteryLevelData = DataProcessManager.getBatteryLevelData(
-                context, handler, /*isFromPeriodJob=*/ true,
-                batteryDiffDataMap -> {
-                    DatabaseUtils.sendBatteryUsageSlotData(context,
-                            ConvertUtils.convertToBatteryUsageSlotList(batteryDiffDataMap));
-                    if (batteryDiffDataMap.values().stream().anyMatch(data ->
-                            data != null && (!data.getAppDiffEntryList().isEmpty()
-                                    || !data.getSystemDiffEntryList().isEmpty()))) {
-                        FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider()
-                                .detectSettingsAnomaly(context, /* displayDrain= */ 0);
-                    }
-                });
+        final BatteryLevelData batteryLevelData =
+                DataProcessManager.getBatteryLevelData(
+                        context,
+                        handler,
+                        /* isFromPeriodJob= */ true,
+                        batteryDiffDataMap -> {
+                            DatabaseUtils.sendBatteryUsageSlotData(
+                                    context,
+                                    ConvertUtils.convertToBatteryUsageSlotList(batteryDiffDataMap));
+                            if (batteryDiffDataMap.values().stream()
+                                    .anyMatch(
+                                            data ->
+                                                    data != null
+                                                            && (!data.getSystemDiffEntryList()
+                                                                            .isEmpty()
+                                                                    || !data.getAppDiffEntryList()
+                                                                            .isEmpty()))) {
+                                FeatureFactory.getFeatureFactory()
+                                        .getPowerUsageFeatureProvider()
+                                        .detectSettingsAnomaly(context, /* displayDrain= */ 0);
+                            }
+                        });
         if (batteryLevelData == null) {
             Log.d(TAG, "preprocessBatteryUsageSlots() no new battery usage data.");
             return;
@@ -133,9 +145,11 @@
 
         DatabaseUtils.sendBatteryEventData(
                 context, ConvertUtils.convertToBatteryEventList(batteryLevelData));
-        Log.d(TAG, String.format(
-                "preprocessBatteryUsageSlots() batteryLevelData=%s in %d/ms",
-                batteryLevelData, System.currentTimeMillis() - start));
+        Log.d(
+                TAG,
+                String.format(
+                        "preprocessBatteryUsageSlots() batteryLevelData=%s in %d/ms",
+                        batteryLevelData, System.currentTimeMillis() - start));
     }
 
     private static void loadUsageDataSafely(
@@ -148,8 +162,10 @@
                 loadAppUsageData(context);
                 preprocessBatteryUsageSlots(context);
             }
-            Log.d(TAG, String.format(
-                    "loadUsageDataSafely() in %d/ms", System.currentTimeMillis() - start));
+            Log.d(
+                    TAG,
+                    String.format(
+                            "loadUsageDataSafely() in %d/ms", System.currentTimeMillis() - start));
         } catch (RuntimeException e) {
             Log.e(TAG, "loadUsageData:", e);
         }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageStatsLoader.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageStatsLoader.java
index 7f112ae..26cd096 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageStatsLoader.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageStatsLoader.java
@@ -24,9 +24,7 @@
 
 import com.android.settingslib.utils.AsyncLoaderCompat;
 
-/**
- * Loader to get new {@link BatteryUsageStats} in the background
- */
+/** Loader to get new {@link BatteryUsageStats} in the background */
 public class BatteryUsageStatsLoader extends AsyncLoaderCompat<BatteryUsageStats> {
     private static final String TAG = "BatteryUsageStatsLoader";
     private final BatteryStatsManager mBatteryStatsManager;
@@ -55,6 +53,5 @@
     }
 
     @Override
-    protected void onDiscardResult(BatteryUsageStats result) {
-    }
+    protected void onDiscardResult(BatteryUsageStats result) {}
 }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BootBroadcastReceiver.java b/src/com/android/settings/fuelgauge/batteryusage/BootBroadcastReceiver.java
index ebf1543..94f9dc3 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BootBroadcastReceiver.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BootBroadcastReceiver.java
@@ -70,8 +70,7 @@
                 break;
             case Intent.ACTION_TIME_CHANGED:
                 Log.d(TAG, "refresh job and clear all data from action=" + action);
-                DatabaseUtils.clearAll(context);
-                PeriodicJobManager.getInstance(context).refreshJob(/*fromBoot=*/ false);
+                DatabaseUtils.clearDataAfterTimeChangedIfNeeded(context);
                 break;
             default:
                 Log.w(TAG, "receive unsupported action=" + action);
@@ -104,6 +103,6 @@
     }
 
     private static void refreshJobs(Context context) {
-        PeriodicJobManager.getInstance(context).refreshJob(/*fromBoot=*/ true);
+        PeriodicJobManager.getInstance(context).refreshJob(/* fromBoot= */ true);
     }
 }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/ConvertUtils.java b/src/com/android/settings/fuelgauge/batteryusage/ConvertUtils.java
index a1987c9..ae93734 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/ConvertUtils.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/ConvertUtils.java
@@ -57,15 +57,16 @@
     /** A fake package name to represent no BatteryEntry data. */
     public static final String FAKE_PACKAGE_NAME = "fake_package";
 
-    @IntDef(prefix = {"CONSUMER_TYPE"}, value = {
-            CONSUMER_TYPE_UNKNOWN,
-            CONSUMER_TYPE_UID_BATTERY,
-            CONSUMER_TYPE_USER_BATTERY,
-            CONSUMER_TYPE_SYSTEM_BATTERY,
-    })
+    @IntDef(
+            prefix = {"CONSUMER_TYPE"},
+            value = {
+                CONSUMER_TYPE_UNKNOWN,
+                CONSUMER_TYPE_UID_BATTERY,
+                CONSUMER_TYPE_USER_BATTERY,
+                CONSUMER_TYPE_SYSTEM_BATTERY,
+            })
     @Retention(RetentionPolicy.SOURCE)
-    public @interface ConsumerType {
-    }
+    public @interface ConsumerType {}
 
     public static final int CONSUMER_TYPE_UNKNOWN = 0;
     public static final int CONSUMER_TYPE_UID_BATTERY = 1;
@@ -75,11 +76,9 @@
     public static final int DEFAULT_USAGE_SOURCE = UsageStatsManager.USAGE_SOURCE_CURRENT_ACTIVITY;
     public static final int EMPTY_USAGE_SOURCE = -1;
 
-    @VisibleForTesting
-    static int sUsageSource = EMPTY_USAGE_SOURCE;
+    @VisibleForTesting static int sUsageSource = EMPTY_USAGE_SOURCE;
 
-    private ConvertUtils() {
-    }
+    private ConvertUtils() {}
 
     /** Whether {@code consumerType} is app consumer or not. */
     public static boolean isUidConsumer(final int consumerType) {
@@ -109,17 +108,19 @@
         final ContentValues values = new ContentValues();
         if (entry != null && batteryUsageStats != null) {
             values.put(BatteryHistEntry.KEY_UID, Long.valueOf(entry.getUid()));
-            values.put(BatteryHistEntry.KEY_USER_ID,
+            values.put(
+                    BatteryHistEntry.KEY_USER_ID,
                     Long.valueOf(UserHandle.getUserId(entry.getUid())));
-            values.put(BatteryHistEntry.KEY_PACKAGE_NAME,
-                    entry.getDefaultPackageName());
-            values.put(BatteryHistEntry.KEY_CONSUMER_TYPE,
-                    Integer.valueOf(entry.getConsumerType()));
+            final String packageName = entry.getDefaultPackageName();
+            values.put(BatteryHistEntry.KEY_PACKAGE_NAME, packageName != null ? packageName : "");
+            values.put(
+                    BatteryHistEntry.KEY_CONSUMER_TYPE, Integer.valueOf(entry.getConsumerType()));
         } else {
             values.put(BatteryHistEntry.KEY_PACKAGE_NAME, FAKE_PACKAGE_NAME);
         }
         values.put(BatteryHistEntry.KEY_TIMESTAMP, Long.valueOf(timestamp));
-        values.put(BatteryHistEntry.KEY_IS_FULL_CHARGE_CYCLE_START,
+        values.put(
+                BatteryHistEntry.KEY_IS_FULL_CHARGE_CYCLE_START,
                 Boolean.valueOf(isFullChargeStart));
         final BatteryInformation batteryInformation =
                 constructBatteryInformation(
@@ -129,7 +130,8 @@
                         batteryStatus,
                         batteryHealth,
                         bootTimestamp);
-        values.put(BatteryHistEntry.KEY_BATTERY_INFORMATION,
+        values.put(
+                BatteryHistEntry.KEY_BATTERY_INFORMATION,
                 convertBatteryInformationToString(batteryInformation));
         // Save the BatteryInformation unencoded string into database for debugging.
         if (Build.TYPE.equals("userdebug")) {
@@ -166,7 +168,8 @@
             final BatteryUsageSlot batteryUsageSlot) {
         final ContentValues values = new ContentValues(2);
         values.put(BatteryUsageSlotEntity.KEY_TIMESTAMP, batteryUsageSlot.getStartTimestamp());
-        values.put(BatteryUsageSlotEntity.KEY_BATTERY_USAGE_SLOT,
+        values.put(
+                BatteryUsageSlotEntity.KEY_BATTERY_USAGE_SLOT,
                 Base64.encodeToString(batteryUsageSlot.toByteArray(), Base64.DEFAULT));
         return values;
     }
@@ -200,33 +203,36 @@
 
     /** Converts to {@link BatteryHistEntry} */
     public static BatteryHistEntry convertToBatteryHistEntry(
-            BatteryEntry entry,
-            BatteryUsageStats batteryUsageStats) {
+            BatteryEntry entry, BatteryUsageStats batteryUsageStats) {
         return new BatteryHistEntry(
                 convertBatteryEntryToContentValues(
                         entry,
                         batteryUsageStats,
-                        /*batteryLevel=*/ 0,
-                        /*batteryStatus=*/ 0,
-                        /*batteryHealth=*/ 0,
-                        /*bootTimestamp=*/ 0,
-                        /*timestamp=*/ 0,
-                        /*isFullChargeStart=*/ false));
+                        /* batteryLevel= */ 0,
+                        /* batteryStatus= */ 0,
+                        /* batteryHealth= */ 0,
+                        /* bootTimestamp= */ 0,
+                        /* timestamp= */ 0,
+                        /* isFullChargeStart= */ false));
     }
 
     /** Converts from {@link Event} to {@link AppUsageEvent} */
     @Nullable
     public static AppUsageEvent convertToAppUsageEvent(
-            Context context, IUsageStatsManager usageStatsManager, final Event event,
+            Context context,
+            IUsageStatsManager usageStatsManager,
+            final Event event,
             final long userId) {
         final String packageName = event.getPackageName();
         if (packageName == null) {
             // See b/190609174: Event package names should never be null, but sometimes they are.
             // Note that system events like device shutting down should still come with the android
             // package name.
-            Log.w(TAG, String.format(
-                    "Ignoring a usage event with null package name (timestamp=%d, type=%d)",
-                    event.getTimeStamp(), event.getEventType()));
+            Log.w(
+                    TAG,
+                    String.format(
+                            "Ignoring a usage event with null package name (timestamp=%d, type=%d)",
+                            event.getTimeStamp(), event.getEventType()));
             return null;
         }
 
@@ -246,13 +252,16 @@
                 getEffectivePackageName(
                         context, usageStatsManager, packageName, taskRootPackageName);
         try {
-            final long uid = context
-                    .getPackageManager()
-                    .getPackageUidAsUser(effectivePackageName, (int) userId);
+            final long uid =
+                    context.getPackageManager()
+                            .getPackageUidAsUser(effectivePackageName, (int) userId);
             appUsageEventBuilder.setUid(uid);
         } catch (PackageManager.NameNotFoundException e) {
-            Log.w(TAG, String.format(
-                    "Fail to get uid for package %s of user %d)", event.getPackageName(), userId));
+            Log.w(
+                    TAG,
+                    String.format(
+                            "Fail to get uid for package %s of user %d)",
+                            event.getPackageName(), userId));
             return null;
         }
 
@@ -300,8 +309,7 @@
         eventBuilder.setTimestamp(getLongFromCursor(cursor, BatteryEventEntity.KEY_TIMESTAMP));
         eventBuilder.setType(
                 BatteryEventType.forNumber(
-                        getIntegerFromCursor(
-                                cursor, BatteryEventEntity.KEY_BATTERY_EVENT_TYPE)));
+                        getIntegerFromCursor(cursor, BatteryEventEntity.KEY_BATTERY_EVENT_TYPE)));
         eventBuilder.setBatteryLevel(
                 getIntegerFromCursor(cursor, BatteryEventEntity.KEY_BATTERY_LEVEL));
         return eventBuilder.build();
@@ -315,10 +323,11 @@
                 batteryLevelData.getHourlyBatteryLevelsPerDay();
         for (BatteryLevelData.PeriodBatteryLevelData oneDayData : levelDataList) {
             for (int hourIndex = 0; hourIndex < oneDayData.getLevels().size() - 1; hourIndex++) {
-                batteryEventList.add(convertToBatteryEvent(
-                        oneDayData.getTimestamps().get(hourIndex),
-                        BatteryEventType.EVEN_HOUR,
-                        oneDayData.getLevels().get(hourIndex)));
+                batteryEventList.add(
+                        convertToBatteryEvent(
+                                oneDayData.getTimestamps().get(hourIndex),
+                                BatteryEventType.EVEN_HOUR,
+                                oneDayData.getLevels().get(hourIndex)));
             }
         }
         return batteryEventList;
@@ -329,8 +338,9 @@
         final BatteryUsageSlot defaultInstance = BatteryUsageSlot.getDefaultInstance();
         final int columnIndex =
                 cursor.getColumnIndex(BatteryUsageSlotEntity.KEY_BATTERY_USAGE_SLOT);
-        return columnIndex < 0 ? defaultInstance : BatteryUtils.parseProtoFromString(
-                cursor.getString(columnIndex), defaultInstance);
+        return columnIndex < 0
+                ? defaultInstance
+                : BatteryUtils.parseProtoFromString(cursor.getString(columnIndex), defaultInstance);
     }
 
     /** Converts from {@link Map<Long, BatteryDiffData>} to {@link List<BatteryUsageSlot>} */
@@ -343,18 +353,22 @@
         return batteryUsageSlotList;
     }
 
-    /** Converts UTC timestamp to local time string for logging only, so use the US locale for
-     *  better readability in debugging. */
+    /**
+     * Converts UTC timestamp to local time string for logging only, so use the US locale for better
+     * readability in debugging.
+     */
     public static String utcToLocalTimeForLogging(long timestamp) {
         final Locale locale = Locale.US;
-        final String pattern =
-                DateFormat.getBestDateTimePattern(locale, "MMM dd,yyyy HH:mm:ss");
+        final String pattern = DateFormat.getBestDateTimePattern(locale, "MMM dd,yyyy HH:mm:ss");
         return DateFormat.format(pattern, timestamp).toString();
     }
 
     /** Converts UTC timestamp to local time hour data. */
-    public static String utcToLocalTimeHour(final Context context, final long timestamp,
-            final boolean is24HourFormat, final boolean showMinute) {
+    public static String utcToLocalTimeHour(
+            final Context context,
+            final long timestamp,
+            final boolean is24HourFormat,
+            final boolean showMinute) {
         final Locale locale = getLocale(context);
         // e.g. for 12-hour format: 9 PM
         // e.g. for 24-hour format: 09:00
@@ -367,8 +381,8 @@
     public static String utcToLocalTimeDayOfWeek(
             final Context context, final long timestamp, final boolean isAbbreviation) {
         final Locale locale = getLocale(context);
-        final String pattern = DateFormat.getBestDateTimePattern(locale,
-                isAbbreviation ? "E" : "EEEE");
+        final String pattern =
+                DateFormat.getBestDateTimePattern(locale, isAbbreviation ? "E" : "EEEE");
         return DateFormat.format(pattern, timestamp).toString();
     }
 
@@ -377,10 +391,8 @@
         if (context == null) {
             return Locale.getDefault();
         }
-        final LocaleList locales =
-                context.getResources().getConfiguration().getLocales();
-        return locales != null && !locales.isEmpty() ? locales.get(0)
-                : Locale.getDefault();
+        final LocaleList locales = context.getResources().getConfiguration().getLocales();
+        return locales != null && !locales.isEmpty() ? locales.get(0) : Locale.getDefault();
     }
 
     /**
@@ -396,14 +408,14 @@
      */
     @VisibleForTesting
     static String getEffectivePackageName(
-            Context context, IUsageStatsManager usageStatsManager, final String packageName,
+            Context context,
+            IUsageStatsManager usageStatsManager,
+            final String packageName,
             final String taskRootPackageName) {
         final int usageSource = getUsageSource(context, usageStatsManager);
         switch (usageSource) {
             case UsageStatsManager.USAGE_SOURCE_TASK_ROOT_ACTIVITY:
-                return !TextUtils.isEmpty(taskRootPackageName)
-                        ? taskRootPackageName
-                        : packageName;
+                return !TextUtils.isEmpty(taskRootPackageName) ? taskRootPackageName : packageName;
             case UsageStatsManager.USAGE_SOURCE_CURRENT_ACTIVITY:
                 return packageName;
             default:
@@ -432,9 +444,13 @@
         try {
             String taskRootPackageName = event.getTaskRootPackageName();
             if (taskRootPackageName == null) {
-                Log.w(TAG, String.format(
-                        "Null task root in event with timestamp %d, type=%d, package %s",
-                        event.getTimeStamp(), event.getEventType(), event.getPackageName()));
+                Log.w(
+                        TAG,
+                        String.format(
+                                "Null task root in event with timestamp %d, type=%d, package %s",
+                                event.getTimeStamp(),
+                                event.getEventType(),
+                                event.getPackageName()));
             }
             return taskRootPackageName;
         } catch (NoSuchMethodError e) {
@@ -464,21 +480,24 @@
     }
 
     private static BatteryUsageDiff convertToBatteryUsageDiff(BatteryDiffEntry batteryDiffEntry) {
-        BatteryUsageDiff.Builder builder = BatteryUsageDiff.newBuilder()
-                .setUid(batteryDiffEntry.mUid)
-                .setUserId(batteryDiffEntry.mUserId)
-                .setIsHidden(batteryDiffEntry.mIsHidden)
-                .setComponentId(batteryDiffEntry.mComponentId)
-                .setConsumerType(batteryDiffEntry.mConsumerType)
-                .setConsumePower(batteryDiffEntry.mConsumePower)
-                .setForegroundUsageConsumePower(batteryDiffEntry.mForegroundUsageConsumePower)
-                .setBackgroundUsageConsumePower(batteryDiffEntry.mBackgroundUsageConsumePower)
-                .setForegroundServiceUsageConsumePower(
-                        batteryDiffEntry.mForegroundServiceUsageConsumePower)
-                .setCachedUsageConsumePower(batteryDiffEntry.mCachedUsageConsumePower)
-                .setForegroundUsageTime(batteryDiffEntry.mForegroundUsageTimeInMs)
-                .setBackgroundUsageTime(batteryDiffEntry.mBackgroundUsageTimeInMs)
-                .setScreenOnTime(batteryDiffEntry.mScreenOnTimeInMs);
+        BatteryUsageDiff.Builder builder =
+                BatteryUsageDiff.newBuilder()
+                        .setUid(batteryDiffEntry.mUid)
+                        .setUserId(batteryDiffEntry.mUserId)
+                        .setIsHidden(batteryDiffEntry.mIsHidden)
+                        .setComponentId(batteryDiffEntry.mComponentId)
+                        .setConsumerType(batteryDiffEntry.mConsumerType)
+                        .setConsumePower(batteryDiffEntry.mConsumePower)
+                        .setForegroundUsageConsumePower(
+                                batteryDiffEntry.mForegroundUsageConsumePower)
+                        .setBackgroundUsageConsumePower(
+                                batteryDiffEntry.mBackgroundUsageConsumePower)
+                        .setForegroundServiceUsageConsumePower(
+                                batteryDiffEntry.mForegroundServiceUsageConsumePower)
+                        .setCachedUsageConsumePower(batteryDiffEntry.mCachedUsageConsumePower)
+                        .setForegroundUsageTime(batteryDiffEntry.mForegroundUsageTimeInMs)
+                        .setBackgroundUsageTime(batteryDiffEntry.mBackgroundUsageTimeInMs)
+                        .setScreenOnTime(batteryDiffEntry.mScreenOnTimeInMs);
         if (batteryDiffEntry.mKey != null) {
             builder.setKey(batteryDiffEntry.mKey);
         }
@@ -496,12 +515,13 @@
         if (batteryDiffData == null) {
             return BatteryUsageSlot.getDefaultInstance();
         }
-        final BatteryUsageSlot.Builder builder = BatteryUsageSlot.newBuilder()
-                .setStartTimestamp(batteryDiffData.getStartTimestamp())
-                .setEndTimestamp(batteryDiffData.getEndTimestamp())
-                .setStartBatteryLevel(batteryDiffData.getStartBatteryLevel())
-                .setEndBatteryLevel(batteryDiffData.getEndBatteryLevel())
-                .setScreenOnTime(batteryDiffData.getScreenOnTime());
+        final BatteryUsageSlot.Builder builder =
+                BatteryUsageSlot.newBuilder()
+                        .setStartTimestamp(batteryDiffData.getStartTimestamp())
+                        .setEndTimestamp(batteryDiffData.getEndTimestamp())
+                        .setStartBatteryLevel(batteryDiffData.getStartBatteryLevel())
+                        .setEndBatteryLevel(batteryDiffData.getEndBatteryLevel())
+                        .setScreenOnTime(batteryDiffData.getScreenOnTime());
         for (BatteryDiffEntry batteryDiffEntry : batteryDiffData.getAppDiffEntryList()) {
             builder.addAppUsage(convertToBatteryUsageDiff(batteryDiffEntry));
         }
@@ -557,7 +577,7 @@
                 systemDiffEntries,
                 systemAppsPackageNames,
                 systemAppsUids,
-                /*isAccumulated=*/ false);
+                /* isAccumulated= */ false);
     }
 
     private static BatteryInformation constructBatteryInformation(
@@ -568,15 +588,13 @@
             final int batteryHealth,
             final long bootTimestamp) {
         final DeviceBatteryState deviceBatteryState =
-                DeviceBatteryState
-                        .newBuilder()
+                DeviceBatteryState.newBuilder()
                         .setBatteryLevel(batteryLevel)
                         .setBatteryStatus(batteryStatus)
                         .setBatteryHealth(batteryHealth)
                         .build();
         final BatteryInformation.Builder batteryInformationBuilder =
-                BatteryInformation
-                        .newBuilder()
+                BatteryInformation.newBuilder()
                         .setDeviceBatteryState(deviceBatteryState)
                         .setBootTimestamp(bootTimestamp)
                         .setZoneId(TimeZone.getDefault().getID());
diff --git a/src/com/android/settings/fuelgauge/batteryusage/DataProcessManager.java b/src/com/android/settings/fuelgauge/batteryusage/DataProcessManager.java
index 1a226fd..b3bcb47 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/DataProcessManager.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/DataProcessManager.java
@@ -34,7 +34,6 @@
 
 import java.util.ArrayList;
 import java.util.Calendar;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -42,27 +41,29 @@
 /**
  * Manages the async tasks to process battery and app usage data.
  *
- * For now, there exist 4 async tasks in this manager:
+ * <p>For now, there exist 4 async tasks in this manager:
+ *
  * <ul>
- *  <li>loadCurrentBatteryHistoryMap: load the latest battery history data from battery stats
- *  service.</li>
- *  <li>loadCurrentAppUsageList: load the latest app usage data (last timestamp in database - now)
- *  from usage stats service.</li>
- *  <li>loadDatabaseAppUsageList: load the necessary app usage data (after last full charge) from
- *  database</li>
- *  <li>loadAndApplyBatteryMapFromServiceOnly: load all the battery history data (should be after
- *  last full charge) from battery stats service and apply the callback function directly</li>
+ *   <li>loadCurrentBatteryHistoryMap: load the latest battery history data from battery stats
+ *       service.
+ *   <li>loadCurrentAppUsageList: load the latest app usage data (last timestamp in database - now)
+ *       from usage stats service.
+ *   <li>loadDatabaseAppUsageList: load the necessary app usage data (after last full charge) from
+ *       database
+ *   <li>loadAndApplyBatteryMapFromServiceOnly: load all the battery history data (should be after
+ *       last full charge) from battery stats service and apply the callback function directly
  * </ul>
  *
  * If there is battery level data, the first 3 async tasks will be started at the same time.
+ *
  * <ul>
- *  <li>After loadCurrentAppUsageList and loadDatabaseAppUsageList complete, which means all app
- *  usage data has been loaded, the intermediate usage result will be generated.</li>
- *  <li>Then after all 3 async tasks complete, the battery history data and app usage data will be
- *  combined to generate final data used for UI rendering. And the callback function will be
- *  applied.</li>
- *  <li>If current user is locked, which means we couldn't get the latest app usage data,
- *  screen-on time will not be shown in the UI and empty screen-on time data will be returned.</li>
+ *   <li>After loadCurrentAppUsageList and loadDatabaseAppUsageList complete, which means all app
+ *       usage data has been loaded, the intermediate usage result will be generated.
+ *   <li>Then after all 3 async tasks complete, the battery history data and app usage data will be
+ *       combined to generate final data used for UI rendering. And the callback function will be
+ *       applied.
+ *   <li>If current user is locked, which means we couldn't get the latest app usage data, screen-on
+ *       time will not be shown in the UI and empty screen-on time data will be returned.
  * </ul>
  *
  * If there is no battery level data, the 4th async task will be started only and the usage map
@@ -72,12 +73,9 @@
     private static final String TAG = "DataProcessManager";
     private static final List<BatteryEventType> POWER_CONNECTION_EVENTS =
             List.of(BatteryEventType.POWER_CONNECTED, BatteryEventType.POWER_DISCONNECTED);
-    private static final List<BatteryEventType> BATTERY_LEVEL_RECORD_EVENTS =
-            List.of(BatteryEventType.FULL_CHARGED, BatteryEventType.EVEN_HOUR);
 
     // For testing only.
-    @VisibleForTesting
-    static Map<Long, Map<String, BatteryHistEntry>> sFakeBatteryHistoryMap;
+    @VisibleForTesting static Map<Long, Map<String, BatteryHistEntry>> sFakeBatteryHistoryMap;
 
     // Raw start timestamp with round to the nearest hour.
     private final long mRawStartTimestamp;
@@ -104,24 +102,24 @@
 
     /**
      * The indexed {@link AppUsagePeriod} list data for each corresponding time slot.
-     * <p>{@code Long} stands for the userId.</p>
-     * <p>{@code String} stands for the packageName.</p>
+     *
+     * <p>{@code Long} stands for the userId.
+     *
+     * <p>{@code String} stands for the packageName.
      */
     private Map<Integer, Map<Integer, Map<Long, Map<String, List<AppUsagePeriod>>>>>
             mAppUsagePeriodMap;
 
     /**
-     *  A callback listener when all the data is processed.
-     *  This happens when all the async tasks complete and generate the final callback.
+     * A callback listener when all the data is processed. This happens when all the async tasks
+     * complete and generate the final callback.
      */
     public interface OnBatteryDiffDataMapLoadedListener {
         /** The callback function when all the data is processed. */
         void onBatteryDiffDataMapLoaded(Map<Long, BatteryDiffData> batteryDiffDataMap);
     }
 
-    /**
-     * Constructor when there exists battery level data.
-     */
+    /** Constructor when there exists battery level data. */
     DataProcessManager(
             Context context,
             Handler handler,
@@ -140,9 +138,7 @@
         mBatteryHistoryMap = batteryHistoryMap;
     }
 
-    /**
-     * Constructor when there is no battery level data.
-     */
+    /** Constructor when there is no battery level data. */
     DataProcessManager(
             Context context,
             Handler handler,
@@ -160,16 +156,12 @@
         mShowScreenOnTime = false;
     }
 
-    /**
-     * Starts the async tasks to load battery history data and app usage data.
-     */
+    /** Starts the async tasks to load battery history data and app usage data. */
     public void start() {
-        start(/*isFromPeriodJob=*/ false);
+        start(/* isFromPeriodJob= */ false);
     }
 
-    /**
-     * Starts the async tasks to load battery history data and app usage data.
-     */
+    /** Starts the async tasks to load battery history data and app usage data. */
     public void start(boolean isFromPeriodJob) {
         // If we have battery level data, load the battery history map and app usage simultaneously.
         if (mHourlyBatteryLevelsPerDay != null) {
@@ -239,10 +231,13 @@
                 final long startTime = System.currentTimeMillis();
                 // Loads the current battery usage data from the battery stats service.
                 final Map<String, BatteryHistEntry> currentBatteryHistoryMap =
-                        DataProcessor.getCurrentBatteryHistoryMapFromStatsService(
-                                mContext);
-                Log.d(TAG, String.format("execute loadCurrentBatteryHistoryMap size=%d in %d/ms",
-                        currentBatteryHistoryMap.size(), (System.currentTimeMillis() - startTime)));
+                        DataProcessor.getCurrentBatteryHistoryMapFromStatsService(mContext);
+                Log.d(
+                        TAG,
+                        String.format(
+                                "execute loadCurrentBatteryHistoryMap size=%d in %d/ms",
+                                currentBatteryHistoryMap.size(),
+                                (System.currentTimeMillis() - startTime)));
                 return currentBatteryHistoryMap;
             }
 
@@ -251,10 +246,11 @@
                     final Map<String, BatteryHistEntry> currentBatteryHistoryMap) {
                 if (mBatteryHistoryMap != null) {
                     // Replaces the placeholder in mBatteryHistoryMap.
-                    for (Map.Entry<Long, Map<String, BatteryHistEntry>> mapEntry
-                            : mBatteryHistoryMap.entrySet()) {
-                        if (mapEntry.getValue().containsKey(
-                                DataProcessor.CURRENT_TIME_BATTERY_HISTORY_PLACEHOLDER)) {
+                    for (Map.Entry<Long, Map<String, BatteryHistEntry>> mapEntry :
+                            mBatteryHistoryMap.entrySet()) {
+                        if (mapEntry.getValue()
+                                .containsKey(
+                                        DataProcessor.CURRENT_TIME_BATTERY_HISTORY_PLACEHOLDER)) {
                             mapEntry.setValue(currentBatteryHistoryMap);
                         }
                     }
@@ -295,7 +291,7 @@
                     Log.d(TAG, "there is no work profile");
                 }
 
-                final Map<Long, UsageEvents> usageEventsMap = new HashMap<>();
+                final Map<Long, UsageEvents> usageEventsMap = new ArrayMap<>();
                 usageEventsMap.put(Long.valueOf(currentUserId), usageEventsForCurrentUser);
                 if (usageEventsForWorkProfile != null) {
                     Log.d(TAG, "usageEventsForWorkProfile is null");
@@ -305,14 +301,17 @@
                 final List<AppUsageEvent> appUsageEventList =
                         DataProcessor.generateAppUsageEventListFromUsageEvents(
                                 mContext, usageEventsMap);
-                Log.d(TAG, String.format("execute loadCurrentAppUsageList size=%d in %d/ms",
-                        appUsageEventList.size(), (System.currentTimeMillis() - startTime)));
+                Log.d(
+                        TAG,
+                        String.format(
+                                "execute loadCurrentAppUsageList size=%d in %d/ms",
+                                appUsageEventList.size(),
+                                (System.currentTimeMillis() - startTime)));
                 return appUsageEventList;
             }
 
             @Override
-            protected void onPostExecute(
-                    final List<AppUsageEvent> currentAppUsageList) {
+            protected void onPostExecute(final List<AppUsageEvent> currentAppUsageList) {
                 if (currentAppUsageList == null || currentAppUsageList.isEmpty()) {
                     Log.d(TAG, "currentAppUsageList is null or empty");
                 } else {
@@ -336,16 +335,21 @@
                 // Loads the app usage data from the database.
                 final List<AppUsageEvent> appUsageEventList =
                         DatabaseUtils.getAppUsageEventForUsers(
-                                mContext, Calendar.getInstance(), getCurrentUserIds(),
+                                mContext,
+                                Calendar.getInstance(),
+                                getCurrentUserIds(),
                                 mRawStartTimestamp);
-                Log.d(TAG, String.format("execute loadDatabaseAppUsageList size=%d in %d/ms",
-                        appUsageEventList.size(), (System.currentTimeMillis() - startTime)));
+                Log.d(
+                        TAG,
+                        String.format(
+                                "execute loadDatabaseAppUsageList size=%d in %d/ms",
+                                appUsageEventList.size(),
+                                (System.currentTimeMillis() - startTime)));
                 return appUsageEventList;
             }
 
             @Override
-            protected void onPostExecute(
-                    final List<AppUsageEvent> databaseAppUsageList) {
+            protected void onPostExecute(final List<AppUsageEvent> databaseAppUsageList) {
                 if (databaseAppUsageList == null || databaseAppUsageList.isEmpty()) {
                     Log.d(TAG, "databaseAppUsageList is null or empty");
                 } else {
@@ -365,17 +369,20 @@
                 // Loads the battery event data from the database.
                 final List<BatteryEvent> batteryEventList =
                         DatabaseUtils.getBatteryEvents(
-                                mContext, Calendar.getInstance(), mRawStartTimestamp,
+                                mContext,
+                                Calendar.getInstance(),
+                                mRawStartTimestamp,
                                 POWER_CONNECTION_EVENTS);
-                Log.d(TAG, String.format(
-                        "execute loadPowerConnectionBatteryEventList size=%d in %d/ms",
-                        batteryEventList.size(), (System.currentTimeMillis() - startTime)));
+                Log.d(
+                        TAG,
+                        String.format(
+                                "execute loadPowerConnectionBatteryEventList size=%d in %d/ms",
+                                batteryEventList.size(), (System.currentTimeMillis() - startTime)));
                 return batteryEventList;
             }
 
             @Override
-            protected void onPostExecute(
-                    final List<BatteryEvent> batteryEventList) {
+            protected void onPostExecute(final List<BatteryEvent> batteryEventList) {
                 if (batteryEventList == null || batteryEventList.isEmpty()) {
                     Log.d(TAG, "batteryEventList is null or empty");
                 } else {
@@ -397,8 +404,12 @@
                 final List<BatteryUsageSlot> batteryUsageSlotList =
                         DatabaseUtils.getBatteryUsageSlots(
                                 mContext, Calendar.getInstance(), mLastFullChargeTimestamp);
-                Log.d(TAG, String.format("execute loadBatteryUsageSlotList size=%d in %d/ms",
-                        batteryUsageSlotList.size(), (System.currentTimeMillis() - startTime)));
+                Log.d(
+                        TAG,
+                        String.format(
+                                "execute loadBatteryUsageSlotList size=%d in %d/ms",
+                                batteryUsageSlotList.size(),
+                                (System.currentTimeMillis() - startTime)));
                 return batteryUsageSlotList;
             }
 
@@ -423,11 +434,16 @@
                 final long startTime = System.currentTimeMillis();
                 final Map<Long, BatteryDiffData> batteryDiffDataMap =
                         DataProcessor.getBatteryDiffDataMapFromStatsService(
-                                mContext, mRawStartTimestamp, getSystemAppsPackageNames(),
+                                mContext,
+                                mRawStartTimestamp,
+                                getSystemAppsPackageNames(),
                                 getSystemAppsUids());
-                Log.d(TAG, String.format(
-                        "execute loadAndApplyBatteryMapFromServiceOnly size=%d in %d/ms",
-                        batteryDiffDataMap.size(), (System.currentTimeMillis() - startTime)));
+                Log.d(
+                        TAG,
+                        String.format(
+                                "execute loadAndApplyBatteryMapFromServiceOnly size=%d in %d/ms",
+                                batteryDiffDataMap.size(),
+                                (System.currentTimeMillis() - startTime)));
                 return batteryDiffDataMap;
             }
 
@@ -435,9 +451,10 @@
             protected void onPostExecute(final Map<Long, BatteryDiffData> batteryDiffDataMap) {
                 // Post results back to main thread to refresh UI.
                 if (mHandler != null && mCallbackFunction != null) {
-                    mHandler.post(() -> {
-                        mCallbackFunction.onBatteryDiffDataMapLoaded(batteryDiffDataMap);
-                    });
+                    mHandler.post(
+                            () -> {
+                                mCallbackFunction.onBatteryDiffDataMapLoaded(batteryDiffDataMap);
+                            });
                 }
             }
         }.execute();
@@ -459,8 +476,12 @@
         }
         // Generates the indexed AppUsagePeriod list data for each corresponding time slot for
         // further use.
-        mAppUsagePeriodMap = DataProcessor.generateAppUsagePeriodMap(
-                mContext, mHourlyBatteryLevelsPerDay, mAppUsageEventList, mBatteryEventList);
+        mAppUsagePeriodMap =
+                DataProcessor.generateAppUsagePeriodMap(
+                        mContext,
+                        mHourlyBatteryLevelsPerDay,
+                        mAppUsageEventList,
+                        mBatteryEventList);
     }
 
     private void tryToGenerateFinalDataAndApplyCallback() {
@@ -482,18 +503,28 @@
                 final long startTime = System.currentTimeMillis();
                 final Map<Long, BatteryDiffData> batteryDiffDataMap = new ArrayMap<>();
                 for (BatteryUsageSlot batteryUsageSlot : mBatteryUsageSlotList) {
-                    batteryDiffDataMap.put(batteryUsageSlot.getStartTimestamp(),
+                    batteryDiffDataMap.put(
+                            batteryUsageSlot.getStartTimestamp(),
                             ConvertUtils.convertToBatteryDiffData(
-                                    mContext, batteryUsageSlot, getSystemAppsPackageNames(),
+                                    mContext,
+                                    batteryUsageSlot,
+                                    getSystemAppsPackageNames(),
                                     getSystemAppsUids()));
                 }
-                batteryDiffDataMap.putAll(DataProcessor.getBatteryDiffDataMap(mContext,
-                        mHourlyBatteryLevelsPerDay, mBatteryHistoryMap, mAppUsagePeriodMap,
-                        getSystemAppsPackageNames(), getSystemAppsUids()));
+                batteryDiffDataMap.putAll(
+                        DataProcessor.getBatteryDiffDataMap(
+                                mContext,
+                                mHourlyBatteryLevelsPerDay,
+                                mBatteryHistoryMap,
+                                mAppUsagePeriodMap,
+                                getSystemAppsPackageNames(),
+                                getSystemAppsUids()));
 
-                Log.d(TAG, String.format(
-                        "execute generateFinalDataAndApplyCallback size=%d in %d/ms",
-                        batteryDiffDataMap.size(), System.currentTimeMillis() - startTime));
+                Log.d(
+                        TAG,
+                        String.format(
+                                "execute generateFinalDataAndApplyCallback size=%d in %d/ms",
+                                batteryDiffDataMap.size(), System.currentTimeMillis() - startTime));
                 return batteryDiffDataMap;
             }
 
@@ -501,9 +532,10 @@
             protected void onPostExecute(final Map<Long, BatteryDiffData> batteryDiffDataMap) {
                 // Post results back to main thread to refresh UI.
                 if (mHandler != null && mCallbackFunction != null) {
-                    mHandler.post(() -> {
-                        mCallbackFunction.onBatteryDiffDataMapLoaded(batteryDiffDataMap);
-                    });
+                    mHandler.post(
+                            () -> {
+                                mCallbackFunction.onBatteryDiffDataMapLoaded(batteryDiffDataMap);
+                            });
                 }
             }
         }.execute();
@@ -540,8 +572,7 @@
     }
 
     private int getWorkProfileUserId() {
-        final UserHandle userHandle =
-                Utils.getManagedProfile(mUserManager);
+        final UserHandle userHandle = Utils.getManagedProfile(mUserManager);
         return userHandle != null ? userHandle.getIdentifier() : Integer.MIN_VALUE;
     }
 
@@ -561,8 +592,8 @@
 
     /**
      * @return Returns battery level data and start async task to compute battery diff usage data
-     * and load app labels + icons.
-     * Returns null if the input is invalid or not having at least 2 hours data.
+     *     and load app labels + icons. Returns null if the input is invalid or not having at least
+     *     2 hours data.
      */
     @Nullable
     public static BatteryLevelData getBatteryLevelData(
@@ -574,16 +605,28 @@
         final long lastFullChargeTime = DatabaseUtils.getLastFullChargeTime(context);
         final List<BatteryEvent> batteryLevelRecordEvents =
                 DatabaseUtils.getBatteryEvents(
-                        context, Calendar.getInstance(), lastFullChargeTime,
-                        BATTERY_LEVEL_RECORD_EVENTS);
-        final long startTimestamp = batteryLevelRecordEvents.isEmpty()
-                ? lastFullChargeTime : batteryLevelRecordEvents.get(0).getTimestamp();
-        final BatteryLevelData batteryLevelData = getPeriodBatteryLevelData(context, handler,
-                startTimestamp, lastFullChargeTime, isFromPeriodJob,
-                onBatteryUsageMapLoadedListener);
-        Log.d(TAG, String.format("execute getBatteryLevelData in %d/ms,"
-                        + " batteryLevelRecordEvents.size=%d",
-                (System.currentTimeMillis() - start), batteryLevelRecordEvents.size()));
+                        context,
+                        Calendar.getInstance(),
+                        lastFullChargeTime,
+                        DatabaseUtils.BATTERY_LEVEL_RECORD_EVENTS);
+        final long startTimestamp =
+                batteryLevelRecordEvents.isEmpty()
+                        ? lastFullChargeTime
+                        : batteryLevelRecordEvents.get(0).getTimestamp();
+        final BatteryLevelData batteryLevelData =
+                getPeriodBatteryLevelData(
+                        context,
+                        handler,
+                        startTimestamp,
+                        lastFullChargeTime,
+                        isFromPeriodJob,
+                        onBatteryUsageMapLoadedListener);
+        Log.d(
+                TAG,
+                String.format(
+                        "execute getBatteryLevelData in %d/ms,"
+                                + " batteryLevelRecordEvents.size=%d",
+                        (System.currentTimeMillis() - start), batteryLevelRecordEvents.size()));
 
         return isFromPeriodJob
                 ? batteryLevelData
@@ -598,8 +641,11 @@
             final boolean isFromPeriodJob,
             final OnBatteryDiffDataMapLoadedListener onBatteryDiffDataMapLoadedListener) {
         final long currentTime = System.currentTimeMillis();
-        Log.d(TAG, String.format("getPeriodBatteryLevelData() startTimestamp=%s",
-                ConvertUtils.utcToLocalTimeForLogging(startTimestamp)));
+        Log.d(
+                TAG,
+                String.format(
+                        "getPeriodBatteryLevelData() startTimestamp=%s",
+                        ConvertUtils.utcToLocalTimeForLogging(startTimestamp)));
         if (isFromPeriodJob
                 && startTimestamp >= TimestampUtils.getLastEvenHourTimestamp(currentTime)) {
             // Nothing needs to be loaded for period job.
@@ -608,9 +654,13 @@
 
         handler = handler != null ? handler : new Handler(Looper.getMainLooper());
         final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap =
-                sFakeBatteryHistoryMap != null ? sFakeBatteryHistoryMap
-                        : DatabaseUtils.getHistoryMapSinceLatestRecordBeforeQueryTimestamp(context,
-                                Calendar.getInstance(), startTimestamp, lastFullChargeTime);
+                sFakeBatteryHistoryMap != null
+                        ? sFakeBatteryHistoryMap
+                        : DatabaseUtils.getHistoryMapSinceLatestRecordBeforeQueryTimestamp(
+                                context,
+                                Calendar.getInstance(),
+                                startTimestamp,
+                                lastFullChargeTime);
         if (batteryHistoryMap == null || batteryHistoryMap.isEmpty()) {
             Log.d(TAG, "batteryHistoryMap is null in getPeriodBatteryLevelData()");
             new DataProcessManager(context, handler, onBatteryDiffDataMapLoadedListener).start();
@@ -632,13 +682,14 @@
 
         // Start the async task to compute diff usage data and load labels and icons.
         new DataProcessManager(
-                context,
-                handler,
-                startTimestamp,
-                lastFullChargeTime,
-                onBatteryDiffDataMapLoadedListener,
-                batteryLevelData.getHourlyBatteryLevelsPerDay(),
-                processedBatteryHistoryMap).start(isFromPeriodJob);
+                        context,
+                        handler,
+                        startTimestamp,
+                        lastFullChargeTime,
+                        onBatteryDiffDataMapLoadedListener,
+                        batteryLevelData.getHourlyBatteryLevelsPerDay(),
+                        processedBatteryHistoryMap)
+                .start(isFromPeriodJob);
 
         return batteryLevelData;
     }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java b/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java
index 32cd1b9..d8f0a77 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java
@@ -104,14 +104,11 @@
     static final Comparator<BatteryEvent> BATTERY_EVENT_TIMESTAMP_COMPARATOR =
             Comparator.comparing(BatteryEvent::getTimestamp);
 
-    @VisibleForTesting
-    static boolean sDebug = false;
+    @VisibleForTesting static boolean sDebug = false;
 
-    @VisibleForTesting
-    static long sTestCurrentTimeMillis = 0;
+    @VisibleForTesting static long sTestCurrentTimeMillis = 0;
 
-    @VisibleForTesting
-    static Set<String> sTestSystemAppsPackageNames;
+    @VisibleForTesting static Set<String> sTestSystemAppsPackageNames;
 
     @VisibleForTesting
     static IUsageStatsManager sUsageStatsManager =
@@ -128,12 +125,11 @@
                 Map<Integer, Map<Integer, BatteryDiffData>> batteryCallbackData);
     }
 
-    private DataProcessor() {
-    }
+    private DataProcessor() {}
 
     /**
-     * @return Returns battery usage data of different entries.
-     * Returns null if the input is invalid or there is no enough data.
+     * @return Returns battery usage data of different entries. <br>
+     *     Returns null if the input is invalid or there is no enough data.
      */
     @Nullable
     public static Map<Integer, Map<Integer, BatteryDiffData>> getBatteryUsageData(
@@ -153,32 +149,31 @@
         final Map<String, BatteryHistEntry> currentBatteryHistoryMap =
                 getCurrentBatteryHistoryMapFromStatsService(context);
         // Replaces the placeholder in processedBatteryHistoryMap.
-        for (Map.Entry<Long, Map<String, BatteryHistEntry>> mapEntry
-                : processedBatteryHistoryMap.entrySet()) {
+        for (Map.Entry<Long, Map<String, BatteryHistEntry>> mapEntry :
+                processedBatteryHistoryMap.entrySet()) {
             if (mapEntry.getValue().containsKey(CURRENT_TIME_BATTERY_HISTORY_PLACEHOLDER)) {
                 mapEntry.setValue(currentBatteryHistoryMap);
             }
         }
         return batteryLevelData == null
                 ? null
-                : generateBatteryUsageMap(context,
-                        getBatteryDiffDataMap(context,
+                : generateBatteryUsageMap(
+                        context,
+                        getBatteryDiffDataMap(
+                                context,
                                 batteryLevelData.getHourlyBatteryLevelsPerDay(),
                                 processedBatteryHistoryMap,
-                                /*appUsagePeriodMap=*/ null,
+                                /* appUsagePeriodMap= */ null,
                                 getSystemAppsPackageNames(context),
                                 getSystemAppsUids(context)),
                         batteryLevelData);
     }
 
-    /**
-     * Gets the {@link BatteryUsageStats} from system service.
-     */
+    /** Gets the {@link BatteryUsageStats} from system service. */
     @Nullable
     public static BatteryUsageStats getBatteryUsageStats(final Context context) {
         final BatteryUsageStatsQuery batteryUsageStatsQuery =
-                new BatteryUsageStatsQuery
-                        .Builder()
+                new BatteryUsageStatsQuery.Builder()
                         .includeBatteryHistory()
                         .includeProcessStateData()
                         .build();
@@ -186,9 +181,7 @@
                 .getBatteryUsageStats(batteryUsageStatsQuery);
     }
 
-    /**
-     * Gets the {@link UsageEvents} from system service for all unlocked users.
-     */
+    /** Gets the {@link UsageEvents} from system service for all unlocked users. */
     @Nullable
     public static Map<Long, UsageEvents> getAppUsageEvents(Context context) {
         final long start = System.currentTimeMillis();
@@ -204,21 +197,20 @@
         final long sixDaysAgoTimestamp =
                 DatabaseUtils.getTimestampSixDaysAgo(Calendar.getInstance());
         for (final UserInfo user : userManager.getAliveUsers()) {
-            final UsageEvents events = getAppUsageEventsForUser(
-                    context, userManager, user.id, sixDaysAgoTimestamp);
+            final UsageEvents events =
+                    getAppUsageEventsForUser(context, userManager, user.id, sixDaysAgoTimestamp);
             if (events != null) {
                 resultMap.put(Long.valueOf(user.id), events);
             }
         }
         final long elapsedTime = System.currentTimeMillis() - start;
-        Log.d(TAG, String.format("getAppUsageEvents() for all unlocked users in %d/ms",
-                elapsedTime));
+        Log.d(
+                TAG,
+                String.format("getAppUsageEvents() for all unlocked users in %d/ms", elapsedTime));
         return resultMap.isEmpty() ? null : resultMap;
     }
 
-    /**
-     * Gets the {@link UsageEvents} from system service for the specific user.
-     */
+    /** Gets the {@link UsageEvents} from system service for the specific user. */
     @Nullable
     public static UsageEvents getAppUsageEventsForUser(
             Context context, final int userID, final long startTimestampOfLevelData) {
@@ -234,17 +226,17 @@
         final long sixDaysAgoTimestamp =
                 DatabaseUtils.getTimestampSixDaysAgo(Calendar.getInstance());
         final long earliestTimestamp = Math.max(sixDaysAgoTimestamp, startTimestampOfLevelData);
-        final UsageEvents events = getAppUsageEventsForUser(
-                context, userManager, userID, earliestTimestamp);
+        final UsageEvents events =
+                getAppUsageEventsForUser(context, userManager, userID, earliestTimestamp);
         final long elapsedTime = System.currentTimeMillis() - start;
-        Log.d(TAG, String.format("getAppUsageEventsForUser() for user %d in %d/ms",
-                userID, elapsedTime));
+        Log.d(
+                TAG,
+                String.format(
+                        "getAppUsageEventsForUser() for user %d in %d/ms", userID, elapsedTime));
         return events;
     }
 
-    /**
-     * Closes the {@link BatteryUsageStats} after using it.
-     */
+    /** Closes the {@link BatteryUsageStats} after using it. */
     public static void closeBatteryUsageStats(BatteryUsageStats batteryUsageStats) {
         if (batteryUsageStats != null) {
             try {
@@ -260,18 +252,20 @@
      * Attributes the list of {@link AppUsageEvent} into hourly time slots and reformat them into
      * {@link AppUsagePeriod} for easier use in the following process.
      *
-     * <p>There could be 2 cases of the returned value:</p>
+     * <p>There could be 2 cases of the returned value:
+     *
      * <ul>
-     * <li>null: empty or invalid data.</li>
-     * <li>non-null: must be a 2d map and composed by:
-     * <p>  [0][0] ~ [maxDailyIndex][maxHourlyIndex]</p></li>
+     *   <li>null: empty or invalid data.
+     *   <li>non-null: must be a 2d map and composed by:
+     *       <p>[0][0] ~ [maxDailyIndex][maxHourlyIndex]
      * </ul>
      *
-     * <p>The structure is consistent with the battery usage map returned by
-     * {@code generateBatteryUsageMap}.</p>
+     * <p>The structure is consistent with the battery usage map returned by {@code
+     * generateBatteryUsageMap}.
      *
-     * <p>{@code Long} stands for the userId.</p>
-     * <p>{@code String} stands for the packageName.</p>
+     * <p>{@code Long} stands for the userId.
+     *
+     * <p>{@code String} stands for the packageName.
      */
     @Nullable
     public static Map<Integer, Map<Integer, Map<Long, Map<String, List<AppUsagePeriod>>>>>
@@ -310,16 +304,18 @@
                 // The value could be null when there is no data in the hourly slot.
                 dailyMap.put(
                         hourlyIndex,
-                        buildAppUsagePeriodList(context, hourlyAppUsageEventList, batteryEventList,
-                                startTimestamp, endTimestamp));
+                        buildAppUsagePeriodList(
+                                context,
+                                hourlyAppUsageEventList,
+                                batteryEventList,
+                                startTimestamp,
+                                endTimestamp));
             }
         }
         return resultMap;
     }
 
-    /**
-     * Generates the list of {@link AppUsageEvent} from the supplied {@link UsageEvents}.
-     */
+    /** Generates the list of {@link AppUsageEvent} from the supplied {@link UsageEvents}. */
     public static List<AppUsageEvent> generateAppUsageEventListFromUsageEvents(
             Context context, Map<Long, UsageEvents> usageEventsMap) {
         final List<AppUsageEvent> appUsageEventList = new ArrayList<>();
@@ -342,12 +338,14 @@
                         final String taskRootClassName = event.getTaskRootClassName();
                         if (!TextUtils.isEmpty(taskRootClassName)
                                 && ignoreScreenOnTimeTaskRootSet.contains(taskRootClassName)) {
-                            Log.w(TAG, String.format(
-                                    "Ignoring a usage event with task root class name %s, "
-                                            + "(timestamp=%d, type=%d)",
-                                    taskRootClassName,
-                                    event.getTimeStamp(),
-                                    event.getEventType()));
+                            Log.w(
+                                    TAG,
+                                    String.format(
+                                            "Ignoring a usage event with task root class name %s, "
+                                                    + "(timestamp=%d, type=%d)",
+                                            taskRootClassName,
+                                            event.getTimeStamp(),
+                                            event.getEventType()));
                             break;
                         }
                         final AppUsageEvent appUsageEvent =
@@ -363,19 +361,18 @@
                 }
             }
         }
-        Log.w(TAG, String.format(
-                "Read %d relevant events (%d total) from UsageStatsManager", numEventsFetched,
-                numAllEventsFetched));
+        Log.w(
+                TAG,
+                String.format(
+                        "Read %d relevant events (%d total) from UsageStatsManager",
+                        numEventsFetched, numAllEventsFetched));
         return appUsageEventList;
     }
 
-    /**
-     * Generates the list of {@link BatteryEntry} from the supplied {@link BatteryUsageStats}.
-     */
+    /** Generates the list of {@link BatteryEntry} from the supplied {@link BatteryUsageStats}. */
     @Nullable
     public static List<BatteryEntry> generateBatteryEntryListFromBatteryUsageStats(
-            final Context context,
-            @Nullable final BatteryUsageStats batteryUsageStats) {
+            final Context context, @Nullable final BatteryUsageStats batteryUsageStats) {
         if (batteryUsageStats == null) {
             Log.w(TAG, "batteryUsageStats is null content");
             return null;
@@ -385,13 +382,18 @@
         }
         final BatteryUtils batteryUtils = BatteryUtils.getInstance(context);
         final int dischargePercentage = Math.max(0, batteryUsageStats.getDischargePercentage());
-        final List<BatteryEntry> usageList = getCoalescedUsageList(
-                context, batteryUtils, batteryUsageStats, /*loadDataInBackground=*/ false);
+        final List<BatteryEntry> usageList =
+                getCoalescedUsageList(
+                        context,
+                        batteryUtils,
+                        batteryUsageStats,
+                        /* loadDataInBackground= */ false);
         final double totalPower = batteryUsageStats.getConsumedPower();
         for (int i = 0; i < usageList.size(); i++) {
             final BatteryEntry entry = usageList.get(i);
-            final double percentOfTotal = batteryUtils.calculateBatteryPercent(
-                    entry.getConsumedPower(), totalPower, dischargePercentage);
+            final double percentOfTotal =
+                    batteryUtils.calculateBatteryPercent(
+                            entry.getConsumedPower(), totalPower, dischargePercentage);
             entry.mPercent = percentOfTotal;
         }
         return usageList;
@@ -404,19 +406,19 @@
             final Context context) {
         final List<BatteryHistEntry> batteryHistEntryList =
                 getBatteryHistListFromFromStatsService(context);
-        return batteryHistEntryList == null ? new ArrayMap<>()
+        return batteryHistEntryList == null
+                ? new ArrayMap<>()
                 : batteryHistEntryList.stream().collect(Collectors.toMap(e -> e.getKey(), e -> e));
     }
 
     /**
      * @return Returns the processed history map which has interpolated to every hour data.
-     * The start timestamp is the first timestamp in batteryHistoryMap. The end timestamp is current
-     * time. The keys of processed history map should contain every hour between the start and end
-     * timestamp. If there's no data in some key, the value will be the empty map.
+     *     <p>The start timestamp is the first timestamp in batteryHistoryMap. The end timestamp is
+     *     current time. The keys of processed history map should contain every hour between the
+     *     start and end timestamp. If there's no data in some key, the value will be the empty map.
      */
     static Map<Long, Map<String, BatteryHistEntry>> getHistoryMapWithExpectedTimestamps(
-            Context context,
-            final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap) {
+            Context context, final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap) {
         final long startTime = System.currentTimeMillis();
         final List<Long> rawTimestampList = new ArrayList<>(batteryHistoryMap.keySet());
         final Map<Long, Map<String, BatteryHistEntry>> resultMap = new ArrayMap();
@@ -429,8 +431,11 @@
         final List<Long> expectedTimestampList = getTimestampSlots(rawTimestampList, currentTime);
         interpolateHistory(
                 context, rawTimestampList, expectedTimestampList, batteryHistoryMap, resultMap);
-        Log.d(TAG, String.format("getHistoryMapWithExpectedTimestamps() size=%d in %d/ms",
-                resultMap.size(), (System.currentTimeMillis() - startTime)));
+        Log.d(
+                TAG,
+                String.format(
+                        "getHistoryMapWithExpectedTimestamps() size=%d in %d/ms",
+                        resultMap.size(), (System.currentTimeMillis() - startTime)));
         return resultMap;
     }
 
@@ -470,7 +475,8 @@
         }
         timestampSlots.add(startTimestamp);
         for (long timestamp = TimestampUtils.getNextHourTimestamp(startTimestamp);
-                timestamp < endTimestamp; timestamp += DateUtils.HOUR_IN_MILLIS) {
+                timestamp < endTimestamp;
+                timestamp += DateUtils.HOUR_IN_MILLIS) {
             timestampSlots.add(timestamp);
         }
         timestampSlots.add(endTimestamp);
@@ -496,16 +502,17 @@
 
     @VisibleForTesting
     static long[] findNearestTimestamp(final List<Long> timestamps, final long target) {
-        final long[] results = new long[]{Long.MIN_VALUE, Long.MAX_VALUE};
+        final long[] results = new long[] {Long.MIN_VALUE, Long.MAX_VALUE};
         // Searches the nearest lower and upper timestamp value.
-        timestamps.forEach(timestamp -> {
-            if (timestamp <= target && timestamp > results[0]) {
-                results[0] = timestamp;
-            }
-            if (timestamp >= target && timestamp < results[1]) {
-                results[1] = timestamp;
-            }
-        });
+        timestamps.forEach(
+                timestamp -> {
+                    if (timestamp <= target && timestamp > results[0]) {
+                        results[0] = timestamp;
+                    }
+                    if (timestamp >= target && timestamp < results[1]) {
+                        results[1] = timestamp;
+                    }
+                });
         // Uses zero value to represent invalid searching result.
         results[0] = results[0] == Long.MIN_VALUE ? 0 : results[0];
         results[1] = results[1] == Long.MAX_VALUE ? 0 : results[1];
@@ -547,7 +554,8 @@
                 slotBatteryHistoryList.add(
                         batteryHistoryMap.getOrDefault(startTimestamp, EMPTY_BATTERY_MAP));
                 for (Long timestamp = TimestampUtils.getNextHourTimestamp(startTimestamp);
-                        timestamp < endTimestamp; timestamp += DateUtils.HOUR_IN_MILLIS) {
+                        timestamp < endTimestamp;
+                        timestamp += DateUtils.HOUR_IN_MILLIS) {
                     slotBatteryHistoryList.add(
                             batteryHistoryMap.getOrDefault(timestamp, EMPTY_BATTERY_MAP));
                 }
@@ -567,7 +575,7 @@
                                 systemAppsPackageNames,
                                 systemAppsUids,
                                 appUsagePeriodMap == null
-                                        || appUsagePeriodMap.get(dailyIndex) == null
+                                                || appUsagePeriodMap.get(dailyIndex) == null
                                         ? null
                                         : appUsagePeriodMap.get(dailyIndex).get(hourlyIndex),
                                 slotBatteryHistoryList);
@@ -579,17 +587,16 @@
 
     /**
      * @return Returns the indexed battery usage data for each corresponding time slot.
-     *
-     * <p>There could be 2 cases of the returned value:</p>
-     * <ul>
-     * <li> null: empty or invalid data.</li>
-     * <li> 1 part: if batteryLevelData is null.</li>
-     * <p>  [SELECTED_INDEX_ALL][SELECTED_INDEX_ALL]</p>
-     * <li> 3 parts: if batteryLevelData is not null.</li>
-     * <p>  1 - [SELECTED_INDEX_ALL][SELECTED_INDEX_ALL]</p>
-     * <p>  2 - [0][SELECTED_INDEX_ALL] ~ [maxDailyIndex][SELECTED_INDEX_ALL]</p>
-     * <p>  3 - [0][0] ~ [maxDailyIndex][maxHourlyIndex]</p>
-     * </ul>
+     *     <p>There could be 2 cases of the returned value:
+     *     <ul>
+     *       <li>null: empty or invalid data.
+     *       <li>1 part: if batteryLevelData is null.
+     *           <p>[SELECTED_INDEX_ALL][SELECTED_INDEX_ALL]
+     *       <li>3 parts: if batteryLevelData is not null.
+     *           <p>1 - [SELECTED_INDEX_ALL][SELECTED_INDEX_ALL]
+     *           <p>2 - [0][SELECTED_INDEX_ALL] ~ [maxDailyIndex][SELECTED_INDEX_ALL]
+     *           <p>3 - [0][0] ~ [maxDailyIndex][maxHourlyIndex]
+     *     </ul>
      */
     static Map<Integer, Map<Integer, BatteryDiffData>> generateBatteryUsageMap(
             final Context context,
@@ -626,43 +633,55 @@
             final List<BatteryHistEntry> batteryHistEntryList,
             final @NonNull Set<String> systemAppsPackageNames,
             final @NonNull Set<Integer> systemAppsUids) {
+        final List<BatteryDiffEntry> appEntries = new ArrayList<>();
+        final List<BatteryDiffEntry> systemEntries = new ArrayList<>();
         if (batteryHistEntryList == null || batteryHistEntryList.isEmpty()) {
             Log.w(TAG, "batteryHistEntryList is null or empty in generateBatteryDiffData()");
-            return null;
+            return new BatteryDiffData(
+                    context,
+                    startTimestamp,
+                    getCurrentTimeMillis(),
+                    /* startBatteryLevel= */ 100,
+                    getCurrentLevel(context),
+                    /* screenOnTime= */ 0L,
+                    appEntries,
+                    systemEntries,
+                    systemAppsPackageNames,
+                    systemAppsUids,
+                    /* isAccumulated= */ false);
         }
         final int currentUserId = context.getUserId();
         final UserHandle userHandle =
                 Utils.getManagedProfile(context.getSystemService(UserManager.class));
         final int workProfileUserId =
                 userHandle != null ? userHandle.getIdentifier() : Integer.MIN_VALUE;
-        final List<BatteryDiffEntry> appEntries = new ArrayList<>();
-        final List<BatteryDiffEntry> systemEntries = new ArrayList<>();
 
         for (BatteryHistEntry entry : batteryHistEntryList) {
-            final boolean isFromOtherUsers = isConsumedFromOtherUsers(
-                    currentUserId, workProfileUserId, entry);
+            final boolean isFromOtherUsers =
+                    isConsumedFromOtherUsers(currentUserId, workProfileUserId, entry);
             // Not show other users' battery usage data.
             if (isFromOtherUsers) {
                 continue;
             } else {
-                final BatteryDiffEntry currentBatteryDiffEntry = new BatteryDiffEntry(
-                        context,
-                        entry.mUid,
-                        entry.mUserId,
-                        entry.getKey(),
-                        entry.mIsHidden,
-                        entry.mDrainType,
-                        entry.mPackageName,
-                        entry.mAppLabel,
-                        entry.mConsumerType,
-                        entry.mForegroundUsageTimeInMs,
-                        entry.mBackgroundUsageTimeInMs,
-                        /*screenOnTimeInMs=*/ 0,
-                        entry.mConsumePower,
-                        entry.mForegroundUsageConsumePower,
-                        entry.mForegroundServiceUsageConsumePower,
-                        entry.mBackgroundUsageConsumePower,
-                        entry.mCachedUsageConsumePower);
+                final BatteryDiffEntry currentBatteryDiffEntry =
+                        new BatteryDiffEntry(
+                                context,
+                                entry.mUid,
+                                entry.mUserId,
+                                entry.getKey(),
+                                entry.mIsHidden,
+                                entry.mDrainType,
+                                entry.mPackageName,
+                                entry.mAppLabel,
+                                entry.mConsumerType,
+                                entry.mForegroundUsageTimeInMs,
+                                entry.mBackgroundUsageTimeInMs,
+                                /* screenOnTimeInMs= */ 0,
+                                entry.mConsumePower,
+                                entry.mForegroundUsageConsumePower,
+                                entry.mForegroundServiceUsageConsumePower,
+                                entry.mBackgroundUsageConsumePower,
+                                entry.mCachedUsageConsumePower);
                 if (currentBatteryDiffEntry.isSystemEntry()) {
                     systemEntries.add(currentBatteryDiffEntry);
                 } else {
@@ -670,26 +689,33 @@
                 }
             }
         }
-
-        // If there is no data, return null instead of empty item.
-        if (appEntries.isEmpty() && systemEntries.isEmpty()) {
-            return null;
-        }
-        return new BatteryDiffData(context, startTimestamp, getCurrentTimeMillis(),
-                /* startBatteryLevel =*/ 100, getCurrentLevel(context), /* screenOnTime= */ 0L,
-                appEntries, systemEntries, systemAppsPackageNames, systemAppsUids,
+        return new BatteryDiffData(
+                context,
+                startTimestamp,
+                getCurrentTimeMillis(),
+                /* startBatteryLevel= */ 100,
+                getCurrentLevel(context),
+                /* screenOnTime= */ 0L,
+                appEntries,
+                systemEntries,
+                systemAppsPackageNames,
+                systemAppsUids,
                 /* isAccumulated= */ false);
     }
 
     /**
-     * <p>{@code Long} stands for the userId.</p>
-     * <p>{@code String} stands for the packageName.</p>
+     * {@code Long} stands for the userId.
+     *
+     * <p>{@code String} stands for the packageName.
      */
     @VisibleForTesting
     @Nullable
     static Map<Long, Map<String, List<AppUsagePeriod>>> buildAppUsagePeriodList(
-            Context context, final List<AppUsageEvent> appUsageEvents,
-            final List<BatteryEvent> batteryEventList, final long startTime, final long endTime) {
+            Context context,
+            final List<AppUsageEvent> appUsageEvents,
+            final List<BatteryEvent> batteryEventList,
+            final long startTime,
+            final long endTime) {
         if (appUsageEvents.isEmpty()) {
             return null;
         }
@@ -728,11 +754,12 @@
             // The same instance must have same userId and packageName.
             final AppUsageEvent firstEvent = usageEvents.get(0);
             final long eventUserId = firstEvent.getUserId();
-            final String packageName = getEffectivePackageName(
-                    context,
-                    sUsageStatsManager,
-                    firstEvent.getPackageName(),
-                    firstEvent.getTaskRootPackageName());
+            final String packageName =
+                    getEffectivePackageName(
+                            context,
+                            sUsageStatsManager,
+                            firstEvent.getPackageName(),
+                            firstEvent.getTaskRootPackageName());
             usageEvents.addAll(deviceEvents);
             // Sorts the usageEvents in ascending order based on the timestamp before computing the
             // period.
@@ -754,7 +781,7 @@
             if (allUsagePeriods.get(userId) == null) {
                 continue;
             }
-            for (final String packageName: allUsagePeriods.get(userId).keySet()) {
+            for (final String packageName : allUsagePeriods.get(userId).keySet()) {
                 Collections.sort(
                         allUsagePeriods.get(userId).get(packageName),
                         Comparator.comparing(AppUsagePeriod::getStartTime));
@@ -813,8 +840,7 @@
 
     @VisibleForTesting
     static List<AppUsagePeriod> excludePowerConnectedTimeFromAppUsagePeriodList(
-            final List<AppUsagePeriod> usagePeriodList,
-            final List<BatteryEvent> batteryEventList) {
+            final List<AppUsagePeriod> usagePeriodList, final List<BatteryEvent> batteryEventList) {
         final List<AppUsagePeriod> resultList = new ArrayList<>();
         int index = 0;
         for (AppUsagePeriod inputPeriod : usagePeriodList) {
@@ -842,10 +868,11 @@
 
                 if (batteryEvent.getType() == BatteryEventType.POWER_CONNECTED
                         && lastStartTime != 0) {
-                    resultList.add(AppUsagePeriod.newBuilder()
-                            .setStartTime(lastStartTime)
-                            .setEndTime(batteryEvent.getTimestamp())
-                            .build());
+                    resultList.add(
+                            AppUsagePeriod.newBuilder()
+                                    .setStartTime(lastStartTime)
+                                    .setEndTime(batteryEvent.getTimestamp())
+                                    .build());
                     lastStartTime = 0;
                 } else if (batteryEvent.getType() == BatteryEventType.POWER_DISCONNECTED) {
                     lastStartTime = batteryEvent.getTimestamp();
@@ -853,10 +880,11 @@
                 index++;
             }
             if (lastStartTime != 0) {
-                resultList.add(AppUsagePeriod.newBuilder()
-                        .setStartTime(lastStartTime)
-                        .setEndTime(inputPeriod.getEndTime())
-                        .build());
+                resultList.add(
+                        AppUsagePeriod.newBuilder()
+                                .setStartTime(lastStartTime)
+                                .setEndTime(inputPeriod.getEndTime())
+                                .build());
             }
         }
         return resultList;
@@ -875,13 +903,19 @@
     }
 
     static Map<Long, BatteryDiffData> getBatteryDiffDataMapFromStatsService(
-            final Context context, final long startTimestamp,
+            final Context context,
+            final long startTimestamp,
             @NonNull final Set<String> systemAppsPackageNames,
             @NonNull final Set<Integer> systemAppsUids) {
         Map<Long, BatteryDiffData> batteryDiffDataMap = new ArrayMap<>(1);
-        batteryDiffDataMap.put(startTimestamp, generateBatteryDiffData(
-                context, startTimestamp, getBatteryHistListFromFromStatsService(context),
-                systemAppsPackageNames, systemAppsUids));
+        batteryDiffDataMap.put(
+                startTimestamp,
+                generateBatteryDiffData(
+                        context,
+                        startTimestamp,
+                        getBatteryHistListFromFromStatsService(context),
+                        systemAppsPackageNames,
+                        systemAppsUids));
         return batteryDiffDataMap;
     }
 
@@ -894,23 +928,25 @@
         final BatteryDiffData batteryUsageMapForAll =
                 batteryUsageMap.get(SELECTED_INDEX_ALL).get(SELECTED_INDEX_ALL);
         if (batteryUsageMapForAll != null) {
-            batteryUsageMapForAll.getAppDiffEntryList().forEach(
-                    entry -> entry.loadLabelAndIcon());
-            batteryUsageMapForAll.getSystemDiffEntryList().forEach(
-                    entry -> entry.loadLabelAndIcon());
+            batteryUsageMapForAll.getAppDiffEntryList().forEach(entry -> entry.loadLabelAndIcon());
+            batteryUsageMapForAll
+                    .getSystemDiffEntryList()
+                    .forEach(entry -> entry.loadLabelAndIcon());
         }
     }
 
     static Set<String> getSystemAppsPackageNames(Context context) {
-        return sTestSystemAppsPackageNames != null ? sTestSystemAppsPackageNames
+        return sTestSystemAppsPackageNames != null
+                ? sTestSystemAppsPackageNames
                 : AppListRepositoryUtil.getSystemPackageNames(context, context.getUserId());
     }
 
     static Set<Integer> getSystemAppsUids(Context context) {
         Set<Integer> result = new ArraySet<>(1);
         try {
-            result.add(context.getPackageManager().getUidForSharedUser(
-                    ANDROID_CORE_APPS_SHARED_USER_ID));
+            result.add(
+                    context.getPackageManager()
+                            .getUidForSharedUser(ANDROID_CORE_APPS_SHARED_USER_ID));
         } catch (PackageManager.NameNotFoundException e) {
             // No Android Core Apps
         }
@@ -918,10 +954,10 @@
     }
 
     /**
-     * Generates the list of {@link AppUsageEvent} within the specific time range.
-     * The buffer is added to make sure the app usage calculation near the boundaries is correct.
+     * Generates the list of {@link AppUsageEvent} within the specific time range. The buffer is
+     * added to make sure the app usage calculation near the boundaries is correct.
      *
-     * Note: The appUsageEventList should have been sorted when calling this function.
+     * <p>Note: The appUsageEventList should have been sorted when calling this function.
      */
     private static List<AppUsageEvent> getAppUsageEventListWithinTimeRangeWithBuffer(
             final List<AppUsageEvent> appUsageEventList, final long startTime, final long endTime) {
@@ -980,17 +1016,13 @@
         packageNameMap.get(packageName).addAll(usagePeriodList);
     }
 
-    /**
-     * Returns the start time that gives {@code usagePeriod} the default usage duration.
-     */
+    /** Returns the start time that gives {@code usagePeriod} the default usage duration. */
     private static long getStartTimeForIncompleteUsagePeriod(
             final AppUsagePeriodOrBuilder usagePeriod) {
         return usagePeriod.getEndTime() - DEFAULT_USAGE_DURATION_FOR_INCOMPLETE_INTERVAL;
     }
 
-    /**
-     * Returns the end time that gives {@code usagePeriod} the default usage duration.
-     */
+    /** Returns the end time that gives {@code usagePeriod} the default usage duration. */
     private static long getEndTimeForIncompleteUsagePeriod(
             final AppUsagePeriodOrBuilder usagePeriod, final long eventTime) {
         return Math.min(
@@ -1000,7 +1032,9 @@
 
     @Nullable
     private static UsageEvents getAppUsageEventsForUser(
-            Context context, final UserManager userManager, final int userID,
+            Context context,
+            final UserManager userManager,
+            final int userID,
             final long earliestTimestamp) {
         final String callingPackage = context.getPackageName();
         final long now = System.currentTimeMillis();
@@ -1010,27 +1044,34 @@
             Log.w(TAG, "fail to load app usage event for user :" + userID + " because locked");
             return null;
         }
-        final long startTime = DatabaseUtils.getAppUsageStartTimestampOfUser(
-                context, userID, earliestTimestamp);
+        final long startTime =
+                DatabaseUtils.getAppUsageStartTimestampOfUser(context, userID, earliestTimestamp);
         return loadAppUsageEventsForUserFromService(
                 sUsageStatsManager, startTime, now, userID, callingPackage);
     }
 
     @Nullable
     private static UsageEvents loadAppUsageEventsForUserFromService(
-            final IUsageStatsManager usageStatsManager, final long startTime, final long endTime,
-            final int userId, final String callingPackage) {
+            final IUsageStatsManager usageStatsManager,
+            final long startTime,
+            final long endTime,
+            final int userId,
+            final String callingPackage) {
         final long start = System.currentTimeMillis();
         UsageEvents events = null;
         try {
-            events = usageStatsManager.queryEventsForUser(
-                    startTime, endTime, userId, callingPackage);
+            events =
+                    usageStatsManager.queryEventsForUser(
+                            startTime, endTime, userId, callingPackage);
         } catch (RemoteException e) {
             Log.e(TAG, "Error fetching usage events: ", e);
         }
         final long elapsedTime = System.currentTimeMillis() - start;
-        Log.d(TAG, String.format("getAppUsageEventsForUser(): %d from %d to %d in %d/ms", userId,
-                startTime, endTime, elapsedTime));
+        Log.d(
+                TAG,
+                String.format(
+                        "getAppUsageEventsForUser(): %d from %d to %d in %d/ms",
+                        userId, startTime, endTime, elapsedTime));
         return events;
     }
 
@@ -1061,13 +1102,14 @@
             return null;
         }
         return batteryEntryList.stream()
-                .filter(entry -> {
-                    final long foregroundMs = entry.getTimeInForegroundMs();
-                    final long backgroundMs = entry.getTimeInBackgroundMs();
-                    return entry.getConsumedPower() > 0
-                            || (entry.getConsumedPower() == 0
-                            && (foregroundMs != 0 || backgroundMs != 0));
-                })
+                .filter(
+                        entry -> {
+                            final long foregroundMs = entry.getTimeInForegroundMs();
+                            final long backgroundMs = entry.getTimeInBackgroundMs();
+                            return entry.getConsumedPower() > 0
+                                    || (entry.getConsumedPower() == 0
+                                            && (foregroundMs != 0 || backgroundMs != 0));
+                        })
                 .map(entry -> ConvertUtils.convertToBatteryHistEntry(entry, batteryUsageStats))
                 .collect(Collectors.toList());
     }
@@ -1091,10 +1133,15 @@
 
         resultMap.put(startTimestamp, batteryHistoryMap.get(startTimestamp));
         for (int index = 1; index < expectedTimestampSlotsSize - 1; index++) {
-            interpolateHistoryForSlot(context, expectedTimestampSlots.get(index), rawTimestampList,
-                    batteryHistoryMap, resultMap);
+            interpolateHistoryForSlot(
+                    context,
+                    expectedTimestampSlots.get(index),
+                    rawTimestampList,
+                    batteryHistoryMap,
+                    resultMap);
         }
-        resultMap.put(endTimestamp,
+        resultMap.put(
+                endTimestamp,
                 Map.of(CURRENT_TIME_BATTERY_HISTORY_PLACEHOLDER, EMPTY_BATTERY_HIST_ENTRY));
     }
 
@@ -1185,7 +1232,7 @@
                     BatteryHistEntry.interpolate(
                             currentSlot,
                             upperTimestamp,
-                            /*ratio=*/ timestampDiff / timestampLength,
+                            /* ratio= */ timestampDiff / timestampLength,
                             lowerEntry,
                             upperEntry);
             newHistEntryMap.put(entryKey, newEntry);
@@ -1203,8 +1250,10 @@
             final long timestamp) {
         final Map<String, BatteryHistEntry> entryMap = processedBatteryHistoryMap.get(timestamp);
         if (entryMap == null || entryMap.isEmpty()) {
-            Log.e(TAG, "abnormal entry list in the timestamp:"
-                    + ConvertUtils.utcToLocalTimeForLogging(timestamp));
+            Log.e(
+                    TAG,
+                    "abnormal entry list in the timestamp:"
+                            + ConvertUtils.utcToLocalTimeForLogging(timestamp));
             return BATTERY_LEVEL_UNKNOWN;
         }
         // The current time battery history hasn't been loaded yet, returns the current battery
@@ -1264,11 +1313,11 @@
     }
 
     private static void insertAllUsageDiffData(
-            final Context context,
-            final Map<Integer, Map<Integer, BatteryDiffData>> resultMap) {
+            final Context context, final Map<Integer, Map<Integer, BatteryDiffData>> resultMap) {
         final List<BatteryDiffData> diffDataList = new ArrayList<>();
-        resultMap.keySet().forEach(
-                key -> diffDataList.add(resultMap.get(key).get(SELECTED_INDEX_ALL)));
+        resultMap
+                .keySet()
+                .forEach(key -> diffDataList.add(resultMap.get(key).get(SELECTED_INDEX_ALL)));
         final Map<Integer, BatteryDiffData> allUsageMap = new ArrayMap<>();
         allUsageMap.put(SELECTED_INDEX_ALL, getAccumulatedUsageDiffData(context, diffDataList));
         resultMap.put(SELECTED_INDEX_ALL, allUsageMap);
@@ -1304,8 +1353,7 @@
                     }
                 }
             }
-            slotScreenOnTime =
-                    Math.min(slotDuration, getScreenOnTime(flatAppUsagePeriodList));
+            slotScreenOnTime = Math.min(slotDuration, getScreenOnTime(flatAppUsagePeriodList));
         }
 
         final List<BatteryDiffEntry> appEntries = new ArrayList<>();
@@ -1318,7 +1366,18 @@
                 // We should not get the empty list since we have at least one fake data to record
                 // the battery level and status in each time slot, the empty list is used to
                 // represent there is no enough data to apply interpolation arithmetic.
-                return null;
+                return new BatteryDiffData(
+                        context,
+                        startTimestamp,
+                        endTimestamp,
+                        startBatteryLevel,
+                        endBatteryLevel,
+                        /* screenOnTime= */ 0L,
+                        appEntries,
+                        systemEntries,
+                        systemAppsPackageNames,
+                        systemAppsUids,
+                        /* isAccumulated= */ false);
             }
             allBatteryHistEntryKeys.addAll(slotBatteryHistMap.keySet());
         }
@@ -1344,8 +1403,9 @@
             }
 
             // Not show other users' battery usage data.
-            final boolean isFromOtherUsers = isConsumedFromOtherUsers(
-                    currentUserId, workProfileUserId, selectedBatteryEntry);
+            final boolean isFromOtherUsers =
+                    isConsumedFromOtherUsers(
+                            currentUserId, workProfileUserId, selectedBatteryEntry);
             if (isFromOtherUsers) {
                 continue;
             }
@@ -1369,10 +1429,7 @@
                         getDiffValue(
                                 currentEntry.mBackgroundUsageTimeInMs,
                                 nextEntry.mBackgroundUsageTimeInMs);
-                consumePower +=
-                        getDiffValue(
-                                currentEntry.mConsumePower,
-                                nextEntry.mConsumePower);
+                consumePower += getDiffValue(currentEntry.mConsumePower, nextEntry.mConsumePower);
                 foregroundUsageConsumePower +=
                         getDiffValue(
                                 currentEntry.mForegroundUsageConsumePower,
@@ -1396,27 +1453,25 @@
                 foregroundUsageTimeInMs = slotScreenOnTime;
             }
             // Excludes entry since we don't have enough data to calculate.
-            if (foregroundUsageTimeInMs == 0
-                    && backgroundUsageTimeInMs == 0
-                    && consumePower == 0) {
+            if (foregroundUsageTimeInMs == 0 && backgroundUsageTimeInMs == 0 && consumePower == 0) {
                 continue;
             }
             // Forces refine the cumulative value since it may introduce deviation error since we
             // will apply the interpolation arithmetic.
-            final float totalUsageTimeInMs =
-                    foregroundUsageTimeInMs + backgroundUsageTimeInMs;
+            final float totalUsageTimeInMs = foregroundUsageTimeInMs + backgroundUsageTimeInMs;
             if (totalUsageTimeInMs > slotDuration) {
                 final float ratio = slotDuration / totalUsageTimeInMs;
                 if (sDebug) {
-                    Log.w(TAG, String.format("abnormal usage time %d|%d for:\n%s",
-                            Duration.ofMillis(foregroundUsageTimeInMs).getSeconds(),
-                            Duration.ofMillis(backgroundUsageTimeInMs).getSeconds(),
-                            selectedBatteryEntry));
+                    Log.w(
+                            TAG,
+                            String.format(
+                                    "abnormal usage time %d|%d for:\n%s",
+                                    Duration.ofMillis(foregroundUsageTimeInMs).getSeconds(),
+                                    Duration.ofMillis(backgroundUsageTimeInMs).getSeconds(),
+                                    selectedBatteryEntry));
                 }
-                foregroundUsageTimeInMs =
-                        Math.round(foregroundUsageTimeInMs * ratio);
-                backgroundUsageTimeInMs =
-                        Math.round(backgroundUsageTimeInMs * ratio);
+                foregroundUsageTimeInMs = Math.round(foregroundUsageTimeInMs * ratio);
+                backgroundUsageTimeInMs = Math.round(backgroundUsageTimeInMs * ratio);
                 consumePower = consumePower * ratio;
                 foregroundUsageConsumePower = foregroundUsageConsumePower * ratio;
                 foregroundServiceUsageConsumePower = foregroundServiceUsageConsumePower * ratio;
@@ -1425,48 +1480,53 @@
             }
 
             // Compute the screen on time and make sure it won't exceed the threshold.
-            final long screenOnTime = Math.min(
-                    (long) slotDuration,
-                    getScreenOnTime(
-                            appUsageMap,
-                            selectedBatteryEntry.mUserId,
-                            selectedBatteryEntry.mPackageName));
+            final long screenOnTime =
+                    Math.min(
+                            (long) slotDuration,
+                            getScreenOnTime(
+                                    appUsageMap,
+                                    selectedBatteryEntry.mUserId,
+                                    selectedBatteryEntry.mPackageName));
             // Make sure the background + screen-on time will not exceed the threshold.
-            backgroundUsageTimeInMs = Math.min(
-                    backgroundUsageTimeInMs, (long) slotDuration - screenOnTime);
-            final BatteryDiffEntry currentBatteryDiffEntry = new BatteryDiffEntry(
-                    context,
-                    selectedBatteryEntry.mUid,
-                    selectedBatteryEntry.mUserId,
-                    selectedBatteryEntry.getKey(),
-                    selectedBatteryEntry.mIsHidden,
-                    selectedBatteryEntry.mDrainType,
-                    selectedBatteryEntry.mPackageName,
-                    selectedBatteryEntry.mAppLabel,
-                    selectedBatteryEntry.mConsumerType,
-                    foregroundUsageTimeInMs,
-                    backgroundUsageTimeInMs,
-                    screenOnTime,
-                    consumePower,
-                    foregroundUsageConsumePower,
-                    foregroundServiceUsageConsumePower,
-                    backgroundUsageConsumePower,
-                    cachedUsageConsumePower);
+            backgroundUsageTimeInMs =
+                    Math.min(backgroundUsageTimeInMs, (long) slotDuration - screenOnTime);
+            final BatteryDiffEntry currentBatteryDiffEntry =
+                    new BatteryDiffEntry(
+                            context,
+                            selectedBatteryEntry.mUid,
+                            selectedBatteryEntry.mUserId,
+                            selectedBatteryEntry.getKey(),
+                            selectedBatteryEntry.mIsHidden,
+                            selectedBatteryEntry.mDrainType,
+                            selectedBatteryEntry.mPackageName,
+                            selectedBatteryEntry.mAppLabel,
+                            selectedBatteryEntry.mConsumerType,
+                            foregroundUsageTimeInMs,
+                            backgroundUsageTimeInMs,
+                            screenOnTime,
+                            consumePower,
+                            foregroundUsageConsumePower,
+                            foregroundServiceUsageConsumePower,
+                            backgroundUsageConsumePower,
+                            cachedUsageConsumePower);
             if (currentBatteryDiffEntry.isSystemEntry()) {
                 systemEntries.add(currentBatteryDiffEntry);
             } else {
                 appEntries.add(currentBatteryDiffEntry);
             }
         }
-
-        // If there is no data, return null instead of empty item.
-        if (appEntries.isEmpty() && systemEntries.isEmpty()) {
-            return null;
-        }
-
-        return new BatteryDiffData(context, startTimestamp, endTimestamp, startBatteryLevel,
-                endBatteryLevel, slotScreenOnTime, appEntries, systemEntries,
-                systemAppsPackageNames, systemAppsUids, /* isAccumulated= */ false);
+        return new BatteryDiffData(
+                context,
+                startTimestamp,
+                endTimestamp,
+                startBatteryLevel,
+                endBatteryLevel,
+                slotScreenOnTime,
+                appEntries,
+                systemEntries,
+                systemAppsPackageNames,
+                systemAppsUids,
+                /* isAccumulated= */ false);
     }
 
     private static long getScreenOnTime(@Nullable final List<AppUsagePeriod> appUsagePeriodList) {
@@ -1563,15 +1623,22 @@
             }
         }
 
-        return diffEntryList.isEmpty() ? null : new BatteryDiffData(context, startTimestamp,
-                endTimestamp, startBatteryLevel, endBatteryLevel, totalScreenOnTime, appEntries,
-                systemEntries, /* systemAppsPackageNames= */ new ArraySet<>(),
-                /* systemAppsUids= */ new ArraySet<>(), /* isAccumulated= */ true);
+        return new BatteryDiffData(
+                context,
+                startTimestamp,
+                endTimestamp,
+                startBatteryLevel,
+                endBatteryLevel,
+                totalScreenOnTime,
+                appEntries,
+                systemEntries,
+                /* systemAppsPackageNames= */ new ArraySet<>(),
+                /* systemAppsUids= */ new ArraySet<>(),
+                /* isAccumulated= */ true);
     }
 
     private static void computeUsageDiffDataPerEntry(
-            final BatteryDiffEntry entry,
-            final Map<String, BatteryDiffEntry> diffEntryMap) {
+            final BatteryDiffEntry entry, final Map<String, BatteryDiffEntry> diffEntryMap) {
         final String key = entry.getKey();
         final BatteryDiffEntry oldBatteryDiffEntry = diffEntryMap.get(key);
         // Creates new BatteryDiffEntry if we don't have it.
@@ -1579,16 +1646,13 @@
             diffEntryMap.put(key, entry.clone());
         } else {
             // Sums up some field data into the existing one.
-            oldBatteryDiffEntry.mForegroundUsageTimeInMs +=
-                    entry.mForegroundUsageTimeInMs;
-            oldBatteryDiffEntry.mBackgroundUsageTimeInMs +=
-                    entry.mBackgroundUsageTimeInMs;
-            oldBatteryDiffEntry.mScreenOnTimeInMs +=
-                    entry.mScreenOnTimeInMs;
+            oldBatteryDiffEntry.mForegroundUsageTimeInMs += entry.mForegroundUsageTimeInMs;
+            oldBatteryDiffEntry.mBackgroundUsageTimeInMs += entry.mBackgroundUsageTimeInMs;
+            oldBatteryDiffEntry.mScreenOnTimeInMs += entry.mScreenOnTimeInMs;
             oldBatteryDiffEntry.mConsumePower += entry.mConsumePower;
             oldBatteryDiffEntry.mForegroundUsageConsumePower += entry.mForegroundUsageConsumePower;
-            oldBatteryDiffEntry.mForegroundServiceUsageConsumePower
-                    += entry.mForegroundServiceUsageConsumePower;
+            oldBatteryDiffEntry.mForegroundServiceUsageConsumePower +=
+                    entry.mForegroundServiceUsageConsumePower;
             oldBatteryDiffEntry.mBackgroundUsageConsumePower += entry.mBackgroundUsageConsumePower;
             oldBatteryDiffEntry.mCachedUsageConsumePower += entry.mCachedUsageConsumePower;
         }
@@ -1597,8 +1661,9 @@
     private static boolean shouldShowBatteryAttributionList(final Context context) {
         final PowerProfile powerProfile = new PowerProfile(context);
         // Cheap hack to try to figure out if the power_profile.xml was populated.
-        final double averagePowerForOrdinal = powerProfile.getAveragePowerForOrdinal(
-                PowerProfile.POWER_GROUP_DISPLAY_SCREEN_FULL, 0);
+        final double averagePowerForOrdinal =
+                powerProfile.getAveragePowerForOrdinal(
+                        PowerProfile.POWER_GROUP_DISPLAY_SCREEN_FULL, 0);
         final boolean shouldShowBatteryAttributionList =
                 averagePowerForOrdinal >= MIN_AVERAGE_POWER_THRESHOLD_MILLI_AMP;
         if (!shouldShowBatteryAttributionList) {
@@ -1608,13 +1673,14 @@
     }
 
     /**
-     * We want to coalesce some UIDs. For example, dex2oat runs under a shared gid that
-     * exists for all users of the same app. We detect this case and merge the power use
-     * for dex2oat to the device OWNER's use of the app.
+     * We want to coalesce some UIDs. For example, dex2oat runs under a shared gid that exists for
+     * all users of the same app. We detect this case and merge the power use for dex2oat to the
+     * device OWNER's use of the app.
      *
      * @return A sorted list of apps using power.
      */
-    private static List<BatteryEntry> getCoalescedUsageList(final Context context,
+    private static List<BatteryEntry> getCoalescedUsageList(
+            final Context context,
             final BatteryUtils batteryUtils,
             final BatteryUsageStats batteryUsageStats,
             final boolean loadDataInBackground) {
@@ -1627,8 +1693,9 @@
 
         // Sort to have all apps with "real" UIDs first, followed by apps that are supposed
         // to be combined with the real ones.
-        uidBatteryConsumers.sort(Comparator.comparingInt(
-                consumer -> consumer.getUid() == getRealUid(consumer) ? 0 : 1));
+        uidBatteryConsumers.sort(
+                Comparator.comparingInt(
+                        consumer -> consumer.getUid() == getRealUid(consumer) ? 0 : 1));
 
         for (int i = 0, size = uidBatteryConsumers.size(); i < size; i++) {
             final UidBatteryConsumer consumer = uidBatteryConsumers.get(i);
@@ -1643,8 +1710,17 @@
             final int index = batteryEntryList.indexOfKey(uid);
             if (index < 0) {
                 // New entry.
-                batteryEntryList.put(uid, new BatteryEntry(context, userManager, consumer,
-                        isHidden, uid, packages, null, loadDataInBackground));
+                batteryEntryList.put(
+                        uid,
+                        new BatteryEntry(
+                                context,
+                                userManager,
+                                consumer,
+                                isHidden,
+                                uid,
+                                packages,
+                                null,
+                                loadDataInBackground));
             } else {
                 // Combine BatterySippers if we already have one with this UID.
                 final BatteryEntry existingSipper = batteryEntryList.valueAt(index);
@@ -1652,33 +1728,50 @@
             }
         }
 
-        final BatteryConsumer deviceConsumer = batteryUsageStats.getAggregateBatteryConsumer(
-                BatteryUsageStats.AGGREGATE_BATTERY_CONSUMER_SCOPE_DEVICE);
+        final BatteryConsumer deviceConsumer =
+                batteryUsageStats.getAggregateBatteryConsumer(
+                        BatteryUsageStats.AGGREGATE_BATTERY_CONSUMER_SCOPE_DEVICE);
 
-        for (int componentId = 0; componentId < BatteryConsumer.POWER_COMPONENT_COUNT;
+        for (int componentId = 0;
+                componentId < BatteryConsumer.POWER_COMPONENT_COUNT;
                 componentId++) {
-            results.add(new BatteryEntry(context, componentId,
-                    deviceConsumer.getConsumedPower(componentId),
-                    deviceConsumer.getUsageDurationMillis(componentId),
-                    componentId == POWER_COMPONENT_SYSTEM_SERVICES
-                            || componentId == POWER_COMPONENT_WAKELOCK));
+            results.add(
+                    new BatteryEntry(
+                            context,
+                            componentId,
+                            deviceConsumer.getConsumedPower(componentId),
+                            deviceConsumer.getUsageDurationMillis(componentId),
+                            componentId == POWER_COMPONENT_SYSTEM_SERVICES
+                                    || componentId == POWER_COMPONENT_WAKELOCK));
         }
 
         for (int componentId = BatteryConsumer.FIRST_CUSTOM_POWER_COMPONENT_ID;
-                componentId < BatteryConsumer.FIRST_CUSTOM_POWER_COMPONENT_ID
-                        + deviceConsumer.getCustomPowerComponentCount();
+                componentId
+                        < BatteryConsumer.FIRST_CUSTOM_POWER_COMPONENT_ID
+                                + deviceConsumer.getCustomPowerComponentCount();
                 componentId++) {
-            results.add(new BatteryEntry(context, componentId,
-                    deviceConsumer.getCustomPowerComponentName(componentId),
-                    deviceConsumer.getConsumedPowerForCustomComponent(componentId)));
+            results.add(
+                    new BatteryEntry(
+                            context,
+                            componentId,
+                            deviceConsumer.getCustomPowerComponentName(componentId),
+                            deviceConsumer.getConsumedPowerForCustomComponent(componentId)));
         }
 
         final List<UserBatteryConsumer> userBatteryConsumers =
                 batteryUsageStats.getUserBatteryConsumers();
         for (int i = 0, size = userBatteryConsumers.size(); i < size; i++) {
             final UserBatteryConsumer consumer = userBatteryConsumers.get(i);
-            results.add(new BatteryEntry(context, userManager, consumer, /* isHidden */ true,
-                    Process.INVALID_UID, null, null, loadDataInBackground));
+            results.add(
+                    new BatteryEntry(
+                            context,
+                            userManager,
+                            consumer, /* isHidden */
+                            true,
+                            Process.INVALID_UID,
+                            null,
+                            null,
+                            loadDataInBackground));
         }
 
         final int numUidSippers = batteryEntryList.size();
@@ -1698,8 +1791,10 @@
         // Check if this UID is a shared GID. If so, we combine it with the OWNER's
         // actual app UID.
         if (isSharedGid(consumer.getUid())) {
-            realUid = UserHandle.getUid(UserHandle.USER_SYSTEM,
-                    UserHandle.getAppIdFromSharedAppGid(consumer.getUid()));
+            realUid =
+                    UserHandle.getUid(
+                            UserHandle.USER_SYSTEM,
+                            UserHandle.getAppIdFromSharedAppGid(consumer.getUid()));
         }
 
         // Check if this UID is a system UID (mediaserver, logd, nfc, drm, etc).
@@ -1733,8 +1828,13 @@
         for (int dailyIndex = 0; dailyIndex < hourlyBatteryLevelsPerDay.size(); dailyIndex++) {
             if (batteryUsageMap.get(dailyIndex) == null
                     || !batteryUsageMap.get(dailyIndex).containsKey(SELECTED_INDEX_ALL)) {
-                Log.e(TAG, "no [" + dailyIndex + "][SELECTED_INDEX_ALL] in batteryUsageMap, "
-                        + "daily size is: " + hourlyBatteryLevelsPerDay.size());
+                Log.e(
+                        TAG,
+                        "no ["
+                                + dailyIndex
+                                + "][SELECTED_INDEX_ALL] in batteryUsageMap, "
+                                + "daily size is: "
+                                + hourlyBatteryLevelsPerDay.size());
                 return false;
             }
             if (hourlyBatteryLevelsPerDay.get(dailyIndex) == null) {
@@ -1744,8 +1844,15 @@
             // Length of hourly usage map should be the length of hourly level data - 1.
             for (int hourlyIndex = 0; hourlyIndex < timestamps.size() - 1; hourlyIndex++) {
                 if (!batteryUsageMap.get(dailyIndex).containsKey(hourlyIndex)) {
-                    Log.e(TAG, "no [" + dailyIndex + "][" + hourlyIndex + "] in batteryUsageMap, "
-                            + "hourly size is: " + (timestamps.size() - 1));
+                    Log.e(
+                            TAG,
+                            "no ["
+                                    + dailyIndex
+                                    + "]["
+                                    + hourlyIndex
+                                    + "] in batteryUsageMap, "
+                                    + "hourly size is: "
+                                    + (timestamps.size() - 1));
                     return false;
                 }
             }
@@ -1765,11 +1872,19 @@
         return sTestCurrentTimeMillis > 0 ? sTestCurrentTimeMillis : System.currentTimeMillis();
     }
 
-    private static void log(Context context, final String content, final long timestamp,
+    private static void log(
+            Context context,
+            final String content,
+            final long timestamp,
             final BatteryHistEntry entry) {
         if (sDebug) {
-            Log.d(TAG, String.format(entry != null ? "%s %s:\n%s" : "%s %s:%s",
-                    ConvertUtils.utcToLocalTimeForLogging(timestamp), content, entry));
+            Log.d(
+                    TAG,
+                    String.format(
+                            entry != null ? "%s %s:\n%s" : "%s %s:%s",
+                            ConvertUtils.utcToLocalTimeForLogging(timestamp),
+                            content,
+                            entry));
         }
     }
 }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java b/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java
index e78d25c..f96ed5b 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java
@@ -15,6 +15,7 @@
  */
 
 package com.android.settings.fuelgauge.batteryusage;
+
 import static com.android.settings.fuelgauge.batteryusage.ConvertUtils.utcToLocalTimeForLogging;
 
 import android.app.usage.IUsageStatsManager;
@@ -53,6 +54,7 @@
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 import java.util.function.Function;
@@ -64,8 +66,9 @@
     private static final String TAG = "DatabaseUtils";
     private static final String SHARED_PREFS_FILE = "battery_usage_shared_prefs";
 
-    /** Clear memory threshold for device booting phase. **/
+    /** 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;
 
@@ -77,28 +80,39 @@
 
     /** An authority name of the battery content provider. */
     public static final String AUTHORITY = "com.android.settings.battery.usage.provider";
+
     /** A table name for app usage events. */
     public static final String APP_USAGE_EVENT_TABLE = "AppUsageEvent";
+
     /** A table name for battery events. */
     public static final String BATTERY_EVENT_TABLE = "BatteryEvent";
+
     /** A table name for battery usage history. */
     public static final String BATTERY_STATE_TABLE = "BatteryState";
+
     /** A table name for battery usage slot. */
     public static final String BATTERY_USAGE_SLOT_TABLE = "BatteryUsageSlot";
+
     /** A path name for last full charge time query. */
     public static final String LAST_FULL_CHARGE_TIMESTAMP_PATH = "lastFullChargeTimestamp";
+
     /** A path name for querying the latest record timestamp in battery state table. */
     public static final String BATTERY_STATE_LATEST_TIMESTAMP_PATH = "batteryStateLatestTimestamp";
+
     /** A path name for app usage latest timestamp query. */
     public static final String APP_USAGE_LATEST_TIMESTAMP_PATH = "appUsageLatestTimestamp";
-    /** Key for query parameter timestamp used in BATTERY_CONTENT_URI **/
+
+    /** Key for query parameter timestamp used in BATTERY_CONTENT_URI */
     public static final String QUERY_KEY_TIMESTAMP = "timestamp";
-    /** Key for query parameter userid used in APP_USAGE_EVENT_URI **/
+
+    /** Key for query parameter userid used in APP_USAGE_EVENT_URI */
     public static final String QUERY_KEY_USERID = "userid";
-    /** Key for query parameter battery event type used in BATTERY_EVENT_URI **/
+
+    /** Key for query parameter battery event type used in BATTERY_EVENT_URI */
     public static final String QUERY_BATTERY_EVENT_TYPE = "batteryEventType";
 
     public static final long INVALID_USER_ID = Integer.MIN_VALUE;
+
     /**
      * The buffer hours to query app usage events that may have begun or ended out of the final
      * desired time frame.
@@ -112,6 +126,7 @@
                     .authority(AUTHORITY)
                     .appendPath(APP_USAGE_EVENT_TABLE)
                     .build();
+
     /** A content URI to access battery events data. */
     public static final Uri BATTERY_EVENT_URI =
             new Uri.Builder()
@@ -119,6 +134,7 @@
                     .authority(AUTHORITY)
                     .appendPath(BATTERY_EVENT_TABLE)
                     .build();
+
     /** A content URI to access battery usage states data. */
     public static final Uri BATTERY_CONTENT_URI =
             new Uri.Builder()
@@ -126,6 +142,7 @@
                     .authority(AUTHORITY)
                     .appendPath(BATTERY_STATE_TABLE)
                     .build();
+
     /** A content URI to access battery usage slots data. */
     public static final Uri BATTERY_USAGE_SLOT_URI =
             new Uri.Builder()
@@ -133,13 +150,14 @@
                     .authority(AUTHORITY)
                     .appendPath(BATTERY_USAGE_SLOT_TABLE)
                     .build();
+    /** A list of level record event types to access battery usage data. */
+    public static final List<BatteryEventType> BATTERY_LEVEL_RECORD_EVENTS =
+            List.of(BatteryEventType.FULL_CHARGED, BatteryEventType.EVEN_HOUR);
 
     // For testing only.
-    @VisibleForTesting
-    static Supplier<Cursor> sFakeSupplier;
+    @VisibleForTesting static Supplier<Cursor> sFakeSupplier;
 
-    private DatabaseUtils() {
-    }
+    private DatabaseUtils() {}
 
     /** Returns true if current user is a work profile user. */
     public static boolean isWorkProfile(Context context) {
@@ -157,15 +175,17 @@
                         .scheme(ContentResolver.SCHEME_CONTENT)
                         .authority(AUTHORITY)
                         .appendPath(APP_USAGE_LATEST_TIMESTAMP_PATH)
-                        .appendQueryParameter(
-                                QUERY_KEY_USERID, Long.toString(userId))
+                        .appendQueryParameter(QUERY_KEY_USERID, Long.toString(userId))
                         .build();
-        final long latestTimestamp = loadLongFromContentProvider(
-                context, appUsageLatestTimestampUri, /*defaultValue=*/ INVALID_TIMESTAMP);
+        final long latestTimestamp =
+                loadLongFromContentProvider(
+                        context, appUsageLatestTimestampUri, /* defaultValue= */ INVALID_TIMESTAMP);
         final String latestTimestampString = utcToLocalTimeForLogging(latestTimestamp);
-        Log.d(TAG, String.format(
-                "getAppUsageStartTimestampOfUser() userId=%d latestTimestamp=%s in %d/ms",
-                userId, latestTimestampString, (System.currentTimeMillis() - startTime)));
+        Log.d(
+                TAG,
+                String.format(
+                        "getAppUsageStartTimestampOfUser() userId=%d latestTimestamp=%s in %d/ms",
+                        userId, latestTimestampString, (System.currentTimeMillis() - startTime)));
         // Use (latestTimestamp + 1) here to avoid loading the events of the latestTimestamp
         // repeatedly.
         return Math.max(latestTimestamp + 1, earliestTimestamp);
@@ -184,25 +204,30 @@
         final long queryTimestamp =
                 Math.max(rawStartTimestamp, sixDaysAgoTimestamp) - USAGE_QUERY_BUFFER_HOURS;
         Log.d(TAG, "sixDaysAgoTimestamp: " + utcToLocalTimeForLogging(sixDaysAgoTimestamp));
-        final String queryUserIdString = userIds.stream()
-                .map(userId -> String.valueOf(userId))
-                .collect(Collectors.joining(","));
+        final String queryUserIdString =
+                userIds.stream()
+                        .map(userId -> String.valueOf(userId))
+                        .collect(Collectors.joining(","));
         // Builds the content uri everytime to avoid cache.
         final Uri appUsageEventUri =
                 new Uri.Builder()
                         .scheme(ContentResolver.SCHEME_CONTENT)
                         .authority(AUTHORITY)
                         .appendPath(APP_USAGE_EVENT_TABLE)
-                        .appendQueryParameter(
-                                QUERY_KEY_TIMESTAMP, Long.toString(queryTimestamp))
+                        .appendQueryParameter(QUERY_KEY_TIMESTAMP, Long.toString(queryTimestamp))
                         .appendQueryParameter(QUERY_KEY_USERID, queryUserIdString)
                         .build();
 
-        final List<AppUsageEvent> appUsageEventList = loadListFromContentProvider(
-                context, appUsageEventUri, ConvertUtils::convertToAppUsageEvent);
-        Log.d(TAG, String.format("getAppUsageEventForUser userId=%s size=%d in %d/ms",
-                queryUserIdString, appUsageEventList.size(),
-                (System.currentTimeMillis() - startTime)));
+        final List<AppUsageEvent> appUsageEventList =
+                loadListFromContentProvider(
+                        context, appUsageEventUri, ConvertUtils::convertToAppUsageEvent);
+        Log.d(
+                TAG,
+                String.format(
+                        "getAppUsageEventForUser userId=%s size=%d in %d/ms",
+                        queryUserIdString,
+                        appUsageEventList.size(),
+                        (System.currentTimeMillis() - startTime)));
         return appUsageEventList;
     }
 
@@ -216,25 +241,29 @@
         final long sixDaysAgoTimestamp = getTimestampSixDaysAgo(calendar);
         final long queryTimestamp = Math.max(rawStartTimestamp, sixDaysAgoTimestamp);
         Log.d(TAG, "getBatteryEvents for timestamp: " + queryTimestamp);
-        final String queryBatteryEventTypesString = queryBatteryEventTypes.stream()
-                .map(type -> String.valueOf(type.getNumber()))
-                .collect(Collectors.joining(","));
+        final String queryBatteryEventTypesString =
+                queryBatteryEventTypes.stream()
+                        .map(type -> String.valueOf(type.getNumber()))
+                        .collect(Collectors.joining(","));
         // Builds the content uri everytime to avoid cache.
         final Uri batteryEventUri =
                 new Uri.Builder()
                         .scheme(ContentResolver.SCHEME_CONTENT)
                         .authority(AUTHORITY)
                         .appendPath(BATTERY_EVENT_TABLE)
-                        .appendQueryParameter(
-                                QUERY_KEY_TIMESTAMP, Long.toString(queryTimestamp))
+                        .appendQueryParameter(QUERY_KEY_TIMESTAMP, Long.toString(queryTimestamp))
                         .appendQueryParameter(
                                 QUERY_BATTERY_EVENT_TYPE, queryBatteryEventTypesString)
                         .build();
 
-        final List<BatteryEvent> batteryEventList = loadListFromContentProvider(
-                context, batteryEventUri, ConvertUtils::convertToBatteryEvent);
-        Log.d(TAG, String.format("getBatteryEvents size=%d in %d/ms", batteryEventList.size(),
-                (System.currentTimeMillis() - startTime)));
+        final List<BatteryEvent> batteryEventList =
+                loadListFromContentProvider(
+                        context, batteryEventUri, ConvertUtils::convertToBatteryEvent);
+        Log.d(
+                TAG,
+                String.format(
+                        "getBatteryEvents size=%d in %d/ms",
+                        batteryEventList.size(), (System.currentTimeMillis() - startTime)));
         return batteryEventList;
     }
 
@@ -242,9 +271,7 @@
      * Returns the battery usage slot data after {@code rawStartTimestamp} in battery event table.
      */
     public static List<BatteryUsageSlot> getBatteryUsageSlots(
-            Context context,
-            final Calendar calendar,
-            final long rawStartTimestamp) {
+            Context context, final Calendar calendar, final long rawStartTimestamp) {
         final long startTime = System.currentTimeMillis();
         final long sixDaysAgoTimestamp = getTimestampSixDaysAgo(calendar);
         final long queryTimestamp = Math.max(rawStartTimestamp, sixDaysAgoTimestamp);
@@ -255,14 +282,17 @@
                         .scheme(ContentResolver.SCHEME_CONTENT)
                         .authority(AUTHORITY)
                         .appendPath(BATTERY_USAGE_SLOT_TABLE)
-                        .appendQueryParameter(
-                                QUERY_KEY_TIMESTAMP, Long.toString(queryTimestamp))
+                        .appendQueryParameter(QUERY_KEY_TIMESTAMP, Long.toString(queryTimestamp))
                         .build();
 
-        final List<BatteryUsageSlot> batteryUsageSlotList = loadListFromContentProvider(
-                context, batteryUsageSlotUri, ConvertUtils::convertToBatteryUsageSlot);
-        Log.d(TAG, String.format("getBatteryUsageSlots size=%d in %d/ms",
-                batteryUsageSlotList.size(), (System.currentTimeMillis() - startTime)));
+        final List<BatteryUsageSlot> batteryUsageSlotList =
+                loadListFromContentProvider(
+                        context, batteryUsageSlotUri, ConvertUtils::convertToBatteryUsageSlot);
+        Log.d(
+                TAG,
+                String.format(
+                        "getBatteryUsageSlots size=%d in %d/ms",
+                        batteryUsageSlotList.size(), (System.currentTimeMillis() - startTime)));
         return batteryUsageSlotList;
     }
 
@@ -276,12 +306,15 @@
                         .authority(AUTHORITY)
                         .appendPath(LAST_FULL_CHARGE_TIMESTAMP_PATH)
                         .build();
-        final long lastFullChargeTime = loadLongFromContentProvider(
-                context, lastFullChargeTimeUri, /*defaultValue=*/ INVALID_TIMESTAMP);
+        final long lastFullChargeTime =
+                loadLongFromContentProvider(
+                        context, lastFullChargeTimeUri, /* defaultValue= */ INVALID_TIMESTAMP);
         final String lastFullChargeTimeString = utcToLocalTimeForLogging(lastFullChargeTime);
-        Log.d(TAG, String.format(
-                "getLastFullChargeTime() lastFullChargeTime=%s in %d/ms",
-                lastFullChargeTimeString, (System.currentTimeMillis() - startTime)));
+        Log.d(
+                TAG,
+                String.format(
+                        "getLastFullChargeTime() lastFullChargeTime=%s in %d/ms",
+                        lastFullChargeTimeString, (System.currentTimeMillis() - startTime)));
         return lastFullChargeTime;
     }
 
@@ -296,16 +329,21 @@
                         .scheme(ContentResolver.SCHEME_CONTENT)
                         .authority(AUTHORITY)
                         .appendPath(BATTERY_STATE_LATEST_TIMESTAMP_PATH)
-                        .appendQueryParameter(
-                                QUERY_KEY_TIMESTAMP, Long.toString(queryTimestamp))
+                        .appendQueryParameter(QUERY_KEY_TIMESTAMP, Long.toString(queryTimestamp))
                         .build();
-        final long batteryStateLatestTimestamp = loadLongFromContentProvider(
-                context, batteryStateLatestTimestampUri, /*defaultValue=*/ INVALID_TIMESTAMP);
+        final long batteryStateLatestTimestamp =
+                loadLongFromContentProvider(
+                        context,
+                        batteryStateLatestTimestampUri,
+                        /* defaultValue= */ INVALID_TIMESTAMP);
         final String batteryStateLatestTimestampString =
                 utcToLocalTimeForLogging(batteryStateLatestTimestamp);
-        Log.d(TAG, String.format(
-                "getBatteryStateLatestTimestamp() batteryStateLatestTimestamp=%s in %d/ms",
-                batteryStateLatestTimestampString, (System.currentTimeMillis() - startTime)));
+        Log.d(
+                TAG,
+                String.format(
+                        "getBatteryStateLatestTimestamp() batteryStateLatestTimestamp=%s in %d/ms",
+                        batteryStateLatestTimestampString,
+                        (System.currentTimeMillis() - startTime)));
         return batteryStateLatestTimestamp;
     }
 
@@ -320,12 +358,12 @@
                         .scheme(ContentResolver.SCHEME_CONTENT)
                         .authority(AUTHORITY)
                         .appendPath(BATTERY_STATE_TABLE)
-                        .appendQueryParameter(
-                                QUERY_KEY_TIMESTAMP, Long.toString(queryTimestamp))
+                        .appendQueryParameter(QUERY_KEY_TIMESTAMP, Long.toString(queryTimestamp))
                         .build();
 
-        final List<BatteryHistEntry> batteryHistEntryList = loadListFromContentProvider(
-                context, batteryStateUri, cursor -> new BatteryHistEntry(cursor));
+        final List<BatteryHistEntry> batteryHistEntryList =
+                loadListFromContentProvider(
+                        context, batteryStateUri, cursor -> new BatteryHistEntry(cursor));
         final Map<Long, Map<String, BatteryHistEntry>> resultMap = new ArrayMap();
         for (final BatteryHistEntry entry : batteryHistEntryList) {
             final long timestamp = entry.mTimestamp;
@@ -342,27 +380,37 @@
         if (resultMap == null || resultMap.isEmpty()) {
             Log.d(TAG, "getBatteryHistoryMap() returns empty or null");
         } else {
-            Log.d(TAG, String.format("getBatteryHistoryMap() size=%d in %d/ms",
-                    resultMap.size(), (System.currentTimeMillis() - startTime)));
+            Log.d(
+                    TAG,
+                    String.format(
+                            "getBatteryHistoryMap() size=%d in %d/ms",
+                            resultMap.size(), (System.currentTimeMillis() - startTime)));
         }
         return resultMap;
     }
 
     /**
-     * Returns the battery history map since the latest record no later than the given timestamp.
-     * If there is no record before the given timestamp or the given timestamp is before last full
+     * Returns the battery history map since the latest record no later than the given timestamp. If
+     * there is no record before the given timestamp or the given timestamp is before last full
      * charge time, returns the history map since last full charge time.
      */
     public static Map<Long, Map<String, BatteryHistEntry>>
-            getHistoryMapSinceLatestRecordBeforeQueryTimestamp(Context context, Calendar calendar,
-                    final long queryTimestamp, final long lastFullChargeTime) {
+            getHistoryMapSinceLatestRecordBeforeQueryTimestamp(
+                    Context context,
+                    Calendar calendar,
+                    final long queryTimestamp,
+                    final long lastFullChargeTime) {
         final long sixDaysAgoTimestamp = getTimestampSixDaysAgo(calendar);
         Log.d(TAG, "sixDaysAgoTimestamp: " + utcToLocalTimeForLogging(sixDaysAgoTimestamp));
         final long batteryStateLatestTimestamp =
-                queryTimestamp == 0L ? 0L : getBatteryStateLatestTimestampBeforeQueryTimestamp(
-                        context, queryTimestamp);
-        final long maxTimestamp = Math.max(Math.max(
-                sixDaysAgoTimestamp, lastFullChargeTime), batteryStateLatestTimestamp);
+                queryTimestamp == 0L
+                        ? 0L
+                        : getBatteryStateLatestTimestampBeforeQueryTimestamp(
+                                context, queryTimestamp);
+        final long maxTimestamp =
+                Math.max(
+                        Math.max(sixDaysAgoTimestamp, lastFullChargeTime),
+                        batteryStateLatestTimestamp);
         return getHistoryMapSinceQueryTimestamp(context, maxTimestamp);
     }
 
@@ -376,34 +424,66 @@
 
     /** Clears all data in the battery usage database. */
     public static void clearAll(Context context) {
-        AsyncTask.execute(() -> {
-            try {
-                final BatteryStateDatabase database = BatteryStateDatabase
-                        .getInstance(context.getApplicationContext());
-                database.appUsageEventDao().clearAll();
-                database.batteryEventDao().clearAll();
-                database.batteryStateDao().clearAll();
-                database.batteryUsageSlotDao().clearAll();
-            } catch (RuntimeException e) {
-                Log.e(TAG, "clearAll() failed", e);
-            }
-        });
+        AsyncTask.execute(
+                () -> {
+                    try {
+                        final BatteryStateDatabase database =
+                                BatteryStateDatabase.getInstance(context.getApplicationContext());
+                        database.appUsageEventDao().clearAll();
+                        database.batteryEventDao().clearAll();
+                        database.batteryStateDao().clearAll();
+                        database.batteryUsageSlotDao().clearAll();
+                    } catch (RuntimeException e) {
+                        Log.e(TAG, "clearAll() failed", e);
+                    }
+                });
     }
 
     /** Clears all out-of-date data in the battery usage database. */
     public static void clearExpiredDataIfNeeded(Context context) {
+        AsyncTask.execute(
+                () -> {
+                    try {
+                        final BatteryStateDatabase database =
+                                BatteryStateDatabase.getInstance(context.getApplicationContext());
+                        final long earliestTimestamp =
+                                Clock.systemUTC().millis()
+                                        - Duration.ofDays(DATA_RETENTION_INTERVAL_DAY).toMillis();
+                        database.appUsageEventDao().clearAllBefore(earliestTimestamp);
+                        database.batteryEventDao().clearAllBefore(earliestTimestamp);
+                        database.batteryStateDao().clearAllBefore(earliestTimestamp);
+                        database.batteryUsageSlotDao().clearAllBefore(earliestTimestamp);
+                    } catch (RuntimeException e) {
+                        Log.e(TAG, "clearAllBefore() failed", e);
+                    }
+                });
+    }
+
+    /** Clears all data and jobs if current timestamp is out of the range of last recorded job. */
+    public static void clearDataAfterTimeChangedIfNeeded(Context context) {
         AsyncTask.execute(() -> {
             try {
-                final BatteryStateDatabase database = BatteryStateDatabase
-                        .getInstance(context.getApplicationContext());
-                final long earliestTimestamp = Clock.systemUTC().millis()
-                        - Duration.ofDays(DATA_RETENTION_INTERVAL_DAY).toMillis();
-                database.appUsageEventDao().clearAllBefore(earliestTimestamp);
-                database.batteryEventDao().clearAllBefore(earliestTimestamp);
-                database.batteryStateDao().clearAllBefore(earliestTimestamp);
-                database.batteryUsageSlotDao().clearAllBefore(earliestTimestamp);
+                final List<BatteryEvent> batteryLevelRecordEvents =
+                        DatabaseUtils.getBatteryEvents(context, Calendar.getInstance(),
+                                getLastFullChargeTime(context), BATTERY_LEVEL_RECORD_EVENTS);
+                final long lastRecordTimestamp = batteryLevelRecordEvents.isEmpty()
+                        ? INVALID_TIMESTAMP : batteryLevelRecordEvents.get(0).getTimestamp();
+                final long nextRecordTimestamp =
+                        TimestampUtils.getNextEvenHourTimestamp(lastRecordTimestamp);
+                final long currentTime = System.currentTimeMillis();
+                final boolean isOutOfTimeRange = lastRecordTimestamp == INVALID_TIMESTAMP
+                        || currentTime < lastRecordTimestamp || currentTime > nextRecordTimestamp;
+                final String logInfo = String.format(Locale.ENGLISH,
+                        "clear database = %b, current time = %d, last record time = %d",
+                        isOutOfTimeRange, currentTime, lastRecordTimestamp);
+                Log.d(TAG, logInfo);
+                BatteryUsageLogUtils.writeLog(context, Action.TIME_UPDATED, logInfo);
+                if (isOutOfTimeRange) {
+                    DatabaseUtils.clearAll(context);
+                    PeriodicJobManager.getInstance(context).refreshJob(/* fromBoot= */ false);
+                }
             } catch (RuntimeException e) {
-                Log.e(TAG, "clearAllBefore() failed", e);
+                Log.e(TAG, "refreshDataAndJobIfNeededAfterTimeChanged() failed", e);
             }
         });
     }
@@ -425,9 +505,9 @@
         if (isWorkProfile(context)) {
             try {
                 return context.createPackageContextAsUser(
-                        /*packageName=*/ context.getPackageName(),
-                        /*flags=*/ 0,
-                        /*user=*/ context.getSystemService(UserManager.class)
+                        /* packageName= */ context.getPackageName(),
+                        /* flags= */ 0,
+                        /* user= */ context.getSystemService(UserManager.class)
                                 .getProfileParent(context.getUser()));
             } catch (PackageManager.NameNotFoundException e) {
                 Log.e(TAG, "context.createPackageContextAsUser() fail:", e);
@@ -444,8 +524,11 @@
         final List<ContentValues> valuesList = new ArrayList<>();
         appUsageEventList.stream()
                 .filter(appUsageEvent -> appUsageEvent.hasUid())
-                .forEach(appUsageEvent -> valuesList.add(
-                        ConvertUtils.convertAppUsageEventToContentValues(appUsageEvent)));
+                .forEach(
+                        appUsageEvent ->
+                                valuesList.add(
+                                        ConvertUtils.convertAppUsageEventToContentValues(
+                                                appUsageEvent)));
         int size = 0;
         final ContentResolver resolver = context.getContentResolver();
         // Inserts all ContentValues into battery provider.
@@ -454,14 +537,17 @@
             valuesList.toArray(valuesArray);
             try {
                 size = resolver.bulkInsert(APP_USAGE_EVENT_URI, valuesArray);
-                resolver.notifyChange(APP_USAGE_EVENT_URI, /*observer=*/ null);
+                resolver.notifyChange(APP_USAGE_EVENT_URI, /* observer= */ null);
                 Log.d(TAG, "insert() app usage events data into database");
             } catch (Exception e) {
                 Log.e(TAG, "bulkInsert() app usage data into database error:", e);
             }
         }
-        Log.d(TAG, String.format("sendAppUsageEventData() size=%d in %d/ms",
-                size, (System.currentTimeMillis() - startTime)));
+        Log.d(
+                TAG,
+                String.format(
+                        "sendAppUsageEventData() size=%d in %d/ms",
+                        size, (System.currentTimeMillis() - startTime)));
         clearMemory();
         return valuesList;
     }
@@ -477,8 +563,11 @@
         } catch (Exception e) {
             Log.e(TAG, "insert() battery event data into database error:", e);
         }
-        Log.d(TAG, String.format("sendBatteryEventData() in %d/ms",
-                (System.currentTimeMillis() - startTime)));
+        Log.d(
+                TAG,
+                String.format(
+                        "sendBatteryEventData() in %d/ms",
+                        (System.currentTimeMillis() - startTime)));
         clearMemory();
         return contentValues;
     }
@@ -489,8 +578,11 @@
         // Creates the ContentValues list to insert them into provider.
         final List<ContentValues> valuesList = new ArrayList<>();
         batteryEventList.stream()
-                .forEach(batteryEvent -> valuesList.add(
-                        ConvertUtils.convertBatteryEventToContentValues(batteryEvent)));
+                .forEach(
+                        batteryEvent ->
+                                valuesList.add(
+                                        ConvertUtils.convertBatteryEventToContentValues(
+                                                batteryEvent)));
         int size = 0;
         final ContentResolver resolver = context.getContentResolver();
         // Inserts all ContentValues into battery provider.
@@ -499,14 +591,17 @@
             valuesList.toArray(valuesArray);
             try {
                 size = resolver.bulkInsert(BATTERY_EVENT_URI, valuesArray);
-                resolver.notifyChange(BATTERY_EVENT_URI, /*observer=*/ null);
+                resolver.notifyChange(BATTERY_EVENT_URI, /* observer= */ null);
                 Log.d(TAG, "insert() battery event data into database");
             } catch (Exception e) {
                 Log.e(TAG, "bulkInsert() battery event data into database error:", e);
             }
         }
-        Log.d(TAG, String.format("sendBatteryEventData() size=%d in %d/ms",
-                size, (System.currentTimeMillis() - startTime)));
+        Log.d(
+                TAG,
+                String.format(
+                        "sendBatteryEventData() size=%d in %d/ms",
+                        size, (System.currentTimeMillis() - startTime)));
         clearMemory();
         return valuesList;
     }
@@ -517,8 +612,11 @@
         // Creates the ContentValues list to insert them into provider.
         final List<ContentValues> valuesList = new ArrayList<>();
         batteryUsageSlotList.stream()
-                .forEach(batteryUsageSlot -> valuesList.add(
-                        ConvertUtils.convertBatteryUsageSlotToContentValues(batteryUsageSlot)));
+                .forEach(
+                        batteryUsageSlot ->
+                                valuesList.add(
+                                        ConvertUtils.convertBatteryUsageSlotToContentValues(
+                                                batteryUsageSlot)));
         int size = 0;
         final ContentResolver resolver = context.getContentResolver();
         // Inserts all ContentValues into battery provider.
@@ -527,14 +625,17 @@
             valuesList.toArray(valuesArray);
             try {
                 size = resolver.bulkInsert(BATTERY_USAGE_SLOT_URI, valuesArray);
-                resolver.notifyChange(BATTERY_USAGE_SLOT_URI, /*observer=*/ null);
+                resolver.notifyChange(BATTERY_USAGE_SLOT_URI, /* observer= */ null);
                 Log.d(TAG, "insert() battery usage slots data into database");
             } catch (Exception e) {
                 Log.e(TAG, "bulkInsert() battery usage slots data into database error:", e);
             }
         }
-        Log.d(TAG, String.format("sendBatteryUsageSlotData() size=%d in %d/ms",
-                size, (System.currentTimeMillis() - startTime)));
+        Log.d(
+                TAG,
+                String.format(
+                        "sendBatteryUsageSlotData() size=%d in %d/ms",
+                        size, (System.currentTimeMillis() - startTime)));
         clearMemory();
         return valuesList;
     }
@@ -553,10 +654,12 @@
             return null;
         }
         final int batteryLevel = BatteryStatus.getBatteryLevel(intent);
-        final int batteryStatus = intent.getIntExtra(
-                BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_STATUS_UNKNOWN);
-        final int batteryHealth = intent.getIntExtra(
-                BatteryManager.EXTRA_HEALTH, BatteryManager.BATTERY_HEALTH_UNKNOWN);
+        final int batteryStatus =
+                intent.getIntExtra(
+                        BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_STATUS_UNKNOWN);
+        final int batteryHealth =
+                intent.getIntExtra(
+                        BatteryManager.EXTRA_HEALTH, BatteryManager.BATTERY_HEALTH_UNKNOWN);
         // We should use the same timestamp for each data snapshot.
         final long snapshotBootTimestamp = SystemClock.elapsedRealtime();
 
@@ -564,30 +667,35 @@
         final List<ContentValues> valuesList = new ArrayList<>();
         if (batteryEntryList != null) {
             batteryEntryList.stream()
-                    .filter(entry -> {
-                        final long foregroundMs = entry.getTimeInForegroundMs();
-                        final long backgroundMs = entry.getTimeInBackgroundMs();
-                        if (entry.getConsumedPower() == 0
-                                && (foregroundMs != 0
-                                || backgroundMs != 0)) {
-                            Log.w(TAG, String.format(
-                                    "no consumed power but has running time for %s time=%d|%d",
-                                    entry.getLabel(), foregroundMs, backgroundMs));
-                        }
-                        return entry.getConsumedPower() != 0
-                                || foregroundMs != 0
-                                || backgroundMs != 0;
-                    })
-                    .forEach(entry -> valuesList.add(
-                            ConvertUtils.convertBatteryEntryToContentValues(
-                                    entry,
-                                    batteryUsageStats,
-                                    batteryLevel,
-                                    batteryStatus,
-                                    batteryHealth,
-                                    snapshotBootTimestamp,
-                                    snapshotTimestamp,
-                                    isFullChargeStart)));
+                    .filter(
+                            entry -> {
+                                final long foregroundMs = entry.getTimeInForegroundMs();
+                                final long backgroundMs = entry.getTimeInBackgroundMs();
+                                if (entry.getConsumedPower() == 0
+                                        && (foregroundMs != 0 || backgroundMs != 0)) {
+                                    Log.w(
+                                            TAG,
+                                            String.format(
+                                                    "no consumed power but has running time for %s"
+                                                        + " time=%d|%d",
+                                                    entry.getLabel(), foregroundMs, backgroundMs));
+                                }
+                                return entry.getConsumedPower() != 0
+                                        || foregroundMs != 0
+                                        || backgroundMs != 0;
+                            })
+                    .forEach(
+                            entry ->
+                                    valuesList.add(
+                                            ConvertUtils.convertBatteryEntryToContentValues(
+                                                    entry,
+                                                    batteryUsageStats,
+                                                    batteryLevel,
+                                                    batteryStatus,
+                                                    batteryHealth,
+                                                    snapshotBootTimestamp,
+                                                    snapshotTimestamp,
+                                                    isFullChargeStart)));
         }
 
         int size = 1;
@@ -599,8 +707,10 @@
             valuesList.toArray(valuesArray);
             try {
                 size = resolver.bulkInsert(BATTERY_CONTENT_URI, valuesArray);
-                Log.d(TAG, "insert() battery states data into database with isFullChargeStart:"
-                        + isFullChargeStart);
+                Log.d(
+                        TAG,
+                        "insert() battery states data into database with isFullChargeStart:"
+                                + isFullChargeStart);
             } catch (Exception e) {
                 Log.e(TAG, "bulkInsert() data into database error:", e);
             }
@@ -608,8 +718,8 @@
             // Inserts one fake data into battery provider.
             final ContentValues contentValues =
                     ConvertUtils.convertBatteryEntryToContentValues(
-                            /*entry=*/ null,
-                            /*batteryUsageStats=*/ null,
+                            /* entry= */ null,
+                            /* batteryUsageStats= */ null,
                             batteryLevel,
                             batteryStatus,
                             batteryHealth,
@@ -618,21 +728,23 @@
                             isFullChargeStart);
             try {
                 resolver.insert(BATTERY_CONTENT_URI, contentValues);
-                Log.d(TAG, "insert() data into database with isFullChargeStart:"
-                        + isFullChargeStart);
+                Log.d(
+                        TAG,
+                        "insert() data into database with isFullChargeStart:" + isFullChargeStart);
 
             } catch (Exception e) {
                 Log.e(TAG, "insert() data into database error:", e);
             }
             valuesList.add(contentValues);
         }
-        resolver.notifyChange(BATTERY_CONTENT_URI, /*observer=*/ null);
+        resolver.notifyChange(BATTERY_CONTENT_URI, /* observer= */ null);
         BatteryUsageLogUtils.writeLog(
-                context,
-                Action.INSERT_USAGE_DATA,
-                "size=" + size + " " + errorMessage);
-        Log.d(TAG, String.format("sendBatteryEntryData() size=%d in %d/ms",
-                size, (System.currentTimeMillis() - startTime)));
+                context, Action.INSERT_USAGE_DATA, "size=" + size + " " + errorMessage);
+        Log.d(
+                TAG,
+                String.format(
+                        "sendBatteryEntryData() size=%d in %d/ms",
+                        size, (System.currentTimeMillis() - startTime)));
         if (isFullChargeStart) {
             recordDateTime(context, KEY_LAST_UPLOAD_FULL_CHARGE_TIME);
         }
@@ -642,25 +754,30 @@
 
     /** Dump all required data into {@link PrintWriter}. */
     public static void dump(Context context, PrintWriter writer) {
-        writeString(context, writer, "BatteryLevelChanged",
-                Intent.ACTION_BATTERY_LEVEL_CHANGED);
-        writeString(context, writer, "BatteryPlugging",
+        writeString(context, writer, "BatteryLevelChanged", Intent.ACTION_BATTERY_LEVEL_CHANGED);
+        writeString(
+                context,
+                writer,
+                "BatteryPlugging",
                 BatteryUsageBroadcastReceiver.ACTION_BATTERY_PLUGGING);
-        writeString(context, writer, "BatteryUnplugging",
+        writeString(
+                context,
+                writer,
+                "BatteryUnplugging",
                 BatteryUsageBroadcastReceiver.ACTION_BATTERY_UNPLUGGING);
-        writeString(context, writer, "ClearBatteryCacheData",
+        writeString(
+                context,
+                writer,
+                "ClearBatteryCacheData",
                 BatteryUsageBroadcastReceiver.ACTION_CLEAR_BATTERY_CACHE_DATA);
-        writeString(context, writer, "LastLoadFullChargeTime",
-                KEY_LAST_LOAD_FULL_CHARGE_TIME);
-        writeString(context, writer, "LastUploadFullChargeTime",
-                KEY_LAST_UPLOAD_FULL_CHARGE_TIME);
-        writeString(context, writer, "DismissedPowerAnomalyKeys",
-                KEY_DISMISSED_POWER_ANOMALY_KEYS);
+        writeString(context, writer, "LastLoadFullChargeTime", KEY_LAST_LOAD_FULL_CHARGE_TIME);
+        writeString(context, writer, "LastUploadFullChargeTime", KEY_LAST_UPLOAD_FULL_CHARGE_TIME);
+        writeString(context, writer, "DismissedPowerAnomalyKeys", KEY_DISMISSED_POWER_ANOMALY_KEYS);
     }
 
     static SharedPreferences getSharedPreferences(Context context) {
-        return context.getApplicationContext().getSharedPreferences(
-                SHARED_PREFS_FILE, Context.MODE_PRIVATE);
+        return context.getApplicationContext()
+                .getSharedPreferences(SHARED_PREFS_FILE, Context.MODE_PRIVATE);
     }
 
     static void removeUsageSource(Context context) {
@@ -678,8 +795,8 @@
     static int getUsageSource(Context context, IUsageStatsManager usageStatsManager) {
         final SharedPreferences sharedPreferences = getSharedPreferences(context);
         if (sharedPreferences != null && sharedPreferences.contains(KEY_LAST_USAGE_SOURCE)) {
-            return sharedPreferences
-                    .getInt(KEY_LAST_USAGE_SOURCE, ConvertUtils.DEFAULT_USAGE_SOURCE);
+            return sharedPreferences.getInt(
+                    KEY_LAST_USAGE_SOURCE, ConvertUtils.DEFAULT_USAGE_SOURCE);
         }
         int usageSource = ConvertUtils.DEFAULT_USAGE_SOURCE;
 
@@ -714,7 +831,8 @@
         if (sharedPreferences != null) {
             final Set<String> dismissedPowerAnomalyKeys = getDismissedPowerAnomalyKeys(context);
             dismissedPowerAnomalyKeys.add(dismissedPowerAnomalyKey);
-            sharedPreferences.edit()
+            sharedPreferences
+                    .edit()
                     .putStringSet(KEY_DISMISSED_POWER_ANOMALY_KEYS, dismissedPowerAnomalyKeys)
                     .apply();
         }
@@ -736,22 +854,32 @@
         if (context == null) {
             return defaultValue;
         }
-        try (Cursor cursor = sFakeSupplier != null ? sFakeSupplier.get() :
-                context.getContentResolver().query(uri, null, null, null)) {
+        try (Cursor cursor =
+                sFakeSupplier != null
+                        ? sFakeSupplier.get()
+                        : context.getContentResolver().query(uri, null, null, null)) {
             return (cursor == null || cursor.getCount() == 0)
-                    ? defaultValue : cursorReader.apply(cursor);
+                    ? defaultValue
+                    : cursorReader.apply(cursor);
         }
     }
 
     private static long loadLongFromContentProvider(
             Context context, Uri uri, final long defaultValue) {
-        return loadFromContentProvider(context, uri, defaultValue,
-                cursor -> cursor.moveToFirst() ? cursor.getLong(/*columnIndex=*/ 0) : defaultValue);
+        return loadFromContentProvider(
+                context,
+                uri,
+                defaultValue,
+                cursor ->
+                        cursor.moveToFirst() ? cursor.getLong(/* columnIndex= */ 0) : defaultValue);
     }
 
     private static <E> List<E> loadListFromContentProvider(
             Context context, Uri uri, Function<Cursor, E> converter) {
-        return loadFromContentProvider(context, uri, new ArrayList<>(),
+        return loadFromContentProvider(
+                context,
+                uri,
+                new ArrayList<>(),
                 cursor -> {
                     final List<E> list = new ArrayList<>();
                     while (cursor.moveToNext()) {
@@ -775,11 +903,13 @@
             return;
         }
         final Handler mainHandler = new Handler(Looper.getMainLooper());
-        mainHandler.postDelayed(() -> {
-            System.gc();
-            System.runFinalization();
-            System.gc();
-            Log.w(TAG, "invoke clearMemory()");
-        }, CLEAR_MEMORY_DELAYED_MS);
+        mainHandler.postDelayed(
+                () -> {
+                    System.gc();
+                    System.runFinalization();
+                    System.gc();
+                    Log.w(TAG, "invoke clearMemory()");
+                },
+                CLEAR_MEMORY_DELAYED_MS);
     }
 }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobManager.java b/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobManager.java
index 7fb2c56..b2c72bf 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobManager.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobManager.java
@@ -41,11 +41,9 @@
     private final Context mContext;
     private final AlarmManager mAlarmManager;
 
-    @VisibleForTesting
-    static final int DATA_FETCH_INTERVAL_MINUTE = 60;
+    @VisibleForTesting static final int DATA_FETCH_INTERVAL_MINUTE = 60;
 
-    @VisibleForTesting
-    static long sBroadcastDelayFromBoot = Duration.ofMinutes(40).toMillis();
+    @VisibleForTesting static long sBroadcastDelayFromBoot = Duration.ofMinutes(40).toMillis();
 
     @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
     void reset() {
@@ -68,7 +66,9 @@
     /** Schedules the next alarm job if it is available. */
     public void refreshJob(final boolean fromBoot) {
         if (mAlarmManager == null) {
-            BatteryUsageLogUtils.writeLog(mContext, Action.SCHEDULE_JOB,
+            BatteryUsageLogUtils.writeLog(
+                    mContext,
+                    Action.SCHEDULE_JOB,
                     "cannot schedule next alarm job due to AlarmManager is null");
             Log.e(TAG, "cannot schedule next alarm job");
             return;
@@ -82,7 +82,9 @@
                 AlarmManager.RTC_WAKEUP, triggerAtMillis, pendingIntent);
 
         final String utcToLocalTime = ConvertUtils.utcToLocalTimeForLogging(triggerAtMillis);
-        BatteryUsageLogUtils.writeLog(mContext, Action.SCHEDULE_JOB,
+        BatteryUsageLogUtils.writeLog(
+                mContext,
+                Action.SCHEDULE_JOB,
                 String.format("triggerTime=%s, fromBoot=%b", utcToLocalTime, fromBoot));
         Log.d(TAG, "schedule next alarm job at " + utcToLocalTime);
     }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiver.java b/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiver.java
index dccca43..bd77feb 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiver.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiver.java
@@ -36,7 +36,9 @@
         try {
             loadDataAndRefreshJob(context, intent);
         } catch (Exception e) {
-            BatteryUsageLogUtils.writeLog(context, Action.SCHEDULE_JOB,
+            BatteryUsageLogUtils.writeLog(
+                    context,
+                    Action.SCHEDULE_JOB,
                     String.format("loadDataAndRefreshJob() failed: %s", e));
         }
     }
@@ -48,15 +50,15 @@
             return;
         }
         if (DatabaseUtils.isWorkProfile(context)) {
-            BatteryUsageLogUtils.writeLog(context, Action.SCHEDULE_JOB,
-                    "do not refresh job for work profile");
+            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);
             return;
         }
         BatteryUsageLogUtils.writeLog(context, Action.EXECUTE_JOB, "");
-        BatteryUsageDataLoader.enqueueWork(context, /*isFullChargeStart=*/ false);
+        BatteryUsageDataLoader.enqueueWork(context, /* isFullChargeStart= */ false);
         Log.d(TAG, "refresh periodic job from action=" + action);
-        PeriodicJobManager.getInstance(context).refreshJob(/*fromBoot=*/ false);
+        PeriodicJobManager.getInstance(context).refreshJob(/* fromBoot= */ false);
         DatabaseUtils.clearExpiredDataIfNeeded(context);
     }
 }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/PowerGaugePreference.java b/src/com/android/settings/fuelgauge/batteryusage/PowerGaugePreference.java
index 56ada8e..fca618b 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/PowerGaugePreference.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/PowerGaugePreference.java
@@ -30,11 +30,11 @@
 import com.android.settingslib.widget.AppPreference;
 
 /**
- * Custom preference for displaying battery usage info as a bar and an icon on
- * the left for the subsystem/app type.
+ * Custom preference for displaying battery usage info as a bar and an icon on the left for the
+ * subsystem/app type.
  *
- * The battery usage info could be usage percentage or usage time. The preference
- * won't show any icon if it is null.
+ * <p>The battery usage info could be usage percentage or usage time. The preference won't show any
+ * icon if it is null.
  */
 public class PowerGaugePreference extends AppPreference {
 
@@ -49,8 +49,8 @@
     private CharSequence mProgress;
     private boolean mShowAnomalyIcon;
 
-    public PowerGaugePreference(Context context, Drawable icon, CharSequence contentDescription,
-            BatteryEntry info) {
+    public PowerGaugePreference(
+            Context context, Drawable icon, CharSequence contentDescription, BatteryEntry info) {
         this(context, null, icon, contentDescription, info);
     }
 
@@ -62,8 +62,12 @@
         this(context, attrs, null, null, null);
     }
 
-    private PowerGaugePreference(Context context, AttributeSet attrs, Drawable icon,
-            CharSequence contentDescription, BatteryEntry info) {
+    private PowerGaugePreference(
+            Context context,
+            AttributeSet attrs,
+            Drawable icon,
+            CharSequence contentDescription,
+            BatteryEntry info) {
         super(context, attrs);
         if (icon != null) {
             setIcon(icon);
@@ -119,15 +123,19 @@
         super.onBindViewHolder(view);
 
         final boolean isNightMode = Utils.isNightMode(getContext());
-        final float alpha = isSelectable() ? SELECTABLE_ALPHA
-                : (isNightMode ? UNSELECTABLE_ALPHA_DARK_MODE : UNSELECTABLE_ALPHA_LIGHT_MODE);
+        final float alpha =
+                isSelectable()
+                        ? SELECTABLE_ALPHA
+                        : (isNightMode
+                                ? UNSELECTABLE_ALPHA_DARK_MODE
+                                : UNSELECTABLE_ALPHA_LIGHT_MODE);
         setViewAlpha(view.itemView, alpha);
 
         final TextView subtitle = (TextView) view.findViewById(R.id.widget_summary);
         subtitle.setText(mProgress);
         if (mShowAnomalyIcon) {
-            subtitle.setCompoundDrawablesRelativeWithIntrinsicBounds(R.drawable.ic_warning_24dp, 0,
-                    0, 0);
+            subtitle.setCompoundDrawablesRelativeWithIntrinsicBounds(
+                    R.drawable.ic_warning_24dp, 0, 0, 0);
         } else {
             subtitle.setCompoundDrawablesRelativeWithIntrinsicBounds(0, 0, 0, 0);
         }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java
index fb83302..072040d 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java
@@ -61,8 +61,8 @@
     private static final String KEY_REFRESH_TYPE = "refresh_type";
     private static final String KEY_BATTERY_CHART = "battery_chart";
 
-    @VisibleForTesting
-    BatteryHistoryPreference mHistPref;
+    @VisibleForTesting BatteryHistoryPreference mHistPref;
+
     @VisibleForTesting
     final BatteryLevelDataLoaderCallbacks mBatteryLevelDataLoaderCallbacks =
             new BatteryLevelDataLoaderCallbacks();
@@ -79,23 +79,16 @@
                 public void onChange(boolean selfChange) {
                     Log.d(TAG, "onBatteryContentChange: " + selfChange);
                     mIsChartDataLoaded = false;
-                    restartBatteryStatsLoader(
-                            BatteryBroadcastReceiver.BatteryUpdateType.MANUAL);
+                    restartBatteryStatsLoader(BatteryBroadcastReceiver.BatteryUpdateType.MANUAL);
                 }
             };
 
-    @VisibleForTesting
-    BatteryTipsController mBatteryTipsController;
-    @VisibleForTesting
-    BatteryChartPreferenceController mBatteryChartPreferenceController;
-    @VisibleForTesting
-    ScreenOnTimeController mScreenOnTimeController;
-    @VisibleForTesting
-    BatteryUsageBreakdownController mBatteryUsageBreakdownController;
-    @VisibleForTesting
-    Optional<BatteryLevelData> mBatteryLevelData;
-    @VisibleForTesting
-    Optional<AnomalyEventWrapper> mHighlightEventWrapper;
+    @VisibleForTesting BatteryTipsController mBatteryTipsController;
+    @VisibleForTesting BatteryChartPreferenceController mBatteryChartPreferenceController;
+    @VisibleForTesting ScreenOnTimeController mScreenOnTimeController;
+    @VisibleForTesting BatteryUsageBreakdownController mBatteryUsageBreakdownController;
+    @VisibleForTesting Optional<BatteryLevelData> mBatteryLevelData;
+    @VisibleForTesting Optional<AnomalyEventWrapper> mHighlightEventWrapper;
 
     @Override
     public void onCreate(Bundle icicle) {
@@ -146,8 +139,9 @@
         mResumeTimestamp = System.currentTimeMillis();
         final Uri uri = DatabaseUtils.BATTERY_CONTENT_URI;
         if (uri != null) {
-            getContext().getContentResolver().registerContentObserver(
-                    uri, /*notifyForDescendants*/ true, mBatteryObserver);
+            getContext()
+                    .getContentResolver()
+                    .registerContentObserver(uri, /*notifyForDescendants*/ true, mBatteryObserver);
         }
     }
 
@@ -190,7 +184,9 @@
             mBatteryLevelData = null;
             mBatteryUsageMap = null;
             mHighlightEventWrapper = null;
-            restartLoader(LoaderIndex.BATTERY_LEVEL_DATA_LOADER, bundle,
+            restartLoader(
+                    LoaderIndex.BATTERY_LEVEL_DATA_LOADER,
+                    bundle,
                     mBatteryLevelDataLoaderCallbacks);
         }
     }
@@ -202,8 +198,11 @@
         mBatteryLevelData = Optional.ofNullable(batteryLevelData);
         if (mBatteryChartPreferenceController != null) {
             mBatteryChartPreferenceController.onBatteryLevelDataUpdate(batteryLevelData);
-            Log.d(TAG, String.format("Battery chart shows in %d millis",
-                    System.currentTimeMillis() - mResumeTimestamp));
+            Log.d(
+                    TAG,
+                    String.format(
+                            "Battery chart shows in %d millis",
+                            System.currentTimeMillis() - mResumeTimestamp));
         }
     }
 
@@ -211,15 +210,17 @@
         if (!isResumed() || mBatteryLevelData == null) {
             return;
         }
-        mBatteryUsageMap = DataProcessor.generateBatteryUsageMap(
-                getContext(), batteryDiffDataMap, mBatteryLevelData.orElse(null));
+        mBatteryUsageMap =
+                DataProcessor.generateBatteryUsageMap(
+                        getContext(), batteryDiffDataMap, mBatteryLevelData.orElse(null));
         Log.d(TAG, "onBatteryDiffDataMapUpdate: " + mBatteryUsageMap);
         DataProcessor.loadLabelAndIcon(mBatteryUsageMap);
         onSelectedSlotDataUpdated();
         detectAnomaly();
         logScreenUsageTime();
         if (mBatteryChartPreferenceController != null
-                && mBatteryLevelData.isEmpty() && isBatteryUsageMapNullOrEmpty()) {
+                && mBatteryLevelData.isEmpty()
+                && isBatteryUsageMapNullOrEmpty()) {
             // No available battery usage and battery level data.
             mBatteryChartPreferenceController.showEmptyChart();
         }
@@ -236,30 +237,35 @@
         final int hourlyIndex = mBatteryChartPreferenceController.getHourlyChartIndex();
         final String slotInformation = mBatteryChartPreferenceController.getSlotInformation();
         final BatteryDiffData slotUsageData = mBatteryUsageMap.get(dailyIndex).get(hourlyIndex);
-        if (slotUsageData != null) {
-            mScreenOnTimeController.handleSceenOnTimeUpdated(
-                    slotUsageData.getScreenOnTime(), slotInformation);
-        }
+        mScreenOnTimeController.handleSceenOnTimeUpdated(
+                slotUsageData != null ? slotUsageData.getScreenOnTime() : 0L, slotInformation);
         // Hide card tips if the related highlight slot was clicked.
         if (isAppsAnomalyEventFocused()) {
             mBatteryTipsController.acceptTipsCard();
         }
         mBatteryUsageBreakdownController.handleBatteryUsageUpdated(
-                slotUsageData, slotInformation, isBatteryUsageMapNullOrEmpty(),
-                isAppsAnomalyEventFocused(), mHighlightEventWrapper);
-        Log.d(TAG, String.format("Battery usage list shows in %d millis",
-                System.currentTimeMillis() - mResumeTimestamp));
+                slotUsageData,
+                slotInformation,
+                isBatteryUsageMapNullOrEmpty(),
+                isAppsAnomalyEventFocused(),
+                mHighlightEventWrapper);
+        Log.d(
+                TAG,
+                String.format(
+                        "Battery usage list shows in %d millis",
+                        System.currentTimeMillis() - mResumeTimestamp));
     }
 
     private void detectAnomaly() {
-        mExecutor.execute(() -> {
-            final PowerUsageFeatureProvider powerUsageFeatureProvider =
-                    FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider();
-            final PowerAnomalyEventList anomalyEventList =
-                    powerUsageFeatureProvider.detectSettingsAnomaly(
-                            getContext(), /* displayDrain= */ 0);
-            mHandler.post(() -> onAnomalyDetected(anomalyEventList));
-        });
+        mExecutor.execute(
+                () -> {
+                    final PowerUsageFeatureProvider powerUsageFeatureProvider =
+                            FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider();
+                    final PowerAnomalyEventList anomalyEventList =
+                            powerUsageFeatureProvider.detectSettingsAnomaly(
+                                    getContext(), /* displayDrain= */ 0);
+                    mHandler.post(() -> onAnomalyDetected(anomalyEventList));
+                });
     }
 
     private void onAnomalyDetected(PowerAnomalyEventList anomalyEventList) {
@@ -279,9 +285,12 @@
         // If the slot is already highlighted, the tips card should be the corresponding app
         // or settings anomaly event.
         final PowerAnomalyEvent tipsCardEvent =
-                getAnomalyEvent(anomalyEventList,
-                        event -> !dismissedPowerAnomalyKeys.contains(event.getDismissRecordKey())
-                                && (event.equals(highlightEvent) || !event.hasWarningItemInfo()));
+                getAnomalyEvent(
+                        anomalyEventList,
+                        event ->
+                                !dismissedPowerAnomalyKeys.contains(event.getDismissRecordKey())
+                                        && (event.equals(highlightEvent)
+                                                || !event.hasWarningItemInfo()));
         onDisplayAnomalyEventUpdated(tipsCardEvent, highlightEvent);
     }
 
@@ -298,8 +307,10 @@
         // Update battery tips card preference & behaviour
         mBatteryTipsController.setOnAnomalyConfirmListener(null);
         mBatteryTipsController.setOnAnomalyRejectListener(null);
-        final AnomalyEventWrapper tipsCardEventWrapper = (tipsCardEvent == null) ? null :
-                new AnomalyEventWrapper(getContext(), tipsCardEvent);
+        final AnomalyEventWrapper tipsCardEventWrapper =
+                (tipsCardEvent == null)
+                        ? null
+                        : new AnomalyEventWrapper(getContext(), tipsCardEvent);
         if (tipsCardEventWrapper != null) {
             tipsCardEventWrapper.setRelatedBatteryDiffEntry(
                     findRelatedBatteryDiffEntry(tipsCardEventWrapper));
@@ -308,23 +319,30 @@
                 tipsCardEventWrapper, isSameAnomalyEvent);
 
         // Update highlight slot effect in battery chart view
-        Pair<Integer, Integer> highlightSlotIndexPair = Pair.create(
-                BatteryChartViewModel.SELECTED_INDEX_INVALID,
-                BatteryChartViewModel.SELECTED_INDEX_INVALID);
-        mHighlightEventWrapper = Optional.ofNullable(isSameAnomalyEvent ? tipsCardEventWrapper :
-                ((highlightEvent != null)
-                        ? new AnomalyEventWrapper(getContext(), highlightEvent) : null));
-        if (mBatteryLevelData != null && mBatteryLevelData.isPresent()
+        Pair<Integer, Integer> highlightSlotIndexPair =
+                Pair.create(
+                        BatteryChartViewModel.SELECTED_INDEX_INVALID,
+                        BatteryChartViewModel.SELECTED_INDEX_INVALID);
+        mHighlightEventWrapper =
+                Optional.ofNullable(
+                        isSameAnomalyEvent
+                                ? tipsCardEventWrapper
+                                : ((highlightEvent != null)
+                                        ? new AnomalyEventWrapper(getContext(), highlightEvent)
+                                        : null));
+        if (mBatteryLevelData != null
+                && mBatteryLevelData.isPresent()
                 && mHighlightEventWrapper.isPresent()
                 && mHighlightEventWrapper.get().hasHighlightSlotPair(mBatteryLevelData.get())) {
-            highlightSlotIndexPair = mHighlightEventWrapper.get()
-                    .getHighlightSlotPair(mBatteryLevelData.get());
+            highlightSlotIndexPair =
+                    mHighlightEventWrapper.get().getHighlightSlotPair(mBatteryLevelData.get());
             if (isSameAnomalyEvent) {
                 // For main button, focus on highlight slot when clicked
-                mBatteryTipsController.setOnAnomalyConfirmListener(() -> {
-                    mBatteryChartPreferenceController.selectHighlightSlotIndex();
-                    mBatteryTipsController.acceptTipsCard();
-                });
+                mBatteryTipsController.setOnAnomalyConfirmListener(
+                        () -> {
+                            mBatteryChartPreferenceController.selectHighlightSlotIndex();
+                            mBatteryTipsController.acceptTipsCard();
+                        });
             }
         }
         mBatteryChartPreferenceController.onHighlightSlotIndexUpdate(
@@ -334,7 +352,8 @@
     @VisibleForTesting
     BatteryDiffEntry findRelatedBatteryDiffEntry(AnomalyEventWrapper eventWrapper) {
         if (eventWrapper == null
-                || mBatteryLevelData == null || mBatteryLevelData.isEmpty()
+                || mBatteryLevelData == null
+                || mBatteryLevelData.isEmpty()
                 || !eventWrapper.hasHighlightSlotPair(mBatteryLevelData.get())
                 || !eventWrapper.hasAnomalyEntryKey()
                 || mBatteryUsageMap == null) {
@@ -342,8 +361,10 @@
         }
         final Pair<Integer, Integer> highlightSlotIndexPair =
                 eventWrapper.getHighlightSlotPair(mBatteryLevelData.get());
-        final BatteryDiffData relatedDiffData = mBatteryUsageMap
-                .get(highlightSlotIndexPair.first).get(highlightSlotIndexPair.second);
+        final BatteryDiffData relatedDiffData =
+                mBatteryUsageMap
+                        .get(highlightSlotIndexPair.first)
+                        .get(highlightSlotIndexPair.second);
         final String anomalyEntryKey = eventWrapper.getAnomalyEntryKey();
         if (relatedDiffData == null || anomalyEntryKey == null) {
             return null;
@@ -367,7 +388,7 @@
         // If all data is null or empty, each slot must be null or empty.
         return allBatteryDiffData == null
                 || (allBatteryDiffData.getAppDiffEntryList().isEmpty()
-                && allBatteryDiffData.getSystemDiffEntryList().isEmpty());
+                        && allBatteryDiffData.getSystemDiffEntryList().isEmpty());
     }
 
     private boolean isAppsAnomalyEventFocused() {
@@ -401,21 +422,22 @@
             return null;
         }
 
-        final PowerAnomalyEvent filterAnomalyEvent = anomalyEventList.getPowerAnomalyEventsList()
-                .stream()
-                .filter(predicate)
-                .max(Comparator.comparing(PowerAnomalyEvent::getScore))
-                .orElse(null);
+        final PowerAnomalyEvent filterAnomalyEvent =
+                anomalyEventList.getPowerAnomalyEventsList().stream()
+                        .filter(predicate)
+                        .max(Comparator.comparing(PowerAnomalyEvent::getScore))
+                        .orElse(null);
         Log.d(TAG, "filterAnomalyEvent = " + filterAnomalyEvent);
         return filterAnomalyEvent;
     }
 
-
     private static BatteryDiffData getAllBatteryDiffData(
             Map<Integer, Map<Integer, BatteryDiffData>> batteryUsageMap) {
-        return batteryUsageMap == null ? null : batteryUsageMap
-                .get(BatteryChartViewModel.SELECTED_INDEX_ALL)
-                .get(BatteryChartViewModel.SELECTED_INDEX_ALL);
+        return batteryUsageMap == null
+                ? null
+                : batteryUsageMap
+                        .get(BatteryChartViewModel.SELECTED_INDEX_ALL)
+                        .get(BatteryChartViewModel.SELECTED_INDEX_ALL);
     }
 
     public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
@@ -432,12 +454,16 @@
                 public List<AbstractPreferenceController> createPreferenceControllers(
                         Context context) {
                     final List<AbstractPreferenceController> controllers = new ArrayList<>();
-                    controllers.add(new BatteryChartPreferenceController(
-                            context, null /* lifecycle */, null /* activity */));
+                    controllers.add(
+                            new BatteryChartPreferenceController(
+                                    context, null /* lifecycle */, null /* activity */));
                     controllers.add((new ScreenOnTimeController(context)));
-                    controllers.add(new BatteryUsageBreakdownController(
-                            context, null /* lifecycle */, null /* activity */,
-                            null /* fragment */));
+                    controllers.add(
+                            new BatteryUsageBreakdownController(
+                                    context,
+                                    null /* lifecycle */,
+                                    null /* activity */,
+                                    null /* fragment */));
                     controllers.add(new BatteryTipsController(context));
                     return controllers;
                 }
@@ -454,20 +480,21 @@
                 @Override
                 public BatteryLevelData loadInBackground() {
                     return DataProcessManager.getBatteryLevelData(
-                            getContext(), mHandler, /*isFromPeriodJob=*/ false,
+                            getContext(),
+                            mHandler,
+                            /* isFromPeriodJob= */ false,
                             PowerUsageAdvanced.this::onBatteryDiffDataMapUpdate);
                 }
             };
         }
 
         @Override
-        public void onLoadFinished(Loader<BatteryLevelData> loader,
-                BatteryLevelData batteryLevelData) {
+        public void onLoadFinished(
+                Loader<BatteryLevelData> loader, BatteryLevelData batteryLevelData) {
             PowerUsageAdvanced.this.onBatteryLevelDataUpdate(batteryLevelData);
         }
 
         @Override
-        public void onLoaderReset(Loader<BatteryLevelData> loader) {
-        }
+        public void onLoaderReset(Loader<BatteryLevelData> loader) {}
     }
 }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageBase.java b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageBase.java
index 22856b6..d916ef7 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageBase.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageBase.java
@@ -36,18 +36,13 @@
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 
-/**
- * Common base class for things that need to show the battery usage graph.
- */
+/** Common base class for things that need to show the battery usage graph. */
 public abstract class PowerUsageBase extends DashboardFragment {
     private static final String TAG = "PowerUsageBase";
 
-    @VisibleForTesting
-    static final String KEY_REFRESH_TYPE = "refresh_type";
-    @VisibleForTesting
-    static final String KEY_INCLUDE_HISTORY = "include_history";
-    @VisibleForTesting
-    BatteryUsageStats mBatteryUsageStats;
+    @VisibleForTesting static final String KEY_REFRESH_TYPE = "refresh_type";
+    @VisibleForTesting static final String KEY_INCLUDE_HISTORY = "include_history";
+    @VisibleForTesting BatteryUsageStats mBatteryUsageStats;
 
     protected UserManager mUm;
     protected boolean mIsBatteryPresent = true;
@@ -59,11 +54,10 @@
 
     @Retention(RetentionPolicy.SOURCE)
     @IntDef({
-            LoaderIndex.BATTERY_USAGE_STATS_LOADER,
-            LoaderIndex.BATTERY_INFO_LOADER,
-            LoaderIndex.BATTERY_TIP_LOADER,
-            LoaderIndex.BATTERY_LEVEL_DATA_LOADER
-
+        LoaderIndex.BATTERY_USAGE_STATS_LOADER,
+        LoaderIndex.BATTERY_INFO_LOADER,
+        LoaderIndex.BATTERY_TIP_LOADER,
+        LoaderIndex.BATTERY_LEVEL_DATA_LOADER
     })
     public @interface LoaderIndex {
         int BATTERY_USAGE_STATS_LOADER = 0;
@@ -83,12 +77,13 @@
         super.onCreate(icicle);
 
         mBatteryBroadcastReceiver = new BatteryBroadcastReceiver(getContext());
-        mBatteryBroadcastReceiver.setBatteryChangedListener(type -> {
-            if (type == BatteryBroadcastReceiver.BatteryUpdateType.BATTERY_NOT_PRESENT) {
-                mIsBatteryPresent = false;
-            }
-            restartBatteryStatsLoader(type);
-        });
+        mBatteryBroadcastReceiver.setBatteryChangedListener(
+                type -> {
+                    if (type == BatteryBroadcastReceiver.BatteryUpdateType.BATTERY_NOT_PRESENT) {
+                        mIsBatteryPresent = false;
+                    }
+                    restartBatteryStatsLoader(type);
+                });
     }
 
     @Override
@@ -108,25 +103,22 @@
         final Bundle bundle = new Bundle();
         bundle.putInt(KEY_REFRESH_TYPE, refreshType);
         bundle.putBoolean(KEY_INCLUDE_HISTORY, false);
-        restartLoader(LoaderIndex.BATTERY_USAGE_STATS_LOADER, bundle,
-                mBatteryUsageStatsLoaderCallbacks);
+        restartLoader(
+                LoaderIndex.BATTERY_USAGE_STATS_LOADER, bundle, mBatteryUsageStatsLoaderCallbacks);
     }
 
     protected LoaderManager getLoaderManagerForCurrentFragment() {
         return LoaderManager.getInstance(this);
     }
 
-    protected void restartLoader(int loaderId, Bundle bundle,
-            LoaderManager.LoaderCallbacks<?> loaderCallbacks) {
+    protected void restartLoader(
+            int loaderId, Bundle bundle, LoaderManager.LoaderCallbacks<?> loaderCallbacks) {
         LoaderManager loaderManager = getLoaderManagerForCurrentFragment();
-        Loader<?> loader = loaderManager.getLoader(
-                loaderId);
+        Loader<?> loader = loaderManager.getLoader(loaderId);
         if (loader != null && !loader.isReset()) {
-            loaderManager.restartLoader(loaderId, bundle,
-                    loaderCallbacks);
+            loaderManager.restartLoader(loaderId, bundle, loaderCallbacks);
         } else {
-            loaderManager.initLoader(loaderId, bundle,
-                    loaderCallbacks);
+            loaderManager.initLoader(loaderId, bundle, loaderCallbacks);
         }
     }
 
@@ -148,16 +140,15 @@
         }
 
         @Override
-        public void onLoadFinished(Loader<BatteryUsageStats> loader,
-                BatteryUsageStats batteryUsageStats) {
+        public void onLoadFinished(
+                Loader<BatteryUsageStats> loader, BatteryUsageStats batteryUsageStats) {
             closeBatteryUsageStatsIfNeeded();
             mBatteryUsageStats = batteryUsageStats;
             PowerUsageBase.this.onLoadFinished(mRefreshType);
         }
 
         @Override
-        public void onLoaderReset(Loader<BatteryUsageStats> loader) {
-        }
+        public void onLoaderReset(Loader<BatteryUsageStats> loader) {}
     }
 
     private void closeBatteryUsageStatsIfNeeded() {
diff --git a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummary.java
index f52de5f..5ef820c 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummary.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummary.java
@@ -53,41 +53,32 @@
  * since the last time it was unplugged.
  */
 @SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
-public class PowerUsageSummary extends PowerUsageBase implements
-        BatteryTipPreferenceController.BatteryTipListener {
+public class PowerUsageSummary extends PowerUsageBase
+        implements BatteryTipPreferenceController.BatteryTipListener {
 
     static final String TAG = "PowerUsageSummary";
 
-    @VisibleForTesting
-    static final String KEY_BATTERY_ERROR = "battery_help_message";
-    @VisibleForTesting
-    static final String KEY_BATTERY_USAGE = "battery_usage_summary";
+    @VisibleForTesting static final String KEY_BATTERY_ERROR = "battery_help_message";
+    @VisibleForTesting static final String KEY_BATTERY_USAGE = "battery_usage_summary";
+
+    @VisibleForTesting PowerUsageFeatureProvider mPowerFeatureProvider;
+    @VisibleForTesting BatteryUtils mBatteryUtils;
+    @VisibleForTesting BatteryInfo mBatteryInfo;
+
+    @VisibleForTesting BatteryHeaderPreferenceController mBatteryHeaderPreferenceController;
+    @VisibleForTesting BatteryTipPreferenceController mBatteryTipPreferenceController;
+    @VisibleForTesting boolean mNeedUpdateBatteryTip;
+    @VisibleForTesting Preference mHelpPreference;
+    @VisibleForTesting Preference mBatteryUsagePreference;
 
     @VisibleForTesting
-    PowerUsageFeatureProvider mPowerFeatureProvider;
-    @VisibleForTesting
-    BatteryUtils mBatteryUtils;
-    @VisibleForTesting
-    BatteryInfo mBatteryInfo;
-
-    @VisibleForTesting
-    BatteryHeaderPreferenceController mBatteryHeaderPreferenceController;
-    @VisibleForTesting
-    BatteryTipPreferenceController mBatteryTipPreferenceController;
-    @VisibleForTesting
-    boolean mNeedUpdateBatteryTip;
-    @VisibleForTesting
-    Preference mHelpPreference;
-    @VisibleForTesting
-    Preference mBatteryUsagePreference;
-
-    @VisibleForTesting
-    final ContentObserver mSettingsObserver = new ContentObserver(new Handler()) {
-        @Override
-        public void onChange(boolean selfChange, Uri uri) {
-            restartBatteryInfoLoader();
-        }
-    };
+    final ContentObserver mSettingsObserver =
+            new ContentObserver(new Handler()) {
+                @Override
+                public void onChange(boolean selfChange, Uri uri) {
+                    restartBatteryInfoLoader();
+                }
+            };
 
     @VisibleForTesting
     LoaderManager.LoaderCallbacks<BatteryInfo> mBatteryInfoLoaderCallbacks =
@@ -121,17 +112,14 @@
                 }
 
                 @Override
-                public void onLoadFinished(Loader<List<BatteryTip>> loader,
-                        List<BatteryTip> data) {
+                public void onLoadFinished(Loader<List<BatteryTip>> loader, List<BatteryTip> data) {
                     mBatteryTipPreferenceController.updateBatteryTips(data);
                     mBatteryHeaderPreferenceController.updateHeaderByBatteryTips(
                             mBatteryTipPreferenceController.getCurrentBatteryTip(), mBatteryInfo);
                 }
 
                 @Override
-                public void onLoaderReset(Loader<List<BatteryTip>> loader) {
-
-                }
+                public void onLoaderReset(Loader<List<BatteryTip>> loader) {}
             };
 
     @Override
@@ -170,10 +158,11 @@
     @Override
     public void onResume() {
         super.onResume();
-        getContentResolver().registerContentObserver(
-                Global.getUriFor(Global.BATTERY_ESTIMATES_LAST_UPDATE_TIME),
-                false,
-                mSettingsObserver);
+        getContentResolver()
+                .registerContentObserver(
+                        Global.getUriFor(Global.BATTERY_ESTIMATES_LAST_UPDATE_TIME),
+                        false,
+                        mSettingsObserver);
     }
 
     @Override
@@ -213,8 +202,7 @@
         }
 
         // Skip BatteryTipLoader if device is rotated or only battery level change
-        if (mNeedUpdateBatteryTip
-                && refreshType != BatteryUpdateType.BATTERY_LEVEL) {
+        if (mNeedUpdateBatteryTip && refreshType != BatteryUpdateType.BATTERY_LEVEL) {
             restartBatteryTipLoader();
         } else {
             mNeedUpdateBatteryTip = true;
@@ -237,8 +225,7 @@
     void initPreference() {
         mBatteryUsagePreference = findPreference(KEY_BATTERY_USAGE);
         mBatteryUsagePreference.setSummary(getString(R.string.advanced_battery_preference_summary));
-        mBatteryUsagePreference.setVisible(
-                mPowerFeatureProvider.isBatteryUsageEnabled());
+        mBatteryUsagePreference.setVisible(mPowerFeatureProvider.isBatteryUsageEnabled());
 
         mHelpPreference = findPreference(KEY_BATTERY_ERROR);
         mHelpPreference.setVisible(false);
diff --git a/src/com/android/settings/fuelgauge/batteryusage/ScreenOnTimeController.java b/src/com/android/settings/fuelgauge/batteryusage/ScreenOnTimeController.java
index 286a95f..fcdd673 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/ScreenOnTimeController.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/ScreenOnTimeController.java
@@ -42,12 +42,9 @@
     private static final Pattern NUMBER_PATTERN = Pattern.compile("[\\d]*[\\.,]?[\\d]+");
     private static final Locale IW_LOCALE = new Locale("iw");
 
-    @VisibleForTesting
-    Context mPrefContext;
-    @VisibleForTesting
-    PreferenceCategory mRootPreference;
-    @VisibleForTesting
-    TextViewPreference mScreenOnTimeTextPreference;
+    @VisibleForTesting Context mPrefContext;
+    @VisibleForTesting PreferenceCategory mRootPreference;
+    @VisibleForTesting TextViewPreference mScreenOnTimeTextPreference;
 
     public ScreenOnTimeController(Context context) {
         super(context, ROOT_PREFERENCE_KEY);
@@ -78,19 +75,22 @@
 
     @VisibleForTesting
     void showCategoryTitle(String slotTimestamp) {
-        mRootPreference.setTitle(slotTimestamp == null
-                ? mPrefContext.getString(
-                        R.string.screen_time_category_last_full_charge)
-                : mPrefContext.getString(
-                        R.string.screen_time_category_for_slot, slotTimestamp));
+        mRootPreference.setTitle(
+                slotTimestamp == null
+                        ? mPrefContext.getString(R.string.screen_time_category_last_full_charge)
+                        : mPrefContext.getString(
+                                R.string.screen_time_category_for_slot, slotTimestamp));
         mRootPreference.setVisible(true);
     }
 
     @VisibleForTesting
     void showScreenOnTimeText(Long screenOnTime) {
         final CharSequence timeSequence =
-                BatteryUtils.formatElapsedTimeWithoutComma(mPrefContext, (double) screenOnTime,
-                        /*withSeconds=*/ false, /*collapseTimeUnit=*/ false);
+                BatteryUtils.formatElapsedTimeWithoutComma(
+                        mPrefContext,
+                        (double) screenOnTime,
+                        /* withSeconds= */ false,
+                        /* collapseTimeUnit= */ false);
         mScreenOnTimeTextPreference.setText(
                 enlargeFontOfNumberIfNeeded(mPrefContext, timeSequence));
         mScreenOnTimeTextPreference.setVisible(true);
@@ -107,11 +107,14 @@
             return text;
         }
 
-        final SpannableString spannableText =  new SpannableString(text);
+        final SpannableString spannableText = new SpannableString(text);
         final Matcher matcher = NUMBER_PATTERN.matcher(text);
         while (matcher.find()) {
-            spannableText.setSpan(new AbsoluteSizeSpan(36, true /* dip */), matcher.start(),
-                    matcher.end(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
+            spannableText.setSpan(
+                    new AbsoluteSizeSpan(36, true /* dip */),
+                    matcher.start(),
+                    matcher.end(),
+                    Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
         }
         return spannableText;
     }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/SpinnerPreference.java b/src/com/android/settings/fuelgauge/batteryusage/SpinnerPreference.java
index f57c85a..0810158 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/SpinnerPreference.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/SpinnerPreference.java
@@ -36,12 +36,9 @@
 
     private AdapterView.OnItemSelectedListener mOnItemSelectedListener;
 
-    @VisibleForTesting
-    Spinner mSpinner;
-    @VisibleForTesting
-    String[] mItems;
-    @VisibleForTesting
-    int mSavedSpinnerPosition;
+    @VisibleForTesting Spinner mSpinner;
+    @VisibleForTesting String[] mItems;
+    @VisibleForTesting int mSavedSpinnerPosition;
 
     public SpinnerPreference(Context context, AttributeSet attrs) {
         super(context, attrs);
@@ -91,8 +88,11 @@
         super.onRestoreInstanceState(savedState.getSuperState());
         mSavedSpinnerPosition = savedState.getSpinnerPosition();
         if (mOnItemSelectedListener != null) {
-            mOnItemSelectedListener.onItemSelected(/* parent= */null, /* view= */null,
-                    savedState.getSpinnerPosition(), /* id= */ 0);
+            mOnItemSelectedListener.onItemSelected(
+                    /* parent= */ null,
+                    /* view= */ null,
+                    savedState.getSpinnerPosition(),
+                    /* id= */ 0);
         }
         Log.d(TAG, "onRestoreInstanceState() spinnerPosition=" + savedState.getSpinnerPosition());
     }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/TextViewPreference.java b/src/com/android/settings/fuelgauge/batteryusage/TextViewPreference.java
index 22faabb..b20ef39 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/TextViewPreference.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/TextViewPreference.java
@@ -30,8 +30,7 @@
 public class TextViewPreference extends Preference {
     private static final String TAG = "TextViewPreference";
 
-    @VisibleForTesting
-    CharSequence mText;
+    @VisibleForTesting CharSequence mText;
 
     public TextViewPreference(Context context, AttributeSet attrs) {
         super(context, attrs);
diff --git a/src/com/android/settings/fuelgauge/batteryusage/bugreport/BatteryUsageLogUtils.java b/src/com/android/settings/fuelgauge/batteryusage/bugreport/BatteryUsageLogUtils.java
index cb2f394..4017131 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/bugreport/BatteryUsageLogUtils.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/bugreport/BatteryUsageLogUtils.java
@@ -25,6 +25,7 @@
 import com.android.settings.fuelgauge.BatteryUsageHistoricalLogEntry.Action;
 import com.android.settings.fuelgauge.BatteryUtils;
 import com.android.settings.fuelgauge.batteryusage.ConvertUtils;
+
 import com.google.common.annotations.VisibleForTesting;
 
 import java.io.PrintWriter;
@@ -62,16 +63,13 @@
 
         final String loggingContent =
                 Base64.encodeToString(newLogBuilder.build().toByteArray(), Base64.DEFAULT);
-        sharedPreferences
-                .edit()
-                .putString(LOGS_KEY, loggingContent)
-                .apply();
+        sharedPreferences.edit().putString(LOGS_KEY, loggingContent).apply();
     }
 
     /** Prints the historical log that has previously been stored by this utility. */
     public static void printHistoricalLog(Context context, PrintWriter writer) {
-        final BatteryUsageHistoricalLog existingLog = parseLogFromString(
-                getSharedPreferences(context).getString(LOGS_KEY, ""));
+        final BatteryUsageHistoricalLog existingLog =
+                parseLogFromString(getSharedPreferences(context).getString(LOGS_KEY, ""));
         final List<BatteryUsageHistoricalLogEntry> logEntryList = existingLog.getLogEntryList();
         if (logEntryList.isEmpty()) {
             writer.println("\tnothing to dump");
@@ -92,9 +90,10 @@
     }
 
     private static String toString(BatteryUsageHistoricalLogEntry entry) {
-        final StringBuilder builder = new StringBuilder("\t")
-                .append(ConvertUtils.utcToLocalTimeForLogging(entry.getTimestamp()))
-                .append(" " + entry.getAction());
+        final StringBuilder builder =
+                new StringBuilder("\t")
+                        .append(ConvertUtils.utcToLocalTimeForLogging(entry.getTimestamp()))
+                        .append(" " + entry.getAction());
         final String description = entry.getActionDescription();
         if (description != null && !description.isEmpty()) {
             builder.append(" " + description);
diff --git a/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProvider.java b/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProvider.java
index 4c42327..7dc7700 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProvider.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProvider.java
@@ -39,11 +39,16 @@
 
     @Override
     public void dump(FileDescriptor fd, PrintWriter writer, String[] args) {
-        final Context context = getContext();
+        Context context = getContext();
         if (context == null) {
             Log.w(TAG, "failed to dump BatteryUsage state: null context");
             return;
         }
+        context = context.getApplicationContext();
+        if (context == null) {
+            Log.w(TAG, "failed to dump BatteryUsage state: null application context");
+            return;
+        }
         if (DatabaseUtils.isWorkProfile(context)) {
             Log.w(TAG, "ignore battery usage states dump in the work profile");
             return;
@@ -51,6 +56,9 @@
         writer.println("dump BatteryUsage and AppUsage states:");
         LogUtils.dumpBatteryUsageDatabaseHist(context, writer);
         LogUtils.dumpAppUsageDatabaseHist(context, writer);
+        LogUtils.dumpBatteryUsageSlotDatabaseHist(context, writer);
+        LogUtils.dumpBatteryEventDatabaseHist(context, writer);
+        LogUtils.dumpBatteryStateDatabaseHist(context, writer);
     }
 
     @Override
@@ -79,11 +87,7 @@
     }
 
     @Override
-    public int update(
-            Uri uri,
-            ContentValues values,
-            String selection,
-            String[] selectionArgs) {
+    public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
         throw new UnsupportedOperationException("unsupported!");
     }
 }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/bugreport/LogUtils.java b/src/com/android/settings/fuelgauge/batteryusage/bugreport/LogUtils.java
index 6d5082c..0ac8cca 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/bugreport/LogUtils.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/bugreport/LogUtils.java
@@ -19,18 +19,26 @@
 import android.content.Context;
 import android.util.Log;
 
+import com.android.settings.fuelgauge.BatteryUtils;
+import com.android.settings.fuelgauge.batteryusage.BatteryUsageSlot;
 import com.android.settings.fuelgauge.batteryusage.ConvertUtils;
 import com.android.settings.fuelgauge.batteryusage.DatabaseUtils;
 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;
+import com.android.settings.fuelgauge.batteryusage.db.BatteryUsageSlotDao;
+import com.android.settings.fuelgauge.batteryusage.db.BatteryUsageSlotEntity;
 
 import java.io.PrintWriter;
 import java.time.Clock;
 import java.time.Duration;
 import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.function.Function;
 
 /** A utility class to aggregate and provide required log data. */
 public final class LogUtils {
@@ -47,12 +55,8 @@
         // Dumps phenotype environments.
         DatabaseUtils.dump(context, writer);
         writer.flush();
-        final BatteryStateDao dao =
-                BatteryStateDatabase
-                        .getInstance(context.getApplicationContext())
-                        .batteryStateDao();
-        final long timeOffset =
-                Clock.systemUTC().millis() - DUMP_TIME_OFFSET.toMillis();
+        final BatteryStateDao dao = BatteryStateDatabase.getInstance(context).batteryStateDao();
+        final long timeOffset = Clock.systemUTC().millis() - DUMP_TIME_OFFSET.toMillis();
 
         // Gets all distinct timestamps.
         final List<Long> timestamps = dao.getDistinctTimestamps(timeOffset);
@@ -64,29 +68,81 @@
             return;
         }
         // Dumps all distinct timestamps.
-        timestamps.forEach(timestamp -> {
-            final String formattedTimestamp = ConvertUtils.utcToLocalTimeForLogging(timestamp);
-            writer.println("\t" + formattedTimestamp);
-            Log.w(TAG, "\t" + formattedTimestamp);
-        });
+        timestamps.forEach(
+                timestamp -> {
+                    final String formattedTimestamp =
+                            ConvertUtils.utcToLocalTimeForLogging(timestamp);
+                    writer.println("\t" + formattedTimestamp);
+                    Log.w(TAG, "\t" + formattedTimestamp);
+                });
         writer.flush();
+    }
 
-        final List<BatteryState> stateList = dao.getAllAfter(
-                Clock.systemUTC().millis() - DUMP_TIME_OFFSET_FOR_ENTRY.toMillis());
-        stateList.stream().forEach(state -> writer.println(state));
+    static void dumpBatteryStateDatabaseHist(Context context, PrintWriter writer) {
+        final BatteryStateDao dao = BatteryStateDatabase.getInstance(context).batteryStateDao();
+        writer.println("\n\tBatteryState DatabaseHistory:");
+        final List<BatteryState> stateList =
+                dao.getAllAfter(Clock.systemUTC().millis() - DUMP_TIME_OFFSET_FOR_ENTRY.toMillis());
+        dumpListItems(writer, stateList, state -> state);
     }
 
     static void dumpAppUsageDatabaseHist(Context context, PrintWriter writer) {
-        final AppUsageEventDao dao =
-                BatteryStateDatabase
-                        .getInstance(context.getApplicationContext())
-                        .appUsageEventDao();
+        final AppUsageEventDao dao = BatteryStateDatabase.getInstance(context).appUsageEventDao();
         writer.println("\n\tApp DatabaseHistory:");
-        final List<AppUsageEventEntity> eventList = dao.getAllAfter(
-                Clock.systemUTC().millis() - DUMP_TIME_OFFSET_FOR_ENTRY.toMillis());
-        eventList.stream().forEach(event -> writer.println(event));
+        final List<AppUsageEventEntity> eventList =
+                dao.getAllAfter(Clock.systemUTC().millis() - DUMP_TIME_OFFSET_FOR_ENTRY.toMillis());
+        dumpListItems(writer, eventList, event -> event);
+    }
+
+    static void dumpBatteryUsageSlotDatabaseHist(Context context, PrintWriter writer) {
+        final BatteryUsageSlotDao dao =
+                BatteryStateDatabase.getInstance(context).batteryUsageSlotDao();
+        writer.println("\n\tBattery Usage Slot DatabaseHistory:");
+        final List<BatteryUsageSlotEntity> entities =
+                dao.getAllAfterForLog(getLastFullChargeTimestamp(context));
+        dumpListItems(
+                writer,
+                entities,
+                entity ->
+                        BatteryUtils.parseProtoFromString(
+                                entity.batteryUsageSlot, BatteryUsageSlot.getDefaultInstance()));
+    }
+
+    static void dumpBatteryEventDatabaseHist(Context context, PrintWriter writer) {
+        final BatteryEventDao dao = BatteryStateDatabase.getInstance(context).batteryEventDao();
+        writer.println("\n\tBattery Event DatabaseHistory:");
+        final List<BatteryEventEntity> entities =
+                dao.getAllAfterForLog(getLastFullChargeTimestamp(context));
+        dumpListItems(writer, entities, entity -> entity);
+    }
+
+    private static <T, S> void dumpListItems(
+            PrintWriter writer, List<T> itemList, Function<T, S> itemConverter) {
+        final AtomicInteger counter = new AtomicInteger(0);
+        try {
+            itemList.forEach(
+                    item -> {
+                        writer.println(itemConverter.apply(item));
+                        if (counter.incrementAndGet() % 20 == 0) {
+                            writer.flush();
+                        }
+                    });
+        } catch (RuntimeException e) {
+            Log.e(TAG, "dumpListItems() error: ", e);
+        }
         writer.flush();
     }
 
+    private static long getLastFullChargeTimestamp(Context context) {
+        final BatteryEventDao dao = BatteryStateDatabase.getInstance(context).batteryEventDao();
+        try {
+            final Long lastFullChargeTimestamp = dao.getLastFullChargeTimestampForLog();
+            return lastFullChargeTimestamp != null ? lastFullChargeTimestamp : 0L;
+        } catch (RuntimeException e) {
+            Log.e(TAG, "getLastFullChargeTimestamp() error: ", e);
+            return 0L;
+        }
+    }
+
     private LogUtils() {}
 }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/db/AppUsageEventDao.java b/src/com/android/settings/fuelgauge/batteryusage/db/AppUsageEventDao.java
index 19360f4..d220b15 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/db/AppUsageEventDao.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/db/AppUsageEventDao.java
@@ -42,8 +42,9 @@
     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")
+    @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. */
diff --git a/src/com/android/settings/fuelgauge/batteryusage/db/AppUsageEventEntity.java b/src/com/android/settings/fuelgauge/batteryusage/db/AppUsageEventEntity.java
index c08c735..f0cc71d 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/db/AppUsageEventEntity.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/db/AppUsageEventEntity.java
@@ -32,6 +32,7 @@
 public class AppUsageEventEntity {
     /** Keys for accessing {@link ContentValues}. */
     public static final String KEY_UID = "uid";
+
     public static final String KEY_USER_ID = "userId";
     public static final String KEY_TIMESTAMP = "timestamp";
     public static final String KEY_APP_USAGE_EVENT_TYPE = "appUsageEventType";
@@ -81,14 +82,28 @@
     @Override
     public String toString() {
         final String recordAtDateTime = ConvertUtils.utcToLocalTimeForLogging(timestamp);
-        final StringBuilder builder = new StringBuilder()
-                .append("\nAppUsageEvent{")
-                .append(String.format(Locale.US,
-                        "\n\tpackage=%s|uid=%d|userId=%d", packageName, uid, userId))
-                .append(String.format(Locale.US, "\n\ttimestamp=%s|eventType=%d|instanceId=%d",
-                        recordAtDateTime, appUsageEventType, instanceId))
-                .append(String.format(Locale.US, "\n\ttaskRootPackageName=%s",
-                        taskRootPackageName));
+        final StringBuilder builder =
+                new StringBuilder()
+                        .append("\nAppUsageEvent{")
+                        .append(
+                                String.format(
+                                        Locale.US,
+                                        "\n\tpackage=%s|uid=%d|userId=%d",
+                                        packageName,
+                                        uid,
+                                        userId))
+                        .append(
+                                String.format(
+                                        Locale.US,
+                                        "\n\ttimestamp=%s|eventType=%d|instanceId=%d",
+                                        recordAtDateTime,
+                                        appUsageEventType,
+                                        instanceId))
+                        .append(
+                                String.format(
+                                        Locale.US,
+                                        "\n\ttaskRootPackageName=%s",
+                                        taskRootPackageName));
         return builder.toString();
     }
 
@@ -111,8 +126,7 @@
             builder.setPackageName(contentValues.getAsString(KEY_PACKAGE_NAME));
         }
         if (contentValues.containsKey(KEY_INSTANCE_ID)) {
-            builder.setInstanceId(
-                    contentValues.getAsInteger(KEY_INSTANCE_ID));
+            builder.setInstanceId(contentValues.getAsInteger(KEY_INSTANCE_ID));
         }
         if (contentValues.containsKey(KEY_TASK_ROOT_PACKAGE_NAME)) {
             builder.setTaskRootPackageName(contentValues.getAsString(KEY_TASK_ROOT_PACKAGE_NAME));
@@ -198,6 +212,4 @@
 
         private Builder() {}
     }
-
-
 }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDao.java b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDao.java
index 0a6de71..8b696fe 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDao.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDao.java
@@ -37,16 +37,30 @@
     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
+    @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")
+    @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);
diff --git a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventEntity.java b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventEntity.java
index 66cadda..cee0fec 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventEntity.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventEntity.java
@@ -32,6 +32,7 @@
 public class BatteryEventEntity {
     /** Keys for accessing {@link ContentValues}. */
     public static final String KEY_TIMESTAMP = "timestamp";
+
     public static final String KEY_BATTERY_EVENT_TYPE = "batteryEventType";
     public static final String KEY_BATTERY_LEVEL = "batteryLevel";
 
@@ -43,9 +44,7 @@
     public final int batteryLevel;
 
     public BatteryEventEntity(
-            final long timestamp,
-            final int batteryEventType,
-            final int batteryLevel) {
+            final long timestamp, final int batteryEventType, final int batteryLevel) {
         this.timestamp = timestamp;
         this.batteryEventType = batteryEventType;
         this.batteryLevel = batteryLevel;
@@ -64,12 +63,17 @@
     @Override
     public String toString() {
         final String recordAtDateTime = ConvertUtils.utcToLocalTimeForLogging(timestamp);
-        final StringBuilder builder = new StringBuilder()
-                .append("\nBatteryEvent{")
-                .append(String.format(Locale.US,
-                        "\n\ttimestamp=%s|batteryEventType=%d|batteryLevel=%d",
-                        recordAtDateTime, batteryEventType, batteryLevel))
-                .append("\n}");
+        final StringBuilder builder =
+                new StringBuilder()
+                        .append("\nBatteryEvent{")
+                        .append(
+                                String.format(
+                                        Locale.US,
+                                        "\n\ttimestamp=%s|batteryEventType=%d|batteryLevel=%d",
+                                        recordAtDateTime,
+                                        batteryEventType,
+                                        batteryLevel))
+                        .append("\n}");
         return builder.toString();
     }
 
@@ -122,10 +126,7 @@
 
         /** Builds the {@link BatteryEventEntity}. */
         public BatteryEventEntity build() {
-            return new BatteryEventEntity(
-                    mTimestamp,
-                    mBatteryEventType,
-                    mBatteryLevel);
+            return new BatteryEventEntity(mTimestamp, mBatteryEventType, mBatteryLevel);
         }
 
         private Builder() {}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryState.java b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryState.java
index 190c274..8e1280d 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryState.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryState.java
@@ -43,15 +43,17 @@
     public final int consumerType;
     public final boolean isFullChargeCycleStart;
     public final String batteryInformation;
+
     /**
      * This field is filled only when build type is "userdebug".
-     * For now, Java Proto Lite is recommended by the Android team as the more lightweight solution
-     * designed specifically for mobile apps to process protobuf.
-     * However, converting protobuf to string through Java Proto Lite needs to parse it into a bytes
-     * field first, which leads to the strings saved in our database are encoded and hard to
-     * understand.
-     * To make it easier to debug in our daily development, this field is added.
-     * It will not be filled for the real users.
+     *
+     * <p>For now, Java Proto Lite is recommended by the Android team as the more lightweight
+     * solution designed specifically for mobile apps to process protobuf. However, converting
+     * protobuf to string through Java Proto Lite needs to parse it into a bytes field first, which
+     * leads to the strings saved in our database are encoded and hard to understand.
+     *
+     * <p>To make it easier to debug in our daily development, this field is added. It will not be
+     * filled for the real users.
      */
     public final String batteryInformationDebug;
 
@@ -91,18 +93,28 @@
         final BatteryInformation batteryInformationInstance =
                 BatteryUtils.parseProtoFromString(
                         batteryInformation, BatteryInformation.getDefaultInstance());
-        final StringBuilder builder = new StringBuilder()
-                .append("\nBatteryState{")
-                .append(String.format(Locale.US,
-                        "\n\tpackage=%s|uid=%d|userId=%d", packageName, uid, userId))
-                .append(String.format(Locale.US, "\n\ttimestamp=%s|consumer=%d|isStart=%b",
-                        recordAtDateTime, consumerType, isFullChargeCycleStart))
-                .append(String.format(Locale.US, "\n\tbatteryInfo="))
-                .append(batteryInformationInstance.toString());
+        final StringBuilder builder =
+                new StringBuilder()
+                        .append("\nBatteryState{")
+                        .append(
+                                String.format(
+                                        Locale.US,
+                                        "\n\tpackage=%s|uid=%d|userId=%d",
+                                        packageName,
+                                        uid,
+                                        userId))
+                        .append(
+                                String.format(
+                                        Locale.US,
+                                        "\n\ttimestamp=%s|consumer=%d|isStart=%b",
+                                        recordAtDateTime,
+                                        consumerType,
+                                        isFullChargeCycleStart))
+                        .append(String.format(Locale.US, "\n\tbatteryInfo="))
+                        .append(batteryInformationInstance.toString());
         return builder.toString();
     }
 
-
     /** Creates new {@link BatteryState} from {@link ContentValues}. */
     public static BatteryState create(ContentValues contentValues) {
         Builder builder = BatteryState.newBuilder();
@@ -122,8 +134,7 @@
             builder.setConsumerType(contentValues.getAsInteger("consumerType"));
         }
         if (contentValues.containsKey("isFullChargeCycleStart")) {
-            builder.setIsFullChargeCycleStart(
-                    contentValues.getAsBoolean("isFullChargeCycleStart"));
+            builder.setIsFullChargeCycleStart(contentValues.getAsBoolean("isFullChargeCycleStart"));
         }
         if (contentValues.containsKey("batteryInformation")) {
             builder.setBatteryInformation(contentValues.getAsString("batteryInformation"));
diff --git a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDatabase.java b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDatabase.java
index 28a0012..7504775 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDatabase.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDatabase.java
@@ -25,8 +25,12 @@
 
 /** A {@link RoomDatabase} for battery usage states history. */
 @Database(
-        entities = {AppUsageEventEntity.class, BatteryEventEntity.class, BatteryState.class,
-                BatteryUsageSlotEntity.class},
+        entities = {
+            AppUsageEventEntity.class,
+            BatteryEventEntity.class,
+            BatteryState.class,
+            BatteryUsageSlotEntity.class
+        },
         version = 1)
 public abstract class BatteryStateDatabase extends RoomDatabase {
     private static final String TAG = "BatteryStateDatabase";
@@ -35,10 +39,13 @@
 
     /** Provides DAO for app usage event table. */
     public abstract AppUsageEventDao appUsageEventDao();
+
     /** Provides DAO for battery event table. */
     public abstract BatteryEventDao batteryEventDao();
+
     /** Provides DAO for battery state table. */
     public abstract BatteryStateDao batteryStateDao();
+
     /** Provides DAO for battery usage slot table. */
     public abstract BatteryUsageSlotDao batteryUsageSlotDao();
 
@@ -46,8 +53,7 @@
     public static BatteryStateDatabase getInstance(Context context) {
         if (sBatteryStateDatabase == null) {
             sBatteryStateDatabase =
-                    Room.databaseBuilder(
-                                    context, BatteryStateDatabase.class, "battery-usage-db-v9")
+                    Room.databaseBuilder(context, BatteryStateDatabase.class, "battery-usage-db-v9")
                             // Allows accessing data in the main thread for dumping bugreport.
                             .allowMainThreadQueries()
                             .fallbackToDestructiveMigration()
diff --git a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotDao.java b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotDao.java
index a695f6a..d8cf41d 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotDao.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotDao.java
@@ -37,10 +37,17 @@
     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")
+    @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);
diff --git a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotEntity.java b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotEntity.java
index c2d5631..16a01b4 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotEntity.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotEntity.java
@@ -32,6 +32,7 @@
 public class BatteryUsageSlotEntity {
     /** Keys for accessing {@link ContentValues}. */
     public static final String KEY_TIMESTAMP = "timestamp";
+
     public static final String KEY_BATTERY_USAGE_SLOT = "batteryUsageSlot";
 
     @PrimaryKey(autoGenerate = true)
@@ -58,11 +59,16 @@
     @Override
     public String toString() {
         final String recordAtDateTime = ConvertUtils.utcToLocalTimeForLogging(timestamp);
-        final StringBuilder builder = new StringBuilder()
-                .append("\nBatteryUsageSlot{")
-                .append(String.format(Locale.US, "\n\ttimestamp=%s|batteryUsageSlot=%s",
-                        recordAtDateTime, batteryUsageSlot))
-                .append("\n}");
+        final StringBuilder builder =
+                new StringBuilder()
+                        .append("\nBatteryUsageSlot{")
+                        .append(
+                                String.format(
+                                        Locale.US,
+                                        "\n\ttimestamp=%s|batteryUsageSlot=%s",
+                                        recordAtDateTime,
+                                        batteryUsageSlot))
+                        .append("\n}");
         return builder.toString();
     }
 
diff --git a/src/com/android/settings/fuelgauge/datasaver/DynamicDenylistManager.java b/src/com/android/settings/fuelgauge/datasaver/DynamicDenylistManager.java
new file mode 100644
index 0000000..e9e1218
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/datasaver/DynamicDenylistManager.java
@@ -0,0 +1,189 @@
+/*
+ * 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.datasaver;
+
+import static android.net.NetworkPolicyManager.POLICY_NONE;
+import static android.net.NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND;
+
+import static com.android.settings.Utils.SETTINGS_PACKAGE_NAME;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.net.NetworkPolicyManager;
+import android.util.ArraySet;
+import android.util.Log;
+
+import androidx.annotation.VisibleForTesting;
+
+import java.util.Set;
+
+/** A class to dynamically manage per apps {@link NetworkPolicyManager} POLICY_ flags. */
+public final class DynamicDenylistManager {
+
+    private static final String TAG = "DynamicDenylistManager";
+    private static final String PREF_KEY_MANUAL_DENY = "manual_denylist_preference";
+    private static final String PREF_KEY_DYNAMIC_DENY = "dynamic_denylist_preference";
+
+    private static DynamicDenylistManager sInstance;
+
+    private final Context mContext;
+    private final NetworkPolicyManager mNetworkPolicyManager;
+    private final Object mLock = new Object();
+
+    @VisibleForTesting
+    static final String PREF_KEY_MANUAL_DENYLIST_SYNCED = "manual_denylist_synced";
+
+    /** @return a DynamicDenylistManager object */
+    public static DynamicDenylistManager getInstance(Context context) {
+        synchronized (DynamicDenylistManager.class) {
+            if (sInstance == null) {
+                sInstance = new DynamicDenylistManager(
+                        context, NetworkPolicyManager.from(context));
+            }
+            return sInstance;
+        }
+    }
+
+    @VisibleForTesting
+    DynamicDenylistManager(Context context, NetworkPolicyManager networkPolicyManager) {
+        mContext = context.getApplicationContext();
+        mNetworkPolicyManager = networkPolicyManager;
+        syncPolicyIfNeeded();
+    }
+
+    /** Sync the policy from {@link NetworkPolicyManager} if needed. */
+    private void syncPolicyIfNeeded() {
+        if (getManualDenylistPref().contains(PREF_KEY_MANUAL_DENYLIST_SYNCED)) {
+            Log.i(TAG, "syncPolicyIfNeeded() ignore synced manual denylist");
+            return;
+        }
+
+        final SharedPreferences.Editor editor = getManualDenylistPref().edit();
+        final int[] existedUids = mNetworkPolicyManager
+                .getUidsWithPolicy(POLICY_REJECT_METERED_BACKGROUND);
+        if (existedUids != null && existedUids.length != 0) {
+            for (int uid : existedUids) {
+                editor.putInt(String.valueOf(uid), POLICY_REJECT_METERED_BACKGROUND);
+            }
+        }
+        editor.putInt(PREF_KEY_MANUAL_DENYLIST_SYNCED, POLICY_NONE).apply();
+    }
+
+    /** Set policy flags for specific UID. */
+    public void setUidPolicyLocked(int uid, int policy) {
+        synchronized (mLock) {
+            mNetworkPolicyManager.setUidPolicy(uid, policy);
+        }
+        updateDenylistPref(uid, policy);
+    }
+
+    /** Suggest a list of package to set as POLICY_REJECT. */
+    public void setDenylist(Set<Integer> denylistTargetUids) {
+        final Set<Integer> manualDenylistUids = getDenylistAllUids(getManualDenylistPref());
+        denylistTargetUids.removeAll(manualDenylistUids);
+
+        final Set<Integer> lastDynamicDenylistUids = getDenylistAllUids(getDynamicDenylistPref());
+        if (lastDynamicDenylistUids.equals(denylistTargetUids)) {
+            Log.i(TAG, "setDenylist() ignore the same denylist with size: "
+                    + lastDynamicDenylistUids.size());
+            return;
+        }
+
+        // Store target denied uids into DynamicDenylistPref.
+        final SharedPreferences.Editor editor = getDynamicDenylistPref().edit();
+        editor.clear();
+        denylistTargetUids.forEach(
+                uid -> editor.putInt(String.valueOf(uid), POLICY_REJECT_METERED_BACKGROUND));
+        editor.apply();
+
+        synchronized (mLock) {
+            // Set new added UIDs into REJECT policy.
+            for (int uid : denylistTargetUids) {
+                if (!lastDynamicDenylistUids.contains(uid)) {
+                    mNetworkPolicyManager.setUidPolicy(uid, POLICY_REJECT_METERED_BACKGROUND);
+                }
+            }
+            // Unset removed UIDs back to NONE policy.
+            for (int uid : lastDynamicDenylistUids) {
+                if (!denylistTargetUids.contains(uid)) {
+                    mNetworkPolicyManager.setUidPolicy(uid, POLICY_NONE);
+                }
+            }
+        }
+    }
+
+    /** Return true if the target uid is in {@link #getManualDenylistPref()}. */
+    public boolean isInManualDenylist(int uid) {
+        return getManualDenylistPref().contains(String.valueOf(uid));
+    }
+
+    /** Reset the UIDs in the denylist if needed. */
+    public void resetDenylistIfNeeded(String packageName, boolean force) {
+        if (!force && !SETTINGS_PACKAGE_NAME.equals(packageName)) {
+            return;
+        }
+        synchronized (mLock) {
+            for (int uid : mNetworkPolicyManager
+                    .getUidsWithPolicy(POLICY_REJECT_METERED_BACKGROUND)) {
+                if (!getDenylistAllUids(getManualDenylistPref()).contains(uid)) {
+                    mNetworkPolicyManager.setUidPolicy(uid, POLICY_NONE);
+                }
+            }
+        }
+        clearSharedPreferences();
+    }
+
+    private Set<Integer> getDenylistAllUids(SharedPreferences sharedPreferences) {
+        final ArraySet<Integer> uids = new ArraySet<>();
+        for (String key : sharedPreferences.getAll().keySet()) {
+            if (PREF_KEY_MANUAL_DENYLIST_SYNCED.equals(key)) {
+                continue;
+            }
+            try {
+                uids.add(Integer.parseInt(key));
+            } catch (NumberFormatException e) {
+                Log.e(TAG, "getDenylistAllUids() unexpected format for " + key);
+            }
+        }
+        return uids;
+    }
+
+    void updateDenylistPref(int uid, int policy) {
+        final String uidString = String.valueOf(uid);
+        if (policy != POLICY_REJECT_METERED_BACKGROUND) {
+            getManualDenylistPref().edit().remove(uidString).apply();
+        } else {
+            getManualDenylistPref().edit().putInt(uidString, policy).apply();
+        }
+        getDynamicDenylistPref().edit().remove(uidString).apply();
+    }
+
+    void clearSharedPreferences() {
+        getManualDenylistPref().edit().clear().apply();
+        getDynamicDenylistPref().edit().clear().apply();
+    }
+
+    @VisibleForTesting
+    SharedPreferences getManualDenylistPref() {
+        return mContext.getSharedPreferences(PREF_KEY_MANUAL_DENY, Context.MODE_PRIVATE);
+    }
+
+    @VisibleForTesting
+    SharedPreferences getDynamicDenylistPref() {
+        return mContext.getSharedPreferences(PREF_KEY_DYNAMIC_DENY, Context.MODE_PRIVATE);
+    }
+}
diff --git a/src/com/android/settings/gestures/PreventRingingSwitchPreferenceController.java b/src/com/android/settings/gestures/PreventRingingSwitchPreferenceController.java
index 642623a..9c0e0bf 100644
--- a/src/com/android/settings/gestures/PreventRingingSwitchPreferenceController.java
+++ b/src/com/android/settings/gestures/PreventRingingSwitchPreferenceController.java
@@ -18,7 +18,8 @@
 
 import android.content.Context;
 import android.provider.Settings;
-import android.widget.Switch;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
@@ -28,10 +29,9 @@
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.core.AbstractPreferenceController;
 import com.android.settingslib.widget.MainSwitchPreference;
-import com.android.settingslib.widget.OnMainSwitchChangeListener;
 
 public class PreventRingingSwitchPreferenceController extends AbstractPreferenceController
-        implements PreferenceControllerMixin, OnMainSwitchChangeListener {
+        implements PreferenceControllerMixin, OnCheckedChangeListener {
 
     private static final String KEY = "gesture_prevent_ringing_switch";
     private final Context mContext;
@@ -94,7 +94,7 @@
     }
 
     @Override
-    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         final int preventRingingSetting = Settings.Secure.getInt(mContext.getContentResolver(),
                 Settings.Secure.VOLUME_HUSH_GESTURE, Settings.Secure.VOLUME_HUSH_VIBRATE);
         final int newRingingSetting = preventRingingSetting == Settings.Secure.VOLUME_HUSH_OFF
diff --git a/src/com/android/settings/inputmethod/AvailableVirtualKeyboardFragment.java b/src/com/android/settings/inputmethod/AvailableVirtualKeyboardFragment.java
index 6efbc6d..7e27529 100644
--- a/src/com/android/settings/inputmethod/AvailableVirtualKeyboardFragment.java
+++ b/src/com/android/settings/inputmethod/AvailableVirtualKeyboardFragment.java
@@ -84,6 +84,16 @@
                 newUserAwareContext = context.createContextAsUser(UserHandle.of(newUserId), 0);
                 break;
             }
+            case ProfileSelectFragment.ProfileType.PRIVATE: {
+                // If the user is a private profile user, use currentUserId directly. Or get the
+                // private profile userId instead.
+                newUserId = userManager.isPrivateProfile()
+                        ? currentUserId
+                        : Utils.getCurrentUserIdOfType(
+                                userManager, ProfileSelectFragment.ProfileType.PRIVATE);
+                newUserAwareContext = context.createContextAsUser(UserHandle.of(newUserId), 0);
+                break;
+            }
             case ProfileSelectFragment.ProfileType.PERSONAL: {
                 // Use the parent user of the current user if the current user is profile.
                 final UserHandle currentUser = UserHandle.of(currentUserId);
diff --git a/src/com/android/settings/inputmethod/KeyboardLayoutPickerController.java b/src/com/android/settings/inputmethod/KeyboardLayoutPickerController.java
index 10cd4a2..1f29a2b 100644
--- a/src/com/android/settings/inputmethod/KeyboardLayoutPickerController.java
+++ b/src/com/android/settings/inputmethod/KeyboardLayoutPickerController.java
@@ -25,7 +25,8 @@
 import androidx.fragment.app.Fragment;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.SwitchPreferenceCompat;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.BasePreferenceController;
 import com.android.settingslib.core.lifecycle.LifecycleObserver;
@@ -40,7 +41,7 @@
         InputManager.InputDeviceListener, LifecycleObserver, OnStart, OnStop {
 
     private final InputManager mIm;
-    private final Map<SwitchPreference, KeyboardLayout> mPreferenceMap;
+    private final Map<TwoStatePreference, KeyboardLayout> mPreferenceMap;
 
     private Fragment mParent;
     private int mInputDeviceId;
@@ -95,11 +96,10 @@
 
     @Override
     public boolean handlePreferenceTreeClick(Preference preference) {
-        if (!(preference instanceof SwitchPreference)) {
+        if (!(preference instanceof TwoStatePreference switchPref)) {
             return false;
         }
 
-        final SwitchPreference switchPref = (SwitchPreference) preference;
         final KeyboardLayout layout = mPreferenceMap.get(switchPref);
         if (layout != null) {
             final boolean checked = switchPref.isChecked();
@@ -138,7 +138,7 @@
                 mInputDeviceIdentifier);
         Arrays.sort(enabledKeyboardLayouts);
 
-        for (Map.Entry<SwitchPreference, KeyboardLayout> entry : mPreferenceMap.entrySet()) {
+        for (Map.Entry<TwoStatePreference, KeyboardLayout> entry : mPreferenceMap.entrySet()) {
             entry.getKey().setChecked(Arrays.binarySearch(enabledKeyboardLayouts,
                     entry.getValue().getDescriptor()) >= 0);
         }
@@ -149,7 +149,7 @@
             return;
         }
         for (KeyboardLayout layout : mKeyboardLayouts) {
-            final SwitchPreference pref = new SwitchPreference(mScreen.getContext());
+            final TwoStatePreference pref = new SwitchPreferenceCompat(mScreen.getContext());
             pref.setTitle(layout.getLabel());
             pref.setSummary(layout.getCollection());
             // TODO: Waiting for new API to use a prefix with special number to setKey
diff --git a/src/com/android/settings/inputmethod/ModifierKeysPickerDialogFragment.java b/src/com/android/settings/inputmethod/ModifierKeysPickerDialogFragment.java
index d79db43..fa7b372 100644
--- a/src/com/android/settings/inputmethod/ModifierKeysPickerDialogFragment.java
+++ b/src/com/android/settings/inputmethod/ModifierKeysPickerDialogFragment.java
@@ -21,6 +21,7 @@
 import android.app.Activity;
 import android.app.AlertDialog;
 import android.app.Dialog;
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.graphics.drawable.Drawable;
 import android.hardware.input.InputManager;
@@ -47,6 +48,7 @@
 import com.android.settings.R;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.Utils;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -68,6 +70,7 @@
     private TextView mLeftBracket;
     private TextView mRightBracket;
     private ImageView mActionKeyIcon;
+    private MetricsFeatureProvider mMetricsFeatureProvider;
 
     private List<int[]> mRemappableKeyList =
             new ArrayList<>(Arrays.asList(
@@ -92,6 +95,7 @@
 
         mActivity = getActivity();
         FeatureFactory featureFactory = FeatureFactory.getFeatureFactory();
+        mMetricsFeatureProvider = featureFactory.getMetricsFeatureProvider();
         mFeatureProvider = featureFactory.getKeyboardSettingsFeatureProvider();
         InputManager inputManager = mActivity.getSystemService(InputManager.class);
         mKeyDefaultName = getArguments().getString(DEFAULT_KEY);
@@ -139,6 +143,7 @@
         doneButton.setOnClickListener(v -> {
             String selectedItem = modifierKeys.get(adapter.getCurrentItem());
             Spannable itemSummary;
+            logMetricsForRemapping(selectedItem);
             if (selectedItem.equals(mKeyDefaultName)) {
                 itemSummary = new SpannableString(
                         mActivity.getString(R.string.modifier_keys_default_summary));
@@ -189,6 +194,28 @@
         return modifierKeyDialog;
     }
 
+    private void logMetricsForRemapping(String selectedItem) {
+        if (mKeyDefaultName.equals("Caps lock")) {
+            mMetricsFeatureProvider.action(
+                    mActivity, SettingsEnums.ACTION_FROM_CAPS_LOCK_TO, selectedItem);
+        }
+
+        if (mKeyDefaultName.equals("Ctrl")) {
+            mMetricsFeatureProvider.action(
+                    mActivity, SettingsEnums.ACTION_FROM_CTRL_TO, selectedItem);
+        }
+
+        if (mKeyDefaultName.equals("Action key")) {
+            mMetricsFeatureProvider.action(
+                    mActivity, SettingsEnums.ACTION_FROM_ACTION_KEY_TO, selectedItem);
+        }
+
+        if (mKeyDefaultName.equals("Alt")) {
+            mMetricsFeatureProvider.action(
+                    mActivity, SettingsEnums.ACTION_FROM_ALT_TO, selectedItem);
+        }
+    }
+
     private void setInitialFocusItem(
             List<String> modifierKeys, ModifierKeyAdapter adapter) {
         if (modifierKeys.indexOf(mKeyFocus) == -1) {
diff --git a/src/com/android/settings/inputmethod/ModifierKeysResetDialogFragment.java b/src/com/android/settings/inputmethod/ModifierKeysResetDialogFragment.java
index 070968c..d49fbd1 100644
--- a/src/com/android/settings/inputmethod/ModifierKeysResetDialogFragment.java
+++ b/src/com/android/settings/inputmethod/ModifierKeysResetDialogFragment.java
@@ -21,6 +21,7 @@
 import android.app.Activity;
 import android.app.AlertDialog;
 import android.app.Dialog;
+import android.app.settings.SettingsEnums;
 import android.hardware.input.InputManager;
 import android.os.Bundle;
 import android.view.LayoutInflater;
@@ -31,6 +32,8 @@
 import androidx.fragment.app.DialogFragment;
 
 import com.android.settings.R;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 public class ModifierKeysResetDialogFragment extends DialogFragment {
 
@@ -39,6 +42,8 @@
     private static final String MODIFIER_KEYS_META = "modifier_keys_meta";
     private static final String MODIFIER_KEYS_ALT = "modifier_keys_alt";
 
+    private MetricsFeatureProvider mMetricsFeatureProvider;
+
     private String[] mKeys = {
             MODIFIER_KEYS_CAPS_LOCK,
             MODIFIER_KEYS_CTRL,
@@ -52,6 +57,7 @@
         super.onCreateDialog(savedInstanceState);
 
         Activity activity = getActivity();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         InputManager inputManager = activity.getSystemService(InputManager.class);
         View dialoglayout =
                 LayoutInflater.from(activity).inflate(R.layout.modifier_key_reset_dialog, null);
@@ -61,6 +67,7 @@
 
         Button restoreButton = dialoglayout.findViewById(R.id.modifier_key_reset_restore_button);
         restoreButton.setOnClickListener(v -> {
+            mMetricsFeatureProvider.action(activity, SettingsEnums.ACTION_CLEAR_REMAPPINGS);
             inputManager.clearAllModifierKeyRemappings();
             dismiss();
             activity.recreate();
diff --git a/src/com/android/settings/inputmethod/NewKeyboardLayoutEnabledLocalesFragment.java b/src/com/android/settings/inputmethod/NewKeyboardLayoutEnabledLocalesFragment.java
index f007bc8..abe640b 100644
--- a/src/com/android/settings/inputmethod/NewKeyboardLayoutEnabledLocalesFragment.java
+++ b/src/com/android/settings/inputmethod/NewKeyboardLayoutEnabledLocalesFragment.java
@@ -77,6 +77,15 @@
                         ? currentUserId : Utils.getManagedProfileId(userManager, currentUserId);
                 break;
             }
+            case ProfileSelectFragment.ProfileType.PRIVATE: {
+                // If the user is a private profile user, use currentUserId directly. Or get the
+                // private profile userId instead.
+                newUserId = userManager.isPrivateProfile()
+                        ? currentUserId
+                        : Utils.getCurrentUserIdOfType(
+                                userManager, ProfileSelectFragment.ProfileType.PRIVATE);
+                break;
+            }
             case ProfileSelectFragment.ProfileType.PERSONAL: {
                 final UserHandle primaryUser = userManager.getPrimaryUser().getUserHandle();
                 newUserId = primaryUser.getIdentifier();
diff --git a/src/com/android/settings/inputmethod/NewKeyboardLayoutPickerController.java b/src/com/android/settings/inputmethod/NewKeyboardLayoutPickerController.java
index e63d7d1..879f134 100644
--- a/src/com/android/settings/inputmethod/NewKeyboardLayoutPickerController.java
+++ b/src/com/android/settings/inputmethod/NewKeyboardLayoutPickerController.java
@@ -16,6 +16,7 @@
 
 package com.android.settings.inputmethod;
 
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.hardware.input.InputDeviceIdentifier;
 import android.hardware.input.InputManager;
@@ -30,7 +31,9 @@
 
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
+import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.widget.TickButtonPreference;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 import com.android.settingslib.core.lifecycle.LifecycleObserver;
 import com.android.settingslib.core.lifecycle.events.OnStart;
 import com.android.settingslib.core.lifecycle.events.OnStop;
@@ -53,13 +56,16 @@
     private KeyboardLayout[] mKeyboardLayouts;
     private PreferenceScreen mScreen;
     private String mPreviousSelection;
+    private String mFinalSelectedLayout;
     private String mLayout;
+    private MetricsFeatureProvider mMetricsFeatureProvider;
 
     public NewKeyboardLayoutPickerController(Context context, String key) {
         super(context, key);
         mIm = context.getSystemService(InputManager.class);
         mInputDeviceId = -1;
         mPreferenceMap = new HashMap<>();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     public void initialize(Fragment parent) {
@@ -74,6 +80,7 @@
         mInputMethodSubtype =
                 arguments.getParcelable(NewKeyboardSettingsUtils.EXTRA_INPUT_METHOD_SUBTYPE);
         mLayout = getSelectedLayoutLabel();
+        mFinalSelectedLayout = mLayout;
         mKeyboardLayouts = mIm.getKeyboardLayoutListForInputDevice(
                 mInputDeviceIdentifier, mUserId, mInputMethodInfo, mInputMethodSubtype);
         parent.getActivity().setTitle(mTitle);
@@ -92,6 +99,11 @@
 
     @Override
     public void onStop() {
+        if (!mLayout.equals(mFinalSelectedLayout)) {
+            String change = "From:" + mLayout + ", to:" + mFinalSelectedLayout;
+            mMetricsFeatureProvider.action(
+                    mContext, SettingsEnums.ACTION_PK_LAYOUT_CHANGED, change);
+        }
         mIm.unregisterInputDeviceListener(this);
         mInputDeviceId = -1;
     }
@@ -122,6 +134,7 @@
         }
         setLayout(pref);
         mPreviousSelection = preference.getKey();
+        mFinalSelectedLayout = pref.getTitle().toString();
         return true;
     }
 
diff --git a/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java b/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java
index ed3bd1d..1ca9ee6 100644
--- a/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java
+++ b/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java
@@ -16,8 +16,6 @@
 
 package com.android.settings.inputmethod;
 
-import android.annotation.NonNull;
-import android.annotation.Nullable;
 import android.app.Activity;
 import android.app.settings.SettingsEnums;
 import android.content.ContentResolver;
@@ -37,11 +35,13 @@
 import android.view.InputDevice;
 import android.view.inputmethod.InputMethodManager;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.preference.Preference;
 import androidx.preference.Preference.OnPreferenceChangeListener;
 import androidx.preference.PreferenceCategory;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.internal.util.Preconditions;
 import com.android.settings.R;
@@ -79,8 +79,8 @@
     private KeyboardSettingsFeatureProvider mFeatureProvider;
     @NonNull
     private PreferenceCategory mKeyboardAssistanceCategory;
-    @NonNull
-    private SwitchPreference mShowVirtualKeyboardSwitch;
+    @Nullable
+    private TwoStatePreference mShowVirtualKeyboardSwitch = null;
 
     private Intent mIntentWaitingForResult;
     private boolean mIsNewKeyboardSettings;
@@ -104,10 +104,11 @@
         mKeyboardAssistanceCategory = Preconditions.checkNotNull(
                 (PreferenceCategory) findPreference(KEYBOARD_OPTIONS_CATEGORY));
         mShowVirtualKeyboardSwitch = Preconditions.checkNotNull(
-                (SwitchPreference) mKeyboardAssistanceCategory.findPreference(
+                (TwoStatePreference) mKeyboardAssistanceCategory.findPreference(
                         SHOW_VIRTUAL_KEYBOARD_SWITCH));
 
         FeatureFactory featureFactory = FeatureFactory.getFeatureFactory();
+        mMetricsFeatureProvider = featureFactory.getMetricsFeatureProvider();
         mFeatureProvider = featureFactory.getKeyboardSettingsFeatureProvider();
         mSupportsFirmwareUpdate = mFeatureProvider.supportsFirmwareUpdate();
         if (mSupportsFirmwareUpdate) {
@@ -124,6 +125,10 @@
                 KeyboardLayoutPickerFragment.EXTRA_INPUT_DEVICE_IDENTIFIER);
         int intentFromWhere =
                 activity.getIntent().getIntExtra(android.provider.Settings.EXTRA_ENTRYPOINT, -1);
+        if (intentFromWhere != -1) {
+            mMetricsFeatureProvider.action(
+                    getContext(), SettingsEnums.ACTION_OPEN_PK_SETTINGS_FROM, intentFromWhere);
+        }
         if (inputDeviceIdentifier != null) {
             mAutoInputDeviceIdentifier = inputDeviceIdentifier;
         }
@@ -254,6 +259,16 @@
                         });
             }
             category.addPreference(pref);
+            StringBuilder vendorAndProductId = new StringBuilder();
+            String vendorId = String.valueOf(hardKeyboardDeviceInfo.mVendorId);
+            String productId = String.valueOf(hardKeyboardDeviceInfo.mProductId);
+            vendorAndProductId.append(vendorId);
+            vendorAndProductId.append("-");
+            vendorAndProductId.append(productId);
+            mMetricsFeatureProvider.action(
+                    getContext(),
+                    SettingsEnums.ACTION_USE_SPECIFIC_KEYBOARD,
+                    vendorAndProductId.toString());
         }
         mKeyboardAssistanceCategory.setOrder(1);
         preferenceScreen.addPreference(mKeyboardAssistanceCategory);
@@ -374,7 +389,9 @@
                     device.getName(),
                     device.getIdentifier(),
                     getLayoutLabel(device, context, im),
-                    device.getBluetoothAddress()));
+                    device.getBluetoothAddress(),
+                    device.getVendorId(),
+                    device.getProductId()));
         }
 
         // We intentionally don't reuse Comparator because Collator may not be thread-safe.
@@ -403,16 +420,24 @@
         public final String mLayoutLabel;
         @Nullable
         public final String mBluetoothAddress;
+        @NonNull
+        public final int mVendorId;
+        @NonNull
+        public final int mProductId;
 
         public HardKeyboardDeviceInfo(
                 @Nullable String deviceName,
                 @NonNull InputDeviceIdentifier deviceIdentifier,
                 @NonNull String layoutLabel,
-                @Nullable String bluetoothAddress) {
+                @Nullable String bluetoothAddress,
+                @NonNull int vendorId,
+                @NonNull int productId) {
             mDeviceName = TextUtils.emptyIfNull(deviceName);
             mDeviceIdentifier = deviceIdentifier;
             mLayoutLabel = layoutLabel;
             mBluetoothAddress = bluetoothAddress;
+            mVendorId = vendorId;
+            mProductId = productId;
         }
 
         @Override
diff --git a/src/com/android/settings/inputmethod/SpellCheckersSettings.java b/src/com/android/settings/inputmethod/SpellCheckersSettings.java
index a58d10c..bcb527b 100644
--- a/src/com/android/settings/inputmethod/SpellCheckersSettings.java
+++ b/src/com/android/settings/inputmethod/SpellCheckersSettings.java
@@ -26,7 +26,8 @@
 import android.view.textservice.SpellCheckerInfo;
 import android.view.textservice.SpellCheckerSubtype;
 import android.view.textservice.TextServicesManager;
-import android.widget.Switch;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
 
 import androidx.appcompat.app.AlertDialog;
 import androidx.preference.Preference;
@@ -37,10 +38,9 @@
 import com.android.settings.SettingsActivity;
 import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.widget.SettingsMainSwitchBar;
-import com.android.settingslib.widget.OnMainSwitchChangeListener;
 
 public class SpellCheckersSettings extends SettingsPreferenceFragment
-        implements OnMainSwitchChangeListener, OnPreferenceChangeListener {
+        implements OnCheckedChangeListener, OnPreferenceChangeListener {
     private static final String TAG = SpellCheckersSettings.class.getSimpleName();
     private static final boolean DBG = false;
 
@@ -105,7 +105,7 @@
     }
 
     @Override
-    public void onSwitchChanged(final Switch switchView, final boolean isChecked) {
+    public void onCheckedChanged(final CompoundButton buttonView, final boolean isChecked) {
         Settings.Secure.putInt(getContentResolver(), Settings.Secure.SPELL_CHECKER_ENABLED,
                 isChecked ? 1 : 0);
         updatePreferenceScreen();
diff --git a/src/com/android/settings/inputmethod/TouchGesturesButtonPreferenceController.java b/src/com/android/settings/inputmethod/TouchGesturesButtonPreferenceController.java
index bbe65c1..648a3e6 100644
--- a/src/com/android/settings/inputmethod/TouchGesturesButtonPreferenceController.java
+++ b/src/com/android/settings/inputmethod/TouchGesturesButtonPreferenceController.java
@@ -16,6 +16,7 @@
 
 package com.android.settings.inputmethod;
 
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.util.FeatureFlagUtils;
 
@@ -23,6 +24,8 @@
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.core.BasePreferenceController;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 import com.android.settingslib.widget.ButtonPreference;
 
 public class TouchGesturesButtonPreferenceController extends BasePreferenceController {
@@ -33,9 +36,11 @@
     private static final String GESTURE_DIALOG_TAG = "GESTURE_DIALOG_TAG";
 
     private Fragment mParent;
+    private MetricsFeatureProvider mMetricsFeatureProvider;
 
     public TouchGesturesButtonPreferenceController(Context context, String key) {
         super(context, key);
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     public void setFragment(Fragment parent) {
@@ -67,6 +72,7 @@
     }
 
     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);
diff --git a/src/com/android/settings/inputmethod/TrackpadBottomPreferenceController.java b/src/com/android/settings/inputmethod/TrackpadBottomPreferenceController.java
index 5133d04..d410a1b 100644
--- a/src/com/android/settings/inputmethod/TrackpadBottomPreferenceController.java
+++ b/src/com/android/settings/inputmethod/TrackpadBottomPreferenceController.java
@@ -16,16 +16,22 @@
 
 package com.android.settings.inputmethod;
 
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.hardware.input.InputSettings;
 
 import com.android.settings.R;
 import com.android.settings.core.TogglePreferenceController;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 public class TrackpadBottomPreferenceController extends TogglePreferenceController {
 
+    private MetricsFeatureProvider mMetricsFeatureProvider;
+
     public TrackpadBottomPreferenceController(Context context, String key) {
         super(context, key);
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
@@ -36,6 +42,8 @@
     @Override
     public boolean setChecked(boolean isChecked) {
         InputSettings.setTouchpadRightClickZone(mContext, isChecked);
+        mMetricsFeatureProvider.action(
+                mContext, SettingsEnums.ACTION_GESTURE_BOTTOM_RIGHT_TAP_CHANGED, isChecked);
         return true;
     }
 
diff --git a/src/com/android/settings/inputmethod/TrackpadGoBackPreferenceController.java b/src/com/android/settings/inputmethod/TrackpadGoBackPreferenceController.java
index 017689d..36fb0c0 100644
--- a/src/com/android/settings/inputmethod/TrackpadGoBackPreferenceController.java
+++ b/src/com/android/settings/inputmethod/TrackpadGoBackPreferenceController.java
@@ -16,18 +16,24 @@
 
 package com.android.settings.inputmethod;
 
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.provider.Settings;
 
 import com.android.settings.R;
 import com.android.settings.core.TogglePreferenceController;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 public class TrackpadGoBackPreferenceController extends TogglePreferenceController {
 
     private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_BACK_ENABLED;
 
+    private MetricsFeatureProvider mMetricsFeatureProvider;
+
     public TrackpadGoBackPreferenceController(Context context, String key) {
         super(context, key);
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
@@ -38,6 +44,8 @@
     @Override
     public boolean setChecked(boolean isChecked) {
         Settings.Secure.putInt(mContext.getContentResolver(), SETTING_KEY, isChecked ? 1 : 0);
+        mMetricsFeatureProvider.action(
+                mContext, SettingsEnums.ACTION_GESTURE_GO_BACK_CHANGED, isChecked);
         return true;
     }
 
diff --git a/src/com/android/settings/inputmethod/TrackpadGoHomePreferenceController.java b/src/com/android/settings/inputmethod/TrackpadGoHomePreferenceController.java
index 18699e3..dbc706e 100644
--- a/src/com/android/settings/inputmethod/TrackpadGoHomePreferenceController.java
+++ b/src/com/android/settings/inputmethod/TrackpadGoHomePreferenceController.java
@@ -16,18 +16,24 @@
 
 package com.android.settings.inputmethod;
 
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.provider.Settings;
 
 import com.android.settings.R;
 import com.android.settings.core.TogglePreferenceController;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 public class TrackpadGoHomePreferenceController extends TogglePreferenceController {
 
     private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_HOME_ENABLED;
 
+    private MetricsFeatureProvider mMetricsFeatureProvider;
+
     public TrackpadGoHomePreferenceController(Context context, String key) {
         super(context, key);
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
@@ -38,6 +44,8 @@
     @Override
     public boolean setChecked(boolean isChecked) {
         Settings.Secure.putInt(mContext.getContentResolver(), SETTING_KEY, isChecked ? 1 : 0);
+        mMetricsFeatureProvider.action(
+                mContext, SettingsEnums.ACTION_GESTURE_GO_HOME_CHANGED, isChecked);
         return true;
     }
 
diff --git a/src/com/android/settings/inputmethod/TrackpadNotificationsPreferenceController.java b/src/com/android/settings/inputmethod/TrackpadNotificationsPreferenceController.java
index 21f04a3..d430e4d 100644
--- a/src/com/android/settings/inputmethod/TrackpadNotificationsPreferenceController.java
+++ b/src/com/android/settings/inputmethod/TrackpadNotificationsPreferenceController.java
@@ -16,18 +16,24 @@
 
 package com.android.settings.inputmethod;
 
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.provider.Settings;
 
 import com.android.settings.R;
 import com.android.settings.core.TogglePreferenceController;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 public class TrackpadNotificationsPreferenceController extends TogglePreferenceController {
 
     private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_NOTIFICATION_ENABLED;
 
+    private MetricsFeatureProvider mMetricsFeatureProvider;
+
     public TrackpadNotificationsPreferenceController(Context context, String key) {
         super(context, key);
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
@@ -38,6 +44,8 @@
     @Override
     public boolean setChecked(boolean isChecked) {
         Settings.Secure.putInt(mContext.getContentResolver(), SETTING_KEY, isChecked ? 1 : 0);
+        mMetricsFeatureProvider.action(
+                mContext, SettingsEnums.ACTION_GESTURE_NOTIFICATION_CHANGED, isChecked);
         return true;
     }
 
diff --git a/src/com/android/settings/inputmethod/TrackpadPointerSpeedPreferenceController.java b/src/com/android/settings/inputmethod/TrackpadPointerSpeedPreferenceController.java
index 71b4119..d024546 100644
--- a/src/com/android/settings/inputmethod/TrackpadPointerSpeedPreferenceController.java
+++ b/src/com/android/settings/inputmethod/TrackpadPointerSpeedPreferenceController.java
@@ -16,20 +16,25 @@
 
 package com.android.settings.inputmethod;
 
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.hardware.input.InputSettings;
 
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.core.SliderPreferenceController;
+import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.widget.SeekBarPreference;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 public class TrackpadPointerSpeedPreferenceController extends SliderPreferenceController {
 
     private SeekBarPreference mPreference;
+    private MetricsFeatureProvider mMetricsFeatureProvider;
 
     public TrackpadPointerSpeedPreferenceController(Context context, String key) {
         super(context, key);
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
@@ -53,6 +58,8 @@
             return false;
         }
         InputSettings.setTouchpadPointerSpeed(mContext, position);
+        mMetricsFeatureProvider.action(
+                mContext, SettingsEnums.ACTION_GESTURE_POINTER_SPEED_CHANGED, position);
         return true;
     }
 
diff --git a/src/com/android/settings/inputmethod/TrackpadRecentAppsPreferenceController.java b/src/com/android/settings/inputmethod/TrackpadRecentAppsPreferenceController.java
index eab2b33..44a56e7 100644
--- a/src/com/android/settings/inputmethod/TrackpadRecentAppsPreferenceController.java
+++ b/src/com/android/settings/inputmethod/TrackpadRecentAppsPreferenceController.java
@@ -16,18 +16,24 @@
 
 package com.android.settings.inputmethod;
 
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.provider.Settings;
 
 import com.android.settings.R;
 import com.android.settings.core.TogglePreferenceController;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 public class TrackpadRecentAppsPreferenceController extends TogglePreferenceController {
 
     private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_OVERVIEW_ENABLED;
 
+    private MetricsFeatureProvider mMetricsFeatureProvider;
+
     public TrackpadRecentAppsPreferenceController(Context context, String key) {
         super(context, key);
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
@@ -38,6 +44,8 @@
     @Override
     public boolean setChecked(boolean isChecked) {
         Settings.Secure.putInt(mContext.getContentResolver(), SETTING_KEY, isChecked ? 1 : 0);
+        mMetricsFeatureProvider.action(
+                mContext, SettingsEnums.ACTION_GESTURE_RECENT_APPS_CHANGED, isChecked);
         return true;
     }
 
diff --git a/src/com/android/settings/inputmethod/TrackpadReverseScrollingPreferenceController.java b/src/com/android/settings/inputmethod/TrackpadReverseScrollingPreferenceController.java
index 10d3013..042126d 100644
--- a/src/com/android/settings/inputmethod/TrackpadReverseScrollingPreferenceController.java
+++ b/src/com/android/settings/inputmethod/TrackpadReverseScrollingPreferenceController.java
@@ -16,16 +16,22 @@
 
 package com.android.settings.inputmethod;
 
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.hardware.input.InputSettings;
 
 import com.android.settings.R;
 import com.android.settings.core.TogglePreferenceController;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 public class TrackpadReverseScrollingPreferenceController extends TogglePreferenceController {
 
+    private MetricsFeatureProvider mMetricsFeatureProvider;
+
     public TrackpadReverseScrollingPreferenceController(Context context, String key) {
         super(context, key);
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
@@ -36,6 +42,8 @@
     @Override
     public boolean setChecked(boolean isChecked) {
         InputSettings.setTouchpadNaturalScrolling(mContext, !isChecked);
+        mMetricsFeatureProvider.action(
+                mContext, SettingsEnums.ACTION_GESTURE_REVERSE_SCROLLING_CHANGED, isChecked);
         return true;
     }
 
diff --git a/src/com/android/settings/inputmethod/TrackpadSwitchAppsPreferenceController.java b/src/com/android/settings/inputmethod/TrackpadSwitchAppsPreferenceController.java
index 84de64e..2b11411 100644
--- a/src/com/android/settings/inputmethod/TrackpadSwitchAppsPreferenceController.java
+++ b/src/com/android/settings/inputmethod/TrackpadSwitchAppsPreferenceController.java
@@ -16,18 +16,24 @@
 
 package com.android.settings.inputmethod;
 
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.provider.Settings;
 
 import com.android.settings.R;
 import com.android.settings.core.TogglePreferenceController;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 public class TrackpadSwitchAppsPreferenceController extends TogglePreferenceController {
 
     private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_QUICK_SWITCH_ENABLED;
 
+    private MetricsFeatureProvider mMetricsFeatureProvider;
+
     public TrackpadSwitchAppsPreferenceController(Context context, String key) {
         super(context, key);
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
@@ -38,6 +44,8 @@
     @Override
     public boolean setChecked(boolean isChecked) {
         Settings.Secure.putInt(mContext.getContentResolver(), SETTING_KEY, isChecked ? 1 : 0);
+        mMetricsFeatureProvider.action(
+                mContext, SettingsEnums.ACTION_GESTURE_SWITCH_APPS_CHANGED, isChecked);
         return true;
     }
 
diff --git a/src/com/android/settings/inputmethod/TrackpadTapToClickPreferenceController.java b/src/com/android/settings/inputmethod/TrackpadTapToClickPreferenceController.java
index 8655307..f78c81e 100644
--- a/src/com/android/settings/inputmethod/TrackpadTapToClickPreferenceController.java
+++ b/src/com/android/settings/inputmethod/TrackpadTapToClickPreferenceController.java
@@ -16,16 +16,22 @@
 
 package com.android.settings.inputmethod;
 
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.hardware.input.InputSettings;
 
 import com.android.settings.R;
 import com.android.settings.core.TogglePreferenceController;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 public class TrackpadTapToClickPreferenceController extends TogglePreferenceController {
 
+    private MetricsFeatureProvider mMetricsFeatureProvider;
+
     public TrackpadTapToClickPreferenceController(Context context, String key) {
         super(context, key);
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
@@ -36,6 +42,8 @@
     @Override
     public boolean setChecked(boolean isChecked) {
         InputSettings.setTouchpadTapToClick(mContext, isChecked);
+        mMetricsFeatureProvider.action(
+                mContext, SettingsEnums.ACTION_GESTURE_TAP_TO_CLICK_CHANGED, isChecked);
         return true;
     }
 
diff --git a/src/com/android/settings/localepicker/AppLocalePickerActivity.java b/src/com/android/settings/localepicker/AppLocalePickerActivity.java
index 194a08f..6706c6d 100644
--- a/src/com/android/settings/localepicker/AppLocalePickerActivity.java
+++ b/src/com/android/settings/localepicker/AppLocalePickerActivity.java
@@ -23,6 +23,7 @@
 import android.app.NotificationChannel;
 import android.app.NotificationManager;
 import android.app.PendingIntent;
+import android.app.settings.SettingsEnums;
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.net.Uri;
@@ -45,12 +46,18 @@
 import com.android.settings.applications.AppLocaleUtil;
 import com.android.settings.applications.appinfo.AppLocaleDetails;
 import com.android.settings.core.SettingsBaseActivity;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 public class AppLocalePickerActivity extends SettingsBaseActivity
         implements LocalePickerWithRegion.LocaleSelectedListener, MenuItem.OnActionExpandListener {
     private static final String TAG = AppLocalePickerActivity.class.getSimpleName();
     private static final String CHANNEL_ID_SUGGESTION = "suggestion";
     private static final String CHANNEL_ID_SUGGESTION_TO_USER = "Locale suggestion";
+    private static final int SIM_LOCALE = 1 << 0;
+    private static final int SYSTEM_LOCALE = 1 << 1;
+    private static final int APP_LOCALE = 1 << 2;
+    private static final int IME_LOCALE = 1 << 3;
     static final String EXTRA_APP_LOCALE = "app_locale";
     static final String EXTRA_NOTIFICATION_ID = "notification_id";
 
@@ -59,6 +66,7 @@
     private AppLocaleDetails mAppLocaleDetails;
     private View mAppLocaleDetailContainer;
     private NotificationController mNotificationController;
+    private MetricsFeatureProvider mMetricsFeatureProvider;
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
@@ -84,6 +92,7 @@
 
         setTitle(R.string.app_locale_picker_title);
         getActionBar().setDisplayHomeAsUpEnabled(true);
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         mNotificationController = NotificationController.getInstance(this);
 
         mLocalePickerWithRegion = LocalePickerWithRegion.createLanguagePicker(
@@ -113,6 +122,7 @@
         if (localeInfo == null || localeInfo.getLocale() == null || localeInfo.isSystemLocale()) {
             setAppDefaultLocale("");
         } else {
+            logLocaleSource(localeInfo);
             setAppDefaultLocale(localeInfo.getLocale().toLanguageTag());
             broadcastAppLocaleChange(localeInfo);
         }
@@ -268,4 +278,32 @@
 
         return false;
     }
+
+    private void logLocaleSource(LocaleStore.LocaleInfo localeInfo) {
+        if (!localeInfo.isSuggested() || localeInfo.isAppCurrentLocale()) {
+            return;
+        }
+        int localeSource = 0;
+        if (hasSuggestionType(localeInfo,
+                LocaleStore.LocaleInfo.SUGGESTION_TYPE_SYSTEM_AVAILABLE_LANGUAGE)) {
+            localeSource |= SYSTEM_LOCALE;
+        }
+        if (hasSuggestionType(localeInfo,
+                LocaleStore.LocaleInfo.SUGGESTION_TYPE_OTHER_APP_LANGUAGE)) {
+            localeSource |= APP_LOCALE;
+        }
+        if (hasSuggestionType(localeInfo, LocaleStore.LocaleInfo.SUGGESTION_TYPE_IME_LANGUAGE)) {
+            localeSource |= IME_LOCALE;
+        }
+        if (hasSuggestionType(localeInfo, LocaleStore.LocaleInfo.SUGGESTION_TYPE_SIM)) {
+            localeSource |= SIM_LOCALE;
+        }
+        mMetricsFeatureProvider.action(this,
+                SettingsEnums.ACTION_CHANGE_APP_LANGUAGE_FROM_SUGGESTED, localeSource);
+    }
+
+    private static boolean hasSuggestionType(LocaleStore.LocaleInfo localeInfo,
+            int suggestionType) {
+        return localeInfo.isSuggestionOfType(suggestionType);
+    }
 }
diff --git a/src/com/android/settings/localepicker/LocaleDragAndDropAdapter.java b/src/com/android/settings/localepicker/LocaleDragAndDropAdapter.java
index bfe0749..2fcb06a 100644
--- a/src/com/android/settings/localepicker/LocaleDragAndDropAdapter.java
+++ b/src/com/android/settings/localepicker/LocaleDragAndDropAdapter.java
@@ -16,6 +16,7 @@
 
 package com.android.settings.localepicker;
 
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.graphics.Canvas;
 import android.os.Bundle;
@@ -38,6 +39,7 @@
 import com.android.internal.app.LocalePicker;
 import com.android.internal.app.LocaleStore;
 import com.android.settings.R;
+import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.shortcut.ShortcutsUpdateTask;
 
 import java.text.NumberFormat;
@@ -192,6 +194,9 @@
     @VisibleForTesting
     protected void setCheckBoxDescription(LocaleDragCell dragCell, CheckBox checkbox,
             boolean isChecked) {
+        if (!mRemoveMode) {
+            return;
+        }
         CharSequence checkedStatus = mContext.getText(
                 isChecked ? com.android.internal.R.string.checked
                         : com.android.internal.R.string.not_checked);
@@ -225,6 +230,12 @@
                     "Negative position in onItemMove %d -> %d", fromPosition, toPosition));
         }
 
+        if (fromPosition != toPosition) {
+            FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()
+                    .action(mContext, SettingsEnums.ACTION_REORDER_LANGUAGE,
+                            mDragLocale.getLocale().toLanguageTag() + " move to " + toPosition);
+        }
+
         notifyItemChanged(fromPosition); // to update the numbers
         notifyItemChanged(toPosition);
         notifyItemMoved(fromPosition, toPosition);
@@ -263,6 +274,9 @@
         for (int i = itemCount - 1; i >= 0; i--) {
             localeInfo = mFeedItemList.get(i);
             if (localeInfo.getChecked()) {
+                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()
+                        .action(mContext, SettingsEnums.ACTION_REMOVE_LANGUAGE,
+                                localeInfo.getLocale().toLanguageTag());
                 mFeedItemList.remove(i);
             }
         }
diff --git a/src/com/android/settings/localepicker/LocaleHelperPreferenceController.java b/src/com/android/settings/localepicker/LocaleHelperPreferenceController.java
index a639c9d..b962b9e 100644
--- a/src/com/android/settings/localepicker/LocaleHelperPreferenceController.java
+++ b/src/com/android/settings/localepicker/LocaleHelperPreferenceController.java
@@ -16,6 +16,7 @@
 
 package com.android.settings.localepicker;
 
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.content.Intent;
 import android.util.Log;
@@ -24,8 +25,10 @@
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
+import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.HelpUtils;
 import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 import com.android.settingslib.widget.FooterPreference;
 
 /**
@@ -36,8 +39,11 @@
 
     private static final String KEY_FOOTER_LANGUAGE_PICKER = "footer_languages_picker";
 
+    private final MetricsFeatureProvider mMetricsFeatureProvider;
+
     public LocaleHelperPreferenceController(Context context) {
         super(context);
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
@@ -72,6 +78,7 @@
                 mContext.getString(R.string.link_locale_picker_footer_learn_more),
                 mContext.getClass().getName());
         if (intent != null) {
+            mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_LANGUAGES_LEARN_MORE);
             mContext.startActivity(intent);
         } else {
             Log.w(TAG, "HelpIntent is null");
diff --git a/src/com/android/settings/localepicker/LocaleLinearLayoutManager.java b/src/com/android/settings/localepicker/LocaleLinearLayoutManager.java
index 8795bf9..59a5fb0 100644
--- a/src/com/android/settings/localepicker/LocaleLinearLayoutManager.java
+++ b/src/com/android/settings/localepicker/LocaleLinearLayoutManager.java
@@ -43,6 +43,7 @@
 public class LocaleLinearLayoutManager extends LinearLayoutManager {
     private final LocaleDragAndDropAdapter mAdapter;
     private final Context mContext;
+    private LocaleListEditor mLocaleListEditor;
 
     private final AccessibilityNodeInfoCompat.AccessibilityActionCompat mActionMoveUp;
     private final AccessibilityNodeInfoCompat.AccessibilityActionCompat mActionMoveDown;
@@ -147,8 +148,12 @@
         }
 
         if (result) {
-            mAdapter.doTheUpdate();
+            mLocaleListEditor.showConfirmDialog(false, mAdapter.getFeedItemList().get(0));
         }
         return result;
     }
+
+    public void setLocaleListEditor(LocaleListEditor localeListEditor) {
+        mLocaleListEditor = localeListEditor;
+    }
 }
diff --git a/src/com/android/settings/localepicker/LocaleListEditor.java b/src/com/android/settings/localepicker/LocaleListEditor.java
index bdda549..59a39c8 100644
--- a/src/com/android/settings/localepicker/LocaleListEditor.java
+++ b/src/com/android/settings/localepicker/LocaleListEditor.java
@@ -224,6 +224,8 @@
             localeInfo = mayAppendUnicodeTags(localeInfo, preferencesTags);
             mAdapter.addLocale(localeInfo);
             updateVisibilityOfRemoveMenu();
+            mMetricsFeatureProvider.action(getContext(), SettingsEnums.ACTION_ADD_LANGUAGE,
+                    localeInfo.getLocale().toLanguageTag());
         } else if (requestCode == DIALOG_CONFIRM_SYSTEM_DEFAULT) {
             localeInfo = mAdapter.getFeedItemList().get(0);
             if (resultCode == Activity.RESULT_OK) {
@@ -470,6 +472,7 @@
     private void configureDragAndDrop(LayoutPreference layout) {
         final RecyclerView list = layout.findViewById(R.id.dragList);
         final LocaleLinearLayoutManager llm = new LocaleLinearLayoutManager(getContext(), mAdapter);
+        llm.setLocaleListEditor(this);
         llm.setAutoMeasureEnabled(true);
         list.setLayoutManager(llm);
         list.setHasFixedSize(true);
@@ -503,7 +506,7 @@
         return false;
     }
 
-    private void showConfirmDialog(boolean isFirstRemoved, LocaleStore.LocaleInfo localeInfo) {
+    public void showConfirmDialog(boolean isFirstRemoved, LocaleStore.LocaleInfo localeInfo) {
         Locale currentSystemLocale = LocalePicker.getLocales().get(0);
         if (!localeInfo.getLocale().equals(currentSystemLocale)) {
             final LocaleDialogFragment localeDialogFragment =
diff --git a/src/com/android/settings/localepicker/LocaleNotificationDataManager.java b/src/com/android/settings/localepicker/LocaleNotificationDataManager.java
index 09d6280..4d948f1 100644
--- a/src/com/android/settings/localepicker/LocaleNotificationDataManager.java
+++ b/src/com/android/settings/localepicker/LocaleNotificationDataManager.java
@@ -31,7 +31,7 @@
  * information.
  */
 public class LocaleNotificationDataManager {
-    private static final String LOCALE_NOTIFICATION = "locale_notification";
+    public static final String LOCALE_NOTIFICATION = "locale_notification";
     private Context mContext;
 
     /**
diff --git a/src/com/android/settings/location/BluetoothScanningMainSwitchPreferenceController.java b/src/com/android/settings/location/BluetoothScanningMainSwitchPreferenceController.java
index 78e3184..c975a41 100644
--- a/src/com/android/settings/location/BluetoothScanningMainSwitchPreferenceController.java
+++ b/src/com/android/settings/location/BluetoothScanningMainSwitchPreferenceController.java
@@ -16,22 +16,22 @@
 package com.android.settings.location;
 
 import android.content.Context;
-import android.provider.Settings;
-import android.widget.Switch;
 import android.os.UserManager;
+import android.provider.Settings;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
 
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
 import com.android.settings.core.TogglePreferenceController;
 import com.android.settingslib.widget.MainSwitchPreference;
-import com.android.settingslib.widget.OnMainSwitchChangeListener;
 
 /**
  * Preference controller for Bluetooth scanning main switch.
  */
 public class BluetoothScanningMainSwitchPreferenceController extends TogglePreferenceController
-        implements OnMainSwitchChangeListener {
+        implements OnCheckedChangeListener {
 
     private static final String KEY_BLUETOOTH_SCANNING_SWITCH = "bluetooth_always_scanning_switch";
     private final UserManager mUserManager;
@@ -78,7 +78,7 @@
     }
 
     @Override
-    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         if (isChecked != isChecked()) {
             setChecked(isChecked);
         }
diff --git a/src/com/android/settings/location/BluetoothScanningPreferenceController.java b/src/com/android/settings/location/BluetoothScanningPreferenceController.java
index d16e1e5..20447c1 100644
--- a/src/com/android/settings/location/BluetoothScanningPreferenceController.java
+++ b/src/com/android/settings/location/BluetoothScanningPreferenceController.java
@@ -17,7 +17,7 @@
 import android.provider.Settings;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.core.AbstractPreferenceController;
@@ -43,7 +43,7 @@
 
     @Override
     public void updateState(Preference preference) {
-        ((SwitchPreference) preference).setChecked(
+        ((TwoStatePreference) preference).setChecked(
                 Settings.Global.getInt(mContext.getContentResolver(),
                         Settings.Global.BLE_SCAN_ALWAYS_AVAILABLE, 0) == 1);
     }
@@ -53,7 +53,7 @@
         if (KEY_BLUETOOTH_SCAN_ALWAYS_AVAILABLE.equals(preference.getKey())) {
             Settings.Global.putInt(mContext.getContentResolver(),
                     Settings.Global.BLE_SCAN_ALWAYS_AVAILABLE,
-                    ((SwitchPreference) preference).isChecked() ? 1 : 0);
+                    ((TwoStatePreference) preference).isChecked() ? 1 : 0);
             return true;
         }
         return false;
diff --git a/src/com/android/settings/location/LocationSwitchBarController.java b/src/com/android/settings/location/LocationSwitchBarController.java
index b150b1d..1e415d6 100644
--- a/src/com/android/settings/location/LocationSwitchBarController.java
+++ b/src/com/android/settings/location/LocationSwitchBarController.java
@@ -16,7 +16,8 @@
 import android.content.Context;
 import android.os.UserHandle;
 import android.os.UserManager;
-import android.widget.Switch;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
 
 import com.android.settings.widget.SettingsMainSwitchBar;
 import com.android.settingslib.RestrictedLockUtils;
@@ -24,12 +25,11 @@
 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.widget.OnMainSwitchChangeListener;
 
 /**
  * The switch controller for the location.
  */
-public class LocationSwitchBarController implements OnMainSwitchChangeListener,
+public class LocationSwitchBarController implements OnCheckedChangeListener,
         LocationEnabler.LocationModeChangeListener, LifecycleObserver, OnStart, OnStop {
 
     private final SettingsMainSwitchBar mSwitchBar;
@@ -100,7 +100,7 @@
      * Listens to the state change of the location primary switch.
      */
     @Override
-    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         mLocationEnabler.setLocationEnabled(isChecked);
     }
 }
diff --git a/src/com/android/settings/location/WifiScanningMainSwitchPreferenceController.java b/src/com/android/settings/location/WifiScanningMainSwitchPreferenceController.java
index e22b0a0..9f19a70 100644
--- a/src/com/android/settings/location/WifiScanningMainSwitchPreferenceController.java
+++ b/src/com/android/settings/location/WifiScanningMainSwitchPreferenceController.java
@@ -17,21 +17,21 @@
 
 import android.content.Context;
 import android.net.wifi.WifiManager;
-import android.widget.Switch;
 import android.os.UserManager;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
 
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
 import com.android.settings.core.TogglePreferenceController;
 import com.android.settingslib.widget.MainSwitchPreference;
-import com.android.settingslib.widget.OnMainSwitchChangeListener;
 
 /**
  * Preference controller for Wi-Fi scanning main switch.
  */
 public class WifiScanningMainSwitchPreferenceController extends TogglePreferenceController
-        implements OnMainSwitchChangeListener {
+        implements OnCheckedChangeListener {
 
     private static final String KEY_WIFI_SCANNING_SWITCH = "wifi_always_scanning_switch";
     private final WifiManager mWifiManager;
@@ -79,7 +79,7 @@
     }
 
     @Override
-    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         if (isChecked != isChecked()) {
             setChecked(isChecked);
         }
diff --git a/src/com/android/settings/location/WifiScanningPreferenceController.java b/src/com/android/settings/location/WifiScanningPreferenceController.java
index 2e393a2..f438ebb 100644
--- a/src/com/android/settings/location/WifiScanningPreferenceController.java
+++ b/src/com/android/settings/location/WifiScanningPreferenceController.java
@@ -17,7 +17,7 @@
 import android.net.wifi.WifiManager;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.core.AbstractPreferenceController;
@@ -45,13 +45,13 @@
 
     @Override
     public void updateState(Preference preference) {
-        ((SwitchPreference) preference).setChecked(mWifiManager.isScanAlwaysAvailable());
+        ((TwoStatePreference) preference).setChecked(mWifiManager.isScanAlwaysAvailable());
     }
 
     @Override
     public boolean handlePreferenceTreeClick(Preference preference) {
         if (KEY_WIFI_SCAN_ALWAYS_AVAILABLE.equals(preference.getKey())) {
-            mWifiManager.setScanAlwaysAvailable(((SwitchPreference) preference).isChecked());
+            mWifiManager.setScanAlwaysAvailable(((TwoStatePreference) preference).isChecked());
             return true;
         }
         return false;
diff --git a/src/com/android/settings/network/AirplaneModePreferenceController.java b/src/com/android/settings/network/AirplaneModePreferenceController.java
index 5b4ce1b..b3fc517 100644
--- a/src/com/android/settings/network/AirplaneModePreferenceController.java
+++ b/src/com/android/settings/network/AirplaneModePreferenceController.java
@@ -30,7 +30,7 @@
 import androidx.fragment.app.Fragment;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.AirplaneModeEnabler;
 import com.android.settings.R;
@@ -58,7 +58,7 @@
 
     private Fragment mFragment;
     private AirplaneModeEnabler mAirplaneModeEnabler;
-    private SwitchPreference mAirplaneModePreference;
+    private TwoStatePreference mAirplaneModePreference;
 
     public AirplaneModePreferenceController(Context context, String key) {
         super(context, key);
diff --git a/src/com/android/settings/network/BluetoothWiFiResetPreferenceController.java b/src/com/android/settings/network/BluetoothWiFiResetPreferenceController.java
deleted file mode 100644
index f0f5d73..0000000
--- a/src/com/android/settings/network/BluetoothWiFiResetPreferenceController.java
+++ /dev/null
@@ -1,188 +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.network;
-
-import android.app.ProgressDialog;
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.os.Looper;
-import android.text.TextUtils;
-import android.util.Log;
-import android.widget.Toast;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.appcompat.app.AlertDialog;
-import androidx.preference.Preference;
-
-import com.android.settings.R;
-import com.android.settings.ResetNetworkRequest;
-import com.android.settings.core.BasePreferenceController;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
-
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.atomic.AtomicReference;
-
-/**
- * This is to show a preference regarding resetting Bluetooth and Wi-Fi.
- */
-public class BluetoothWiFiResetPreferenceController extends BasePreferenceController
-        implements DialogInterface.OnClickListener, DialogInterface.OnDismissListener {
-
-    private static final String TAG = "BtWiFiResetPreferenceController";
-
-    private final NetworkResetRestrictionChecker mRestrictionChecker;
-
-    private DialogInterface mResetDialog;
-    private ProgressDialog mProgressDialog;
-    private ExecutorService mExecutorService;
-
-    /**
-     * Constructer.
-     * @param context Context
-     * @param preferenceKey is the key for Preference
-     */
-    public BluetoothWiFiResetPreferenceController(Context context, String preferenceKey) {
-        super(context, preferenceKey);
-
-        // restriction check
-        mRestrictionChecker = new NetworkResetRestrictionChecker(context);
-    }
-
-    @Override
-    public int getAvailabilityStatus() {
-        return mRestrictionChecker.hasUserRestriction() ?
-                CONDITIONALLY_UNAVAILABLE : AVAILABLE;
-    }
-
-    @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        if (!TextUtils.equals(preference.getKey(), getPreferenceKey())) {
-            return false;
-        }
-        buildResetDialog(preference);
-        return true;
-    }
-
-    /**
-     * This is a pop-up dialog showing detail of this reset option.
-     */
-    void buildResetDialog(Preference preference) {
-        if (mResetDialog != null) {
-            return;
-        }
-        mResetDialog = new AlertDialog.Builder(mContext)
-                .setTitle(R.string.reset_bluetooth_wifi_title)
-                .setMessage(R.string.reset_bluetooth_wifi_desc)
-                .setPositiveButton(R.string.reset_bluetooth_wifi_button_text, this)
-                .setNegativeButton(R.string.cancel, null /* OnClickListener */)
-                .setOnDismissListener(this)
-                .show();
-    }
-
-    public void onDismiss(DialogInterface dialog) {
-        if (mResetDialog == dialog) {
-            mResetDialog = null;
-        }
-    }
-
-    /**
-     * User pressed confirmation button, for starting reset operation.
-     */
-    public void onClick(DialogInterface dialog, int which) {
-        if (mResetDialog != dialog) {
-            return;
-        }
-
-        // User confirm the reset operation
-        MetricsFeatureProvider provider = FeatureFactory.getFeatureFactory()
-                .getMetricsFeatureProvider();
-        provider.action(mContext, SettingsEnums.RESET_BLUETOOTH_WIFI_CONFIRM, true);
-
-        // Non-cancelable progress dialog
-        mProgressDialog = getProgressDialog(mContext);
-        mProgressDialog.show();
-
-        // Run reset in background thread
-        mExecutorService = Executors.newSingleThreadExecutor();
-        mExecutorService.execute(() -> {
-            final AtomicReference<Exception> exceptionDuringReset =
-                    new AtomicReference<Exception>();
-            try {
-                resetOperation().run();
-            } catch (Exception exception) {
-                exceptionDuringReset.set(exception);
-            }
-            mContext.getMainExecutor().execute(() -> endOfReset(exceptionDuringReset.get()));
-        });
-    }
-
-    @VisibleForTesting
-    protected 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;
-    }
-
-    @VisibleForTesting
-    protected Runnable resetOperation() throws Exception {
-        if (SubscriptionUtil.isSimHardwareVisible(mContext)) {
-            return new ResetNetworkRequest(
-                    ResetNetworkRequest.RESET_WIFI_MANAGER |
-                    ResetNetworkRequest.RESET_WIFI_P2P_MANAGER |
-                    ResetNetworkRequest.RESET_BLUETOOTH_MANAGER)
-                .toResetNetworkOperationBuilder(mContext, Looper.getMainLooper())
-                .build();
-        }
-
-        /**
-         * For device without SIMs visible to the user
-         */
-        return new ResetNetworkRequest(
-                ResetNetworkRequest.RESET_CONNECTIVITY_MANAGER |
-                ResetNetworkRequest.RESET_VPN_MANAGER |
-                ResetNetworkRequest.RESET_WIFI_MANAGER |
-                ResetNetworkRequest.RESET_WIFI_P2P_MANAGER |
-                ResetNetworkRequest.RESET_BLUETOOTH_MANAGER)
-            .toResetNetworkOperationBuilder(mContext, Looper.getMainLooper())
-            .resetTelephonyAndNetworkPolicyManager(ResetNetworkRequest.ALL_SUBSCRIPTION_ID)
-            .build();
-    }
-
-    @VisibleForTesting
-    protected void endOfReset(Exception exceptionDuringReset) {
-        if (mExecutorService != null) {
-            mExecutorService.shutdown();
-            mExecutorService = null;
-        }
-        if (mProgressDialog != null) {
-            mProgressDialog.dismiss();
-            mProgressDialog = null;
-        }
-        if (exceptionDuringReset == null) {
-            Toast.makeText(mContext, R.string.reset_bluetooth_wifi_complete_toast,
-                    Toast.LENGTH_SHORT).show();
-        } else {
-            Log.e(TAG, "Exception during reset", exceptionDuringReset);
-        }
-    }
-}
diff --git a/src/com/android/settings/network/BluetoothWiFiResetPreferenceController.kt b/src/com/android/settings/network/BluetoothWiFiResetPreferenceController.kt
new file mode 100644
index 0000000..2047ed9
--- /dev/null
+++ b/src/com/android/settings/network/BluetoothWiFiResetPreferenceController.kt
@@ -0,0 +1,126 @@
+/*
+ * 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.app.settings.SettingsEnums
+import android.content.Context
+import android.os.Looper
+import android.os.UserManager
+import android.util.Log
+import android.widget.Toast
+import androidx.annotation.VisibleForTesting
+import androidx.compose.material3.Text
+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.ResetNetworkRequest
+import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
+import com.android.settings.spa.preference.ComposePreferenceController
+import com.android.settingslib.spa.widget.dialog.AlertDialogButton
+import com.android.settingslib.spa.widget.dialog.rememberAlertDialogPresenter
+import com.android.settingslib.spa.widget.preference.PreferenceModel
+import com.android.settingslib.spaprivileged.model.enterprise.Restrictions
+import com.android.settingslib.spaprivileged.template.preference.RestrictedPreference
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+
+/**
+ * This is to show a preference regarding resetting Bluetooth and Wi-Fi.
+ */
+class BluetoothWiFiResetPreferenceController(context: Context, preferenceKey: String) :
+    ComposePreferenceController(context, preferenceKey) {
+
+    private val restrictionChecker = NetworkResetRestrictionChecker(context)
+
+    override fun getAvailabilityStatus() =
+        if (restrictionChecker.hasUserRestriction()) CONDITIONALLY_UNAVAILABLE else AVAILABLE
+
+    @Composable
+    override fun Content() {
+        val coroutineScope = rememberCoroutineScope()
+        val dialogPresenter = rememberAlertDialogPresenter(
+            confirmButton = AlertDialogButton(
+                text = stringResource(R.string.reset_bluetooth_wifi_button_text),
+            ) { reset(coroutineScope) },
+            dismissButton = AlertDialogButton(text = stringResource(R.string.cancel)),
+            title = stringResource(R.string.reset_bluetooth_wifi_title),
+        ) {
+            Text(stringResource(R.string.reset_bluetooth_wifi_desc))
+        }
+
+        RestrictedPreference(
+            model = object : PreferenceModel {
+                override val title = stringResource(R.string.reset_bluetooth_wifi_title)
+                override val onClick = dialogPresenter::open
+            },
+            restrictions = Restrictions(keys = listOf(UserManager.DISALLOW_NETWORK_RESET)),
+        )
+    }
+
+    /**
+     * User pressed confirmation button, for starting reset operation.
+     */
+    private fun reset(coroutineScope: CoroutineScope) {
+        // User confirm the reset operation
+        featureFactory.metricsFeatureProvider
+            .action(mContext, SettingsEnums.RESET_BLUETOOTH_WIFI_CONFIRM, true)
+
+        // Run reset in background thread
+        coroutineScope.launch {
+            try {
+                withContext(Dispatchers.Default) {
+                    resetOperation().run()
+                }
+            } catch (e: Exception) {
+                Log.e(TAG, "Exception during reset", e)
+                return@launch
+            }
+            Toast.makeText(
+                mContext,
+                R.string.reset_bluetooth_wifi_complete_toast,
+                Toast.LENGTH_SHORT,
+            ).show()
+        }
+    }
+
+    @VisibleForTesting
+    fun resetOperation(): Runnable = if (SubscriptionUtil.isSimHardwareVisible(mContext)) {
+        ResetNetworkRequest(
+            ResetNetworkRequest.RESET_WIFI_MANAGER or
+                ResetNetworkRequest.RESET_WIFI_P2P_MANAGER or
+                ResetNetworkRequest.RESET_BLUETOOTH_MANAGER
+        )
+            .toResetNetworkOperationBuilder(mContext, Looper.getMainLooper())
+    } else {  // For device without SIMs visible to the user
+        ResetNetworkRequest(
+            ResetNetworkRequest.RESET_CONNECTIVITY_MANAGER or
+                ResetNetworkRequest.RESET_VPN_MANAGER or
+                ResetNetworkRequest.RESET_WIFI_MANAGER or
+                ResetNetworkRequest.RESET_WIFI_P2P_MANAGER or
+                ResetNetworkRequest.RESET_BLUETOOTH_MANAGER
+        )
+            .toResetNetworkOperationBuilder(mContext, Looper.getMainLooper())
+            .resetTelephonyAndNetworkPolicyManager(ResetNetworkRequest.ALL_SUBSCRIPTION_ID)
+    }.build()
+
+    private companion object {
+        private const val TAG = "BluetoothWiFiResetPref"
+    }
+}
diff --git a/src/com/android/settings/network/EnableMultiSimSidecar.java b/src/com/android/settings/network/EnableMultiSimSidecar.java
index aefd55f..6bc38ef 100644
--- a/src/com/android/settings/network/EnableMultiSimSidecar.java
+++ b/src/com/android/settings/network/EnableMultiSimSidecar.java
@@ -171,8 +171,11 @@
         }
         int activePorts = 0;
         for (UiccSlotInfo slotInfo : slotsInfo) {
+            if (slotInfo == null) {
+                continue;
+            }
             for (UiccPortInfo portInfo : slotInfo.getPorts()) {
-                if (slotInfo != null && portInfo.isActive()) {
+                if (portInfo.isActive()) {
                     activePorts++;
                 }
             }
@@ -189,8 +192,11 @@
         }
         Set<Integer> activeRemovableLogicalSlotIds = new ArraySet<>();
         for (UiccSlotInfo info : infos) {
-            for (UiccPortInfo portInfo :info.getPorts()) {
-                if (info != null && portInfo.isActive() && info.isRemovable()) {
+            if (info == null) {
+                continue;
+            }
+            for (UiccPortInfo portInfo : info.getPorts()) {
+                if (portInfo.isActive() && info.isRemovable()) {
                     activeRemovableLogicalSlotIds.add(portInfo.getLogicalSlotIndex());
                 }
             }
diff --git a/src/com/android/settings/network/EraseEuiccDataController.java b/src/com/android/settings/network/EraseEuiccDataController.java
index 3dc3ab5..9892f0d 100644
--- a/src/com/android/settings/network/EraseEuiccDataController.java
+++ b/src/com/android/settings/network/EraseEuiccDataController.java
@@ -18,10 +18,12 @@
 
 import android.content.Context;
 import android.content.pm.PackageManager;
+import android.os.UserManager;
 import android.text.TextUtils;
 
 import androidx.preference.Preference;
 
+import com.android.settings.Utils;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settings.network.telephony.MobileNetworkUtils;
@@ -33,8 +35,11 @@
 public class EraseEuiccDataController extends BasePreferenceController {
     private ResetDashboardFragment mHostFragment;
 
+    private final UserManager mUm;
+
     public EraseEuiccDataController(Context context, String preferenceKey) {
         super(context, preferenceKey);
+        mUm = context.getSystemService(UserManager.class);
     }
 
     public void setFragment(ResetDashboardFragment hostFragment) {
@@ -52,10 +57,12 @@
 
     @Override
     public int getAvailabilityStatus() {
-        return SubscriptionUtil.isSimHardwareVisible(mContext) &&
-                (!MobileNetworkUtils.isMobileNetworkUserRestricted(mContext)) &&
-                mContext.getPackageManager().hasSystemFeature(
-                PackageManager.FEATURE_TELEPHONY_EUICC) ? AVAILABLE_UNSEARCHABLE
-                : UNSUPPORTED_ON_DEVICE;
+        boolean isAllowedUser = (mUm.isAdminUser() || Utils.isDemoUser(mContext))
+                && !MobileNetworkUtils.isMobileNetworkUserRestricted(mContext);
+        boolean hasEuiccFeature = mContext.getPackageManager().hasSystemFeature(
+                PackageManager.FEATURE_TELEPHONY_EUICC);
+        return SubscriptionUtil.isSimHardwareVisible(mContext)
+                && isAllowedUser
+                && hasEuiccFeature ? AVAILABLE_UNSEARCHABLE : UNSUPPORTED_ON_DEVICE;
     }
 }
diff --git a/src/com/android/settings/network/MobileDataEnabledFlow.kt b/src/com/android/settings/network/MobileDataEnabledFlow.kt
new file mode 100644
index 0000000..2342377
--- /dev/null
+++ b/src/com/android/settings/network/MobileDataEnabledFlow.kt
@@ -0,0 +1,43 @@
+/*
+ * 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): Flow<Unit> {
+    val flow = settingsGlobalChangeFlow(Settings.Global.MOBILE_DATA)
+    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/MobileDataEnabledListener.java b/src/com/android/settings/network/MobileDataEnabledListener.java
index b030823..f2d55ab 100644
--- a/src/com/android/settings/network/MobileDataEnabledListener.java
+++ b/src/com/android/settings/network/MobileDataEnabledListener.java
@@ -20,7 +20,12 @@
 import android.provider.Settings;
 import android.telephony.SubscriptionManager;
 
-/** Helper class to listen for changes in the enabled state of mobile data. */
+/**
+ *  Helper class to listen for changes in the enabled state of mobile data.
+ *
+ * @deprecated use {@link MobileDataEnabledFlowKt} instead
+ */
+@Deprecated
 public class MobileDataEnabledListener {
     private Context mContext;
     private Client mClient;
diff --git a/src/com/android/settings/network/MobileIconGroupExt.kt b/src/com/android/settings/network/MobileIconGroupExt.kt
new file mode 100644
index 0000000..0435ef0
--- /dev/null
+++ b/src/com/android/settings/network/MobileIconGroupExt.kt
@@ -0,0 +1,38 @@
+/*
+ * 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.telephony.SubscriptionManager
+import android.text.Html
+import com.android.settingslib.SignalIcon
+
+fun SignalIcon.MobileIconGroup.getSummaryForSub(context: Context, subId: Int): String =
+    when (dataContentDescription) {
+        0 -> ""
+        else -> {
+            SubscriptionManager.getResourcesForSubId(context, subId)
+                .getString(dataContentDescription)
+        }
+    }
+
+fun String.maybeToHtml(): CharSequence = when {
+    contains(HTML_TAG) -> Html.fromHtml(this, Html.FROM_HTML_MODE_LEGACY)
+    else -> this
+}
+
+private const val HTML_TAG = "</"
diff --git a/src/com/android/settings/network/MobileNetworkListFragment.java b/src/com/android/settings/network/MobileNetworkListFragment.java
deleted file mode 100644
index d7d241a..0000000
--- a/src/com/android/settings/network/MobileNetworkListFragment.java
+++ /dev/null
@@ -1,106 +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;
-
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-import android.os.UserManager;
-import android.provider.SearchIndexableResource;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.android.settings.R;
-import com.android.settings.dashboard.DashboardFragment;
-import com.android.settings.network.telephony.MobileNetworkUtils;
-import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settingslib.core.AbstractPreferenceController;
-import com.android.settingslib.search.SearchIndexable;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
-public class MobileNetworkListFragment extends DashboardFragment {
-    private static final String LOG_TAG = "NetworkListFragment";
-
-    static final String KEY_PREFERENCE_CATEGORY_SIM = "provider_model_sim_category";
-    private static final String KEY_ADD_SIM = "add_sim";
-
-    @Override
-    public void onResume() {
-        super.onResume();
-        // Disable the animation of the preference list
-        final RecyclerView prefListView = getListView();
-        if (prefListView != null) {
-            prefListView.setItemAnimator(null);
-        }
-
-        findPreference(KEY_ADD_SIM).setVisible(MobileNetworkUtils.showEuiccSettings(getContext()));
-    }
-
-    @Override
-    protected int getPreferenceScreenResId() {
-        return R.xml.network_provider_sims_list;
-    }
-
-    @Override
-    protected String getLogTag() {
-        return LOG_TAG;
-    }
-
-    @Override
-    public int getMetricsCategory() {
-        return SettingsEnums.MOBILE_NETWORK_LIST;
-    }
-
-    @Override
-    protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
-        final List<AbstractPreferenceController> controllers = new ArrayList<>();
-        if (!SubscriptionUtil.isSimHardwareVisible(getContext())) {
-            finish();
-            return controllers;
-        }
-
-        NetworkProviderSimsCategoryController simCategoryPrefCtrl =
-                new NetworkProviderSimsCategoryController(context, KEY_PREFERENCE_CATEGORY_SIM,
-                        getSettingsLifecycle(), this);
-        controllers.add(simCategoryPrefCtrl);
-
-        return controllers;
-    }
-
-    public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
-                        boolean enabled) {
-                    final ArrayList<SearchIndexableResource> result = new ArrayList<>();
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.network_provider_sims_list;
-                    result.add(sir);
-                    return result;
-                }
-
-                @Override
-                protected boolean isPageSearchEnabled(Context context) {
-                    return SubscriptionUtil.isSimHardwareVisible(context) &&
-                            context.getSystemService(UserManager.class).isAdminUser();
-                }
-            };
-}
diff --git a/src/com/android/settings/network/MobileNetworkListFragment.kt b/src/com/android/settings/network/MobileNetworkListFragment.kt
new file mode 100644
index 0000000..09b1150
--- /dev/null
+++ b/src/com/android/settings/network/MobileNetworkListFragment.kt
@@ -0,0 +1,82 @@
+/*
+ * 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.app.settings.SettingsEnums
+import android.content.Context
+import android.os.Bundle
+import android.provider.Settings
+import android.view.View
+import androidx.annotation.VisibleForTesting
+import androidx.preference.Preference
+import com.android.settings.R
+import com.android.settings.SettingsPreferenceFragment
+import com.android.settings.dashboard.DashboardFragment
+import com.android.settings.network.telephony.MobileNetworkUtils
+import com.android.settings.search.BaseSearchIndexProvider
+import com.android.settingslib.search.SearchIndexable
+import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
+import com.android.settingslib.spaprivileged.framework.common.userManager
+import com.android.settingslib.spaprivileged.settingsprovider.settingsGlobalBooleanFlow
+
+@SearchIndexable(forTarget = SearchIndexable.ALL and SearchIndexable.ARC.inv())
+class MobileNetworkListFragment : DashboardFragment() {
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+        super.onViewCreated(view, savedInstanceState)
+        collectAirplaneModeAndFinishIfOn()
+    }
+
+    override fun onResume() {
+        super.onResume()
+        // Disable the animation of the preference list
+        listView.itemAnimator = null
+
+        findPreference<Preference>(KEY_ADD_SIM)!!.isVisible =
+            MobileNetworkUtils.showEuiccSettings(context)
+    }
+
+    override fun getPreferenceScreenResId() = R.xml.network_provider_sims_list
+
+    override fun getLogTag() = LOG_TAG
+
+    override fun getMetricsCategory() = SettingsEnums.MOBILE_NETWORK_LIST
+
+    companion object {
+        private const val LOG_TAG = "NetworkListFragment"
+        private const val KEY_ADD_SIM = "add_sim"
+
+        @JvmStatic
+        fun SettingsPreferenceFragment.collectAirplaneModeAndFinishIfOn() {
+            requireContext().settingsGlobalBooleanFlow(Settings.Global.AIRPLANE_MODE_ON)
+                .collectLatestWithLifecycle(viewLifecycleOwner) { isAirplaneModeOn ->
+                    if (isAirplaneModeOn) {
+                        finish()
+                    }
+                }
+        }
+
+        @JvmField
+        val SEARCH_INDEX_DATA_PROVIDER = SearchIndexProvider()
+
+        @VisibleForTesting
+        class SearchIndexProvider : BaseSearchIndexProvider(R.xml.network_provider_sims_list) {
+            public override fun isPageSearchEnabled(context: Context): Boolean =
+                SubscriptionUtil.isSimHardwareVisible(context) &&
+                    context.userManager.isAdminUser
+        }
+    }
+}
diff --git a/src/com/android/settings/network/MobileNetworkRepository.java b/src/com/android/settings/network/MobileNetworkRepository.java
index 80c5464..af37d24 100644
--- a/src/com/android/settings/network/MobileNetworkRepository.java
+++ b/src/com/android/settings/network/MobileNetworkRepository.java
@@ -226,6 +226,9 @@
             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.
+        sendAvailableSubInfoCache(mobileNetworkCallback);
     }
 
     public void addRegisterBySubId(int subId) {
@@ -378,11 +381,11 @@
         return mMobileNetworkInfoDao.queryMobileNetworkInfoBySubId(subId);
     }
 
-    private void getUiccInfoBySubscriptionInfo(UiccSlotInfo[] uiccSlotInfos,
+    private void getUiccInfoBySubscriptionInfo(@NonNull UiccSlotInfo[] uiccSlotInfos,
             SubscriptionInfo subInfo) {
         for (int i = 0; i < uiccSlotInfos.length; i++) {
             UiccSlotInfo curSlotInfo = uiccSlotInfos[i];
-            if (curSlotInfo.getCardStateInfo() == CARD_STATE_INFO_PRESENT) {
+            if (curSlotInfo != null && curSlotInfo.getCardStateInfo() == CARD_STATE_INFO_PRESENT) {
                 final int index = i;
                 mIsEuicc = curSlotInfo.getIsEuicc();
                 mCardState = curSlotInfo.getCardStateInfo();
@@ -416,7 +419,15 @@
 
     private void onAvailableSubInfoChanged(
             List<SubscriptionInfoEntity> availableSubInfoEntityList) {
-        mAvailableSubInfoEntityList = new ArrayList<>(availableSubInfoEntityList);
+        synchronized (this) {
+            if (mAvailableSubInfoEntityList != null
+                    && mAvailableSubInfoEntityList.size() == availableSubInfoEntityList.size()
+                    && mAvailableSubInfoEntityList.containsAll(availableSubInfoEntityList)) {
+                Log.d(TAG, "onAvailableSubInfoChanged, duplicates = " + availableSubInfoEntityList);
+                return;
+            }
+            mAvailableSubInfoEntityList = new ArrayList<>(availableSubInfoEntityList);
+        }
         if (DEBUG) {
             Log.d(TAG, "onAvailableSubInfoChanged, availableSubInfoEntityList = "
                     + availableSubInfoEntityList);
@@ -426,23 +437,48 @@
         }
         mMetricsFeatureProvider.action(mContext,
                 SettingsEnums.ACTION_MOBILE_NETWORK_DB_NOTIFY_SUB_INFO_IS_CHANGED, 0);
-        onActiveSubInfoListChanged(mAvailableSubInfoEntityList);
+        onActiveSubInfoListChanged(availableSubInfoEntityList);
     }
 
     private void onActiveSubInfoListChanged(
             List<SubscriptionInfoEntity> availableSubInfoEntityList) {
-        mActiveSubInfoEntityList = availableSubInfoEntityList.stream()
+        List<SubscriptionInfoEntity> activeSubInfoEntityList =
+                availableSubInfoEntityList.stream()
                 .filter(SubscriptionInfoEntity::isActiveSubscription)
                 .filter(SubscriptionInfoEntity::isSubscriptionVisible)
                 .collect(Collectors.toList());
         if (DEBUG) {
             Log.d(TAG, "onActiveSubInfoChanged, activeSubInfoEntityList = "
-                    + mActiveSubInfoEntityList);
+                    + activeSubInfoEntityList);
         }
-        List<SubscriptionInfoEntity> activeSubInfoEntityList = new ArrayList<>(
-                mActiveSubInfoEntityList);
+        List<SubscriptionInfoEntity> tempActiveSubInfoEntityList = new ArrayList<>(
+                activeSubInfoEntityList);
+        synchronized (this) {
+            mActiveSubInfoEntityList = activeSubInfoEntityList;
+        }
         for (MobileNetworkCallback callback : sCallbacks) {
-            callback.onActiveSubInfoChanged(activeSubInfoEntityList);
+            callback.onActiveSubInfoChanged(tempActiveSubInfoEntityList);
+        }
+    }
+
+    private void sendAvailableSubInfoCache(MobileNetworkCallback callback) {
+        if (callback != null) {
+             List<SubscriptionInfoEntity> availableSubInfoEntityList = null;
+             List<SubscriptionInfoEntity> activeSubInfoEntityList = null;
+             synchronized (this) {
+                 if (mAvailableSubInfoEntityList != null) {
+                     availableSubInfoEntityList = new ArrayList<>(mAvailableSubInfoEntityList);
+                 }
+                 if (mActiveSubInfoEntityList != null) {
+                     activeSubInfoEntityList = new ArrayList<>(mActiveSubInfoEntityList);
+                 }
+             }
+             if (availableSubInfoEntityList != null) {
+                 callback.onAvailableSubInfoChanged(availableSubInfoEntityList);
+             }
+             if (activeSubInfoEntityList != null) {
+                 callback.onActiveSubInfoChanged(activeSubInfoEntityList);
+             }
         }
     }
 
@@ -498,8 +534,6 @@
         mMobileNetworkDatabase.deleteSubInfoBySubId(subId);
         mMobileNetworkDatabase.deleteUiccInfoBySubId(subId);
         mMobileNetworkDatabase.deleteMobileNetworkInfoBySubId(subId);
-        mAvailableSubInfoEntityList.removeIf(info -> info.subId.equals(subId));
-        mActiveSubInfoEntityList.removeIf(info -> info.subId.equals(subId));
         mUiccInfoEntityList.removeIf(info -> info.subId.equals(subId));
         mMobileNetworkInfoEntityList.removeIf(info -> info.subId.equals(subId));
         int id = Integer.parseInt(subId);
@@ -656,10 +690,15 @@
 
     private void insertAvailableSubInfoToEntity(List<SubscriptionInfo> inputAvailableInfoList) {
         sExecutor.execute(() -> {
-            SubscriptionInfoEntity[] availableInfoArray = mAvailableSubInfoEntityList.toArray(
+            SubscriptionInfoEntity[] availableInfoArray = null;
+            int availableEntitySize = 0;
+            synchronized (this) {
+                availableInfoArray = mAvailableSubInfoEntityList.toArray(
                     new SubscriptionInfoEntity[0]);
+                availableEntitySize = mAvailableSubInfoEntityList.size();
+            }
             if ((inputAvailableInfoList == null || inputAvailableInfoList.size() == 0)
-                    && mAvailableSubInfoEntityList.size() != 0) {
+                    && availableEntitySize != 0) {
                 if (DEBUG) {
                     Log.d(TAG, "availableSudInfoList from framework is empty, remove all subs");
                 }
@@ -672,7 +711,7 @@
                 SubscriptionInfo[] inputAvailableInfoArray = inputAvailableInfoList.toArray(
                         new SubscriptionInfo[0]);
                 // Remove the redundant subInfo
-                if (inputAvailableInfoList.size() <= mAvailableSubInfoEntityList.size()) {
+                if (inputAvailableInfoList.size() <= availableEntitySize) {
                     for (SubscriptionInfo subInfo : inputAvailableInfoArray) {
                         int subId = subInfo.getSubscriptionId();
                         if (mSubscriptionInfoMap.containsKey(subId)) {
@@ -686,7 +725,7 @@
                                 deleteAllInfoBySubId(String.valueOf(key));
                             }
                         }
-                    } else if (inputAvailableInfoList.size() < mAvailableSubInfoEntityList.size()) {
+                    } else if (inputAvailableInfoList.size() < availableEntitySize) {
                         // Check the subInfo between the new list from framework and old list in
                         // the database, if the subInfo is not existed in the new list, delete it
                         // from the database.
@@ -705,7 +744,8 @@
                     }
                     if (subInfo.isEmbedded()
                         && (subInfo.getProfileClass() == PROFILE_CLASS_PROVISIONING
-                        || (Flags.oemEnabledSatelliteFlag() && subInfo.isNtn()))) {
+                            || (Flags.oemEnabledSatelliteFlag()
+                            && subInfo.isOnlyNonTerrestrialNetwork()))) {
                         if (DEBUG) {
                             Log.d(TAG, "Do not insert the provisioning or satellite eSIM");
                         }
diff --git a/src/com/android/settings/network/NetworkDashboardFragment.java b/src/com/android/settings/network/NetworkDashboardFragment.java
index d558aa8..4790c65 100644
--- a/src/com/android/settings/network/NetworkDashboardFragment.java
+++ b/src/com/android/settings/network/NetworkDashboardFragment.java
@@ -22,7 +22,6 @@
 import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
-import android.provider.SearchIndexableResource;
 import android.util.Log;
 
 import androidx.appcompat.app.AlertDialog;
@@ -31,19 +30,16 @@
 
 import com.android.settings.R;
 import com.android.settings.SettingsDumpService;
-import com.android.settings.Utils;
 import com.android.settings.core.OnActivityResultListener;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.network.MobilePlanPreferenceController.MobilePlanPreferenceHost;
 import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settings.wifi.WifiPrimarySwitchPreferenceController;
 import com.android.settingslib.core.AbstractPreferenceController;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.search.SearchIndexable;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
 
 @SearchIndexable
@@ -122,7 +118,6 @@
             controllers.add(internetPreferenceController);
         }
         controllers.add(privateDnsPreferenceController);
-        controllers.add(new NetworkProviderCallsSmsController(context, lifecycle, lifecycleOwner));
 
         // Start SettingsDumpService after the MobileNetworkRepository is created.
         Intent intent = new Intent(context, SettingsDumpService.class);
diff --git a/src/com/android/settings/network/NetworkProviderCallsSmsController.java b/src/com/android/settings/network/NetworkProviderCallsSmsController.java
deleted file mode 100644
index 5eec3d9..0000000
--- a/src/com/android/settings/network/NetworkProviderCallsSmsController.java
+++ /dev/null
@@ -1,258 +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;
-
-import static androidx.lifecycle.Lifecycle.Event;
-
-import android.content.Context;
-import android.os.UserManager;
-import android.telephony.ServiceState;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.util.Log;
-import android.view.View;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.lifecycle.LifecycleObserver;
-import androidx.lifecycle.LifecycleOwner;
-import androidx.lifecycle.OnLifecycleEvent;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
-import com.android.settingslib.RestrictedPreference;
-import com.android.settingslib.Utils;
-import com.android.settingslib.core.AbstractPreferenceController;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
-
-import java.util.List;
-
-public class NetworkProviderCallsSmsController extends AbstractPreferenceController implements
-        LifecycleObserver, MobileNetworkRepository.MobileNetworkCallback,
-        DefaultSubscriptionReceiver.DefaultSubscriptionListener {
-
-    private static final String TAG = "NetworkProviderCallsSmsController";
-    private static final String KEY = "calls_and_sms";
-    private static final String RTL_MARK = "\u200F";
-
-    private UserManager mUserManager;
-    private TelephonyManager mTelephonyManager;
-    private RestrictedPreference mPreference;
-    private boolean mIsRtlMode;
-    private LifecycleOwner mLifecycleOwner;
-    private MobileNetworkRepository mMobileNetworkRepository;
-    private List<SubscriptionInfoEntity> mSubInfoEntityList;
-    private int mDefaultVoiceSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
-    private int mDefaultSmsSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
-    private DefaultSubscriptionReceiver mDataSubscriptionChangedReceiver;
-
-    /**
-     * The summary text and click behavior of the "Calls & SMS" item on the
-     * Network & internet page.
-     */
-    public NetworkProviderCallsSmsController(Context context, Lifecycle lifecycle,
-            LifecycleOwner lifecycleOwner) {
-        super(context);
-
-        mUserManager = context.getSystemService(UserManager.class);
-        mTelephonyManager = mContext.getSystemService(TelephonyManager.class);
-        mIsRtlMode = context.getResources().getConfiguration().getLayoutDirection()
-                == View.LAYOUT_DIRECTION_RTL;
-        mLifecycleOwner = lifecycleOwner;
-        mMobileNetworkRepository = MobileNetworkRepository.getInstance(context);
-        mDataSubscriptionChangedReceiver = new DefaultSubscriptionReceiver(context, this);
-        if (lifecycle != null) {
-            lifecycle.addObserver(this);
-        }
-    }
-
-    @OnLifecycleEvent(Event.ON_RESUME)
-    public void onResume() {
-        mMobileNetworkRepository.addRegister(mLifecycleOwner, this,
-                SubscriptionManager.INVALID_SUBSCRIPTION_ID);
-        mMobileNetworkRepository.updateEntity();
-        mDataSubscriptionChangedReceiver.registerReceiver();
-        mDefaultVoiceSubId = SubscriptionManager.getDefaultVoiceSubscriptionId();
-        mDefaultSmsSubId = SubscriptionManager.getDefaultSmsSubscriptionId();
-    }
-
-    @OnLifecycleEvent(Event.ON_PAUSE)
-    public void onPause() {
-        mMobileNetworkRepository.removeRegister(this);
-        mDataSubscriptionChangedReceiver.unRegisterReceiver();
-    }
-
-    @Override
-    public void displayPreference(PreferenceScreen screen) {
-        super.displayPreference(screen);
-        mPreference = screen.findPreference(getPreferenceKey());
-    }
-
-    @Override
-    public CharSequence getSummary() {
-        List<SubscriptionInfoEntity> list = getSubscriptionInfoList();
-        if (list == null || list.isEmpty()) {
-            return setSummaryResId(R.string.calls_sms_no_sim);
-        } else {
-            final StringBuilder summary = new StringBuilder();
-            SubscriptionInfoEntity[] entityArray = list.toArray(
-                    new SubscriptionInfoEntity[0]);
-            for (SubscriptionInfoEntity subInfo : entityArray) {
-                int subsSize = list.size();
-                int subId = Integer.parseInt(subInfo.subId);
-                final CharSequence displayName = subInfo.uniqueName;
-
-                // Set displayName as summary if there is only one valid SIM.
-                if (subsSize == 1
-                        && list.get(0).isValidSubscription
-                        && isInService(subId)) {
-                    return displayName;
-                }
-
-                CharSequence status = getPreferredStatus(subInfo, subsSize, subId);
-                if (status.toString().isEmpty()) {
-                    // If there are 2 or more SIMs and one of these has no preferred status,
-                    // set only its displayName as summary.
-                    summary.append(displayName);
-                } else {
-                    summary.append(displayName)
-                            .append(" (")
-                            .append(status)
-                            .append(")");
-                }
-                // Do not add ", " for the last subscription.
-                if (list.size() > 0 && !subInfo.equals(list.get(list.size() - 1))) {
-                    summary.append(", ");
-                }
-
-                if (mIsRtlMode) {
-                    summary.insert(0, RTL_MARK).insert(summary.length(), RTL_MARK);
-                }
-            }
-            return summary;
-        }
-    }
-
-    @VisibleForTesting
-    protected CharSequence getPreferredStatus(SubscriptionInfoEntity subInfo, int subsSize,
-            int subId) {
-        String status = "";
-        boolean isCallPreferred = subInfo.getSubId() == getDefaultVoiceSubscriptionId();
-        boolean isSmsPreferred = subInfo.getSubId() == getDefaultSmsSubscriptionId();
-
-        if (!subInfo.isValidSubscription || !isInService(subId)) {
-            status = setSummaryResId(subsSize > 1 ? R.string.calls_sms_unavailable :
-                    R.string.calls_sms_temp_unavailable);
-        } else {
-            if (isCallPreferred && isSmsPreferred) {
-                status = setSummaryResId(R.string.calls_sms_preferred);
-            } else if (isCallPreferred) {
-                status = setSummaryResId(R.string.calls_sms_calls_preferred);
-            } else if (isSmsPreferred) {
-                status = setSummaryResId(R.string.calls_sms_sms_preferred);
-            }
-        }
-        return status;
-    }
-
-    private String setSummaryResId(int resId) {
-        return mContext.getResources().getString(resId);
-    }
-
-    @VisibleForTesting
-    protected List<SubscriptionInfoEntity> getSubscriptionInfoList() {
-        return mSubInfoEntityList;
-    }
-
-    private void update() {
-        if (mPreference == null || mPreference.isDisabledByAdmin()) {
-            return;
-        }
-        refreshSummary(mPreference);
-        mPreference.setOnPreferenceClickListener(null);
-        mPreference.setFragment(null);
-
-        if (mSubInfoEntityList == null || mSubInfoEntityList.isEmpty()) {
-            mPreference.setEnabled(false);
-        } else {
-            mPreference.setEnabled(true);
-            mPreference.setFragment(NetworkProviderCallsSmsFragment.class.getCanonicalName());
-        }
-    }
-
-    @Override
-    public boolean isAvailable() {
-        return SubscriptionUtil.isSimHardwareVisible(mContext) &&
-                mUserManager.isAdminUser();
-    }
-
-    @Override
-    public String getPreferenceKey() {
-        return KEY;
-    }
-
-    @Override
-    public void onAirplaneModeChanged(boolean airplaneModeEnabled) {
-        update();
-    }
-
-    @Override
-    public void updateState(Preference preference) {
-        super.updateState(preference);
-        if (preference == null) {
-            return;
-        }
-        refreshSummary(mPreference);
-        update();
-    }
-
-    @VisibleForTesting
-    protected boolean isInService(int subId) {
-        ServiceState serviceState =
-                mTelephonyManager.createForSubscriptionId(subId).getServiceState();
-        return Utils.isInService(serviceState);
-    }
-
-    @Override
-    public void onActiveSubInfoChanged(List<SubscriptionInfoEntity> activeSubInfoList) {
-        mSubInfoEntityList = activeSubInfoList;
-        update();
-    }
-
-    @VisibleForTesting
-    protected int getDefaultVoiceSubscriptionId() {
-        return mDefaultVoiceSubId;
-    }
-
-    @VisibleForTesting
-    protected int getDefaultSmsSubscriptionId() {
-        return mDefaultSmsSubId;
-    }
-
-    @Override
-    public void onDefaultVoiceChanged(int defaultVoiceSubId) {
-        mDefaultVoiceSubId = defaultVoiceSubId;
-        update();
-    }
-
-    @Override
-    public void onDefaultSmsChanged(int defaultSmsSubId) {
-        mDefaultSmsSubId = defaultSmsSubId;
-        update();
-    }
-}
diff --git a/src/com/android/settings/network/NetworkProviderCallsSmsController.kt b/src/com/android/settings/network/NetworkProviderCallsSmsController.kt
new file mode 100644
index 0000000..a265041
--- /dev/null
+++ b/src/com/android/settings/network/NetworkProviderCallsSmsController.kt
@@ -0,0 +1,196 @@
+/*
+ * 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.app.settings.SettingsEnums
+import android.content.Context
+import android.content.IntentFilter
+import android.os.UserManager
+import android.telephony.SubscriptionInfo
+import android.telephony.SubscriptionManager
+import android.telephony.TelephonyManager
+import androidx.annotation.VisibleForTesting
+import androidx.compose.foundation.layout.Column
+import androidx.compose.material.icons.Icons
+import androidx.compose.material.icons.outlined.PermPhoneMsg
+import androidx.compose.material3.HorizontalDivider
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.remember
+import androidx.compose.ui.res.stringResource
+import androidx.lifecycle.compose.collectAsStateWithLifecycle
+import androidx.lifecycle.viewmodel.compose.viewModel
+import com.android.settings.R
+import com.android.settings.core.SubSettingLauncher
+import com.android.settings.spa.preference.ComposePreferenceController
+import com.android.settingslib.Utils
+import com.android.settingslib.spa.widget.preference.PreferenceModel
+import com.android.settingslib.spa.widget.ui.SettingsIcon
+import com.android.settingslib.spaprivileged.framework.common.broadcastReceiverFlow
+import com.android.settingslib.spaprivileged.framework.common.userManager
+import com.android.settingslib.spaprivileged.framework.compose.placeholder
+import com.android.settingslib.spaprivileged.model.enterprise.Restrictions
+import com.android.settingslib.spaprivileged.template.preference.RestrictedPreference
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.combine
+import kotlinx.coroutines.flow.conflate
+import kotlinx.coroutines.flow.flowOf
+import kotlinx.coroutines.flow.flowOn
+import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.flow.merge
+
+/**
+ * The summary text and click behavior of the "Calls & SMS" item on the Network & internet page.
+ */
+open class NetworkProviderCallsSmsController @JvmOverloads constructor(
+    context: Context,
+    preferenceKey: String,
+    private val getDisplayName: (SubscriptionInfo) -> CharSequence = { subInfo ->
+        SubscriptionUtil.getUniqueSubscriptionDisplayName(subInfo, context)
+    },
+    private val isInService: (Int) -> Boolean = IsInServiceImpl(context)::isInService,
+) : ComposePreferenceController(context, preferenceKey) {
+
+    override fun getAvailabilityStatus() = when {
+        !SubscriptionUtil.isSimHardwareVisible(mContext) -> UNSUPPORTED_ON_DEVICE
+        !mContext.userManager.isAdminUser -> DISABLED_FOR_USER
+        else -> AVAILABLE
+    }
+
+    @Composable
+    override fun Content() {
+        Column {
+            CallsAndSms()
+            HorizontalDivider()
+        }
+    }
+
+    @Composable
+    private fun CallsAndSms() {
+        val viewModel: SubscriptionInfoListViewModel = viewModel()
+        val subscriptionInfos by viewModel.subscriptionInfoListFlow.collectAsStateWithLifecycle()
+        val summary by remember { summaryFlow(viewModel.subscriptionInfoListFlow) }
+            .collectAsStateWithLifecycle(initialValue = placeholder())
+        RestrictedPreference(
+            model = object : PreferenceModel {
+                override val title = stringResource(R.string.calls_and_sms)
+                override val icon = @Composable { SettingsIcon(Icons.Outlined.PermPhoneMsg) }
+                override val summary = { summary }
+                override val enabled = { subscriptionInfos.isNotEmpty() }
+                override val onClick = {
+                    SubSettingLauncher(mContext).apply {
+                        setDestination(NetworkProviderCallsSmsFragment::class.qualifiedName)
+                        setSourceMetricsCategory(SettingsEnums.SETTINGS_NETWORK_CATEGORY)
+                    }.launch()
+                }
+            },
+            restrictions = Restrictions(keys = listOf(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)),
+        )
+    }
+
+    private fun summaryFlow(subscriptionInfoListFlow: Flow<List<SubscriptionInfo>>) = combine(
+        subscriptionInfoListFlow,
+        mContext.defaultVoiceSubscriptionFlow(),
+        mContext.defaultSmsSubscriptionFlow(),
+        ::getSummary,
+    ).flowOn(Dispatchers.Default)
+
+    @VisibleForTesting
+    fun getSummary(
+        activeSubscriptionInfoList: List<SubscriptionInfo>,
+        defaultVoiceSubscriptionId: Int,
+        defaultSmsSubscriptionId: Int,
+    ): String {
+        if (activeSubscriptionInfoList.isEmpty()) {
+            return mContext.getString(R.string.calls_sms_no_sim)
+        }
+
+        activeSubscriptionInfoList.singleOrNull()?.let {
+            // Set displayName as summary if there is only one valid SIM.
+            if (isInService(it.subscriptionId)) return it.displayName.toString()
+        }
+
+        return activeSubscriptionInfoList.joinToString { subInfo ->
+            val displayName = getDisplayName(subInfo)
+
+            val subId = subInfo.subscriptionId
+            val statusResId = getPreferredStatus(
+                subId = subId,
+                subsSize = activeSubscriptionInfoList.size,
+                isCallPreferred = subId == defaultVoiceSubscriptionId,
+                isSmsPreferred = subId == defaultSmsSubscriptionId,
+            )
+            if (statusResId == null) {
+                // If there are 2 or more SIMs and one of these has no preferred status,
+                // set only its displayName as summary.
+                displayName
+            } else {
+                "$displayName (${mContext.getString(statusResId)})"
+            }
+        }
+    }
+
+    private fun getPreferredStatus(
+        subId: Int,
+        subsSize: Int,
+        isCallPreferred: Boolean,
+        isSmsPreferred: Boolean,
+    ): Int? = when {
+        !isInService(subId) -> {
+            if (subsSize > 1) {
+                R.string.calls_sms_unavailable
+            } else {
+                R.string.calls_sms_temp_unavailable
+            }
+        }
+
+        isCallPreferred && isSmsPreferred -> R.string.calls_sms_preferred
+        isCallPreferred -> R.string.calls_sms_calls_preferred
+        isSmsPreferred -> R.string.calls_sms_sms_preferred
+        else -> null
+    }
+}
+
+private fun Context.defaultVoiceSubscriptionFlow(): Flow<Int> =
+    merge(
+        flowOf(null), // kick an initial value
+        broadcastReceiverFlow(
+            IntentFilter(TelephonyManager.ACTION_DEFAULT_VOICE_SUBSCRIPTION_CHANGED)
+        ),
+    ).map { SubscriptionManager.getDefaultVoiceSubscriptionId() }
+        .conflate().flowOn(Dispatchers.Default)
+
+private fun Context.defaultSmsSubscriptionFlow(): Flow<Int> =
+    merge(
+        flowOf(null), // kick an initial value
+        broadcastReceiverFlow(
+            IntentFilter(SubscriptionManager.ACTION_DEFAULT_SMS_SUBSCRIPTION_CHANGED)
+        ),
+    ).map { SubscriptionManager.getDefaultSmsSubscriptionId() }
+        .conflate().flowOn(Dispatchers.Default)
+
+private class IsInServiceImpl(context: Context) {
+    private val telephonyManager = context.getSystemService(TelephonyManager::class.java)!!
+
+    fun isInService(subId: Int): Boolean {
+        if (!SubscriptionManager.isValidSubscriptionId(subId)) return false
+
+        val serviceState = telephonyManager.createForSubscriptionId(subId).serviceState
+        return Utils.isInService(serviceState)
+    }
+}
diff --git a/src/com/android/settings/network/NetworkProviderSettings.java b/src/com/android/settings/network/NetworkProviderSettings.java
index 793fecc..f14c32c 100644
--- a/src/com/android/settings/network/NetworkProviderSettings.java
+++ b/src/com/android/settings/network/NetworkProviderSettings.java
@@ -32,7 +32,6 @@
 import android.net.wifi.WifiConfiguration;
 import android.net.wifi.WifiManager;
 import android.os.Bundle;
-import android.os.Handler;
 import android.os.PowerManager;
 import android.os.UserHandle;
 import android.os.UserManager;
@@ -49,9 +48,11 @@
 import android.view.View;
 import android.widget.Toast;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 import androidx.appcompat.app.AlertDialog;
+import androidx.core.view.MenuProvider;
 import androidx.fragment.app.Fragment;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceCategory;
@@ -173,10 +174,6 @@
     private static final String EXTRA_START_CONNECT_SSID = "wifi_start_connect_ssid";
     private String mOpenSsid;
 
-    private static boolean isVerboseLoggingEnabled() {
-        return WifiPickerTracker.isVerboseLoggingEnabled();
-    }
-
     private boolean mIsViewLoading;
     @VisibleForTesting
     final Runnable mRemoveLoadingRunnable = () -> {
@@ -186,7 +183,6 @@
         }
     };
 
-    private boolean mIsWifiEntryListStale = true;
     @VisibleForTesting
     final Runnable mUpdateWifiEntryPreferencesRunnable = () -> {
         updateWifiEntryPreferences();
@@ -249,6 +245,8 @@
     ConnectedEthernetNetworkController mConnectedEthernetNetworkController;
     @VisibleForTesting
     FooterPreference mWifiStatusMessagePreference;
+    @VisibleForTesting
+    MenuProvider mMenuProvider;
 
     /**
      * Mobile networks list for provider model
@@ -306,6 +304,44 @@
 
         mIsRestricted = isUiRestricted();
         updateUserType();
+
+        mMenuProvider = new MenuProvider() {
+            @Override
+            public void onCreateMenu(@NonNull Menu menu, @NonNull MenuInflater menuInflater) {
+                MenuItem fixConnectivityItem = menu.add(0, MENU_FIX_CONNECTIVITY, 0,
+                        R.string.fix_connectivity);
+                fixConnectivityItem.setIcon(R.drawable.ic_repair_24dp);
+                fixConnectivityItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
+            }
+
+            @Override
+            public boolean onMenuItemSelected(@NonNull MenuItem menuItem) {
+                if (menuItem.getItemId() == MENU_FIX_CONNECTIVITY) {
+                    if (isPhoneOnCall()) {
+                        showResetInternetDialog();
+                        return true;
+                    }
+                    fixConnectivity();
+                    return true;
+                }
+                return false;
+            }
+
+            @Override
+            public void onPrepareMenu(@NonNull Menu menu) {
+                MenuProvider.super.onPrepareMenu(menu);
+
+                boolean isWifiEnabled = mWifiPickerTracker != null
+                        && mWifiPickerTracker.getWifiState() == WifiManager.WIFI_STATE_ENABLED;
+                boolean isAirplaneModeOn =
+                        mAirplaneModeEnabler != null && mAirplaneModeEnabler.isAirplaneModeOn();
+                MenuItem fixConnectivityItem = menu.findItem(MENU_FIX_CONNECTIVITY);
+                if (fixConnectivityItem == null) {
+                    return;
+                }
+                fixConnectivityItem.setVisible(!mIsGuest && (!isAirplaneModeOn || isWifiEnabled));
+            }
+        };
     }
 
     private void updateUserType() {
@@ -425,7 +461,6 @@
                 }
             }
         };
-        setHasOptionsMenu(true);
 
         if (savedInstanceState != null) {
             mDialogMode = savedInstanceState.getInt(SAVE_DIALOG_MODE);
@@ -444,12 +479,13 @@
         if (mNetworkMobileProviderController != null) {
             mNetworkMobileProviderController.setWifiPickerTrackerHelper(mWifiPickerTrackerHelper);
         }
+
+        requireActivity().addMenuProvider(mMenuProvider);
     }
 
     @Override
     public void onAttach(Context context) {
         super.onAttach(context);
-
     }
 
     @Override
@@ -498,7 +534,6 @@
 
     @Override
     public void onStop() {
-        mIsWifiEntryListStale = true;
         getView().removeCallbacks(mRemoveLoadingRunnable);
         getView().removeCallbacks(mUpdateWifiEntryPreferencesRunnable);
         getView().removeCallbacks(mHideProgressBarRunnable);
@@ -798,7 +833,7 @@
         }
         final int wifiState = mWifiPickerTracker.getWifiState();
 
-        if (isVerboseLoggingEnabled()) {
+        if (mWifiPickerTracker.isVerboseLoggingEnabled()) {
             Log.i(TAG, "onWifiStateChanged called with wifi state: " + wifiState);
         }
 
@@ -807,6 +842,11 @@
             return;
         }
 
+        if (isAdded()) {
+            // update the menu item
+            requireActivity().invalidateMenu();
+        }
+
         switch (wifiState) {
             case WifiManager.WIFI_STATE_ENABLED:
                 setWifiScanMessage(/* isWifiEnabled */ true);
@@ -835,6 +875,11 @@
         }
     }
 
+    @Override
+    public void onScanRequested() {
+        setProgressBarVisible(true);
+    }
+
     @VisibleForTesting
     void setWifiScanMessage(boolean isWifiEnabled) {
         final Context context = getContext();
@@ -865,12 +910,10 @@
     }
 
     @Override
-    public void onWifiEntriesChanged() {
-        if (mIsWifiEntryListStale) {
-            mIsWifiEntryListStale = false;
-            updateWifiEntryPreferences();
-        } else {
-            updateWifiEntryPreferencesDelayed();
+    public void onWifiEntriesChanged(@WifiPickerTracker.WifiEntriesChangedReason int reason) {
+        updateWifiEntryPreferences();
+        if (reason == WifiPickerTracker.WIFI_ENTRIES_CHANGED_REASON_SCAN_RESULTS) {
+            setProgressBarVisible(false);
         }
         changeNextButtonState(mWifiPickerTracker != null
                 && mWifiPickerTracker.getConnectedWifiEntry() != null);
@@ -907,24 +950,6 @@
         setAdditionalSettingsSummaries();
     }
 
-    /**
-     * Updates WifiEntries from {@link WifiPickerTracker#getWifiEntries()}. Adds a delay to have
-     * progress bar displayed before starting to modify entries.
-     */
-    private void updateWifiEntryPreferencesDelayed() {
-        // Safeguard from some delayed event handling
-        if (getActivity() != null && !mIsRestricted && mWifiPickerTracker != null
-                && mWifiPickerTracker.getWifiState() == WifiManager.WIFI_STATE_ENABLED) {
-            final View view = getView();
-            final Handler handler = view.getHandler();
-            if (handler != null && handler.hasCallbacks(mUpdateWifiEntryPreferencesRunnable)) {
-                return;
-            }
-            setProgressBarVisible(true);
-            view.postDelayed(mUpdateWifiEntryPreferencesRunnable, 300);
-        }
-    }
-
     protected void updateWifiEntryPreferences() {
         // bypass the update if the activity and the view are not ready, or it's restricted UI.
         if (getActivity() == null || getView() == null || mIsRestricted) {
@@ -1007,16 +1032,12 @@
         removeCachedPrefs(mWifiEntryPreferenceCategory);
 
         if (!hasAvailableWifiEntries) {
-            setProgressBarVisible(true);
             Preference pref = new Preference(getPrefContext());
             pref.setSelectable(false);
             pref.setSummary(R.string.wifi_empty_list_wifi_on);
             pref.setOrder(index++);
             pref.setKey(PREF_KEY_EMPTY_WIFI_LIST);
             mWifiEntryPreferenceCategory.addPreference(pref);
-        } else {
-            // Continuing showing progress bar for an additional delay to overlap with animation
-            getView().postDelayed(mHideProgressBarRunnable, 1700 /* delay millis */);
         }
 
         mAddWifiNetworkPreference.setOrder(index++);
@@ -1397,29 +1418,6 @@
         return HelpUtils.getHelpIntent(context, helpUrlString, context.getClass().getName());
     }
 
-    @Override
-    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
-        if (!mIsGuest && !mAirplaneModeEnabler.isAirplaneModeOn()) {
-            MenuItem item = menu.add(0, MENU_FIX_CONNECTIVITY, 0, R.string.fix_connectivity);
-            item.setIcon(R.drawable.ic_repair_24dp);
-            item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
-        }
-        super.onCreateOptionsMenu(menu, inflater);
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem menuItem) {
-        if (menuItem.getItemId() == MENU_FIX_CONNECTIVITY) {
-            if (isPhoneOnCall()) {
-                showResetInternetDialog();
-                return true;
-            }
-            fixConnectivity();
-            return true;
-        }
-        return super.onOptionsItemSelected(menuItem);
-    }
-
     @VisibleForTesting
     void showResetInternetDialog() {
         AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
@@ -1462,6 +1460,10 @@
     @Override
     public void onAirplaneModeChanged(boolean isAirplaneModeOn) {
         updateAirplaneModeMsgPreference(isAirplaneModeOn /* visible */);
+        if (isAdded()) {
+            // update the menu item
+            requireActivity().invalidateMenu();
+        }
     }
 
     /**
diff --git a/src/com/android/settings/network/NetworkProviderSimListController.java b/src/com/android/settings/network/NetworkProviderSimListController.java
index 89cb73c..02b1980 100644
--- a/src/com/android/settings/network/NetworkProviderSimListController.java
+++ b/src/com/android/settings/network/NetworkProviderSimListController.java
@@ -16,69 +16,60 @@
 
 package com.android.settings.network;
 
-import static androidx.lifecycle.Lifecycle.Event.ON_PAUSE;
-import static androidx.lifecycle.Lifecycle.Event.ON_RESUME;
-
 import android.content.Context;
 import android.graphics.drawable.Drawable;
 import android.telephony.SubscriptionManager;
 import android.util.ArrayMap;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
+import androidx.lifecycle.DefaultLifecycleObserver;
 import androidx.lifecycle.LifecycleOwner;
-import androidx.lifecycle.OnLifecycleEvent;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceCategory;
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
 import com.android.settings.network.telephony.MobileNetworkUtils;
 import com.android.settingslib.RestrictedPreference;
-import com.android.settingslib.core.AbstractPreferenceController;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-import com.android.settingslib.core.lifecycle.LifecycleObserver;
 import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
 
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
-public class NetworkProviderSimListController extends AbstractPreferenceController implements
-        LifecycleObserver, MobileNetworkRepository.MobileNetworkCallback,
+public class NetworkProviderSimListController extends BasePreferenceController implements
+        DefaultLifecycleObserver, MobileNetworkRepository.MobileNetworkCallback,
         DefaultSubscriptionReceiver.DefaultSubscriptionListener {
-    private static final String TAG = "NetworkProviderSimListCtrl";
-    private static final String KEY_PREFERENCE_CATEGORY_SIM = "provider_model_sim_category";
-    private static final String KEY_PREFERENCE_SIM = "provider_model_sim_list";
 
-    private SubscriptionManager mSubscriptionManager;
+    private final SubscriptionManager mSubscriptionManager;
+    @Nullable
     private PreferenceCategory mPreferenceCategory;
     private Map<Integer, RestrictedPreference> mPreferences;
-    private LifecycleOwner mLifecycleOwner;
-    private MobileNetworkRepository mMobileNetworkRepository;
+    private final MobileNetworkRepository mMobileNetworkRepository;
     private List<SubscriptionInfoEntity> mSubInfoEntityList = new ArrayList<>();
-    private DefaultSubscriptionReceiver mDataSubscriptionChangedReceiver;
+    private final DefaultSubscriptionReceiver mDataSubscriptionChangedReceiver;
 
-    public NetworkProviderSimListController(Context context, Lifecycle lifecycle,
-            LifecycleOwner lifecycleOwner) {
-        super(context);
+    public NetworkProviderSimListController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
         mSubscriptionManager = context.getSystemService(SubscriptionManager.class);
         mPreferences = new ArrayMap<>();
-        mLifecycleOwner = lifecycleOwner;
         mMobileNetworkRepository = MobileNetworkRepository.getInstance(context);
         mDataSubscriptionChangedReceiver = new DefaultSubscriptionReceiver(context, this);
-        lifecycle.addObserver(this);
     }
 
-    @OnLifecycleEvent(ON_RESUME)
-    public void onResume() {
-        mMobileNetworkRepository.addRegister(mLifecycleOwner, this,
+    @Override
+    public void onResume(@NonNull LifecycleOwner owner) {
+        mMobileNetworkRepository.addRegister(owner, this,
                 SubscriptionManager.INVALID_SUBSCRIPTION_ID);
         mMobileNetworkRepository.updateEntity();
         mDataSubscriptionChangedReceiver.registerReceiver();
     }
 
-    @OnLifecycleEvent(ON_PAUSE)
-    public void onPause() {
+    @Override
+    public void onPause(@NonNull LifecycleOwner owner) {
         mMobileNetworkRepository.removeRegister(this);
         mDataSubscriptionChangedReceiver.unRegisterReceiver();
     }
@@ -86,7 +77,7 @@
     @Override
     public void displayPreference(PreferenceScreen screen) {
         super.displayPreference(screen);
-        mPreferenceCategory = screen.findPreference(KEY_PREFERENCE_CATEGORY_SIM);
+        mPreferenceCategory = screen.findPreference(getPreferenceKey());
         update();
     }
 
@@ -154,31 +145,22 @@
     }
 
     @Override
-    public boolean isAvailable() {
-        if (!getAvailablePhysicalSubscriptions().isEmpty()) {
-            return true;
-        }
-        return false;
+    public int getAvailabilityStatus() {
+        return getAvailablePhysicalSubscriptions().isEmpty()
+                ? CONDITIONALLY_UNAVAILABLE : AVAILABLE;
     }
 
     @VisibleForTesting
     protected List<SubscriptionInfoEntity> getAvailablePhysicalSubscriptions() {
-        List<SubscriptionInfoEntity> subList = new ArrayList<>();
-        for (SubscriptionInfoEntity info : mSubInfoEntityList) {
-            subList.add(info);
-        }
-        return subList;
-    }
-
-    @Override
-    public String getPreferenceKey() {
-        return KEY_PREFERENCE_SIM;
+        return new ArrayList<>(mSubInfoEntityList);
     }
 
     @Override
     public void onAvailableSubInfoChanged(List<SubscriptionInfoEntity> subInfoEntityList) {
         mSubInfoEntityList = subInfoEntityList;
-        mPreferenceCategory.setVisible(isAvailable());
+        if (mPreferenceCategory != null) {
+            mPreferenceCategory.setVisible(isAvailable());
+        }
         update();
     }
 
diff --git a/src/com/android/settings/network/NetworkProviderSimsCategoryController.java b/src/com/android/settings/network/NetworkProviderSimsCategoryController.java
deleted file mode 100644
index f983e62..0000000
--- a/src/com/android/settings/network/NetworkProviderSimsCategoryController.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2021 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network;
-
-import android.content.Context;
-import android.util.Log;
-
-import androidx.lifecycle.LifecycleOwner;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceCategory;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
-import com.android.settings.widget.PreferenceCategoryController;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-import com.android.settingslib.core.lifecycle.LifecycleObserver;
-
-public class NetworkProviderSimsCategoryController extends PreferenceCategoryController implements
-        LifecycleObserver {
-    private static final String LOG_TAG = "NetworkProviderSimsCategoryController";
-    private static final String KEY_PREFERENCE_CATEGORY_SIM = "provider_model_sim_category";
-    private NetworkProviderSimListController mNetworkProviderSimListController;
-    private PreferenceCategory mPreferenceCategory;
-
-    public NetworkProviderSimsCategoryController(Context context, String key, Lifecycle lifecycle,
-            LifecycleOwner lifecycleOwner) {
-        super(context, key);
-        mNetworkProviderSimListController =
-                new NetworkProviderSimListController(mContext, lifecycle, lifecycleOwner);
-    }
-
-    @Override
-    public int getAvailabilityStatus() {
-        if (mNetworkProviderSimListController == null
-                || !mNetworkProviderSimListController.isAvailable()) {
-            return CONDITIONALLY_UNAVAILABLE;
-        } else {
-            return AVAILABLE;
-        }
-    }
-
-    @Override
-    public void displayPreference(PreferenceScreen screen) {
-        super.displayPreference(screen);
-        mNetworkProviderSimListController.displayPreference(screen);
-        mPreferenceCategory = screen.findPreference(KEY_PREFERENCE_CATEGORY_SIM);
-        if (mPreferenceCategory == null) {
-            Log.d(LOG_TAG, "displayPreference(), Can not find the category.");
-            return;
-        }
-        mPreferenceCategory.setVisible(isAvailable());
-    }
-}
diff --git a/src/com/android/settings/network/ProviderModelSliceHelper.java b/src/com/android/settings/network/ProviderModelSliceHelper.java
index e0d1eb1..686990b 100644
--- a/src/com/android/settings/network/ProviderModelSliceHelper.java
+++ b/src/com/android/settings/network/ProviderModelSliceHelper.java
@@ -15,6 +15,7 @@
  */
 package com.android.settings.network;
 
+import static com.android.settings.network.MobileIconGroupExtKt.maybeToHtml;
 import static com.android.settings.network.telephony.MobileNetworkUtils.NO_CELL_DATA_TYPE_ICON;
 
 import android.app.PendingIntent;
@@ -31,7 +32,6 @@
 import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
-import android.text.Html;
 import android.text.TextUtils;
 import android.util.Log;
 
@@ -176,7 +176,7 @@
 
     protected ListBuilder.RowBuilder createCarrierRow(String networkTypeDescription) {
         final String title = getMobileTitle();
-        final String summary = getMobileSummary(networkTypeDescription);
+        final CharSequence summary = getMobileSummary(networkTypeDescription);
         Drawable drawable = mContext.getDrawable(
                 R.drawable.ic_signal_strength_zero_bar_no_internet);
         try {
@@ -195,7 +195,7 @@
                 .setTitleItem(levelIcon, ListBuilder.ICON_IMAGE)
                 .addEndItem(toggleAction)
                 .setPrimaryAction(primaryAction)
-                .setSubtitle(Html.fromHtml(summary, Html.FROM_HTML_MODE_LEGACY));
+                .setSubtitle(summary);
         return rowBuilder;
     }
 
@@ -255,7 +255,7 @@
         return drawable;
     }
 
-    private String getMobileSummary(String networkTypeDescription) {
+    private CharSequence getMobileSummary(String networkTypeDescription) {
         if (!isMobileDataEnabled()) {
             return mContext.getString(R.string.mobile_data_off_summary);
         }
@@ -268,7 +268,7 @@
                     mContext.getString(R.string.mobile_data_connection_active),
                     networkTypeDescription);
         }
-        return summary;
+        return maybeToHtml(summary);
     }
 
     protected String getMobileTitle() {
diff --git a/src/com/android/settings/network/SubscriptionInfoListViewModel.kt b/src/com/android/settings/network/SubscriptionInfoListViewModel.kt
new file mode 100644
index 0000000..d30b21d
--- /dev/null
+++ b/src/com/android/settings/network/SubscriptionInfoListViewModel.kt
@@ -0,0 +1,52 @@
+/*
+ * 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.app.Application
+import android.telephony.SubscriptionInfo
+import android.telephony.SubscriptionManager
+import androidx.lifecycle.AndroidViewModel
+import androidx.lifecycle.viewModelScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.asExecutor
+import kotlinx.coroutines.channels.awaitClose
+import kotlinx.coroutines.flow.SharingStarted
+import kotlinx.coroutines.flow.callbackFlow
+import kotlinx.coroutines.flow.conflate
+import kotlinx.coroutines.flow.stateIn
+import kotlinx.coroutines.plus
+
+class SubscriptionInfoListViewModel(application: Application) : AndroidViewModel(application) {
+    private val scope = viewModelScope + Dispatchers.Default
+
+    val subscriptionInfoListFlow = callbackFlow<List<SubscriptionInfo>> {
+        val subscriptionManager = application.getSystemService(SubscriptionManager::class.java)!!
+
+        val listener = object : SubscriptionManager.OnSubscriptionsChangedListener() {
+            override fun onSubscriptionsChanged() {
+                trySend(subscriptionManager.activeSubscriptionInfoList ?: emptyList())
+            }
+        }
+
+        subscriptionManager.addOnSubscriptionsChangedListener(
+            Dispatchers.Default.asExecutor(),
+            listener,
+        )
+
+        awaitClose { subscriptionManager.removeOnSubscriptionsChangedListener(listener) }
+    }.conflate().stateIn(scope, SharingStarted.Eagerly, initialValue = emptyList())
+}
diff --git a/src/com/android/settings/network/SubscriptionsPreferenceController.java b/src/com/android/settings/network/SubscriptionsPreferenceController.java
index cc62189..0c3e6bd 100644
--- a/src/com/android/settings/network/SubscriptionsPreferenceController.java
+++ b/src/com/android/settings/network/SubscriptionsPreferenceController.java
@@ -19,6 +19,8 @@
 import static androidx.lifecycle.Lifecycle.Event.ON_PAUSE;
 import static androidx.lifecycle.Lifecycle.Event.ON_RESUME;
 
+import static com.android.settings.network.MobileIconGroupExtKt.getSummaryForSub;
+import static com.android.settings.network.MobileIconGroupExtKt.maybeToHtml;
 import static com.android.settings.network.telephony.MobileNetworkUtils.NO_CELL_DATA_TYPE_ICON;
 import static com.android.settingslib.mobile.MobileMappings.getIconKey;
 import static com.android.settingslib.mobile.MobileMappings.mapIconSets;
@@ -39,7 +41,6 @@
 import android.telephony.TelephonyCallback;
 import android.telephony.TelephonyDisplayInfo;
 import android.telephony.TelephonyManager;
-import android.text.Html;
 import android.util.ArraySet;
 import android.util.Log;
 
@@ -289,18 +290,19 @@
         String result = mSubsPrefCtrlInjector.getNetworkType(mContext, mConfig,
                 mTelephonyDisplayInfo, subId, isCarrierNetworkActive, mCarrierNetworkChangeMode);
         if (mSubsPrefCtrlInjector.isActiveCellularNetwork(mContext) || isCarrierNetworkActive) {
+            String connectionState = mContext.getString(isDds
+                    ? R.string.mobile_data_connection_active
+                    : R.string.mobile_data_temp_connection_active);
             if (result.isEmpty()) {
-                result = mContext.getString(isDds ? R.string.mobile_data_connection_active
-                        : R.string.mobile_data_temp_connection_active);
+                return connectionState;
             } else {
-                result = mContext.getString(R.string.preference_summary_default_combination,
-                        mContext.getString(isDds ? R.string.mobile_data_connection_active
-                                : R.string.mobile_data_temp_connection_active), result);
+                result = mContext.getString(
+                        R.string.preference_summary_default_combination, connectionState, result);
             }
         } else if (!isDataInService) {
-            result = mContext.getString(R.string.mobile_data_no_connection);
+            return mContext.getString(R.string.mobile_data_no_connection);
         }
-        return Html.fromHtml(result, Html.FROM_HTML_MODE_LEGACY);
+        return maybeToHtml(result);
     }
 
     @VisibleForTesting
@@ -579,10 +581,7 @@
                 return "";
             }
 
-            int resId = iconGroup.dataContentDescription;
-            return resId != 0
-                    ? SubscriptionManager.getResourcesForSubId(context, subId).getString(resId)
-                    : "";
+            return getSummaryForSub(iconGroup, context, subId);
         }
 
         /**
diff --git a/src/com/android/settings/network/UiccSlotUtil.java b/src/com/android/settings/network/UiccSlotUtil.java
index 49a1a85..e329c74 100644
--- a/src/com/android/settings/network/UiccSlotUtil.java
+++ b/src/com/android/settings/network/UiccSlotUtil.java
@@ -301,7 +301,8 @@
         }
         if (slotId == INVALID_PHYSICAL_SLOT_ID) {
             for (int i = 0; i < slots.length; i++) {
-                if (slots[i].isRemovable()
+                if (slots[i] != null
+                        && slots[i].isRemovable()
                         && !slots[i].getIsEuicc()
                         && !slots[i].getPorts().stream().findFirst().get().isActive()
                         && slots[i].getCardStateInfo() != UiccSlotInfo.CARD_STATE_INFO_ERROR
@@ -310,8 +311,9 @@
                 }
             }
         } else {
-            if (slotId >= slots.length || !slots[slotId].isRemovable()) {
-                throw new UiccSlotsException("The given slotId is not a removable slot: " + slotId);
+            if (slotId >= slots.length || slots[slotId] == null || !slots[slotId].isRemovable()) {
+                Log.d(TAG, "The given slotId is not a removable slot: " + slotId);
+                return INVALID_PHYSICAL_SLOT_ID;
             }
             if (!slots[slotId].getPorts().stream().findFirst().get().isActive()) {
                 return slotId;
diff --git a/src/com/android/settings/network/apn/ApnEditPageProvider.kt b/src/com/android/settings/network/apn/ApnEditPageProvider.kt
index 9f3947f..0ed54e7 100644
--- a/src/com/android/settings/network/apn/ApnEditPageProvider.kt
+++ b/src/com/android/settings/network/apn/ApnEditPageProvider.kt
@@ -19,6 +19,10 @@
 import android.net.Uri
 import android.os.Bundle
 import androidx.compose.foundation.layout.Column
+import androidx.compose.material.icons.Icons
+import androidx.compose.material.icons.outlined.Done
+import androidx.compose.material3.Icon
+import androidx.compose.material3.IconButton
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.MutableState
 import androidx.compose.runtime.getValue
@@ -31,8 +35,9 @@
 import androidx.navigation.NavType
 import androidx.navigation.navArgument
 import com.android.settings.R
+import com.android.settings.network.apn.ApnNetworkTypes.getNetworkTypeDisplayNames
+import com.android.settings.network.apn.ApnNetworkTypes.getNetworkTypeSelectedOptionsState
 import com.android.settingslib.spa.framework.common.SettingsPageProvider
-import com.android.settingslib.spa.framework.compose.stateOf
 import com.android.settingslib.spa.widget.editor.SettingsExposedDropdownMenuBox
 import com.android.settingslib.spa.widget.editor.SettingsExposedDropdownMenuCheckBox
 import com.android.settingslib.spa.widget.editor.SettingsOutlinedTextField
@@ -45,175 +50,155 @@
 const val URI_TYPE = "uriType"
 const val URI = "uri"
 const val SUB_ID = "subId"
-const val MVNO_TYPE = "mvnoType"
-const val MVNO_MATCH_DATA = "mvnoMatchData"
 const val EDIT_URL = "editUrl"
+const val INSERT_URL = "insertUrl"
 
 object ApnEditPageProvider : SettingsPageProvider {
 
-    override val name = "Apn"
-    const val TAG = "ApnPageProvider"
+    override val name = "ApnEdit"
+    const val TAG = "ApnEditPageProvider"
 
     override val parameter = listOf(
         navArgument(URI_TYPE) { type = NavType.StringType },
         navArgument(URI) { type = NavType.StringType },
         navArgument(SUB_ID) { type = NavType.IntType },
-        navArgument(MVNO_TYPE) { type = NavType.StringType },
-        navArgument(MVNO_MATCH_DATA) { type = NavType.StringType },
     )
 
     @Composable
     override fun Page(arguments: Bundle?) {
-        val apnDataInit = ApnData()
+        val uriString = arguments!!.getString(URI)
+        val uriInit = Uri.parse(String(Base64.getDecoder().decode(uriString)))
+        val subId = arguments.getInt(SUB_ID)
+        val apnDataInit = getApnDataInit(arguments, LocalContext.current, uriInit, subId)
         val apnDataCur = remember {
             mutableStateOf(apnDataInit)
         }
-        ApnPage(apnDataCur)
+        ApnPage(apnDataInit, apnDataCur, uriInit)
     }
 
     fun getRoute(
         uriType: String,
         uri: Uri,
-        subId: Int,
-        mMvnoType: String,
-        mMvnoMatchData: String
+        subId: Int
     ): String = "${name}/$uriType/${
         Base64.getUrlEncoder().encodeToString(uri.toString().toByteArray())
-    }/$subId/$mMvnoType/$mMvnoMatchData"
+    }/$subId"
 }
 
 @Composable
-fun ApnPage(apnDataCur: MutableState<ApnData>) {
+fun ApnPage(apnDataInit: ApnData, apnDataCur: MutableState<ApnData>, uriInit: Uri) {
     var apnData by apnDataCur
     val context = LocalContext.current
     val authTypeOptions = stringArrayResource(R.array.apn_auth_entries).toList()
     val apnProtocolOptions = stringArrayResource(R.array.apn_protocol_entries).toList()
-    val bearerOptionsAll = stringArrayResource(R.array.bearer_entries)
-    val bearerOptions = bearerOptionsAll.drop(1).toList()
-    val bearerEmptyVal = bearerOptionsAll[0]
-    val mvnoTypeOptions = stringArrayResource(R.array.mvno_type_entries).toList()
-    val bearerSelectedOptionsState = remember {
-        getBearerSelectedOptionsState(apnData.bearer, apnData.bearerBitmask, context)
+    val networkTypeSelectedOptionsState = remember {
+        getNetworkTypeSelectedOptionsState(apnData.networkType)
     }
     RegularScaffold(
-        title = stringResource(id = R.string.apn_edit),
+        title = if(apnDataInit.newApn) stringResource(id = R.string.apn_add) else stringResource(id = R.string.apn_edit),
+        actions = {
+            IconButton(onClick = {
+                validateAndSaveApnData(
+                    apnDataInit,
+                    apnData,
+                    context,
+                    uriInit,
+                    networkTypeSelectedOptionsState
+                )
+            }) { Icon(imageVector = Icons.Outlined.Done, contentDescription = "Save APN") }
+        }
     ) {
         Column() {
             SettingsOutlinedTextField(
-                apnData.name,
-                stringResource(R.string.apn_name),
+                value = apnData.name,
+                label = stringResource(R.string.apn_name),
                 enabled = apnData.nameEnabled
             ) { apnData = apnData.copy(name = it) }
             SettingsOutlinedTextField(
-                apnData.apn,
-                stringResource(R.string.apn_apn),
+                value = apnData.apn,
+                label = stringResource(R.string.apn_apn),
                 enabled = apnData.apnEnabled
             ) { apnData = apnData.copy(apn = it) }
             SettingsOutlinedTextField(
-                apnData.proxy,
-                stringResource(R.string.apn_http_proxy),
+                value = apnData.proxy,
+                label = stringResource(R.string.apn_http_proxy),
                 enabled = apnData.proxyEnabled
             ) { apnData = apnData.copy(proxy = it) }
             SettingsOutlinedTextField(
-                apnData.port,
-                stringResource(R.string.apn_http_port),
+                value = apnData.port,
+                label = stringResource(R.string.apn_http_port),
                 enabled = apnData.portEnabled
             ) { apnData = apnData.copy(port = it) }
             SettingsOutlinedTextField(
-                apnData.userName,
-                stringResource(R.string.apn_user),
+                value = apnData.userName,
+                label = stringResource(R.string.apn_user),
                 enabled = apnData.userNameEnabled
             ) { apnData = apnData.copy(userName = it) }
             SettingsTextFieldPassword(
-                apnData.passWord,
-                stringResource(R.string.apn_password)
+                value = apnData.passWord,
+                label = stringResource(R.string.apn_password),
+                enabled = apnData.passWordEnabled
             ) { apnData = apnData.copy(passWord = it) }
             SettingsOutlinedTextField(
-                apnData.server,
-                stringResource(R.string.apn_server),
+                value = apnData.server,
+                label = stringResource(R.string.apn_server),
                 enabled = apnData.serverEnabled
             ) { apnData = apnData.copy(server = it) }
             SettingsOutlinedTextField(
-                apnData.mmsc,
-                stringResource(R.string.apn_mmsc),
+                value = apnData.mmsc,
+                label = stringResource(R.string.apn_mmsc),
                 enabled = apnData.mmscEnabled
             ) { apnData = apnData.copy(mmsc = it) }
             SettingsOutlinedTextField(
-                apnData.mmsProxy,
-                stringResource(R.string.apn_mms_proxy),
+                value = apnData.mmsProxy,
+                label = stringResource(R.string.apn_mms_proxy),
                 enabled = apnData.mmsProxyEnabled
             ) { apnData = apnData.copy(mmsProxy = it) }
             SettingsOutlinedTextField(
-                apnData.mmsPort,
-                stringResource(R.string.apn_mms_port),
+                value = apnData.mmsPort,
+                label = stringResource(R.string.apn_mms_port),
                 enabled = apnData.mmsPortEnabled
             ) { apnData = apnData.copy(mmsPort = it) }
-            SettingsOutlinedTextField(
-                apnData.mcc,
-                stringResource(R.string.apn_mcc),
-                enabled = apnData.mccEnabled
-            ) { apnData = apnData.copy(mcc = it) }
-            SettingsOutlinedTextField(
-                apnData.mnc,
-                stringResource(R.string.apn_mnc),
-                enabled = apnData.mncEnabled
-            ) { apnData = apnData.copy(mnc = it) }
-            // Warning: apnProtocol, apnRoaming, mvnoType string2Int
             SettingsExposedDropdownMenuBox(
-                stringResource(R.string.apn_auth_type),
-                authTypeOptions,
-                apnData.authType,
-                apnData.authTypeEnabled,
+                label = stringResource(R.string.apn_auth_type),
+                options = authTypeOptions,
+                selectedOptionIndex = apnData.authType,
+                enabled = apnData.authTypeEnabled,
             ) { apnData = apnData.copy(authType = it) }
             SettingsOutlinedTextField(
-                apnData.apnType,
-                stringResource(R.string.apn_type),
+                value = apnData.apnType,
+                label = stringResource(R.string.apn_type),
                 enabled = apnData.apnTypeEnabled
-            ) { apnData = apnData.copy(apn = it) } // TODO: updateApnType
+            ) { apnData = apnData.copy(apnType = updateApnType(apnData.copy(apnType = it))) }
             SettingsExposedDropdownMenuBox(
-                stringResource(R.string.apn_protocol),
-                apnProtocolOptions,
-                apnData.apnProtocol,
-                apnData.apnProtocolEnabled
+                label = stringResource(R.string.apn_protocol),
+                options = apnProtocolOptions,
+                selectedOptionIndex = apnData.apnProtocol,
+                enabled = apnData.apnProtocolEnabled
             ) { apnData = apnData.copy(apnProtocol = it) }
             SettingsExposedDropdownMenuBox(
-                stringResource(R.string.apn_roaming_protocol),
-                apnProtocolOptions,
-                apnData.apnRoaming,
-                apnData.apnRoamingEnabled
+                label = stringResource(R.string.apn_roaming_protocol),
+                options = apnProtocolOptions,
+                selectedOptionIndex = apnData.apnRoaming,
+                enabled = apnData.apnRoamingEnabled
             ) { apnData = apnData.copy(apnRoaming = it) }
             SwitchPreference(
                 object : SwitchPreferenceModel {
                     override val title = context.resources.getString(R.string.carrier_enabled)
-                    override val changeable =
-                        stateOf(apnData.apnEnableEnabled)
-                    override val checked =
-                        stateOf(apnData.apnEnable)
+                    override val changeable = { apnData.apnEnableEnabled }
+                    override val checked = { apnData.apnEnable }
                     override val onCheckedChange = { newChecked: Boolean ->
                         apnData = apnData.copy(apnEnable = newChecked)
                     }
                 }
             )
             SettingsExposedDropdownMenuCheckBox(
-                stringResource(R.string.bearer),
-                bearerOptions,
-                bearerSelectedOptionsState,
-                bearerEmptyVal,
-                apnData.bearerEnabled
+                label = stringResource(R.string.network_type),
+                options = getNetworkTypeDisplayNames(),
+                selectedOptionsState = networkTypeSelectedOptionsState,
+                emptyVal = stringResource(R.string.network_type_unspecified),
+                enabled = apnData.networkTypeEnabled
             ) {}
-            SettingsExposedDropdownMenuBox(
-                stringResource(R.string.mvno_type),
-                mvnoTypeOptions,
-                apnData.mvnoType,
-                apnData.mvnoTypeEnabled
-            ) {
-                apnData = apnData.copy(mvnoType = it)
-            } // TODO: mvnoDescription
-            SettingsOutlinedTextField(
-                apnData.mvnoValue,
-                stringResource(R.string.mvno_match_data),
-                enabled = apnData.mvnoValueEnabled
-            ) { apnData = apnData.copy(mvnoValue = it) }
         }
     }
 }
\ No newline at end of file
diff --git a/src/com/android/settings/network/apn/ApnEditor.java b/src/com/android/settings/network/apn/ApnEditor.java
index 5ff4b35..d1b2f2f 100644
--- a/src/com/android/settings/network/apn/ApnEditor.java
+++ b/src/com/android/settings/network/apn/ApnEditor.java
@@ -48,7 +48,7 @@
 import androidx.preference.MultiSelectListPreference;
 import androidx.preference.Preference;
 import androidx.preference.Preference.OnPreferenceChangeListener;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.internal.util.ArrayUtils;
 import com.android.settings.R;
@@ -119,7 +119,7 @@
     @VisibleForTesting
     ListPreference mRoamingProtocol;
     @VisibleForTesting
-    SwitchPreference mCarrierEnabled;
+    TwoStatePreference mCarrierEnabled;
     @VisibleForTesting
     MultiSelectListPreference mBearerMulti;
     @VisibleForTesting
@@ -1337,7 +1337,7 @@
         mAuthType = (ListPreference) findPreference(KEY_AUTH_TYPE);
         mProtocol = (ListPreference) findPreference(KEY_PROTOCOL);
         mRoamingProtocol = (ListPreference) findPreference(KEY_ROAMING_PROTOCOL);
-        mCarrierEnabled = (SwitchPreference) findPreference(KEY_CARRIER_ENABLED);
+        mCarrierEnabled = (TwoStatePreference) findPreference(KEY_CARRIER_ENABLED);
         mBearerMulti = (MultiSelectListPreference) findPreference(KEY_BEARER_MULTI);
         mMvnoType = (ListPreference) findPreference(KEY_MVNO_TYPE);
         mMvnoMatchData = (EditTextPreference) findPreference("mvno_match_data");
diff --git a/src/com/android/settings/network/apn/ApnNetworkTypes.kt b/src/com/android/settings/network/apn/ApnNetworkTypes.kt
new file mode 100644
index 0000000..0ccd33a
--- /dev/null
+++ b/src/com/android/settings/network/apn/ApnNetworkTypes.kt
@@ -0,0 +1,71 @@
+/*
+ * 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.apn
+
+import android.telephony.TelephonyManager
+import androidx.compose.runtime.mutableStateListOf
+import androidx.compose.runtime.snapshots.SnapshotStateList
+
+object ApnNetworkTypes {
+    private val Types = listOf(
+        TelephonyManager.NETWORK_TYPE_LTE,
+        TelephonyManager.NETWORK_TYPE_HSPAP,
+        TelephonyManager.NETWORK_TYPE_HSPA,
+        TelephonyManager.NETWORK_TYPE_HSUPA,
+        TelephonyManager.NETWORK_TYPE_HSDPA,
+        TelephonyManager.NETWORK_TYPE_UMTS,
+        TelephonyManager.NETWORK_TYPE_EDGE,
+        TelephonyManager.NETWORK_TYPE_GPRS,
+        TelephonyManager.NETWORK_TYPE_EHRPD,
+        TelephonyManager.NETWORK_TYPE_EVDO_B,
+        TelephonyManager.NETWORK_TYPE_EVDO_A,
+        TelephonyManager.NETWORK_TYPE_EVDO_0,
+        TelephonyManager.NETWORK_TYPE_1xRTT,
+        TelephonyManager.NETWORK_TYPE_CDMA,
+        TelephonyManager.NETWORK_TYPE_NR,
+    )
+
+    fun getNetworkTypeDisplayNames(): List<String> =
+        Types.map { TelephonyManager.getNetworkTypeName(it) }
+
+    /**
+     * Gets the selected Network type Selected Options according to network type.
+     * @param networkType Initialized network type bitmask, often multiple network type options may
+     *                    be included.
+     */
+    fun getNetworkTypeSelectedOptionsState(networkType: Long): SnapshotStateList<Int> {
+        val networkTypeSelectedOptionsState = mutableStateListOf<Int>()
+        Types.forEachIndexed { index, type ->
+            if (networkType and TelephonyManager.getBitMaskForNetworkType(type) != 0L) {
+                networkTypeSelectedOptionsState.add(index)
+            }
+        }
+        return networkTypeSelectedOptionsState
+    }
+
+    /**
+     * Gets the network type according to the selected Network type Selected Options.
+     * @param networkTypeSelectedOptionsState the selected Network type Selected Options.
+     */
+    fun getNetworkType(networkTypeSelectedOptionsState: SnapshotStateList<Int>): Long {
+        var networkType = 0L
+        networkTypeSelectedOptionsState.forEach { option ->
+            networkType = networkType or TelephonyManager.getBitMaskForNetworkType(Types[option])
+        }
+        return networkType
+    }
+}
diff --git a/src/com/android/settings/network/apn/ApnPreference.java b/src/com/android/settings/network/apn/ApnPreference.java
index 07d371a..dcc50cd 100755
--- a/src/com/android/settings/network/apn/ApnPreference.java
+++ b/src/com/android/settings/network/apn/ApnPreference.java
@@ -157,7 +157,7 @@
         final Uri url = ContentUris.withAppendedId(Telephony.Carriers.CONTENT_URI, pos);
 
         if (Flags.newApnPageEnabled()) {
-            String route = ApnEditPageProvider.INSTANCE.getRoute(EDIT_URL, url, mSubId, "_", "_");
+            String route = ApnEditPageProvider.INSTANCE.getRoute(EDIT_URL, url, mSubId);
             SpaActivity.startSpaActivity(context, route);
         } else {
             final Intent editIntent = new Intent(Intent.ACTION_EDIT, url);
diff --git a/src/com/android/settings/network/apn/ApnRepository.kt b/src/com/android/settings/network/apn/ApnRepository.kt
new file mode 100644
index 0000000..e0121b4
--- /dev/null
+++ b/src/com/android/settings/network/apn/ApnRepository.kt
@@ -0,0 +1,197 @@
+/*
+ * 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.apn
+
+import android.content.ContentValues
+import android.content.Context
+import android.net.Uri
+import android.provider.Telephony
+import android.util.Log
+import com.android.settings.R
+import com.android.settingslib.utils.ThreadUtils
+import java.util.Locale
+
+const val NAME_INDEX = 1
+const val APN_INDEX = 2
+const val PROXY_INDEX = 3
+const val PORT_INDEX = 4
+const val USER_INDEX = 5
+const val SERVER_INDEX = 6
+const val PASSWORD_INDEX = 7
+const val MMSC_INDEX = 8
+const val MMSPROXY_INDEX = 9
+const val MMSPORT_INDEX = 10
+const val AUTH_TYPE_INDEX = 11
+const val TYPE_INDEX = 12
+const val PROTOCOL_INDEX = 13
+const val CARRIER_ENABLED_INDEX = 14
+const val NETWORK_TYPE_INDEX = 15
+const val ROAMING_PROTOCOL_INDEX = 16
+const val EDITED_INDEX = 17
+const val USER_EDITABLE_INDEX = 18
+const val CARRIER_ID_INDEX = 19
+
+val sProjection = arrayOf(
+    Telephony.Carriers._ID,  // 0
+    Telephony.Carriers.NAME,  // 1
+    Telephony.Carriers.APN,  // 2
+    Telephony.Carriers.PROXY,  // 3
+    Telephony.Carriers.PORT,  // 4
+    Telephony.Carriers.USER,  // 5
+    Telephony.Carriers.SERVER,  // 6
+    Telephony.Carriers.PASSWORD,  // 7
+    Telephony.Carriers.MMSC,  // 8
+    Telephony.Carriers.MMSPROXY,  // 9
+    Telephony.Carriers.MMSPORT,  // 10
+    Telephony.Carriers.AUTH_TYPE,  // 11
+    Telephony.Carriers.TYPE,  // 12
+    Telephony.Carriers.PROTOCOL,  // 13
+    Telephony.Carriers.CARRIER_ENABLED,  // 14
+    Telephony.Carriers.NETWORK_TYPE_BITMASK, // 15
+    Telephony.Carriers.ROAMING_PROTOCOL,  // 16
+    Telephony.Carriers.EDITED_STATUS,  // 17
+    Telephony.Carriers.USER_EDITABLE,  // 18
+    Telephony.Carriers.CARRIER_ID // 19
+)
+
+const val TAG = "ApnRepository"
+
+/**
+ * Query apn related information based on uri.
+ * @param uri URI data used for query.
+ *
+ * @return Stored apn related information.
+ */
+fun getApnDataFromUri(uri: Uri, context: Context): ApnData {
+    var apnData = ApnData()
+    val contentResolver = context.contentResolver
+    val apnProtocolOptions = context.resources.getStringArray(R.array.apn_protocol_entries).toList()
+
+    contentResolver.query(
+        uri,
+        sProjection,
+        null /* selection */,
+        null /* selectionArgs */,
+        null /* sortOrder */
+    ).use { cursor ->
+        if (cursor != null && cursor.moveToFirst()) {
+            val name = cursor.getString(NAME_INDEX)
+            val apn = cursor.getString(APN_INDEX)
+            val proxy = cursor.getString(PROXY_INDEX)
+            val port = cursor.getString(PORT_INDEX)
+            val userName = cursor.getString(USER_INDEX)
+            val server = cursor.getString(SERVER_INDEX)
+            val passWord = cursor.getString(PASSWORD_INDEX)
+            val mmsc = cursor.getString(MMSC_INDEX)
+            val mmsProxy = cursor.getString(MMSPROXY_INDEX)
+            val mmsPort = cursor.getString(MMSPORT_INDEX)
+            val authType = cursor.getInt(AUTH_TYPE_INDEX)
+            val apnType = cursor.getString(TYPE_INDEX)
+            val apnProtocol = convertProtocol2Options(cursor.getString(PROTOCOL_INDEX), context)
+            val apnRoaming =
+                convertProtocol2Options(cursor.getString(ROAMING_PROTOCOL_INDEX), context)
+            val apnEnable = cursor.getInt(CARRIER_ENABLED_INDEX) == 1
+            val networkType = cursor.getLong(NETWORK_TYPE_INDEX)
+
+            val edited = cursor.getInt(EDITED_INDEX)
+            val userEditable = cursor.getInt(USER_EDITABLE_INDEX)
+            val carrierId = cursor.getInt(CARRIER_ID_INDEX)
+
+            apnData = apnData.copy(
+                name = name,
+                apn = apn,
+                proxy = proxy,
+                port = port,
+                userName = userName,
+                passWord = passWord,
+                server = server,
+                mmsc = mmsc,
+                mmsProxy = mmsProxy,
+                mmsPort = mmsPort,
+                authType = authType,
+                apnType = apnType,
+                apnProtocol = apnProtocolOptions.indexOf(apnProtocol),
+                apnRoaming = apnProtocolOptions.indexOf(apnRoaming),
+                apnEnable = apnEnable,
+                networkType = networkType,
+                edited = edited,
+                userEditable = userEditable,
+                carrierId = carrierId
+            )
+        }
+    }
+    if (apnData.name == "") {
+        Log.d(TAG, "Can't get apnData from Uri $uri")
+    }
+    return apnData
+}
+
+/**
+ * Returns The UI choice (e.g., "IPv4/IPv6") corresponding to the given
+ * raw value of the protocol preference (e.g., "IPV4V6"). If unknown,
+ * return null.
+ *
+ * @return UI choice
+ */
+private fun convertProtocol2Options(raw: String, context: Context): String {
+    val apnProtocolOptions = context.resources.getStringArray(R.array.apn_protocol_entries).toList()
+    val apnProtocolValues = context.resources.getStringArray(R.array.apn_protocol_values).toList()
+
+    var uRaw = raw.uppercase(Locale.getDefault())
+    uRaw = if (uRaw == "IPV4") "IP" else uRaw
+    val protocolIndex = apnProtocolValues.indexOf(uRaw)
+    return if (protocolIndex == -1) {
+        ""
+    } else {
+        try {
+            apnProtocolOptions[protocolIndex]
+        } catch (e: ArrayIndexOutOfBoundsException) {
+            ""
+        }
+    }
+}
+
+fun convertOptions2Protocol(protocolIndex: Int, context: Context): String {
+    val apnProtocolValues = context.resources.getStringArray(R.array.apn_protocol_values).toList()
+
+    return if (protocolIndex == -1) {
+        ""
+    } else {
+        try {
+            apnProtocolValues[protocolIndex]
+        } catch (e: ArrayIndexOutOfBoundsException) {
+            ""
+        }
+    }
+}
+
+fun updateApnDataToDatabase(newApn: Boolean, values: ContentValues, context: Context, uriInit: Uri) {
+    ThreadUtils.postOnBackgroundThread {
+        if (newApn) {
+            // Add a new apn to the database
+            val newUri = context.contentResolver.insert(uriInit, values)
+            if (newUri == null) {
+                Log.e(TAG, "Can't add a new apn to database $uriInit")
+            }
+        } else {
+            // Update the existing apn
+            context.contentResolver.update(
+                uriInit, values, null /* where */, null /* selection Args */
+            )
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/network/apn/ApnSettings.java b/src/com/android/settings/network/apn/ApnSettings.java
index 4addf77..c3feae8 100755
--- a/src/com/android/settings/network/apn/ApnSettings.java
+++ b/src/com/android/settings/network/apn/ApnSettings.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.network.apn;
 
+import static com.android.settings.network.apn.ApnEditPageProviderKt.INSERT_URL;
+
 import android.app.Activity;
 import android.app.Dialog;
 import android.app.ProgressDialog;
@@ -57,7 +59,9 @@
 
 import com.android.settings.R;
 import com.android.settings.RestrictedSettingsFragment;
+import com.android.settings.flags.Flags;
 import com.android.settings.network.SubscriptionUtil;
+import com.android.settings.spa.SpaActivity;
 import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
 
 import java.util.ArrayList;
@@ -420,16 +424,22 @@
     }
 
     private void addNewApn() {
-        final Intent intent = new Intent(Intent.ACTION_INSERT, Telephony.Carriers.CONTENT_URI);
         final int subId = mSubscriptionInfo != null ? mSubscriptionInfo.getSubscriptionId()
                 : SubscriptionManager.INVALID_SUBSCRIPTION_ID;
-        intent.putExtra(SUB_ID, subId);
-        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
-        if (!TextUtils.isEmpty(mMvnoType) && !TextUtils.isEmpty(mMvnoMatchData)) {
-            intent.putExtra(MVNO_TYPE, mMvnoType);
-            intent.putExtra(MVNO_MATCH_DATA, mMvnoMatchData);
+        if (Flags.newApnPageEnabled()) {
+            String route = ApnEditPageProvider.INSTANCE.getRoute(
+                    INSERT_URL, Telephony.Carriers.CONTENT_URI, subId);
+            SpaActivity.startSpaActivity(getContext(), route);
+        } else {
+            final Intent intent = new Intent(Intent.ACTION_INSERT, Telephony.Carriers.CONTENT_URI);
+            intent.putExtra(SUB_ID, subId);
+            intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
+            if (!TextUtils.isEmpty(mMvnoType) && !TextUtils.isEmpty(mMvnoMatchData)) {
+                intent.putExtra(MVNO_TYPE, mMvnoType);
+                intent.putExtra(MVNO_MATCH_DATA, mMvnoMatchData);
+            }
+            startActivity(intent);
         }
-        startActivity(intent);
     }
 
     @Override
diff --git a/src/com/android/settings/network/apn/ApnStatus.kt b/src/com/android/settings/network/apn/ApnStatus.kt
index 5d64142..3ccd71e 100644
--- a/src/com/android/settings/network/apn/ApnStatus.kt
+++ b/src/com/android/settings/network/apn/ApnStatus.kt
@@ -16,12 +16,20 @@
 
 package com.android.settings.network.apn
 
+import android.content.ContentValues
 import android.content.Context
+import android.net.Uri
+import android.os.Bundle
 import android.provider.Telephony
+import android.telephony.CarrierConfigManager
 import android.telephony.TelephonyManager
-import androidx.compose.runtime.mutableStateListOf
+import android.text.TextUtils
+import android.util.Log
 import androidx.compose.runtime.snapshots.SnapshotStateList
+import com.android.internal.util.ArrayUtils
 import com.android.settings.R
+import com.android.settings.network.apn.ApnNetworkTypes.getNetworkType
+import java.util.Locale
 
 data class ApnData(
     val name: String = "",
@@ -34,72 +42,475 @@
     val mmsc: String = "",
     val mmsProxy: String = "",
     val mmsPort: String = "",
-    val mcc: String = "",
-    val mnc: String = "",
     val authType: Int = -1,
     val apnType: String = "",
     val apnProtocol: Int = -1,
     val apnRoaming: Int = -1,
     val apnEnable: Boolean = true,
-    val bearer: Int = 0,
-    val mvnoType: Int = -1,
-    var mvnoValue: String = "",
-    val bearerBitmask: Int = 0,
+    val networkType: Long = 0,
     val edited: Int = Telephony.Carriers.USER_EDITED,
     val userEditable: Int = 1,
-    val carrierId: Int = TelephonyManager.UNKNOWN_CARRIER_ID
+    val carrierId: Int = TelephonyManager.UNKNOWN_CARRIER_ID,
+    val nameEnabled: Boolean = true,
+    val apnEnabled: Boolean = true,
+    val proxyEnabled: Boolean = true,
+    val portEnabled: Boolean = true,
+    val userNameEnabled: Boolean = true,
+    val passWordEnabled: Boolean = true,
+    val serverEnabled: Boolean = true,
+    val mmscEnabled: Boolean = true,
+    val mmsProxyEnabled: Boolean = true,
+    val mmsPortEnabled: Boolean = true,
+    val authTypeEnabled: Boolean = true,
+    val apnTypeEnabled: Boolean = true,
+    val apnProtocolEnabled: Boolean = true,
+    val apnRoamingEnabled: Boolean = true,
+    val apnEnableEnabled: Boolean = true,
+    val networkTypeEnabled: Boolean = true,
+    val newApn: Boolean = false,
+    val subId: Int = -1,
+    val customizedConfig: CustomizedConfig = CustomizedConfig()
 ) {
-    var nameEnabled = true
-    var apnEnabled = true
-    var proxyEnabled = true
-    var portEnabled = true
-    var userNameEnabled = true
-    var passWordEnabled = true
-    var serverEnabled = true
-    var mmscEnabled = true
-    var mmsProxyEnabled = true
-    var mmsPortEnabled = true
-    var mccEnabled = true
-    var mncEnabled = true
-    var authTypeEnabled = true
-    var apnTypeEnabled = true
-    var apnProtocolEnabled = true
-    var apnRoamingEnabled = true
-    var apnEnableEnabled = true
-    var bearerEnabled = true
-    var mvnoTypeEnabled = true
-    var mvnoValueEnabled = false
+    fun getContentValues(context: Context): ContentValues {
+        val values = ContentValues()
+        values.put(Telephony.Carriers.NAME, name)
+        values.put(Telephony.Carriers.APN, apn)
+        values.put(Telephony.Carriers.PROXY, proxy)
+        values.put(Telephony.Carriers.PORT, port)
+        values.put(Telephony.Carriers.MMSPROXY, mmsProxy)
+        values.put(Telephony.Carriers.MMSPORT, mmsPort)
+        values.put(Telephony.Carriers.USER, userName)
+        values.put(Telephony.Carriers.SERVER, server)
+        values.put(Telephony.Carriers.PASSWORD, passWord)
+        values.put(Telephony.Carriers.MMSC, mmsc)
+        values.put(Telephony.Carriers.AUTH_TYPE, authType)
+        values.put(Telephony.Carriers.PROTOCOL, convertOptions2Protocol(apnProtocol, context))
+        values.put(
+            Telephony.Carriers.ROAMING_PROTOCOL,
+            convertOptions2Protocol(apnRoaming, context)
+        )
+        values.put(Telephony.Carriers.TYPE, apnType)
+        values.put(Telephony.Carriers.NETWORK_TYPE_BITMASK, networkType)
+        values.put(Telephony.Carriers.CARRIER_ENABLED, apnEnable)
+        values.put(Telephony.Carriers.EDITED_STATUS, Telephony.Carriers.USER_EDITED)
+        return values
+    }
+}
+
+data class CustomizedConfig(
+    val newApn: Boolean = false,
+    val readOnlyApn: Boolean = false,
+    val isAddApnAllowed: Boolean = true,
+    val readOnlyApnTypes: List<String> = emptyList(),
+    val readOnlyApnFields: List<String> = emptyList(),
+    val defaultApnTypes: List<String> = emptyList(),
+    val defaultApnProtocol: String = "",
+    val defaultApnRoamingProtocol: String = "",
+)
+
+/**
+ * APN types for data connections.  These are usage categories for an APN
+ * entry.  One APN entry may support multiple APN types, eg, a single APN
+ * may service regular internet traffic ("default") as well as MMS-specific
+ * connections.<br></br>
+ * APN_TYPE_ALL is a special type to indicate that this APN entry can
+ * service all data connections.
+ */
+const val APN_TYPE_ALL = "*"
+
+/** APN type for default data traffic  */
+const val APN_TYPE_DEFAULT = "default"
+
+/** APN type for MMS traffic  */
+const val APN_TYPE_MMS = "mms"
+
+/** APN type for SUPL assisted GPS  */
+const val APN_TYPE_SUPL = "supl"
+
+/** APN type for DUN traffic  */
+const val APN_TYPE_DUN = "dun"
+
+/** APN type for HiPri traffic  */
+const val APN_TYPE_HIPRI = "hipri"
+
+/** APN type for FOTA  */
+const val APN_TYPE_FOTA = "fota"
+
+/** APN type for IMS  */
+const val APN_TYPE_IMS = "ims"
+
+/** APN type for CBS  */
+const val APN_TYPE_CBS = "cbs"
+
+/** APN type for IA Initial Attach APN  */
+const val APN_TYPE_IA = "ia"
+
+/** APN type for Emergency PDN. This is not an IA apn, but is used
+ * for access to carrier services in an emergency call situation.  */
+const val APN_TYPE_EMERGENCY = "emergency"
+
+/** APN type for Mission Critical Services  */
+const val APN_TYPE_MCX = "mcx"
+
+/** APN type for XCAP  */
+const val APN_TYPE_XCAP = "xcap"
+val APN_TYPES = arrayOf(
+    APN_TYPE_DEFAULT,
+    APN_TYPE_MMS,
+    APN_TYPE_SUPL,
+    APN_TYPE_DUN,
+    APN_TYPE_HIPRI,
+    APN_TYPE_FOTA,
+    APN_TYPE_IMS,
+    APN_TYPE_CBS,
+    APN_TYPE_IA,
+    APN_TYPE_EMERGENCY,
+    APN_TYPE_MCX,
+    APN_TYPE_XCAP
+)
+
+/**
+ * Initialize ApnData according to the arguments.
+ * @param arguments The data passed in when the user calls PageProvider.
+ * @param uriInit The decoded user incoming uri data in Page.
+ * @param subId The subId obtained in arguments.
+ *
+ * @return Initialized CustomizedConfig information.
+ */
+fun getApnDataInit(arguments: Bundle, context: Context, uriInit: Uri, subId: Int): ApnData {
+
+    val uriType = arguments.getString(URI_TYPE)!!
+
+    if (!uriInit.isPathPrefixMatch(Telephony.Carriers.CONTENT_URI)) {
+        Log.e(TAG, "Insert request not for carrier table. Uri: $uriInit")
+        return ApnData() //TODO: finish
+    }
+
+    var apnDataInit = when (uriType) {
+        EDIT_URL -> getApnDataFromUri(uriInit, context)
+        INSERT_URL -> ApnData()
+        else -> ApnData() //TODO: finish
+    }
+
+    if (uriType == INSERT_URL) {
+        apnDataInit = apnDataInit.copy(newApn = true)
+    }
+
+    apnDataInit = apnDataInit.copy(subId = subId)
+    val configManager =
+        context.getSystemService(Context.CARRIER_CONFIG_SERVICE) as CarrierConfigManager
+    apnDataInit =
+        apnDataInit.copy(customizedConfig = getCarrierCustomizedConfig(apnDataInit, configManager))
+
+    apnDataInit = apnDataInit.copy(
+        apnEnableEnabled =
+        context.resources.getBoolean(R.bool.config_allow_edit_carrier_enabled)
+    )
+    // TODO: mIsCarrierIdApn
+    disableInit(apnDataInit)
+    return apnDataInit
 }
 
 /**
- * Initialize the selected Bearer Selected Options according to bearer.
- * @param bearer Initialized bearer options.
- * @param bearerBitmask Initialized bearer bitmask, often multiple bearer options may be included.
- * @param context The context to get bearerValues.
+ * Validates the apn data and save it to the database if it's valid.
+ * A dialog with error message will be displayed if the APN data is invalid.
+ *
+ * @return true if there is no error
+ */
+fun validateAndSaveApnData(
+    apnDataInit: ApnData,
+    apnData: ApnData,
+    context: Context,
+    uriInit: Uri,
+    networkTypeSelectedOptionsState: SnapshotStateList<Int>
+): Boolean {
+    // Nothing to do if it's a read only APN
+    if (apnData.customizedConfig.readOnlyApn) {
+        return true
+    }
+    val errorMsg = validateApnData(apnData, context)
+    if (errorMsg != null) {
+        //TODO: showError(this)
+        return false
+    }
+    val newApnData = apnData.copy(networkType = getNetworkType(networkTypeSelectedOptionsState))
+    if (newApnData.newApn || (newApnData != apnDataInit)) {
+        Log.d(TAG, "[validateAndSaveApnData] newApnData.networkType: ${newApnData.networkType}")
+        updateApnDataToDatabase(
+            newApnData.newApn,
+            newApnData.getContentValues(context),
+            context,
+            uriInit
+        )
+    }
+    return true
+}
+
+/**
+ * Validates whether the apn data is valid.
  *
  * @return An error message if the apn data is invalid, otherwise return null.
  */
-fun getBearerSelectedOptionsState(
-    bearer: Int,
-    bearerBitmask: Int,
-    context: Context
-): SnapshotStateList<Int> {
-    val bearerValues = context.resources.getStringArray(R.array.bearer_values)
-    val bearerSelectedOptionsState = mutableStateListOf<Int>()
-    if (bearerBitmask != 0) {
-        var i = 1
-        var _bearerBitmask = bearerBitmask
-        while (_bearerBitmask != 0) {
-            if (_bearerBitmask and 1 == 1 && !bearerSelectedOptionsState.contains(i)) {
-                bearerSelectedOptionsState.add(bearerValues.indexOf("$i") - 1)
+fun validateApnData(apnData: ApnData, context: Context): String? {
+    var errorMsg: String? = null
+    val name = apnData.name
+    val apn = apnData.apn
+    if (name == "") {
+        errorMsg = context.resources.getString(R.string.error_name_empty)
+    } else if (apn == "") {
+        errorMsg = context.resources.getString(R.string.error_apn_empty)
+    }
+    if (errorMsg == null) {
+        // if carrier does not allow editing certain apn types, make sure type does not include
+        // those
+        if (!ArrayUtils.isEmpty(apnData.customizedConfig.readOnlyApnTypes)
+            && apnTypesMatch(
+                apnData.customizedConfig.readOnlyApnTypes,
+                getUserEnteredApnType(apnData.apnType, apnData.customizedConfig.readOnlyApnTypes)
+            )
+        ) {
+            val stringBuilder = StringBuilder()
+            for (type in apnData.customizedConfig.readOnlyApnTypes) {
+                stringBuilder.append(type).append(", ")
+                Log.d(TAG, "validateApnData: appending type: $type")
             }
-            _bearerBitmask = _bearerBitmask shr 1
-            i++
+            // remove last ", "
+            if (stringBuilder.length >= 2) {
+                stringBuilder.delete(stringBuilder.length - 2, stringBuilder.length)
+            }
+            errorMsg = String.format(
+                context.resources.getString(R.string.error_adding_apn_type),
+                stringBuilder
+            )
         }
     }
-    if (bearer != 0 && !bearerSelectedOptionsState.contains(bearer)) {
-        // add mBearerInitialVal to bearers
-        bearerSelectedOptionsState.add(bearerValues.indexOf("$bearer") - 1)
-    }
-    return bearerSelectedOptionsState
+    return errorMsg
 }
+
+private fun getUserEnteredApnType(apnType: String, readOnlyApnTypes: List<String>): String {
+    // if user has not specified a type, map it to "ALL APN TYPES THAT ARE NOT READ-ONLY"
+    // but if user enter empty type, map it just for default
+    var userEnteredApnType = apnType
+    if (userEnteredApnType != "") userEnteredApnType =
+        userEnteredApnType.trim { it <= ' ' }
+    if (TextUtils.isEmpty(userEnteredApnType) || APN_TYPE_ALL == userEnteredApnType) {
+        userEnteredApnType = getEditableApnType(readOnlyApnTypes)
+    }
+    Log.d(
+        TAG, "getUserEnteredApnType: changed apn type to editable apn types: "
+            + userEnteredApnType
+    )
+    return userEnteredApnType
+}
+
+private fun getEditableApnType(readOnlyApnTypes: List<String>): String {
+    val editableApnTypes = StringBuilder()
+    var first = true
+    for (apnType in APN_TYPES) {
+        // add APN type if it is not read-only and is not wild-cardable
+        if (!readOnlyApnTypes.contains(apnType)
+            && apnType != APN_TYPE_IA
+            && apnType != APN_TYPE_EMERGENCY
+            && apnType != APN_TYPE_MCX
+            && apnType != APN_TYPE_IMS
+        ) {
+            if (first) {
+                first = false
+            } else {
+                editableApnTypes.append(",")
+            }
+            editableApnTypes.append(apnType)
+        }
+    }
+    return editableApnTypes.toString()
+}
+
+/**
+ * Initialize CustomizedConfig information through subId.
+ * @param subId subId information obtained from arguments.
+ *
+ * @return Initialized CustomizedConfig information.
+ */
+fun getCarrierCustomizedConfig(
+    apnInit: ApnData,
+    configManager: CarrierConfigManager
+): CustomizedConfig {
+    val b = configManager.getConfigForSubId(
+        apnInit.subId,
+        CarrierConfigManager.KEY_READ_ONLY_APN_TYPES_STRING_ARRAY,
+        CarrierConfigManager.KEY_READ_ONLY_APN_FIELDS_STRING_ARRAY,
+        CarrierConfigManager.KEY_APN_SETTINGS_DEFAULT_APN_TYPES_STRING_ARRAY,
+        CarrierConfigManager.Apn.KEY_SETTINGS_DEFAULT_PROTOCOL_STRING,
+        CarrierConfigManager.Apn.KEY_SETTINGS_DEFAULT_ROAMING_PROTOCOL_STRING,
+        CarrierConfigManager.KEY_ALLOW_ADDING_APNS_BOOL
+    )
+    val customizedConfig = CustomizedConfig(
+        readOnlyApnTypes = b.getStringArray(
+            CarrierConfigManager.KEY_READ_ONLY_APN_TYPES_STRING_ARRAY
+        )?.toList() ?: emptyList(), readOnlyApnFields = b.getStringArray(
+            CarrierConfigManager.KEY_READ_ONLY_APN_FIELDS_STRING_ARRAY
+        )?.toList() ?: emptyList(), defaultApnTypes = b.getStringArray(
+            CarrierConfigManager.KEY_APN_SETTINGS_DEFAULT_APN_TYPES_STRING_ARRAY
+        )?.toList() ?: emptyList(), defaultApnProtocol = b.getString(
+            CarrierConfigManager.Apn.KEY_SETTINGS_DEFAULT_PROTOCOL_STRING
+        ) ?: "", defaultApnRoamingProtocol = b.getString(
+            CarrierConfigManager.Apn.KEY_SETTINGS_DEFAULT_ROAMING_PROTOCOL_STRING
+        ) ?: "", isAddApnAllowed = b.getBoolean(CarrierConfigManager.KEY_ALLOW_ADDING_APNS_BOOL)
+    )
+    if (!ArrayUtils.isEmpty(customizedConfig.readOnlyApnTypes)) {
+        Log.d(
+            TAG,
+            "getCarrierCustomizedConfig: read only APN type: " + customizedConfig.readOnlyApnTypes.joinToString(
+                ", "
+            )
+        )
+    }
+    if (!ArrayUtils.isEmpty(customizedConfig.defaultApnTypes)) {
+        Log.d(
+            TAG,
+            "getCarrierCustomizedConfig: default apn types: " + customizedConfig.defaultApnTypes.joinToString(
+                ", "
+            )
+        )
+    }
+    if (!TextUtils.isEmpty(customizedConfig.defaultApnProtocol)) {
+        Log.d(
+            TAG,
+            "getCarrierCustomizedConfig: default apn protocol: ${customizedConfig.defaultApnProtocol}"
+        )
+    }
+    if (!TextUtils.isEmpty(customizedConfig.defaultApnRoamingProtocol)) {
+        Log.d(
+            TAG,
+            "getCarrierCustomizedConfig: default apn roaming protocol: ${customizedConfig.defaultApnRoamingProtocol}"
+        )
+    }
+    if (!customizedConfig.isAddApnAllowed) {
+        Log.d(TAG, "getCarrierCustomizedConfig: not allow to add new APN")
+    }
+    return customizedConfig
+}
+
+fun disableInit(apnDataInit: ApnData): ApnData {
+    var apnData = apnDataInit
+    val isUserEdited = apnDataInit.edited == Telephony.Carriers.USER_EDITED
+    Log.d(TAG, "disableInit: EDITED $isUserEdited")
+    // if it's not a USER_EDITED apn, check if it's read-only
+    if (!isUserEdited && (apnDataInit.userEditable == 0
+            || apnTypesMatch(apnDataInit.customizedConfig.readOnlyApnTypes, apnDataInit.apnType))
+    ) {
+        Log.d(TAG, "disableInit: read-only APN")
+        apnData =
+            apnDataInit.copy(customizedConfig = apnDataInit.customizedConfig.copy(readOnlyApn = true))
+        apnData = disableAllFields(apnData)
+    } else if (!ArrayUtils.isEmpty(apnData.customizedConfig.readOnlyApnFields)) {
+        Log.d(
+            TAG,
+            "disableInit: mReadOnlyApnFields ${
+                apnData.customizedConfig.readOnlyApnFields.joinToString(", ")
+            })"
+        )
+        apnData = disableFields(apnData.customizedConfig.readOnlyApnFields, apnData)
+    }
+    return apnData
+}
+
+/**
+ * Disables all fields so that user cannot modify the APN
+ */
+private fun disableAllFields(apnDataInit: ApnData): ApnData {
+    var apnData = apnDataInit
+    apnData = apnData.copy(nameEnabled = false)
+    apnData = apnData.copy(apnEnabled = false)
+    apnData = apnData.copy(proxyEnabled = false)
+    apnData = apnData.copy(portEnabled = false)
+    apnData = apnData.copy(userNameEnabled = false)
+    apnData = apnData.copy(passWordEnabled = false)
+    apnData = apnData.copy(serverEnabled = false)
+    apnData = apnData.copy(mmscEnabled = false)
+    apnData = apnData.copy(mmsProxyEnabled = false)
+    apnData = apnData.copy(mmsPortEnabled = false)
+    apnData = apnData.copy(authTypeEnabled = false)
+    apnData = apnData.copy(apnTypeEnabled = false)
+    apnData = apnData.copy(apnProtocolEnabled = false)
+    apnData = apnData.copy(apnRoamingEnabled = false)
+    apnData = apnData.copy(apnEnableEnabled = false)
+    apnData = apnData.copy(networkTypeEnabled = false)
+    return apnData
+}
+
+/**
+ * Disables given fields so that user cannot modify them
+ *
+ * @param apnFields fields to be disabled
+ */
+private fun disableFields(apnFields: List<String>, apnDataInit: ApnData): ApnData {
+    var apnData = apnDataInit
+    for (apnField in apnFields) {
+        apnData = disableByFieldName(apnField, apnDataInit)
+    }
+    return apnData
+}
+
+private fun disableByFieldName(apnField: String, apnDataInit: ApnData): ApnData {
+    var apnData = apnDataInit
+    when (apnField) {
+        Telephony.Carriers.NAME -> apnData = apnData.copy(nameEnabled = false)
+        Telephony.Carriers.APN -> apnData = apnData.copy(apnEnabled = false)
+        Telephony.Carriers.PROXY -> apnData = apnData.copy(proxyEnabled = false)
+        Telephony.Carriers.PORT -> apnData = apnData.copy(portEnabled = false)
+        Telephony.Carriers.USER -> apnData = apnData.copy(userNameEnabled = false)
+        Telephony.Carriers.SERVER -> apnData = apnData.copy(serverEnabled = false)
+        Telephony.Carriers.PASSWORD -> apnData = apnData.copy(passWordEnabled = false)
+        Telephony.Carriers.MMSPROXY -> apnData = apnData.copy(mmsProxyEnabled = false)
+        Telephony.Carriers.MMSPORT -> apnData = apnData.copy(mmsPortEnabled = false)
+        Telephony.Carriers.MMSC -> apnData = apnData.copy(mmscEnabled = false)
+        Telephony.Carriers.TYPE -> apnData = apnData.copy(apnTypeEnabled = false)
+        Telephony.Carriers.AUTH_TYPE -> apnData = apnData.copy(authTypeEnabled = false)
+        Telephony.Carriers.PROTOCOL -> apnData = apnData.copy(apnProtocolEnabled = false)
+        Telephony.Carriers.ROAMING_PROTOCOL -> apnData = apnData.copy(apnRoamingEnabled = false)
+        Telephony.Carriers.CARRIER_ENABLED -> apnData = apnData.copy(apnEnableEnabled = false)
+        Telephony.Carriers.BEARER, Telephony.Carriers.BEARER_BITMASK,
+        Telephony.Carriers.NETWORK_TYPE_BITMASK -> apnData = apnData.copy(
+            networkTypeEnabled =
+            false
+        )
+    }
+    return apnData
+}
+
+private fun apnTypesMatch(apnTypeList: List<String>, apnType: String): Boolean {
+    val normalizeApnTypeList = apnTypeList.map(::normalizeApnType)
+    return hasAllApns(normalizeApnTypeList) ||
+        apnType.split(",").map(::normalizeApnType).all { it in normalizeApnTypeList }
+}
+
+fun hasAllApns(apnTypes: List<String>): Boolean {
+    if (APN_TYPE_ALL in apnTypes) {
+        Log.d(TAG, "hasAllApns: true because apnTypes.contains(APN_TYPE_ALL)")
+        return true
+    }
+    return APN_TYPES.all { it in apnTypes }
+}
+
+private fun normalizeApnType(apnType: String): String =
+    apnType.trim().lowercase(Locale.getDefault())
+
+fun updateApnType(apnData: ApnData): String {
+    return if (apnData.apnType == "" && apnData.customizedConfig.defaultApnTypes.isNotEmpty())
+        getEditableApnType(apnData)
+    else
+        apnData.apnType
+}
+
+private fun getEditableApnType(apnData: ApnData): String {
+    val customizedConfig = apnData.customizedConfig
+    return customizedConfig.defaultApnTypes.filterNot { apnType ->
+        customizedConfig.readOnlyApnTypes.contains(apnType) || apnType in listOf(
+            APN_TYPE_IA,
+            APN_TYPE_EMERGENCY,
+            APN_TYPE_MCX,
+            APN_TYPE_IMS,
+        )
+    }.joinToString()
+}
\ No newline at end of file
diff --git a/src/com/android/settings/network/telephony/AutoDataSwitchPreferenceController.java b/src/com/android/settings/network/telephony/AutoDataSwitchPreferenceController.java
index 7ebd2d7..378d9a1 100644
--- a/src/com/android/settings/network/telephony/AutoDataSwitchPreferenceController.java
+++ b/src/com/android/settings/network/telephony/AutoDataSwitchPreferenceController.java
@@ -37,7 +37,7 @@
 import androidx.lifecycle.OnLifecycleEvent;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.settings.R;
@@ -64,7 +64,7 @@
         SubscriptionsChangeListener.SubscriptionsChangeListenerClient {
     private static final String LOG_TAG = "AutoDataSwitchPrefCtrl";
 
-    private SwitchPreference mPreference;
+    private TwoStatePreference mPreference;
     private SubscriptionsChangeListener mChangeListener;
     private TelephonyManager mManager;
     private MobileDataContentObserver mMobileDataContentObserver;
diff --git a/src/com/android/settings/network/telephony/CallStateFlow.kt b/src/com/android/settings/network/telephony/CallStateFlow.kt
new file mode 100644
index 0000000..9d82602
--- /dev/null
+++ b/src/com/android/settings/network/telephony/CallStateFlow.kt
@@ -0,0 +1,45 @@
+/*
+ * 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.telephony
+
+import android.content.Context
+import android.telephony.TelephonyCallback
+import android.telephony.TelephonyManager
+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.conflate
+import kotlinx.coroutines.flow.flowOn
+
+/**
+ * Flow for call state.
+ */
+fun Context.callStateFlow(subId: Int): Flow<Int> = callbackFlow {
+    val telephonyManager = getSystemService(TelephonyManager::class.java)!!
+        .createForSubscriptionId(subId)
+
+    val callback = object : TelephonyCallback(), TelephonyCallback.CallStateListener {
+        override fun onCallStateChanged(state: Int) {
+            trySend(state)
+        }
+    }
+    telephonyManager.registerTelephonyCallback(Dispatchers.Default.asExecutor(), callback)
+
+    awaitClose { telephonyManager.unregisterTelephonyCallback(callback) }
+}.conflate().flowOn(Dispatchers.Default)
diff --git a/src/com/android/settings/network/telephony/ContactDiscoveryPreferenceController.java b/src/com/android/settings/network/telephony/ContactDiscoveryPreferenceController.java
index f4ad478..d41629e 100644
--- a/src/com/android/settings/network/telephony/ContactDiscoveryPreferenceController.java
+++ b/src/com/android/settings/network/telephony/ContactDiscoveryPreferenceController.java
@@ -33,7 +33,7 @@
 import androidx.lifecycle.OnLifecycleEvent;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.network.CarrierConfigCache;
 import com.android.settings.network.SubscriptionUtil;
@@ -119,7 +119,7 @@
             @Override
             public void onChange(boolean selfChange, Uri uri) {
                 Log.d(TAG, "UCE setting changed, re-evaluating.");
-                SwitchPreference switchPref = (SwitchPreference) preference;
+                TwoStatePreference switchPref = (TwoStatePreference) preference;
                 switchPref.setChecked(isChecked());
             }
         };
diff --git a/src/com/android/settings/network/telephony/DataUsagePreferenceController.kt b/src/com/android/settings/network/telephony/DataUsagePreferenceController.kt
index 34433c4..d133955 100644
--- a/src/com/android/settings/network/telephony/DataUsagePreferenceController.kt
+++ b/src/com/android/settings/network/telephony/DataUsagePreferenceController.kt
@@ -31,7 +31,8 @@
 import com.android.settings.R
 import com.android.settings.datausage.DataUsageUtils
 import com.android.settings.datausage.lib.DataUsageLib
-import com.android.settingslib.net.DataUsageController
+import com.android.settings.datausage.lib.NetworkCycleDataRepository
+import com.android.settings.datausage.lib.NetworkStatsRepository.Companion.AllTimeRange
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.launch
 import kotlinx.coroutines.withContext
@@ -45,9 +46,6 @@
     private lateinit var preference: Preference
     private var networkTemplate: NetworkTemplate? = null
 
-    @VisibleForTesting
-    var dataUsageControllerFactory: (Context) -> DataUsageController = { DataUsageController(it) }
-
     fun init(subId: Int) {
         mSubId = subId
     }
@@ -103,25 +101,21 @@
         else -> null
     }
 
+    @VisibleForTesting
+    fun createNetworkCycleDataRepository(): NetworkCycleDataRepository? =
+        networkTemplate?.let { NetworkCycleDataRepository(mContext, it) }
+
     private fun getDataUsageSummary(): String? {
-        val networkTemplate = networkTemplate ?: return null
-        val controller = dataUsageControllerFactory(mContext).apply {
-            setSubscriptionId(mSubId)
-        }
-        val usageInfo = controller.getDataUsageInfo(networkTemplate)
-        if (usageInfo != null && usageInfo.usageLevel > 0) {
+        val repository = createNetworkCycleDataRepository() ?: return null
+        repository.loadFirstCycle()?.takeIf { it.usage > 0 }?.let { usageData ->
             return mContext.getString(
                 R.string.data_usage_template,
-                DataUsageUtils.formatDataUsage(mContext, usageInfo.usageLevel),
-                usageInfo.period,
+                usageData.formatUsage(mContext),
+                usageData.formatDateRange(mContext),
             )
         }
 
-        return controller.getHistoricalUsageLevel(networkTemplate).takeIf { it > 0 }?.let {
-            mContext.getString(
-                R.string.data_used_template,
-                DataUsageUtils.formatDataUsage(mContext, it),
-            )
-        }
+        return repository.queryUsage(AllTimeRange).takeIf { it.usage > 0 }
+            ?.getDataUsedString(mContext)
     }
 }
diff --git a/src/com/android/settings/network/telephony/DeleteSimProfilePreferenceController.java b/src/com/android/settings/network/telephony/DeleteSimProfilePreferenceController.java
deleted file mode 100644
index 3035a9f..0000000
--- a/src/com/android/settings/network/telephony/DeleteSimProfilePreferenceController.java
+++ /dev/null
@@ -1,97 +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.content.Intent;
-import android.provider.Settings;
-import android.telephony.SubscriptionInfo;
-import android.telephony.euicc.EuiccManager;
-import android.text.TextUtils;
-
-import androidx.fragment.app.Fragment;
-import androidx.preference.Preference;
-
-import com.android.settings.R;
-import com.android.settings.core.BasePreferenceController;
-import com.android.settings.network.SubscriptionUtil;
-import com.android.settings.security.ConfirmSimDeletionPreferenceController;
-import com.android.settings.wifi.dpp.WifiDppUtils;
-
-/** This controls a preference allowing the user to delete the profile for an eSIM. */
-public class DeleteSimProfilePreferenceController extends BasePreferenceController {
-
-    private SubscriptionInfo mSubscriptionInfo;
-    private Fragment mParentFragment;
-    private int mRequestCode;
-    private boolean mConfirmationDefaultOn;
-
-    public DeleteSimProfilePreferenceController(Context context, String preferenceKey) {
-        super(context, preferenceKey);
-        mConfirmationDefaultOn =
-                context.getResources()
-                        .getBoolean(R.bool.config_sim_deletion_confirmation_default_on);
-    }
-
-    public void init(int subscriptionId, Fragment parentFragment, int requestCode) {
-        mParentFragment = parentFragment;
-
-        for (SubscriptionInfo info : SubscriptionUtil.getAvailableSubscriptions(mContext)) {
-            if (info.getSubscriptionId() == subscriptionId && info.isEmbedded()) {
-                mSubscriptionInfo = info;
-                break;
-            }
-        }
-        mRequestCode = requestCode;
-    }
-
-    @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        if (TextUtils.equals(preference.getKey(), getPreferenceKey())) {
-            boolean confirmDeletion =
-                    Settings.Global.getInt(
-                            mContext.getContentResolver(),
-                            ConfirmSimDeletionPreferenceController.KEY_CONFIRM_SIM_DELETION,
-                            mConfirmationDefaultOn ? 1 : 0)
-                            == 1;
-            if (confirmDeletion) {
-                WifiDppUtils.showLockScreen(mContext, () -> deleteSim());
-            } else {
-                deleteSim();
-            }
-
-            return true;
-        }
-
-        return false;
-    }
-
-    private void deleteSim() {
-        SubscriptionUtil.startDeleteEuiccSubscriptionDialogActivity(
-                mContext, mSubscriptionInfo.getSubscriptionId());
-        // result handled in MobileNetworkSettings
-    }
-
-    @Override
-    public int getAvailabilityStatus() {
-        if (mSubscriptionInfo != null) {
-            return AVAILABLE;
-        } else {
-            return CONDITIONALLY_UNAVAILABLE;
-        }
-    }
-}
diff --git a/src/com/android/settings/network/telephony/DeleteSimProfilePreferenceController.kt b/src/com/android/settings/network/telephony/DeleteSimProfilePreferenceController.kt
new file mode 100644
index 0000000..093c4bf
--- /dev/null
+++ b/src/com/android/settings/network/telephony/DeleteSimProfilePreferenceController.kt
@@ -0,0 +1,83 @@
+/*
+ * 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.telephony
+
+import android.content.Context
+import android.telephony.SubscriptionInfo
+import android.telephony.SubscriptionManager
+import android.telephony.TelephonyManager
+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.SubscriptionUtil
+import com.android.settings.security.ConfirmSimDeletionPreferenceController.KEY_CONFIRM_SIM_DELETION
+import com.android.settings.wifi.dpp.WifiDppUtils
+import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
+import com.android.settingslib.spaprivileged.settingsprovider.settingsGlobalBoolean
+
+/** This controls a preference allowing the user to delete the profile for an eSIM.  */
+class DeleteSimProfilePreferenceController(context: Context, preferenceKey: String) :
+    BasePreferenceController(context, preferenceKey) {
+    private var subscriptionId: Int = SubscriptionManager.INVALID_SUBSCRIPTION_ID
+    private var subscriptionInfo: SubscriptionInfo? = null
+    private lateinit var preference: Preference
+
+    fun init(subscriptionId: Int) {
+        this.subscriptionId = subscriptionId
+        subscriptionInfo = SubscriptionUtil.getAvailableSubscriptions(mContext)
+            .find { it.subscriptionId == subscriptionId && it.isEmbedded }
+    }
+
+    override fun getAvailabilityStatus() = when (subscriptionInfo) {
+        null -> CONDITIONALLY_UNAVAILABLE
+        else -> AVAILABLE
+    }
+
+    override fun displayPreference(screen: PreferenceScreen) {
+        super.displayPreference(screen)
+        preference = screen.findPreference(preferenceKey)!!
+    }
+
+    override fun onViewCreated(viewLifecycleOwner: LifecycleOwner) {
+        mContext.callStateFlow(subscriptionId).collectLatestWithLifecycle(viewLifecycleOwner) {
+            preference.isEnabled = (it == TelephonyManager.CALL_STATE_IDLE)
+        }
+    }
+
+    override fun handlePreferenceTreeClick(preference: Preference): Boolean {
+        if (preference.key != preferenceKey) return false
+
+        val confirmDeletion by mContext.settingsGlobalBoolean(
+            name = KEY_CONFIRM_SIM_DELETION,
+            defaultValue = mContext.resources
+                .getBoolean(R.bool.config_sim_deletion_confirmation_default_on),
+        )
+        if (confirmDeletion) {
+            WifiDppUtils.showLockScreen(mContext) { deleteSim() }
+        } else {
+            deleteSim()
+        }
+        return true
+    }
+
+    private fun deleteSim() {
+        SubscriptionUtil.startDeleteEuiccSubscriptionDialogActivity(mContext, subscriptionId)
+        // result handled in MobileNetworkSettings
+    }
+}
diff --git a/src/com/android/settings/network/telephony/Enable2gPreferenceController.java b/src/com/android/settings/network/telephony/Enable2gPreferenceController.java
index 9d9958f..e941ce5 100644
--- a/src/com/android/settings/network/telephony/Enable2gPreferenceController.java
+++ b/src/com/android/settings/network/telephony/Enable2gPreferenceController.java
@@ -29,6 +29,7 @@
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
+import com.android.settings.flags.Flags;
 import com.android.settings.network.CarrierConfigCache;
 import com.android.settings.network.SubscriptionUtil;
 import com.android.settings.overlay.FeatureFactory;
@@ -111,19 +112,25 @@
             return;
         }
 
-        final PersistableBundle carrierConfig = mCarrierConfigCache.getConfigForSubId(mSubId);
-        boolean isDisabledByCarrier =
-                carrierConfig != null
-                        && carrierConfig.getBoolean(CarrierConfigManager.KEY_HIDE_ENABLE_2G);
-        preference.setEnabled(!isDisabledByCarrier);
-        String summary;
-        if (isDisabledByCarrier) {
-            summary = mContext.getString(R.string.enable_2g_summary_disabled_carrier,
-                    getSimCardName());
+        // TODO: b/303411083 remove all dynamic logic and rely on summary in resource file once flag
+        //  is no longer needed
+        if (Flags.removeKeyHideEnable2g()) {
+            preference.setSummary(mContext.getString(R.string.enable_2g_summary));
         } else {
-            summary = mContext.getString(R.string.enable_2g_summary);
+            final PersistableBundle carrierConfig = mCarrierConfigCache.getConfigForSubId(mSubId);
+            boolean isDisabledByCarrier =
+                    carrierConfig != null
+                            && carrierConfig.getBoolean(CarrierConfigManager.KEY_HIDE_ENABLE_2G);
+            preference.setEnabled(!isDisabledByCarrier);
+            String summary;
+            if (isDisabledByCarrier) {
+                summary = mContext.getString(R.string.enable_2g_summary_disabled_carrier,
+                        getSimCardName());
+            } else {
+                summary = mContext.getString(R.string.enable_2g_summary);
+            }
+            preference.setSummary(summary);
         }
-        preference.setSummary(summary);
     }
 
     private String getSimCardName() {
@@ -154,14 +161,12 @@
      */
     @Override
     public int getAvailabilityStatus(int subId) {
-        final PersistableBundle carrierConfig = mCarrierConfigCache.getConfigForSubId(subId);
         if (mTelephonyManager == null) {
             Log.w(LOG_TAG, "Telephony manager not yet initialized");
             mTelephonyManager = mContext.getSystemService(TelephonyManager.class);
         }
         boolean visible =
                 SubscriptionManager.isUsableSubscriptionId(subId)
-                        && carrierConfig != null
                         && mTelephonyManager.isRadioInterfaceCapabilitySupported(
                         mTelephonyManager.CAPABILITY_USES_ALLOWED_NETWORK_TYPES_BITMASK);
         return visible ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
diff --git a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java
index 9fb80a5..2a355ad 100644
--- a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java
+++ b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java
@@ -29,9 +29,12 @@
 import android.util.Log;
 
 import androidx.annotation.VisibleForTesting;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
 import androidx.lifecycle.LifecycleObserver;
 import androidx.lifecycle.OnLifecycleEvent;
 import androidx.preference.ListPreference;
+import androidx.preference.ListPreferenceDialogFragmentCompat;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
@@ -67,6 +70,7 @@
     private SubscriptionsChangeListener mSubscriptionsListener;
     private int mCallState = TelephonyManager.CALL_STATE_IDLE;
     private PhoneCallStateTelephonyCallback mTelephonyCallback;
+    private FragmentManager mFragmentManager;
 
     public EnabledNetworkModePreferenceController(Context context, String key) {
         super(context, key);
@@ -151,7 +155,16 @@
         listPreference.setEntryValues(mBuilder.getEntryValues());
         listPreference.setValue(Integer.toString(mBuilder.getSelectedEntryValue()));
         listPreference.setSummary(mBuilder.getSummary());
-        listPreference.setEnabled(isCallStateIdle());
+        boolean listPreferenceEnabled = isCallStateIdle();
+        listPreference.setEnabled(listPreferenceEnabled);
+        if (!listPreferenceEnabled) {
+            // If dialog is already opened when ListPreference disabled, dismiss them.
+            for (Fragment fragment : mFragmentManager.getFragments()) {
+                if (fragment instanceof ListPreferenceDialogFragmentCompat) {
+                    ((ListPreferenceDialogFragmentCompat) fragment).dismiss();
+                }
+            }
+        }
     }
 
     @Override
@@ -169,8 +182,9 @@
         return false;
     }
 
-    void init(int subId) {
+    void init(int subId, FragmentManager fragmentManager) {
         mSubId = subId;
+        mFragmentManager = fragmentManager;
         mTelephonyManager = mContext.getSystemService(TelephonyManager.class)
                 .createForSubscriptionId(mSubId);
         mBuilder = new PreferenceEntriesBuilder(mContext, mSubId);
diff --git a/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java b/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java
index 12612d6..1b6f516 100644
--- a/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java
+++ b/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java
@@ -22,7 +22,6 @@
 import android.content.DialogInterface;
 import android.os.PersistableBundle;
 import android.telephony.CarrierConfigManager;
-import android.telephony.PhoneStateListener;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyCallback;
 import android.telephony.TelephonyManager;
@@ -32,7 +31,7 @@
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.internal.telephony.util.ArrayUtils;
 import com.android.settings.R;
@@ -153,7 +152,7 @@
         if (preference == null) {
             return;
         }
-        final SwitchPreference switchPreference = (SwitchPreference) preference;
+        final TwoStatePreference switchPreference = (TwoStatePreference) preference;
 
         final VolteQueryImsState queryState = queryImsState(mSubId);
         switchPreference.setEnabled(isUserControlAllowed(getCarrierConfigForSubId(mSubId))
diff --git a/src/com/android/settings/network/telephony/MmsMessagePreferenceController.java b/src/com/android/settings/network/telephony/MmsMessagePreferenceController.java
deleted file mode 100644
index 8f59f0e..0000000
--- a/src/com/android/settings/network/telephony/MmsMessagePreferenceController.java
+++ /dev/null
@@ -1,113 +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.Handler;
-import android.os.Looper;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.telephony.data.ApnSetting;
-
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.network.MobileDataContentObserver;
-import com.android.settingslib.core.lifecycle.LifecycleObserver;
-import com.android.settingslib.core.lifecycle.events.OnStart;
-import com.android.settingslib.core.lifecycle.events.OnStop;
-
-/**
- * Preference controller for "MMS messages"
- */
-public class MmsMessagePreferenceController extends TelephonyTogglePreferenceController implements
-        LifecycleObserver, OnStart, OnStop {
-    private TelephonyManager mTelephonyManager;
-    private MobileDataContentObserver mMobileDataContentObserver;
-    private PreferenceScreen mScreen;
-    private Preference mPreference;
-
-    public MmsMessagePreferenceController(Context context, String key) {
-        super(context, key);
-        mMobileDataContentObserver = new MobileDataContentObserver(
-                new Handler(Looper.getMainLooper()));
-        mMobileDataContentObserver.setOnMobileDataChangedListener(() -> refreshPreference());
-    }
-
-    @Override
-    public int getAvailabilityStatus(int subId) {
-        final TelephonyManager telephonyManager = mContext.getSystemService(TelephonyManager.class)
-                .createForSubscriptionId(subId);
-        return (subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID
-                && !telephonyManager.isDataEnabled()
-                && telephonyManager.isApnMetered(ApnSetting.TYPE_MMS))
-                ? AVAILABLE
-                : CONDITIONALLY_UNAVAILABLE;
-    }
-
-    @Override
-    public void onStart() {
-        if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
-            mMobileDataContentObserver.register(mContext, mSubId);
-            updateState(mPreference);
-        }
-    }
-
-    @Override
-    public void onStop() {
-        if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
-            mMobileDataContentObserver.unRegister(mContext);
-        }
-    }
-
-    @Override
-    public void displayPreference(PreferenceScreen screen) {
-        super.displayPreference(screen);
-        mScreen = screen;
-        mPreference = screen.findPreference(getPreferenceKey());
-    }
-
-
-    public void init(int subId) {
-        mSubId = subId;
-        mTelephonyManager = mContext.getSystemService(TelephonyManager.class)
-                .createForSubscriptionId(mSubId);
-    }
-
-    @Override
-    public boolean setChecked(boolean isChecked) {
-        if (mTelephonyManager == null) {
-            return false;
-        }
-        mTelephonyManager.setMobileDataPolicyEnabled(
-                TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED, isChecked);
-        return true;
-    }
-
-
-    @Override
-    public boolean isChecked() {
-        return mTelephonyManager != null && mTelephonyManager.isDataEnabledForApn(
-                ApnSetting.TYPE_MMS);
-    }
-
-    private void refreshPreference() {
-        if (mScreen != null) {
-            super.displayPreference(mScreen);
-        }
-    }
-}
diff --git a/src/com/android/settings/network/telephony/MmsMessagePreferenceController.kt b/src/com/android/settings/network/telephony/MmsMessagePreferenceController.kt
new file mode 100644
index 0000000..23a9738
--- /dev/null
+++ b/src/com/android/settings/network/telephony/MmsMessagePreferenceController.kt
@@ -0,0 +1,87 @@
+/*
+ * 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.telephony
+
+import android.content.Context
+import android.os.Handler
+import android.os.Looper
+import android.telephony.SubscriptionManager
+import android.telephony.TelephonyManager
+import android.telephony.data.ApnSetting
+import androidx.lifecycle.DefaultLifecycleObserver
+import androidx.lifecycle.LifecycleOwner
+import androidx.preference.PreferenceScreen
+import com.android.settings.network.MobileDataContentObserver
+
+/**
+ * Preference controller for "MMS messages"
+ */
+class MmsMessagePreferenceController(context: Context, key: String) :
+    TelephonyTogglePreferenceController(context, key), DefaultLifecycleObserver {
+
+    private lateinit var telephonyManager: TelephonyManager
+
+    private var preferenceScreen: PreferenceScreen? = null
+
+    private val mobileDataContentObserver =
+        MobileDataContentObserver(Handler(Looper.getMainLooper())).apply {
+            setOnMobileDataChangedListener {
+                preferenceScreen?.let { super.displayPreference(it) }
+            }
+        }
+
+    fun init(subId: Int) {
+        mSubId = subId
+        telephonyManager = mContext.getSystemService(TelephonyManager::class.java)!!
+            .createForSubscriptionId(subId)
+    }
+
+    override fun getAvailabilityStatus(subId: Int) =
+        if (subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID &&
+            !telephonyManager.isDataEnabled &&
+            telephonyManager.isApnMetered(ApnSetting.TYPE_MMS)
+        ) AVAILABLE else CONDITIONALLY_UNAVAILABLE
+
+    override fun onStart(owner: LifecycleOwner) {
+        if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+            mobileDataContentObserver.register(mContext, mSubId)
+        }
+    }
+
+    override fun onStop(owner: LifecycleOwner) {
+        if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+            mobileDataContentObserver.unRegister(mContext)
+        }
+    }
+
+    override fun displayPreference(screen: PreferenceScreen) {
+        super.displayPreference(screen)
+        preferenceScreen = screen
+    }
+
+    override fun isChecked(): Boolean = telephonyManager.isMobileDataPolicyEnabled(
+        TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED
+    )
+
+    override fun setChecked(isChecked: Boolean): Boolean {
+        telephonyManager.setMobileDataPolicyEnabled(
+            TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED,
+            isChecked,
+        )
+        return true
+    }
+}
diff --git a/src/com/android/settings/network/telephony/MobileDataPreferenceController.java b/src/com/android/settings/network/telephony/MobileDataPreferenceController.java
index 31b8138d..06015d4 100644
--- a/src/com/android/settings/network/telephony/MobileDataPreferenceController.java
+++ b/src/com/android/settings/network/telephony/MobileDataPreferenceController.java
@@ -31,7 +31,7 @@
 import androidx.lifecycle.OnLifecycleEvent;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.network.MobileNetworkRepository;
@@ -51,7 +51,7 @@
 
     private static final String DIALOG_TAG = "MobileDataDialog";
 
-    private SwitchPreference mPreference;
+    private TwoStatePreference mPreference;
     private TelephonyManager mTelephonyManager;
     private SubscriptionManager mSubscriptionManager;
     private FragmentManager mFragmentManager;
@@ -143,7 +143,7 @@
     @Override
     public void updateState(Preference preference) {
         super.updateState(preference);
-        mPreference = (SwitchPreference) preference;
+        mPreference = (TwoStatePreference) preference;
         update();
     }
 
diff --git a/src/com/android/settings/network/telephony/MobileNetworkSettings.java b/src/com/android/settings/network/telephony/MobileNetworkSettings.java
index 452ce49..dbe8ae8 100644
--- a/src/com/android/settings/network/telephony/MobileNetworkSettings.java
+++ b/src/com/android/settings/network/telephony/MobileNetworkSettings.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.network.telephony;
 
+import static com.android.settings.network.MobileNetworkListFragment.collectAirplaneModeAndFinishIfOn;
+
 import android.app.Activity;
 import android.app.settings.SettingsEnums;
 import android.content.Context;
@@ -31,7 +33,10 @@
 import android.view.Menu;
 import android.view.MenuInflater;
 import android.view.MenuItem;
+import android.view.View;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 
@@ -235,8 +240,7 @@
         use(MmsMessagePreferenceController.class).init(mSubId);
         use(AutoDataSwitchPreferenceController.class).init(mSubId);
         use(DisabledSubscriptionController.class).init(mSubId);
-        use(DeleteSimProfilePreferenceController.class).init(mSubId, this,
-                REQUEST_CODE_DELETE_SUBSCRIPTION);
+        use(DeleteSimProfilePreferenceController.class).init(mSubId);
         use(DisableSimFooterPreferenceController.class).init(mSubId);
         use(NrDisabledInDsdsFooterPreferenceController.class).init(mSubId);
 
@@ -260,7 +264,7 @@
         use(CarrierPreferenceController.class).init(mSubId);
         use(DataUsagePreferenceController.class).init(mSubId);
         use(PreferredNetworkModePreferenceController.class).init(mSubId);
-        use(EnabledNetworkModePreferenceController.class).init(mSubId);
+        use(EnabledNetworkModePreferenceController.class).init(mSubId, getParentFragmentManager());
         use(DataServiceSetupPreferenceController.class).init(mSubId);
         use(Enable2gPreferenceController.class).init(mSubId);
         use(CarrierWifiTogglePreferenceController.class).init(getLifecycle(), mSubId);
@@ -327,6 +331,12 @@
     }
 
     @Override
+    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+        super.onViewCreated(view, savedInstanceState);
+        collectAirplaneModeAndFinishIfOn(this);
+    }
+
+    @Override
     public void onResume() {
         super.onResume();
         mMobileNetworkRepository.addRegister(this, this, mSubId);
@@ -361,11 +371,6 @@
         super.onPause();
     }
 
-    @Override
-    public void onDestroy() {
-        super.onDestroy();
-    }
-
     @VisibleForTesting
     void onRestoreInstance(Bundle icicle) {
         if (icicle != null) {
diff --git a/src/com/android/settings/network/telephony/MobileNetworkSwitchController.java b/src/com/android/settings/network/telephony/MobileNetworkSwitchController.java
index 453941d..20a3d89 100644
--- a/src/com/android/settings/network/telephony/MobileNetworkSwitchController.java
+++ b/src/com/android/settings/network/telephony/MobileNetworkSwitchController.java
@@ -86,7 +86,7 @@
         super.displayPreference(screen);
         mSwitchBar = (SettingsMainSwitchPreference) screen.findPreference(mPreferenceKey);
 
-        mSwitchBar.setOnBeforeCheckedChangeListener((toggleSwitch, isChecked) -> {
+        mSwitchBar.setOnBeforeCheckedChangeListener((isChecked) -> {
             // TODO b/135222940: re-evaluate whether to use
             // mSubscriptionManager#isSubscriptionEnabled
             if (mSubscriptionManager.isActiveSubscriptionId(mSubId) != isChecked) {
diff --git a/src/com/android/settings/network/telephony/NetworkProviderWorker.java b/src/com/android/settings/network/telephony/NetworkProviderWorker.java
index c731bfd..ddfc031 100644
--- a/src/com/android/settings/network/telephony/NetworkProviderWorker.java
+++ b/src/com/android/settings/network/telephony/NetworkProviderWorker.java
@@ -17,6 +17,7 @@
 package com.android.settings.network.telephony;
 
 import static com.android.settings.network.InternetUpdater.INTERNET_ETHERNET;
+import static com.android.settings.network.MobileIconGroupExtKt.getSummaryForSub;
 import static com.android.settingslib.mobile.MobileMappings.getIconKey;
 import static com.android.settingslib.mobile.MobileMappings.mapIconSets;
 
@@ -284,19 +285,14 @@
 
     private String updateNetworkTypeName(Context context, Config config,
             TelephonyDisplayInfo telephonyDisplayInfo, int subId) {
-        String iconKey = getIconKey(telephonyDisplayInfo);
-        int resId = mapIconSets(config).get(iconKey).dataContentDescription;
         if (mWifiPickerTrackerHelper != null
                 && mWifiPickerTrackerHelper.isCarrierNetworkActive()) {
             MobileIconGroup carrierMergedWifiIconGroup = TelephonyIcons.CARRIER_MERGED_WIFI;
-            resId = carrierMergedWifiIconGroup.dataContentDescription;
-            return resId != 0
-                    ? SubscriptionManager.getResourcesForSubId(context, subId)
-                    .getString(resId) : "";
+            return getSummaryForSub(carrierMergedWifiIconGroup, context, subId);
         }
 
-        return resId != 0
-                ? SubscriptionManager.getResourcesForSubId(context, subId).getString(resId) : "";
+        String iconKey = getIconKey(telephonyDisplayInfo);
+        return getSummaryForSub(mapIconSets(config).get(iconKey), context, subId);
     }
 
     @VisibleForTesting
diff --git a/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceController.java b/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceController.java
index 5786dfc..dc1c03f 100644
--- a/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceController.java
+++ b/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceController.java
@@ -29,7 +29,7 @@
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.internal.telephony.util.ArrayUtils;
 import com.android.settingslib.core.lifecycle.LifecycleObserver;
@@ -150,7 +150,7 @@
         if (preference == null) {
             return;
         }
-        final SwitchPreference switchPreference = (SwitchPreference) preference;
+        final TwoStatePreference switchPreference = (TwoStatePreference) preference;
         switchPreference.setEnabled(isUserControlAllowed());
     }
 
diff --git a/src/com/android/settings/network/telephony/TelephonyPreferenceDialog.java b/src/com/android/settings/network/telephony/TelephonyPreferenceDialog.java
deleted file mode 100644
index 7dbef0c..0000000
--- a/src/com/android/settings/network/telephony/TelephonyPreferenceDialog.java
+++ /dev/null
@@ -1,44 +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.network.telephony;
-
-import android.content.Context;
-import android.util.AttributeSet;
-import com.android.settingslib.CustomDialogPreferenceCompat;
-
-/**
- * This is DialogPreference for supporting connectivity features.
- */
-public class TelephonyPreferenceDialog extends CustomDialogPreferenceCompat {
-
-    public TelephonyPreferenceDialog(Context context, AttributeSet attrs, int defStyleAttr,
-            int defStyleRes) {
-        super(context, attrs, defStyleAttr, defStyleRes);
-    }
-
-    public TelephonyPreferenceDialog(Context context, AttributeSet attrs, int defStyleAttr) {
-        super(context, attrs, defStyleAttr);
-    }
-
-    public TelephonyPreferenceDialog(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    public TelephonyPreferenceDialog(Context context) {
-        super(context);
-    }
-}
diff --git a/src/com/android/settings/network/telephony/VideoCallingPreferenceController.java b/src/com/android/settings/network/telephony/VideoCallingPreferenceController.java
index 4064181..1519bf0 100644
--- a/src/com/android/settings/network/telephony/VideoCallingPreferenceController.java
+++ b/src/com/android/settings/network/telephony/VideoCallingPreferenceController.java
@@ -29,7 +29,7 @@
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.network.CarrierConfigCache;
 import com.android.settings.network.MobileDataEnabledListener;
@@ -94,7 +94,7 @@
             Log.d(TAG, "Skip update under mCallState=" + mCallState);
             return;
         }
-        final SwitchPreference switchPreference = (SwitchPreference) preference;
+        final TwoStatePreference switchPreference = (TwoStatePreference) preference;
         final boolean videoCallEnabled = isVideoCallEnabled(mSubId);
         switchPreference.setVisible(videoCallEnabled);
         if (videoCallEnabled) {
diff --git a/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java b/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java
index 03cc23f..0a0b41f 100644
--- a/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java
+++ b/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java
@@ -61,6 +61,7 @@
     PhoneAccountHandle mSimCallManager;
     private PhoneTelephonyCallback mTelephonyCallback;
     private Preference mPreference;
+    private boolean mHasException;
 
     public WifiCallingPreferenceController(Context context, String key) {
         super(context, key);
@@ -103,6 +104,7 @@
             Log.d(TAG, "Skip update under mCallState=" + mCallState);
             return;
         }
+        mHasException = false;
         CharSequence summaryText = null;
         if (mSimCallManager != null) {
             final Intent intent = MobileNetworkUtils.buildPhoneAccountConfigureIntent(mContext,
@@ -122,7 +124,7 @@
             summaryText = getResourceIdForWfcMode(mSubId);
         }
         preference.setSummary(summaryText);
-        preference.setEnabled(mCallState == TelephonyManager.CALL_STATE_IDLE);
+        preference.setEnabled(mCallState == TelephonyManager.CALL_STATE_IDLE && !mHasException);
     }
 
     private CharSequence getResourceIdForWfcMode(int subId) {
@@ -140,9 +142,16 @@
             }
             final boolean isRoaming = getTelephonyManager(mContext, subId)
                     .isNetworkRoaming();
-            final int wfcMode = (isRoaming && !useWfcHomeModeForRoaming)
-                    ? mImsMmTelManager.getVoWiFiRoamingModeSetting() :
-                    mImsMmTelManager.getVoWiFiModeSetting();
+            int wfcMode = ImsMmTelManager.WIFI_MODE_UNKNOWN;
+            try {
+                wfcMode = (isRoaming && !useWfcHomeModeForRoaming)
+                        ? mImsMmTelManager.getVoWiFiRoamingModeSetting() :
+                        mImsMmTelManager.getVoWiFiModeSetting();
+            } catch (IllegalArgumentException e) {
+                mHasException = true;
+                Log.e(TAG, "getResourceIdForWfcMode: Exception", e);
+            }
+
             switch (wfcMode) {
                 case ImsMmTelManager.WIFI_MODE_WIFI_ONLY:
                     resId = com.android.internal.R.string.wfc_mode_wifi_only_summary;
diff --git a/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java b/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java
index 400d261..36e2aa8 100644
--- a/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java
+++ b/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java
@@ -16,10 +16,6 @@
 
 package com.android.settings.network.telephony.gsm;
 
-import static androidx.lifecycle.Lifecycle.Event.ON_RESUME;
-import static androidx.lifecycle.Lifecycle.Event.ON_START;
-import static androidx.lifecycle.Lifecycle.Event.ON_STOP;
-
 import static com.android.settings.Utils.SETTINGS_PACKAGE_NAME;
 
 import android.app.ProgressDialog;
@@ -44,7 +40,7 @@
 import androidx.lifecycle.LifecycleOwner;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.network.AllowedNetworkTypesListener;
@@ -80,7 +76,7 @@
     @VisibleForTesting
     ProgressDialog mProgressDialog;
     @VisibleForTesting
-    SwitchPreference mSwitchPreference;
+    TwoStatePreference mSwitchPreference;
     private AtomicBoolean mUpdatingConfig;
     private int mCacheOfModeStatus;
     private AtomicLong mRecursiveUpdate;
diff --git a/src/com/android/settings/network/tether/TetherSettings.java b/src/com/android/settings/network/tether/TetherSettings.java
index 1188719..46cfb55 100644
--- a/src/com/android/settings/network/tether/TetherSettings.java
+++ b/src/com/android/settings/network/tether/TetherSettings.java
@@ -52,7 +52,7 @@
 import androidx.annotation.VisibleForTesting;
 import androidx.lifecycle.ViewModelProvider;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.RestrictedSettingsFragment;
@@ -99,9 +99,9 @@
     @VisibleForTesting
     RestrictedSwitchPreference mUsbTether;
     @VisibleForTesting
-    SwitchPreference mBluetoothTether;
+    TwoStatePreference mBluetoothTether;
     @VisibleForTesting
-    SwitchPreference mEthernetTether;
+    TwoStatePreference mEthernetTether;
 
     private BroadcastReceiver mTetherChangeReceiver;
     private BroadcastReceiver mBluetoothStateReceiver;
@@ -247,8 +247,8 @@
     @VisibleForTesting
     void setupTetherPreference() {
         mUsbTether = (RestrictedSwitchPreference) findPreference(KEY_USB_TETHER_SETTINGS);
-        mBluetoothTether = (SwitchPreference) findPreference(KEY_ENABLE_BLUETOOTH_TETHERING);
-        mEthernetTether = (SwitchPreference) findPreference(KEY_ENABLE_ETHERNET_TETHERING);
+        mBluetoothTether = (TwoStatePreference) findPreference(KEY_ENABLE_BLUETOOTH_TETHERING);
+        mEthernetTether = (TwoStatePreference) findPreference(KEY_ENABLE_ETHERNET_TETHERING);
     }
 
     @Override
diff --git a/src/com/android/settings/nfc/AndroidBeam.java b/src/com/android/settings/nfc/AndroidBeam.java
deleted file mode 100644
index 9df24a5..0000000
--- a/src/com/android/settings/nfc/AndroidBeam.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.nfc;
-
-import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
-
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-import android.content.pm.PackageManager;
-import android.nfc.NfcAdapter;
-import android.os.Bundle;
-import android.os.UserHandle;
-import android.os.UserManager;
-import android.view.LayoutInflater;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ImageView;
-import android.widget.Switch;
-import android.widget.TextView;
-
-import com.android.settings.R;
-import com.android.settings.SettingsActivity;
-import com.android.settings.core.InstrumentedFragment;
-import com.android.settings.enterprise.ActionDisabledByAdminDialogHelper;
-import com.android.settings.widget.SettingsMainSwitchBar;
-import com.android.settingslib.HelpUtils;
-import com.android.settingslib.RestrictedLockUtilsInternal;
-import com.android.settingslib.widget.OnMainSwitchChangeListener;
-
-public class AndroidBeam extends InstrumentedFragment
-        implements OnMainSwitchChangeListener {
-    private View mView;
-    private NfcAdapter mNfcAdapter;
-    private SettingsMainSwitchBar mSwitchBar;
-    private CharSequence mOldActivityTitle;
-    private boolean mBeamDisallowedByBase;
-    private boolean mBeamDisallowedByOnlyAdmin;
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        final Context context = getActivity();
-        mNfcAdapter = NfcAdapter.getDefaultAdapter(context);
-        final PackageManager pm = context.getPackageManager();
-        if (mNfcAdapter == null || !pm.hasSystemFeature(PackageManager.FEATURE_NFC_BEAM))
-            getActivity().finish();
-        setHasOptionsMenu(true);
-    }
-
-    @Override
-    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
-        super.onCreateOptionsMenu(menu, inflater);
-        HelpUtils.prepareHelpMenuItem(getActivity(), menu, R.string.help_uri_beam,
-                getClass().getName());
-    }
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container,
-            Bundle savedInstanceState) {
-        final EnforcedAdmin admin = RestrictedLockUtilsInternal.checkIfRestrictionEnforced(
-                getActivity(), UserManager.DISALLOW_OUTGOING_BEAM, UserHandle.myUserId());
-        final UserManager um = UserManager.get(getActivity());
-        mBeamDisallowedByBase = RestrictedLockUtilsInternal.hasBaseUserRestriction(getActivity(),
-                UserManager.DISALLOW_OUTGOING_BEAM, UserHandle.myUserId());
-        if (!mBeamDisallowedByBase && admin != null) {
-            new ActionDisabledByAdminDialogHelper(getActivity())
-                    .prepareDialogBuilder(UserManager.DISALLOW_OUTGOING_BEAM, admin).show();
-            mBeamDisallowedByOnlyAdmin = true;
-            return new View(getContext());
-        }
-        mView = inflater.inflate(
-                com.android.settingslib.widget.preference.footer.R.layout.preference_footer, container, false);
-
-        ImageView iconInfo = mView.findViewById(android.R.id.icon);
-        iconInfo.setImageResource(R.drawable.ic_info_outline_24dp);
-        TextView textInfo = mView.findViewById(android.R.id.title);
-        textInfo.setText(R.string.android_beam_explained);
-
-        return mView;
-    }
-
-    @Override
-    public void onActivityCreated(Bundle savedInstanceState) {
-        super.onActivityCreated(savedInstanceState);
-        SettingsActivity activity = (SettingsActivity) getActivity();
-
-        mOldActivityTitle = activity.getActionBar().getTitle();
-
-        mSwitchBar = activity.getSwitchBar();
-        if (mBeamDisallowedByOnlyAdmin) {
-            mSwitchBar.hide();
-        } else {
-            mSwitchBar.setChecked(!mBeamDisallowedByBase && mNfcAdapter.isNdefPushEnabled());
-            mSwitchBar.addOnSwitchChangeListener(this);
-            mSwitchBar.setEnabled(!mBeamDisallowedByBase);
-            mSwitchBar.show();
-        }
-
-        activity.setTitle(R.string.android_beam_settings_title);
-    }
-
-    @Override
-    public void onDestroyView() {
-        super.onDestroyView();
-        if (mOldActivityTitle != null) {
-            getActivity().getActionBar().setTitle(mOldActivityTitle);
-        }
-        if (!mBeamDisallowedByOnlyAdmin) {
-            mSwitchBar.removeOnSwitchChangeListener(this);
-            mSwitchBar.hide();
-        }
-    }
-
-    @Override
-    public void onSwitchChanged(Switch switchView, boolean desiredState) {
-        boolean success = false;
-        mSwitchBar.setEnabled(false);
-        if (desiredState) {
-            success = mNfcAdapter.enableNdefPush();
-        } else {
-            success = mNfcAdapter.disableNdefPush();
-        }
-        if (success) {
-            mSwitchBar.setChecked(desiredState);
-        }
-        mSwitchBar.setEnabled(true);
-    }
-
-    @Override
-    public int getMetricsCategory() {
-        return SettingsEnums.NFC_BEAM;
-    }
-}
diff --git a/src/com/android/settings/nfc/AndroidBeamEnabler.java b/src/com/android/settings/nfc/AndroidBeamEnabler.java
deleted file mode 100644
index 31ef702..0000000
--- a/src/com/android/settings/nfc/AndroidBeamEnabler.java
+++ /dev/null
@@ -1,79 +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.nfc;
-
-import android.content.Context;
-import android.nfc.NfcAdapter;
-import android.os.UserHandle;
-import android.os.UserManager;
-
-import com.android.settings.R;
-import com.android.settingslib.RestrictedLockUtilsInternal;
-import com.android.settingslib.RestrictedPreference;
-
-/**
- * AndroidBeanEnabler is a helper to manage the Android Beam preference. It turns on/off
- * Android Beam and ensures the summary of the preference reflects the current state.
- */
-public class AndroidBeamEnabler extends BaseNfcEnabler {
-    private final boolean mBeamDisallowedBySystem;
-    private final RestrictedPreference mPreference;
-
-    public AndroidBeamEnabler(Context context, RestrictedPreference preference) {
-        super(context);
-        mPreference = preference;
-        mBeamDisallowedBySystem = RestrictedLockUtilsInternal.hasBaseUserRestriction(context,
-                UserManager.DISALLOW_OUTGOING_BEAM, UserHandle.myUserId());
-        if (!isNfcAvailable()) {
-            // NFC is not supported
-            mPreference.setEnabled(false);
-            return;
-        }
-        if (mBeamDisallowedBySystem) {
-            mPreference.setEnabled(false);
-        }
-    }
-
-    @Override
-    protected void handleNfcStateChanged(int newState) {
-        switch (newState) {
-            case NfcAdapter.STATE_OFF:
-                mPreference.setEnabled(false);
-                mPreference.setSummary(R.string.nfc_disabled_summary);
-                break;
-            case NfcAdapter.STATE_ON:
-                if (mBeamDisallowedBySystem) {
-                    mPreference.setDisabledByAdmin(null);
-                    mPreference.setEnabled(false);
-                } else {
-                    mPreference.checkRestrictionAndSetDisabled(UserManager.DISALLOW_OUTGOING_BEAM);
-                }
-                if (mNfcAdapter.isNdefPushEnabled() && mPreference.isEnabled()) {
-                    mPreference.setSummary(R.string.android_beam_on_summary);
-                } else {
-                    mPreference.setSummary(R.string.android_beam_off_summary);
-                }
-                break;
-            case NfcAdapter.STATE_TURNING_ON:
-                mPreference.setEnabled(false);
-                break;
-            case NfcAdapter.STATE_TURNING_OFF:
-                mPreference.setEnabled(false);
-                break;
-        }
-    }
-}
diff --git a/src/com/android/settings/nfc/AndroidBeamPreferenceController.java b/src/com/android/settings/nfc/AndroidBeamPreferenceController.java
deleted file mode 100644
index 15c15aa..0000000
--- a/src/com/android/settings/nfc/AndroidBeamPreferenceController.java
+++ /dev/null
@@ -1,79 +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.nfc;
-
-import android.content.Context;
-import android.content.pm.PackageManager;
-import android.nfc.NfcAdapter;
-
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.core.BasePreferenceController;
-import com.android.settingslib.RestrictedPreference;
-import com.android.settingslib.core.lifecycle.LifecycleObserver;
-import com.android.settingslib.core.lifecycle.events.OnPause;
-import com.android.settingslib.core.lifecycle.events.OnResume;
-
-public class AndroidBeamPreferenceController extends BasePreferenceController
-        implements LifecycleObserver, OnResume, OnPause {
-
-    public static final String KEY_ANDROID_BEAM_SETTINGS = "android_beam_settings";
-    private final NfcAdapter mNfcAdapter;
-    private AndroidBeamEnabler mAndroidBeamEnabler;
-
-    public AndroidBeamPreferenceController(Context context, String key) {
-        super(context, key);
-        mNfcAdapter = NfcAdapter.getDefaultAdapter(context);
-    }
-
-    @Override
-    public void displayPreference(PreferenceScreen screen) {
-        super.displayPreference(screen);
-        if (!isAvailable()) {
-            mAndroidBeamEnabler = null;
-            return;
-        }
-
-        final RestrictedPreference restrictedPreference = screen.findPreference(getPreferenceKey());
-        mAndroidBeamEnabler = new AndroidBeamEnabler(mContext, restrictedPreference);
-    }
-
-    @Override
-    @AvailabilityStatus
-    public int getAvailabilityStatus() {
-        PackageManager pm = mContext.getPackageManager();
-        if (!pm.hasSystemFeature(PackageManager.FEATURE_NFC_BEAM)) {
-            return UNSUPPORTED_ON_DEVICE;
-        }
-        return mNfcAdapter != null
-                ? AVAILABLE
-                : UNSUPPORTED_ON_DEVICE;
-    }
-
-    @Override
-    public void onResume() {
-        if (mAndroidBeamEnabler != null) {
-            mAndroidBeamEnabler.resume();
-        }
-    }
-
-    @Override
-    public void onPause() {
-        if (mAndroidBeamEnabler != null) {
-            mAndroidBeamEnabler.pause();
-        }
-    }
-}
diff --git a/src/com/android/settings/nfc/ChangeNfcTagAppsStateDetails.java b/src/com/android/settings/nfc/ChangeNfcTagAppsStateDetails.java
index 99c23cd..305bbc1 100644
--- a/src/com/android/settings/nfc/ChangeNfcTagAppsStateDetails.java
+++ b/src/com/android/settings/nfc/ChangeNfcTagAppsStateDetails.java
@@ -24,7 +24,7 @@
 import androidx.appcompat.app.AlertDialog;
 import androidx.preference.Preference;
 import androidx.preference.Preference.OnPreferenceChangeListener;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.applications.AppInfoWithHeader;
@@ -41,7 +41,7 @@
     private static final String LOG_TAG = "ChangeNfcTagAppsStateDetails";
 
     private AppStateNfcTagAppsBridge mAppBridge;
-    private SwitchPreference mSwitchPref;
+    private TwoStatePreference mSwitchPref;
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
@@ -51,7 +51,7 @@
 
         // find preferences
         addPreferencesFromResource(R.xml.change_nfc_tag_apps_details);
-        mSwitchPref = (SwitchPreference) findPreference(KEY_APP_OPS_SETTINGS_SWITCH);
+        mSwitchPref = (TwoStatePreference) findPreference(KEY_APP_OPS_SETTINGS_SWITCH);
 
         // set title/summary for all of them
         mSwitchPref.setTitle(R.string.change_nfc_tag_apps_detail_switch);
diff --git a/src/com/android/settings/nfc/NfcPreferenceController.java b/src/com/android/settings/nfc/NfcPreferenceController.java
index 2ba00c6..4d75004 100644
--- a/src/com/android/settings/nfc/NfcPreferenceController.java
+++ b/src/com/android/settings/nfc/NfcPreferenceController.java
@@ -22,7 +22,8 @@
 import android.net.Uri;
 import android.nfc.NfcAdapter;
 import android.util.Log;
-import android.widget.Switch;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
 
 import androidx.preference.PreferenceScreen;
 
@@ -33,12 +34,11 @@
 import com.android.settingslib.core.lifecycle.events.OnPause;
 import com.android.settingslib.core.lifecycle.events.OnResume;
 import com.android.settingslib.widget.MainSwitchPreference;
-import com.android.settingslib.widget.OnMainSwitchChangeListener;
 
 import java.io.IOException;
 
 public class NfcPreferenceController extends TogglePreferenceController
-        implements LifecycleObserver, OnResume, OnPause, OnMainSwitchChangeListener {
+        implements LifecycleObserver, OnResume, OnPause, OnCheckedChangeListener {
 
     public static final String KEY_TOGGLE_NFC = "toggle_nfc";
     private final NfcAdapter mNfcAdapter;
@@ -64,7 +64,7 @@
     }
 
     @Override
-    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         if (isChecked != mNfcAdapter.isEnabled()) {
             setChecked(isChecked);
         }
diff --git a/src/com/android/settings/nfc/SecureNfcEnabler.java b/src/com/android/settings/nfc/SecureNfcEnabler.java
index ad5c4ab..b02c902 100644
--- a/src/com/android/settings/nfc/SecureNfcEnabler.java
+++ b/src/com/android/settings/nfc/SecureNfcEnabler.java
@@ -20,7 +20,7 @@
 import android.nfc.NfcAdapter;
 import android.os.UserManager;
 
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 
@@ -30,10 +30,10 @@
  * the current state.
  */
 public class SecureNfcEnabler extends BaseNfcEnabler {
-    private final SwitchPreference mPreference;
+    private final TwoStatePreference mPreference;
     private final UserManager mUserManager;
 
-    public SecureNfcEnabler(Context context, SwitchPreference preference) {
+    public SecureNfcEnabler(Context context, TwoStatePreference preference) {
         super(context);
         mPreference = preference;
         mUserManager = context.getSystemService(UserManager.class);
diff --git a/src/com/android/settings/nfc/SecureNfcPreferenceController.java b/src/com/android/settings/nfc/SecureNfcPreferenceController.java
index 460eca3..03eed68 100644
--- a/src/com/android/settings/nfc/SecureNfcPreferenceController.java
+++ b/src/com/android/settings/nfc/SecureNfcPreferenceController.java
@@ -20,7 +20,7 @@
 import android.os.UserManager;
 
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.core.TogglePreferenceController;
@@ -49,7 +49,7 @@
             return;
         }
 
-        final SwitchPreference switchPreference = screen.findPreference(getPreferenceKey());
+        final TwoStatePreference switchPreference = screen.findPreference(getPreferenceKey());
 
         mSecureNfcEnabler = new SecureNfcEnabler(mContext, switchPreference);
     }
diff --git a/src/com/android/settings/notification/BootSoundPreferenceController.java b/src/com/android/settings/notification/BootSoundPreferenceController.java
index 2e7327d..05bc259 100644
--- a/src/com/android/settings/notification/BootSoundPreferenceController.java
+++ b/src/com/android/settings/notification/BootSoundPreferenceController.java
@@ -22,7 +22,7 @@
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.core.AbstractPreferenceController;
@@ -43,7 +43,7 @@
     public void displayPreference(PreferenceScreen screen) {
         super.displayPreference(screen);
         if (isAvailable()) {
-            SwitchPreference preference = screen.findPreference(KEY_BOOT_SOUNDS);
+            TwoStatePreference preference = screen.findPreference(KEY_BOOT_SOUNDS);
             preference.setChecked(SystemProperties.getBoolean(PROPERTY_BOOT_SOUNDS, true));
         }
     }
@@ -51,7 +51,7 @@
     @Override
     public boolean handlePreferenceTreeClick(Preference preference) {
         if (KEY_BOOT_SOUNDS.equals(preference.getKey())) {
-            SwitchPreference switchPreference = (SwitchPreference) preference;
+            TwoStatePreference switchPreference = (TwoStatePreference) preference;
             SystemProperties.set(PROPERTY_BOOT_SOUNDS, switchPreference.isChecked() ? "1" : "0");
         }
         return false;
diff --git a/src/com/android/settings/notification/NotificationAssistantPreferenceController.java b/src/com/android/settings/notification/NotificationAssistantPreferenceController.java
index 069a6e0..6f246b7 100644
--- a/src/com/android/settings/notification/NotificationAssistantPreferenceController.java
+++ b/src/com/android/settings/notification/NotificationAssistantPreferenceController.java
@@ -18,44 +18,31 @@
 
 import android.content.ComponentName;
 import android.content.Context;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
 import android.os.UserHandle;
-import android.os.UserManager;
 import android.provider.Settings;
-import android.service.notification.NotificationAssistantService;
 
 import androidx.fragment.app.Fragment;
 import androidx.preference.Preference;
 
 import com.android.settings.R;
 import com.android.settings.core.TogglePreferenceController;
-import com.android.settingslib.PrimarySwitchPreference;
 
 import com.google.common.annotations.VisibleForTesting;
 
-import java.util.List;
-
 public class NotificationAssistantPreferenceController extends TogglePreferenceController {
     private static final String TAG = "NASPreferenceController";
     static final String KEY_NAS = "notification_assistant";
 
-    private final UserManager mUserManager;
-    private final PackageManager mPackageManager;
     private Fragment mFragment;
     private int mUserId = UserHandle.myUserId();
 
     @VisibleForTesting
     protected NotificationBackend mNotificationBackend;
     private ComponentName mDefaultNASComponent;
-    private Intent mNASSettingIntent;
 
     public NotificationAssistantPreferenceController(Context context) {
         super(context, KEY_NAS);
-        mUserManager = UserManager.get(context);
         mNotificationBackend = new NotificationBackend();
-        mPackageManager = context.getPackageManager();
         getDefaultNASIntent();
     }
 
@@ -118,12 +105,6 @@
     @VisibleForTesting
     void getDefaultNASIntent() {
         mDefaultNASComponent = mNotificationBackend.getDefaultNotificationAssistant();
-        if (mDefaultNASComponent != null) {
-            mNASSettingIntent = new Intent(
-                    NotificationAssistantService.ACTION_NOTIFICATION_ASSISTANT_DETAIL_SETTINGS);
-            mNASSettingIntent.setPackage(mDefaultNASComponent.getPackageName());
-            mNASSettingIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-        }
     }
 
     @Override
@@ -131,30 +112,11 @@
         return (mFragment != null && mFragment instanceof ConfigureNotificationSettings);
     }
 
-    private boolean isNASSettingActivityAvailable() {
-        final List<ResolveInfo> resolved = mPackageManager.queryIntentActivities(mNASSettingIntent,
-                PackageManager.ResolveInfoFlags.of(PackageManager.MATCH_ALL));
-        return (resolved != null && !resolved.isEmpty());
-    }
-
     @Override
     public void updateState(Preference preference) {
         super.updateState(preference);
         if (mDefaultNASComponent == null) {
             preference.setEnabled(false);
-            ((PrimarySwitchPreference) preference).setSwitchEnabled(false);
-        } else if (isNASSettingActivityAvailable()) {
-            preference.setIntent(mNASSettingIntent);
-        } else {
-            // Cannot find settings activity from the default NAS app
-            preference.setIntent(null);
-            preference.setOnPreferenceClickListener(
-                    preference1 -> {
-                        onPreferenceChange(preference1, !isChecked());
-                        ((PrimarySwitchPreference) preference1).setChecked(isChecked());
-                        return true;
-                    }
-            );
         }
     }
 }
diff --git a/src/com/android/settings/notification/PoliteNotifVibrateUnlockedToggleController.java b/src/com/android/settings/notification/PoliteNotifVibrateUnlockedToggleController.java
new file mode 100644
index 0000000..aaa8f87
--- /dev/null
+++ b/src/com/android/settings/notification/PoliteNotifVibrateUnlockedToggleController.java
@@ -0,0 +1,66 @@
+/*
+ * 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;
+
+import static com.android.settings.accessibility.AccessibilityUtil.State.OFF;
+import static com.android.settings.accessibility.AccessibilityUtil.State.ON;
+
+import android.content.Context;
+import android.os.Vibrator;
+import android.provider.Settings;
+
+import com.android.server.notification.Flags;
+import com.android.settings.R;
+import com.android.settings.core.TogglePreferenceController;
+
+/**
+ * Controls the toggle that determines whether notifications
+ * should only vibrate (no sound) when the device is unlocked.
+ */
+public class PoliteNotifVibrateUnlockedToggleController extends TogglePreferenceController {
+
+    public PoliteNotifVibrateUnlockedToggleController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        // TODO: b/291897570 - remove this when the feature flag is removed!
+        if (!Flags.politeNotifications()) {
+            return CONDITIONALLY_UNAVAILABLE;
+        }
+        return mContext.getSystemService(Vibrator.class).hasVibrator() ? AVAILABLE
+                : UNSUPPORTED_ON_DEVICE;
+    }
+
+    @Override
+    public boolean isChecked() {
+        return Settings.System.getInt(mContext.getContentResolver(),
+                Settings.System.NOTIFICATION_COOLDOWN_VIBRATE_UNLOCKED, OFF) != OFF;
+    }
+
+    @Override
+    public boolean setChecked(boolean isChecked) {
+        return Settings.System.putInt(mContext.getContentResolver(),
+                Settings.System.NOTIFICATION_COOLDOWN_VIBRATE_UNLOCKED, (isChecked ? ON : OFF));
+    }
+
+    @Override
+    public int getSliceHighlightMenuRes() {
+        return R.string.menu_key_accessibility;
+    }
+}
diff --git a/src/com/android/settings/notification/PoliteNotifWorkProfileToggleController.java b/src/com/android/settings/notification/PoliteNotifWorkProfileToggleController.java
new file mode 100644
index 0000000..65b4fb8
--- /dev/null
+++ b/src/com/android/settings/notification/PoliteNotifWorkProfileToggleController.java
@@ -0,0 +1,79 @@
+/*
+ * 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;
+
+import static com.android.settings.accessibility.AccessibilityUtil.State.OFF;
+import static com.android.settings.accessibility.AccessibilityUtil.State.ON;
+
+import android.content.Context;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.provider.Settings;
+
+import androidx.annotation.VisibleForTesting;
+
+import com.android.server.notification.Flags;
+import com.android.settings.R;
+import com.android.settings.core.TogglePreferenceController;
+
+/**
+ * Controls the toggle that determines whether notification cooldown
+ * should apply to work profiles.
+ */
+public class PoliteNotifWorkProfileToggleController extends TogglePreferenceController {
+
+    private final int mManagedProfileId;
+
+    public PoliteNotifWorkProfileToggleController(Context context, String preferenceKey) {
+        this(context, preferenceKey, new AudioHelper(context));
+    }
+
+    @VisibleForTesting
+    PoliteNotifWorkProfileToggleController(Context context, String preferenceKey,
+                AudioHelper helper) {
+        super(context, preferenceKey);
+        mManagedProfileId = helper.getManagedProfileId(UserManager.get(mContext));
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        // TODO: b/291897570 - remove this when the feature flag is removed!
+        if (!Flags.politeNotifications()) {
+            return CONDITIONALLY_UNAVAILABLE;
+        }
+
+        return (mManagedProfileId != UserHandle.USER_NULL) ? AVAILABLE : DISABLED_FOR_USER;
+    }
+
+    @Override
+    public boolean isChecked() {
+        return Settings.System.getIntForUser(mContext.getContentResolver(),
+                Settings.System.NOTIFICATION_COOLDOWN_ENABLED, OFF, mManagedProfileId) != OFF;
+    }
+
+    @Override
+    public boolean setChecked(boolean isChecked) {
+        return Settings.System.putIntForUser(mContext.getContentResolver(),
+                Settings.System.NOTIFICATION_COOLDOWN_ENABLED, (isChecked ? ON : OFF),
+                mManagedProfileId);
+    }
+
+    @Override
+    public int getSliceHighlightMenuRes() {
+        return R.string.menu_key_accessibility;
+    }
+}
diff --git a/src/com/android/settings/notification/PoliteNotificationFilterController.java b/src/com/android/settings/notification/PoliteNotificationFilterController.java
new file mode 100644
index 0000000..8093f55
--- /dev/null
+++ b/src/com/android/settings/notification/PoliteNotificationFilterController.java
@@ -0,0 +1,114 @@
+/*
+ * 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;
+
+import static com.android.settings.accessibility.AccessibilityUtil.State.OFF;
+import static com.android.settings.accessibility.AccessibilityUtil.State.ON;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.util.Log;
+
+import androidx.preference.ListPreference;
+import androidx.preference.Preference;
+
+import com.android.server.notification.Flags;
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.core.PreferenceControllerMixin;
+
+
+/**
+ * Controls whether polite notifications are enabled and apply to all apps or just to conversations.
+ */
+public class PoliteNotificationFilterController extends BasePreferenceController
+        implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
+    static final String TAG = "PoliteNotificationFilterController";
+
+    private static final int POLITE_NOTIFICATIONS_ALL = 0;
+    private static final int POLITE_NOTIFICATIONS_CONVERSATIONS = 1;
+    private static final int POLITE_NOTIFICATIONS_DISABLED = 2;
+
+    public PoliteNotificationFilterController(Context context, String key) {
+        super(context, key);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        // TODO: b/291897570 - remove this when the feature flag is removed!
+        return Flags.politeNotifications() ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        super.updateState(preference);
+        final ListPreference pref = (ListPreference) preference;
+
+        if (isPoliteNotifDisabled()) {
+            pref.setValue(Integer.toString(POLITE_NOTIFICATIONS_DISABLED));
+        } else if (shouldApplyForAllApps()) {
+            pref.setValue(Integer.toString(POLITE_NOTIFICATIONS_ALL));
+        } else {
+            pref.setValue(Integer.toString(POLITE_NOTIFICATIONS_CONVERSATIONS));
+        }
+    }
+
+    @Override
+    public CharSequence getSummary() {
+        if (isPoliteNotifDisabled()) {
+            return mContext.getString(R.string.notification_polite_disabled_summary);
+        }
+        if (shouldApplyForAllApps()) {
+            return mContext.getString(R.string.notification_polite_all_apps_summary);
+        } else {
+            return mContext.getString(R.string.notification_polite_conversations_summary);
+        }
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        final int prefValue = Integer.parseInt((String) newValue);
+        if (prefValue == POLITE_NOTIFICATIONS_ALL) {
+            Settings.System.putInt(mContext.getContentResolver(),
+                    Settings.System.NOTIFICATION_COOLDOWN_ENABLED, ON);
+            Settings.System.putInt(mContext.getContentResolver(),
+                    Settings.System.NOTIFICATION_COOLDOWN_ALL, ON);
+        } else if (prefValue == POLITE_NOTIFICATIONS_CONVERSATIONS) {
+            Settings.System.putInt(mContext.getContentResolver(),
+                    Settings.System.NOTIFICATION_COOLDOWN_ENABLED, ON);
+            Settings.System.putInt(mContext.getContentResolver(),
+                    Settings.System.NOTIFICATION_COOLDOWN_ALL, OFF);
+        } else if (prefValue == POLITE_NOTIFICATIONS_DISABLED) {
+            Settings.System.putInt(mContext.getContentResolver(),
+                    Settings.System.NOTIFICATION_COOLDOWN_ENABLED, OFF);
+        } else {
+            Log.e(TAG, "Unexpected preference value: " + prefValue);
+        }
+        refreshSummary(preference);
+        return true;
+    }
+
+    private boolean isPoliteNotifDisabled() {
+        return Settings.System.getInt(mContext.getContentResolver(),
+                Settings.System.NOTIFICATION_COOLDOWN_ENABLED, ON) == OFF;
+    }
+
+    private boolean shouldApplyForAllApps() {
+        return Settings.System.getInt(mContext.getContentResolver(),
+                Settings.System.NOTIFICATION_COOLDOWN_ALL, ON) != OFF;
+    }
+}
diff --git a/src/com/android/settings/notification/PoliteNotificationsPreferenceController.java b/src/com/android/settings/notification/PoliteNotificationsPreferenceController.java
new file mode 100644
index 0000000..e6e0947
--- /dev/null
+++ b/src/com/android/settings/notification/PoliteNotificationsPreferenceController.java
@@ -0,0 +1,39 @@
+/*
+ * 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;
+
+import android.content.Context;
+
+import com.android.server.notification.Flags;
+import com.android.settings.core.BasePreferenceController;
+
+// TODO: b/291897570 - remove controller when the feature flag is removed!
+/**
+ * Controller for polite notifications settings page.
+ */
+public class PoliteNotificationsPreferenceController extends BasePreferenceController {
+
+    public PoliteNotificationsPreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return Flags.politeNotifications() ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+    }
+
+}
diff --git a/src/com/android/settings/notification/PoliteNotificationsPreferenceFragment.java b/src/com/android/settings/notification/PoliteNotificationsPreferenceFragment.java
new file mode 100644
index 0000000..449e678
--- /dev/null
+++ b/src/com/android/settings/notification/PoliteNotificationsPreferenceFragment.java
@@ -0,0 +1,50 @@
+/*
+ * 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;
+
+import android.app.settings.SettingsEnums;
+
+import com.android.settings.R;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settingslib.search.SearchIndexable;
+
+/**
+ * Fragment for polite notifications.
+ */
+@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
+public class PoliteNotificationsPreferenceFragment extends DashboardFragment {
+
+    private static final String POLITE_NOTIF_PREFERENCE_KEY = "polite_notifications_pref_dlg";
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.SETTINGS_POLITE_NOTIFICATIONS;
+    }
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.polite_notifications_settings;
+    }
+    @Override
+    protected String getLogTag() {
+        return "PoliteNotificationsPreferenceFragment";
+    }
+
+    public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+            new BaseSearchIndexProvider(R.xml.polite_notifications_settings);
+}
diff --git a/src/com/android/settings/notification/app/AppChannelsBypassingDndPreferenceController.java b/src/com/android/settings/notification/app/AppChannelsBypassingDndPreferenceController.java
index 40bae5d..200a47b 100644
--- a/src/com/android/settings/notification/app/AppChannelsBypassingDndPreferenceController.java
+++ b/src/com/android/settings/notification/app/AppChannelsBypassingDndPreferenceController.java
@@ -33,19 +33,24 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceCategory;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.applications.AppInfoBase;
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.flags.Flags;
 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.HashMap;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 /**
  * Populates the PreferenceCategory with notification channels associated with the given app.
@@ -61,6 +66,9 @@
     private RestrictedSwitchPreference mAllNotificationsToggle;
     private PreferenceCategory mPreferenceCategory;
     private List<NotificationChannel> mChannels = new ArrayList<>();
+    private Set<String> mDuplicateChannelNames = new HashSet<>();
+    private Map<NotificationChannel, String> mChannelGroupNames =
+            new HashMap<NotificationChannel, String>();
 
     public AppChannelsBypassingDndPreferenceController(
             Context context,
@@ -81,7 +89,7 @@
                 new Preference.OnPreferenceClickListener() {
                     @Override
                     public boolean onPreferenceClick(Preference pref) {
-                        SwitchPreference preference = (SwitchPreference) pref;
+                        TwoStatePreference preference = (TwoStatePreference) pref;
                         final boolean bypassDnd = preference.isChecked();
                         for (NotificationChannel channel : mChannels) {
                             if (showNotification(channel) && isChannelConfigurable(channel)) {
@@ -135,10 +143,20 @@
                 List<NotificationChannel> newChannelList = new ArrayList<>();
                 List<NotificationChannelGroup> mChannelGroupList = mBackend.getGroups(mAppRow.pkg,
                         mAppRow.uid).getList();
+                Set<String> allChannelNames = new HashSet<>();
                 for (NotificationChannelGroup channelGroup : mChannelGroupList) {
                     for (NotificationChannel channel : channelGroup.getChannels()) {
                         if (!isConversation(channel)) {
                             newChannelList.add(channel);
+                            if (Flags.dedupeDndSettingsChannels()) {
+                                mChannelGroupNames.put(channel, channelGroup.getName().toString());
+                                // Check if channel name is unique on this page; if not, save it.
+                                if (allChannelNames.contains(channel.getName())) {
+                                    mDuplicateChannelNames.add(channel.getName().toString());
+                                } else {
+                                    allChannelNames.add(channel.getName().toString());
+                                }
+                            }
                         }
                     }
                 }
@@ -172,6 +190,17 @@
                             && isChannelConfigurable(channel)
                             && showNotification(channel));
             channelPreference.setTitle(BidiFormatter.getInstance().unicodeWrap(channel.getName()));
+            if (Flags.dedupeDndSettingsChannels()) {
+                // If the channel shares its name with another channel, set group name as summary
+                // to disambiguate in the list.
+                if (mDuplicateChannelNames.contains(channel.getName().toString())
+                        && mChannelGroupNames.containsKey(channel)
+                        && mChannelGroupNames.get(channel) != null
+                        && !mChannelGroupNames.get(channel).isEmpty()) {
+                    channelPreference.setSummary(BidiFormatter.getInstance().unicodeWrap(
+                            mChannelGroupNames.get(channel)));
+                }
+            }
             channelPreference.setChecked(showNotificationInDnd(channel));
             channelPreference.setOnPreferenceChangeListener(
                     new Preference.OnPreferenceChangeListener() {
diff --git a/src/com/android/settings/notification/app/BlockPreferenceController.java b/src/com/android/settings/notification/app/BlockPreferenceController.java
index f4e2132..a3d0a73 100644
--- a/src/com/android/settings/notification/app/BlockPreferenceController.java
+++ b/src/com/android/settings/notification/app/BlockPreferenceController.java
@@ -23,7 +23,8 @@
 import android.app.NotificationChannel;
 import android.app.NotificationManager;
 import android.content.Context;
-import android.widget.Switch;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
 
 import androidx.preference.Preference;
 
@@ -31,10 +32,9 @@
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settings.notification.NotificationBackend;
 import com.android.settings.widget.SettingsMainSwitchPreference;
-import com.android.settingslib.widget.OnMainSwitchChangeListener;
 
 public class BlockPreferenceController extends NotificationPreferenceController
-        implements PreferenceControllerMixin, OnMainSwitchChangeListener {
+        implements PreferenceControllerMixin, OnCheckedChangeListener {
 
     private static final String KEY_BLOCK = "block";
     private NotificationSettings.DependentFieldListener mDependentFieldListener;
@@ -104,7 +104,7 @@
     }
 
     @Override
-    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         boolean blocked = !isChecked;
         if (mChannel != null) {
             final int originalImportance = mChannel.getImportance();
diff --git a/src/com/android/settings/notification/app/ChannelListPreferenceController.java b/src/com/android/settings/notification/app/ChannelListPreferenceController.java
index 61ee024..c919633 100644
--- a/src/com/android/settings/notification/app/ChannelListPreferenceController.java
+++ b/src/com/android/settings/notification/app/ChannelListPreferenceController.java
@@ -34,7 +34,7 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceCategory;
 import androidx.preference.PreferenceGroup;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.Utils;
@@ -313,7 +313,7 @@
                 && isChannelGroupBlockable(group));
         preference.setChecked(!group.isBlocked());
         preference.setOnPreferenceClickListener(preference1 -> {
-            final boolean allowGroup = ((SwitchPreference) preference1).isChecked();
+            final boolean allowGroup = ((TwoStatePreference) preference1).isChecked();
             group.setBlocked(!allowGroup);
             mBackend.updateChannelGroup(mAppRow.pkg, mAppRow.uid, group);
 
diff --git a/src/com/android/settings/notification/app/InvalidConversationInfoPreferenceController.java b/src/com/android/settings/notification/app/InvalidConversationInfoPreferenceController.java
index b937e80..478607b 100644
--- a/src/com/android/settings/notification/app/InvalidConversationInfoPreferenceController.java
+++ b/src/com/android/settings/notification/app/InvalidConversationInfoPreferenceController.java
@@ -20,7 +20,6 @@
 import android.content.Context;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
 
 import com.android.settings.R;
 import com.android.settings.notification.NotificationBackend;
diff --git a/src/com/android/settings/notification/app/NotificationSoundPreference.java b/src/com/android/settings/notification/app/NotificationSoundPreference.java
index 136b21f..b55f9bd 100644
--- a/src/com/android/settings/notification/app/NotificationSoundPreference.java
+++ b/src/com/android/settings/notification/app/NotificationSoundPreference.java
@@ -25,10 +25,13 @@
 import android.os.AsyncTask;
 import android.util.AttributeSet;
 
+import android.util.Log;
 import com.android.settings.R;
 import com.android.settings.RingtonePreference;
 
 public class NotificationSoundPreference extends RingtonePreference {
+    private static final String TAG = "NotificationSoundPreference";
+
     private Uri mRingtone;
 
     public NotificationSoundPreference(Context context, AttributeSet attrs) {
@@ -50,8 +53,13 @@
     public boolean onActivityResult(int requestCode, int resultCode, Intent data) {
         if (data != null) {
             Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
-            setRingtone(uri);
-            callChangeListener(uri);
+            if (isValidRingtoneUri(uri)) {
+                setRingtone(uri);
+                callChangeListener(uri);
+            } else {
+                Log.e(TAG, "onActivityResult for URI:" + uri
+                    + " ignored: invalid ringtone Uri");
+            }
         }
 
         return true;
diff --git a/src/com/android/settings/notification/history/NotificationHistoryActivity.java b/src/com/android/settings/notification/history/NotificationHistoryActivity.java
index 4808773..4616934 100644
--- a/src/com/android/settings/notification/history/NotificationHistoryActivity.java
+++ b/src/com/android/settings/notification/history/NotificationHistoryActivity.java
@@ -47,6 +47,7 @@
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.ViewOutlineProvider;
+import android.widget.CompoundButton.OnCheckedChangeListener;
 import android.widget.ImageView;
 import android.widget.TextView;
 
@@ -64,7 +65,6 @@
 import com.android.settingslib.utils.StringUtil;
 import com.android.settingslib.utils.ThreadUtils;
 import com.android.settingslib.widget.MainSwitchBar;
-import com.android.settingslib.widget.OnMainSwitchChangeListener;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -355,7 +355,7 @@
         mHistoryEmpty.setVisibility(View.GONE);
     }
 
-    private final OnMainSwitchChangeListener mOnSwitchClickListener =
+    private final OnCheckedChangeListener mOnSwitchClickListener =
             (switchView, isChecked) -> {
                 int oldState = 0;
                 try {
diff --git a/src/com/android/settings/notification/history/NotificationSbnViewHolder.java b/src/com/android/settings/notification/history/NotificationSbnViewHolder.java
index 1a703eb..df8aec4 100644
--- a/src/com/android/settings/notification/history/NotificationSbnViewHolder.java
+++ b/src/com/android/settings/notification/history/NotificationSbnViewHolder.java
@@ -16,6 +16,9 @@
 
 package com.android.settings.notification.history;
 
+import static android.app.ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED;
+
+import android.app.ActivityOptions;
 import android.app.PendingIntent;
 import android.content.ActivityNotFoundException;
 import android.content.Intent;
@@ -110,7 +113,10 @@
                         uid, pkg, instanceId, position);
                 if (pi != null && isPendingIntentValid) {
                     try {
-                        pi.send();
+                        ActivityOptions options = ActivityOptions.makeBasic();
+                        options.setPendingIntentBackgroundActivityStartMode(
+                                MODE_BACKGROUND_ACTIVITY_START_ALLOWED);
+                        pi.send(options.toBundle());
                     } catch (PendingIntent.CanceledException e) {
                         Slog.e(TAG, "Could not launch", e);
                     }
diff --git a/src/com/android/settings/notification/zen/ZenAutomaticRuleSwitchPreferenceController.java b/src/com/android/settings/notification/zen/ZenAutomaticRuleSwitchPreferenceController.java
index fa36dde..4d2a6a5 100644
--- a/src/com/android/settings/notification/zen/ZenAutomaticRuleSwitchPreferenceController.java
+++ b/src/com/android/settings/notification/zen/ZenAutomaticRuleSwitchPreferenceController.java
@@ -18,7 +18,8 @@
 
 import android.app.AutomaticZenRule;
 import android.content.Context;
-import android.widget.Switch;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
 
 import androidx.fragment.app.Fragment;
 import androidx.preference.Preference;
@@ -27,11 +28,10 @@
 import com.android.settings.R;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.widget.MainSwitchPreference;
-import com.android.settingslib.widget.OnMainSwitchChangeListener;
 
 public class ZenAutomaticRuleSwitchPreferenceController extends
         AbstractZenModeAutomaticRulePreferenceController implements
-        OnMainSwitchChangeListener {
+        OnCheckedChangeListener {
 
     private static final String KEY = "zen_automatic_rule_switch";
     private AutomaticZenRule mRule;
@@ -86,7 +86,7 @@
     }
 
     @Override
-    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         final boolean enabled = isChecked;
         if (enabled == mRule.isEnabled()) return;
         mRule.setEnabled(enabled);
diff --git a/src/com/android/settings/notification/zen/ZenModeAlarmsPreferenceController.java b/src/com/android/settings/notification/zen/ZenModeAlarmsPreferenceController.java
index 3d2a1b7..85c3569 100644
--- a/src/com/android/settings/notification/zen/ZenModeAlarmsPreferenceController.java
+++ b/src/com/android/settings/notification/zen/ZenModeAlarmsPreferenceController.java
@@ -23,7 +23,7 @@
 import android.util.Log;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
@@ -51,7 +51,7 @@
     public void updateState(Preference preference) {
         super.updateState(preference);
 
-        SwitchPreference pref = (SwitchPreference) preference;
+        TwoStatePreference pref = (TwoStatePreference) preference;
         switch (getZenMode()) {
             case Settings.Global.ZEN_MODE_NO_INTERRUPTIONS:
                 pref.setEnabled(false);
diff --git a/src/com/android/settings/notification/zen/ZenModeEventsPreferenceController.java b/src/com/android/settings/notification/zen/ZenModeEventsPreferenceController.java
index 080c31f..4716d76 100644
--- a/src/com/android/settings/notification/zen/ZenModeEventsPreferenceController.java
+++ b/src/com/android/settings/notification/zen/ZenModeEventsPreferenceController.java
@@ -23,7 +23,7 @@
 import android.util.Log;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
@@ -50,7 +50,7 @@
     public void updateState(Preference preference) {
         super.updateState(preference);
 
-        SwitchPreference pref = (SwitchPreference) preference;
+        TwoStatePreference pref = (TwoStatePreference) preference;
         switch (getZenMode()) {
             case Settings.Global.ZEN_MODE_NO_INTERRUPTIONS:
             case Settings.Global.ZEN_MODE_ALARMS:
diff --git a/src/com/android/settings/notification/zen/ZenModeMediaPreferenceController.java b/src/com/android/settings/notification/zen/ZenModeMediaPreferenceController.java
index 51bceb1..f02ff75 100644
--- a/src/com/android/settings/notification/zen/ZenModeMediaPreferenceController.java
+++ b/src/com/android/settings/notification/zen/ZenModeMediaPreferenceController.java
@@ -22,7 +22,7 @@
 import android.util.Log;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
@@ -51,7 +51,7 @@
     public void updateState(Preference preference) {
         super.updateState(preference);
 
-        SwitchPreference pref = (SwitchPreference) preference;
+        TwoStatePreference pref = (TwoStatePreference) preference;
         switch (getZenMode()) {
             case Settings.Global.ZEN_MODE_NO_INTERRUPTIONS:
                 pref.setEnabled(false);
diff --git a/src/com/android/settings/notification/zen/ZenModeRemindersPreferenceController.java b/src/com/android/settings/notification/zen/ZenModeRemindersPreferenceController.java
index fede486..f348e16 100644
--- a/src/com/android/settings/notification/zen/ZenModeRemindersPreferenceController.java
+++ b/src/com/android/settings/notification/zen/ZenModeRemindersPreferenceController.java
@@ -23,7 +23,7 @@
 import android.util.Log;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
@@ -50,7 +50,7 @@
     public void updateState(Preference preference) {
         super.updateState(preference);
 
-        SwitchPreference pref = (SwitchPreference) preference;
+        TwoStatePreference pref = (TwoStatePreference) preference;
         switch (getZenMode()) {
             case Settings.Global.ZEN_MODE_NO_INTERRUPTIONS:
             case Settings.Global.ZEN_MODE_ALARMS:
diff --git a/src/com/android/settings/notification/zen/ZenModeRepeatCallersPreferenceController.java b/src/com/android/settings/notification/zen/ZenModeRepeatCallersPreferenceController.java
index c015ed6..7876912 100644
--- a/src/com/android/settings/notification/zen/ZenModeRepeatCallersPreferenceController.java
+++ b/src/com/android/settings/notification/zen/ZenModeRepeatCallersPreferenceController.java
@@ -24,7 +24,7 @@
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -65,7 +65,7 @@
     public void updateState(Preference preference) {
         super.updateState(preference);
 
-        SwitchPreference pref = (SwitchPreference) preference;
+        TwoStatePreference pref = (TwoStatePreference) preference;
         switch (getZenMode()) {
             case Settings.Global.ZEN_MODE_NO_INTERRUPTIONS:
             case Settings.Global.ZEN_MODE_ALARMS:
diff --git a/src/com/android/settings/notification/zen/ZenModeScheduleRuleSettings.java b/src/com/android/settings/notification/zen/ZenModeScheduleRuleSettings.java
index 0e4f338..577416d 100644
--- a/src/com/android/settings/notification/zen/ZenModeScheduleRuleSettings.java
+++ b/src/com/android/settings/notification/zen/ZenModeScheduleRuleSettings.java
@@ -31,12 +31,13 @@
 import android.util.Log;
 import android.widget.TimePicker;
 
+import androidx.annotation.Nullable;
 import androidx.appcompat.app.AlertDialog;
 import androidx.fragment.app.FragmentManager;
 import androidx.preference.Preference;
 import androidx.preference.Preference.OnPreferenceClickListener;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
@@ -60,7 +61,8 @@
     private Preference mDays;
     private TimePickerPreference mStart;
     private TimePickerPreference mEnd;
-    private SwitchPreference mExitAtAlarm;
+    @Nullable
+    private TwoStatePreference mExitAtAlarm = null;
     private AlertDialog mDayDialog;
     private ScheduleInfo mSchedule;
 
@@ -135,7 +137,7 @@
         root.addPreference(mEnd);
         mEnd.setDependency(mDays.getKey());
 
-        mExitAtAlarm = (SwitchPreference) root.findPreference(KEY_EXIT_AT_ALARM);
+        mExitAtAlarm = root.findPreference(KEY_EXIT_AT_ALARM);
         mExitAtAlarm.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
             @Override
             public boolean onPreferenceChange(Preference preference, Object o) {
diff --git a/src/com/android/settings/notification/zen/ZenModeSystemPreferenceController.java b/src/com/android/settings/notification/zen/ZenModeSystemPreferenceController.java
index a170a78..db88f82 100644
--- a/src/com/android/settings/notification/zen/ZenModeSystemPreferenceController.java
+++ b/src/com/android/settings/notification/zen/ZenModeSystemPreferenceController.java
@@ -23,7 +23,7 @@
 import android.util.Log;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
@@ -50,7 +50,7 @@
     public void updateState(Preference preference) {
         super.updateState(preference);
 
-        SwitchPreference pref = (SwitchPreference) preference;
+        TwoStatePreference pref = (TwoStatePreference) preference;
         switch (getZenMode()) {
             case Settings.Global.ZEN_MODE_NO_INTERRUPTIONS:
                 pref.setEnabled(false);
diff --git a/src/com/android/settings/notification/zen/ZenRuleCustomSwitchPreferenceController.java b/src/com/android/settings/notification/zen/ZenRuleCustomSwitchPreferenceController.java
index e54a614..a7bfd9d 100644
--- a/src/com/android/settings/notification/zen/ZenRuleCustomSwitchPreferenceController.java
+++ b/src/com/android/settings/notification/zen/ZenRuleCustomSwitchPreferenceController.java
@@ -22,7 +22,7 @@
 import android.util.Pair;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.internal.logging.nano.MetricsProto;
 import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -47,7 +47,7 @@
             return;
         }
 
-        SwitchPreference pref = (SwitchPreference) preference;
+        TwoStatePreference pref = (TwoStatePreference) preference;
         pref.setChecked(mRule.getZenPolicy().isCategoryAllowed(mCategory, false));
     }
 
diff --git a/src/com/android/settings/notification/zen/ZenRuleRepeatCallersPreferenceController.java b/src/com/android/settings/notification/zen/ZenRuleRepeatCallersPreferenceController.java
index b4eabbb..c5717f4 100644
--- a/src/com/android/settings/notification/zen/ZenRuleRepeatCallersPreferenceController.java
+++ b/src/com/android/settings/notification/zen/ZenRuleRepeatCallersPreferenceController.java
@@ -23,7 +23,7 @@
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.internal.logging.nano.MetricsProto;
 import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -52,7 +52,7 @@
             return;
         }
 
-        SwitchPreference pref = (SwitchPreference) preference;
+        TwoStatePreference pref = (TwoStatePreference) preference;
         boolean anyCallersCanBypassDnd = mRule.getZenPolicy().getPriorityCallSenders()
                 == ZenPolicy.PEOPLE_TYPE_ANYONE;
 
diff --git a/src/com/android/settings/overlay/FeatureFactory.kt b/src/com/android/settings/overlay/FeatureFactory.kt
index 7645076..bc0cf1f 100644
--- a/src/com/android/settings/overlay/FeatureFactory.kt
+++ b/src/com/android/settings/overlay/FeatureFactory.kt
@@ -21,6 +21,7 @@
 import com.android.settings.accounts.AccountFeatureProvider
 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
@@ -38,6 +39,7 @@
 import com.android.settings.onboarding.OnboardingFeatureProvider
 import com.android.settings.overlay.FeatureFactory.Companion.setFactory
 import com.android.settings.panel.PanelFeatureProvider
+import com.android.settings.privatespace.PrivateSpaceLoginFeatureProvider
 import com.android.settings.search.SearchFeatureProvider
 import com.android.settings.security.SecurityFeatureProvider
 import com.android.settings.security.SecuritySettingsFeatureProvider
@@ -104,9 +106,17 @@
      */
     abstract val bluetoothFeatureProvider: BluetoothFeatureProvider
 
+    /**
+     * Retrieves implementation for Face feature.
+     */
     abstract val faceFeatureProvider: FaceFeatureProvider
 
     /**
+     * Retrieves implementation for Fingerprint feature.
+     */
+    abstract val fingerprintFeatureProvider: FingerprintFeatureProvider
+
+    /**
      * Gets implementation for Biometrics repository provider.
      */
     abstract val biometricsRepositoryProvider: BiometricsRepositoryProvider
@@ -161,6 +171,11 @@
      */
     abstract val fastPairFeatureProvider: FastPairFeatureProvider
 
+    /**
+     * Gets implementation for Private Space account login feature.
+     */
+    abstract val privateSpaceLoginFeatureProvider: PrivateSpaceLoginFeatureProvider
+
     companion object {
         private var _factory: FeatureFactory? = null
 
diff --git a/src/com/android/settings/overlay/FeatureFactoryImpl.kt b/src/com/android/settings/overlay/FeatureFactoryImpl.kt
index 0afe9f4..28dbb23 100644
--- a/src/com/android/settings/overlay/FeatureFactoryImpl.kt
+++ b/src/com/android/settings/overlay/FeatureFactoryImpl.kt
@@ -29,6 +29,8 @@
 import com.android.settings.applications.ApplicationFeatureProviderImpl
 import com.android.settings.biometrics.face.FaceFeatureProvider
 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
@@ -57,6 +59,8 @@
 import com.android.settings.security.SecurityFeatureProviderImpl
 import com.android.settings.security.SecuritySettingsFeatureProvider
 import com.android.settings.security.SecuritySettingsFeatureProviderImpl
+import com.android.settings.privatespace.PrivateSpaceLoginFeatureProvider
+import com.android.settings.privatespace.PrivateSpaceLoginFeatureProviderImpl
 import com.android.settings.slices.SlicesFeatureProviderImpl
 import com.android.settings.users.UserFeatureProviderImpl
 import com.android.settings.vpn2.AdvancedVpnFeatureProviderImpl
@@ -145,6 +149,10 @@
 
     override val faceFeatureProvider: FaceFeatureProvider by lazy { FaceFeatureProviderImpl() }
 
+    override val fingerprintFeatureProvider: FingerprintFeatureProvider by lazy {
+        FingerprintFeatureProviderImpl()
+    }
+
     override val biometricsRepositoryProvider by lazy { BiometricsRepositoryProviderImpl() }
 
     override val wifiTrackerLibProvider: WifiTrackerLibProvider by lazy {
@@ -178,4 +186,8 @@
     override val fastPairFeatureProvider: FastPairFeatureProvider by lazy {
         FastPairFeatureProviderImpl()
     }
+
+    override val privateSpaceLoginFeatureProvider: PrivateSpaceLoginFeatureProvider by lazy {
+        PrivateSpaceLoginFeatureProviderImpl()
+    }
 }
diff --git a/src/com/android/settings/panel/VolumePanel.java b/src/com/android/settings/panel/VolumePanel.java
index 938ee9d..1a53de0 100644
--- a/src/com/android/settings/panel/VolumePanel.java
+++ b/src/com/android/settings/panel/VolumePanel.java
@@ -25,7 +25,6 @@
 import static com.android.settings.slices.CustomSliceRegistry.VOLUME_CALL_URI;
 import static com.android.settings.slices.CustomSliceRegistry.VOLUME_MEDIA_URI;
 import static com.android.settings.slices.CustomSliceRegistry.VOLUME_NOTIFICATION_URI;
-import static com.android.settings.slices.CustomSliceRegistry.VOLUME_RINGER_URI;
 import static com.android.settings.slices.CustomSliceRegistry.VOLUME_SEPARATE_RING_URI;
 
 import android.app.Activity;
@@ -144,7 +143,6 @@
         }
         uris.add(MEDIA_OUTPUT_INDICATOR_SLICE_URI);
         uris.add(VOLUME_CALL_URI);
-        uris.add(VOLUME_RINGER_URI);
         uris.add(VOLUME_SEPARATE_RING_URI);
         uris.add(VOLUME_NOTIFICATION_URI);
         uris.add(VOLUME_ALARM_URI);
diff --git a/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java b/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
index 70d4d7d..a0db4ce 100644
--- a/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
+++ b/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
@@ -31,6 +31,7 @@
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
+import android.content.pm.UserProperties;
 import android.content.res.Configuration;
 import android.graphics.Color;
 import android.hardware.biometrics.BiometricConstants;
@@ -61,11 +62,6 @@
 public class ConfirmDeviceCredentialActivity extends FragmentActivity {
     public static final String TAG = ConfirmDeviceCredentialActivity.class.getSimpleName();
 
-    // The normal flow that apps go through
-    private static final int CREDENTIAL_NORMAL = 1;
-    // Unlocks the managed profile when the primary profile is unlocked
-    private static final int CREDENTIAL_MANAGED = 2;
-
     private static final String TAG_BIOMETRIC_FRAGMENT = "fragment";
 
     public static class InternalActivity extends ConfirmDeviceCredentialActivity {
@@ -84,7 +80,9 @@
     private String mTitle;
     private CharSequence mDetails;
     private int mUserId;
-    private int mCredentialMode;
+    // Used to force the verification path required to unlock profile that shares credentials with
+    // with parent
+    private boolean mForceVerifyPath = false;
     private boolean mGoingToBackground;
     private boolean mWaitingForBiometricCallback;
 
@@ -189,7 +187,9 @@
         }
         final int effectiveUserId = mUserManager.getCredentialOwnerProfile(mUserId);
         final boolean isEffectiveUserManagedProfile =
-                UserManager.get(this).isManagedProfile(effectiveUserId);
+                mUserManager.isManagedProfile(effectiveUserId);
+        final UserProperties userProperties =
+                mUserManager.getUserProperties(UserHandle.of(mUserId));
         // if the client app did not hand in a title and we are about to show the work challenge,
         // check whether there is a policy setting the organization name and use that as title
         if ((mTitle == null) && isEffectiveUserManagedProfile) {
@@ -278,7 +278,19 @@
                     .setForceVerifyPath(true)
                     .show();
         } else if (isEffectiveUserManagedProfile && isInternalActivity()) {
-            mCredentialMode = CREDENTIAL_MANAGED;
+            // When the mForceVerifyPath is set to true, we launch the real confirm credential
+            // activity with an explicit but fake challenge value (0L). This will result in
+            // ConfirmLockPassword calling verifyTiedProfileChallenge() (if it's a profile with
+            // unified challenge), due to the difference between
+            // ConfirmLockPassword.startVerifyPassword() and
+            // ConfirmLockPassword.startCheckPassword(). Calling verifyTiedProfileChallenge() here
+            // is necessary when this is part of the turning on work profile flow, because it forces
+            // unlocking the work profile even before the profile is running.
+            // TODO: Remove the duplication of checkPassword and verifyPassword in
+            //  ConfirmLockPassword,
+            // LockPatternChecker and LockPatternUtils. verifyPassword should be the only API to
+            // use, which optionally accepts a challenge.
+            mForceVerifyPath = true;
             if (isBiometricAllowed(effectiveUserId, mUserId)) {
                 showBiometricPrompt(promptInfo);
                 launchedBiometric = true;
@@ -286,8 +298,19 @@
                 showConfirmCredentials();
                 launchedCDC = true;
             }
+        } else if (android.os.Flags.allowPrivateProfile()
+                && userProperties != null
+                && userProperties.isAuthAlwaysRequiredToDisableQuietMode()
+                && isInternalActivity()) {
+            // Force verification path is required to be invoked as we might need to verify the tied
+            // profile challenge if the profile is using the unified challenge mode. This would
+            // result in ConfirmLockPassword.startVerifyPassword/
+            // ConfirmLockPattern.startVerifyPattern being called instead of the
+            // startCheckPassword/startCheckPattern
+            mForceVerifyPath = userProperties.isCredentialShareableWithParent();
+            showConfirmCredentials();
+            launchedCDC = true;
         } else {
-            mCredentialMode = CREDENTIAL_NORMAL;
             if (isBiometricAllowed(effectiveUserId, mUserId)) {
                 // Don't need to check if biometrics / pin/pattern/pass are enrolled. It will go to
                 // onAuthenticationError and do the right thing automatically.
@@ -313,11 +336,8 @@
 
     private String getTitleFromCredentialType(@LockPatternUtils.CredentialType int credentialType,
             boolean isEffectiveUserManagedProfile) {
-        int overrideStringId;
-        int defaultStringId;
         switch (credentialType) {
             case LockPatternUtils.CREDENTIAL_TYPE_PIN:
-
                 if (isEffectiveUserManagedProfile) {
                     return mDevicePolicyManager.getResources().getString(
                             CONFIRM_WORK_PROFILE_PIN_HEADER,
@@ -410,29 +430,15 @@
      * Shows ConfirmDeviceCredentials for normal apps.
      */
     private void showConfirmCredentials() {
-        boolean launched = false;
-        ChooseLockSettingsHelper.Builder builder = new ChooseLockSettingsHelper.Builder(this)
+        boolean launched = new ChooseLockSettingsHelper.Builder(this)
                 .setHeader(mTitle)
                 .setDescription(mDetails)
                 .setExternal(true)
                 .setUserId(mUserId)
-                .setTaskOverlay(mTaskOverlay);
-        // The only difference between CREDENTIAL_MANAGED and CREDENTIAL_NORMAL is that for
-        // CREDENTIAL_MANAGED, we launch the real confirm credential activity with an explicit
-        // but fake challenge value (0L). This will result in ConfirmLockPassword calling
-        // verifyTiedProfileChallenge() (if it's a profile with unified challenge), due to the
-        // difference between ConfirmLockPassword.startVerifyPassword() and
-        // ConfirmLockPassword.startCheckPassword(). Calling verifyTiedProfileChallenge() here is
-        // necessary when this is part of the turning on work profile flow, because it forces
-        // unlocking the work profile even before the profile is running.
-        // TODO: Remove the duplication of checkPassword and verifyPassword in ConfirmLockPassword,
-        // LockPatternChecker and LockPatternUtils. verifyPassword should be the only API to use,
-        // which optionally accepts a challenge.
-        if (mCredentialMode == CREDENTIAL_MANAGED) {
-            launched = builder.setForceVerifyPath(true).show();
-        } else if (mCredentialMode == CREDENTIAL_NORMAL) {
-            launched = builder.show();
-        }
+                .setTaskOverlay(mTaskOverlay)
+                .setForceVerifyPath(mForceVerifyPath)
+                .show();
+
         if (!launched) {
             Log.d(TAG, "No pin/pattern/pass set");
             setResult(Activity.RESULT_OK);
diff --git a/src/com/android/settings/password/ConfirmDeviceCredentialBaseFragment.java b/src/com/android/settings/password/ConfirmDeviceCredentialBaseFragment.java
index 43d8440..ea00f7f 100644
--- a/src/com/android/settings/password/ConfirmDeviceCredentialBaseFragment.java
+++ b/src/com/android/settings/password/ConfirmDeviceCredentialBaseFragment.java
@@ -419,6 +419,10 @@
         }
     }
 
+    protected void clearResetErrorRunnable() {
+        mHandler.removeCallbacks(mResetErrorRunnable);
+    }
+
     protected void validateGuess(LockscreenCredential credentialGuess) {
         mRemoteLockscreenValidationFragment.validateLockscreenGuess(
                 mRemoteLockscreenValidationClient, credentialGuess,
diff --git a/src/com/android/settings/password/ConfirmLockPassword.java b/src/com/android/settings/password/ConfirmLockPassword.java
index b203015..b139ae9 100644
--- a/src/com/android/settings/password/ConfirmLockPassword.java
+++ b/src/com/android/settings/password/ConfirmLockPassword.java
@@ -666,6 +666,7 @@
         }
 
         private void handleAttemptLockout(long elapsedRealtimeDeadline) {
+            clearResetErrorRunnable();
             mCountdownTimer = new CountDownTimer(
                     elapsedRealtimeDeadline - SystemClock.elapsedRealtime(),
                     LockPatternUtils.FAILED_ATTEMPT_COUNTDOWN_INTERVAL_MS) {
diff --git a/src/com/android/settings/password/ConfirmLockPattern.java b/src/com/android/settings/password/ConfirmLockPattern.java
index 3afb60e..6e3ad30 100644
--- a/src/com/android/settings/password/ConfirmLockPattern.java
+++ b/src/com/android/settings/password/ConfirmLockPattern.java
@@ -697,6 +697,7 @@
         }
 
         private void handleAttemptLockout(long elapsedRealtimeDeadline) {
+            clearResetErrorRunnable();
             updateStage(Stage.LockedOut);
             long elapsedRealtime = SystemClock.elapsedRealtime();
             mCountdownTimer = new CountDownTimer(
diff --git a/src/com/android/settings/password/SetNewPasswordActivity.java b/src/com/android/settings/password/SetNewPasswordActivity.java
index c02e23b..bb3c6df 100644
--- a/src/com/android/settings/password/SetNewPasswordActivity.java
+++ b/src/com/android/settings/password/SetNewPasswordActivity.java
@@ -121,7 +121,9 @@
 
     @Override
     public void launchChooseLock(Bundle chooseLockFingerprintExtras) {
-        Intent intent = new Intent(this, SetupChooseLockGeneric.class);
+        final boolean isInSetupWizard = WizardManagerHelper.isAnySetupWizard(getIntent());
+        Intent intent = isInSetupWizard ? new Intent(this, SetupChooseLockGeneric.class)
+                : new Intent(this, ChooseLockGeneric.class);
         intent.setAction(mNewPasswordAction);
         intent.putExtras(chooseLockFingerprintExtras);
         if (mCallerAppName != null) {
diff --git a/src/com/android/settings/password/SetupChooseLockGeneric.java b/src/com/android/settings/password/SetupChooseLockGeneric.java
index eade7cf..7c0769e 100644
--- a/src/com/android/settings/password/SetupChooseLockGeneric.java
+++ b/src/com/android/settings/password/SetupChooseLockGeneric.java
@@ -256,12 +256,6 @@
             return InternalSetupChooseLockGenericFragment.class;
         }
 
-        @Override
-        protected boolean isToolbarEnabled() {
-            // Hide the action bar from this page.
-            return false;
-        }
-
         public static class InternalSetupChooseLockGenericFragment
                 extends ChooseLockGenericFragment {
             @Override
diff --git a/src/com/android/settings/print/PrintServiceSettingsFragment.java b/src/com/android/settings/print/PrintServiceSettingsFragment.java
index c5316e6..e144ffd 100644
--- a/src/com/android/settings/print/PrintServiceSettingsFragment.java
+++ b/src/com/android/settings/print/PrintServiceSettingsFragment.java
@@ -43,12 +43,13 @@
 import android.view.View.OnClickListener;
 import android.view.ViewGroup;
 import android.view.accessibility.AccessibilityManager;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
 import android.widget.Filter;
 import android.widget.Filterable;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.SearchView;
-import android.widget.Switch;
 import android.widget.TextView;
 
 import androidx.annotation.NonNull;
@@ -61,7 +62,6 @@
 import com.android.settings.SettingsActivity;
 import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.widget.SettingsMainSwitchBar;
-import com.android.settingslib.widget.OnMainSwitchChangeListener;
 
 import java.util.ArrayList;
 import java.util.LinkedHashMap;
@@ -72,7 +72,7 @@
  * Fragment with print service settings.
  */
 public class PrintServiceSettingsFragment extends SettingsPreferenceFragment
-        implements OnMainSwitchChangeListener,
+        implements OnCheckedChangeListener,
         LoaderManager.LoaderCallbacks<List<PrintServiceInfo>> {
 
     private static final String LOG_TAG = "PrintServiceSettings";
@@ -240,7 +240,7 @@
         mSwitchBar.addOnSwitchChangeListener(this);
         mSwitchBar.show();
 
-        mSwitchBar.setOnBeforeCheckedChangeListener((toggleSwitch, checked) -> {
+        mSwitchBar.setOnBeforeCheckedChangeListener((checked) -> {
             onPreferenceToggled(mPreferenceKey, checked);
             return false;
         });
@@ -250,7 +250,7 @@
 
 
     @Override
-    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         updateEmptyView();
     }
 
diff --git a/src/com/android/settings/privatespace/AutoAdvanceSetupFragment.java b/src/com/android/settings/privatespace/AutoAdvanceSetupFragment.java
new file mode 100644
index 0000000..1061498
--- /dev/null
+++ b/src/com/android/settings/privatespace/AutoAdvanceSetupFragment.java
@@ -0,0 +1,185 @@
+/*
+ * 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.privatespace;
+
+import static com.android.settings.privatespace.PrivateSpaceSetupActivity.ACCOUNT_LOGIN_ACTION;
+import static com.android.settings.privatespace.PrivateSpaceSetupActivity.EXTRA_ACTION_TYPE;
+
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.AnimatorSet;
+import android.animation.ObjectAnimator;
+import android.animation.ValueAnimator;
+import android.annotation.SuppressLint;
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.UserHandle;
+import android.util.Log;
+import android.util.Pair;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+
+import androidx.activity.OnBackPressedCallback;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+import androidx.navigation.fragment.NavHostFragment;
+
+import com.android.settings.R;
+
+import com.google.android.setupdesign.GlifLayout;
+import com.google.common.collect.ImmutableList;
+
+import org.jetbrains.annotations.NotNull;
+
+import java.util.List;
+
+/** Fragment to show screens that auto advance during private space setup flow */
+public class AutoAdvanceSetupFragment extends Fragment {
+    private static final String TAG = "AutoAdvanceFragment";
+    private static final String TITLE_INDEX = "title_index";
+    private static final int DELAY_BETWEEN_SCREENS = 5000; // 5 seconds in millis
+    private static final int ANIMATION_DURATION_MILLIS = 500;
+    private GlifLayout mRootView;
+    private Handler mHandler;
+    private int mScreenTitleIndex;
+    private static final List<Pair<Integer, Integer>> HEADER_IMAGE_PAIRS =
+            ImmutableList.of(
+                    new Pair(R.string.privatespace_apps_hidden_title,
+                            R.drawable.privatespace_setup_flow_placeholder),
+                    new Pair(R.string.privatespace_access_from_apps_title,
+                            R.drawable.privatespace_setup_flow_placeholder),
+                    new Pair(R.string.privatespace_system_apps_installed_title,
+                            R.drawable.privatespace_setup_flow_placeholder));
+
+    private Runnable mUpdateScreenResources =
+            new Runnable() {
+                @Override
+                public void run() {
+                    if (getActivity() != null) {
+                        if (++mScreenTitleIndex < HEADER_IMAGE_PAIRS.size()) {
+                            startFadeOutAnimation();
+                            mHandler.postDelayed(mUpdateScreenResources, DELAY_BETWEEN_SCREENS);
+                        } else {
+                            PrivateSpaceMaintainer privateSpaceMaintainer = PrivateSpaceMaintainer
+                                    .getInstance(getActivity());
+                            UserHandle userHandle;
+                            if (privateSpaceMaintainer.doesPrivateSpaceExist() && (userHandle =
+                                    privateSpaceMaintainer.getPrivateProfileHandle()) != null) {
+                                startActivityInPrivateUser(userHandle);
+                            } else {
+                                showPrivateSpaceErrorScreen();
+                            }
+                        }
+                    }
+                }
+            };
+
+    @Override
+    public View onCreateView(
+            LayoutInflater inflater,
+            @Nullable ViewGroup container,
+            @Nullable Bundle savedInstanceState) {
+        if (savedInstanceState == null) {
+            if (PrivateSpaceMaintainer.getInstance(getActivity()).createPrivateSpace()) {
+                Log.i(TAG, "Private Space created");
+            }
+        } else {
+            mScreenTitleIndex = savedInstanceState.getInt(TITLE_INDEX);
+            if (mScreenTitleIndex >= HEADER_IMAGE_PAIRS.size()) {
+                return super.onCreateView(inflater, container, savedInstanceState);
+            }
+        }
+        mRootView =
+                (GlifLayout)
+                        inflater.inflate(R.layout.privatespace_advancing_screen, container, false);
+        updateHeaderAndImage();
+        mHandler = new Handler(Looper.getMainLooper());
+        mHandler.postDelayed(mUpdateScreenResources, DELAY_BETWEEN_SCREENS);
+        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);
+        return mRootView;
+    }
+
+    @Override
+    public void onSaveInstanceState(@NotNull Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putInt(TITLE_INDEX, mScreenTitleIndex);
+    }
+
+    @Override
+    public void onDestroy() {
+        mHandler.removeCallbacks(mUpdateScreenResources);
+        super.onDestroy();
+    }
+
+    @SuppressLint("MissingPermission")
+    private void startActivityInPrivateUser(UserHandle userHandle) {
+        /* Start new activity in private profile which is needed to set private profile lock */
+        Intent intent = new Intent(getContext(), PrivateProfileContextHelperActivity.class);
+        intent.putExtra(EXTRA_ACTION_TYPE, ACCOUNT_LOGIN_ACTION);
+        getActivity().startActivityForResultAsUser(intent, ACCOUNT_LOGIN_ACTION, userHandle);
+    }
+
+    private void showPrivateSpaceErrorScreen() {
+        NavHostFragment.findNavController(AutoAdvanceSetupFragment.this)
+                .navigate(R.id.action_advance_profile_error);
+    }
+
+    private void updateHeaderAndImage() {
+        mRootView.setHeaderText(HEADER_IMAGE_PAIRS.get(mScreenTitleIndex).first);
+        ((ImageView) mRootView.findViewById(R.id.placeholder_image))
+                .setImageResource(HEADER_IMAGE_PAIRS.get(mScreenTitleIndex).second);
+        startFadeInAnimation();
+    }
+
+    private  void startFadeInAnimation() {
+        ValueAnimator textView =  ObjectAnimator.ofFloat(
+                mRootView.getHeaderTextView(), View.ALPHA, 0f, 1f);
+        ValueAnimator imageView = ObjectAnimator.ofFloat(
+                mRootView.findViewById(R.id.placeholder_image), View.ALPHA, 0, 1f);
+        AnimatorSet fadeIn = new AnimatorSet();
+        fadeIn.playTogether(textView, imageView);
+        fadeIn.setDuration(ANIMATION_DURATION_MILLIS).start();
+    }
+
+    private void startFadeOutAnimation() {
+        AnimatorSet fadeOut = new AnimatorSet();
+        ValueAnimator textView =  ObjectAnimator.ofFloat(
+                mRootView.getHeaderTextView(), View.ALPHA, 1f, 0f);
+        ValueAnimator imageView = ObjectAnimator.ofFloat(
+                mRootView.findViewById(R.id.placeholder_image), View.ALPHA, 1f, 0f);
+        fadeOut.playTogether(textView, imageView);
+        fadeOut.setDuration(ANIMATION_DURATION_MILLIS).start();
+        fadeOut.addListener(new AnimatorListenerAdapter() {
+            @Override
+            public void onAnimationEnd(Animator animation) {
+                updateHeaderAndImage();
+            }
+        });
+    }
+}
diff --git a/src/com/android/settings/privatespace/CreatePrivateSpaceController.java b/src/com/android/settings/privatespace/CreatePrivateSpaceController.java
deleted file mode 100644
index 3214988..0000000
--- a/src/com/android/settings/privatespace/CreatePrivateSpaceController.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.privatespace;
-
-import android.content.Context;
-import android.text.TextUtils;
-import android.widget.Toast;
-
-import androidx.preference.Preference;
-
-import com.android.settings.R;
-import com.android.settings.core.BasePreferenceController;
-
-// TODO(b/293569406): Remove this when we have the setup flow in place to create PS
-/**
- * Temp Controller to create the private space from the PS Settings page. This is to allow PM, UX,
- * and other folks to play around with PS before the PS setup flow is ready.
- */
-public final class CreatePrivateSpaceController extends BasePreferenceController {
-
-    public CreatePrivateSpaceController(Context context, String preferenceKey) {
-        super(context, preferenceKey);
-    }
-
-    @Override
-    public int getAvailabilityStatus() {
-        return AVAILABLE;
-    }
-
-    @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        if (!TextUtils.equals(preference.getKey(), getPreferenceKey())) {
-            return false;
-        }
-
-        if (PrivateSpaceMaintainer.getInstance(mContext).doesPrivateSpaceExist()) {
-            showPrivateSpaceAlreadyExistsToast();
-            return super.handlePreferenceTreeClick(preference);
-        }
-
-        if (PrivateSpaceMaintainer.getInstance(mContext).createPrivateSpace()) {
-            showPrivateSpaceCreatedToast();
-        } else {
-            showPrivateSpaceCreationFailedToast();
-        }
-        return super.handlePreferenceTreeClick(preference);
-    }
-
-    private void showPrivateSpaceCreatedToast() {
-        Toast.makeText(mContext, R.string.private_space_created, Toast.LENGTH_SHORT).show();
-    }
-
-    private void showPrivateSpaceCreationFailedToast() {
-        Toast.makeText(mContext, R.string.private_space_create_failed, Toast.LENGTH_SHORT).show();
-    }
-
-    private void showPrivateSpaceAlreadyExistsToast() {
-        Toast.makeText(mContext, R.string.private_space_already_exists, Toast.LENGTH_SHORT).show();
-    }
-}
diff --git a/src/com/android/settings/privatespace/HidePrivateSpaceController.java b/src/com/android/settings/privatespace/HidePrivateSpaceController.java
index f27acbd..8a0f167 100644
--- a/src/com/android/settings/privatespace/HidePrivateSpaceController.java
+++ b/src/com/android/settings/privatespace/HidePrivateSpaceController.java
@@ -16,30 +16,42 @@
 
 package com.android.settings.privatespace;
 
+import static com.android.settings.privatespace.PrivateSpaceMaintainer.HIDE_PRIVATE_SPACE_ENTRY_POINT_DISABLED_VAL;
+import static com.android.settings.privatespace.PrivateSpaceMaintainer.HIDE_PRIVATE_SPACE_ENTRY_POINT_ENABLED_VAL;
+
 import android.content.Context;
 
 import com.android.settings.core.TogglePreferenceController;
 
-/** Represents the preference controller for (un)hiding the Private Space */
-public final class HidePrivateSpaceController extends TogglePreferenceController {
-    public HidePrivateSpaceController(Context context, String preferenceKey) {
-        super(context, preferenceKey);
+/**
+ *  A class that is used to show details page for the setting to hide private space entry point
+ *  in All Apps.
+ */
+public class HidePrivateSpaceController extends TogglePreferenceController {
+    private final PrivateSpaceMaintainer mPrivateSpaceMaintainer;
+
+    public HidePrivateSpaceController(Context context, String key) {
+        super(context, key);
+        mPrivateSpaceMaintainer = PrivateSpaceMaintainer.getInstance(context);
     }
 
     @Override
+    @AvailabilityStatus
     public int getAvailabilityStatus() {
         return AVAILABLE;
     }
 
     @Override
     public boolean isChecked() {
-        // TODO(b/293569406) Need to check this from a persistent store, maybe like SettingsProvider
-        return false;
+        return mPrivateSpaceMaintainer.getHidePrivateSpaceEntryPointSetting()
+                != HIDE_PRIVATE_SPACE_ENTRY_POINT_DISABLED_VAL;
     }
 
     @Override
     public boolean setChecked(boolean isChecked) {
-        // TODO(b/293569406) Need to save this to a persistent store, maybe like SettingsProvider
+        mPrivateSpaceMaintainer.setHidePrivateSpaceEntryPointSetting(
+                isChecked ? HIDE_PRIVATE_SPACE_ENTRY_POINT_ENABLED_VAL
+                        : HIDE_PRIVATE_SPACE_ENTRY_POINT_DISABLED_VAL);
         return true;
     }
 
diff --git a/src/com/android/settings/privatespace/HidePrivateSpaceSettings.java b/src/com/android/settings/privatespace/HidePrivateSpaceSettings.java
new file mode 100644
index 0000000..d7a9cf5
--- /dev/null
+++ b/src/com/android/settings/privatespace/HidePrivateSpaceSettings.java
@@ -0,0 +1,41 @@
+/*
+ * 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.privatespace;
+
+import android.app.settings.SettingsEnums;
+
+import com.android.settings.R;
+import com.android.settings.dashboard.DashboardFragment;
+
+public class HidePrivateSpaceSettings extends DashboardFragment{
+    private static final String TAG = "HidePrivateSpaceSettings";
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.PRIVATE_SPACE_SETTINGS;
+    }
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.privatespace_hide_locked;
+    }
+
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+}
diff --git a/src/com/android/settings/privatespace/HidePrivateSpaceSummaryController.java b/src/com/android/settings/privatespace/HidePrivateSpaceSummaryController.java
new file mode 100644
index 0000000..73b3960
--- /dev/null
+++ b/src/com/android/settings/privatespace/HidePrivateSpaceSummaryController.java
@@ -0,0 +1,57 @@
+/*
+ * 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.privatespace;
+
+import static android.provider.Settings.Secure.HIDE_PRIVATESPACE_ENTRY_POINT;
+
+import android.content.Context;
+import android.provider.Settings;
+
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+
+
+/**
+ * Represents the preference controller for (un)hiding Private Space entry point in All Apps and
+ * shows On/Off summary depending upon the settings provider value.
+ */
+public final class HidePrivateSpaceSummaryController extends BasePreferenceController {
+    public HidePrivateSpaceSummaryController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AVAILABLE;
+    }
+
+    @Override
+    public int getSliceHighlightMenuRes() {
+        return 0;
+    }
+
+    @Override
+    public CharSequence getSummary() {
+        return isHidden() ? mContext.getString(R.string.privatespace_hide_on_summary)
+                : mContext.getString(R.string.privatespace_hide_off_summary);
+    }
+
+    private boolean isHidden() {
+        return Settings.Secure.getInt(mContext.getContentResolver(),
+                HIDE_PRIVATESPACE_ENTRY_POINT, 0) == 1;
+    }
+}
diff --git a/src/com/android/settings/privatespace/PrivateProfileContextHelperActivity.java b/src/com/android/settings/privatespace/PrivateProfileContextHelperActivity.java
new file mode 100644
index 0000000..0539f60
--- /dev/null
+++ b/src/com/android/settings/privatespace/PrivateProfileContextHelperActivity.java
@@ -0,0 +1,99 @@
+/*
+ * 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.privatespace;
+
+import static android.app.admin.DevicePolicyManager.ACTION_SET_NEW_PASSWORD;
+import static android.app.admin.DevicePolicyManager.EXTRA_PASSWORD_COMPLEXITY;
+import static android.app.admin.DevicePolicyManager.PASSWORD_COMPLEXITY_LOW;
+
+import static com.android.settings.privatespace.PrivateSpaceSetupActivity.ACCOUNT_LOGIN_ACTION;
+import static com.android.settings.privatespace.PrivateSpaceSetupActivity.EXTRA_ACTION_TYPE;
+import static com.android.settings.privatespace.PrivateSpaceSetupActivity.SET_LOCK_ACTION;
+
+import android.app.KeyguardManager;
+import android.content.Intent;
+import android.os.Bundle;
+
+import androidx.activity.result.ActivityResult;
+import androidx.activity.result.ActivityResultLauncher;
+import androidx.activity.result.contract.ActivityResultContracts;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.FragmentActivity;
+
+import com.android.settings.SetupWizardUtils;
+import com.android.settings.overlay.FeatureFactory;
+
+import com.google.android.setupdesign.util.ThemeHelper;
+
+/** Activity that is started as private profile user that helps to set private profile lock or
+ * add an account on the private profile. */
+public class PrivateProfileContextHelperActivity extends FragmentActivity {
+    private static final String TAG = "PrivateProfileHelper";
+    private final ActivityResultLauncher<Intent> mAddAccountToPrivateProfile =
+            registerForActivityResult(new ActivityResultContracts.StartActivityForResult(),
+                    this::onAccountAdded);
+    private final ActivityResultLauncher<Intent> mVerifyDeviceLock =
+            registerForActivityResult(new ActivityResultContracts.StartActivityForResult(),
+                    this::onSetDeviceNewLock);
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        setTheme(SetupWizardUtils.getTheme(this, getIntent()));
+        ThemeHelper.trySetDynamicColor(this);
+        super.onCreate(savedInstanceState);
+        if (savedInstanceState == null) {
+            int action = getIntent().getIntExtra(EXTRA_ACTION_TYPE, -1);
+            if (action == ACCOUNT_LOGIN_ACTION) {
+                PrivateSpaceLoginFeatureProvider privateSpaceLoginFeatureProvider =
+                        FeatureFactory.getFeatureFactory().getPrivateSpaceLoginFeatureProvider();
+                if (!privateSpaceLoginFeatureProvider.initiateAccountLogin(this,
+                        mAddAccountToPrivateProfile)) {
+                    setResult(RESULT_OK);
+                    finish();
+                }
+            } else if (action == SET_LOCK_ACTION) {
+                createPrivateSpaceLock();
+            }
+        }
+    }
+
+    private void createPrivateSpaceLock() {
+        final Intent intent = new Intent(ACTION_SET_NEW_PASSWORD);
+        intent.putExtra(EXTRA_PASSWORD_COMPLEXITY, PASSWORD_COMPLEXITY_LOW);
+        mVerifyDeviceLock.launch(intent);
+    }
+
+    private void onAccountAdded(@Nullable ActivityResult result) {
+        if (result != null && result.getResultCode() == RESULT_OK) {
+            setResult(RESULT_OK);
+        } else {
+            setResult(RESULT_CANCELED);
+        }
+        finish();
+    }
+
+    private void onSetDeviceNewLock(@Nullable ActivityResult result) {
+        // TODO(b/307281644) : Verify this for biometrics and check result code after new
+        //  Authentication changes are merged.
+        if (result != null && getSystemService(KeyguardManager.class).isDeviceSecure()) {
+            setResult(RESULT_OK);
+        } else {
+            setResult(RESULT_CANCELED);
+        }
+        finish();
+    }
+}
diff --git a/src/com/android/settings/privatespace/PrivateProfileCreationError.java b/src/com/android/settings/privatespace/PrivateProfileCreationError.java
new file mode 100644
index 0000000..80826dd
--- /dev/null
+++ b/src/com/android/settings/privatespace/PrivateProfileCreationError.java
@@ -0,0 +1,91 @@
+/*
+ * 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.privatespace;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.activity.OnBackPressedCallback;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+import androidx.navigation.fragment.NavHostFragment;
+
+import com.android.settings.R;
+
+import com.google.android.setupcompat.template.FooterBarMixin;
+import com.google.android.setupcompat.template.FooterButton;
+import com.google.android.setupdesign.GlifLayout;
+
+/** Fragment to display error screen if creation of private profile failed for any reason. */
+public class PrivateProfileCreationError extends Fragment {
+    @Override
+    public View onCreateView(
+            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.privatespace_tryagain_label)
+                        .setListener(onTryAgain())
+                        .setButtonType(FooterButton.ButtonType.NEXT)
+                        .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
+                        .build());
+        mixin.setSecondaryButton(
+                new FooterButton.Builder(getContext())
+                        .setText(R.string.privatespace_cancel_label)
+                        .setListener(onCancel())
+                        .setButtonType(FooterButton.ButtonType.CANCEL)
+                        .setTheme(
+                                androidx.appcompat.R.style
+                                        .Base_TextAppearance_AppCompat_Widget_Button)
+                        .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);
+
+        return rootView;
+    }
+
+    private View.OnClickListener onTryAgain() {
+        return v -> {
+            NavHostFragment.findNavController(PrivateProfileCreationError.this)
+                                        .navigate(R.id.action_retry_profile_creation);
+        };
+    }
+
+    private View.OnClickListener onCancel() {
+        return v -> {
+            Activity activity = getActivity();
+            if (activity != null) {
+                activity.finish();
+            }
+        };
+    }
+}
diff --git a/src/com/android/settings/privatespace/PrivateSpaceAccountLoginError.java b/src/com/android/settings/privatespace/PrivateSpaceAccountLoginError.java
new file mode 100644
index 0000000..2d263d7
--- /dev/null
+++ b/src/com/android/settings/privatespace/PrivateSpaceAccountLoginError.java
@@ -0,0 +1,85 @@
+/*
+ * 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.privatespace;
+
+import static com.android.settings.privatespace.PrivateSpaceSetupActivity.ACCOUNT_LOGIN_ACTION;
+import static com.android.settings.privatespace.PrivateSpaceSetupActivity.EXTRA_ACTION_TYPE;
+
+import android.annotation.SuppressLint;
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.UserHandle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.activity.OnBackPressedCallback;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+
+import com.android.settings.R;
+
+import com.google.android.setupcompat.template.FooterBarMixin;
+import com.google.android.setupcompat.template.FooterButton;
+import com.google.android.setupdesign.GlifLayout;
+
+/** Fragment to display error screen if the profile is not signed in with a Google account. */
+public class PrivateSpaceAccountLoginError extends Fragment {
+    @Override
+    public View onCreateView(
+            LayoutInflater inflater,
+            @Nullable ViewGroup container,
+            @Nullable Bundle savedInstanceState) {
+        GlifLayout rootView =
+                (GlifLayout) inflater
+                        .inflate(R.layout.privatespace_account_login_error, container, false);
+        final FooterBarMixin mixin = rootView.getMixin(FooterBarMixin.class);
+        mixin.setPrimaryButton(
+                new FooterButton.Builder(getContext())
+                        .setText(R.string.privatespace_tryagain_label)
+                        .setListener(nextScreen())
+                        .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
+                    }
+                };
+        requireActivity().getOnBackPressedDispatcher().addCallback(this, callback);
+
+        return rootView;
+    }
+
+    @SuppressLint("MissingPermission")
+    private View.OnClickListener nextScreen() {
+        return v -> {
+            PrivateSpaceMaintainer privateSpaceMaintainer = PrivateSpaceMaintainer
+                    .getInstance(getActivity());
+            UserHandle userHandle;
+            if (privateSpaceMaintainer.doesPrivateSpaceExist() && (userHandle =
+                    privateSpaceMaintainer.getPrivateProfileHandle()) != null) {
+                Intent intent = new Intent(getContext(), PrivateProfileContextHelperActivity.class);
+                intent.putExtra(EXTRA_ACTION_TYPE, ACCOUNT_LOGIN_ACTION);
+                getActivity().startActivityForResultAsUser(intent, ACCOUNT_LOGIN_ACTION,
+                        userHandle);
+            }
+        };
+    }
+}
diff --git a/src/com/android/settings/privatespace/PrivateSpaceAuthenticationActivity.java b/src/com/android/settings/privatespace/PrivateSpaceAuthenticationActivity.java
new file mode 100644
index 0000000..3f212b1
--- /dev/null
+++ b/src/com/android/settings/privatespace/PrivateSpaceAuthenticationActivity.java
@@ -0,0 +1,156 @@
+/*
+ * 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.privatespace;
+
+import static android.app.admin.DevicePolicyManager.ACTION_SET_NEW_PASSWORD;
+
+import android.app.AlertDialog;
+import android.app.KeyguardManager;
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.Flags;
+import android.util.Log;
+
+import androidx.activity.result.ActivityResult;
+import androidx.activity.result.ActivityResultLauncher;
+import androidx.activity.result.contract.ActivityResultContracts;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.FragmentActivity;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.R;
+import com.android.settings.core.SubSettingLauncher;
+import com.android.settingslib.transition.SettingsTransitionHelper;
+
+import com.google.android.setupdesign.util.ThemeHelper;
+
+/**
+ * Prompts user to set a device lock if not set with an alert dialog.
+ * If a lock is already set then first authenticates user before displaying private space settings
+ * page.
+ */
+public class PrivateSpaceAuthenticationActivity extends FragmentActivity {
+    private static final String TAG = "PrivateSpaceAuthCheck";
+    private PrivateSpaceMaintainer mPrivateSpaceMaintainer;
+    private KeyguardManager mKeyguardManager;
+
+    private final ActivityResultLauncher<Intent> mSetDeviceLock =
+            registerForActivityResult(new ActivityResultContracts.StartActivityForResult(),
+                    this::onSetDeviceLockResult);
+    private final ActivityResultLauncher<Intent> mVerifyDeviceLock =
+            registerForActivityResult(new ActivityResultContracts.StartActivityForResult(),
+                    this::onVerifyDeviceLock);
+
+    static class Injector {
+        PrivateSpaceMaintainer injectPrivateSpaceMaintainer(Context context) {
+            return PrivateSpaceMaintainer.getInstance(context);
+        }
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        if (Flags.allowPrivateProfile()) {
+            ThemeHelper.trySetDynamicColor(this);
+            mPrivateSpaceMaintainer = new Injector().injectPrivateSpaceMaintainer(
+                    getApplicationContext());
+            if (getKeyguardManager().isDeviceSecure()) {
+                if (savedInstanceState == null) {
+                    Intent credentialIntent =
+                            mPrivateSpaceMaintainer.getPrivateProfileLockCredentialIntent();
+                    if (credentialIntent != null) {
+                        mVerifyDeviceLock.launch(credentialIntent);
+                    } else {
+                        Log.e(TAG, "verifyCredentialIntent is null even though device lock is set");
+                        finish();
+                    }
+                }
+            } else {
+                promptToSetDeviceLock();
+            }
+        } else {
+            Log.w(TAG, "allowPrivateProfile flag is Off!");
+            finish();
+        }
+    }
+
+    /** Starts private space setup flow or the PS settings page on device lock authentication */
+    @VisibleForTesting
+    public void onLockAuthentication(Context context) {
+        if (mPrivateSpaceMaintainer.doesPrivateSpaceExist()) {
+            new SubSettingLauncher(context)
+                    .setDestination(PrivateSpaceDashboardFragment.class.getName())
+                    .setTransitionType(
+                            SettingsTransitionHelper.TransitionType.TRANSITION_SLIDE)
+                    .setSourceMetricsCategory(SettingsEnums.PRIVATE_SPACE_SETTINGS)
+                    .launch();
+        } else {
+            startActivity(new Intent(context, PrivateSpaceSetupActivity.class));
+        }
+    }
+
+    @VisibleForTesting
+    public void setPrivateSpaceMaintainer(Injector injector) {
+        mPrivateSpaceMaintainer = injector.injectPrivateSpaceMaintainer(this);
+    }
+
+    private void promptToSetDeviceLock() {
+        new AlertDialog.Builder(this)
+                .setTitle(R.string.no_device_lock_title)
+                .setMessage(R.string.no_device_lock_summary)
+                .setPositiveButton(
+                        R.string.no_device_lock_action_label,
+                        (DialogInterface dialog, int which) -> {
+                            mSetDeviceLock.launch(new Intent(ACTION_SET_NEW_PASSWORD));
+                        })
+                .setNegativeButton(
+                        R.string.no_device_lock_cancel,
+                        (DialogInterface dialog, int which) -> finish())
+                .setOnCancelListener(
+                        (DialogInterface dialog) -> {
+                            finish();
+                        })
+                .show();
+    }
+
+    private KeyguardManager getKeyguardManager() {
+        if (mKeyguardManager == null) {
+            mKeyguardManager = getSystemService(KeyguardManager.class);
+        }
+        return  mKeyguardManager;
+    }
+
+    private void onSetDeviceLockResult(@Nullable ActivityResult result) {
+        if (result != null) {
+            if (getKeyguardManager().isDeviceSecure()) {
+                onLockAuthentication(this);
+            }
+            finish();
+        }
+    }
+
+    private void onVerifyDeviceLock(@Nullable ActivityResult result) {
+        if (result != null && result.getResultCode() == RESULT_OK) {
+            onLockAuthentication(this);
+        }
+        finish();
+    }
+}
diff --git a/src/com/android/settings/privatespace/PrivateSpaceDashboardFragment.java b/src/com/android/settings/privatespace/PrivateSpaceDashboardFragment.java
index f72bcd9..5d00329 100644
--- a/src/com/android/settings/privatespace/PrivateSpaceDashboardFragment.java
+++ b/src/com/android/settings/privatespace/PrivateSpaceDashboardFragment.java
@@ -17,25 +17,13 @@
 package com.android.settings.privatespace;
 
 import android.app.settings.SettingsEnums;
-import android.content.Context;
-import android.os.Flags;
 
 import com.android.settings.R;
 import com.android.settings.dashboard.DashboardFragment;
-import com.android.settings.safetycenter.SafetyCenterManagerWrapper;
-import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settingslib.search.SearchIndexable;
-
-import java.util.List;
 
 /** Fragment representing the Private Space dashboard in Settings. */
-@SearchIndexable
 public class PrivateSpaceDashboardFragment extends DashboardFragment {
     private static final String TAG = "PrivateSpaceDashboardFragment";
-    private static final String KEY_CREATE_PROFILE_PREFERENCE = "private_space_create";
-    private static final String KEY_DELETE_PROFILE_PREFERENCE = "private_space_delete";
-    private static final String KEY_ONE_LOCK_PREFERENCE = "private_space_use_one_lock";
-    private static final String KEY_PS_HIDDEN_PREFERENCE = "private_space_hidden";
 
     @Override
     protected int getPreferenceScreenResId() {
@@ -51,23 +39,4 @@
     protected String getLogTag() {
         return TAG;
     }
-
-    public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider(R.xml.private_space_settings) {
-                @Override
-                protected boolean isPageSearchEnabled(Context context) {
-                    return SafetyCenterManagerWrapper.get().isEnabled(context)
-                            && Flags.allowPrivateProfile();
-                }
-
-                @Override
-                public List<String> getNonIndexableKeys(Context context) {
-                    List<String> keys = super.getNonIndexableKeys(context);
-                    keys.add(KEY_CREATE_PROFILE_PREFERENCE);
-                    keys.add(KEY_DELETE_PROFILE_PREFERENCE);
-                    keys.add(KEY_ONE_LOCK_PREFERENCE);
-                    keys.add(KEY_PS_HIDDEN_PREFERENCE);
-                    return keys;
-                }
-            };
 }
diff --git a/src/com/android/settings/privatespace/PrivateSpaceEducation.java b/src/com/android/settings/privatespace/PrivateSpaceEducation.java
new file mode 100644
index 0000000..5dd0cfa
--- /dev/null
+++ b/src/com/android/settings/privatespace/PrivateSpaceEducation.java
@@ -0,0 +1,82 @@
+/*
+ * 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.privatespace;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+import androidx.navigation.fragment.NavHostFragment;
+
+import com.android.settings.R;
+
+import com.google.android.setupcompat.template.FooterBarMixin;
+import com.google.android.setupcompat.template.FooterButton;
+import com.google.android.setupdesign.GlifLayout;
+
+/** Fragment educating about the usage of Private Space. */
+public class PrivateSpaceEducation extends Fragment {
+    @Override
+    public View onCreateView(
+            LayoutInflater inflater,
+            @Nullable ViewGroup container,
+            @Nullable Bundle savedInstanceState) {
+        GlifLayout rootView =
+                (GlifLayout)
+                        inflater.inflate(R.layout.privatespace_education_screen, container, false);
+        final FooterBarMixin mixin = rootView.getMixin(FooterBarMixin.class);
+        mixin.setPrimaryButton(
+                new FooterButton.Builder(getContext())
+                        .setText(R.string.privatespace_setup_button_label)
+                        .setListener(onSetup())
+                        .setButtonType(FooterButton.ButtonType.NEXT)
+                        .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
+                        .build());
+        mixin.setSecondaryButton(
+                new FooterButton.Builder(getContext())
+                        .setText(R.string.privatespace_cancel_label)
+                        .setListener(onCancel())
+                        .setButtonType(FooterButton.ButtonType.CANCEL)
+                        .setTheme(
+                                androidx.appcompat.R.style
+                                        .Base_TextAppearance_AppCompat_Widget_Button)
+                        .build());
+
+        return rootView;
+    }
+
+    private View.OnClickListener onSetup() {
+        return v -> {
+            NavHostFragment.findNavController(PrivateSpaceEducation.this)
+                                        .navigate(R.id.action_education_to_auto_advance);
+
+        };
+    }
+
+    private View.OnClickListener onCancel() {
+        return v -> {
+            Activity activity = getActivity();
+            if (activity != null) {
+                activity.finish();
+            }
+        };
+    }
+}
diff --git a/src/com/android/settings/privatespace/PrivateSpaceLoginFeatureProvider.java b/src/com/android/settings/privatespace/PrivateSpaceLoginFeatureProvider.java
new file mode 100644
index 0000000..76ea9ac
--- /dev/null
+++ b/src/com/android/settings/privatespace/PrivateSpaceLoginFeatureProvider.java
@@ -0,0 +1,30 @@
+/*
+ * 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.privatespace;
+
+import android.content.Context;
+import android.content.Intent;
+
+import androidx.activity.result.ActivityResultLauncher;
+import androidx.annotation.NonNull;
+
+/** Feature provider for account login during Private Space setup. */
+public interface PrivateSpaceLoginFeatureProvider {
+    /** Returns true if login to an account is enabled during Private Space setup. */
+    boolean initiateAccountLogin(@NonNull Context context,
+            @NonNull ActivityResultLauncher<Intent> resultLauncher);
+}
diff --git a/src/com/android/settings/privatespace/PrivateSpaceLoginFeatureProviderImpl.java b/src/com/android/settings/privatespace/PrivateSpaceLoginFeatureProviderImpl.java
new file mode 100644
index 0000000..7fca2a4
--- /dev/null
+++ b/src/com/android/settings/privatespace/PrivateSpaceLoginFeatureProviderImpl.java
@@ -0,0 +1,32 @@
+/*
+ * 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.privatespace;
+
+import android.content.Context;
+import android.content.Intent;
+
+import androidx.activity.result.ActivityResultLauncher;
+import androidx.annotation.NonNull;
+
+/** Stub class for Private space to not initiate account login during setup */
+public class PrivateSpaceLoginFeatureProviderImpl implements PrivateSpaceLoginFeatureProvider {
+    @Override
+    public boolean initiateAccountLogin(@NonNull Context context,
+            @NonNull ActivityResultLauncher<Intent> resultLauncher) {
+        return false;
+    }
+}
diff --git a/src/com/android/settings/privatespace/PrivateSpaceMaintainer.java b/src/com/android/settings/privatespace/PrivateSpaceMaintainer.java
index 709814d..341110b 100644
--- a/src/com/android/settings/privatespace/PrivateSpaceMaintainer.java
+++ b/src/com/android/settings/privatespace/PrivateSpaceMaintainer.java
@@ -17,17 +17,23 @@
 package com.android.settings.privatespace;
 
 import static android.os.UserManager.USER_TYPE_PROFILE_PRIVATE;
+import static android.provider.Settings.Secure.HIDE_PRIVATESPACE_ENTRY_POINT;
 
 import android.app.ActivityManager;
 import android.app.IActivityManager;
+import android.app.KeyguardManager;
 import android.content.Context;
+import android.content.Intent;
 import android.content.pm.UserInfo;
 import android.os.RemoteException;
 import android.os.UserHandle;
 import android.os.UserManager;
+import android.provider.Settings;
 import android.util.ArraySet;
 import android.util.Log;
 
+import androidx.annotation.Nullable;
+
 import com.android.internal.annotations.GuardedBy;
 
 import java.util.List;
@@ -36,6 +42,7 @@
 /** A class to help with the creation / deletion of Private Space */
 public class PrivateSpaceMaintainer {
     private static final String TAG = "PrivateSpaceMaintainer";
+
     @GuardedBy("this")
     private static PrivateSpaceMaintainer sPrivateSpaceMaintainer;
 
@@ -43,6 +50,11 @@
     private final UserManager mUserManager;
     @GuardedBy("this")
     private UserHandle mUserHandle;
+    private final KeyguardManager mKeyguardManager;
+
+    /** This is the default value for the hide private space entry point settings. */
+    public static final int HIDE_PRIVATE_SPACE_ENTRY_POINT_DISABLED_VAL = 0;
+    public static final int HIDE_PRIVATE_SPACE_ENTRY_POINT_ENABLED_VAL = 1;
 
     public enum ErrorDeletingPrivateSpace {
             DELETE_PS_ERROR_NONE,
@@ -86,6 +98,7 @@
             }
 
             Log.i(TAG, "Private space created with id: " + mUserHandle.getIdentifier());
+            resetPrivateSpaceSettings();
         }
         return true;
     }
@@ -131,7 +144,43 @@
         return false;
     }
 
-    static synchronized PrivateSpaceMaintainer getInstance(Context context) {
+    /** Returns true when the PS is locked or when PS doesn't exist, false otherwise. */
+    public synchronized boolean isPrivateSpaceLocked() {
+        if (!doesPrivateSpaceExist()) {
+            return true;
+        }
+
+        return mUserManager.isQuietModeEnabled(mUserHandle);
+    }
+
+    /**
+     * Returns an intent to prompt the user to confirm private profile credentials if it is set
+     * otherwise returns intent to confirm device credentials.
+     */
+    @Nullable
+    public synchronized Intent getPrivateProfileLockCredentialIntent() {
+        //TODO(b/307281644): To replace with check for doesPrivateSpaceExist() method once Auth
+        // changes are merged.
+        if (isPrivateProfileLockSet()) {
+            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);
+    }
+
+    /** Returns Private profile user handle if private profile exists otherwise returns null. */
+    @Nullable
+    public synchronized UserHandle getPrivateProfileHandle() {
+        if (doesPrivateSpaceExist()) {
+            return mUserHandle;
+        }
+        return null;
+    }
+
+    /** Returns the instance of {@link PrivateSpaceMaintainer} */
+    public static synchronized PrivateSpaceMaintainer getInstance(Context context) {
         if (sPrivateSpaceMaintainer == null) {
             sPrivateSpaceMaintainer = new PrivateSpaceMaintainer(context);
         }
@@ -141,5 +190,36 @@
     private PrivateSpaceMaintainer(Context context) {
         mContext = context.getApplicationContext();
         mUserManager = mContext.getSystemService(UserManager.class);
+        mKeyguardManager = mContext.getSystemService(KeyguardManager.class);
+    }
+
+
+    // TODO(b/307281644): Remove this method once new auth change is merged
+    /**
+     * Returns true if private space exists and a separate private profile lock is set
+     * otherwise false when the private space does not exit or exists but does not have a
+     * separate profile lock.
+     */
+    @GuardedBy("this")
+    private boolean isPrivateProfileLockSet() {
+        return doesPrivateSpaceExist()
+                && mKeyguardManager.isDeviceSecure(mUserHandle.getIdentifier());
+    }
+
+    /** Sets the setting to show PS entry point to the provided value. */
+    public void setHidePrivateSpaceEntryPointSetting(int value) {
+        Settings.Secure.putInt(mContext.getContentResolver(), HIDE_PRIVATESPACE_ENTRY_POINT, value);
+    }
+
+    /** @return the setting to show PS entry point. */
+    public int getHidePrivateSpaceEntryPointSetting() {
+        return Settings.Secure.getInt(
+                mContext.getContentResolver(),
+                HIDE_PRIVATESPACE_ENTRY_POINT,
+                HIDE_PRIVATE_SPACE_ENTRY_POINT_DISABLED_VAL);
+    }
+
+    private void resetPrivateSpaceSettings() {
+        setHidePrivateSpaceEntryPointSetting(HIDE_PRIVATE_SPACE_ENTRY_POINT_DISABLED_VAL);
     }
 }
diff --git a/src/com/android/settings/privatespace/PrivateSpaceSafetySource.java b/src/com/android/settings/privatespace/PrivateSpaceSafetySource.java
index 4910a7b..6729830 100644
--- a/src/com/android/settings/privatespace/PrivateSpaceSafetySource.java
+++ b/src/com/android/settings/privatespace/PrivateSpaceSafetySource.java
@@ -17,7 +17,6 @@
 package com.android.settings.privatespace;
 
 import android.app.PendingIntent;
-import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.content.Intent;
 import android.os.Flags;
@@ -28,9 +27,7 @@
 import android.util.Log;
 
 import com.android.settings.R;
-import com.android.settings.core.SubSettingLauncher;
 import com.android.settings.safetycenter.SafetyCenterManagerWrapper;
-import com.android.settingslib.transition.SettingsTransitionHelper;
 
 /** Private Space safety source for the Safety Center */
 public final class PrivateSpaceSafetySource {
@@ -86,18 +83,15 @@
     }
 
     private static PendingIntent getPendingIntentForPsDashboard(Context context) {
-        Intent privateSpaceDashboardIntent = new SubSettingLauncher(context)
-                .setDestination(PrivateSpaceDashboardFragment.class.getName())
-                .setTransitionType(SettingsTransitionHelper.TransitionType.TRANSITION_SLIDE)
-                .setSourceMetricsCategory(SettingsEnums.PRIVATE_SPACE_SETTINGS)
-                .toIntent()
-                .setIdentifier(SAFETY_SOURCE_ID);
+        Intent privateSpaceAuthenticationIntent =
+                new Intent(context, PrivateSpaceAuthenticationActivity.class)
+                        .setIdentifier(SAFETY_SOURCE_ID);
 
         return PendingIntent
                 .getActivity(
                         context,
                         /* requestCode */ 0,
-                        privateSpaceDashboardIntent,
+                        privateSpaceAuthenticationIntent,
                         PendingIntent.FLAG_IMMUTABLE);
     }
 }
diff --git a/src/com/android/settings/privatespace/PrivateSpaceSetLockFragment.java b/src/com/android/settings/privatespace/PrivateSpaceSetLockFragment.java
new file mode 100644
index 0000000..93dc43b
--- /dev/null
+++ b/src/com/android/settings/privatespace/PrivateSpaceSetLockFragment.java
@@ -0,0 +1,110 @@
+/*
+ * 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.privatespace;
+
+import static com.android.settings.privatespace.PrivateSpaceSetupActivity.EXTRA_ACTION_TYPE;
+import static com.android.settings.privatespace.PrivateSpaceSetupActivity.SET_LOCK_ACTION;
+
+import android.annotation.SuppressLint;
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.UserHandle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.activity.OnBackPressedCallback;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+import androidx.navigation.fragment.NavHostFragment;
+
+import com.android.settings.R;
+
+import com.google.android.setupcompat.template.FooterBarMixin;
+import com.google.android.setupcompat.template.FooterButton;
+import com.google.android.setupdesign.GlifLayout;
+
+/** Fragment that provides an option to user to choose between the existing screen lock or set a
+ * separate private profile lock. */
+public class PrivateSpaceSetLockFragment extends Fragment {
+
+    @Override
+    public View onCreateView(
+            LayoutInflater inflater,
+            @Nullable ViewGroup container,
+            @Nullable Bundle savedInstanceState) {
+        GlifLayout rootView =
+                (GlifLayout) inflater.inflate(
+                        R.layout.privatespace_setlock_screen, container, false);
+        final FooterBarMixin mixin = rootView.getMixin(FooterBarMixin.class);
+        mixin.setPrimaryButton(
+                new FooterButton.Builder(getContext())
+                        .setText(R.string.privatespace_use_screenlock_label)
+                        .setListener(onClickUse())
+                        .setButtonType(FooterButton.ButtonType.NEXT)
+                        .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
+                        .build());
+        mixin.setSecondaryButton(
+                new FooterButton.Builder(getContext())
+                        .setText(R.string.privatespace_set_lock_label)
+                        .setListener(onClickNewLock())
+                        .setButtonType(FooterButton.ButtonType.NEXT)
+                        .setTheme(
+                                androidx.appcompat.R.style
+                                        .Base_TextAppearance_AppCompat_Widget_Button)
+                        .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);
+
+        return rootView;
+    }
+
+    private View.OnClickListener onClickUse() {
+        return v -> {
+            // Simply Use default screen lock. No need to handle
+            NavHostFragment.findNavController(PrivateSpaceSetLockFragment.this)
+                    .navigate(R.id.action_success_fragment);
+        };
+    }
+
+    private View.OnClickListener onClickNewLock() {
+        return v -> {
+            createPrivateSpaceLock();
+        };
+    }
+
+    @SuppressLint("MissingPermission")
+    private void createPrivateSpaceLock() {
+        PrivateSpaceMaintainer privateSpaceMaintainer = PrivateSpaceMaintainer
+                .getInstance(getActivity());
+        UserHandle userHandle;
+        if (privateSpaceMaintainer.doesPrivateSpaceExist() && (userHandle =
+                privateSpaceMaintainer.getPrivateProfileHandle()) != null) {
+            Intent intent = new Intent(getContext(), PrivateProfileContextHelperActivity.class);
+            intent.putExtra(EXTRA_ACTION_TYPE, SET_LOCK_ACTION);
+            getActivity().startActivityForResultAsUser(intent, SET_LOCK_ACTION,
+                    userHandle);
+        }
+    }
+}
diff --git a/src/com/android/settings/privatespace/PrivateSpaceSetupActivity.java b/src/com/android/settings/privatespace/PrivateSpaceSetupActivity.java
new file mode 100644
index 0000000..a5628c8
--- /dev/null
+++ b/src/com/android/settings/privatespace/PrivateSpaceSetupActivity.java
@@ -0,0 +1,61 @@
+/*
+ * 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.privatespace;
+
+import android.content.Intent;
+import android.os.Bundle;
+
+import androidx.annotation.Nullable;
+import androidx.fragment.app.FragmentActivity;
+import androidx.navigation.fragment.NavHostFragment;
+
+import com.android.settings.R;
+import com.android.settings.SetupWizardUtils;
+
+import com.google.android.setupdesign.util.ThemeHelper;
+
+/** Activity class that helps in setting up of private space */
+public class PrivateSpaceSetupActivity extends FragmentActivity {
+    public static final int SET_LOCK_ACTION = 1;
+    public static final int ACCOUNT_LOGIN_ACTION = 2;
+    public static final String EXTRA_ACTION_TYPE = "action_type";
+    private NavHostFragment mNavHostFragment;
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        setTheme(SetupWizardUtils.getTheme(this, getIntent()));
+        ThemeHelper.trySetDynamicColor(this);
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.privatespace_setup_root);
+        mNavHostFragment = (NavHostFragment) getSupportFragmentManager()
+                .findFragmentById(R.id.ps_nav_host_fragment);
+        mNavHostFragment.getNavController().setGraph(R.navigation.privatespace_main_context_nav);
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
+        if (requestCode == SET_LOCK_ACTION && resultCode == RESULT_OK) {
+            mNavHostFragment.getNavController().navigate(R.id.action_success_fragment);
+        } else if (requestCode == ACCOUNT_LOGIN_ACTION) {
+            if (resultCode == RESULT_OK) {
+                mNavHostFragment.getNavController().navigate(R.id.action_set_lock_fragment);
+            } else {
+                mNavHostFragment.getNavController().navigate(R.id.action_advance_login_error);
+            }
+        }
+        super.onActivityResult(requestCode, resultCode, data);
+    }
+}
diff --git a/src/com/android/settings/privatespace/SetupSuccessFragment.java b/src/com/android/settings/privatespace/SetupSuccessFragment.java
new file mode 100644
index 0000000..1868f65
--- /dev/null
+++ b/src/com/android/settings/privatespace/SetupSuccessFragment.java
@@ -0,0 +1,94 @@
+/*
+ * 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.privatespace;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Toast;
+
+import androidx.activity.OnBackPressedCallback;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+
+import com.android.settings.R;
+
+import com.google.android.setupcompat.template.FooterBarMixin;
+import com.google.android.setupcompat.template.FooterButton;
+import com.google.android.setupdesign.GlifLayout;
+
+/** Fragment for the final screen shown on successful completion of private space setup. */
+public class SetupSuccessFragment extends Fragment {
+    private static final String TAG = "SetupSuccessFragment";
+
+    @Override
+    public View onCreateView(
+            LayoutInflater inflater,
+            @Nullable ViewGroup container,
+            @Nullable Bundle savedInstanceState) {
+        GlifLayout rootView =
+                (GlifLayout)
+                        inflater.inflate(R.layout.privatespace_setup_success, container, false);
+        final FooterBarMixin mixin = rootView.getMixin(FooterBarMixin.class);
+        mixin.setPrimaryButton(
+                new FooterButton.Builder(getContext())
+                        .setText(R.string.privatespace_done_label)
+                        .setListener(onClickNext())
+                        .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);
+
+        return rootView;
+    }
+
+    private View.OnClickListener onClickNext() {
+        return v -> {
+            Activity activity = getActivity();
+            if (activity != null) {
+                Intent allAppsIntent = new Intent(Intent.ACTION_ALL_APPS);
+                ResolveInfo resolveInfo = activity.getPackageManager().resolveActivityAsUser(
+                        new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME),
+                        PackageManager.MATCH_SYSTEM_ONLY, activity.getUserId());
+                if (resolveInfo != null) {
+                    allAppsIntent.setPackage(resolveInfo.activityInfo.packageName);
+                    allAppsIntent.setComponent(resolveInfo.activityInfo.getComponentName());
+                }
+                accessPrivateSpaceToast();
+                startActivity(allAppsIntent);
+                activity.finish();
+            }
+        };
+    }
+
+    private void accessPrivateSpaceToast() {
+        Toast.makeText(getContext(), R.string.scrolldown_to_access, Toast.LENGTH_SHORT).show();
+    }
+}
diff --git a/src/com/android/settings/privatespace/UseOneLockController.java b/src/com/android/settings/privatespace/UseOneLockController.java
deleted file mode 100644
index a94db57..0000000
--- a/src/com/android/settings/privatespace/UseOneLockController.java
+++ /dev/null
@@ -1,50 +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.privatespace;
-
-import android.content.Context;
-
-import com.android.settings.core.TogglePreferenceController;
-
-/** Represents the preference controller for using the same lock as the screen lock */
-public class UseOneLockController extends TogglePreferenceController {
-    public UseOneLockController(Context context, String preferenceKey) {
-        super(context, preferenceKey);
-    }
-
-    @Override
-    public int getAvailabilityStatus() {
-        return AVAILABLE;
-    }
-
-    @Override
-    public boolean isChecked() {
-        // TODO(b/293569406) Need to save this to a persistent store, maybe like SettingsProvider
-        return false;
-    }
-
-    @Override
-    public boolean setChecked(boolean isChecked) {
-        // TODO(b/293569406) Need to save this to a persistent store, maybe like SettingsProvider
-        return true;
-    }
-
-    @Override
-    public int getSliceHighlightMenuRes() {
-        return 0;
-    }
-}
diff --git a/src/com/android/settings/privatespace/onelock/FaceFingerprintUnlockController.java b/src/com/android/settings/privatespace/onelock/FaceFingerprintUnlockController.java
new file mode 100644
index 0000000..e976261
--- /dev/null
+++ b/src/com/android/settings/privatespace/onelock/FaceFingerprintUnlockController.java
@@ -0,0 +1,57 @@
+/*
+ * 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.privatespace.onelock;
+
+import android.content.Context;
+import android.text.TextUtils;
+
+import androidx.preference.Preference;
+
+import com.android.settings.R;
+import com.android.settings.SettingsPreferenceFragment;
+import com.android.settingslib.core.AbstractPreferenceController;
+
+/** Represents the preference controller to enroll biometrics for private space lock. */
+public class FaceFingerprintUnlockController extends AbstractPreferenceController {
+    private static final String KEY_SET_UNSET_FACE_FINGERPRINT = "private_space_biometrics";
+
+    public FaceFingerprintUnlockController(Context context, SettingsPreferenceFragment host) {
+        super(context);
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return false;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_SET_UNSET_FACE_FINGERPRINT;
+    }
+
+    @Override
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        return TextUtils.equals(preference.getKey(), getPreferenceKey());
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        //TODO(b/308862923) : Add condition to check and enable when separate private lock is set.
+        preference.setSummary(mContext.getString(R.string.lock_settings_profile_unified_summary));
+        preference.setEnabled(false);
+    }
+}
diff --git a/src/com/android/settings/privatespace/onelock/PrivateSpaceLockController.java b/src/com/android/settings/privatespace/onelock/PrivateSpaceLockController.java
new file mode 100644
index 0000000..2783c1c
--- /dev/null
+++ b/src/com/android/settings/privatespace/onelock/PrivateSpaceLockController.java
@@ -0,0 +1,134 @@
+/*
+ * 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.privatespace.onelock;
+
+import static com.android.internal.widget.LockPatternUtils.CREDENTIAL_TYPE_PASSWORD;
+import static com.android.internal.widget.LockPatternUtils.CREDENTIAL_TYPE_PATTERN;
+import static com.android.internal.widget.LockPatternUtils.CREDENTIAL_TYPE_PIN;
+import static com.android.settings.password.ChooseLockGeneric.ChooseLockGenericFragment.HIDE_INSECURE_OPTIONS;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.text.TextUtils;
+import android.util.Log;
+
+import androidx.preference.Preference;
+
+import com.android.internal.widget.LockPatternUtils;
+import com.android.settings.R;
+import com.android.settings.SettingsPreferenceFragment;
+import com.android.settings.Utils;
+import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.password.ChooseLockGeneric;
+import com.android.settings.privatespace.PrivateSpaceMaintainer;
+import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settingslib.transition.SettingsTransitionHelper;
+
+
+/** Represents the preference controller for changing private space lock. */
+public class PrivateSpaceLockController extends AbstractPreferenceController {
+    private static final String TAG = "PrivateSpaceLockContr";
+    private static final String KEY_CHANGE_PROFILE_LOCK =
+            "change_private_space_lock";
+
+    private final SettingsPreferenceFragment mHost;
+    private final UserManager mUserManager;
+    private final LockPatternUtils mLockPatternUtils;
+    private final int mProfileUserId;
+
+    public PrivateSpaceLockController(Context context, SettingsPreferenceFragment host) {
+        super(context);
+        mUserManager = context.getSystemService(UserManager.class);
+        mLockPatternUtils = FeatureFactory.getFeatureFactory()
+                .getSecurityFeatureProvider()
+                .getLockPatternUtils(context);
+        mHost = host;
+        UserHandle privateProfileHandle = PrivateSpaceMaintainer.getInstance(context)
+                .getPrivateProfileHandle();
+        if (privateProfileHandle != null) {
+            mProfileUserId = privateProfileHandle.getIdentifier();
+        } else {
+            mProfileUserId = -1;
+            Log.e(TAG, "Private profile user handle is not expected to be null.");
+        }
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return true;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_CHANGE_PROFILE_LOCK;
+    }
+
+    @Override
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        if (!TextUtils.equals(preference.getKey(), getPreferenceKey())) {
+            return false;
+        }
+        //Checks if the profile is in quiet mode and show a dialog to unpause the profile.
+        if (Utils.startQuietModeDialogIfNecessary(mContext, mUserManager,
+                mProfileUserId)) {
+            return false;
+        }
+        final Bundle extras = new Bundle();
+        extras.putInt(Intent.EXTRA_USER_ID, mProfileUserId);
+        extras.putBoolean(HIDE_INSECURE_OPTIONS, true);
+        new SubSettingLauncher(mContext)
+                .setDestination(ChooseLockGeneric.ChooseLockGenericFragment.class.getName())
+                .setSourceMetricsCategory(mHost.getMetricsCategory())
+                .setArguments(extras)
+                .setExtras(extras)
+                .setTransitionType(SettingsTransitionHelper.TransitionType.TRANSITION_SLIDE)
+                .launch();
+        return true;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        if (mLockPatternUtils.isSeparateProfileChallengeEnabled(mProfileUserId)) {
+            preference.setSummary(
+                    mContext.getString(getCredentialTypeResId(mProfileUserId)));
+            preference.setEnabled(true);
+        } else {
+            preference.setSummary(mContext.getString(
+                    R.string.lock_settings_profile_unified_summary));
+            preference.setEnabled(false);
+        }
+    }
+
+    private int getCredentialTypeResId(int userId) {
+        int credentialType = mLockPatternUtils.getCredentialTypeForUser(userId);
+        switch (credentialType) {
+            case CREDENTIAL_TYPE_PATTERN :
+                return R.string.unlock_set_unlock_mode_pattern;
+            case CREDENTIAL_TYPE_PIN:
+                return R.string.unlock_set_unlock_mode_pin;
+            case CREDENTIAL_TYPE_PASSWORD:
+                return R.string.unlock_set_unlock_mode_password;
+            default:
+                // This is returned for CREDENTIAL_TYPE_NONE
+                return R.string.unlock_set_unlock_mode_off;
+        }
+    }
+}
diff --git a/src/com/android/settings/privatespace/onelock/UseOneLockController.java b/src/com/android/settings/privatespace/onelock/UseOneLockController.java
new file mode 100644
index 0000000..5c461e0
--- /dev/null
+++ b/src/com/android/settings/privatespace/onelock/UseOneLockController.java
@@ -0,0 +1,84 @@
+/*
+ * 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.privatespace.onelock;
+
+import static com.android.internal.widget.LockPatternUtils.CREDENTIAL_TYPE_PASSWORD;
+import static com.android.internal.widget.LockPatternUtils.CREDENTIAL_TYPE_PATTERN;
+import static com.android.internal.widget.LockPatternUtils.CREDENTIAL_TYPE_PIN;
+
+import android.content.Context;
+import android.os.UserHandle;
+import android.util.Log;
+
+import com.android.internal.widget.LockPatternUtils;
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.privatespace.PrivateSpaceMaintainer;
+
+/** Represents the preference controller for using the same lock as the screen lock */
+public class UseOneLockController extends BasePreferenceController {
+    private static final String TAG = "UseOneLockController";
+    private final LockPatternUtils mLockPatternUtils;
+    private final PrivateSpaceMaintainer mPrivateSpaceMaintainer;
+
+    public UseOneLockController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+        mPrivateSpaceMaintainer = PrivateSpaceMaintainer.getInstance(mContext);
+        mLockPatternUtils = FeatureFactory.getFeatureFactory()
+                .getSecurityFeatureProvider()
+                .getLockPatternUtils(context);
+    }
+    @Override
+    public int getAvailabilityStatus() {
+        return AVAILABLE;
+    }
+
+    @Override
+    public int getSliceHighlightMenuRes() {
+        return 0;
+    }
+
+    @Override
+    public CharSequence getSummary() {
+        UserHandle privateProfileHandle = mPrivateSpaceMaintainer.getPrivateProfileHandle();
+        if (privateProfileHandle != null) {
+            int privateUserId = privateProfileHandle.getIdentifier();
+            if (mLockPatternUtils.isSeparateProfileChallengeEnabled(privateUserId)) {
+                return mContext.getString(getCredentialTypeResId(privateUserId));
+            }
+        } else {
+            Log.w(TAG, "Did not find Private Space.");
+        }
+        return mContext.getString(R.string.private_space_screen_lock_summary);
+    }
+
+    private int getCredentialTypeResId(int userId) {
+        int credentialType = mLockPatternUtils.getCredentialTypeForUser(userId);
+        switch (credentialType) {
+            case CREDENTIAL_TYPE_PATTERN:
+                return R.string.unlock_set_unlock_mode_pattern;
+            case CREDENTIAL_TYPE_PIN:
+                return R.string.unlock_set_unlock_mode_pin;
+            case CREDENTIAL_TYPE_PASSWORD:
+                return R.string.unlock_set_unlock_mode_password;
+            default:
+                // This is returned for CREDENTIAL_TYPE_NONE
+                return R.string.unlock_set_unlock_mode_off;
+        }
+    }
+}
diff --git a/src/com/android/settings/privatespace/onelock/UseOneLockControllerSwitch.java b/src/com/android/settings/privatespace/onelock/UseOneLockControllerSwitch.java
new file mode 100644
index 0000000..218b870
--- /dev/null
+++ b/src/com/android/settings/privatespace/onelock/UseOneLockControllerSwitch.java
@@ -0,0 +1,216 @@
+/*
+ * 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.privatespace.onelock;
+
+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;
+import static com.android.settings.privatespace.onelock.UseOneLockSettingsFragment.UNUNIFY_PRIVATE_LOCK_FROM_DEVICE_REQUEST;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.util.Log;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.internal.widget.LockPatternUtils;
+import com.android.internal.widget.LockscreenCredential;
+import com.android.settings.R;
+import com.android.settings.SettingsPreferenceFragment;
+import com.android.settings.Utils;
+import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.password.ChooseLockGeneric;
+import com.android.settings.password.ChooseLockSettingsHelper;
+import com.android.settings.privatespace.PrivateProfileContextHelperActivity;
+import com.android.settings.privatespace.PrivateSpaceMaintainer;
+import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settingslib.transition.SettingsTransitionHelper;
+import com.android.settingslib.widget.MainSwitchPreference;
+
+/** Represents the preference controller for using the same lock as the screen lock */
+public class UseOneLockControllerSwitch extends AbstractPreferenceController
+        implements Preference.OnPreferenceChangeListener {
+    private static final String TAG = "UseOneLockSwitch";
+    private static final String KEY_UNIFICATION = "private_lock_unification";
+    private final String mPreferenceKey;
+    private final SettingsPreferenceFragment mHost;
+    private final LockPatternUtils mLockPatternUtils;
+    private final UserManager mUserManager;
+    private final int mProfileUserId;
+    private final UserHandle mUserHandle;
+    private LockscreenCredential mCurrentDevicePassword;
+    private LockscreenCredential mCurrentProfilePassword;
+    private MainSwitchPreference mUnifyProfile;
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mUnifyProfile = screen.findPreference(mPreferenceKey);
+    }
+    public UseOneLockControllerSwitch(Context context, SettingsPreferenceFragment host) {
+        this(context, host, KEY_UNIFICATION);
+    }
+
+    public UseOneLockControllerSwitch(Context context, SettingsPreferenceFragment host,
+              String key) {
+        super(context);
+        mHost = host;
+        mUserManager = context.getSystemService(UserManager.class);
+        mLockPatternUtils = FeatureFactory.getFeatureFactory().getSecurityFeatureProvider()
+                  .getLockPatternUtils(context);
+        mUserHandle =  PrivateSpaceMaintainer.getInstance(context).getPrivateProfileHandle();
+        mProfileUserId = mUserHandle != null ? mUserHandle.getIdentifier() : -1;
+        mCurrentDevicePassword = LockscreenCredential.createNone();
+        mCurrentProfilePassword = LockscreenCredential.createNone();
+        this.mPreferenceKey = key;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return mPreferenceKey;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return true;
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object value) {
+        //Checks if the profile is in quiet mode and show a dialog to unpause the profile.
+        if (Utils.startQuietModeDialogIfNecessary(mContext, mUserManager, mProfileUserId)) {
+            return false;
+        }
+        final boolean useOneLock = (Boolean) value;
+        if (useOneLock) {
+            startUnification();
+        } else {
+            showAlertDialog();
+        }
+        return true;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        if (mUnifyProfile != null) {
+            final boolean separate =
+                      mLockPatternUtils.isSeparateProfileChallengeEnabled(mProfileUserId);
+            mUnifyProfile.setChecked(!separate);
+        }
+    }
+
+    /** Method to handle onActivityResult */
+    public boolean handleActivityResult(int requestCode, int resultCode, Intent data) {
+        if (requestCode == UNUNIFY_PRIVATE_LOCK_FROM_DEVICE_REQUEST
+                  && resultCode == Activity.RESULT_OK) {
+            mCurrentDevicePassword =
+                      data.getParcelableExtra(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD);
+            separateLocks();
+            return true;
+        } else if (requestCode == UNIFY_PRIVATE_LOCK_WITH_DEVICE_REQUEST
+                  && resultCode == Activity.RESULT_OK) {
+            mCurrentProfilePassword =
+                      data.getParcelableExtra(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD);
+            unifyLocks();
+            return true;
+        }
+        return false;
+    }
+
+    private void separateLocks() {
+        final Bundle extras = new Bundle();
+        extras.putInt(Intent.EXTRA_USER_ID, mProfileUserId);
+        extras.putParcelable(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD, mCurrentDevicePassword);
+        new SubSettingLauncher(mContext)
+                  .setDestination(ChooseLockGeneric.ChooseLockGenericFragment.class.getName())
+                  .setSourceMetricsCategory(mHost.getMetricsCategory())
+                  .setArguments(extras)
+                  .setTransitionType(SettingsTransitionHelper.TransitionType.TRANSITION_SLIDE)
+                  .launch();
+    }
+
+    /** Unify primary and profile locks. */
+    public void startUnification() {
+        // Confirm profile lock
+        final ChooseLockSettingsHelper.Builder builder =
+                  new ChooseLockSettingsHelper.Builder(mHost.getActivity(), mHost);
+        final boolean launched = builder.setRequestCode(UNIFY_PRIVATE_LOCK_WITH_DEVICE_REQUEST)
+                  .setReturnCredentials(true)
+                  .setUserId(mProfileUserId)
+                  .show();
+        if (!launched) {
+            // If profile has no lock, go straight to unification.
+            unifyLocks();
+        }
+    }
+
+    private void unifyLocks() {
+        unifyKeepingDeviceLock();
+        if (mCurrentDevicePassword != null) {
+            mCurrentDevicePassword.zeroize();
+            mCurrentDevicePassword = null;
+        }
+        if (mCurrentProfilePassword != null) {
+            mCurrentProfilePassword.zeroize();
+            mCurrentProfilePassword = null;
+        }
+    }
+
+    private void unifyKeepingDeviceLock() {
+        mLockPatternUtils.setSeparateProfileChallengeEnabled(mProfileUserId, false,
+                  mCurrentProfilePassword);
+    }
+
+    private void showAlertDialog() {
+        if (mUserHandle == null) {
+            Log.e(TAG, "Private profile user handle is not expected to be null");
+            mUnifyProfile.setChecked(true);
+            return;
+        }
+        new AlertDialog.Builder(mContext)
+                  .setMessage(R.string.private_space_new_lock_title)
+                  .setPositiveButton(
+                            R.string.privatespace_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);
+                            })
+                  .setNegativeButton(R.string.privatespace_cancel_label,
+                            (DialogInterface dialog, int which) -> {
+                                mUnifyProfile.setChecked(true);
+                                dialog.dismiss();
+                            })
+                  .setOnCancelListener(
+                            (DialogInterface dialog) -> {
+                                mUnifyProfile.setChecked(true);
+                                dialog.dismiss();
+                            })
+                  .show();
+    }
+}
diff --git a/src/com/android/settings/privatespace/onelock/UseOneLockSettingsFragment.java b/src/com/android/settings/privatespace/onelock/UseOneLockSettingsFragment.java
new file mode 100644
index 0000000..36f8448
--- /dev/null
+++ b/src/com/android/settings/privatespace/onelock/UseOneLockSettingsFragment.java
@@ -0,0 +1,69 @@
+/*
+ * 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.privatespace.onelock;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.content.Intent;
+
+import androidx.annotation.Nullable;
+
+import com.android.settings.R;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settingslib.core.AbstractPreferenceController;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class UseOneLockSettingsFragment extends DashboardFragment {
+    private static final String TAG = "UseOneLockSettings";
+    public static final int UNIFY_PRIVATE_LOCK_WITH_DEVICE_REQUEST = 1;
+    public static final int UNUNIFY_PRIVATE_LOCK_FROM_DEVICE_REQUEST = 2;
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.PRIVATE_SPACE_SETTINGS;
+    }
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.privatespace_one_lock;
+    }
+
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+
+    @Override
+    protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
+        final List<AbstractPreferenceController> controllers = new ArrayList<>();
+        controllers.add(new UseOneLockControllerSwitch(context, this));
+        controllers.add(new PrivateSpaceLockController(context, this));
+        controllers.add(new FaceFingerprintUnlockController(context, this));
+        return controllers;
+    }
+
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
+        if (use(UseOneLockControllerSwitch.class)
+                  .handleActivityResult(requestCode, resultCode, data)) {
+            return;
+        }
+        super.onActivityResult(requestCode, resultCode, data);
+    }
+}
diff --git a/src/com/android/settings/regionalpreferences/FirstDayOfWeekItemListController.java b/src/com/android/settings/regionalpreferences/FirstDayOfWeekItemListController.java
index 03a59de..d509d2e 100644
--- a/src/com/android/settings/regionalpreferences/FirstDayOfWeekItemListController.java
+++ b/src/com/android/settings/regionalpreferences/FirstDayOfWeekItemListController.java
@@ -16,6 +16,7 @@
 
 package com.android.settings.regionalpreferences;
 
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 
 import com.android.settings.R;
@@ -57,4 +58,9 @@
     protected String[] getUnitValues() {
         return mContext.getResources().getStringArray(R.array.first_day_of_week);
     }
+
+    @Override
+    protected int getMetricsActionKey() {
+        return SettingsEnums.ACTION_SET_FIRST_DAY_OF_WEEK;
+    }
 }
diff --git a/src/com/android/settings/regionalpreferences/RegionalPreferenceListBasePreferenceController.java b/src/com/android/settings/regionalpreferences/RegionalPreferenceListBasePreferenceController.java
index 2f2bf76..ac0e7ee 100644
--- a/src/com/android/settings/regionalpreferences/RegionalPreferenceListBasePreferenceController.java
+++ b/src/com/android/settings/regionalpreferences/RegionalPreferenceListBasePreferenceController.java
@@ -22,16 +22,20 @@
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.core.BasePreferenceController;
+import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.widget.TickButtonPreference;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 /** A base controller for handling all regional preferences controllers. */
 public abstract class RegionalPreferenceListBasePreferenceController extends
         BasePreferenceController {
 
+    private final MetricsFeatureProvider mMetricsFeatureProvider;
     private PreferenceCategory mPreferenceCategory;
 
     public RegionalPreferenceListBasePreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
@@ -61,6 +65,8 @@
                 RegionalPreferencesDataUtils.savePreference(mContext, getExtensionTypes(),
                         item.equals(RegionalPreferencesDataUtils.DEFAULT_VALUE)
                                 ? null : item);
+                mMetricsFeatureProvider.action(mContext, getMetricsActionKey(),
+                        getPreferenceTitle(value) + " > " +  getPreferenceTitle(item));
                 return true;
             });
             pref.setSelected(!value.isEmpty() && item.equals(value));
@@ -90,4 +96,8 @@
     protected abstract String getExtensionTypes();
 
     protected abstract String[] getUnitValues();
+
+    protected abstract int getMetricsActionKey();
+
+
 }
diff --git a/src/com/android/settings/regionalpreferences/TemperatureUnitListController.java b/src/com/android/settings/regionalpreferences/TemperatureUnitListController.java
index c51ca71..91ab1a2 100644
--- a/src/com/android/settings/regionalpreferences/TemperatureUnitListController.java
+++ b/src/com/android/settings/regionalpreferences/TemperatureUnitListController.java
@@ -16,6 +16,7 @@
 
 package com.android.settings.regionalpreferences;
 
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 
 import com.android.settings.R;
@@ -55,4 +56,9 @@
     protected String[] getUnitValues() {
         return mContext.getResources().getStringArray(R.array.temperature_units);
     }
+
+    @Override
+    protected int getMetricsActionKey() {
+        return SettingsEnums.ACTION_SET_TEMPERATURE_UNIT;
+    }
 }
diff --git a/src/com/android/settings/search/SearchResultTrampoline.java b/src/com/android/settings/search/SearchResultTrampoline.java
index f72b097..5d897af 100644
--- a/src/com/android/settings/search/SearchResultTrampoline.java
+++ b/src/com/android/settings/search/SearchResultTrampoline.java
@@ -18,6 +18,7 @@
 
 import static com.android.settings.SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS;
 import static com.android.settings.SettingsActivity.EXTRA_SHOW_FRAGMENT_TAB;
+import static com.android.settings.activityembedding.EmbeddedDeepLinkUtils.getTrampolineIntent;
 
 import android.app.Activity;
 import android.content.ComponentName;
@@ -107,7 +108,7 @@
             startActivity(intent);
         } else if (isSettingsIntelligence(callingActivity)) {
             if (FeatureFlagUtils.isEnabled(this, FeatureFlags.SETTINGS_SEARCH_ALWAYS_EXPAND)) {
-                startActivity(SettingsActivity.getTrampolineIntent(intent, highlightMenuKey)
+                startActivity(getTrampolineIntent(intent, highlightMenuKey)
                         .setClass(this, DeepLinkHomepageActivityInternal.class)
                         .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                                 | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS));
@@ -130,7 +131,7 @@
             }
         } else {
             // Two-pane case
-            startActivity(SettingsActivity.getTrampolineIntent(intent, highlightMenuKey)
+            startActivity(getTrampolineIntent(intent, highlightMenuKey)
                     .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
         }
 
diff --git a/src/com/android/settings/security/ContentProtectionPreferenceController.java b/src/com/android/settings/security/ContentProtectionPreferenceController.java
new file mode 100644
index 0000000..ff472dd
--- /dev/null
+++ b/src/com/android/settings/security/ContentProtectionPreferenceController.java
@@ -0,0 +1,43 @@
+/*
+ * 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.security;
+
+import static com.android.internal.R.string.config_defaultContentProtectionService;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.provider.DeviceConfig;
+import android.view.contentcapture.ContentCaptureManager;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
+
+import com.android.settings.core.BasePreferenceController;
+
+public class ContentProtectionPreferenceController extends BasePreferenceController {
+
+    public ContentProtectionPreferenceController(@NonNull Context context, @NonNull String key) {
+        super(context, key);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return ContentProtectionPreferenceUtils.isAvailable(mContext)
+                ? AVAILABLE
+                : UNSUPPORTED_ON_DEVICE;
+    }
+}
diff --git a/src/com/android/settings/security/ContentProtectionPreferenceFragment.java b/src/com/android/settings/security/ContentProtectionPreferenceFragment.java
new file mode 100644
index 0000000..c65fd96
--- /dev/null
+++ b/src/com/android/settings/security/ContentProtectionPreferenceFragment.java
@@ -0,0 +1,78 @@
+/*
+ * 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.security;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.os.Bundle;
+
+import androidx.annotation.VisibleForTesting;
+
+import com.android.settings.R;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settingslib.search.SearchIndexable;
+
+@SearchIndexable
+public class ContentProtectionPreferenceFragment extends DashboardFragment {
+    private static final String TAG = "ContentProtectionPreferenceFragment";
+
+    // Required by @SearchIndexable to make the fragment and preferences to be indexed.
+    // Do not rename.
+    @VisibleForTesting
+    public static final ContentProtectionSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+            new ContentProtectionSearchIndexProvider(
+                    R.layout.content_protection_preference_fragment);
+
+    @Override
+    public void onAttach(Context context) {
+        super.onAttach(context);
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.CONTENT_PROTECTION_PREFERENCE;
+    }
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.layout.content_protection_preference_fragment;
+    }
+
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+
+    public static class ContentProtectionSearchIndexProvider extends BaseSearchIndexProvider {
+
+        public ContentProtectionSearchIndexProvider(int xmlRes) {
+            super(xmlRes);
+        }
+
+        @Override
+        @VisibleForTesting
+        public boolean isPageSearchEnabled(Context context) {
+            return ContentProtectionPreferenceUtils.isAvailable(context);
+        }
+    }
+}
diff --git a/src/com/android/settings/security/ContentProtectionPreferenceUtils.java b/src/com/android/settings/security/ContentProtectionPreferenceUtils.java
new file mode 100644
index 0000000..d84d7c5
--- /dev/null
+++ b/src/com/android/settings/security/ContentProtectionPreferenceUtils.java
@@ -0,0 +1,63 @@
+/*
+ * 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.security;
+
+import static com.android.internal.R.string.config_defaultContentProtectionService;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.provider.DeviceConfig;
+import android.view.contentcapture.ContentCaptureManager;
+
+import androidx.annotation.Nullable;
+import androidx.annotation.NonNull;
+
+/** Util class for content protection preference. */
+public class ContentProtectionPreferenceUtils {
+
+    /**
+     * Whether or not the content protection setting page is available.
+     */
+    public static boolean isAvailable(@NonNull Context context) {
+        if (!settingUiEnabled() || getContentProtectionServiceComponentName(context) == null) {
+            return false;
+        }
+        return true;
+    }
+
+    private static String getContentProtectionServiceFlatComponentName(@NonNull Context context) {
+        return context.getString(config_defaultContentProtectionService);
+    }
+
+    @Nullable
+    private static ComponentName getContentProtectionServiceComponentName(@NonNull Context context) {
+        String flatComponentName = getContentProtectionServiceFlatComponentName(context);
+        if (flatComponentName == null) {
+            return null;
+        }
+        return ComponentName.unflattenFromString(flatComponentName);
+    }
+
+    /**
+     * Whether or not the content protection UI is enabled.
+     */
+    private static boolean settingUiEnabled() {
+        return DeviceConfig.getBoolean(
+                DeviceConfig.NAMESPACE_CONTENT_CAPTURE,
+                ContentCaptureManager.DEVICE_CONFIG_PROPERTY_ENABLE_CONTENT_PROTECTION_RECEIVER,
+                ContentCaptureManager.DEFAULT_ENABLE_CONTENT_PROTECTION_RECEIVER);
+    }
+}
diff --git a/src/com/android/settings/security/ContentProtectionTogglePreferenceController.java b/src/com/android/settings/security/ContentProtectionTogglePreferenceController.java
new file mode 100644
index 0000000..c874a5e
--- /dev/null
+++ b/src/com/android/settings/security/ContentProtectionTogglePreferenceController.java
@@ -0,0 +1,93 @@
+/*
+ * 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.security;
+
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.provider.Settings;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.Utils;
+import com.android.settings.core.TogglePreferenceController;
+import com.android.settings.widget.SettingsMainSwitchPreference;
+
+/** Preference controller for content protection toggle switch bar. */
+public class ContentProtectionTogglePreferenceController extends TogglePreferenceController
+        implements OnCheckedChangeListener {
+
+    @VisibleForTesting
+    static final String KEY_CONTENT_PROTECTION_PREFERENCE = "content_protection_user_consent";
+
+    private SettingsMainSwitchPreference mSwitchBar;
+    private final ContentResolver mContentResolver;
+    private final boolean isFullyManagedDevice = Utils.getDeviceOwnerComponent(mContext) != null;
+
+    public ContentProtectionTogglePreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+        mContentResolver = context.getContentResolver();
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AVAILABLE;
+    }
+
+    @Override
+    public boolean isChecked() {
+        if (isFullyManagedDevice) {
+            // If fully managed device, it should always unchecked
+            return false;
+        }
+        return Settings.Global.getInt(mContentResolver, KEY_CONTENT_PROTECTION_PREFERENCE, 0) >= 0;
+    }
+
+    @Override
+    public boolean setChecked(boolean isChecked) {
+        Settings.Global.putInt(
+                mContentResolver, KEY_CONTENT_PROTECTION_PREFERENCE, isChecked ? 1 : -1);
+        return true;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+
+        mSwitchBar = screen.findPreference(getPreferenceKey());
+        mSwitchBar.addOnSwitchChangeListener(this);
+        if (isFullyManagedDevice) {
+            // If fully managed device, the switch bar is greyed out
+            mSwitchBar.setEnabled(false);
+        }
+    }
+
+    @Override
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+        if (isChecked != isChecked()) {
+            setChecked(isChecked);
+        }
+    }
+
+    @Override
+    public int getSliceHighlightMenuRes() {
+        return R.string.menu_key_security;
+    }
+}
diff --git a/src/com/android/settings/security/ContentProtectionWorkSwitchController.java b/src/com/android/settings/security/ContentProtectionWorkSwitchController.java
new file mode 100644
index 0000000..0404dcd
--- /dev/null
+++ b/src/com/android/settings/security/ContentProtectionWorkSwitchController.java
@@ -0,0 +1,86 @@
+/*
+ * 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.security;
+
+import android.content.Context;
+import android.os.UserHandle;
+import android.os.UserManager;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.Utils;
+import com.android.settings.core.TogglePreferenceController;
+import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.RestrictedSwitchPreference;
+
+/** Preference controller for content protection work profile switch bar. */
+public class ContentProtectionWorkSwitchController extends TogglePreferenceController {
+
+    public ContentProtectionWorkSwitchController(
+            @NonNull Context context, @NonNull String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return getManagedProfile() != null ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+    }
+
+    // The switch is always set to unchecked until Android V by design
+    @Override
+    public boolean isChecked() {
+        return false;
+    }
+
+    // The switch is disabled until Android V by design
+    @Override
+    public boolean setChecked(boolean isChecked) {
+        return false;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+
+        RestrictedSwitchPreference switchPreference = screen.findPreference(getPreferenceKey());
+        UserHandle managedProfile = getManagedProfile();
+        if (managedProfile != null) {
+            switchPreference.setDisabledByAdmin(getEnforcedAdmin(managedProfile));
+        }
+    }
+
+    @Override
+    public int getSliceHighlightMenuRes() {
+        return R.string.menu_key_security;
+    }
+
+    @VisibleForTesting
+    @Nullable
+    protected UserHandle getManagedProfile() {
+        return Utils.getManagedProfile(mContext.getSystemService(UserManager.class));
+    }
+
+    @VisibleForTesting
+    @Nullable
+    protected RestrictedLockUtils.EnforcedAdmin getEnforcedAdmin(
+            @NonNull UserHandle managedProfile) {
+        return RestrictedLockUtils.getProfileOrDeviceOwner(mContext, managedProfile);
+    }
+}
diff --git a/src/com/android/settings/security/ScreenPinningSettings.java b/src/com/android/settings/security/ScreenPinningSettings.java
index ea80cb0..99d6492 100644
--- a/src/com/android/settings/security/ScreenPinningSettings.java
+++ b/src/com/android/settings/security/ScreenPinningSettings.java
@@ -27,13 +27,14 @@
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.provider.Settings;
-import android.widget.Switch;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
 
 import androidx.appcompat.app.AlertDialog;
 import androidx.preference.Preference;
 import androidx.preference.Preference.OnPreferenceChangeListener;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.internal.widget.LockPatternUtils;
 import com.android.settings.R;
@@ -45,13 +46,12 @@
 import com.android.settings.widget.SettingsMainSwitchBar;
 import com.android.settingslib.search.SearchIndexable;
 import com.android.settingslib.widget.FooterPreference;
-import com.android.settingslib.widget.OnMainSwitchChangeListener;
 /**
  * Screen pinning settings.
  */
 @SearchIndexable
 public class ScreenPinningSettings extends SettingsPreferenceFragment
-        implements OnMainSwitchChangeListener, DialogInterface.OnClickListener {
+        implements OnCheckedChangeListener, DialogInterface.OnClickListener {
 
     private static final String KEY_USE_SCREEN_LOCK = "use_screen_lock";
     private static final String KEY_FOOTER = "screen_pinning_settings_screen_footer";
@@ -59,7 +59,7 @@
     private static final int CONFIRM_REQUEST = 1000;
 
     private SettingsMainSwitchBar mSwitchBar;
-    private SwitchPreference mUseScreenLock;
+    private TwoStatePreference mUseScreenLock;
     private FooterPreference mFooterPreference;
     private LockPatternUtils mLockPatternUtils;
     private UserManager mUserManager;
@@ -198,7 +198,7 @@
      * Listens to the state change of the overall lock-to-app switch.
      */
     @Override
-    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         if (isChecked) {
             new AlertDialog.Builder(getContext())
                     .setMessage(R.string.screen_pinning_dialog_message)
diff --git a/src/com/android/settings/security/trustagent/TrustAgentsPreferenceController.java b/src/com/android/settings/security/trustagent/TrustAgentsPreferenceController.java
index dcc6c22..977959b 100644
--- a/src/com/android/settings/security/trustagent/TrustAgentsPreferenceController.java
+++ b/src/com/android/settings/security/trustagent/TrustAgentsPreferenceController.java
@@ -34,7 +34,7 @@
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.internal.widget.LockPatternUtils;
 import com.android.settings.core.BasePreferenceController;
@@ -172,7 +172,7 @@
 
     @Override
     public boolean onPreferenceChange(Preference preference, Object newValue) {
-        if (!(preference instanceof SwitchPreference)) {
+        if (!(preference instanceof TwoStatePreference)) {
             return false;
         }
         for (TrustAgentInfo agent : mAvailableAgents.values()) {
diff --git a/src/com/android/settings/sim/CallsSimListDialogFragment.java b/src/com/android/settings/sim/CallsSimListDialogFragment.java
index bc0ab08..bb82c2e 100644
--- a/src/com/android/settings/sim/CallsSimListDialogFragment.java
+++ b/src/com/android/settings/sim/CallsSimListDialogFragment.java
@@ -59,7 +59,8 @@
             SubscriptionInfo info = subscriptionManager.getActiveSubscriptionInfo(subId);
             if (info == null || (info.isEmbedded()
                 && (info.getProfileClass() == PROFILE_CLASS_PROVISIONING
-                || (Flags.oemEnabledSatelliteFlag() && info.isNtn())))) {
+                    || (Flags.oemEnabledSatelliteFlag()
+                        && info.isOnlyNonTerrestrialNetwork())))) {
                 continue;
             }
             result.add(subscriptionManager.getActiveSubscriptionInfo(subId));
diff --git a/src/com/android/settings/sim/PreferredSimDialogFragment.java b/src/com/android/settings/sim/PreferredSimDialogFragment.java
index c1e98f0..bb69440 100644
--- a/src/com/android/settings/sim/PreferredSimDialogFragment.java
+++ b/src/com/android/settings/sim/PreferredSimDialogFragment.java
@@ -100,7 +100,7 @@
         final SubscriptionInfo info = getPreferredSubscription();
         if (info == null || (info.isEmbedded()
             && (info.getProfileClass() == PROFILE_CLASS_PROVISIONING
-            || (Flags.oemEnabledSatelliteFlag() && info.isNtn())))) {
+                || (Flags.oemEnabledSatelliteFlag() && info.isOnlyNonTerrestrialNetwork())))) {
             dismiss();
             return;
         }
diff --git a/src/com/android/settings/sim/SelectSpecificDataSimDialogFragment.java b/src/com/android/settings/sim/SelectSpecificDataSimDialogFragment.java
index 218efc0..37f5445 100644
--- a/src/com/android/settings/sim/SelectSpecificDataSimDialogFragment.java
+++ b/src/com/android/settings/sim/SelectSpecificDataSimDialogFragment.java
@@ -136,10 +136,12 @@
 
         if ((newSubInfo.isEmbedded()
             && (newSubInfo.getProfileClass() == PROFILE_CLASS_PROVISIONING
-            || (Flags.oemEnabledSatelliteFlag() && newSubInfo.isNtn())))
+                || (Flags.oemEnabledSatelliteFlag()
+                    && newSubInfo.isOnlyNonTerrestrialNetwork())))
             || (currentDataSubInfo.isEmbedded()
             && (currentDataSubInfo.getProfileClass() == PROFILE_CLASS_PROVISIONING
-            || (Flags.oemEnabledSatelliteFlag() && currentDataSubInfo.isNtn())))) {
+                || (Flags.oemEnabledSatelliteFlag()
+                    && currentDataSubInfo.isOnlyNonTerrestrialNetwork())))) {
             Log.d(TAG, "do not set the provisioning or satellite eSIM");
             dismiss();
             return;
diff --git a/src/com/android/settings/sim/SimListDialogFragment.java b/src/com/android/settings/sim/SimListDialogFragment.java
index 4a478e9..db2c4dc 100644
--- a/src/com/android/settings/sim/SimListDialogFragment.java
+++ b/src/com/android/settings/sim/SimListDialogFragment.java
@@ -145,7 +145,7 @@
         // Remove the provisioning or satellite eSIM from the subscription list.
         currentSubscriptions.removeIf(info -> info.isEmbedded()
             && (info.getProfileClass() == PROFILE_CLASS_PROVISIONING
-            || (Flags.oemEnabledSatelliteFlag() && info.isNtn())));
+                || (Flags.oemEnabledSatelliteFlag() && info.isOnlyNonTerrestrialNetwork())));
 
         boolean includeAskEveryTime = getArguments().getBoolean(KEY_INCLUDE_ASK_EVERY_TIME);
         boolean isCancelItemShowed = getArguments().getBoolean(KEY_SHOW_CANCEL_ITEM);
diff --git a/src/com/android/settings/sim/smartForwarding/SmartForwardingFragment.java b/src/com/android/settings/sim/smartForwarding/SmartForwardingFragment.java
index 76eaea1..a95eb38 100644
--- a/src/com/android/settings/sim/smartForwarding/SmartForwardingFragment.java
+++ b/src/com/android/settings/sim/smartForwarding/SmartForwardingFragment.java
@@ -27,7 +27,7 @@
 import androidx.fragment.app.FragmentManager;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceFragmentCompat;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settingslib.core.instrumentation.Instrumentable;
@@ -51,7 +51,7 @@
         String title = getResources().getString(R.string.smart_forwarding_title);
         getActivity().getActionBar().setTitle(title);
 
-        SwitchPreference smartForwardingSwitch = findPreference(KEY_SMART_FORWARDING_SWITCH);
+        TwoStatePreference smartForwardingSwitch = findPreference(KEY_SMART_FORWARDING_SWITCH);
         if (turnOffSwitch) {
             smartForwardingSwitch.setChecked(false);
         }
@@ -93,7 +93,7 @@
     }
 
     public void turnOnSwitchPreference() {
-        SwitchPreference smartForwardingSwitch = findPreference(KEY_SMART_FORWARDING_SWITCH);
+        TwoStatePreference smartForwardingSwitch = findPreference(KEY_SMART_FORWARDING_SWITCH);
         smartForwardingSwitch.setChecked(true);
     }
 
diff --git a/src/com/android/settings/slices/CustomSliceRegistry.java b/src/com/android/settings/slices/CustomSliceRegistry.java
index b7fe091..08d2be6 100644
--- a/src/com/android/settings/slices/CustomSliceRegistry.java
+++ b/src/com/android/settings/slices/CustomSliceRegistry.java
@@ -196,16 +196,6 @@
             .build();
 
     /**
-     * Full {@link Uri} for the Ringer volume Slice. (Ring & notification combined)
-     */
-    public static final Uri VOLUME_RINGER_URI = new Uri.Builder()
-            .scheme(ContentResolver.SCHEME_CONTENT)
-            .authority(SettingsSliceProvider.SLICE_AUTHORITY)
-            .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
-            .appendPath("ring_volume")
-            .build();
-
-    /**
      * Full {@link Uri} for the Separate Ring volume Slice.
      */
     public static final Uri VOLUME_SEPARATE_RING_URI = new Uri.Builder()
diff --git a/src/com/android/settings/slices/VolumeSliceHelper.java b/src/com/android/settings/slices/VolumeSliceHelper.java
index 1ba1778..8947cc4 100644
--- a/src/com/android/settings/slices/VolumeSliceHelper.java
+++ b/src/com/android/settings/slices/VolumeSliceHelper.java
@@ -24,7 +24,6 @@
 import android.content.IntentFilter;
 import android.media.AudioManager;
 import android.net.Uri;
-import android.util.ArrayMap;
 import android.util.Log;
 
 import androidx.annotation.VisibleForTesting;
@@ -32,6 +31,7 @@
 import com.android.settingslib.SliceBroadcastRelay;
 
 import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
 /**
  * This helper is to handle the broadcasts of volume slices
@@ -41,7 +41,7 @@
     private static final String TAG = "VolumeSliceHelper";
 
     @VisibleForTesting
-    static Map<Uri, Integer> sRegisteredUri = new ArrayMap<>();
+    static Map<Uri, Integer> sRegisteredUri = new ConcurrentHashMap<>();
     @VisibleForTesting
     static IntentFilter sIntentFilter;
 
@@ -133,23 +133,19 @@
     }
 
     private static void handleStreamChanged(Context context, int inputType) {
-        synchronized (sRegisteredUri) {
-            for (Map.Entry<Uri, Integer> entry : sRegisteredUri.entrySet()) {
-                if (entry.getValue() == inputType) {
-                    context.getContentResolver().notifyChange(entry.getKey(), null /* observer */);
-                    if (inputType != AudioManager.STREAM_RING) { // Two URIs are mapped to ring
-                        break;
-                    }
+        for (Map.Entry<Uri, Integer> entry : sRegisteredUri.entrySet()) {
+            if (entry.getValue() == inputType) {
+                context.getContentResolver().notifyChange(entry.getKey(), null /* observer */);
+                if (inputType != AudioManager.STREAM_RING) { // Two URIs are mapped to ring
+                    break;
                 }
             }
         }
     }
 
     private static void notifyAllStreamsChanged(Context context) {
-        synchronized (sRegisteredUri) {
-            sRegisteredUri.forEach((uri, audioStream) -> {
-                context.getContentResolver().notifyChange(uri, null /* observer */);
-            });
-        }
+        sRegisteredUri.keySet().forEach(uri -> {
+            context.getContentResolver().notifyChange(uri, null /* observer */);
+        });
     }
 }
diff --git a/src/com/android/settings/spa/SettingsSpaEnvironment.kt b/src/com/android/settings/spa/SettingsSpaEnvironment.kt
index 40cc9a2..7ab836b 100644
--- a/src/com/android/settings/spa/SettingsSpaEnvironment.kt
+++ b/src/com/android/settings/spa/SettingsSpaEnvironment.kt
@@ -30,12 +30,15 @@
 import com.android.settings.spa.app.specialaccess.AllFilesAccessAppListProvider
 import com.android.settings.spa.app.specialaccess.DisplayOverOtherAppsAppListProvider
 import com.android.settings.spa.app.specialaccess.InstallUnknownAppsListProvider
+import com.android.settings.spa.app.specialaccess.LongBackgroundTasksAppListProvider
 import com.android.settings.spa.app.specialaccess.MediaManagementAppsAppListProvider
 import com.android.settings.spa.app.specialaccess.ModifySystemSettingsAppListProvider
 import com.android.settings.spa.app.specialaccess.NfcTagAppsSettingsProvider
 import com.android.settings.spa.app.specialaccess.PictureInPictureListProvider
 import com.android.settings.spa.app.specialaccess.SpecialAppAccessPageProvider
+import com.android.settings.spa.app.specialaccess.TurnScreenOnAppsAppListProvider
 import com.android.settings.spa.app.specialaccess.UseFullScreenIntentAppListProvider
+import com.android.settings.spa.app.specialaccess.VoiceActivationAppsListProvider
 import com.android.settings.spa.app.specialaccess.WifiControlAppListProvider
 import com.android.settings.spa.app.storage.StorageAppListPageProvider
 import com.android.settings.spa.core.instrumentation.SpaLogProvider
@@ -66,8 +69,11 @@
             PictureInPictureListProvider,
             InstallUnknownAppsListProvider,
             AlarmsAndRemindersAppListProvider,
+            VoiceActivationAppsListProvider,
             WifiControlAppListProvider,
             NfcTagAppsSettingsProvider,
+            LongBackgroundTasksAppListProvider,
+            TurnScreenOnAppsAppListProvider,
         )
     }
 
@@ -76,35 +82,41 @@
             allProviders = getTogglePermissionAppListProviders()
         )
         SettingsPageProviderRepository(
-            allPageProviders = listOf(
-                HomePageProvider,
-                AppsMainPageProvider,
-                AllAppListPageProvider,
-                AppInfoSettingsProvider,
-                SpecialAppAccessPageProvider,
-                NotificationMainPageProvider,
-                AppListNotificationsPageProvider,
-                SystemMainPageProvider,
-                LanguageAndInputPageProvider,
-                AppLanguagesPageProvider,
-                UsageStatsPageProvider,
-                PlatformCompatAppListPageProvider,
-                BackgroundInstalledAppsPageProvider,
-                UserAspectRatioAppsPageProvider,
-                CloneAppInfoSettingsProvider,
-                NetworkAndInternetPageProvider,
-                AboutPhonePageProvider,
-                StorageAppListPageProvider.Apps,
-                StorageAppListPageProvider.Games,
-                ApnEditPageProvider,
-                ) + togglePermissionAppListTemplate.createPageProviders(),
+            allPageProviders = settingsPageProviders()
+                + togglePermissionAppListTemplate.createPageProviders(),
             rootPages = listOf(
                 HomePageProvider.createSettingsPage()
             ),
         )
     }
-    override val logger =
-        if (FeatureFlagUtils.isEnabled(context, FeatureFlagUtils.SETTINGS_ENABLE_SPA_METRICS))
-            SpaLogProvider
-        else object : SpaLogger {}
+
+
+    open fun settingsPageProviders() = listOf(
+        HomePageProvider,
+        AppsMainPageProvider,
+        AllAppListPageProvider,
+        AppInfoSettingsProvider,
+        SpecialAppAccessPageProvider,
+        NotificationMainPageProvider,
+        AppListNotificationsPageProvider,
+        SystemMainPageProvider,
+        LanguageAndInputPageProvider,
+        AppLanguagesPageProvider,
+        UsageStatsPageProvider,
+        PlatformCompatAppListPageProvider,
+        BackgroundInstalledAppsPageProvider,
+        UserAspectRatioAppsPageProvider,
+        CloneAppInfoSettingsProvider,
+        NetworkAndInternetPageProvider,
+        AboutPhonePageProvider,
+        StorageAppListPageProvider.Apps,
+        StorageAppListPageProvider.Games,
+        ApnEditPageProvider,
+    )
+
+    override val logger = if (FeatureFlagUtils.isEnabled(
+            context, FeatureFlagUtils.SETTINGS_ENABLE_SPA_METRICS
+        )
+    ) SpaLogProvider
+    else object : SpaLogger {}
 }
diff --git a/src/com/android/settings/spa/SpaActivity.kt b/src/com/android/settings/spa/SpaActivity.kt
index 2b52b21..e5bee8b 100644
--- a/src/com/android/settings/spa/SpaActivity.kt
+++ b/src/com/android/settings/spa/SpaActivity.kt
@@ -16,18 +16,14 @@
 
 package com.android.settings.spa
 
-import android.app.ActivityManager
 import android.content.Context
 import android.content.Intent
-import android.os.RemoteException
-import android.os.UserHandle
 import android.util.Log
 import androidx.annotation.VisibleForTesting
 import com.android.settings.spa.app.appinfo.AppInfoSettingsProvider
 import com.android.settingslib.spa.framework.BrowseActivity
 import com.android.settingslib.spa.framework.common.SettingsPage
 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.appendSpaParams
 import com.google.android.setupcompat.util.WizardManagerHelper
 
@@ -44,7 +40,7 @@
         @VisibleForTesting
         fun Context.isSuwAndPageBlocked(name: String): Boolean =
             if (name in SuwBlockedPages && !WizardManagerHelper.isDeviceProvisioned(this)) {
-                Log.w(TAG, "$name blocked before SUW completed.");
+                Log.w(TAG, "$name blocked before SUW completed.")
                 true
             } else {
                 false
@@ -54,29 +50,8 @@
         fun Context.startSpaActivity(destination: String) {
             val intent = Intent(this, SpaActivity::class.java)
                 .appendSpaParams(destination = destination)
-            if (isLaunchedFromInternal()) {
-                intent.appendSpaParams(sessionName = SESSION_BROWSE)
-            } else {
-                intent.appendSpaParams(sessionName = SESSION_EXTERNAL)
-            }
+                .appendSpaParams(sessionName = SESSION_BROWSE)
             startActivity(intent)
         }
-
-        @JvmStatic
-        fun Context.startSpaActivityForApp(destinationPrefix: String, intent: Intent): Boolean {
-            val packageName = intent.data?.schemeSpecificPart ?: return false
-            startSpaActivity("$destinationPrefix/$packageName/${UserHandle.myUserId()}")
-            return true
-        }
-
-        fun Context.isLaunchedFromInternal(): Boolean {
-            var pkg: String? = null
-            try {
-                pkg = ActivityManager.getService().getLaunchedFromPackage(getActivityToken())
-            } catch (e: RemoteException) {
-                Log.v(TAG, "Could not talk to activity manager.", e)
-            }
-            return applicationContext.packageName == pkg
-        }
     }
 }
diff --git a/src/com/android/settings/spa/SpaAppBridgeActivity.kt b/src/com/android/settings/spa/SpaAppBridgeActivity.kt
index 9177939..1a77442 100644
--- a/src/com/android/settings/spa/SpaAppBridgeActivity.kt
+++ b/src/com/android/settings/spa/SpaAppBridgeActivity.kt
@@ -17,9 +17,11 @@
 package com.android.settings.spa
 
 import android.app.Activity
+import android.content.Intent
 import android.os.Bundle
-import com.android.settings.spa.SpaActivity.Companion.startSpaActivityForApp
+import android.os.UserHandle
 import com.android.settings.spa.SpaBridgeActivity.Companion.getDestination
+import com.android.settings.spa.SpaBridgeActivity.Companion.startSpaActivityFromBridge
 
 /**
  * Activity used as a bridge to [SpaActivity] with package scheme for application usage.
@@ -31,9 +33,18 @@
 class SpaAppBridgeActivity : Activity() {
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
-        getDestination()?.let { destination ->
-            startSpaActivityForApp(destination, intent)
+        getDestination()?.let { destinationPrefix ->
+            getDestinationForApp(destinationPrefix, intent)?.let { destination ->
+                startSpaActivityFromBridge(destination)
+            }
         }
         finish()
     }
+
+    companion object {
+        fun getDestinationForApp(destinationPrefix: String, intent: Intent): String? {
+            val packageName = intent.data?.schemeSpecificPart ?: return null
+            return "$destinationPrefix/$packageName/${UserHandle.myUserId()}"
+        }
+    }
 }
diff --git a/src/com/android/settings/spa/SpaBridgeActivity.kt b/src/com/android/settings/spa/SpaBridgeActivity.kt
index 904be88..0e239ae 100644
--- a/src/com/android/settings/spa/SpaBridgeActivity.kt
+++ b/src/com/android/settings/spa/SpaBridgeActivity.kt
@@ -17,10 +17,15 @@
 package com.android.settings.spa
 
 import android.app.Activity
+import android.content.Intent
 import android.content.pm.PackageManager
 import android.content.pm.PackageManager.ComponentInfoFlags
 import android.os.Bundle
-import com.android.settings.spa.SpaActivity.Companion.startSpaActivity
+import androidx.annotation.VisibleForTesting
+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
 
 /**
  * Activity used as a bridge to [SpaActivity].
@@ -33,17 +38,28 @@
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         getDestination()?.let { destination ->
-            startSpaActivity(destination)
+            startSpaActivityFromBridge(destination)
         }
         finish()
     }
 
     companion object {
+        fun Activity.startSpaActivityFromBridge(destination: String) {
+            val intent = Intent(this, SpaActivity::class.java)
+                .appendSpaParams(destination = destination)
+                .appendSpaParams(sessionName = SESSION_EXTERNAL)
+            if (!ActivityEmbeddingUtils.isEmbeddingActivityEnabled(this) ||
+                !tryStartMultiPaneDeepLink(intent)) {
+                startActivity(intent)
+            }
+        }
+
         fun Activity.getDestination(): String? =
             packageManager.getActivityInfo(
                 componentName, ComponentInfoFlags.of(PackageManager.GET_META_DATA.toLong())
             ).metaData.getString(META_DATA_KEY_DESTINATION)
 
-        private const val META_DATA_KEY_DESTINATION = "com.android.settings.spa.DESTINATION"
+        @VisibleForTesting
+        const val META_DATA_KEY_DESTINATION = "com.android.settings.spa.DESTINATION"
     }
 }
diff --git a/src/com/android/settings/spa/about/AboutPhone.kt b/src/com/android/settings/spa/about/AboutPhone.kt
index 7343da0..5f9aa97 100644
--- a/src/com/android/settings/spa/about/AboutPhone.kt
+++ b/src/com/android/settings/spa/about/AboutPhone.kt
@@ -29,7 +29,6 @@
 import com.android.settingslib.spa.framework.common.SpaEnvironmentFactory
 import com.android.settingslib.spa.framework.common.createSettingsPage
 import com.android.settingslib.spa.framework.compose.navigator
-import com.android.settingslib.spa.framework.compose.toState
 import com.android.settingslib.spa.widget.preference.Preference
 import com.android.settingslib.spa.widget.preference.PreferenceModel
 import com.android.settingslib.spa.widget.scaffold.RegularScaffold
@@ -56,7 +55,7 @@
                 val deviceNamePresenter = remember { DeviceNamePresenter(context) }
                 Preference(object : PreferenceModel {
                     override val title = stringResource(R.string.about_settings)
-                    override val summary = deviceNamePresenter.deviceName.toState()
+                    override val summary = { deviceNamePresenter.deviceName }
                     override val onClick = navigator(name)
                     override val icon = @Composable {
                         SettingsIcon(imageVector = Icons.Outlined.PermDeviceInformation)
diff --git a/src/com/android/settings/spa/about/DeviceName.kt b/src/com/android/settings/spa/about/DeviceName.kt
index c481e32..86a9512 100644
--- a/src/com/android/settings/spa/about/DeviceName.kt
+++ b/src/com/android/settings/spa/about/DeviceName.kt
@@ -24,7 +24,6 @@
 import androidx.compose.ui.res.stringResource
 import com.android.settings.R
 import com.android.settings.deviceinfo.DeviceNamePreferenceController
-import com.android.settingslib.spa.framework.compose.toState
 import com.android.settingslib.spa.widget.dialog.AlertDialogButton
 import com.android.settingslib.spa.widget.dialog.rememberAlertDialogPresenter
 import com.android.settingslib.spa.widget.preference.Preference
@@ -48,7 +47,7 @@
         Preference(object : PreferenceModel {
             override val title =
                 stringResource(R.string.my_device_info_device_name_preference_title)
-            override val summary = deviceNamePresenter.deviceName.toState()
+            override val summary = { deviceNamePresenter.deviceName }
             override val onClick = dialogPresenter::open
         })
 
diff --git a/src/com/android/settings/spa/app/AllAppList.kt b/src/com/android/settings/spa/app/AllAppList.kt
index f3ad2e6..5b13211 100644
--- a/src/com/android/settings/spa/app/AllAppList.kt
+++ b/src/com/android/settings/spa/app/AllAppList.kt
@@ -21,8 +21,6 @@
 import android.os.Bundle
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.State
-import androidx.compose.runtime.derivedStateOf
-import androidx.compose.runtime.remember
 import androidx.compose.ui.res.stringResource
 import com.android.settings.R
 import com.android.settings.spa.app.appinfo.AppInfoSettingsProvider
@@ -116,7 +114,7 @@
         option: Int,
         recordListFlow: Flow<List<AppRecordWithSize>>,
     ): Flow<List<AppRecordWithSize>> = recordListFlow.filterItem(
-        when (SpinnerItem.values().getOrNull(option)) {
+        when (SpinnerItem.entries.getOrNull(option)) {
             SpinnerItem.Enabled -> ({ it.app.enabled && !it.app.isInstantApp })
             SpinnerItem.Disabled -> isDisabled
             SpinnerItem.Instant -> isInstant
@@ -130,22 +128,20 @@
     private val isInstant: (AppRecordWithSize) -> Boolean = { it.app.isInstantApp }
 
     @Composable
-    override fun getSummary(option: Int, record: AppRecordWithSize): State<String> {
+    override fun getSummary(option: Int, record: AppRecordWithSize): () -> String {
         val storageSummary = record.app.getStorageSummary()
-        return remember {
-            derivedStateOf {
-                storageSummary.value +
-                    when {
-                        !record.app.installed -> {
-                            System.lineSeparator() + context.getString(R.string.not_installed)
-                        }
-                        isDisabled(record) -> {
-                            System.lineSeparator() +
-                                context.getString(com.android.settingslib.R.string.disabled)
-                        }
-                        else -> ""
-                    }
+        return {
+            val summaryList = mutableListOf(storageSummary.value)
+            when {
+                !record.app.installed && !record.app.isArchived -> {
+                    summaryList += context.getString(R.string.not_installed)
+                }
+
+                isDisabled(record) -> {
+                    summaryList += context.getString(com.android.settingslib.R.string.disabled)
+                }
             }
+            summaryList.joinToString(separator = System.lineSeparator())
         }
     }
 
diff --git a/src/com/android/settings/spa/app/AppsMain.kt b/src/com/android/settings/spa/app/AppsMain.kt
index 2dea9c5..83b3080 100644
--- a/src/com/android/settings/spa/app/AppsMain.kt
+++ b/src/com/android/settings/spa/app/AppsMain.kt
@@ -30,7 +30,6 @@
 import com.android.settingslib.spa.framework.common.SpaEnvironmentFactory
 import com.android.settingslib.spa.framework.common.createSettingsPage
 import com.android.settingslib.spa.framework.compose.navigator
-import com.android.settingslib.spa.framework.compose.toState
 import com.android.settingslib.spa.widget.preference.Preference
 import com.android.settingslib.spa.widget.preference.PreferenceModel
 import com.android.settingslib.spa.widget.scaffold.RegularScaffold
@@ -54,10 +53,10 @@
     fun buildInjectEntry() =
         SettingsEntryBuilder.createInject(owner = owner)
             .setUiLayoutFn {
+                val summary = stringResource(R.string.app_and_notification_dashboard_summary)
                 Preference(object : PreferenceModel {
                     override val title = stringResource(R.string.apps_dashboard_title)
-                    override val summary =
-                        stringResource(R.string.app_and_notification_dashboard_summary).toState()
+                    override val summary = { summary }
                     override val onClick = navigator(name)
                     override val icon = @Composable {
                         SettingsIcon(imageVector = Icons.Outlined.Apps)
diff --git a/src/com/android/settings/spa/app/ResetAppPreferences.kt b/src/com/android/settings/spa/app/ResetAppPreferences.kt
index 12dd709..34c4145 100644
--- a/src/com/android/settings/spa/app/ResetAppPreferences.kt
+++ b/src/com/android/settings/spa/app/ResetAppPreferences.kt
@@ -16,7 +16,6 @@
 
 package com.android.settings.spa.app
 
-import android.os.UserHandle
 import android.os.UserManager
 import androidx.compose.material3.Text
 import androidx.compose.runtime.Composable
@@ -37,10 +36,7 @@
     RestrictedMenuItem(
         text = stringResource(R.string.reset_app_preferences),
         restrictions = remember {
-            Restrictions(
-                userId = UserHandle.myUserId(),
-                keys = listOf(UserManager.DISALLOW_APPS_CONTROL),
-            )
+            Restrictions(keys = listOf(UserManager.DISALLOW_APPS_CONTROL))
         },
         onClick = onClick,
     )
diff --git a/src/com/android/settings/spa/app/appcompat/UserAspectRatioAppPreference.kt b/src/com/android/settings/spa/app/appcompat/UserAspectRatioAppPreference.kt
index 61098e8..1e6e545 100644
--- a/src/com/android/settings/spa/app/appcompat/UserAspectRatioAppPreference.kt
+++ b/src/com/android/settings/spa/app/appcompat/UserAspectRatioAppPreference.kt
@@ -19,6 +19,7 @@
 import android.content.Context
 import android.content.pm.ApplicationInfo
 import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
 import androidx.compose.runtime.remember
 import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.res.stringResource
@@ -40,11 +41,12 @@
     val presenter = remember { UserAspectRatioAppPresenter(context, app) }
     if (!presenter.isAvailableFlow.collectAsStateWithLifecycle(initialValue = false).value) return
 
+    val summary by presenter.summaryFlow.collectAsStateWithLifecycle(
+        initialValue = stringResource(R.string.summary_placeholder),
+    )
     Preference(object : PreferenceModel {
         override val title = stringResource(R.string.aspect_ratio_experimental_title)
-        override val summary = presenter.summaryFlow.collectAsStateWithLifecycle(
-            initialValue = stringResource(R.string.summary_placeholder),
-        )
+        override val summary = { summary }
         override val onClick = presenter::startActivity
     })
 }
@@ -61,18 +63,18 @@
     }.flowOn(Dispatchers.IO)
 
     fun startActivity() =
-        navigateToAppAspectRatioSettings(context, app)
+        navigateToAppAspectRatioSettings(context, app, AppInfoSettingsProvider.METRICS_CATEGORY)
 
     val summaryFlow = flow {
         emit(manager.getUserMinAspectRatioEntry(app.packageName, context.userId))
     }.flowOn(Dispatchers.IO)
 }
 
-fun navigateToAppAspectRatioSettings(context: Context, app: ApplicationInfo) {
+fun navigateToAppAspectRatioSettings(context: Context, app: ApplicationInfo, metricsCategory: Int) {
     AppInfoDashboardFragment.startAppInfoFragment(
         UserAspectRatioDetails::class.java,
         app,
         context,
-        AppInfoSettingsProvider.METRICS_CATEGORY,
+        metricsCategory,
     )
-}
\ No newline at end of file
+}
diff --git a/src/com/android/settings/spa/app/appcompat/UserAspectRatioAppsPageProvider.kt b/src/com/android/settings/spa/app/appcompat/UserAspectRatioAppsPageProvider.kt
index e74f1e3..7368750f 100644
--- a/src/com/android/settings/spa/app/appcompat/UserAspectRatioAppsPageProvider.kt
+++ b/src/com/android/settings/spa/app/appcompat/UserAspectRatioAppsPageProvider.kt
@@ -16,6 +16,7 @@
 
 package com.android.settings.spa.app.appcompat
 
+import android.app.settings.SettingsEnums
 import android.content.Context
 import android.content.pm.ApplicationInfo
 import android.content.pm.PackageInfo
@@ -28,7 +29,7 @@
 import androidx.compose.foundation.layout.Box
 import androidx.compose.foundation.layout.padding
 import androidx.compose.runtime.Composable
-import androidx.compose.runtime.State
+import androidx.compose.runtime.getValue
 import androidx.compose.runtime.remember
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.res.stringResource
@@ -41,15 +42,14 @@
 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.compose.toState
 import com.android.settingslib.spa.framework.theme.SettingsDimension
 import com.android.settingslib.spa.framework.util.asyncMap
 import com.android.settingslib.spa.framework.util.filterItem
-import com.android.settingslib.spa.widget.preference.Preference
-import com.android.settingslib.spa.widget.preference.PreferenceModel
 import com.android.settingslib.spa.widget.illustration.Illustration
 import com.android.settingslib.spa.widget.illustration.IllustrationModel
 import com.android.settingslib.spa.widget.illustration.ResourceType
+import com.android.settingslib.spa.widget.preference.Preference
+import com.android.settingslib.spa.widget.preference.PreferenceModel
 import com.android.settingslib.spa.widget.ui.SettingsBody
 import com.android.settingslib.spa.widget.ui.SpinnerOption
 import com.android.settingslib.spaprivileged.model.app.AppListModel
@@ -80,12 +80,14 @@
 
     @Composable
     @VisibleForTesting
-    fun EntryItem() =
+    fun EntryItem() {
+        val summary = getSummary()
         Preference(object : PreferenceModel {
             override val title = stringResource(R.string.aspect_ratio_experimental_title)
-            override val summary = getSummary().toState()
+            override val summary = { summary }
             override val onClick = navigator(name)
         })
+    }
 
     @VisibleForTesting
     fun buildInjectEntry() = SettingsEntryBuilder
@@ -95,7 +97,7 @@
 
     @Composable
     @VisibleForTesting
-    fun getSummary(): String = stringResource(R.string.aspect_ratio_summary, Build.MODEL)
+    fun getSummary(): String = stringResource(R.string.aspect_ratio_summary_text, Build.MODEL)
 }
 
 @Composable
@@ -109,7 +111,7 @@
         appList = appList,
         header = {
             Box(Modifier.padding(SettingsDimension.itemPadding)) {
-                SettingsBody(stringResource(R.string.aspect_ratio_main_summary, Build.MODEL))
+                SettingsBody(stringResource(R.string.aspect_ratio_main_summary_text, Build.MODEL))
             }
             Illustration(object : IllustrationModel {
                 override val resId = R.raw.user_aspect_ratio_education
@@ -154,7 +156,13 @@
     override fun AppListItemModel<UserAspectRatioAppListItemModel>.AppItem() {
         val app = record.app
         AppListItem(
-            onClick = { navigateToAppAspectRatioSettings(context, app) }
+            onClick = {
+                navigateToAppAspectRatioSettings(
+                    context,
+                    app,
+                    SettingsEnums.USER_ASPECT_RATIO_APP_LIST_SETTINGS
+                )
+            }
         )
     }
 
@@ -177,7 +185,7 @@
         option: Int,
         recordListFlow: Flow<List<UserAspectRatioAppListItemModel>>
     ): Flow<List<UserAspectRatioAppListItemModel>> = recordListFlow.filterItem(
-        when (SpinnerItem.values().getOrNull(option)) {
+        when (SpinnerItem.entries.getOrNull(option)) {
             SpinnerItem.Suggested -> ({ it.canDisplay && it.suggested })
             SpinnerItem.Overridden -> ({ it.userOverride != USER_MIN_ASPECT_RATIO_UNSET })
             else -> ({ it.canDisplay })
@@ -185,13 +193,15 @@
     )
 
     @Composable
-    override fun getSummary(option: Int, record: UserAspectRatioAppListItemModel) : State<String> =
-        remember(record.userOverride) {
+    override fun getSummary(option: Int, record: UserAspectRatioAppListItemModel): () -> String {
+        val summary by remember(record.userOverride) {
             flow {
                 emit(userAspectRatioManager.getUserMinAspectRatioEntry(record.userOverride,
                     record.app.packageName))
             }.flowOn(Dispatchers.IO)
         }.collectAsStateWithLifecycle(initialValue = stringResource(R.string.summary_placeholder))
+        return { summary }
+    }
 
     private fun getPackageAndActivityInfo(app: ApplicationInfo): PackageInfo? = try {
         packageManager.getPackageInfoAsUser(app.packageName, GET_ACTIVITIES_FLAGS, app.userId)
diff --git a/src/com/android/settings/spa/app/appinfo/AppAllServicesPreference.kt b/src/com/android/settings/spa/app/appinfo/AppAllServicesPreference.kt
index 34272d4..31e068c 100644
--- a/src/com/android/settings/spa/app/appinfo/AppAllServicesPreference.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppAllServicesPreference.kt
@@ -24,6 +24,7 @@
 import android.os.Bundle
 import android.util.Log
 import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
 import androidx.compose.runtime.remember
 import androidx.compose.runtime.rememberCoroutineScope
 import androidx.compose.ui.platform.LocalContext
@@ -52,11 +53,12 @@
     val presenter = remember { AppAllServicesPresenter(context, app, coroutineScope) }
     if (!presenter.isAvailableFlow.collectAsStateWithLifecycle(initialValue = false).value) return
 
+    val summary by presenter.summaryFlow.collectAsStateWithLifecycle(
+        initialValue = stringResource(R.string.summary_placeholder),
+    )
     Preference(object : PreferenceModel {
         override val title = stringResource(R.string.app_info_all_services_label)
-        override val summary = presenter.summaryFlow.collectAsStateWithLifecycle(
-            initialValue = stringResource(R.string.summary_placeholder),
-        )
+        override val summary = { summary }
         override val onClick = presenter::startActivity
     })
 }
diff --git a/src/com/android/settings/spa/app/appinfo/AppBatteryPreference.kt b/src/com/android/settings/spa/app/appinfo/AppBatteryPreference.kt
index 7dd78a9..c707b44b 100644
--- a/src/com/android/settings/spa/app/appinfo/AppBatteryPreference.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppBatteryPreference.kt
@@ -21,7 +21,6 @@
 import android.util.Log
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.LaunchedEffect
-import androidx.compose.runtime.derivedStateOf
 import androidx.compose.runtime.getValue
 import androidx.compose.runtime.mutableStateOf
 import androidx.compose.runtime.remember
@@ -91,16 +90,17 @@
         }
     }
 
-    val enabled = derivedStateOf { batteryDiffEntryState is LoadingState.Done }
+    val enabled = { batteryDiffEntryState is LoadingState.Done }
 
-    val summary = derivedStateOf<String> {
-        if (!app.installed) return@derivedStateOf ""
-        batteryDiffEntryState.let { batteryDiffEntryState ->
-            when (batteryDiffEntryState) {
-                is LoadingState.Loading -> context.getString(R.string.summary_placeholder)
-                is LoadingState.Done -> batteryDiffEntryState.result.getSummary()
+    val summary = {
+        if (app.installed) {
+            batteryDiffEntryState.let { batteryDiffEntryState ->
+                when (batteryDiffEntryState) {
+                    is LoadingState.Loading -> context.getString(R.string.summary_placeholder)
+                    is LoadingState.Done -> batteryDiffEntryState.result.getSummary()
+                }
             }
-        }
+        } else ""
     }
 
     private fun BatteryDiffEntry?.getSummary(): String =
@@ -155,7 +155,7 @@
 }
 
 private sealed class LoadingState<out T> {
-    object Loading : LoadingState<Nothing>()
+    data object Loading : LoadingState<Nothing>()
 
     data class Done<T>(val result: T) : LoadingState<T>()
 
diff --git a/src/com/android/settings/spa/app/appinfo/AppButtons.kt b/src/com/android/settings/spa/app/appinfo/AppButtons.kt
index 3200b81..307ff11 100644
--- a/src/com/android/settings/spa/app/appinfo/AppButtons.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppButtons.kt
@@ -17,6 +17,8 @@
 package com.android.settings.spa.app.appinfo
 
 import android.content.pm.ApplicationInfo
+import android.content.pm.FeatureFlags
+import android.content.pm.FeatureFlagsImpl
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.remember
 import androidx.lifecycle.compose.collectAsStateWithLifecycle
@@ -25,16 +27,22 @@
 import com.android.settingslib.spa.widget.button.ActionButtons
 
 @Composable
-fun AppButtons(packageInfoPresenter: PackageInfoPresenter) {
+/**
+ * @param featureFlags can be overridden in tests
+ */
+fun AppButtons(packageInfoPresenter: PackageInfoPresenter, featureFlags: FeatureFlags = FeatureFlagsImpl()) {
     if (remember(packageInfoPresenter) { packageInfoPresenter.isMainlineModule() }) return
-    val presenter = remember { AppButtonsPresenter(packageInfoPresenter) }
+    val presenter = remember { AppButtonsPresenter(packageInfoPresenter, featureFlags) }
     ActionButtons(actionButtons = presenter.getActionButtons())
 }
 
 private fun PackageInfoPresenter.isMainlineModule(): Boolean =
     AppUtils.isMainlineModule(userPackageManager, packageName)
 
-private class AppButtonsPresenter(private val packageInfoPresenter: PackageInfoPresenter) {
+private class AppButtonsPresenter(
+    private val packageInfoPresenter: PackageInfoPresenter,
+    private val featureFlags: FeatureFlags
+) {
     private val appLaunchButton = AppLaunchButton(packageInfoPresenter)
     private val appInstallButton = AppInstallButton(packageInfoPresenter)
     private val appDisableButton = AppDisableButton(packageInfoPresenter)
@@ -50,7 +58,7 @@
 
     @Composable
     private fun getActionButtons(app: ApplicationInfo): List<ActionButton> = listOfNotNull(
-        appLaunchButton.getActionButton(app),
+        if (featureFlags.archiving()) null else appLaunchButton.getActionButton(app),
         appInstallButton.getActionButton(app),
         appDisableButton.getActionButton(app),
         appUninstallButton.getActionButton(app),
diff --git a/src/com/android/settings/spa/app/appinfo/AppDataUsagePreference.kt b/src/com/android/settings/spa/app/appinfo/AppDataUsagePreference.kt
index 5210dc7..057f911 100644
--- a/src/com/android/settings/spa/app/appinfo/AppDataUsagePreference.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppDataUsagePreference.kt
@@ -18,13 +18,11 @@
 
 import android.content.Context
 import android.content.pm.ApplicationInfo
-import android.net.NetworkStats
 import android.net.NetworkTemplate
-import android.os.Process
-import android.text.format.DateUtils
-import android.text.format.Formatter
 import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
 import androidx.compose.runtime.remember
+import androidx.compose.runtime.rememberCoroutineScope
 import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.res.stringResource
 import androidx.lifecycle.compose.collectAsStateWithLifecycle
@@ -32,29 +30,51 @@
 import com.android.settings.Utils
 import com.android.settings.applications.appinfo.AppInfoDashboardFragment
 import com.android.settings.datausage.AppDataUsage
-import com.android.settings.datausage.DataUsageUtils
-import com.android.settingslib.net.NetworkCycleDataForUid
-import com.android.settingslib.net.NetworkCycleDataForUidLoader
-import com.android.settingslib.spa.framework.compose.toState
+import com.android.settings.datausage.lib.AppDataUsageSummaryRepository
+import com.android.settings.datausage.lib.IAppDataUsageSummaryRepository
+import com.android.settings.datausage.lib.INetworkTemplates
+import com.android.settings.datausage.lib.NetworkTemplates
+import com.android.settings.datausage.lib.NetworkTemplates.getTitleResId
 import com.android.settingslib.spa.widget.preference.Preference
 import com.android.settingslib.spa.widget.preference.PreferenceModel
 import com.android.settingslib.spaprivileged.model.app.hasFlag
+import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.flow.SharingStarted
 import kotlinx.coroutines.flow.flow
+import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.flow.shareIn
 import kotlinx.coroutines.withContext
 
 @Composable
-fun AppDataUsagePreference(app: ApplicationInfo) {
+fun AppDataUsagePreference(
+    app: ApplicationInfo,
+    networkTemplates: INetworkTemplates = NetworkTemplates,
+    repositoryFactory: (
+        context: Context,
+        networkTemplate: NetworkTemplate,
+    ) -> IAppDataUsageSummaryRepository = { context, networkTemplate ->
+        AppDataUsageSummaryRepository(context, networkTemplate)
+    }
+) {
     val context = LocalContext.current
-    val presenter = remember { AppDataUsagePresenter(context, app) }
+    val coroutineScope = rememberCoroutineScope()
+    val presenter = remember {
+        AppDataUsagePresenter(context, app, coroutineScope, networkTemplates, repositoryFactory)
+    }
     if (!presenter.isAvailableFlow.collectAsStateWithLifecycle(initialValue = false).value) return
 
+    val summary by presenter.summaryFlow.collectAsStateWithLifecycle(
+        initialValue = stringResource(R.string.computing_size),
+    )
     Preference(object : PreferenceModel {
-        override val title = stringResource(R.string.data_usage_app_summary_title)
-        override val summary = presenter.summaryFlow.collectAsStateWithLifecycle(
-            initialValue = stringResource(R.string.computing_size),
+        override val title = stringResource(
+            presenter.titleResIdFlow.collectAsStateWithLifecycle(
+                initialValue = R.string.summary_placeholder,
+            ).value
         )
-        override val enabled = presenter.isEnabled().toState()
+        override val summary = { summary }
+        override val enabled = { presenter.isEnabled() }
         override val onClick = presenter::startActivity
     })
 }
@@ -62,6 +82,12 @@
 private class AppDataUsagePresenter(
     private val context: Context,
     private val app: ApplicationInfo,
+    coroutineScope: CoroutineScope,
+    networkTemplates: INetworkTemplates,
+    private val repositoryFactory: (
+        context: Context,
+        networkTemplate: NetworkTemplate,
+    ) -> IAppDataUsageSummaryRepository,
 ) {
     val isAvailableFlow = flow { emit(isAvailable()) }
 
@@ -71,51 +97,28 @@
 
     fun isEnabled() = app.hasFlag(ApplicationInfo.FLAG_INSTALLED)
 
-    val summaryFlow = flow { emit(getSummary()) }
+    private val templateFlow = flow {
+        emit(withContext(Dispatchers.IO) {
+            networkTemplates.getDefaultTemplate(context)
+        })
+    }.shareIn(coroutineScope, SharingStarted.WhileSubscribed(), 1)
 
-    private suspend fun getSummary() = withContext(Dispatchers.IO) {
-        val appUsageData = getAppUsageData()
-        val totalBytes = appUsageData.sumOf { it.totalUsage }
-        if (totalBytes == 0L) {
+    val titleResIdFlow = templateFlow.map { it.getTitleResId() }
+    val summaryFlow = templateFlow.map { getSummary(it) }
+
+    private suspend fun getSummary(template: NetworkTemplate) = withContext(Dispatchers.IO) {
+        val appUsageData = repositoryFactory(context, template).querySummary(app.uid)
+        if (appUsageData == null || appUsageData.usage == 0L) {
             context.getString(R.string.no_data_usage)
         } else {
-            val startTime = appUsageData.minOfOrNull { it.startTime } ?: System.currentTimeMillis()
             context.getString(
                 R.string.data_summary_format,
-                Formatter.formatFileSize(context, totalBytes, Formatter.FLAG_IEC_UNITS),
-                DateUtils.formatDateTime(context, startTime, DATE_FORMAT),
+                appUsageData.formatUsage(context),
+                appUsageData.formatStartDate(context),
             )
         }
     }
 
-    private suspend fun getAppUsageData(): List<NetworkCycleDataForUid> =
-        withContext(Dispatchers.IO) {
-            createLoader().loadInBackground() ?: emptyList()
-        }
-
-    private fun createLoader(): NetworkCycleDataForUidLoader =
-        NetworkCycleDataForUidLoader.builder(context).apply {
-            setRetrieveDetail(false)
-            setNetworkTemplate(getTemplate())
-            addUid(app.uid)
-            if (Process.isApplicationUid(app.uid)) {
-                // Also add in network usage for the app's SDK sandbox
-                addUid(Process.toSdkSandboxUid(app.uid))
-            }
-        }.build()
-
-    private fun getTemplate(): NetworkTemplate = when {
-        DataUsageUtils.hasReadyMobileRadio(context) -> {
-            NetworkTemplate.Builder(NetworkTemplate.MATCH_MOBILE)
-                .setMeteredness(NetworkStats.METERED_YES)
-                .build()
-        }
-        DataUsageUtils.hasWifiRadio(context) -> {
-            NetworkTemplate.Builder(NetworkTemplate.MATCH_WIFI).build()
-        }
-        else -> NetworkTemplate.Builder(NetworkTemplate.MATCH_ETHERNET).build()
-    }
-
     fun startActivity() {
         AppInfoDashboardFragment.startAppInfoFragment(
             AppDataUsage::class.java,
@@ -124,8 +127,4 @@
             AppInfoSettingsProvider.METRICS_CATEGORY,
         )
     }
-
-    private companion object {
-        const val DATE_FORMAT = DateUtils.FORMAT_SHOW_DATE or DateUtils.FORMAT_ABBREV_MONTH
-    }
 }
diff --git a/src/com/android/settings/spa/app/appinfo/AppForceStopButton.kt b/src/com/android/settings/spa/app/appinfo/AppForceStopButton.kt
index 086f59e..7615442 100644
--- a/src/com/android/settings/spa/app/appinfo/AppForceStopButton.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppForceStopButton.kt
@@ -20,7 +20,7 @@
 import android.content.pm.ApplicationInfo
 import android.os.UserManager
 import androidx.compose.material.icons.Icons
-import androidx.compose.material.icons.outlined.WarningAmber
+import androidx.compose.material.icons.outlined.Report
 import androidx.compose.material3.Text
 import androidx.compose.runtime.Composable
 import androidx.compose.ui.res.stringResource
@@ -48,7 +48,7 @@
         val dialogPresenter = confirmDialogPresenter()
         return ActionButton(
             text = context.getString(R.string.force_stop),
-            imageVector = Icons.Outlined.WarningAmber,
+            imageVector = Icons.Outlined.Report,
             enabled = isForceStopButtonEnable(app),
         ) { onForceStopButtonClicked(app, dialogPresenter) }
     }
diff --git a/src/com/android/settings/spa/app/appinfo/AppInfoSettings.kt b/src/com/android/settings/spa/app/appinfo/AppInfoSettings.kt
index a9d16ae..3b7f579 100644
--- a/src/com/android/settings/spa/app/appinfo/AppInfoSettings.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppInfoSettings.kt
@@ -18,6 +18,8 @@
 
 import android.app.settings.SettingsEnums
 import android.content.pm.ApplicationInfo
+import android.content.pm.FeatureFlags
+import android.content.pm.FeatureFlagsImpl
 import android.os.Bundle
 import android.os.UserHandle
 import android.util.FeatureFlagUtils
@@ -30,6 +32,7 @@
 import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import androidx.navigation.NavType
 import androidx.navigation.navArgument
+import com.android.settings.flags.Flags
 import com.android.settings.R
 import com.android.settings.applications.AppInfoBase
 import com.android.settings.applications.appinfo.AppInfoDashboardFragment
@@ -40,6 +43,7 @@
 import com.android.settings.spa.app.specialaccess.InstallUnknownAppsListProvider
 import com.android.settings.spa.app.specialaccess.ModifySystemSettingsAppListProvider
 import com.android.settings.spa.app.specialaccess.PictureInPictureListProvider
+import com.android.settings.spa.app.specialaccess.VoiceActivationAppsListProvider
 import com.android.settingslib.spa.framework.common.SettingsPageProvider
 import com.android.settingslib.spa.framework.compose.LifecycleEffect
 import com.android.settingslib.spa.framework.compose.navigator
@@ -119,9 +123,11 @@
     LifecycleEffect(onStart = { packageInfoPresenter.reloadPackageInfo() })
     val packageInfo = packageInfoPresenter.flow.collectAsStateWithLifecycle().value ?: return
     val app = checkNotNull(packageInfo.applicationInfo)
+    val featureFlags: FeatureFlags = FeatureFlagsImpl()
     RegularScaffold(
         title = stringResource(R.string.application_info_label),
         actions = {
+            if (featureFlags.archiving()) TopBarAppLaunchButton(packageInfoPresenter, app)
             AppInfoSettingsMoreOptions(packageInfoPresenter, app)
         }
     ) {
@@ -156,6 +162,9 @@
             InstallUnknownAppsListProvider.InfoPageEntryItem(app)
             InteractAcrossProfilesDetailsPreference(app)
             AlarmsAndRemindersAppListProvider.InfoPageEntryItem(app)
+            if (Flags.enableVoiceActivationAppsInSettings()) {
+                VoiceActivationAppsListProvider.InfoPageEntryItem(app)
+            }
         }
 
         Category(title = stringResource(R.string.app_install_details_group_title)) {
diff --git a/src/com/android/settings/spa/app/appinfo/AppInstallerInfoPreference.kt b/src/com/android/settings/spa/app/appinfo/AppInstallerInfoPreference.kt
index 5a348f7..62e714a 100644
--- a/src/com/android/settings/spa/app/appinfo/AppInstallerInfoPreference.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppInstallerInfoPreference.kt
@@ -19,15 +19,16 @@
 import android.content.Context
 import android.content.pm.ApplicationInfo
 import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
 import androidx.compose.runtime.remember
 import androidx.compose.runtime.rememberCoroutineScope
 import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.res.stringResource
+import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.settings.R
 import com.android.settings.Utils
 import com.android.settings.applications.AppStoreUtil
 import com.android.settingslib.applications.AppUtils
-import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.settingslib.spa.widget.preference.Preference
 import com.android.settingslib.spa.widget.preference.PreferenceModel
 import com.android.settingslib.spaprivileged.framework.common.asUser
@@ -49,13 +50,14 @@
     val presenter = remember { AppInstallerInfoPresenter(context, app, coroutineScope) }
     if (!presenter.isAvailableFlow.collectAsStateWithLifecycle(initialValue = false).value) return
 
+    val summary by presenter.summaryFlow.collectAsStateWithLifecycle(
+        initialValue = stringResource(R.string.summary_placeholder),
+    )
+    val enabled by presenter.enabledFlow.collectAsStateWithLifecycle(initialValue = false)
     Preference(object : PreferenceModel {
         override val title = stringResource(R.string.app_install_details_title)
-        override val summary = presenter.summaryFlow.collectAsStateWithLifecycle(
-            initialValue = stringResource(R.string.summary_placeholder),
-        )
-        override val enabled =
-            presenter.enabledFlow.collectAsStateWithLifecycle(initialValue = false)
+        override val summary = { summary }
+        override val enabled = { enabled }
         override val onClick = presenter::startActivity
     })
 }
diff --git a/src/com/android/settings/spa/app/appinfo/AppLocalePreference.kt b/src/com/android/settings/spa/app/appinfo/AppLocalePreference.kt
index 2d6fbb6..3b2aace 100644
--- a/src/com/android/settings/spa/app/appinfo/AppLocalePreference.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppLocalePreference.kt
@@ -23,15 +23,16 @@
 import android.content.pm.PackageManager.ResolveInfoFlags
 import android.net.Uri
 import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
 import androidx.compose.runtime.remember
 import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.res.stringResource
+import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.settings.R
 import com.android.settings.applications.AppInfoBase
 import com.android.settings.applications.AppLocaleUtil
 import com.android.settings.applications.appinfo.AppLocaleDetails
 import com.android.settings.localepicker.AppLocalePickerActivity
-import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.settingslib.spa.widget.preference.Preference
 import com.android.settingslib.spa.widget.preference.PreferenceModel
 import com.android.settingslib.spaprivileged.model.app.userHandle
@@ -46,11 +47,12 @@
     val presenter = remember { AppLocalePresenter(context, app) }
     if (!presenter.isAvailableFlow.collectAsStateWithLifecycle(initialValue = false).value) return
 
+    val summary by presenter.summaryFlow.collectAsStateWithLifecycle(
+        initialValue = stringResource(R.string.summary_placeholder),
+    )
     Preference(object : PreferenceModel {
         override val title = stringResource(R.string.app_locale_preference_title)
-        override val summary = presenter.summaryFlow.collectAsStateWithLifecycle(
-            initialValue = stringResource(R.string.summary_placeholder),
-        )
+        override val summary = { summary }
         override val onClick = presenter::startActivity
     })
 }
diff --git a/src/com/android/settings/spa/app/appinfo/AppNotificationPreference.kt b/src/com/android/settings/spa/app/appinfo/AppNotificationPreference.kt
index 45033e7..28527c1 100644
--- a/src/com/android/settings/spa/app/appinfo/AppNotificationPreference.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppNotificationPreference.kt
@@ -19,6 +19,7 @@
 import android.content.Context
 import android.content.pm.ApplicationInfo
 import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
 import androidx.compose.runtime.remember
 import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.res.stringResource
@@ -29,7 +30,6 @@
 import com.android.settings.spa.notification.AppNotificationRepository
 import com.android.settings.spa.notification.IAppNotificationRepository
 import com.android.settingslib.spa.framework.compose.rememberContext
-import com.android.settingslib.spa.framework.compose.stateOf
 import com.android.settingslib.spa.widget.preference.Preference
 import com.android.settingslib.spa.widget.preference.PreferenceModel
 import com.android.settingslib.spaprivileged.model.app.installed
@@ -43,17 +43,17 @@
     repository: IAppNotificationRepository = rememberContext(::AppNotificationRepository),
 ) {
     val context = LocalContext.current
-    val summaryFlow = remember(app) {
+    val summary by remember(app) {
         flow {
             emit(repository.getNotificationSummary(app))
-        }.flowOn(Dispatchers.IO)
-    }
+        }.flowOn(Dispatchers.Default)
+    }.collectAsStateWithLifecycle(
+        initialValue = stringResource(R.string.summary_placeholder)
+    )
     Preference(object : PreferenceModel {
         override val title = stringResource(R.string.notifications_label)
-        override val summary = summaryFlow.collectAsStateWithLifecycle(
-            initialValue = stringResource(R.string.summary_placeholder)
-        )
-        override val enabled = stateOf(app.installed)
+        override val summary = { summary }
+        override val enabled = { app.installed }
         override val onClick = { navigateToAppNotificationSettings(context, app) }
     })
 }
@@ -65,4 +65,4 @@
         context,
         AppInfoSettingsProvider.METRICS_CATEGORY,
     )
-}
\ No newline at end of file
+}
diff --git a/src/com/android/settings/spa/app/appinfo/AppOpenByDefaultPreference.kt b/src/com/android/settings/spa/app/appinfo/AppOpenByDefaultPreference.kt
index 757ddc2..aae9569 100644
--- a/src/com/android/settings/spa/app/appinfo/AppOpenByDefaultPreference.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppOpenByDefaultPreference.kt
@@ -19,6 +19,7 @@
 import android.content.Context
 import android.content.pm.ApplicationInfo
 import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
 import androidx.compose.runtime.remember
 import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.res.stringResource
@@ -28,7 +29,6 @@
 import com.android.settings.applications.intentpicker.AppLaunchSettings
 import com.android.settings.applications.intentpicker.IntentPickerUtils
 import com.android.settingslib.applications.AppUtils
-import com.android.settingslib.spa.framework.compose.stateOf
 import com.android.settingslib.spa.widget.preference.Preference
 import com.android.settingslib.spa.widget.preference.PreferenceModel
 import com.android.settingslib.spaprivileged.framework.common.asUser
@@ -46,12 +46,13 @@
     val presenter = remember(app) { AppOpenByDefaultPresenter(context, app) }
     if (remember(presenter) { !presenter.isAvailable() }) return
 
+    val summary by presenter.summaryFlow.collectAsStateWithLifecycle(
+        initialValue = stringResource(R.string.summary_placeholder),
+    )
     Preference(object : PreferenceModel {
         override val title = stringResource(R.string.launch_by_default)
-        override val summary = presenter.summaryFlow.collectAsStateWithLifecycle(
-            initialValue = stringResource(R.string.summary_placeholder),
-        )
-        override val enabled = stateOf(presenter.isEnabled())
+        override val summary = { summary }
+        override val enabled = { presenter.isEnabled() }
         override val onClick = presenter::startActivity
     })
 }
diff --git a/src/com/android/settings/spa/app/appinfo/AppPermissionPreference.kt b/src/com/android/settings/spa/app/appinfo/AppPermissionPreference.kt
index ad666dc..ec1780f 100644
--- a/src/com/android/settings/spa/app/appinfo/AppPermissionPreference.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppPermissionPreference.kt
@@ -22,7 +22,6 @@
 import android.content.pm.ApplicationInfo
 import android.util.Log
 import androidx.compose.runtime.Composable
-import androidx.compose.runtime.derivedStateOf
 import androidx.compose.runtime.livedata.observeAsState
 import androidx.compose.runtime.remember
 import androidx.compose.ui.platform.LocalContext
@@ -52,8 +51,8 @@
         model = remember {
             object : PreferenceModel {
                 override val title = context.getString(R.string.permissions_label)
-                override val summary = derivedStateOf { summaryState.value.summary }
-                override val enabled = derivedStateOf { summaryState.value.enabled }
+                override val summary = { summaryState.value.summary }
+                override val enabled = { summaryState.value.enabled }
                 override val onClick = { startManagePermissionsActivity(context, app) }
             }
         },
diff --git a/src/com/android/settings/spa/app/appinfo/AppStoragePreference.kt b/src/com/android/settings/spa/app/appinfo/AppStoragePreference.kt
index e8b1018..2b96454 100644
--- a/src/com/android/settings/spa/app/appinfo/AppStoragePreference.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppStoragePreference.kt
@@ -19,9 +19,6 @@
 import android.content.Context
 import android.content.pm.ApplicationInfo
 import androidx.compose.runtime.Composable
-import androidx.compose.runtime.State
-import androidx.compose.runtime.derivedStateOf
-import androidx.compose.runtime.remember
 import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.res.stringResource
 import com.android.settings.R
@@ -47,12 +44,13 @@
 }
 
 @Composable
-private fun getSummary(context: Context, app: ApplicationInfo): State<String> {
+private fun getSummary(context: Context, app: ApplicationInfo): () -> String {
     val sizeState = app.getStorageSize()
-    return remember {
-        derivedStateOf {
-            val size = sizeState.value
-            if (size.isBlank()) return@derivedStateOf context.getString(R.string.computing_size)
+    return {
+        val size = sizeState.value
+        if (size.isBlank()) {
+            context.getString(R.string.computing_size)
+        } else {
             val storageType = context.getString(
                 when (app.hasFlag(ApplicationInfo.FLAG_EXTERNAL_STORAGE)) {
                     true -> R.string.storage_type_external
diff --git a/src/com/android/settings/spa/app/appinfo/AppTimeSpentPreference.kt b/src/com/android/settings/spa/app/appinfo/AppTimeSpentPreference.kt
index 21b3d73..7ba61dc 100644
--- a/src/com/android/settings/spa/app/appinfo/AppTimeSpentPreference.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppTimeSpentPreference.kt
@@ -22,6 +22,7 @@
 import android.content.pm.PackageManager.ResolveInfoFlags
 import android.provider.Settings
 import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
 import androidx.compose.runtime.livedata.observeAsState
 import androidx.compose.runtime.remember
 import androidx.compose.ui.platform.LocalContext
@@ -29,7 +30,6 @@
 import androidx.lifecycle.liveData
 import com.android.settings.R
 import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
-import com.android.settingslib.spa.framework.compose.stateOf
 import com.android.settingslib.spa.widget.preference.Preference
 import com.android.settingslib.spa.widget.preference.PreferenceModel
 import com.android.settingslib.spaprivileged.model.app.hasFlag
@@ -43,12 +43,13 @@
     val presenter = remember { AppTimeSpentPresenter(context, app) }
     if (!presenter.isAvailable()) return
 
+    val summary by presenter.summaryLiveData.observeAsState(
+        initial = stringResource(R.string.summary_placeholder),
+    )
     Preference(object : PreferenceModel {
         override val title = stringResource(R.string.time_spent_in_app_pref_title)
-        override val summary = presenter.summaryLiveData.observeAsState(
-            initial = stringResource(R.string.summary_placeholder),
-        )
-        override val enabled = stateOf(presenter.isEnabled())
+        override val summary = { summary }
+        override val enabled = { presenter.isEnabled() }
         override val onClick = presenter::startActivity
     })
 }
diff --git a/src/com/android/settings/spa/app/appinfo/DefaultAppShortcutPreference.kt b/src/com/android/settings/spa/app/appinfo/DefaultAppShortcutPreference.kt
index 74c0aa4..51f6845 100644
--- a/src/com/android/settings/spa/app/appinfo/DefaultAppShortcutPreference.kt
+++ b/src/com/android/settings/spa/app/appinfo/DefaultAppShortcutPreference.kt
@@ -22,6 +22,7 @@
 import android.content.pm.ApplicationInfo
 import androidx.annotation.StringRes
 import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
 import androidx.compose.runtime.livedata.observeAsState
 import androidx.compose.runtime.remember
 import androidx.compose.ui.platform.LocalContext
@@ -57,11 +58,12 @@
     if (remember(presenter) { !presenter.isAvailable() }) return
     if (presenter.isVisible().observeAsState().value != true) return
 
+    val summary by presenter.summaryFlow.collectAsStateWithLifecycle(
+        initialValue = stringResource(R.string.summary_placeholder),
+    )
     Preference(object : PreferenceModel {
         override val title = stringResource(shortcut.titleResId)
-        override val summary = presenter.summaryFlow.collectAsStateWithLifecycle(
-            initialValue = stringResource(R.string.summary_placeholder),
-        )
+        override val summary = { summary }
         override val onClick = presenter::startActivity
     })
 }
diff --git a/src/com/android/settings/spa/app/appinfo/HibernationSwitchPreference.kt b/src/com/android/settings/spa/app/appinfo/HibernationSwitchPreference.kt
index f62a3be..78ca15b 100644
--- a/src/com/android/settings/spa/app/appinfo/HibernationSwitchPreference.kt
+++ b/src/com/android/settings/spa/app/appinfo/HibernationSwitchPreference.kt
@@ -28,15 +28,14 @@
 import android.provider.DeviceConfig
 import android.provider.DeviceConfig.NAMESPACE_APP_HIBERNATION
 import androidx.compose.runtime.Composable
-import androidx.compose.runtime.derivedStateOf
+import androidx.compose.runtime.getValue
 import androidx.compose.runtime.remember
 import androidx.compose.ui.platform.LocalContext
+import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.settings.R
 import com.android.settings.Utils.PROPERTY_APP_HIBERNATION_ENABLED
 import com.android.settings.Utils.PROPERTY_HIBERNATION_TARGETS_PRE_S_APPS
 import com.android.settingslib.spa.framework.compose.OverridableFlow
-import androidx.lifecycle.compose.collectAsStateWithLifecycle
-import com.android.settingslib.spa.framework.compose.stateOf
 import com.android.settingslib.spa.widget.preference.SwitchPreference
 import com.android.settingslib.spa.widget.preference.SwitchPreferenceModel
 import com.android.settingslib.spaprivileged.framework.common.appHibernationManager
@@ -44,12 +43,12 @@
 import com.android.settingslib.spaprivileged.framework.common.asUser
 import com.android.settingslib.spaprivileged.framework.common.permissionControllerManager
 import com.android.settingslib.spaprivileged.model.app.userHandle
+import kotlin.coroutines.resume
+import kotlin.coroutines.suspendCoroutine
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.asExecutor
 import kotlinx.coroutines.flow.flow
 import kotlinx.coroutines.withContext
-import kotlin.coroutines.resume
-import kotlin.coroutines.suspendCoroutine
 
 @Composable
 fun HibernationSwitchPreference(app: ApplicationInfo) {
@@ -57,18 +56,14 @@
     val presenter = remember { HibernationSwitchPresenter(context, app) }
     if (!presenter.isAvailable()) return
 
-    val isEligibleState = presenter.isEligibleFlow.collectAsStateWithLifecycle(initialValue = false)
+    val isEligibleState by presenter.isEligibleFlow.collectAsStateWithLifecycle(initialValue = false)
     val isCheckedState = presenter.isCheckedFlow.collectAsStateWithLifecycle(initialValue = null)
     SwitchPreference(remember {
         object : SwitchPreferenceModel {
             override val title = context.getString(R.string.unused_apps_switch)
-            override val summary = stateOf(context.getString(R.string.unused_apps_switch_summary))
-            override val changeable = isEligibleState
-
-            override val checked = derivedStateOf {
-                if (!changeable.value) false else isCheckedState.value
-            }
-
+            override val summary = { context.getString(R.string.unused_apps_switch_summary) }
+            override val changeable = { isEligibleState }
+            override val checked = { if (changeable()) isCheckedState.value else false }
             override val onCheckedChange = presenter::onCheckedChange
         }
     })
diff --git a/src/com/android/settings/spa/app/appinfo/InstantAppDomainsPreference.kt b/src/com/android/settings/spa/app/appinfo/InstantAppDomainsPreference.kt
index 7b9480d..9c3ec97 100644
--- a/src/com/android/settings/spa/app/appinfo/InstantAppDomainsPreference.kt
+++ b/src/com/android/settings/spa/app/appinfo/InstantAppDomainsPreference.kt
@@ -32,9 +32,9 @@
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.res.stringResource
+import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.settings.R
 import com.android.settings.Utils
-import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.settingslib.spa.framework.theme.SettingsDimension
 import com.android.settingslib.spa.widget.preference.Preference
 import com.android.settingslib.spa.widget.preference.PreferenceModel
@@ -53,11 +53,12 @@
     val presenter = remember { InstantAppDomainsPresenter(context, app) }
     var openDialog by rememberSaveable { mutableStateOf(false) }
 
+    val summary by presenter.summaryFlow.collectAsStateWithLifecycle(
+        initialValue = stringResource(R.string.summary_placeholder),
+    )
     Preference(object : PreferenceModel {
         override val title = stringResource(R.string.app_launch_supported_domain_urls_title)
-        override val summary = presenter.summaryFlow.collectAsStateWithLifecycle(
-            initialValue = stringResource(R.string.summary_placeholder),
-        )
+        override val summary = { summary }
         override val onClick = { openDialog = true }
     })
 
diff --git a/src/com/android/settings/spa/app/appinfo/InteractAcrossProfilesDetailsPreference.kt b/src/com/android/settings/spa/app/appinfo/InteractAcrossProfilesDetailsPreference.kt
index 12f6907..905e057 100644
--- a/src/com/android/settings/spa/app/appinfo/InteractAcrossProfilesDetailsPreference.kt
+++ b/src/com/android/settings/spa/app/appinfo/InteractAcrossProfilesDetailsPreference.kt
@@ -19,13 +19,14 @@
 import android.content.Context
 import android.content.pm.ApplicationInfo
 import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
 import androidx.compose.runtime.remember
 import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.res.stringResource
+import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.settings.R
 import com.android.settings.applications.appinfo.AppInfoDashboardFragment
 import com.android.settings.applications.specialaccess.interactacrossprofiles.InteractAcrossProfilesDetails
-import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.settingslib.spa.widget.preference.Preference
 import com.android.settingslib.spa.widget.preference.PreferenceModel
 import com.android.settingslib.spaprivileged.framework.common.crossProfileApps
@@ -39,11 +40,12 @@
     val presenter = remember { InteractAcrossProfilesDetailsPresenter(context, app) }
     if (!presenter.isAvailableFlow.collectAsStateWithLifecycle(initialValue = false).value) return
 
+    val summary by presenter.summaryFlow.collectAsStateWithLifecycle(
+        initialValue = stringResource(R.string.summary_placeholder),
+    )
     Preference(object : PreferenceModel {
         override val title = stringResource(R.string.interact_across_profiles_title)
-        override val summary = presenter.summaryFlow.collectAsStateWithLifecycle(
-            initialValue = stringResource(R.string.summary_placeholder),
-        )
+        override val summary = { summary }
         override val onClick = presenter::startActivity
     })
 }
diff --git a/src/com/android/settings/spa/app/appinfo/PackageInfoPresenter.kt b/src/com/android/settings/spa/app/appinfo/PackageInfoPresenter.kt
index 98a3e66..6eee72e 100644
--- a/src/com/android/settings/spa/app/appinfo/PackageInfoPresenter.kt
+++ b/src/com/android/settings/spa/app/appinfo/PackageInfoPresenter.kt
@@ -20,6 +20,8 @@
 import android.content.Context
 import android.content.Intent
 import android.content.IntentFilter
+import android.content.pm.FeatureFlags
+import android.content.pm.FeatureFlagsImpl
 import android.content.pm.PackageInfo
 import android.content.pm.PackageManager
 import android.os.UserHandle
@@ -50,6 +52,7 @@
     val userId: Int,
     private val coroutineScope: CoroutineScope,
     private val packageManagers: IPackageManagers = PackageManagers,
+    private val featureFlags: FeatureFlags = FeatureFlagsImpl(),
 ) {
     private val metricsFeatureProvider = featureFactory.metricsFeatureProvider
     private val userHandle = UserHandle.of(userId)
@@ -141,9 +144,10 @@
     private fun getPackageInfo() =
         packageManagers.getPackageInfoAsUser(
             packageName = packageName,
-            flags = PackageManager.MATCH_ANY_USER or
-                PackageManager.MATCH_DISABLED_COMPONENTS or
-                PackageManager.GET_PERMISSIONS,
+            flags = PackageManager.MATCH_ANY_USER.toLong() or
+                PackageManager.MATCH_DISABLED_COMPONENTS.toLong() or
+                PackageManager.GET_PERMISSIONS.toLong() or
+                if (featureFlags.archiving()) PackageManager.MATCH_ARCHIVED_PACKAGES else 0,
             userId = userId,
         )
 }
diff --git a/src/com/android/settings/spa/app/appinfo/TopBarAppLaunchButton.kt b/src/com/android/settings/spa/app/appinfo/TopBarAppLaunchButton.kt
new file mode 100644
index 0000000..92ad139
--- /dev/null
+++ b/src/com/android/settings/spa/app/appinfo/TopBarAppLaunchButton.kt
@@ -0,0 +1,59 @@
+/*
+ * 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.spa.app.appinfo
+
+import android.content.ActivityNotFoundException
+import android.content.Intent
+import android.content.pm.ApplicationInfo
+import androidx.compose.material.icons.Icons
+import androidx.compose.material.icons.automirrored.outlined.Launch
+import androidx.compose.material3.Icon
+import androidx.compose.material3.IconButton
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.res.stringResource
+import com.android.settings.R
+import com.android.settingslib.spaprivileged.model.app.userHandle
+
+@Composable
+fun TopBarAppLaunchButton(packageInfoPresenter: PackageInfoPresenter, app: ApplicationInfo) {
+    val intent = packageInfoPresenter.launchIntent(app = app) ?: return
+    IconButton({ launchButtonAction(intent, app, packageInfoPresenter) }) {
+        Icon(
+            imageVector = Icons.AutoMirrored.Outlined.Launch,
+            contentDescription = stringResource(R.string.launch_instant_app),
+        )
+    }
+}
+
+private fun PackageInfoPresenter.launchIntent(
+    app: ApplicationInfo
+): Intent? {
+    return userPackageManager.getLaunchIntentForPackage(app.packageName)
+}
+
+private fun launchButtonAction(
+    intent: Intent,
+    app: ApplicationInfo,
+    packageInfoPresenter: PackageInfoPresenter
+) {
+    try {
+        packageInfoPresenter.context.startActivityAsUser(intent, app.userHandle)
+    } catch (_: ActivityNotFoundException) {
+        // Only happens after package changes like uninstall, and before page auto refresh or
+        // close, so ignore this exception is safe.
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/spa/app/backgroundinstall/BackgroundInstalledAppsPageProvider.kt b/src/com/android/settings/spa/app/backgroundinstall/BackgroundInstalledAppsPageProvider.kt
index 6e0643b..89f473b 100644
--- a/src/com/android/settings/spa/app/backgroundinstall/BackgroundInstalledAppsPageProvider.kt
+++ b/src/com/android/settings/spa/app/backgroundinstall/BackgroundInstalledAppsPageProvider.kt
@@ -32,6 +32,7 @@
 import androidx.compose.material.icons.outlined.Delete
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.State
+import androidx.compose.runtime.getValue
 import androidx.compose.runtime.produceState
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.platform.LocalContext
@@ -88,9 +89,10 @@
     @Composable
     fun EntryItem() {
         if(featureIsDisabled) return
+        val summary by generatePreferenceSummary()
         Preference(object : PreferenceModel {
             override val title = stringResource(R.string.background_install_title)
-            override val summary = generatePreferenceSummary()
+            override val summary = { summary }
             override val onClick = navigator(name)
         })
     }
diff --git a/src/com/android/settings/spa/app/specialaccess/AlarmsAndRemindersAppList.kt b/src/com/android/settings/spa/app/specialaccess/AlarmsAndRemindersAppList.kt
index c31eb7a..c990927 100644
--- a/src/com/android/settings/spa/app/specialaccess/AlarmsAndRemindersAppList.kt
+++ b/src/com/android/settings/spa/app/specialaccess/AlarmsAndRemindersAppList.kt
@@ -24,10 +24,9 @@
 import android.content.pm.ApplicationInfo
 import android.os.PowerExemptionManager
 import androidx.compose.runtime.Composable
-import androidx.compose.runtime.livedata.observeAsState
 import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
 import com.android.settingslib.R
-import com.android.settingslib.spa.framework.compose.stateOf
+import com.android.settingslib.spa.livedata.observeAsCallback
 import com.android.settingslib.spaprivileged.model.app.AppRecord
 import com.android.settingslib.spaprivileged.model.app.IPackageManagers
 import com.android.settingslib.spaprivileged.model.app.PackageManagers
@@ -79,9 +78,10 @@
     }
 
     @Composable
-    override fun isAllowed(record: AlarmsAndRemindersAppRecord) =
-        if (record.isTrumped) stateOf(true)
-        else record.controller.isAllowed.observeAsState()
+    override fun isAllowed(record: AlarmsAndRemindersAppRecord): () -> Boolean? = when {
+        record.isTrumped -> ({ true })
+        else -> record.controller.isAllowed.observeAsCallback()
+    }
 
     override fun isChangeable(record: AlarmsAndRemindersAppRecord) = record.isChangeable
 
diff --git a/src/com/android/settings/spa/app/specialaccess/InstallUnknownApps.kt b/src/com/android/settings/spa/app/specialaccess/InstallUnknownApps.kt
index c98b2ee..7f63e38 100644
--- a/src/com/android/settings/spa/app/specialaccess/InstallUnknownApps.kt
+++ b/src/com/android/settings/spa/app/specialaccess/InstallUnknownApps.kt
@@ -24,8 +24,8 @@
 import android.content.pm.ApplicationInfo
 import android.os.UserManager
 import androidx.compose.runtime.Composable
-import androidx.compose.runtime.livedata.observeAsState
 import com.android.settings.R
+import com.android.settingslib.spa.livedata.observeAsCallback
 import com.android.settingslib.spaprivileged.model.app.AppOpsController
 import com.android.settingslib.spaprivileged.model.app.AppRecord
 import com.android.settingslib.spaprivileged.model.app.userId
@@ -79,7 +79,7 @@
 
     @Composable
     override fun isAllowed(record: InstallUnknownAppsRecord) =
-        record.appOpsController.isAllowed.observeAsState()
+        record.appOpsController.isAllowed.observeAsCallback()
 
     override fun isChangeable(record: InstallUnknownAppsRecord) =
         isChangeable(record, getPotentialPackageNames(record.app.userId))
diff --git a/src/com/android/settings/spa/app/specialaccess/LongBackgroundTasksApps.kt b/src/com/android/settings/spa/app/specialaccess/LongBackgroundTasksApps.kt
new file mode 100644
index 0000000..3ba9b08
--- /dev/null
+++ b/src/com/android/settings/spa/app/specialaccess/LongBackgroundTasksApps.kt
@@ -0,0 +1,54 @@
+/*
+ * 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.spa.app.specialaccess
+
+import android.Manifest
+import android.app.AppOpsManager
+import android.app.settings.SettingsEnums
+import android.content.Context
+import com.android.settings.R
+import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
+import com.android.settingslib.spaprivileged.template.app.AppOpPermissionListModel
+import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord
+import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListProvider
+
+object LongBackgroundTasksAppListProvider : TogglePermissionAppListProvider {
+    override val permissionType = "LongBackgroundTasksApps"
+    override fun createModel(context: Context) = LongBackgroundTasksAppsListModel(context)
+}
+
+class LongBackgroundTasksAppsListModel(context: Context) : AppOpPermissionListModel(context) {
+    override val pageTitleResId = R.string.long_background_tasks_title
+    override val switchTitleResId = R.string.long_background_tasks_switch_title
+    override val footerResId = R.string.long_background_tasks_footer_title
+    override val appOp = AppOpsManager.OP_RUN_USER_INITIATED_JOBS
+    override val permission = Manifest.permission.RUN_USER_INITIATED_JOBS
+    override val setModeByUid = true
+
+    override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) {
+        super.setAllowed(record, newAllowed)
+        logPermissionChange(newAllowed)
+    }
+
+    private fun logPermissionChange(newAllowed: Boolean) {
+        featureFactory.metricsFeatureProvider.action(
+            context,
+            SettingsEnums.ACTION_LONG_BACKGROUND_TASKS_TOGGLE,
+            if (newAllowed) 1 else 0
+        )
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/spa/app/specialaccess/NfcTagAppsSettings.kt b/src/com/android/settings/spa/app/specialaccess/NfcTagAppsSettings.kt
index 3dede42..f02a6a1 100644
--- a/src/com/android/settings/spa/app/specialaccess/NfcTagAppsSettings.kt
+++ b/src/com/android/settings/spa/app/specialaccess/NfcTagAppsSettings.kt
@@ -23,8 +23,8 @@
 import android.nfc.NfcAdapter
 import android.util.Log
 import androidx.compose.runtime.Composable
-import androidx.compose.runtime.livedata.observeAsState
 import com.android.settings.R
+import com.android.settingslib.spa.livedata.observeAsCallback
 import com.android.settingslib.spaprivileged.model.app.AppRecord
 import com.android.settingslib.spaprivileged.model.app.userId
 import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListModel
@@ -100,7 +100,7 @@
 
     @Composable
     override fun isAllowed(record: NfcTagAppsSettingsRecord) =
-        record.controller.isAllowed.observeAsState()
+        record.controller.isAllowed.observeAsCallback()
 
     override fun isChangeable(record: NfcTagAppsSettingsRecord) = true
 
diff --git a/src/com/android/settings/spa/app/specialaccess/PictureInPicture.kt b/src/com/android/settings/spa/app/specialaccess/PictureInPicture.kt
index 5ed3615..cd615919 100644
--- a/src/com/android/settings/spa/app/specialaccess/PictureInPicture.kt
+++ b/src/com/android/settings/spa/app/specialaccess/PictureInPicture.kt
@@ -25,8 +25,8 @@
 import android.content.pm.PackageManager.PackageInfoFlags
 import android.util.Log
 import androidx.compose.runtime.Composable
-import androidx.compose.runtime.livedata.observeAsState
 import com.android.settings.R
+import com.android.settingslib.spa.livedata.observeAsCallback
 import com.android.settingslib.spaprivileged.model.app.AppOpsController
 import com.android.settingslib.spaprivileged.model.app.AppRecord
 import com.android.settingslib.spaprivileged.model.app.installed
@@ -90,7 +90,7 @@
 
     @Composable
     override fun isAllowed(record: PictureInPictureRecord) =
-        record.appOpsController.isAllowed.observeAsState()
+        record.appOpsController.isAllowed.observeAsCallback()
 
     override fun isChangeable(record: PictureInPictureRecord) = record.isSupport
 
diff --git a/src/com/android/settings/spa/app/specialaccess/SpecialAppAccess.kt b/src/com/android/settings/spa/app/specialaccess/SpecialAppAccess.kt
index b40e32b..fb05a38 100644
--- a/src/com/android/settings/spa/app/specialaccess/SpecialAppAccess.kt
+++ b/src/com/android/settings/spa/app/specialaccess/SpecialAppAccess.kt
@@ -66,7 +66,10 @@
                 PictureInPictureListProvider,
                 InstallUnknownAppsListProvider,
                 AlarmsAndRemindersAppListProvider,
+                VoiceActivationAppsListProvider,
                 WifiControlAppListProvider,
+                LongBackgroundTasksAppListProvider,
+                TurnScreenOnAppsAppListProvider,
             )
             .map { it.buildAppListInjectEntry().setLink(fromPage = owner).build() }
     }
diff --git a/src/com/android/settings/spa/app/specialaccess/TurnScreenOnApps.kt b/src/com/android/settings/spa/app/specialaccess/TurnScreenOnApps.kt
new file mode 100644
index 0000000..262acb7
--- /dev/null
+++ b/src/com/android/settings/spa/app/specialaccess/TurnScreenOnApps.kt
@@ -0,0 +1,54 @@
+/*
+ * 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.spa.app.specialaccess
+
+import android.Manifest
+import android.app.AppOpsManager
+import android.app.settings.SettingsEnums
+import android.content.Context
+import com.android.settings.R
+import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
+import com.android.settingslib.spaprivileged.template.app.AppOpPermissionListModel
+import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord
+import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListProvider
+
+object TurnScreenOnAppsAppListProvider : TogglePermissionAppListProvider {
+    override val permissionType = "TurnScreenOnApps"
+    override fun createModel(context: Context) = TurnScreenOnAppsListModel(context)
+}
+
+class TurnScreenOnAppsListModel(context: Context) : AppOpPermissionListModel(context) {
+    override val pageTitleResId = com.android.settingslib.R.string.turn_screen_on_title
+    override val switchTitleResId = com.android.settingslib.R.string.allow_turn_screen_on
+    override val footerResId = com.android.settingslib.R.string.allow_turn_screen_on_description
+    override val appOp = AppOpsManager.OP_TURN_SCREEN_ON
+    override val permission = Manifest.permission.TURN_SCREEN_ON
+    override val setModeByUid = true
+
+    override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) {
+        super.setAllowed(record, newAllowed)
+        logPermissionChange(newAllowed)
+    }
+
+    private fun logPermissionChange(newAllowed: Boolean) {
+        featureFactory.metricsFeatureProvider.action(
+            context,
+            SettingsEnums.SETTINGS_MANAGE_TURN_SCREEN_ON,
+            if (newAllowed) 1 else 0
+        )
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/spa/app/specialaccess/VoiceActivationApps.kt b/src/com/android/settings/spa/app/specialaccess/VoiceActivationApps.kt
new file mode 100644
index 0000000..1225806
--- /dev/null
+++ b/src/com/android/settings/spa/app/specialaccess/VoiceActivationApps.kt
@@ -0,0 +1,67 @@
+/*
+ * 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.spa.app.specialaccess
+
+import android.Manifest
+import android.app.AppOpsManager
+import android.app.settings.SettingsEnums
+import android.content.Context
+import com.android.settings.R
+import com.android.settings.overlay.FeatureFactory
+import com.android.settingslib.spaprivileged.model.app.PackageManagers.hasGrantPermission
+import com.android.settingslib.spaprivileged.template.app.AppOpPermissionListModel
+import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord
+import com.android.settingslib.spaprivileged.template.app.TogglePermissionAppListProvider
+
+/**
+ * This class builds an App List under voice activation apps and the individual page which
+ * allows the user to toggle voice activation related permissions on / off for the apps displayed
+ * in the list.
+ */
+object VoiceActivationAppsListProvider : TogglePermissionAppListProvider {
+    override val permissionType = "VoiceActivationApps"
+    override fun createModel(context: Context) = VoiceActivationAppsListModel(context)
+}
+
+class VoiceActivationAppsListModel(context: Context) : AppOpPermissionListModel(context) {
+    override val pageTitleResId = R.string.voice_activation_apps_title
+    override val switchTitleResId = R.string.permit_voice_activation_apps
+    override val footerResId = R.string.allow_voice_activation_apps_description
+    override val appOp = AppOpsManager.OP_RECEIVE_SANDBOX_TRIGGER_AUDIO
+    override val permission = Manifest.permission.RECEIVE_SANDBOX_TRIGGER_AUDIO
+    override val setModeByUid = true
+
+    override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) {
+        super.setAllowed(record, newAllowed)
+        logPermissionChange(newAllowed)
+    }
+
+    override fun isChangeable(record: AppOpPermissionRecord): Boolean =
+        super.isChangeable(record) && record.app.hasGrantPermission(permission)
+
+    private fun logPermissionChange(newAllowed: Boolean) {
+        val category = when {
+            newAllowed -> SettingsEnums.APP_SPECIAL_PERMISSION_RECEIVE_SANDBOX_TRIGGER_AUDIO_ALLOW
+            else -> SettingsEnums.APP_SPECIAL_PERMISSION_RECEIVE_SANDBOX_TRIGGER_AUDIO_DENY
+        }
+        /**
+         * Leave the package string empty as we should not log the package names for the collected
+         * metrics.
+         */
+        FeatureFactory.featureFactory.metricsFeatureProvider.action(context, category, "")
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/spa/app/specialaccess/VoiceActivationAppsPreferenceController.kt b/src/com/android/settings/spa/app/specialaccess/VoiceActivationAppsPreferenceController.kt
new file mode 100644
index 0000000..27d4b4b
--- /dev/null
+++ b/src/com/android/settings/spa/app/specialaccess/VoiceActivationAppsPreferenceController.kt
@@ -0,0 +1,38 @@
+/*
+ * 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.spa.app.specialaccess
+
+import android.content.Context
+import androidx.preference.Preference
+import com.android.settings.core.BasePreferenceController
+import com.android.settings.flags.Flags
+import com.android.settings.spa.SpaActivity.Companion.startSpaActivity
+
+class VoiceActivationAppsPreferenceController(context: Context, preferenceKey: String) :
+        BasePreferenceController(context, preferenceKey) {
+    override fun getAvailabilityStatus() =
+        if (Flags.enableVoiceActivationAppsInSettings()) AVAILABLE
+        else CONDITIONALLY_UNAVAILABLE
+
+    override fun handlePreferenceTreeClick(preference: Preference): Boolean {
+        if (preference.key == mPreferenceKey) {
+            mContext.startSpaActivity(VoiceActivationAppsListProvider.getAppListRoute())
+            return true
+        }
+        return false
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/spa/app/storage/StorageAppList.kt b/src/com/android/settings/spa/app/storage/StorageAppList.kt
index 8fc3eb5..c33de33 100644
--- a/src/com/android/settings/spa/app/storage/StorageAppList.kt
+++ b/src/com/android/settings/spa/app/storage/StorageAppList.kt
@@ -22,7 +22,7 @@
 import androidx.annotation.StringRes
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.State
-import androidx.compose.runtime.derivedStateOf
+import androidx.compose.runtime.getValue
 import androidx.compose.runtime.remember
 import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.res.stringResource
@@ -121,13 +121,9 @@
     ): Flow<List<AppRecordWithSize>> = recordListFlow.filterItem { type.filter(it) }
 
     @Composable
-    override fun getSummary(option: Int, record: AppRecordWithSize): State<String> {
-        val storageSummary = record.app.getStorageSummary()
-        return remember {
-            derivedStateOf {
-                storageSummary.value
-            }
-        }
+    override fun getSummary(option: Int, record: AppRecordWithSize): () -> String {
+        val storageSummary by record.app.getStorageSummary()
+        return { storageSummary }
     }
 
     @Composable
diff --git a/src/com/android/settings/spa/development/UsageStatsListModel.kt b/src/com/android/settings/spa/development/UsageStatsListModel.kt
index 61c24ac..d27796d 100644
--- a/src/com/android/settings/spa/development/UsageStatsListModel.kt
+++ b/src/com/android/settings/spa/development/UsageStatsListModel.kt
@@ -22,10 +22,8 @@
 import android.content.pm.ApplicationInfo
 import android.text.format.DateUtils
 import androidx.compose.runtime.Composable
-import androidx.compose.runtime.State
 import com.android.settings.R
 import com.android.settings.spa.development.UsageStatsListModel.SpinnerItem.Companion.toSpinnerItem
-import com.android.settingslib.spa.framework.compose.stateOf
 import com.android.settingslib.spa.widget.ui.SpinnerOption
 import com.android.settingslib.spaprivileged.model.app.AppEntry
 import com.android.settingslib.spaprivileged.model.app.AppListModel
@@ -55,7 +53,7 @@
         }
 
     override fun getSpinnerOptions(recordList: List<UsageStatsAppRecord>): List<SpinnerOption> =
-        SpinnerItem.values().map {
+        SpinnerItem.entries.map {
             SpinnerOption(
                 id = it.ordinal,
                 text = context.getString(it.stringResId),
@@ -77,7 +75,7 @@
     }.then(super.getComparator(option))
 
     @Composable
-    override fun getSummary(option: Int, record: UsageStatsAppRecord): State<String>? {
+    override fun getSummary(option: Int, record: UsageStatsAppRecord): (() -> String)? {
         val usageStats = record.usageStats ?: return null
         val lastTimeUsed = DateUtils.formatSameDayTime(
             usageStats.lastTimeUsed, now, DateFormat.MEDIUM, DateFormat.MEDIUM
@@ -85,7 +83,7 @@
         val lastTimeUsedLine = "${context.getString(R.string.last_time_used_label)}: $lastTimeUsed"
         val usageTime = DateUtils.formatElapsedTime(usageStats.totalTimeInForeground / 1000)
         val usageTimeLine = "${context.getString(R.string.usage_time_label)}: $usageTime"
-        return stateOf("$lastTimeUsedLine\n$usageTimeLine")
+        return { "$lastTimeUsedLine\n$usageTimeLine" }
     }
 
     private fun getUsageStats(): Map<String, UsageStats> {
@@ -101,7 +99,7 @@
         AppName(R.string.usage_stats_sort_by_app_name);
 
         companion object {
-            fun Int.toSpinnerItem(): SpinnerItem = values()[this]
+            fun Int.toSpinnerItem(): SpinnerItem = entries[this]
         }
     }
 }
diff --git a/src/com/android/settings/spa/development/compat/PlatformCompatAppListModel.kt b/src/com/android/settings/spa/development/compat/PlatformCompatAppListModel.kt
index c6752b9..8f53698 100644
--- a/src/com/android/settings/spa/development/compat/PlatformCompatAppListModel.kt
+++ b/src/com/android/settings/spa/development/compat/PlatformCompatAppListModel.kt
@@ -24,7 +24,6 @@
 import androidx.core.os.bundleOf
 import com.android.settings.core.SubSettingLauncher
 import com.android.settings.development.compat.PlatformCompatDashboard
-import com.android.settingslib.spa.framework.compose.stateOf
 import com.android.settingslib.spa.framework.util.filterItem
 import com.android.settingslib.spa.framework.util.mapItem
 import com.android.settingslib.spaprivileged.model.app.AppListModel
@@ -53,8 +52,9 @@
     }
 
     @Composable
-    override fun getSummary(option: Int, record: PlatformCompatAppRecord) =
-        stateOf(record.app.packageName)
+    override fun getSummary(option: Int, record: PlatformCompatAppRecord): () -> String = {
+        record.app.packageName
+    }
 
     @Composable
     override fun AppListItemModel<PlatformCompatAppRecord>.AppItem() {
diff --git a/src/com/android/settings/spa/network/AirplaneModePreference.kt b/src/com/android/settings/spa/network/AirplaneModePreference.kt
index 462c121..27261b6 100644
--- a/src/com/android/settings/spa/network/AirplaneModePreference.kt
+++ b/src/com/android/settings/spa/network/AirplaneModePreference.kt
@@ -20,8 +20,9 @@
 import androidx.compose.material.icons.Icons
 import androidx.compose.material.icons.outlined.AirplanemodeActive
 import androidx.compose.runtime.Composable
-import androidx.compose.runtime.remember
+import androidx.compose.runtime.getValue
 import androidx.compose.runtime.livedata.observeAsState
+import androidx.compose.runtime.remember
 import androidx.compose.ui.platform.LocalContext
 import androidx.lifecycle.LiveData
 import androidx.lifecycle.MutableLiveData
@@ -37,11 +38,12 @@
     val context = LocalContext.current
     val controller = remember { AirplaneModeController(context) }
     if (!controller.isAvailable()) return
+    val checked by controller.airplaneModeState.observeAsState(
+        initial = controller.isAirplaneModeOn()
+    )
     SwitchPreference(object : SwitchPreferenceModel {
         override val title = context.getString(R.string.airplane_mode)
-        override val checked = controller.airplaneModeState.observeAsState(
-            initial = controller.isAirplaneModeOn()
-        )
+        override val checked = { checked }
         override val onCheckedChange = { newChecked: Boolean ->
             controller.setChecked(newChecked)
         }
diff --git a/src/com/android/settings/spa/network/NetworkAndInternet.kt b/src/com/android/settings/spa/network/NetworkAndInternet.kt
index 777133e..f985237 100644
--- a/src/com/android/settings/spa/network/NetworkAndInternet.kt
+++ b/src/com/android/settings/spa/network/NetworkAndInternet.kt
@@ -34,7 +34,6 @@
 import com.android.settingslib.spa.framework.common.SpaEnvironmentFactory
 import com.android.settingslib.spa.framework.common.createSettingsPage
 import com.android.settingslib.spa.framework.compose.navigator
-import com.android.settingslib.spa.framework.compose.toState
 import com.android.settingslib.spa.widget.preference.Preference
 import com.android.settingslib.spa.widget.preference.PreferenceModel
 import com.android.settingslib.spa.widget.scaffold.RegularScaffold
@@ -60,9 +59,10 @@
     fun buildInjectEntry(): SettingsEntryBuilder {
         return SettingsEntryBuilder.createInject(owner = owner)
             .setUiLayoutFn {
+                val summary = stringResource(getSummaryResId())
                 Preference(object : PreferenceModel {
                     override val title = stringResource(R.string.network_dashboard_title)
-                    override val summary = stringResource(getSummaryResId()).toState()
+                    override val summary = { summary }
                     override val onClick = navigator(name)
                     override val icon = @Composable {
                         SettingsIcon(imageVector = Icons.Outlined.Wifi)
diff --git a/src/com/android/settings/spa/notification/AppListNotifications.kt b/src/com/android/settings/spa/notification/AppListNotifications.kt
index c1e5d64..00e4394 100644
--- a/src/com/android/settings/spa/notification/AppListNotifications.kt
+++ b/src/com/android/settings/spa/notification/AppListNotifications.kt
@@ -23,7 +23,6 @@
 import com.android.settingslib.spa.framework.common.SettingsPageProvider
 import com.android.settingslib.spa.framework.compose.navigator
 import com.android.settingslib.spa.framework.compose.rememberContext
-import com.android.settingslib.spa.framework.compose.toState
 import com.android.settingslib.spa.widget.preference.Preference
 import com.android.settingslib.spa.widget.preference.PreferenceModel
 import com.android.settingslib.spaprivileged.template.app.AppListPage
@@ -41,9 +40,10 @@
 
     @Composable
     fun EntryItem() {
+        val summary = stringResource(R.string.app_notification_field_summary)
         Preference(object : PreferenceModel {
             override val title = stringResource(R.string.app_notifications_title)
-            override val summary = stringResource(R.string.app_notification_field_summary).toState()
+            override val summary = { summary }
             override val onClick = navigator(name)
         })
     }
diff --git a/src/com/android/settings/spa/notification/AppNotificationsListModel.kt b/src/com/android/settings/spa/notification/AppNotificationsListModel.kt
index 0b9b676..2f3de3a 100644
--- a/src/com/android/settings/spa/notification/AppNotificationsListModel.kt
+++ b/src/com/android/settings/spa/notification/AppNotificationsListModel.kt
@@ -21,15 +21,15 @@
 import android.content.pm.ApplicationInfo
 import android.icu.text.RelativeDateTimeFormatter
 import androidx.compose.runtime.Composable
-import androidx.compose.runtime.livedata.observeAsState
+import androidx.compose.runtime.getValue
 import androidx.compose.runtime.produceState
 import com.android.settings.R
 import com.android.settings.applications.AppInfoBase
 import com.android.settings.notification.app.AppNotificationSettings
 import com.android.settings.spa.notification.SpinnerItem.Companion.toSpinnerItem
-import com.android.settingslib.spa.framework.compose.stateOf
 import com.android.settingslib.spa.framework.util.asyncFilter
 import com.android.settingslib.spa.framework.util.asyncForEach
+import com.android.settingslib.spa.livedata.observeAsCallback
 import com.android.settingslib.spa.widget.ui.SpinnerOption
 import com.android.settingslib.spaprivileged.model.app.AppEntry
 import com.android.settingslib.spaprivileged.model.app.AppListModel
@@ -37,9 +37,11 @@
 import com.android.settingslib.spaprivileged.template.app.AppListItemModel
 import com.android.settingslib.spaprivileged.template.app.AppListTwoTargetSwitchItem
 import com.android.settingslib.utils.StringUtil
+import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.combine
 import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.withContext
 
 data class AppNotificationsRecord(
     override val app: ApplicationInfo,
@@ -91,16 +93,17 @@
     }.then(super.getComparator(option))
 
     @Composable
-    override fun getSummary(option: Int, record: AppNotificationsRecord) = record.sentState?.let {
-        when (option.toSpinnerItem()) {
-            SpinnerItem.MostRecent -> stateOf(formatLastSent(it.lastSent))
-            SpinnerItem.MostFrequent -> stateOf(repository.calculateFrequencySummary(it.sentCount))
-            else -> null
+    override fun getSummary(option: Int, record: AppNotificationsRecord): (() -> String)? =
+        record.sentState?.let {
+            when (option.toSpinnerItem()) {
+                SpinnerItem.MostRecent -> ({ formatLastSent(it.lastSent) })
+                SpinnerItem.MostFrequent -> ({ repository.calculateFrequencySummary(it.sentCount) })
+                else -> null
+            }
         }
-    }
 
     override fun getSpinnerOptions(recordList: List<AppNotificationsRecord>): List<SpinnerOption> =
-        SpinnerItem.values().map {
+        SpinnerItem.entries.map {
             SpinnerOption(
                 id = it.ordinal,
                 text = context.getString(it.stringResId),
@@ -117,12 +120,15 @@
 
     @Composable
     override fun AppListItemModel<AppNotificationsRecord>.AppItem() {
+        val changeable by produceState(initialValue = false) {
+            withContext(Dispatchers.Default) {
+                value = repository.isChangeable(record.app)
+            }
+        }
         AppListTwoTargetSwitchItem(
             onClick = { navigateToAppNotificationSettings(app = record.app) },
-            checked = record.controller.isEnabled.observeAsState(),
-            changeable = produceState(initialValue = false) {
-                value = repository.isChangeable(record.app)
-            },
+            checked = record.controller.isEnabled.observeAsCallback(),
+            changeable = { changeable },
             onCheckedChange = record.controller::setEnabled,
         )
     }
@@ -145,6 +151,6 @@
     TurnedOff(R.string.filter_notif_blocked_apps);
 
     companion object {
-        fun Int.toSpinnerItem(): SpinnerItem = values()[this]
+        fun Int.toSpinnerItem(): SpinnerItem = entries[this]
     }
 }
diff --git a/src/com/android/settings/spa/notification/NotificationMain.kt b/src/com/android/settings/spa/notification/NotificationMain.kt
index 305f201..b3c7a55 100644
--- a/src/com/android/settings/spa/notification/NotificationMain.kt
+++ b/src/com/android/settings/spa/notification/NotificationMain.kt
@@ -25,13 +25,12 @@
 import com.android.settingslib.spa.framework.common.SettingsEntryBuilder
 import com.android.settingslib.spa.framework.common.SettingsPageProvider
 import com.android.settingslib.spa.framework.common.SpaEnvironmentFactory
+import com.android.settingslib.spa.framework.common.createSettingsPage
 import com.android.settingslib.spa.framework.compose.navigator
-import com.android.settingslib.spa.framework.compose.toState
 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.SettingsIcon
-import com.android.settingslib.spa.framework.common.createSettingsPage
 
 object NotificationMainPageProvider : SettingsPageProvider {
     override val name = "NotificationMain"
@@ -53,9 +52,10 @@
     fun buildInjectEntry(): SettingsEntryBuilder {
         return SettingsEntryBuilder.createInject(owner = owner)
             .setUiLayoutFn {
+                val summary = stringResource(R.string.notification_dashboard_summary)
                 Preference(object : PreferenceModel {
                     override val title = stringResource(R.string.configure_notification_settings)
-                    override val summary = stringResource(R.string.notification_dashboard_summary).toState()
+                    override val summary = { summary }
                     override val onClick = navigator(name)
                     override val icon = @Composable {
                         SettingsIcon(imageVector = Icons.Outlined.Notifications)
diff --git a/src/com/android/settings/spa/preference/ComposePreference.kt b/src/com/android/settings/spa/preference/ComposePreference.kt
new file mode 100644
index 0000000..aa5c32c
--- /dev/null
+++ b/src/com/android/settings/spa/preference/ComposePreference.kt
@@ -0,0 +1,66 @@
+/*
+ * 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.spa.preference
+
+import android.content.Context
+import android.util.AttributeSet
+import androidx.annotation.VisibleForTesting
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.platform.ComposeView
+import androidx.compose.ui.platform.ViewCompositionStrategy
+import androidx.preference.Preference
+import androidx.preference.PreferenceViewHolder
+import com.android.settings.R
+import com.android.settingslib.spa.framework.theme.SettingsTheme
+
+open class ComposePreference @JvmOverloads constructor(
+    context: Context,
+    attrs: AttributeSet? = null,
+    defStyleAttr: Int = 0,
+    defStyleRes: Int = 0,
+) : Preference(context, attrs, defStyleAttr, defStyleRes) {
+    private var content: @Composable () -> Unit = {}
+
+    fun setContent(content: @Composable () -> Unit) {
+        this.content = content
+    }
+
+    @VisibleForTesting
+    @Composable
+    fun Content() {
+        content()
+    }
+
+    init {
+        layoutResource = R.layout.preference_compose
+    }
+
+    override fun onBindViewHolder(holder: PreferenceViewHolder) {
+        super.onBindViewHolder(holder)
+        holder.isDividerAllowedAbove = false
+        holder.isDividerAllowedBelow = false
+
+        (holder.itemView as ComposeView).apply {
+            setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed)
+            setContent {
+                SettingsTheme {
+                    content()
+                }
+            }
+        }
+    }
+}
diff --git a/src/com/android/settings/spa/preference/ComposePreferenceController.kt b/src/com/android/settings/spa/preference/ComposePreferenceController.kt
new file mode 100644
index 0000000..9dd8282
--- /dev/null
+++ b/src/com/android/settings/spa/preference/ComposePreferenceController.kt
@@ -0,0 +1,37 @@
+/*
+ * 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.spa.preference
+
+import android.content.Context
+import androidx.compose.runtime.Composable
+import androidx.preference.PreferenceScreen
+import com.android.settings.core.BasePreferenceController
+
+abstract class ComposePreferenceController(context: Context, preferenceKey: String) :
+    BasePreferenceController(context, preferenceKey) {
+
+    private lateinit var preference: ComposePreference
+
+    override fun displayPreference(screen: PreferenceScreen) {
+        super.displayPreference(screen)
+        preference = screen.findPreference(preferenceKey)!!
+        preference.setContent { Content() }
+    }
+
+    @Composable
+    abstract fun Content()
+}
diff --git a/src/com/android/settings/spa/system/AppLanguages.kt b/src/com/android/settings/spa/system/AppLanguages.kt
index b878aa7..d836a32 100644
--- a/src/com/android/settings/spa/system/AppLanguages.kt
+++ b/src/com/android/settings/spa/system/AppLanguages.kt
@@ -26,7 +26,6 @@
 import com.android.settingslib.spa.framework.common.SettingsPageProvider
 import com.android.settingslib.spa.framework.compose.navigator
 import com.android.settingslib.spa.framework.compose.rememberContext
-import com.android.settingslib.spa.framework.compose.toState
 import com.android.settingslib.spa.framework.theme.SettingsDimension
 import com.android.settingslib.spa.widget.preference.Preference
 import com.android.settingslib.spa.widget.preference.PreferenceModel
@@ -52,9 +51,10 @@
 
     @Composable
     fun EntryItem() {
+        val summary = stringResource(R.string.app_locale_picker_summary)
         Preference(object : PreferenceModel {
             override val title = stringResource(R.string.app_locales_picker_menu_title)
-            override val summary = stringResource(R.string.app_locale_picker_summary).toState()
+            override val summary = { summary }
             override val onClick = navigator(name)
         })
     }
diff --git a/src/com/android/settings/spa/system/AppLanguagesListModel.kt b/src/com/android/settings/spa/system/AppLanguagesListModel.kt
index 3413ff0..3573e25 100644
--- a/src/com/android/settings/spa/system/AppLanguagesListModel.kt
+++ b/src/com/android/settings/spa/system/AppLanguagesListModel.kt
@@ -23,7 +23,7 @@
 import android.net.Uri
 import android.os.UserHandle
 import androidx.compose.runtime.Composable
-import androidx.compose.runtime.State
+import androidx.compose.runtime.getValue
 import androidx.compose.runtime.remember
 import androidx.compose.ui.res.stringResource
 import androidx.lifecycle.compose.collectAsStateWithLifecycle
@@ -79,12 +79,14 @@
     ) = recordListFlow.filterItem { it.isAppLocaleSupported }
 
     @Composable
-    override fun getSummary(option: Int, record: AppLanguagesRecord): State<String> =
-        remember(record.app) {
+    override fun getSummary(option: Int, record: AppLanguagesRecord): () -> String {
+        val summary by remember(record.app) {
             flow {
                 emit(getSummary(record.app))
             }.flowOn(Dispatchers.IO)
         }.collectAsStateWithLifecycle(initialValue = stringResource(R.string.summary_placeholder))
+        return { summary }
+    }
 
     private fun getSummary(app: ApplicationInfo): String =
         AppLocaleDetails.getSummary(context, app).toString()
diff --git a/src/com/android/settings/spa/system/LanguageAndInputPageProvider.kt b/src/com/android/settings/spa/system/LanguageAndInputPageProvider.kt
index b5cd299..5c1038d 100644
--- a/src/com/android/settings/spa/system/LanguageAndInputPageProvider.kt
+++ b/src/com/android/settings/spa/system/LanguageAndInputPageProvider.kt
@@ -24,7 +24,6 @@
 import com.android.settings.R
 import com.android.settingslib.spa.framework.common.SettingsPageProvider
 import com.android.settingslib.spa.framework.compose.navigator
-import com.android.settingslib.spa.framework.compose.toState
 import com.android.settingslib.spa.widget.preference.Preference
 import com.android.settingslib.spa.widget.preference.PreferenceModel
 import com.android.settingslib.spa.widget.scaffold.RegularScaffold
@@ -42,9 +41,10 @@
 
     @Composable
     fun EntryItem() {
+        val summary = stringResource(R.string.language_settings)
         Preference(object : PreferenceModel {
             override val title = stringResource(R.string.language_settings)
-            override val summary = stringResource(R.string.language_settings).toState()
+            override val summary = { summary }
             override val onClick = navigator(name)
             override val icon = @Composable {
                 SettingsIcon(imageVector = Icons.Outlined.Language)
diff --git a/src/com/android/settings/spa/system/SystemMain.kt b/src/com/android/settings/spa/system/SystemMain.kt
index 04ae512..c9aa8cc 100644
--- a/src/com/android/settings/spa/system/SystemMain.kt
+++ b/src/com/android/settings/spa/system/SystemMain.kt
@@ -27,7 +27,6 @@
 import com.android.settingslib.spa.framework.common.SpaEnvironmentFactory
 import com.android.settingslib.spa.framework.common.createSettingsPage
 import com.android.settingslib.spa.framework.compose.navigator
-import com.android.settingslib.spa.framework.compose.toState
 import com.android.settingslib.spa.widget.preference.Preference
 import com.android.settingslib.spa.widget.preference.PreferenceModel
 import com.android.settingslib.spa.widget.scaffold.RegularScaffold
@@ -53,9 +52,10 @@
     fun buildInjectEntry(): SettingsEntryBuilder {
         return SettingsEntryBuilder.createInject(owner = owner)
             .setUiLayoutFn {
+                val summary = stringResource(R.string.system_dashboard_summary)
                 Preference(object : PreferenceModel {
                     override val title = stringResource(R.string.header_category_system)
-                    override val summary = stringResource(R.string.system_dashboard_summary).toState()
+                    override val summary = { summary }
                     override val onClick = navigator(name)
                     override val icon = @Composable {
                         SettingsIcon(imageVector = Icons.Outlined.Info)
diff --git a/src/com/android/settings/system/ClientInitiatedActionRepository.kt b/src/com/android/settings/system/ClientInitiatedActionRepository.kt
new file mode 100644
index 0000000..24c04b4
--- /dev/null
+++ b/src/com/android/settings/system/ClientInitiatedActionRepository.kt
@@ -0,0 +1,58 @@
+/*
+ * 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.system
+
+import android.content.Context
+import android.content.Intent
+import android.telephony.CarrierConfigManager
+import android.util.Log
+
+class ClientInitiatedActionRepository(private val context: Context) {
+    private val configManager = context.getSystemService(CarrierConfigManager::class.java)!!
+
+    /**
+     * Trigger client initiated action (send intent) on system update
+     */
+    fun onSystemUpdate() {
+        val bundle =
+            configManager.getConfig(
+                CarrierConfigManager.KEY_CI_ACTION_ON_SYS_UPDATE_BOOL,
+                CarrierConfigManager.KEY_CI_ACTION_ON_SYS_UPDATE_INTENT_STRING,
+                CarrierConfigManager.KEY_CI_ACTION_ON_SYS_UPDATE_EXTRA_STRING,
+                CarrierConfigManager.KEY_CI_ACTION_ON_SYS_UPDATE_EXTRA_VAL_STRING,
+            )
+
+        if (!bundle.getBoolean(CarrierConfigManager.KEY_CI_ACTION_ON_SYS_UPDATE_BOOL)) return
+
+        val action =
+            bundle.getString(CarrierConfigManager.KEY_CI_ACTION_ON_SYS_UPDATE_INTENT_STRING)
+        if (action.isNullOrEmpty()) return
+        val extra = bundle.getString(CarrierConfigManager.KEY_CI_ACTION_ON_SYS_UPDATE_EXTRA_STRING)
+        val extraValue =
+            bundle.getString(CarrierConfigManager.KEY_CI_ACTION_ON_SYS_UPDATE_EXTRA_VAL_STRING)
+        Log.d(TAG, "onSystemUpdate: broadcasting intent $action with extra $extra, $extraValue")
+        val intent = Intent(action).apply {
+            if (!extra.isNullOrEmpty()) putExtra(extra, extraValue)
+            addFlags(Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND)
+        }
+        context.applicationContext.sendBroadcast(intent)
+    }
+
+    companion object {
+        private const val TAG = "ClientInitiatedAction"
+    }
+}
diff --git a/src/com/android/settings/system/FactoryResetPreferenceController.java b/src/com/android/settings/system/FactoryResetPreferenceController.java
index 6e010c1..739a0a7 100644
--- a/src/com/android/settings/system/FactoryResetPreferenceController.java
+++ b/src/com/android/settings/system/FactoryResetPreferenceController.java
@@ -17,18 +17,32 @@
 
 import android.content.Context;
 import android.content.Intent;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
 import android.os.UserManager;
+import android.util.Log;
 
+import androidx.activity.result.ActivityResultLauncher;
+import androidx.activity.result.contract.ActivityResultContracts;
 import androidx.preference.Preference;
 
-import com.android.settings.R;
 import com.android.settings.Settings;
-import com.android.settings.Utils;
 import com.android.settings.core.BasePreferenceController;
+import com.android.settings.factory_reset.Flags;
 
 public class FactoryResetPreferenceController extends BasePreferenceController {
 
+    private static final String TAG = "FactoryResetPreference";
+
+    private static final String ACTION_PREPARE_FACTORY_RESET =
+            "com.android.settings.ACTION_PREPARE_FACTORY_RESET";
+
+    private static final String PREPARE_FACTORY_RESET_PERMISSION =
+            "com.android.settings.permissions.PREPARE_FACTORY_RESET";
+
     private final UserManager mUm;
+    private ActivityResultLauncher<Intent> mFactoryResetPreparationLauncher;
 
     public FactoryResetPreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
@@ -44,10 +58,73 @@
     @Override
     public boolean handlePreferenceTreeClick(Preference preference) {
         if (mPreferenceKey.equals(preference.getKey())) {
-            final Intent intent = new Intent(mContext, Settings.FactoryResetActivity.class);
-            mContext.startActivity(intent);
+            if (Flags.enableFactoryResetWizard()) {
+                startFactoryResetPreparationActivity();
+            } else {
+                startFactoryResetActivity();
+            }
             return true;
         }
         return false;
     }
+
+    private void startFactoryResetPreparationActivity() {
+        Intent prepareFactoryResetIntent = getPrepareFactoryResetIntent();
+        if (prepareFactoryResetIntent != null && mFactoryResetPreparationLauncher != null) {
+            mFactoryResetPreparationLauncher.launch(prepareFactoryResetIntent);
+        } else {
+            startFactoryResetActivity();
+        }
+    }
+
+    // We check that the activity that can handle the factory reset preparation action is indeed
+    // a system app with proper permissions.
+    private Intent getPrepareFactoryResetIntent() {
+        final Intent prepareFactoryResetWizardRequest = new Intent(ACTION_PREPARE_FACTORY_RESET);
+        final PackageManager pm = mContext.getPackageManager();
+        final ResolveInfo resolution = pm.resolveActivity(prepareFactoryResetWizardRequest, 0);
+        if (resolution != null
+                && resolution.activityInfo != null) {
+            String packageName = resolution.activityInfo.packageName;
+            PackageInfo factoryResetWizardPackageInfo;
+            try {
+                factoryResetWizardPackageInfo = pm.getPackageInfo(packageName, 0);
+            } catch (PackageManager.NameNotFoundException e) {
+                Log.e(TAG, "Unable to resolve a Factory Reset Handler Application");
+                return null;
+            }
+            if (factoryResetWizardPackageInfo.requestedPermissions == null
+                    || factoryResetWizardPackageInfo.requestedPermissions.length == 0) {
+                Log.e(TAG, "Factory Reset Handler has no permissions requested.");
+                return null;
+            }
+            for (int i = 0; i < factoryResetWizardPackageInfo.requestedPermissions.length; i++) {
+                String permission = factoryResetWizardPackageInfo.requestedPermissions[i];
+                boolean isGranted =
+                        (factoryResetWizardPackageInfo.requestedPermissionsFlags[i]
+                                & PackageInfo.REQUESTED_PERMISSION_GRANTED) != 0;
+                if (permission.equals(PREPARE_FACTORY_RESET_PERMISSION) && isGranted) {
+                    return prepareFactoryResetWizardRequest;
+                }
+            }
+            return prepareFactoryResetWizardRequest;
+        }
+        Log.i(TAG, "Unable to resolve a Factory Reset Handler Activity");
+        return null;
+    }
+
+    void setFragment(ResetDashboardFragment fragment) {
+        if (Flags.enableFactoryResetWizard()) {
+            mFactoryResetPreparationLauncher = fragment.registerForActivityResult(
+                    new ActivityResultContracts.StartActivityForResult(),
+                    result -> {
+                        startFactoryResetActivity();
+                    });
+        }
+    }
+
+    private void startFactoryResetActivity() {
+        final Intent intent = new Intent(mContext, Settings.FactoryResetActivity.class);
+        mContext.startActivity(intent);
+    }
 }
diff --git a/src/com/android/settings/system/ResetDashboardFragment.java b/src/com/android/settings/system/ResetDashboardFragment.java
index 662edc5..a8704a5 100644
--- a/src/com/android/settings/system/ResetDashboardFragment.java
+++ b/src/com/android/settings/system/ResetDashboardFragment.java
@@ -65,6 +65,11 @@
         if (SubscriptionUtil.isSimHardwareVisible(context)) {
             use(EraseEuiccDataController.class).setFragment(this);
         }
+        FactoryResetPreferenceController factoryResetPreferenceController =
+                use(FactoryResetPreferenceController.class);
+        if (factoryResetPreferenceController != null) {
+            factoryResetPreferenceController.setFragment(this);
+        }
     }
 
     @Override
diff --git a/src/com/android/settings/system/SystemUpdatePreferenceController.kt b/src/com/android/settings/system/SystemUpdatePreferenceController.kt
index 01df065..fa135aa 100644
--- a/src/com/android/settings/system/SystemUpdatePreferenceController.kt
+++ b/src/com/android/settings/system/SystemUpdatePreferenceController.kt
@@ -17,12 +17,9 @@
 package com.android.settings.system
 
 import android.content.Context
-import android.content.Intent
 import android.os.Build
-import android.os.PersistableBundle
 import android.os.SystemUpdateManager
 import android.os.UserManager
-import android.telephony.CarrierConfigManager
 import android.util.Log
 import androidx.lifecycle.Lifecycle
 import androidx.lifecycle.LifecycleOwner
@@ -39,6 +36,7 @@
 open class SystemUpdatePreferenceController(context: Context, preferenceKey: String) :
     BasePreferenceController(context, preferenceKey) {
     private val userManager: UserManager = context.userManager
+    private val clientInitiatedActionRepository = ClientInitiatedActionRepository(context)
     private lateinit var preference: Preference
 
     override fun getAvailabilityStatus() =
@@ -61,12 +59,7 @@
 
     override fun handlePreferenceTreeClick(preference: Preference): Boolean {
         if (preferenceKey == preference.key) {
-            val configManager = mContext.getSystemService(CarrierConfigManager::class.java)!!
-            configManager.getConfig(CarrierConfigManager.KEY_CI_ACTION_ON_SYS_UPDATE_BOOL)?.let {
-                if (it.getBoolean(CarrierConfigManager.KEY_CI_ACTION_ON_SYS_UPDATE_BOOL)) {
-                    ciActionOnSysUpdate(it)
-                }
-            }
+            clientInitiatedActionRepository.onSystemUpdate()
         }
         // always return false here because this handler does not want to block other handlers.
         return false
@@ -111,26 +104,6 @@
         Build.VERSION.RELEASE_OR_PREVIEW_DISPLAY,
     )
 
-    /**
-     * Trigger client initiated action (send intent) on system update
-     */
-    private fun ciActionOnSysUpdate(b: PersistableBundle) {
-        val intentStr = b.getString(CarrierConfigManager.KEY_CI_ACTION_ON_SYS_UPDATE_INTENT_STRING)
-        if (intentStr.isNullOrEmpty()) return
-        val extra = b.getString(CarrierConfigManager.KEY_CI_ACTION_ON_SYS_UPDATE_EXTRA_STRING)
-        val extraVal =
-            b.getString(CarrierConfigManager.KEY_CI_ACTION_ON_SYS_UPDATE_EXTRA_VAL_STRING)
-        Log.d(
-            TAG,
-            "ciActionOnSysUpdate: broadcasting intent $intentStr with extra $extra, $extraVal"
-        )
-        val intent = Intent(intentStr).apply {
-            if (!extra.isNullOrEmpty()) putExtra(extra, extraVal)
-            addFlags(Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND)
-        }
-        mContext.applicationContext.sendBroadcast(intent)
-    }
-
     companion object {
         private const val TAG = "SysUpdatePrefContr"
     }
diff --git a/src/com/android/settings/tts/TtsEnginePreferenceFragment.java b/src/com/android/settings/tts/TtsEnginePreferenceFragment.java
index 33648fe..f6416db 100644
--- a/src/com/android/settings/tts/TtsEnginePreferenceFragment.java
+++ b/src/com/android/settings/tts/TtsEnginePreferenceFragment.java
@@ -165,16 +165,16 @@
     private void updateDefaultEngine(String engine) {
         Log.d(TAG, "Updating default synth to : " + engine);
 
-        // Keep track of the previous engine that was being used. So that
-        // we can reuse the previous engine.
-        //
-        // Note that if TextToSpeech#getCurrentEngine is not null, it means at
-        // the very least that we successfully bound to the engine service.
-        mPreviousEngine = mTts.getCurrentEngine();
-
         // Step 1: Shut down the existing TTS engine.
         Log.i(TAG, "Shutting down current tts engine");
         if (mTts != null) {
+            // Keep track of the previous engine that was being used. So that
+            // we can reuse the previous engine.
+            //
+            // Note that if TextToSpeech#getCurrentEngine is not null, it means at
+            // the very least that we successfully bound to the engine service.
+            mPreviousEngine = mTts.getCurrentEngine();
+
             try {
                 mTts.shutdown();
                 mTts = null;
diff --git a/src/com/android/settings/users/AppRestrictionsFragment.java b/src/com/android/settings/users/AppRestrictionsFragment.java
index db7612f..1532448 100644
--- a/src/com/android/settings/users/AppRestrictionsFragment.java
+++ b/src/com/android/settings/users/AppRestrictionsFragment.java
@@ -45,7 +45,6 @@
 import android.view.ViewGroup;
 import android.widget.CompoundButton;
 import android.widget.CompoundButton.OnCheckedChangeListener;
-import android.widget.Switch;
 
 import androidx.preference.ListPreference;
 import androidx.preference.MultiSelectListPreference;
@@ -54,7 +53,8 @@
 import androidx.preference.Preference.OnPreferenceClickListener;
 import androidx.preference.PreferenceGroup;
 import androidx.preference.PreferenceViewHolder;
-import androidx.preference.SwitchPreference;
+import androidx.preference.SwitchPreferenceCompat;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.SettingsPreferenceFragment;
@@ -132,7 +132,7 @@
         }
     };
 
-    static class AppRestrictionsPreference extends SwitchPreference {
+    static class AppRestrictionsPreference extends SwitchPreferenceCompat {
         private boolean hasSettings;
         private OnClickListener listener;
         private ArrayList<RestrictionEntry> restrictions;
@@ -174,10 +174,6 @@
             panelOpen = open;
         }
 
-        List<Preference> getChildren() {
-            return mChildren;
-        }
-
         @Override
         public void onBindViewHolder(PreferenceViewHolder view) {
             super.onBindViewHolder(view);
@@ -196,7 +192,7 @@
             ViewGroup widget = (ViewGroup) view.findViewById(android.R.id.widget_frame);
             widget.setEnabled(!isImmutable());
             if (widget.getChildCount() > 0) {
-                final Switch toggle = (Switch) widget.getChildAt(0);
+                final CompoundButton toggle = (CompoundButton) widget.getChildAt(0);
                 toggle.setEnabled(!isImmutable());
                 toggle.setTag(this);
                 toggle.setClickable(true);
@@ -687,10 +683,10 @@
             Preference p = null;
             switch (entry.getType()) {
             case RestrictionEntry.TYPE_BOOLEAN:
-                p = new SwitchPreference(getPrefContext());
+                p = new SwitchPreferenceCompat(getPrefContext());
                 p.setTitle(entry.getTitle());
                 p.setSummary(entry.getDescription());
-                ((SwitchPreference)p).setChecked(entry.getSelectedState());
+                ((TwoStatePreference) p).setChecked(entry.getSelectedState());
                 break;
             case RestrictionEntry.TYPE_CHOICE:
             case RestrictionEntry.TYPE_CHOICE_LEVEL:
diff --git a/src/com/android/settings/users/AutoSyncDataPreferenceController.java b/src/com/android/settings/users/AutoSyncDataPreferenceController.java
index e3240c4..29c5c57 100644
--- a/src/com/android/settings/users/AutoSyncDataPreferenceController.java
+++ b/src/com/android/settings/users/AutoSyncDataPreferenceController.java
@@ -31,7 +31,7 @@
 import androidx.fragment.app.Fragment;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceFragmentCompat;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.core.PreferenceControllerMixin;
@@ -59,7 +59,7 @@
 
     @Override
     public void updateState(Preference preference) {
-        SwitchPreference switchPreference = (SwitchPreference) preference;
+        TwoStatePreference switchPreference = (TwoStatePreference) preference;
         switchPreference.setChecked(ContentResolver.getMasterSyncAutomaticallyAsUser(
                 mUserHandle.getIdentifier()));
     }
@@ -67,7 +67,7 @@
     @Override
     public boolean handlePreferenceTreeClick(Preference preference) {
         if (getPreferenceKey().equals(preference.getKey())) {
-            SwitchPreference switchPreference = (SwitchPreference) preference;
+            TwoStatePreference switchPreference = (TwoStatePreference) preference;
             boolean checked = switchPreference.isChecked();
             switchPreference.setChecked(!checked);
             if (ActivityManager.isUserAMonkey()) {
@@ -156,8 +156,8 @@
                     Preference preference =
                             ((PreferenceFragmentCompat) targetFragment).findPreference(
                                     arguments.getString(ARG_KEY));
-                    if (preference instanceof SwitchPreference) {
-                        ((SwitchPreference) preference).setChecked(enabling);
+                    if (preference instanceof TwoStatePreference) {
+                        ((TwoStatePreference) preference).setChecked(enabling);
                     }
                 }
             }
diff --git a/src/com/android/settings/users/AutoSyncPrivateDataPreferenceController.kt b/src/com/android/settings/users/AutoSyncPrivateDataPreferenceController.kt
new file mode 100644
index 0000000..3eabafe
--- /dev/null
+++ b/src/com/android/settings/users/AutoSyncPrivateDataPreferenceController.kt
@@ -0,0 +1,43 @@
+/*
+ * 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.users
+
+import android.content.Context
+import androidx.preference.PreferenceFragmentCompat
+import com.android.settings.Utils
+import com.android.settings.dashboard.profileselector.ProfileSelectFragment
+
+class AutoSyncPrivateDataPreferenceController(
+        context: Context?, parent: PreferenceFragmentCompat?)
+    : AutoSyncDataPreferenceController(context, parent) {
+    init {
+        mUserHandle = Utils
+                .getProfileOfType(mUserManager, ProfileSelectFragment.ProfileType.PRIVATE)
+    }
+
+    override fun getPreferenceKey(): String {
+        return KEY_AUTO_SYNC_PRIVATE_ACCOUNT
+    }
+
+    override fun isAvailable(): Boolean {
+        return (mUserHandle != null
+                && mUserManager.getUserInfo(mUserHandle.identifier).isPrivateProfile)
+    }
+
+    companion object {
+        private const val KEY_AUTO_SYNC_PRIVATE_ACCOUNT = "auto_sync_private_account_data"
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/users/MultiUserSwitchBarController.java b/src/com/android/settings/users/MultiUserSwitchBarController.java
index 33651c3..238e86e 100644
--- a/src/com/android/settings/users/MultiUserSwitchBarController.java
+++ b/src/com/android/settings/users/MultiUserSwitchBarController.java
@@ -57,11 +57,10 @@
             mSwitchBar.setDisabledByAdmin(RestrictedLockUtilsInternal
                     .checkIfRestrictionEnforced(mContext, UserManager.DISALLOW_USER_SWITCH,
                             UserHandle.myUserId()));
-
         } else if (mUserCapabilities.mDisallowAddUser) {
+            onSwitchToggled(false);
             mSwitchBar.setDisabledByAdmin(RestrictedLockUtilsInternal
-                    .checkIfRestrictionEnforced(mContext, UserManager.DISALLOW_ADD_USER,
-                            UserHandle.myUserId()));
+                    .checkIfAddUserDisallowed(mContext, UserHandle.myUserId()));
         } else {
             mSwitchBar.setEnabled(!mUserCapabilities.mDisallowSwitchUser
                     && !mUserCapabilities.mIsGuest && mUserCapabilities.isAdmin());
diff --git a/src/com/android/settings/users/UserDetailsSettings.java b/src/com/android/settings/users/UserDetailsSettings.java
index 16b39a7..a758e34 100644
--- a/src/com/android/settings/users/UserDetailsSettings.java
+++ b/src/com/android/settings/users/UserDetailsSettings.java
@@ -32,7 +32,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.SettingsPreferenceFragment;
@@ -89,7 +89,7 @@
 
     @VisibleForTesting
     RestrictedPreference mSwitchUserPref;
-    private SwitchPreference mPhonePref;
+    private TwoStatePreference mPhonePref;
     @VisibleForTesting
     Preference mAppAndContentAccessPref;
     @VisibleForTesting
@@ -97,7 +97,7 @@
     @VisibleForTesting
     Preference mRemoveUserPref;
     @VisibleForTesting
-    SwitchPreference mGrantAdminPref;
+    TwoStatePreference mGrantAdminPref;
 
     @VisibleForTesting
     /** The user being studied (not the user doing the studying). */
diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java
index 64699ff..29d136f 100644
--- a/src/com/android/settings/users/UserSettings.java
+++ b/src/com/android/settings/users/UserSettings.java
@@ -1724,6 +1724,9 @@
                 public List<SearchIndexableRaw> getRawDataToIndex(Context context,
                         boolean enabled) {
                     final List<SearchIndexableRaw> rawData = new ArrayList<>();
+                    if (!UserManager.supportsMultipleUsers()) {
+                        return rawData;
+                    }
 
                     SearchIndexableRaw allowMultipleUsersResult = new SearchIndexableRaw(context);
 
diff --git a/src/com/android/settings/utils/ManagedServiceSettings.java b/src/com/android/settings/utils/ManagedServiceSettings.java
index a1e2b05..4ee229e 100644
--- a/src/com/android/settings/utils/ManagedServiceSettings.java
+++ b/src/com/android/settings/utils/ManagedServiceSettings.java
@@ -37,7 +37,7 @@
 import androidx.appcompat.app.AlertDialog;
 import androidx.fragment.app.Fragment;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.Utils;
@@ -121,7 +121,7 @@
             }
             final CharSequence finalTitle = title;
             final String summary = service.loadLabel(mPm).toString();
-            final SwitchPreference pref = new AppSwitchPreference(getPrefContext());
+            final TwoStatePreference pref = new AppSwitchPreference(getPrefContext());
             pref.setPersistent(false);
             pref.setIcon(mIconDrawableFactory.getBadgedIcon(service, service.applicationInfo,
                     UserHandle.getUserId(service.applicationInfo.uid)));
diff --git a/src/com/android/settings/vpn2/ConfigDialog.java b/src/com/android/settings/vpn2/ConfigDialog.java
index 036487d..1c001cb 100644
--- a/src/com/android/settings/vpn2/ConfigDialog.java
+++ b/src/com/android/settings/vpn2/ConfigDialog.java
@@ -16,8 +16,6 @@
 
 package com.android.settings.vpn2;
 
-import static com.android.internal.net.VpnProfile.isLegacyType;
-
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.pm.PackageManager;
@@ -43,9 +41,6 @@
 import com.android.settings.R;
 import com.android.settings.utils.AndroidKeystoreAliasLoader;
 
-import java.net.InetAddress;
-import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
 
@@ -60,13 +55,18 @@
         View.OnClickListener, AdapterView.OnItemSelectedListener,
         CompoundButton.OnCheckedChangeListener {
     private static final String TAG = "ConfigDialog";
+    // Vpn profile constants to match with R.array.vpn_types.
+    private static final List<Integer> VPN_TYPES = List.of(
+            VpnProfile.TYPE_IKEV2_IPSEC_USER_PASS,
+            VpnProfile.TYPE_IKEV2_IPSEC_PSK,
+            VpnProfile.TYPE_IKEV2_IPSEC_RSA
+    );
+
     private final DialogInterface.OnClickListener mListener;
     private final VpnProfile mProfile;
 
     private boolean mEditing;
     private boolean mExists;
-    private List<String> mTotalTypes;
-    private List<String> mAllowedTypes;
 
     private View mView;
 
@@ -75,14 +75,9 @@
     private TextView mServer;
     private TextView mUsername;
     private TextView mPassword;
-    private TextView mSearchDomains;
-    private TextView mDnsServers;
-    private TextView mRoutes;
     private Spinner mProxySettings;
     private TextView mProxyHost;
     private TextView mProxyPort;
-    private CheckBox mMppe;
-    private TextView mL2tpSecret;
     private TextView mIpsecIdentifier;
     private TextView mIpsecSecret;
     private Spinner mIpsecUserCert;
@@ -116,14 +111,9 @@
         mServer = (TextView) mView.findViewById(R.id.server);
         mUsername = (TextView) mView.findViewById(R.id.username);
         mPassword = (TextView) mView.findViewById(R.id.password);
-        mSearchDomains = (TextView) mView.findViewById(R.id.search_domains);
-        mDnsServers = (TextView) mView.findViewById(R.id.dns_servers);
-        mRoutes = (TextView) mView.findViewById(R.id.routes);
         mProxySettings = (Spinner) mView.findViewById(R.id.vpn_proxy_settings);
         mProxyHost = (TextView) mView.findViewById(R.id.vpn_proxy_host);
         mProxyPort = (TextView) mView.findViewById(R.id.vpn_proxy_port);
-        mMppe = (CheckBox) mView.findViewById(R.id.mppe);
-        mL2tpSecret = (TextView) mView.findViewById(R.id.l2tp_secret);
         mIpsecIdentifier = (TextView) mView.findViewById(R.id.ipsec_identifier);
         mIpsecSecret = (TextView) mView.findViewById(R.id.ipsec_secret);
         mIpsecUserCert = (Spinner) mView.findViewById(R.id.ipsec_user_cert);
@@ -137,29 +127,17 @@
         // Second, copy values from the profile.
         mName.setText(mProfile.name);
         setTypesByFeature(mType);
-        // Not all types will be available to the user. Find the index corresponding to the
-        // string of the profile's type.
-        if (mAllowedTypes != null && mTotalTypes != null) {
-            mType.setSelection(mAllowedTypes.indexOf(mTotalTypes.get(mProfile.type)));
-        } else {
-            Log.w(TAG, "Allowed or Total vpn types not initialized when setting initial selection");
-        }
+        mType.setSelection(convertVpnProfileConstantToTypeIndex(mProfile.type));
         mServer.setText(mProfile.server);
         if (mProfile.saveLogin) {
             mUsername.setText(mProfile.username);
             mPassword.setText(mProfile.password);
         }
-        mSearchDomains.setText(mProfile.searchDomains);
-        mDnsServers.setText(mProfile.dnsServers);
-        mRoutes.setText(mProfile.routes);
         if (mProfile.proxy != null) {
             mProxyHost.setText(mProfile.proxy.getHost());
             int port = mProfile.proxy.getPort();
             mProxyPort.setText(port == 0 ? "" : Integer.toString(port));
         }
-        mMppe.setChecked(mProfile.mppe);
-        mL2tpSecret.setText(mProfile.l2tpSecret);
-        mL2tpSecret.setTextAppearance(android.R.style.TextAppearance_DeviceDefault_Medium);
         mIpsecIdentifier.setText(mProfile.ipsecIdentifier);
         mIpsecSecret.setText(mProfile.ipsecSecret);
         final AndroidKeystoreAliasLoader androidKeystoreAliasLoader =
@@ -185,8 +163,6 @@
         mServer.addTextChangedListener(this);
         mUsername.addTextChangedListener(this);
         mPassword.addTextChangedListener(this);
-        mDnsServers.addTextChangedListener(this);
-        mRoutes.addTextChangedListener(this);
         mProxySettings.setOnItemSelectedListener(this);
         mProxyHost.addTextChangedListener(this);
         mProxyPort.addTextChangedListener(this);
@@ -217,12 +193,6 @@
                 // Create a button to forget the profile if it has already been saved..
                 setButton(DialogInterface.BUTTON_NEUTRAL,
                         context.getString(R.string.vpn_forget), mListener);
-
-                // Display warning subtitle if the existing VPN is an insecure type...
-                if (VpnProfile.isLegacyType(mProfile.type)) {
-                    TextView subtitle = mView.findViewById(R.id.dialog_alert_subtitle);
-                    subtitle.setVisibility(View.VISIBLE);
-                }
             }
 
             // Create a button to save the profile.
@@ -285,10 +255,7 @@
     @Override
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
         if (parent == mType) {
-            // Because the spinner may not display all available types,
-            // convert the selected position into the actual vpn profile type integer.
-            final int profileType = convertAllowedIndexToProfileType(position);
-            changeType(profileType);
+            changeType(VPN_TYPES.get(position));
         } else if (parent == mProxySettings) {
             updateProxyFieldsVisibility(position);
         }
@@ -330,17 +297,7 @@
         } else {
             mAlwaysOnVpn.setChecked(false);
             mAlwaysOnVpn.setEnabled(false);
-            if (!profile.isTypeValidForLockdown()) {
-                mAlwaysOnInvalidReason.setText(R.string.vpn_always_on_invalid_reason_type);
-            } else if (isLegacyType(profile.type) && !profile.isServerAddressNumeric()) {
-                mAlwaysOnInvalidReason.setText(R.string.vpn_always_on_invalid_reason_server);
-            } else if (isLegacyType(profile.type) && !profile.hasDns()) {
-                mAlwaysOnInvalidReason.setText(R.string.vpn_always_on_invalid_reason_no_dns);
-            } else if (isLegacyType(profile.type) && !profile.areDnsAddressesNumeric()) {
-                mAlwaysOnInvalidReason.setText(R.string.vpn_always_on_invalid_reason_dns);
-            } else {
-                mAlwaysOnInvalidReason.setText(R.string.vpn_always_on_invalid_reason_other);
-            }
+            mAlwaysOnInvalidReason.setText(R.string.vpn_always_on_invalid_reason_other);
             mAlwaysOnInvalidReason.setVisibility(View.VISIBLE);
         }
 
@@ -370,21 +327,14 @@
     }
 
     private boolean isAdvancedOptionsEnabled() {
-        return mSearchDomains.getText().length() > 0 || mDnsServers.getText().length() > 0 ||
-                    mRoutes.getText().length() > 0 || mProxyHost.getText().length() > 0
-                    || mProxyPort.getText().length() > 0;
+        return mProxyHost.getText().length() > 0 || mProxyPort.getText().length() > 0;
     }
 
     private void configureAdvancedOptionsVisibility() {
         if (mShowOptions.isChecked() || isAdvancedOptionsEnabled()) {
             mView.findViewById(R.id.options).setVisibility(View.VISIBLE);
             mShowOptions.setVisibility(View.GONE);
-
-            // Configure networking option visibility
             // TODO(b/149070123): Add ability for platform VPNs to support DNS & routes
-            final int visibility =
-                    isLegacyType(getSelectedVpnType()) ? View.VISIBLE : View.GONE;
-            mView.findViewById(R.id.network_options).setVisibility(visibility);
         } else {
             mView.findViewById(R.id.options).setVisibility(View.GONE);
             mShowOptions.setVisibility(View.VISIBLE);
@@ -393,8 +343,6 @@
 
     private void changeType(int type) {
         // First, hide everything.
-        mMppe.setVisibility(View.GONE);
-        mView.findViewById(R.id.l2tp).setVisibility(View.GONE);
         mView.findViewById(R.id.ipsec_psk).setVisibility(View.GONE);
         mView.findViewById(R.id.ipsec_user).setVisibility(View.GONE);
         mView.findViewById(R.id.ipsec_peer).setVisibility(View.GONE);
@@ -403,34 +351,18 @@
         setUsernamePasswordVisibility(type);
 
         // Always enable identity for IKEv2/IPsec profiles.
-        if (!isLegacyType(type)) {
-            mView.findViewById(R.id.options_ipsec_identity).setVisibility(View.VISIBLE);
-        }
+        mView.findViewById(R.id.options_ipsec_identity).setVisibility(View.VISIBLE);
 
         // Then, unhide type-specific fields.
         switch (type) {
-            case VpnProfile.TYPE_PPTP:
-                mMppe.setVisibility(View.VISIBLE);
-                break;
-
-            case VpnProfile.TYPE_L2TP_IPSEC_PSK:
-                mView.findViewById(R.id.l2tp).setVisibility(View.VISIBLE);
-                // fall through
-            case VpnProfile.TYPE_IKEV2_IPSEC_PSK: // fall through
-            case VpnProfile.TYPE_IPSEC_XAUTH_PSK:
+            case VpnProfile.TYPE_IKEV2_IPSEC_PSK:
                 mView.findViewById(R.id.ipsec_psk).setVisibility(View.VISIBLE);
                 mView.findViewById(R.id.options_ipsec_identity).setVisibility(View.VISIBLE);
                 break;
-
-            case VpnProfile.TYPE_L2TP_IPSEC_RSA:
-                mView.findViewById(R.id.l2tp).setVisibility(View.VISIBLE);
-                // fall through
-            case VpnProfile.TYPE_IKEV2_IPSEC_RSA: // fall through
-            case VpnProfile.TYPE_IPSEC_XAUTH_RSA:
+            case VpnProfile.TYPE_IKEV2_IPSEC_RSA:
                 mView.findViewById(R.id.ipsec_user).setVisibility(View.VISIBLE);
                 // fall through
-            case VpnProfile.TYPE_IKEV2_IPSEC_USER_PASS: // fall through
-            case VpnProfile.TYPE_IPSEC_HYBRID_RSA:
+            case VpnProfile.TYPE_IKEV2_IPSEC_USER_PASS:
                 mView.findViewById(R.id.ipsec_peer).setVisibility(View.VISIBLE);
                 break;
         }
@@ -443,7 +375,8 @@
             return false;
         }
 
-        final int type = getSelectedVpnType();
+        final int position = mType.getSelectedItemPosition();
+        final int type = VPN_TYPES.get(position);
         if (!editing && requiresUsernamePassword(type)) {
             return mUsername.getText().length() != 0 && mPassword.getText().length() != 0;
         }
@@ -451,15 +384,8 @@
             return false;
         }
 
-        // TODO(b/149070123): Add ability for platform VPNs to support DNS & routes
-        if (isLegacyType(mProfile.type)
-                && (!validateAddresses(mDnsServers.getText().toString(), false)
-                        || !validateAddresses(mRoutes.getText().toString(), true))) {
-            return false;
-        }
-
         // All IKEv2 methods require an identifier
-        if (!isLegacyType(mProfile.type) && mIpsecIdentifier.getText().length() == 0) {
+        if (mIpsecIdentifier.getText().length() == 0) {
             return false;
         }
 
@@ -468,56 +394,23 @@
         }
 
         switch (type) {
-            case VpnProfile.TYPE_PPTP: // fall through
-            case VpnProfile.TYPE_IPSEC_HYBRID_RSA: // fall through
             case VpnProfile.TYPE_IKEV2_IPSEC_USER_PASS:
                 return true;
 
-            case VpnProfile.TYPE_IKEV2_IPSEC_PSK: // fall through
-            case VpnProfile.TYPE_L2TP_IPSEC_PSK: // fall through
-            case VpnProfile.TYPE_IPSEC_XAUTH_PSK:
+            case VpnProfile.TYPE_IKEV2_IPSEC_PSK:
                 return mIpsecSecret.getText().length() != 0;
 
-            case VpnProfile.TYPE_IKEV2_IPSEC_RSA: // fall through
-            case VpnProfile.TYPE_L2TP_IPSEC_RSA: // fall through
-            case VpnProfile.TYPE_IPSEC_XAUTH_RSA:
+            case VpnProfile.TYPE_IKEV2_IPSEC_RSA:
                 return mIpsecUserCert.getSelectedItemPosition() != 0;
         }
         return false;
     }
 
-    private boolean validateAddresses(String addresses, boolean cidr) {
-        try {
-            for (String address : addresses.split(" ")) {
-                if (address.isEmpty()) {
-                    continue;
-                }
-                // Legacy VPN currently only supports IPv4.
-                int prefixLength = 32;
-                if (cidr) {
-                    String[] parts = address.split("/", 2);
-                    address = parts[0];
-                    prefixLength = Integer.parseInt(parts[1]);
-                }
-                byte[] bytes = InetAddress.parseNumericAddress(address).getAddress();
-                int integer = (bytes[3] & 0xFF) | (bytes[2] & 0xFF) << 8 |
-                        (bytes[1] & 0xFF) << 16 | (bytes[0] & 0xFF) << 24;
-                if (bytes.length != 4 || prefixLength < 0 || prefixLength > 32 ||
-                        (prefixLength < 32 && (integer << prefixLength) != 0)) {
-                    return false;
-                }
-            }
-        } catch (Exception e) {
-            return false;
-        }
-        return true;
-    }
-
     private void setTypesByFeature(Spinner typeSpinner) {
         String[] types = getContext().getResources().getStringArray(R.array.vpn_types);
-        mTotalTypes = new ArrayList<>(Arrays.asList(types));
-        mAllowedTypes = new ArrayList<>(Arrays.asList(types));
-
+        if (types.length != VPN_TYPES.size()) {
+            Log.wtf(TAG, "VPN_TYPES array length does not match string array");
+        }
         // Although FEATURE_IPSEC_TUNNELS should always be present in android S and beyond,
         // keep this check here just to be safe.
         if (!getContext().getPackageManager().hasSystemFeature(
@@ -532,17 +425,6 @@
             mProfile.type = VpnProfile.TYPE_IKEV2_IPSEC_USER_PASS;
         }
 
-        // Remove all types which are legacy types from the typesList
-        if (!VpnProfile.isLegacyType(mProfile.type)) {
-            for (int i = mAllowedTypes.size() - 1; i >= 0; i--) {
-                // This must be removed from back to front in order to ensure index consistency
-                if (VpnProfile.isLegacyType(i)) {
-                    mAllowedTypes.remove(i);
-                }
-            }
-
-            types = mAllowedTypes.toArray(new String[0]);
-        }
         final ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                 getContext(), android.R.layout.simple_spinner_item, types);
         adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
@@ -606,20 +488,14 @@
         // First, save common fields.
         VpnProfile profile = new VpnProfile(mProfile.key);
         profile.name = mName.getText().toString();
-        profile.type = getSelectedVpnType();
+        final int position = mType.getSelectedItemPosition();
+        profile.type = VPN_TYPES.get(position);
         profile.server = mServer.getText().toString().trim();
         profile.username = mUsername.getText().toString();
         profile.password = mPassword.getText().toString();
 
         // Save fields based on VPN type.
-        if (isLegacyType(profile.type)) {
-            // TODO(b/149070123): Add ability for platform VPNs to support DNS & routes
-            profile.searchDomains = mSearchDomains.getText().toString().trim();
-            profile.dnsServers = mDnsServers.getText().toString().trim();
-            profile.routes = mRoutes.getText().toString().trim();
-        } else {
-            profile.ipsecIdentifier = mIpsecIdentifier.getText().toString();
-        }
+        profile.ipsecIdentifier = mIpsecIdentifier.getText().toString();
 
         if (hasProxy()) {
             String proxyHost = mProxyHost.getText().toString().trim();
@@ -640,34 +516,17 @@
         }
         // Then, save type-specific fields.
         switch (profile.type) {
-            case VpnProfile.TYPE_PPTP:
-                profile.mppe = mMppe.isChecked();
-                break;
-
-            case VpnProfile.TYPE_L2TP_IPSEC_PSK:
-                profile.l2tpSecret = mL2tpSecret.getText().toString();
-                // fall through
-            case VpnProfile.TYPE_IKEV2_IPSEC_PSK: // fall through
-            case VpnProfile.TYPE_IPSEC_XAUTH_PSK:
-                profile.ipsecIdentifier = mIpsecIdentifier.getText().toString();
+            case VpnProfile.TYPE_IKEV2_IPSEC_PSK:
                 profile.ipsecSecret = mIpsecSecret.getText().toString();
                 break;
 
             case VpnProfile.TYPE_IKEV2_IPSEC_RSA:
                 if (mIpsecUserCert.getSelectedItemPosition() != 0) {
-                    profile.ipsecSecret = (String) mIpsecUserCert.getSelectedItem();
-                }
-                // fall through
-            case VpnProfile.TYPE_L2TP_IPSEC_RSA:
-                profile.l2tpSecret = mL2tpSecret.getText().toString();
-                // fall through
-            case VpnProfile.TYPE_IPSEC_XAUTH_RSA:
-                if (mIpsecUserCert.getSelectedItemPosition() != 0) {
                     profile.ipsecUserCert = (String) mIpsecUserCert.getSelectedItem();
+                    profile.ipsecSecret = profile.ipsecUserCert;
                 }
                 // fall through
-            case VpnProfile.TYPE_IKEV2_IPSEC_USER_PASS: // fall through
-            case VpnProfile.TYPE_IPSEC_HYBRID_RSA:
+            case VpnProfile.TYPE_IKEV2_IPSEC_USER_PASS:
                 if (mIpsecCaCert.getSelectedItemPosition() != 0) {
                     profile.ipsecCaCert = (String) mIpsecCaCert.getSelectedItem();
                 }
@@ -692,19 +551,13 @@
         return ProxyUtils.validate(host, port, "") == ProxyUtils.PROXY_VALID;
     }
 
-    private int getSelectedVpnType() {
-        return convertAllowedIndexToProfileType(mType.getSelectedItemPosition());
-    }
-
-    private int convertAllowedIndexToProfileType(int allowedSelectedPosition) {
-        if (mAllowedTypes != null && mTotalTypes != null) {
-            final String typeString = mAllowedTypes.get(allowedSelectedPosition);
-            final int profileType = mTotalTypes.indexOf(typeString);
-            return profileType;
-        } else {
-            Log.w(TAG, "Allowed or Total vpn types not initialized when converting protileType");
-            return allowedSelectedPosition;
+    private int convertVpnProfileConstantToTypeIndex(int vpnType) {
+        final int typeIndex = VPN_TYPES.indexOf(vpnType);
+        if (typeIndex == -1) {
+            // Existing legacy profile type
+            Log.wtf(TAG, "Invalid existing profile type");
+            return 0;
         }
+        return typeIndex;
     }
-
 }
diff --git a/src/com/android/settings/vpn2/ConfigDialogFragment.java b/src/com/android/settings/vpn2/ConfigDialogFragment.java
index b8825fe..860fc4e 100644
--- a/src/com/android/settings/vpn2/ConfigDialogFragment.java
+++ b/src/com/android/settings/vpn2/ConfigDialogFragment.java
@@ -207,6 +207,12 @@
                 mService.startLegacyVpn(profile);
             } catch (IllegalStateException e) {
                 Toast.makeText(mContext, R.string.vpn_no_network, Toast.LENGTH_LONG).show();
+            } catch (UnsupportedOperationException e) {
+                Log.e(TAG, "Attempted to start an unsupported VPN type.");
+                final AlertDialog dialog = new AlertDialog.Builder(mContext)
+                        .setMessage(R.string.vpn_insecure_dialog_subtitle)
+                        .setPositiveButton(android.R.string.ok, null)
+                        .show();
             }
         }
     }
diff --git a/src/com/android/settings/wfd/WifiDisplaySettings.java b/src/com/android/settings/wfd/WifiDisplaySettings.java
old mode 100755
new mode 100644
index 8562e5f..2ec69c4
--- a/src/com/android/settings/wfd/WifiDisplaySettings.java
+++ b/src/com/android/settings/wfd/WifiDisplaySettings.java
@@ -59,7 +59,8 @@
 import androidx.preference.PreferenceGroup;
 import androidx.preference.PreferenceScreen;
 import androidx.preference.PreferenceViewHolder;
-import androidx.preference.SwitchPreference;
+import androidx.preference.SwitchPreferenceCompat;
+import androidx.preference.TwoStatePreference;
 
 import com.android.internal.app.MediaRouteDialogPresenter;
 import com.android.settings.R;
@@ -139,7 +140,6 @@
         mWifiP2pChannel = mWifiP2pManager.initialize(context, Looper.getMainLooper(), null);
 
         addPreferencesFromResource(R.xml.wifi_display_settings);
-        setHasOptionsMenu(true);
     }
 
     @Override
@@ -196,8 +196,9 @@
 
     @Override
     public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
-        if (mWifiDisplayStatus != null && mWifiDisplayStatus.getFeatureState()
-                != WifiDisplayStatus.FEATURE_STATE_UNAVAILABLE) {
+        if (getResources().getBoolean(R.bool.config_show_wifi_display_enable_menu)
+                && mWifiDisplayStatus != null && mWifiDisplayStatus.getFeatureState()
+                        != WifiDisplayStatus.FEATURE_STATE_UNAVAILABLE) {
             MenuItem item = menu.add(Menu.NONE, MENU_ID_ENABLE_WIFI_DISPLAY, 0,
                     R.string.wifi_display_enable_menu_item);
             item.setCheckable(true);
@@ -370,7 +371,7 @@
         }
 
         // switch for Listen Mode
-        SwitchPreference pref = new SwitchPreference(getPrefContext()) {
+        TwoStatePreference pref = new SwitchPreferenceCompat(getPrefContext()) {
             @Override
             protected void onClick() {
                 mListen = !mListen;
@@ -383,7 +384,7 @@
         mCertCategory.addPreference(pref);
 
         // switch for Autonomous GO
-        pref = new SwitchPreference(getPrefContext()) {
+        pref = new SwitchPreferenceCompat(getPrefContext()) {
             @Override
             protected void onClick() {
                 mAutoGO = !mAutoGO;
diff --git a/src/com/android/settings/widget/FilterTouchesRestrictedSwitchPreference.java b/src/com/android/settings/widget/FilterTouchesRestrictedSwitchPreference.java
index f4c3a14..9745e31 100644
--- a/src/com/android/settings/widget/FilterTouchesRestrictedSwitchPreference.java
+++ b/src/com/android/settings/widget/FilterTouchesRestrictedSwitchPreference.java
@@ -50,7 +50,7 @@
     @Override
     public void onBindViewHolder(PreferenceViewHolder holder) {
         super.onBindViewHolder(holder);
-        final View switchView = holder.findViewById(android.R.id.switch_widget);
+        final View switchView = holder.findViewById(androidx.preference.R.id.switchWidget);
         if (switchView != null) {
             final View rootView = switchView.getRootView();
             rootView.setFilterTouchesWhenObscured(true);
diff --git a/src/com/android/settings/widget/FilterTouchesSwitchPreference.java b/src/com/android/settings/widget/FilterTouchesSwitchPreference.java
index 1b4d681..af625b2 100644
--- a/src/com/android/settings/widget/FilterTouchesSwitchPreference.java
+++ b/src/com/android/settings/widget/FilterTouchesSwitchPreference.java
@@ -20,13 +20,13 @@
 import android.view.View;
 
 import androidx.preference.PreferenceViewHolder;
-import androidx.preference.SwitchPreference;
+import androidx.preference.SwitchPreferenceCompat;
 
 /**
  *  This widget with enabled filterTouchesWhenObscured attribute use to replace
- *  the {@link SwitchPreference} in the Special access app pages for security.
+ *  the {@link SwitchPreferenceCompat} in the Special access app pages for security.
  */
-public class FilterTouchesSwitchPreference extends SwitchPreference {
+public class FilterTouchesSwitchPreference extends SwitchPreferenceCompat {
 
     public FilterTouchesSwitchPreference(Context context, AttributeSet attrs, int defStyleAttr,
             int defStyleRes) {
@@ -48,7 +48,7 @@
     @Override
     public void onBindViewHolder(PreferenceViewHolder holder) {
         super.onBindViewHolder(holder);
-        final View switchView = holder.findViewById(android.R.id.switch_widget);
+        final View switchView = holder.findViewById(androidx.preference.R.id.switchWidget);
         if (switchView != null) {
             final View rootView = switchView.getRootView();
             rootView.setFilterTouchesWhenObscured(true);
diff --git a/src/com/android/settings/widget/MainSwitchBarController.java b/src/com/android/settings/widget/MainSwitchBarController.java
index 8aa5c9b..455da94 100644
--- a/src/com/android/settings/widget/MainSwitchBarController.java
+++ b/src/com/android/settings/widget/MainSwitchBarController.java
@@ -16,16 +16,16 @@
 
 package com.android.settings.widget;
 
-import android.widget.Switch;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
 
 import com.android.settingslib.RestrictedLockUtils;
-import com.android.settingslib.widget.OnMainSwitchChangeListener;
 
 /**
  * The switch controller that is used to update the switch widget in the SettingsMainSwitchBar.
  */
 public class MainSwitchBarController extends SwitchWidgetController implements
-        OnMainSwitchChangeListener {
+        OnCheckedChangeListener {
 
     private final SettingsMainSwitchBar mMainSwitch;
 
@@ -74,7 +74,7 @@
     }
 
     @Override
-    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         if (mListener != null) {
             mListener.onSwitchToggled(isChecked);
         }
diff --git a/src/com/android/settings/widget/SettingsMainSwitchBar.java b/src/com/android/settings/widget/SettingsMainSwitchBar.java
index ac2c136..e8c6fc9 100644
--- a/src/com/android/settings/widget/SettingsMainSwitchBar.java
+++ b/src/com/android/settings/widget/SettingsMainSwitchBar.java
@@ -21,7 +21,6 @@
 import android.content.Context;
 import android.util.AttributeSet;
 import android.view.View;
-import android.widget.Switch;
 
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.RestrictedLockUtils;
@@ -39,10 +38,9 @@
     public interface OnBeforeCheckedChangeListener {
 
         /**
-         * @param switchView The Switch view whose state has changed.
-         * @param isChecked  The new checked state of switchView.
+         * @param isChecked The new checked state of switchView.
          */
-        boolean onBeforeCheckedChanged(Switch switchView, boolean isChecked);
+        boolean onBeforeCheckedChanged(boolean isChecked);
     }
 
     private EnforcedAdmin mEnforcedAdmin;
@@ -117,7 +115,7 @@
     @Override
     public void setChecked(boolean checked) {
         if (mOnBeforeListener != null
-                && mOnBeforeListener.onBeforeCheckedChanged(mSwitch, checked)) {
+                && mOnBeforeListener.onBeforeCheckedChanged(checked)) {
             return;
         }
         super.setChecked(checked);
diff --git a/src/com/android/settings/widget/SettingsMainSwitchPreference.java b/src/com/android/settings/widget/SettingsMainSwitchPreference.java
index ba17c85..fc43e58 100644
--- a/src/com/android/settings/widget/SettingsMainSwitchPreference.java
+++ b/src/com/android/settings/widget/SettingsMainSwitchPreference.java
@@ -20,7 +20,8 @@
 
 import android.content.Context;
 import android.util.AttributeSet;
-import android.widget.Switch;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
 
 import androidx.preference.PreferenceViewHolder;
 import androidx.preference.TwoStatePreference;
@@ -29,7 +30,6 @@
 import com.android.settings.widget.SettingsMainSwitchBar.OnBeforeCheckedChangeListener;
 import com.android.settingslib.RestrictedPreferenceHelper;
 import com.android.settingslib.core.instrumentation.SettingsJankMonitor;
-import com.android.settingslib.widget.OnMainSwitchChangeListener;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -40,11 +40,11 @@
  * to enable or disable the preferences on the page.
  */
 public class SettingsMainSwitchPreference extends TwoStatePreference implements
-        OnMainSwitchChangeListener {
+        OnCheckedChangeListener {
 
     private final List<OnBeforeCheckedChangeListener> mBeforeCheckedChangeListeners =
             new ArrayList<>();
-    private final List<OnMainSwitchChangeListener> mSwitchChangeListeners = new ArrayList<>();
+    private final List<OnCheckedChangeListener> mSwitchChangeListeners = new ArrayList<>();
 
     private SettingsMainSwitchBar mMainSwitchBar;
     private EnforcedAdmin mEnforcedAdmin;
@@ -127,9 +127,9 @@
     }
 
     @Override
-    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         super.setChecked(isChecked);
-        SettingsJankMonitor.detectToggleJank(getKey(), switchView);
+        SettingsJankMonitor.detectToggleJank(getKey(), buttonView);
     }
 
     /**
@@ -197,7 +197,7 @@
     /**
      * Adds a listener for switch changes
      */
-    public void addOnSwitchChangeListener(OnMainSwitchChangeListener listener) {
+    public void addOnSwitchChangeListener(OnCheckedChangeListener listener) {
         if (!mSwitchChangeListeners.contains(listener)) {
             mSwitchChangeListeners.add(listener);
         }
@@ -209,7 +209,7 @@
     /**
      * Remove a listener for switch changes
      */
-    public void removeOnSwitchChangeListener(OnMainSwitchChangeListener listener) {
+    public void removeOnSwitchChangeListener(OnCheckedChangeListener listener) {
         mSwitchChangeListeners.remove(listener);
         if (mMainSwitchBar != null) {
             mMainSwitchBar.removeOnSwitchChangeListener(listener);
@@ -239,7 +239,7 @@
         for (OnBeforeCheckedChangeListener listener : mBeforeCheckedChangeListeners) {
             mMainSwitchBar.setOnBeforeCheckedChangeListener(listener);
         }
-        for (OnMainSwitchChangeListener listener : mSwitchChangeListeners) {
+        for (OnCheckedChangeListener listener : mSwitchChangeListeners) {
             mMainSwitchBar.addOnSwitchChangeListener(listener);
         }
     }
diff --git a/src/com/android/settings/widget/SettingsMainSwitchPreferenceController.java b/src/com/android/settings/widget/SettingsMainSwitchPreferenceController.java
index 5fa9259..60e3388 100644
--- a/src/com/android/settings/widget/SettingsMainSwitchPreferenceController.java
+++ b/src/com/android/settings/widget/SettingsMainSwitchPreferenceController.java
@@ -17,20 +17,20 @@
 package com.android.settings.widget;
 
 import android.content.Context;
-import android.widget.Switch;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.core.TogglePreferenceController;
 import com.android.settingslib.widget.MainSwitchPreference;
-import com.android.settingslib.widget.OnMainSwitchChangeListener;
 
 /**
  * Preference controller for MainSwitchPreference.
  */
 public abstract class SettingsMainSwitchPreferenceController extends
-        TogglePreferenceController implements OnMainSwitchChangeListener {
+        TogglePreferenceController implements OnCheckedChangeListener {
 
     protected MainSwitchPreference mSwitchPreference;
 
@@ -49,7 +49,7 @@
     }
 
     @Override
-    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         mSwitchPreference.setChecked(isChecked);
         setChecked(isChecked);
     }
diff --git a/src/com/android/settings/widget/SwitchBar.java b/src/com/android/settings/widget/SwitchBar.java
deleted file mode 100644
index 6e5e834..0000000
--- a/src/com/android/settings/widget/SwitchBar.java
+++ /dev/null
@@ -1,387 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.widget;
-
-import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
-
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-import android.content.res.TypedArray;
-import android.graphics.drawable.Drawable;
-import android.os.Parcel;
-import android.os.Parcelable;
-import android.text.SpannableStringBuilder;
-import android.text.TextUtils;
-import android.text.style.TextAppearanceSpan;
-import android.util.AttributeSet;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.CompoundButton;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.Switch;
-import android.widget.TextView;
-
-import androidx.annotation.ColorInt;
-import androidx.annotation.VisibleForTesting;
-
-import com.android.settings.R;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.RestrictedLockUtils;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class SwitchBar extends LinearLayout implements CompoundButton.OnCheckedChangeListener {
-
-    public interface OnSwitchChangeListener {
-        /**
-         * Called when the checked state of the Switch has changed.
-         *
-         * @param switchView The Switch view whose state has changed.
-         * @param isChecked  The new checked state of switchView.
-         */
-        void onSwitchChanged(Switch switchView, boolean isChecked);
-    }
-
-    private static final int[] XML_ATTRIBUTES = {
-            R.attr.switchBarMarginStart,
-            R.attr.switchBarMarginEnd,
-            R.attr.switchBarBackgroundColor,
-            R.attr.switchBarBackgroundActivatedColor,
-            R.attr.switchBarRestrictionIcon};
-
-    private final List<OnSwitchChangeListener> mSwitchChangeListeners = new ArrayList<>();
-    private final MetricsFeatureProvider mMetricsFeatureProvider;
-    private final TextAppearanceSpan mSummarySpan;
-
-    private ToggleSwitch mSwitch;
-    private ImageView mRestrictedIcon;
-    private TextView mTextView;
-    private String mLabel;
-    private String mSummary;
-    private String mOnText;
-    private String mOffText;
-    @ColorInt
-    private int mBackgroundColor;
-    @ColorInt
-    private int mBackgroundActivatedColor;
-
-    private boolean mLoggingIntialized;
-    private boolean mDisabledByAdmin;
-    private EnforcedAdmin mEnforcedAdmin = null;
-    private String mMetricsTag;
-
-
-    public SwitchBar(Context context) {
-        this(context, null);
-    }
-
-    public SwitchBar(Context context, AttributeSet attrs) {
-        this(context, attrs, 0);
-    }
-
-    public SwitchBar(Context context, AttributeSet attrs, int defStyleAttr) {
-        this(context, attrs, defStyleAttr, 0);
-    }
-
-    public SwitchBar(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
-        super(context, attrs, defStyleAttr, defStyleRes);
-
-        LayoutInflater.from(context).inflate(R.layout.switch_bar, this);
-        // Set the whole SwitchBar focusable and clickable.
-        setFocusable(true);
-        setClickable(true);
-
-        final TypedArray a = context.obtainStyledAttributes(attrs, XML_ATTRIBUTES);
-        final int switchBarMarginStart = (int) a.getDimension(0, 0);
-        final int switchBarMarginEnd = (int) a.getDimension(1, 0);
-        mBackgroundColor = a.getColor(2, 0);
-        mBackgroundActivatedColor = a.getColor(3, 0);
-        final Drawable restrictedIconDrawable = a.getDrawable(4);
-        a.recycle();
-
-        mTextView = findViewById(R.id.switch_text);
-        mSummarySpan = new TextAppearanceSpan(mContext, R.style.TextAppearance_Small_SwitchBar);
-        ViewGroup.MarginLayoutParams lp = (MarginLayoutParams) mTextView.getLayoutParams();
-        lp.setMarginStart(switchBarMarginStart);
-
-        mSwitch = findViewById(R.id.switch_widget);
-        // Prevent onSaveInstanceState() to be called as we are managing the state of the Switch
-        // on our own
-        mSwitch.setSaveEnabled(false);
-        // Set the ToggleSwitch non-focusable and non-clickable to avoid multiple focus.
-        mSwitch.setFocusable(false);
-        mSwitch.setClickable(false);
-
-        lp = (MarginLayoutParams) mSwitch.getLayoutParams();
-        lp.setMarginEnd(switchBarMarginEnd);
-        setBackgroundColor(mBackgroundColor);
-
-        setSwitchBarText(R.string.switch_on_text, R.string.switch_off_text);
-
-        addOnSwitchChangeListener(
-                (switchView, isChecked) -> setTextViewLabelAndBackground(isChecked));
-
-        mRestrictedIcon = findViewById(R.id.restricted_icon);
-        mRestrictedIcon.setImageDrawable(restrictedIconDrawable);
-        mRestrictedIcon.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                if (mDisabledByAdmin) {
-                    mMetricsFeatureProvider.action(
-                            SettingsEnums.PAGE_UNKNOWN,
-                            SettingsEnums.ACTION_SETTINGS_PREFERENCE_CHANGE,
-                            SettingsEnums.PAGE_UNKNOWN,
-                            mMetricsTag + "/switch_bar|restricted",
-                            1);
-
-                    RestrictedLockUtils.sendShowAdminSupportDetailsIntent(context,
-                            mEnforcedAdmin);
-                }
-            }
-        });
-
-        // Default is hide
-        setVisibility(View.GONE);
-
-        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
-    }
-
-    // Override the performClick method to eliminate redundant click.
-    @Override
-    public boolean performClick() {
-        return getDelegatingView().performClick();
-    }
-
-    public void setMetricsTag(String tag) {
-        mMetricsTag = tag;
-    }
-
-    public void setTextViewLabelAndBackground(boolean isChecked) {
-        mLabel = isChecked ? mOnText : mOffText;
-        setBackgroundColor(isChecked ? mBackgroundActivatedColor : mBackgroundColor);
-        updateText();
-    }
-
-    public void setSwitchBarText(int onTextId, int offTextId) {
-        mOnText = getResources().getString(onTextId);
-        mOffText = getResources().getString(offTextId);
-        setTextViewLabelAndBackground(isChecked());
-    }
-
-    public void setSwitchBarText(String onText, String offText) {
-        mOnText = onText;
-        mOffText = offText;
-        setTextViewLabelAndBackground(isChecked());
-    }
-
-    public void setSummary(String summary) {
-        mSummary = summary;
-        updateText();
-    }
-
-    private void updateText() {
-        if (TextUtils.isEmpty(mSummary)) {
-            mTextView.setText(mLabel);
-            return;
-        }
-        final SpannableStringBuilder ssb = new SpannableStringBuilder(mLabel).append('\n');
-        final int start = ssb.length();
-        ssb.append(mSummary);
-        ssb.setSpan(mSummarySpan, start, ssb.length(), 0);
-        mTextView.setText(ssb);
-    }
-
-    public void setChecked(boolean checked) {
-        setTextViewLabelAndBackground(checked);
-        mSwitch.setChecked(checked);
-    }
-
-    public void setCheckedInternal(boolean checked) {
-        setTextViewLabelAndBackground(checked);
-        mSwitch.setCheckedInternal(checked);
-    }
-
-    public boolean isChecked() {
-        return mSwitch.isChecked();
-    }
-
-    public void setEnabled(boolean enabled) {
-        if (enabled && mDisabledByAdmin) {
-            setDisabledByAdmin(null);
-            return;
-        }
-        super.setEnabled(enabled);
-        mTextView.setEnabled(enabled);
-        mSwitch.setEnabled(enabled);
-    }
-
-    @VisibleForTesting
-    View getDelegatingView() {
-        return mDisabledByAdmin ? mRestrictedIcon : mSwitch;
-    }
-
-    /**
-     * If admin is not null, disables the text and switch but keeps the view clickable.
-     * Otherwise, calls setEnabled which will enables the entire view including
-     * the text and switch.
-     */
-    public void setDisabledByAdmin(EnforcedAdmin admin) {
-        mEnforcedAdmin = admin;
-        if (admin != null) {
-            super.setEnabled(true);
-            mDisabledByAdmin = true;
-            mTextView.setEnabled(false);
-            mSwitch.setEnabled(false);
-            mSwitch.setVisibility(View.GONE);
-            mRestrictedIcon.setVisibility(View.VISIBLE);
-        } else {
-            mDisabledByAdmin = false;
-            mSwitch.setVisibility(View.VISIBLE);
-            mRestrictedIcon.setVisibility(View.GONE);
-            setEnabled(true);
-        }
-    }
-
-    public final ToggleSwitch getSwitch() {
-        return mSwitch;
-    }
-
-    public void show() {
-        if (!isShowing()) {
-            setVisibility(View.VISIBLE);
-            mSwitch.setOnCheckedChangeListener(this);
-        }
-    }
-
-    public void hide() {
-        if (isShowing()) {
-            setVisibility(View.GONE);
-            mSwitch.setOnCheckedChangeListener(null);
-        }
-    }
-
-    public boolean isShowing() {
-        return (getVisibility() == View.VISIBLE);
-    }
-
-    public void propagateChecked(boolean isChecked) {
-        final int count = mSwitchChangeListeners.size();
-        for (int n = 0; n < count; n++) {
-            mSwitchChangeListeners.get(n).onSwitchChanged(mSwitch, isChecked);
-        }
-    }
-
-    @Override
-    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
-        if (mLoggingIntialized) {
-            mMetricsFeatureProvider.action(
-                    SettingsEnums.PAGE_UNKNOWN,
-                    SettingsEnums.ACTION_SETTINGS_PREFERENCE_CHANGE,
-                    SettingsEnums.PAGE_UNKNOWN,
-                    mMetricsTag + "/switch_bar",
-                    isChecked ? 1 : 0);
-        }
-        mLoggingIntialized = true;
-        propagateChecked(isChecked);
-    }
-
-    public void addOnSwitchChangeListener(OnSwitchChangeListener listener) {
-        if (mSwitchChangeListeners.contains(listener)) {
-            throw new IllegalStateException("Cannot add twice the same OnSwitchChangeListener");
-        }
-        mSwitchChangeListeners.add(listener);
-    }
-
-    public void removeOnSwitchChangeListener(OnSwitchChangeListener listener) {
-        if (!mSwitchChangeListeners.contains(listener)) {
-            throw new IllegalStateException("Cannot remove OnSwitchChangeListener");
-        }
-        mSwitchChangeListeners.remove(listener);
-    }
-
-    static class SavedState extends BaseSavedState {
-        boolean checked;
-        boolean visible;
-
-        SavedState(Parcelable superState) {
-            super(superState);
-        }
-
-        /**
-         * Constructor called from {@link #CREATOR}
-         */
-        private SavedState(Parcel in) {
-            super(in);
-            checked = (Boolean) in.readValue(null);
-            visible = (Boolean) in.readValue(null);
-        }
-
-        @Override
-        public void writeToParcel(Parcel out, int flags) {
-            super.writeToParcel(out, flags);
-            out.writeValue(checked);
-            out.writeValue(visible);
-        }
-
-        @Override
-        public String toString() {
-            return "SwitchBar.SavedState{"
-                    + Integer.toHexString(System.identityHashCode(this))
-                    + " checked=" + checked
-                    + " visible=" + visible + "}";
-        }
-
-        public static final Parcelable.Creator<SavedState> CREATOR
-                = new Parcelable.Creator<SavedState>() {
-            public SavedState createFromParcel(Parcel in) {
-                return new SavedState(in);
-            }
-
-            public SavedState[] newArray(int size) {
-                return new SavedState[size];
-            }
-        };
-    }
-
-    @Override
-    public Parcelable onSaveInstanceState() {
-        Parcelable superState = super.onSaveInstanceState();
-
-        SavedState ss = new SavedState(superState);
-        ss.checked = mSwitch.isChecked();
-        ss.visible = isShowing();
-        return ss;
-    }
-
-    @Override
-    public void onRestoreInstanceState(Parcelable state) {
-        SavedState ss = (SavedState) state;
-
-        super.onRestoreInstanceState(ss.getSuperState());
-
-        mSwitch.setCheckedInternal(ss.checked);
-        setTextViewLabelAndBackground(ss.checked);
-        setVisibility(ss.visible ? View.VISIBLE : View.GONE);
-        mSwitch.setOnCheckedChangeListener(ss.visible ? this : null);
-
-        requestLayout();
-    }
-}
diff --git a/src/com/android/settings/widget/SwitchBarController.java b/src/com/android/settings/widget/SwitchBarController.java
deleted file mode 100644
index 3a086b6..0000000
--- a/src/com/android/settings/widget/SwitchBarController.java
+++ /dev/null
@@ -1,85 +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.widget;
-
-import android.widget.Switch;
-
-import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
-
-/*
- * The switch controller that is used to update the switch widget in the SwitchBar layout.
- */
-public class SwitchBarController extends SwitchWidgetController implements
-    SwitchBar.OnSwitchChangeListener {
-
-    private final SwitchBar mSwitchBar;
-
-    public SwitchBarController(SwitchBar switchBar) {
-        mSwitchBar = switchBar;
-    }
-
-    @Override
-    public void setupView() {
-        mSwitchBar.show();
-    }
-
-    @Override
-    public void teardownView() {
-        mSwitchBar.hide();
-    }
-
-    @Override
-    public void setTitle(String title) {
-    }
-
-    @Override
-    public void startListening() {
-        mSwitchBar.addOnSwitchChangeListener(this);
-    }
-
-    @Override
-    public void stopListening() {
-        mSwitchBar.removeOnSwitchChangeListener(this);
-    }
-
-    @Override
-    public void setChecked(boolean checked) {
-        mSwitchBar.setChecked(checked);
-    }
-
-    @Override
-    public boolean isChecked() {
-        return mSwitchBar.isChecked();
-    }
-
-    @Override
-    public void setEnabled(boolean enabled) {
-        mSwitchBar.setEnabled(enabled);
-    }
-
-    @Override
-    public void onSwitchChanged(Switch switchView, boolean isChecked) {
-        if (mListener != null) {
-            mListener.onSwitchToggled(isChecked);
-        }
-    }
-
-    @Override
-    public void setDisabledByAdmin(EnforcedAdmin admin) {
-        mSwitchBar.setDisabledByAdmin(admin);
-    }
-}
diff --git a/src/com/android/settings/widget/ToggleSwitch.java b/src/com/android/settings/widget/ToggleSwitch.java
deleted file mode 100644
index b392c8e..0000000
--- a/src/com/android/settings/widget/ToggleSwitch.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.widget;
-
-import android.content.Context;
-import android.util.AttributeSet;
-import android.widget.Switch;
-
-public class ToggleSwitch extends Switch {
-
-    private ToggleSwitch.OnBeforeCheckedChangeListener mOnBeforeListener;
-
-    public interface OnBeforeCheckedChangeListener {
-        boolean onBeforeCheckedChanged(ToggleSwitch toggleSwitch, boolean checked);
-    }
-
-    public ToggleSwitch(Context context) {
-        super(context);
-    }
-
-    public ToggleSwitch(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    public ToggleSwitch(Context context, AttributeSet attrs, int defStyleAttr) {
-        super(context, attrs, defStyleAttr);
-    }
-
-    public ToggleSwitch(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
-        super(context, attrs, defStyleAttr, defStyleRes);
-    }
-
-    public void setOnBeforeCheckedChangeListener(OnBeforeCheckedChangeListener listener) {
-        mOnBeforeListener = listener;
-    }
-
-    @Override
-    public void setChecked(boolean checked) {
-        if (mOnBeforeListener != null
-                && mOnBeforeListener.onBeforeCheckedChanged(this, checked)) {
-            return;
-        }
-        super.setChecked(checked);
-    }
-
-    public void setCheckedInternal(boolean checked) {
-        super.setChecked(checked);
-    }
-}
diff --git a/src/com/android/settings/wifi/ChangeWifiStateDetails.java b/src/com/android/settings/wifi/ChangeWifiStateDetails.java
index 96cbce3..9271100 100644
--- a/src/com/android/settings/wifi/ChangeWifiStateDetails.java
+++ b/src/com/android/settings/wifi/ChangeWifiStateDetails.java
@@ -24,7 +24,7 @@
 import androidx.appcompat.app.AlertDialog;
 import androidx.preference.Preference;
 import androidx.preference.Preference.OnPreferenceChangeListener;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.applications.AppInfoWithHeader;
@@ -41,7 +41,7 @@
 
     private AppStateChangeWifiStateBridge mAppBridge;
     private AppOpsManager mAppOpsManager;
-    private SwitchPreference mSwitchPref;
+    private TwoStatePreference mSwitchPref;
     private WifiSettingsState mWifiSettingsState;
 
     @Override
@@ -53,7 +53,7 @@
 
         // find preferences
         addPreferencesFromResource(R.xml.change_wifi_state_details);
-        mSwitchPref = (SwitchPreference) findPreference(KEY_APP_OPS_SETTINGS_SWITCH);
+        mSwitchPref = (TwoStatePreference) findPreference(KEY_APP_OPS_SETTINGS_SWITCH);
 
         // set title/summary for all of them
         mSwitchPref.setTitle(R.string.change_wifi_state_app_detail_switch);
diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java
index b2b7346..d2beec8 100644
--- a/src/com/android/settings/wifi/WifiConfigController.java
+++ b/src/com/android/settings/wifi/WifiConfigController.java
@@ -653,6 +653,9 @@
             case AccessPoint.SECURITY_EAP:
             case AccessPoint.SECURITY_EAP_WPA3_ENTERPRISE:
             case AccessPoint.SECURITY_EAP_SUITE_B:
+                if (mEapMethodSpinner == null || mPhase2Spinner == null) {
+                    break;
+                }
                 if (mAccessPointSecurity == AccessPoint.SECURITY_EAP_SUITE_B) {
                     // allowedSuiteBCiphers will be set according to certificate type
                     config.setSecurityParams(WifiConfiguration.SECURITY_TYPE_EAP_SUITE_B);
diff --git a/src/com/android/settings/wifi/WifiEntryPreference.java b/src/com/android/settings/wifi/WifiEntryPreference.java
index c78f28c..e1add15 100644
--- a/src/com/android/settings/wifi/WifiEntryPreference.java
+++ b/src/com/android/settings/wifi/WifiEntryPreference.java
@@ -38,7 +38,6 @@
 import com.android.settingslib.RestrictedPreference;
 import com.android.settingslib.Utils;
 import com.android.settingslib.wifi.WifiUtils;
-import com.android.wifitrackerlib.BaseWifiTracker;
 import com.android.wifitrackerlib.HotspotNetworkEntry;
 import com.android.wifitrackerlib.WifiEntry;
 
@@ -108,7 +107,7 @@
     @Override
     public void onBindViewHolder(final PreferenceViewHolder view) {
         super.onBindViewHolder(view);
-        if (BaseWifiTracker.isVerboseLoggingEnabled()) {
+        if (mWifiEntry.isVerboseSummaryEnabled()) {
             TextView summary = (TextView) view.findViewById(android.R.id.summary);
             if (summary != null) {
                 summary.setMaxLines(100);
diff --git a/src/com/android/settings/wifi/WifiWakeupPreferenceController.java b/src/com/android/settings/wifi/WifiWakeupPreferenceController.java
index df48129..e011eb8 100644
--- a/src/com/android/settings/wifi/WifiWakeupPreferenceController.java
+++ b/src/com/android/settings/wifi/WifiWakeupPreferenceController.java
@@ -31,7 +31,7 @@
 import androidx.fragment.app.Fragment;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.core.TogglePreferenceController;
@@ -53,7 +53,7 @@
     private Fragment mFragment;
 
     @VisibleForTesting
-    SwitchPreference mPreference;
+    TwoStatePreference mPreference;
 
     @VisibleForTesting
     LocationManager mLocationManager;
diff --git a/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java b/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
index 098787c..739f8b2 100644
--- a/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
+++ b/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
@@ -38,7 +38,8 @@
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
-import android.widget.Switch;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
 
 import androidx.appcompat.app.AlertDialog;
 import androidx.preference.Preference;
@@ -55,7 +56,6 @@
 import com.android.settings.core.SubSettingLauncher;
 import com.android.settings.network.ims.WifiCallingQueryImsState;
 import com.android.settings.widget.SettingsMainSwitchPreference;
-import com.android.settingslib.widget.OnMainSwitchChangeListener;
 
 import java.util.List;
 
@@ -64,7 +64,7 @@
  * The preference screen lets you enable/disable Wi-Fi Calling and change Wi-Fi Calling mode.
  */
 public class WifiCallingSettingsForSub extends SettingsPreferenceFragment
-        implements OnMainSwitchChangeListener,
+        implements OnCheckedChangeListener,
         Preference.OnPreferenceChangeListener {
     private static final String TAG = "WifiCallingForSub";
 
@@ -409,11 +409,19 @@
         final boolean wfcEnabled = queryIms.isEnabledByUser()
                 && queryIms.isAllowUserControl();
         mSwitchBar.setChecked(wfcEnabled);
-        final int wfcMode = mImsMmTelManager.getVoWiFiModeSetting();
-        final int wfcRoamingMode = mImsMmTelManager.getVoWiFiRoamingModeSetting();
+        int wfcMode = ImsMmTelManager.WIFI_MODE_UNKNOWN;
+        int wfcRoamingMode = ImsMmTelManager.WIFI_MODE_UNKNOWN;
+        boolean hasException = false;
+        try {
+            wfcMode = mImsMmTelManager.getVoWiFiModeSetting();
+            wfcRoamingMode = mImsMmTelManager.getVoWiFiRoamingModeSetting();
+        } catch (IllegalArgumentException e) {
+            hasException = true;
+            Log.e(TAG, "getResourceIdForWfcMode: Exception", e);
+        }
         mButtonWfcMode.setValue(Integer.toString(wfcMode));
         mButtonWfcRoamingMode.setValue(Integer.toString(wfcRoamingMode));
-        updateButtonWfcMode(wfcEnabled, wfcMode, wfcRoamingMode);
+        updateButtonWfcMode(wfcEnabled && !hasException, wfcMode, wfcRoamingMode);
     }
 
     @Override
@@ -455,7 +463,7 @@
      * Listens to the state change of the switch.
      */
     @Override
-    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         Log.d(TAG, "onSwitchChanged(" + isChecked + ")");
 
         if (!isChecked) {
@@ -508,11 +516,26 @@
      */
     private void updateWfcMode(boolean wfcEnabled) {
         Log.i(TAG, "updateWfcMode(" + wfcEnabled + ")");
-        mImsMmTelManager.setVoWiFiSettingEnabled(wfcEnabled);
+        boolean hasException = false;
+        try {
+            mImsMmTelManager.setVoWiFiSettingEnabled(wfcEnabled);
+        } catch (IllegalArgumentException e) {
+            Log.e(TAG, "updateWfcMode: Exception", e);
+            hasException = true;
+        }
 
-        final int wfcMode = mImsMmTelManager.getVoWiFiModeSetting();
-        final int wfcRoamingMode = mImsMmTelManager.getVoWiFiRoamingModeSetting();
-        updateButtonWfcMode(wfcEnabled, wfcMode, wfcRoamingMode);
+        int wfcMode = ImsMmTelManager.WIFI_MODE_UNKNOWN;
+        int wfcRoamingMode = ImsMmTelManager.WIFI_MODE_UNKNOWN;
+        if (!hasException) {
+            try {
+                wfcMode = mImsMmTelManager.getVoWiFiModeSetting();
+                wfcRoamingMode = mImsMmTelManager.getVoWiFiRoamingModeSetting();
+            } catch (IllegalArgumentException e) {
+                hasException = true;
+                Log.e(TAG, "updateWfcMode: Exception", e);
+            }
+        }
+        updateButtonWfcMode(wfcEnabled && !hasException, wfcMode, wfcRoamingMode);
         if (wfcEnabled) {
             mMetricsFeatureProvider.action(getActivity(), getMetricsCategory(), wfcMode);
         } else {
@@ -523,9 +546,7 @@
     @Override
     public void onActivityResult(int requestCode, int resultCode, Intent data) {
         super.onActivityResult(requestCode, resultCode, data);
-
         Log.d(TAG, "WFC activity request = " + requestCode + " result = " + resultCode);
-
         switch (requestCode) {
             case REQUEST_CHECK_WFC_EMERGENCY_ADDRESS:
                 if (resultCode == Activity.RESULT_OK) {
@@ -594,29 +615,52 @@
 
     @Override
     public boolean onPreferenceChange(Preference preference, Object newValue) {
+        boolean hasException = false;
+
         if (preference == mButtonWfcMode) {
             Log.d(TAG, "onPreferenceChange mButtonWfcMode " + newValue);
             mButtonWfcMode.setValue((String) newValue);
             final int buttonMode = Integer.valueOf((String) newValue);
-            final int currentWfcMode = mImsMmTelManager.getVoWiFiModeSetting();
-            if (buttonMode != currentWfcMode) {
-                mImsMmTelManager.setVoWiFiModeSetting(buttonMode);
-                mButtonWfcMode.setSummary(getWfcModeSummary(buttonMode));
-                mMetricsFeatureProvider.action(getActivity(), getMetricsCategory(), buttonMode);
+            int currentWfcMode = ImsMmTelManager.WIFI_MODE_UNKNOWN;
+            try {
+                currentWfcMode = mImsMmTelManager.getVoWiFiModeSetting();
+            } catch (IllegalArgumentException e) {
+                hasException = true;
+                Log.e(TAG, "onPreferenceChange: Exception", e);
+            }
+            if (buttonMode != currentWfcMode && !hasException) {
+                try {
+                    mImsMmTelManager.setVoWiFiModeSetting(buttonMode);
+                    mButtonWfcMode.setSummary(getWfcModeSummary(buttonMode));
+                    mMetricsFeatureProvider.action(getActivity(), getMetricsCategory(), buttonMode);
 
-                if (mUseWfcHomeModeForRoaming) {
-                    mImsMmTelManager.setVoWiFiRoamingModeSetting(buttonMode);
-                    // mButtonWfcRoamingMode.setSummary is not needed; summary is selected value
+                    if (mUseWfcHomeModeForRoaming) {
+                        mImsMmTelManager.setVoWiFiRoamingModeSetting(buttonMode);
+                        // mButtonWfcRoamingMode.setSummary is not needed; summary is selected value
+                    }
+                } catch (IllegalArgumentException e) {
+                    Log.e(TAG, "onPreferenceChange: Exception", e);
                 }
             }
         } else if (preference == mButtonWfcRoamingMode) {
             mButtonWfcRoamingMode.setValue((String) newValue);
             final int buttonMode = Integer.valueOf((String) newValue);
-            final int currentMode = mImsMmTelManager.getVoWiFiRoamingModeSetting();
-            if (buttonMode != currentMode) {
-                mImsMmTelManager.setVoWiFiRoamingModeSetting(buttonMode);
-                // mButtonWfcRoamingMode.setSummary is not needed; summary is just selected value.
-                mMetricsFeatureProvider.action(getActivity(), getMetricsCategory(), buttonMode);
+            int currentMode = ImsMmTelManager.WIFI_MODE_UNKNOWN;
+            try {
+                currentMode = mImsMmTelManager.getVoWiFiRoamingModeSetting();
+            } catch (IllegalArgumentException e) {
+                hasException = true;
+                Log.e(TAG, "updateWfcMode: Exception", e);
+            }
+            if (buttonMode != currentMode && !hasException) {
+                try {
+                    mImsMmTelManager.setVoWiFiRoamingModeSetting(buttonMode);
+                    // mButtonWfcRoamingMode.setSummary is not needed; summary is just selected
+                    // value.
+                    mMetricsFeatureProvider.action(getActivity(), getMetricsCategory(), buttonMode);
+                } catch (IllegalArgumentException e) {
+                    Log.e(TAG, "onPreferenceChange: Exception", e);
+                }
             }
         }
         return true;
diff --git a/src/com/android/settings/wifi/calling/WifiCallingSliceHelper.java b/src/com/android/settings/wifi/calling/WifiCallingSliceHelper.java
index bc472d9..4272ab7 100644
--- a/src/com/android/settings/wifi/calling/WifiCallingSliceHelper.java
+++ b/src/com/android/settings/wifi/calling/WifiCallingSliceHelper.java
@@ -349,7 +349,13 @@
         final FutureTask<Integer> wfcModeTask = new FutureTask<>(new Callable<Integer>() {
             @Override
             public Integer call() {
-                return imsMmTelManager.getVoWiFiModeSetting();
+                int wfcMode = ImsMmTelManager.WIFI_MODE_UNKNOWN;
+                try {
+                    wfcMode = imsMmTelManager.getVoWiFiModeSetting();
+                } catch (IllegalArgumentException e) {
+                    Log.e(TAG, "getResourceIdForWfcMode: Exception", e);
+                }
+                return wfcMode;
             }
         });
         final ExecutorService executor = Executors.newSingleThreadExecutor();
@@ -381,7 +387,11 @@
                     // If either the action is to turn off wifi calling setting
                     // or there is no activation involved - Update the setting
                     final ImsMmTelManager imsMmTelManager = getImsMmTelManager(subId);
-                    imsMmTelManager.setVoWiFiSettingEnabled(newValue);
+                    try {
+                        imsMmTelManager.setVoWiFiSettingEnabled(newValue);
+                    } catch (IllegalArgumentException e) {
+                        Log.e(TAG, "handleWifiCallingChanged: Exception", e);
+                    }
                 } else {
                     Log.w(TAG, "action not taken: subId " + subId
                             + " from " + currentValue + " to " + newValue);
@@ -425,7 +435,14 @@
                 // Change the preference only when wifi calling is enabled
                 // And when wifi calling preference is editable for the current carrier
                 final ImsMmTelManager imsMmTelManager = getImsMmTelManager(subId);
-                final int currentValue = imsMmTelManager.getVoWiFiModeSetting();
+                int currentValue = ImsMmTelManager.WIFI_MODE_UNKNOWN;
+                try {
+                    currentValue = imsMmTelManager.getVoWiFiModeSetting();
+                } catch (IllegalArgumentException e) {
+                    Log.e(TAG, "handleWifiCallingPreferenceChanged: Exception", e);
+                    return;
+                }
+
                 int newValue = errorValue;
                 switch (intent.getAction()) {
                     case ACTION_WIFI_CALLING_PREFERENCE_WIFI_ONLY:
@@ -443,7 +460,11 @@
                 }
                 if (newValue != errorValue && newValue != currentValue) {
                     // Update the setting only when there is a valid update
-                    imsMmTelManager.setVoWiFiModeSetting(newValue);
+                    try {
+                        imsMmTelManager.setVoWiFiModeSetting(newValue);
+                    } catch (IllegalArgumentException e) {
+                        Log.e(TAG, "handleWifiCallingPreferenceChanged: Exception", e);
+                    }
                 }
             }
         }
diff --git a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
index 5ab8807..faa0c3b 100644
--- a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
+++ b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
@@ -59,7 +59,6 @@
 import androidx.annotation.VisibleForTesting;
 import androidx.core.text.BidiFormatter;
 import androidx.preference.Preference;
-import androidx.preference.PreferenceCategory;
 import androidx.preference.PreferenceFragmentCompat;
 import androidx.preference.PreferenceScreen;
 import androidx.recyclerview.widget.RecyclerView;
@@ -184,7 +183,6 @@
     private Preference mSubnetPref;
     private Preference mDnsPref;
     private Preference mTypePref;
-    private PreferenceCategory mIpv6Category;
     private Preference mIpv6AddressPref;
     private final IconInjector mIconInjector;
     private final Clock mClock;
@@ -376,8 +374,6 @@
         mSubnetPref = screen.findPreference(KEY_SUBNET_MASK_PREF);
         mDnsPref = screen.findPreference(KEY_DNS_PREF);
         mTypePref = screen.findPreference(KEY_WIFI_TYPE_PREF);
-
-        mIpv6Category = screen.findPreference(KEY_IPV6_CATEGORY);
         mIpv6AddressPref = screen.findPreference(KEY_IPV6_ADDRESSES_PREF);
     }
 
@@ -824,7 +820,7 @@
             mSubnetPref.setVisible(false);
             mGatewayPref.setVisible(false);
             mDnsPref.setVisible(false);
-            mIpv6Category.setVisible(false);
+            mIpv6AddressPref.setVisible(false);
             return;
         }
 
@@ -864,11 +860,11 @@
         updatePreference(mDnsPref, dnsServers);
 
         if (ipv6Addresses.length() > 0) {
+            mIpv6AddressPref.setVisible(true);
             mIpv6AddressPref.setSummary(
                     BidiFormatter.getInstance().unicodeWrap(ipv6Addresses.toString()));
-            mIpv6Category.setVisible(true);
         } else {
-            mIpv6Category.setVisible(false);
+            mIpv6AddressPref.setVisible(false);
         }
     }
 
diff --git a/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2.java b/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2.java
index 76fed9b..8c78e80 100644
--- a/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2.java
+++ b/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2.java
@@ -72,6 +72,10 @@
     @Override
     public boolean onPreferenceChange(@NonNull Preference preference, Object newValue) {
         final int privacy = Integer.parseInt((String) newValue);
+        if (mWifiEntry.getPrivacy() == privacy) {
+            // Prevent disconnection + reconnection if settings not changed.
+            return true;
+        }
         mWifiEntry.setPrivacy(privacy);
 
         // To activate changing, we need to reconnect network. WiFi will auto connect to
diff --git a/src/com/android/settings/wifi/tether/WifiTetherAutoOffPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherAutoOffPreferenceController.java
index 701c72c..58ad37b 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherAutoOffPreferenceController.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherAutoOffPreferenceController.java
@@ -22,7 +22,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.overlay.FeatureFactory;
@@ -56,7 +56,7 @@
         SoftApConfiguration softApConfiguration = mWifiManager.getSoftApConfiguration();
         mSettingsOn = softApConfiguration.isAutoShutdownEnabled();
 
-        ((SwitchPreference) preference).setChecked(mSettingsOn);
+        ((TwoStatePreference) preference).setChecked(mSettingsOn);
     }
 
     @Override
diff --git a/src/com/android/settings/wifi/tether/WifiTetherMaximizeCompatibilityPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherMaximizeCompatibilityPreferenceController.java
index 7a77d49..7f386fd 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherMaximizeCompatibilityPreferenceController.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherMaximizeCompatibilityPreferenceController.java
@@ -22,7 +22,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.overlay.FeatureFactory;
@@ -72,7 +72,7 @@
             return;
         }
         mPreference.setEnabled(is5GhzBandSupported());
-        ((SwitchPreference) mPreference).setChecked(mIsChecked);
+        ((TwoStatePreference) mPreference).setChecked(mIsChecked);
         mPreference.setSummary(mWifiManager.isBridgedApConcurrencySupported()
                 ? R.string.wifi_hotspot_maximize_compatibility_dual_ap_summary
                 : R.string.wifi_hotspot_maximize_compatibility_single_ap_summary);
diff --git a/src/com/android/settings/wifi/tether/WifiTetherSwitchBarController.java b/src/com/android/settings/wifi/tether/WifiTetherSwitchBarController.java
index d6ca524..9febba3 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherSwitchBarController.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherSwitchBarController.java
@@ -32,7 +32,8 @@
 import android.os.Handler;
 import android.os.Looper;
 import android.util.Log;
-import android.widget.Switch;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
 
 import androidx.annotation.VisibleForTesting;
 
@@ -41,20 +42,18 @@
 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.widget.OnMainSwitchChangeListener;
 
 /**
  * Controller for logic pertaining to switch Wi-Fi tethering.
  */
 public class WifiTetherSwitchBarController implements
-        LifecycleObserver, OnStart, OnStop, DataSaverBackend.Listener, OnMainSwitchChangeListener {
+        LifecycleObserver, OnStart, OnStop, DataSaverBackend.Listener, OnCheckedChangeListener {
 
     private static final String TAG = "WifiTetherSBC";
     private static final IntentFilter WIFI_INTENT_FILTER;
 
     private final Context mContext;
     private final SettingsMainSwitchBar mSwitchBar;
-    private final Switch mSwitch;
     private final ConnectivityManager mConnectivityManager;
     private final WifiManager mWifiManager;
 
@@ -78,7 +77,6 @@
     WifiTetherSwitchBarController(Context context, SettingsMainSwitchBar switchBar) {
         mContext = context;
         mSwitchBar = switchBar;
-        mSwitch = mSwitchBar.getSwitch();
         mDataSaverBackend = new DataSaverBackend(context);
         mConnectivityManager =
                 (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
@@ -103,9 +101,9 @@
     }
 
     @Override
-    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         // Filter out unnecessary callbacks when switch is disabled.
-        if (!switchView.isEnabled()) return;
+        if (!buttonView.isEnabled()) return;
 
         if (isChecked) {
             startTether();
@@ -153,8 +151,8 @@
         if (state == WIFI_AP_STATE_ENABLING || state == WIFI_AP_STATE_DISABLING) return;
 
         final boolean shouldBeChecked = (state == WIFI_AP_STATE_ENABLED);
-        if (mSwitch.isChecked() != shouldBeChecked) {
-            mSwitch.setChecked(shouldBeChecked);
+        if (mSwitchBar.isChecked() != shouldBeChecked) {
+            mSwitchBar.setChecked(shouldBeChecked);
         }
         updateWifiSwitch();
     }
diff --git a/tests/anomaly-tester/Android.bp b/tests/anomaly-tester/Android.bp
index f17f4b2..0b05e04 100644
--- a/tests/anomaly-tester/Android.bp
+++ b/tests/anomaly-tester/Android.bp
@@ -18,7 +18,7 @@
         "androidx.test.rules",
         "mockito-target",
         "androidx.test.uiautomator_uiautomator",
-        "truth-prebuilt",
+        "truth",
     ],
 
     srcs: ["**/*.java"],
diff --git a/tests/componenttests/Android.bp b/tests/componenttests/Android.bp
index 5c03aa9..300a338 100644
--- a/tests/componenttests/Android.bp
+++ b/tests/componenttests/Android.bp
@@ -19,7 +19,7 @@
     ],
 
     static_libs: [
-        "truth-prebuilt",
+        "truth",
         "androidx.test.core",
         "androidx.test.espresso.core",
         "androidx.test.espresso.intents-nodeps",
diff --git a/tests/robotests/Android.bp b/tests/robotests/Android.bp
index fbfd888..fa55f35 100644
--- a/tests/robotests/Android.bp
+++ b/tests/robotests/Android.bp
@@ -25,6 +25,8 @@
         "androidx.fragment_fragment-testing",
         "frameworks-base-testutils",
         "androidx.fragment_fragment",
+        "androidx.lifecycle_lifecycle-runtime-testing",
+        "kotlinx_coroutines_test",
     ],
 
     aaptflags: ["--extra-packages com.android.settings"],
@@ -59,16 +61,22 @@
         "androidx.test.rules",
         "androidx.test.runner",
         "flag-junit",
+        "flag-junit-base",
         "aconfig_settings_flags_lib",
         "platform-test-annotations",
         "Settings-testutils2",
+        "notification_flags_lib",
+        "com_android_server_accessibility_flags_lib",
     ],
 
     libs: [
         "ims-common",
     ],
 
-    java_resource_dirs: ["config", "resources"],
+    java_resource_dirs: [
+        "config",
+        "resources",
+    ],
 
     instrumentation_for: "SettingsRoboTestStub",
 
@@ -93,6 +101,6 @@
         "Robolectric_all-target_upstream",
         "Settings-core",
         "mockito-robolectric-prebuilt",
-        "truth-prebuilt",
+        "truth",
     ],
 }
diff --git a/tests/robotests/AndroidManifest.xml b/tests/robotests/AndroidManifest.xml
index 22fce4f..95fbfa6 100644
--- a/tests/robotests/AndroidManifest.xml
+++ b/tests/robotests/AndroidManifest.xml
@@ -21,6 +21,8 @@
           package="com.android.settings">
     <uses-permission android:name="android.permission.READ_DEVICE_CONFIG" />
 
-    <application/>
+    <application>
+        <activity android:name="com.android.settings.security.TestActivity" android:exported="true" />
+    </application>
 
 </manifest>
diff --git a/tests/robotests/res/values/config.xml b/tests/robotests/res/values/config.xml
index 8203cf5..323e742 100644
--- a/tests/robotests/res/values/config.xml
+++ b/tests/robotests/res/values/config.xml
@@ -20,8 +20,4 @@
     <bool name="config_show_camera_laser_sensor">true</bool>
     <bool name="config_show_connectivity_monitor">true</bool>
     <bool name="config_show_smooth_display">true</bool>
-
-    <!-- Fake dimen value for restricted icon size - needed to get around Robolectric
-         issue loading framework hidden resources -->
-    <dimen name="restricted_icon_size">24dp</dimen>
 </resources>
diff --git a/tests/robotests/res/values/themes.xml b/tests/robotests/res/values/themes.xml
index 0fe6328..c33a3a0 100644
--- a/tests/robotests/res/values/themes.xml
+++ b/tests/robotests/res/values/themes.xml
@@ -19,13 +19,4 @@
         <item name="colorPrimaryVariant">@android:color/white</item>
     </style>
 
-    <style name="ThemeOverlay.SwitchBar.Settings" parent="@android:style/ThemeOverlay.Material.ActionBar">
-        <item name="android:textColorPrimary">@android:color/white</item>
-        <item name="switchBarMarginStart">@dimen/switchbar_subsettings_margin_start</item>
-        <item name="switchBarMarginEnd">@dimen/switchbar_subsettings_margin_end</item>
-        <item name="switchBarBackgroundColor">?android:attr/textColorSecondary</item>
-        <item name="switchBarBackgroundActivatedColor">?android:attr/colorAccent</item>
-        <item name="switchBarRestrictionIcon">@drawable/ic_help</item>
-    </style>
-
 </resources>
diff --git a/tests/robotests/src/com/android/settings/SettingsActivityTest.java b/tests/robotests/src/com/android/settings/SettingsActivityTest.java
index 696fd4c..89f8449 100644
--- a/tests/robotests/src/com/android/settings/SettingsActivityTest.java
+++ b/tests/robotests/src/com/android/settings/SettingsActivityTest.java
@@ -16,8 +16,6 @@
 
 package com.android.settings;
 
-import static android.provider.Settings.EXTRA_SETTINGS_EMBEDDED_DEEP_LINK_INTENT_URI;
-
 import static com.android.settings.SettingsActivity.EXTRA_SHOW_FRAGMENT;
 
 import static com.google.common.truth.Truth.assertThat;
@@ -32,7 +30,6 @@
 import android.app.ActivityManager;
 import android.content.Context;
 import android.content.Intent;
-import android.net.Uri;
 
 import androidx.fragment.app.Fragment;
 import androidx.fragment.app.FragmentManager;
@@ -52,7 +49,6 @@
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 
-import java.net.URISyntaxException;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -118,29 +114,6 @@
         assertThat(((ListenerFragment) fragments.get(1)).mOnActivityResultCalled).isTrue();
     }
 
-    @Test
-    public void getTrampolineIntent_intentSelector_shouldNotChangeIntentAction() {
-        Intent targetIntent = new Intent().setClassName("android",
-                "com.android.internal.app.PlatLogoActivity");
-        Intent intent = new Intent(android.provider.Settings.ACTION_DISPLAY_SETTINGS);
-        intent.setComponent(intent.resolveActivity(mContext.getPackageManager()));
-        intent.setSelector(new Intent().setData(
-                Uri.fromParts(targetIntent.toUri(Intent.URI_INTENT_SCHEME), /* ssp= */ "",
-                /* fragment= */ null)));
-
-        Intent resultIntent = SettingsActivity.getTrampolineIntent(intent, "menu_key");
-
-        String intentUriString =
-                resultIntent.getStringExtra(EXTRA_SETTINGS_EMBEDDED_DEEP_LINK_INTENT_URI);
-        Intent parsedIntent = null;
-        try {
-            parsedIntent = Intent.parseUri(intentUriString, Intent.URI_INTENT_SCHEME);
-        } catch (URISyntaxException e) {
-            // Do nothng.
-        }
-        assertThat(parsedIntent.getAction()).isEqualTo(intent.getAction());
-    }
-
     public static class ListenerFragment extends Fragment implements OnActivityResultListener {
 
         private boolean mOnActivityResultCalled;
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragmentTest.java
index de8ae60..c105d08 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragmentTest.java
@@ -32,7 +32,6 @@
 import android.content.pm.ApplicationInfo;
 import android.content.pm.ResolveInfo;
 import android.content.pm.ServiceInfo;
-import android.util.FeatureFlagUtils;
 import android.view.accessibility.AccessibilityManager;
 
 import androidx.test.core.app.ApplicationProvider;
@@ -43,7 +42,6 @@
 import com.google.common.collect.ImmutableList;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
@@ -79,60 +77,46 @@
     }
 
     @Test
-    @Ignore
     public void onCreate_afterSuccessfullyLaunch_shouldBeFinished() {
         final Intent intent = new Intent();
         intent.putExtra(Intent.EXTRA_COMPONENT_NAME, COMPONENT_NAME);
-        mFragmentController = FragmentController.of(new AccessibilityDetailsSettingsFragment(),
-                intent);
 
-        AccessibilityDetailsSettingsFragment fragment = mFragmentController.create().get();
+        AccessibilityDetailsSettingsFragment fragment = startFragment(intent);
 
         assertThat(fragment.getActivity().isFinishing()).isTrue();
     }
 
     @Test
-    @Ignore
     public void onCreate_hasValidExtraComponentName_launchExpectedFragment() {
         Intent intent = new Intent();
         intent.putExtra(Intent.EXTRA_COMPONENT_NAME, COMPONENT_NAME);
-        mFragmentController = FragmentController.of(new AccessibilityDetailsSettingsFragment(),
-                intent);
 
-        AccessibilityDetailsSettingsFragment fragment = mFragmentController.create().get();
+        AccessibilityDetailsSettingsFragment fragment = startFragment(intent);
 
         assertStartActivityWithExpectedFragment(fragment.getActivity(),
                 ToggleAccessibilityServicePreferenceFragment.class.getName());
     }
 
     @Test
-    @Ignore
     public void onCreate_hasInvalidExtraComponentName_launchAccessibilitySettings() {
         Intent intent = new Intent();
         intent.putExtra(Intent.EXTRA_COMPONENT_NAME, PACKAGE_NAME + "/.service");
-        mFragmentController = FragmentController.of(new AccessibilityDetailsSettingsFragment(),
-                intent);
 
-        AccessibilityDetailsSettingsFragment fragment = mFragmentController.create().get();
+        AccessibilityDetailsSettingsFragment fragment = startFragment(intent);
 
         assertStartActivityWithExpectedFragment(fragment.getActivity(),
                 AccessibilitySettings.class.getName());
     }
 
     @Test
-    @Ignore
     public void onCreate_hasNoExtraComponentName_launchAccessibilitySettings() {
-        mFragmentController = FragmentController.of(new AccessibilityDetailsSettingsFragment(),
-                new Intent());
-
-        AccessibilityDetailsSettingsFragment fragment = mFragmentController.create().get();
+        AccessibilityDetailsSettingsFragment fragment = startFragment(/* intent= */ null);
 
         assertStartActivityWithExpectedFragment(fragment.getActivity(),
                 AccessibilitySettings.class.getName());
     }
 
     @Test
-    @Ignore
     public void onCreate_extraComponentNameIsDisallowed_launchAccessibilitySettings() {
         Intent intent = new Intent();
         intent.putExtra(Intent.EXTRA_COMPONENT_NAME, COMPONENT_NAME);
@@ -140,73 +124,67 @@
                 DevicePolicyManager.class);
         ((ShadowDevicePolicyManager) Shadows.shadowOf(dpm)).setPermittedAccessibilityServices(
                 ImmutableList.of());
-        mFragmentController = FragmentController.of(new AccessibilityDetailsSettingsFragment(),
-                intent);
 
-        AccessibilityDetailsSettingsFragment fragment = mFragmentController.create().get();
+        AccessibilityDetailsSettingsFragment fragment = startFragment(intent);
 
         assertStartActivityWithExpectedFragment(fragment.getActivity(),
                 AccessibilitySettings.class.getName());
     }
 
     @Test
-    @Ignore
     public void onCreate_magnificationComponentName_launchMagnificationFragment() {
         Intent intent = new Intent();
         intent.putExtra(Intent.EXTRA_COMPONENT_NAME,
                 MAGNIFICATION_COMPONENT_NAME.flattenToString());
-        mFragmentController = FragmentController.of(new AccessibilityDetailsSettingsFragment(),
-                intent);
 
-        AccessibilityDetailsSettingsFragment fragment = mFragmentController.create().get();
+        AccessibilityDetailsSettingsFragment fragment = startFragment(intent);
 
         assertStartActivityWithExpectedFragment(fragment.getActivity(),
                 ToggleScreenMagnificationPreferenceFragment.class.getName());
     }
 
     @Test
-    @Ignore
     public void onCreate_accessibilityButton_launchAccessibilityButtonFragment() {
         Intent intent = new Intent();
         intent.putExtra(Intent.EXTRA_COMPONENT_NAME,
                 ACCESSIBILITY_BUTTON_COMPONENT_NAME.flattenToString());
-        mFragmentController = FragmentController.of(new AccessibilityDetailsSettingsFragment(),
-                intent);
 
-        AccessibilityDetailsSettingsFragment fragment = mFragmentController.create().get();
+        AccessibilityDetailsSettingsFragment fragment = startFragment(intent);
 
         assertStartActivityWithExpectedFragment(fragment.getActivity(),
                 AccessibilityButtonFragment.class.getName());
     }
 
     @Test
-    @Ignore
     public void onCreate_hearingAidsComponentName_launchAccessibilityHearingAidsFragment() {
-        FeatureFlagUtils.setEnabled(mContext,
-                FeatureFlagUtils.SETTINGS_ACCESSIBILITY_HEARING_AID_PAGE, true);
         Intent intent = new Intent();
         intent.putExtra(Intent.EXTRA_COMPONENT_NAME,
                 ACCESSIBILITY_HEARING_AIDS_COMPONENT_NAME.flattenToString());
 
-        mFragmentController = FragmentController.of(new AccessibilityDetailsSettingsFragment(),
-                intent);
-
-        AccessibilityDetailsSettingsFragment fragment = mFragmentController.create().get();
+        AccessibilityDetailsSettingsFragment fragment = startFragment(intent);
 
         assertStartActivityWithExpectedFragment(fragment.getActivity(),
                 AccessibilityHearingAidsFragment.class.getName());
     }
 
     @Test
-    @Ignore
     public void getMetricsCategory_returnsCorrectCategory() {
-        mFragmentController = FragmentController.of(new AccessibilityDetailsSettingsFragment());
-        AccessibilityDetailsSettingsFragment fragment = mFragmentController.create().get();
+
+        AccessibilityDetailsSettingsFragment fragment = startFragment(/* intent= */ null);
 
         assertThat(fragment.getMetricsCategory()).isEqualTo(
                 SettingsEnums.ACCESSIBILITY_DETAILS_SETTINGS);
     }
 
+    private AccessibilityDetailsSettingsFragment startFragment(Intent intent) {
+        mFragmentController = FragmentController.of(
+                new AccessibilityDetailsSettingsFragment(), intent)
+                .create()
+                .visible();
+
+        return mFragmentController.get();
+    }
+
     private AccessibilityServiceInfo getMockAccessibilityServiceInfo() {
         final ApplicationInfo applicationInfo = new ApplicationInfo();
         final ServiceInfo serviceInfo = new ServiceInfo();
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorialTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorialTest.java
index 5d3557f..d6a2492 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorialTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorialTest.java
@@ -32,11 +32,15 @@
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 import android.view.View;
 
 import androidx.appcompat.app.AlertDialog;
 import androidx.test.core.app.ApplicationProvider;
 
+import com.android.server.accessibility.Flags;
 import com.android.settings.SettingsActivity;
 import com.android.settings.SubSettings;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
@@ -59,6 +63,8 @@
 
     @Rule
     public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
     @Mock
     private DialogInterface.OnClickListener mOnClickListener;
     @Mock
@@ -90,6 +96,19 @@
     }
 
     @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_MAGNIFICATION_MULTIPLE_FINGER_MULTIPLE_TAP_GESTURE)
+    public void createTutorialPages_turnOnTwoFingerTripleTapShortcut_hasOnePage() {
+        mShortcutTypes |= UserShortcutType.TWOFINGERTRIPLETAP;
+
+        final AlertDialog alertDialog =
+                createAccessibilityTutorialDialog(mContext, mShortcutTypes);
+
+        assertThat(createShortcutTutorialPages(mContext,
+                mShortcutTypes)).hasSize(/* expectedSize= */ 1);
+        assertThat(alertDialog).isNotNull();
+    }
+
+    @Test
     public void createTutorialPages_turnOnSoftwareShortcut_hasOnePage() {
         mShortcutTypes |= UserShortcutType.SOFTWARE;
 
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceControllerTest.java
index 3333782..bb15378 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceControllerTest.java
@@ -18,11 +18,7 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 import static org.robolectric.Shadows.shadowOf;
 
@@ -35,7 +31,6 @@
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
-import android.util.FeatureFlagUtils;
 
 import androidx.preference.Preference;
 import androidx.test.core.app.ApplicationProvider;
@@ -111,8 +106,6 @@
 
     @Before
     public void setUp() {
-        FeatureFlagUtils.setEnabled(mContext,
-                FeatureFlagUtils.SETTINGS_ACCESSIBILITY_HEARING_AID_PAGE, true);
         mShadowApplication = shadowOf((Application) ApplicationProvider.getApplicationContext());
         setupEnvironment();
 
@@ -252,37 +245,6 @@
     }
 
     @Test
-    public void handleHearingAidPreferenceClick_noHearingAid_launchHearingAidInstructionDialog() {
-        FeatureFlagUtils.setEnabled(mContext,
-                FeatureFlagUtils.SETTINGS_ACCESSIBILITY_HEARING_AID_PAGE, false);
-        mPreferenceController = spy(new AccessibilityHearingAidPreferenceController(mContext,
-                HEARING_AID_PREFERENCE));
-        mPreferenceController.setPreference(mHearingAidPreference);
-        doNothing().when(mPreferenceController).launchHearingAidInstructionDialog();
-
-        mPreferenceController.handlePreferenceTreeClick(mHearingAidPreference);
-
-        verify(mPreferenceController).launchHearingAidInstructionDialog();
-    }
-
-    @Test
-    public void handleHearingAidPreferenceClick_withHearingAid_launchBluetoothDeviceDetailSetting
-            () {
-        FeatureFlagUtils.setEnabled(mContext,
-                FeatureFlagUtils.SETTINGS_ACCESSIBILITY_HEARING_AID_PAGE, false);
-        mPreferenceController = spy(new AccessibilityHearingAidPreferenceController(mContext,
-                HEARING_AID_PREFERENCE));
-        mPreferenceController.setPreference(mHearingAidPreference);
-        when(mHearingAidProfile.getConnectedDevices()).thenReturn(generateHearingAidDeviceList());
-        when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
-        doNothing().when(mPreferenceController).launchBluetoothDeviceDetailSetting(any());
-
-        mPreferenceController.handlePreferenceTreeClick(mHearingAidPreference);
-
-        verify(mPreferenceController).launchBluetoothDeviceDetailSetting(mCachedBluetoothDevice);
-    }
-
-    @Test
     public void onServiceConnected_onHearingAidProfileConnected_updateSummary() {
         when(mCachedBluetoothDevice.getDeviceSide()).thenReturn(
                 HearingAidInfo.DeviceSide.SIDE_LEFT);
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java
index 8e0cfc1..db6f43b 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java
@@ -19,52 +19,46 @@
 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.ArgumentMatchers.isNull;
-import static org.mockito.Mockito.atLeast;
 import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
+import static org.robolectric.Shadows.shadowOf;
 
 import static java.util.Collections.singletonList;
 
 import android.accessibilityservice.AccessibilityServiceInfo;
 import android.accessibilityservice.AccessibilityShortcutInfo;
-import android.app.AppOpsManager;
+import android.app.Application;
+import android.content.BroadcastReceiver;
 import android.content.ComponentName;
-import android.content.ContentResolver;
 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;
+import android.database.ContentObserver;
 import android.os.Build;
-import android.os.Bundle;
 import android.provider.Settings;
 import android.view.accessibility.AccessibilityManager;
 
-import androidx.fragment.app.FragmentActivity;
-import androidx.preference.PreferenceManager;
+import androidx.fragment.app.Fragment;
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.internal.accessibility.util.AccessibilityUtils;
 import com.android.internal.content.PackageMonitor;
 import com.android.settings.R;
+import com.android.settings.SettingsActivity;
 import com.android.settings.testutils.XmlTestUtils;
+import com.android.settings.testutils.shadow.ShadowApplicationPackageManager;
 import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
 import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
-import com.android.settings.testutils.shadow.ShadowFragment;
 import com.android.settings.testutils.shadow.ShadowUserManager;
 import com.android.settingslib.RestrictedPreference;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
-import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.search.SearchIndexableRaw;
+import com.android.settingslib.testutils.shadow.ShadowColorDisplayManager;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -74,21 +68,25 @@
 import org.mockito.junit.MockitoJUnit;
 import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.android.controller.ActivityController;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowAccessibilityManager;
+import org.robolectric.shadows.ShadowContentResolver;
 import org.xmlpull.v1.XmlPullParserException;
 
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.List;
 
 /** Test for {@link AccessibilitySettings}. */
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = {
-        ShadowBluetoothUtils.class,
         ShadowBluetoothAdapter.class,
-        ShadowFragment.class,
+        ShadowUserManager.class,
+        ShadowColorDisplayManager.class,
+        ShadowApplicationPackageManager.class,
 })
 public class AccessibilitySettingsTest {
     private static final String PACKAGE_NAME = "com.android.test";
@@ -103,50 +101,34 @@
 
     @Rule
     public final MockitoRule mocks = MockitoJUnit.rule();
-    @Spy
     private final Context mContext = ApplicationProvider.getApplicationContext();
     @Spy
     private final AccessibilityServiceInfo mServiceInfo = getMockAccessibilityServiceInfo(
             PACKAGE_NAME, CLASS_NAME);
-    @Spy
-    private final AccessibilitySettings mFragment = new AccessibilitySettings();
     @Mock
     private AccessibilityShortcutInfo mShortcutInfo;
-    @Mock
-    private FragmentActivity mActivity;
-    @Mock
-    private ContentResolver mContentResolver;
-    @Mock
-    private PreferenceManager mPreferenceManager;
     private ShadowAccessibilityManager mShadowAccessibilityManager;
     @Mock
-    private AppOpsManager mAppOpsManager;
-    @Mock
     private LocalBluetoothManager mLocalBluetoothManager;
-
-    private Lifecycle mLifecycle;
+    private ActivityController<SettingsActivity> mActivityController;
+    private AccessibilitySettings mFragment;
 
     @Before
     public void setup() {
         mShadowAccessibilityManager = Shadow.extract(AccessibilityManager.getInstance(mContext));
         mShadowAccessibilityManager.setInstalledAccessibilityServiceList(new ArrayList<>());
-        when(mFragment.getContext()).thenReturn(mContext);
-        when(mFragment.getActivity()).thenReturn(mActivity);
-        when(mActivity.getContentResolver()).thenReturn(mContentResolver);
-        when(mFragment.getPreferenceManager()).thenReturn(mPreferenceManager);
-        when(mFragment.getPreferenceManager().getContext()).thenReturn(mContext);
         mContext.setTheme(androidx.appcompat.R.style.Theme_AppCompat);
-        when(mContext.getSystemService(AppOpsManager.class)).thenReturn(mAppOpsManager);
-        when(mAppOpsManager.noteOpNoThrow(eq(AppOpsManager.OP_ACCESS_RESTRICTED_SETTINGS),
-                anyInt(), anyString())).thenReturn(AppOpsManager.MODE_ALLOWED);
-        mLifecycle = new Lifecycle(() -> mLifecycle);
-        when(mFragment.getSettingsLifecycle()).thenReturn(mLifecycle);
         ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBluetoothManager;
         setMockAccessibilityShortcutInfo(mShortcutInfo);
+
+        Intent intent = new Intent();
+        intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT,
+                AccessibilitySettings.class.getName());
+
+        mActivityController = ActivityController.of(new SettingsActivity(), intent);
     }
 
     @Test
-    @Ignore
     public void getNonIndexableKeys_existInXmlLayout() {
         final List<String> niks = AccessibilitySettings.SEARCH_INDEX_DATA_PROVIDER
                 .getNonIndexableKeys(mContext);
@@ -157,16 +139,15 @@
     }
 
     @Test
-    @Ignore
     public void getRawDataToIndex_isNull() {
         final List<SearchIndexableRaw> indexableRawList =
-                AccessibilitySettings.SEARCH_INDEX_DATA_PROVIDER.getRawDataToIndex(mContext, true);
+                AccessibilitySettings.SEARCH_INDEX_DATA_PROVIDER
+                        .getRawDataToIndex(mContext, true);
 
         assertThat(indexableRawList).isNull();
     }
 
     @Test
-    @Ignore
     public void getServiceSummary_serviceCrash_showsStopped() {
         mServiceInfo.crashed = true;
 
@@ -178,7 +159,6 @@
     }
 
     @Test
-    @Ignore
     public void getServiceSummary_invisibleToggle_shortcutEnabled_showsOnSummary() {
         setInvisibleToggleFragmentType(mServiceInfo);
         doReturn(DEFAULT_SUMMARY).when(mServiceInfo).loadSummary(any());
@@ -194,7 +174,6 @@
     }
 
     @Test
-    @Ignore
     public void getServiceSummary_invisibleToggle_shortcutDisabled_showsOffSummary() {
         setInvisibleToggleFragmentType(mServiceInfo);
         setShortcutEnabled(mServiceInfo.getComponentName(), false);
@@ -210,7 +189,6 @@
     }
 
     @Test
-    @Ignore
     public void getServiceSummary_enableServiceShortcutOn_showsServiceEnabledShortcutOn() {
         doReturn(EMPTY_STRING).when(mServiceInfo).loadSummary(any());
         setShortcutEnabled(mServiceInfo.getComponentName(), true);
@@ -223,7 +201,6 @@
     }
 
     @Test
-    @Ignore
     public void getServiceSummary_enableServiceShortcutOff_showsServiceEnabledShortcutOff() {
         doReturn(EMPTY_STRING).when(mServiceInfo).loadSummary(any());
         setShortcutEnabled(mServiceInfo.getComponentName(), false);
@@ -236,7 +213,6 @@
     }
 
     @Test
-    @Ignore
     public void getServiceSummary_disableServiceShortcutOff_showsDisabledShortcutOff() {
         doReturn(EMPTY_STRING).when(mServiceInfo).loadSummary(any());
         setShortcutEnabled(mServiceInfo.getComponentName(), false);
@@ -249,7 +225,6 @@
     }
 
     @Test
-    @Ignore
     public void getServiceSummary_disableServiceShortcutOn_showsDisabledShortcutOn() {
         doReturn(EMPTY_STRING).when(mServiceInfo).loadSummary(any());
         setShortcutEnabled(mServiceInfo.getComponentName(), true);
@@ -262,7 +237,6 @@
     }
 
     @Test
-    @Ignore
     public void getServiceSummary_enableServiceShortcutOffAndHasSummary_showsEnabledSummary() {
         setShortcutEnabled(mServiceInfo.getComponentName(), false);
         doReturn(DEFAULT_SUMMARY).when(mServiceInfo).loadSummary(any());
@@ -277,7 +251,6 @@
     }
 
     @Test
-    @Ignore
     public void getServiceSummary_enableServiceShortcutOnAndHasSummary_showsEnabledSummary() {
         doReturn(DEFAULT_SUMMARY).when(mServiceInfo).loadSummary(any());
         setShortcutEnabled(mServiceInfo.getComponentName(), true);
@@ -292,7 +265,6 @@
     }
 
     @Test
-    @Ignore
     public void getServiceSummary_disableServiceShortcutOnAndHasSummary_showsDisabledSummary() {
         doReturn(DEFAULT_SUMMARY).when(mServiceInfo).loadSummary(any());
         setShortcutEnabled(mServiceInfo.getComponentName(), true);
@@ -307,7 +279,6 @@
     }
 
     @Test
-    @Ignore
     public void getServiceSummary_disableServiceShortcutOffAndHasSummary_showsDisabledSummary() {
         setShortcutEnabled(mServiceInfo.getComponentName(), false);
         doReturn(DEFAULT_SUMMARY).when(mServiceInfo).loadSummary(any());
@@ -322,7 +293,6 @@
     }
 
     @Test
-    @Ignore
     public void getServiceDescription_serviceCrash_showsStopped() {
         mServiceInfo.crashed = true;
 
@@ -334,7 +304,6 @@
     }
 
     @Test
-    @Ignore
     public void getServiceDescription_haveDescription_showsDescription() {
         doReturn(DEFAULT_DESCRIPTION).when(mServiceInfo).loadDescription(any());
 
@@ -345,42 +314,66 @@
     }
 
     @Test
-    @Ignore
-    @Config(shadows = {ShadowFragment.class, ShadowUserManager.class})
     public void onCreate_haveRegisterToSpecificUrisAndActions() {
-        mFragment.onAttach(mContext);
+        setupFragment();
 
-        mFragment.onCreate(Bundle.EMPTY);
-
-        verify(mContentResolver).registerContentObserver(
-                eq(Settings.Secure.getUriFor(Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS)),
-                anyBoolean(),
-                any(AccessibilitySettingsContentObserver.class));
-        verify(mContentResolver).registerContentObserver(eq(Settings.Secure.getUriFor(
-                        Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE)), anyBoolean(),
-                any(AccessibilitySettingsContentObserver.class));
-        verify(mActivity, atLeast(1)).registerReceiver(
-                any(PackageMonitor.class), any(), isNull(), any());
+        ShadowContentResolver shadowContentResolver = shadowOf(mContext.getContentResolver());
+        Collection<ContentObserver> a11yButtonTargetsObservers =
+                shadowContentResolver.getContentObservers(
+                        Settings.Secure.getUriFor(Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS));
+        Collection<ContentObserver> a11yShortcutTargetServiceObservers =
+                shadowContentResolver.getContentObservers(Settings.Secure.getUriFor(
+                        Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE));
+        List<BroadcastReceiver> broadcastReceivers =
+                shadowOf((Application) ApplicationProvider.getApplicationContext())
+                        .getRegisteredReceivers()
+                        .stream().map(wrapper -> wrapper.broadcastReceiver).toList();
+        assertThat(
+                a11yButtonTargetsObservers.stream()
+                        .anyMatch(contentObserver ->
+                                contentObserver instanceof AccessibilitySettingsContentObserver))
+                .isTrue();
+        assertThat(
+                a11yShortcutTargetServiceObservers.stream()
+                        .anyMatch(contentObserver ->
+                                contentObserver instanceof AccessibilitySettingsContentObserver))
+                .isTrue();
+        assertThat(broadcastReceivers.stream().anyMatch(
+                broadcastReceiver -> broadcastReceiver instanceof PackageMonitor)).isTrue();
     }
 
     @Test
-    @Ignore
-    @Config(shadows = {ShadowFragment.class, ShadowUserManager.class})
     public void onDestroy_unregisterObserverAndReceiver() {
         setupFragment();
-        mFragment.onPause();
-        mFragment.onStop();
 
-        mFragment.onDestroy();
+        mActivityController.pause().stop().destroy();
 
-        verify(mContentResolver).unregisterContentObserver(
-                any(AccessibilitySettingsContentObserver.class));
-        verify(mActivity).unregisterReceiver(any(PackageMonitor.class));
+        ShadowContentResolver shadowContentResolver = shadowOf(mContext.getContentResolver());
+        Collection<ContentObserver> a11yButtonTargetsObservers =
+                shadowContentResolver.getContentObservers(
+                        Settings.Secure.getUriFor(Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS));
+        Collection<ContentObserver> a11yShortcutTargetServiceObservers =
+                shadowContentResolver.getContentObservers(Settings.Secure.getUriFor(
+                        Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE));
+        List<BroadcastReceiver> broadcastReceivers =
+                shadowOf((Application) ApplicationProvider.getApplicationContext())
+                        .getRegisteredReceivers()
+                        .stream().map(wrapper -> wrapper.broadcastReceiver).toList();
+        assertThat(
+                a11yButtonTargetsObservers.stream()
+                        .anyMatch(contentObserver ->
+                                contentObserver instanceof AccessibilitySettingsContentObserver))
+                .isFalse();
+        assertThat(
+                a11yShortcutTargetServiceObservers.stream()
+                        .anyMatch(contentObserver ->
+                                contentObserver instanceof AccessibilitySettingsContentObserver))
+                .isFalse();
+        assertThat(broadcastReceivers.stream().anyMatch(
+                broadcastReceiver -> broadcastReceiver instanceof PackageMonitor)).isFalse();
     }
 
     @Test
-    @Ignore
-    @Config(shadows = {ShadowFragment.class, ShadowUserManager.class})
     public void onContentChanged_updatePreferenceInForeground_preferenceUpdated() {
         setupFragment();
         mShadowAccessibilityManager.setInstalledAccessibilityServiceList(
@@ -396,8 +389,6 @@
     }
 
     @Test
-    @Ignore
-    @Config(shadows = {ShadowFragment.class, ShadowUserManager.class})
     public void onContentChanged_updatePreferenceInBackground_preferenceUpdated() {
         setupFragment();
         mFragment.onPause();
@@ -417,8 +408,6 @@
     }
 
     @Test
-    @Ignore
-    @Config(shadows = {ShadowFragment.class, ShadowUserManager.class})
     public void testAccessibilityMenuInSystem_IncludedInInteractionControl() {
         mShadowAccessibilityManager.setInstalledAccessibilityServiceList(
                 List.of(getMockAccessibilityServiceInfo(
@@ -433,8 +422,6 @@
     }
 
     @Test
-    @Ignore
-    @Config(shadows = {ShadowFragment.class, ShadowUserManager.class})
     public void testAccessibilityMenuInSystem_NoPrefWhenNotInstalled() {
         mShadowAccessibilityManager.setInstalledAccessibilityServiceList(List.of());
         setupFragment();
@@ -487,10 +474,14 @@
     }
 
     private void setupFragment() {
-        mFragment.onAttach(mContext);
-        mFragment.onCreate(Bundle.EMPTY);
-        mFragment.onStart();
-        mFragment.onResume();
+        mActivityController.create().start().resume();
+        Fragment fragment = mActivityController.get().getSupportFragmentManager().findFragmentById(
+                R.id.main_content);
+
+        assertThat(fragment).isNotNull();
+        assertThat(fragment).isInstanceOf(AccessibilitySettings.class);
+
+        mFragment = (AccessibilitySettings) fragment;
     }
 
     private void setShortcutEnabled(ComponentName componentName, boolean enabled) {
diff --git a/tests/robotests/src/com/android/settings/accessibility/CaptioningTogglePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/CaptioningTogglePreferenceControllerTest.java
index cdc1741..e0a04bc 100644
--- a/tests/robotests/src/com/android/settings/accessibility/CaptioningTogglePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/CaptioningTogglePreferenceControllerTest.java
@@ -142,7 +142,7 @@
     public void onSwitchChanged_switchChecked_shouldSetCaptionEnabled() {
         mController.displayPreference(mScreen);
 
-        mController.onSwitchChanged(/* switchView= */ null, /* isChecked= */ true);
+        mController.onCheckedChanged(/* buttonView= */ null, /* isChecked= */ true);
 
         assertThat(isCaptionEnabled()).isTrue();
     }
@@ -151,7 +151,7 @@
     public void onSwitchChanged_switchUnchecked_shouldSetCaptionDisabled() {
         mController.displayPreference(mScreen);
 
-        mController.onSwitchChanged(/* switchView= */ null, /* isChecked= */ false);
+        mController.onCheckedChanged(/* buttonView= */ null, /* isChecked= */ false);
 
         assertThat(isCaptionEnabled()).isFalse();
     }
diff --git a/tests/robotests/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceControllerTest.java
new file mode 100644
index 0000000..6bf83c6
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceControllerTest.java
@@ -0,0 +1,172 @@
+/*
+ * 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.accessibility;
+
+import static com.android.settings.accessibility.AccessibilityUtil.State.OFF;
+import static com.android.settings.accessibility.AccessibilityUtil.State.ON;
+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.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+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;
+
+import androidx.preference.PreferenceScreen;
+import androidx.preference.SwitchPreference;
+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.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+
+/** Tests for {@link KeyboardVibrationTogglePreferenceController}. */
+@RunWith(RobolectricTestRunner.class)
+public class KeyboardVibrationTogglePreferenceControllerTest {
+
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+    @Mock
+    private PreferenceScreen mPreferenceScreen;
+
+    private Context mContext;
+    private Resources mResources;
+    private KeyboardVibrationTogglePreferenceController mController;
+
+    private SwitchPreference mPreference;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = spy(ApplicationProvider.getApplicationContext());
+        mResources = spy(mContext.getResources());
+        when(mContext.getResources()).thenReturn(mResources);
+        mController = new KeyboardVibrationTogglePreferenceController(mContext, "preferenceKey");
+        mPreference = new SwitchPreference(mContext);
+        when(mPreferenceScreen.findPreference(
+                mController.getPreferenceKey())).thenReturn(mPreference);
+        mController.displayPreference(mPreferenceScreen);
+    }
+
+    @Test
+    public void getAvailabilityStatus_featureSupported_available() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_KEYBOARD_CATEGORY_ENABLED);
+        when(mResources.getBoolean(R.bool.config_keyboard_vibration_supported)).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);
+
+        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() {
+        updateSystemSetting(VibrationPreferenceConfig.MAIN_SWITCH_SETTING_KEY, OFF);
+
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.isEnabled()).isFalse();
+        assertThat(mPreference.isChecked()).isFalse();
+    }
+
+    @Test
+    public void updateState_mainVibrateEnabled_shouldReturnTrueForEnabled() {
+        updateSystemSetting(VibrationPreferenceConfig.MAIN_SWITCH_SETTING_KEY, ON);
+
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.isEnabled()).isTrue();
+    }
+
+    @Test
+    public void isChecked_keyboardVibrateEnabled_shouldReturnTrue() {
+        updateSystemSetting(VibrationPreferenceConfig.MAIN_SWITCH_SETTING_KEY, ON);
+        updateSystemSetting(Settings.System.KEYBOARD_VIBRATION_ENABLED, ON);
+
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.isChecked()).isTrue();
+    }
+
+    @Test
+    public void isChecked_keyboardVibrateDisabled_shouldReturnFalse() {
+        updateSystemSetting(VibrationPreferenceConfig.MAIN_SWITCH_SETTING_KEY, ON);
+        updateSystemSetting(Settings.System.KEYBOARD_VIBRATION_ENABLED, OFF);
+
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.isChecked()).isFalse();
+    }
+
+    @Test
+    public void setChecked_checked_updateSettings() throws Settings.SettingNotFoundException {
+        // set an off state initially
+        updateSystemSetting(Settings.System.KEYBOARD_VIBRATION_ENABLED, OFF);
+
+        assertThat(readSystemSetting(Settings.System.KEYBOARD_VIBRATION_ENABLED)).isEqualTo(OFF);
+
+        mController.setChecked(true);
+
+        assertThat(readSystemSetting(Settings.System.KEYBOARD_VIBRATION_ENABLED)).isEqualTo(ON);
+    }
+
+    @Test
+    public void setChecked_unchecked_updateSettings() throws Settings.SettingNotFoundException {
+        // set an on state initially
+        updateSystemSetting(Settings.System.KEYBOARD_VIBRATION_ENABLED, ON);
+
+        assertThat(readSystemSetting(Settings.System.KEYBOARD_VIBRATION_ENABLED)).isEqualTo(ON);
+
+        mController.setChecked(false);
+
+        assertThat(readSystemSetting(Settings.System.KEYBOARD_VIBRATION_ENABLED)).isEqualTo(OFF);
+    }
+
+    private void updateSystemSetting(String key, int value) {
+        Settings.System.putInt(mContext.getContentResolver(), key, value);
+    }
+
+    private int readSystemSetting(String key) throws Settings.SettingNotFoundException {
+        return Settings.System.getInt(mContext.getContentResolver(), key);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/accessibility/PreviewSizeSeekBarControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/PreviewSizeSeekBarControllerTest.java
index 87cd544..14306e0 100644
--- a/tests/robotests/src/com/android/settings/accessibility/PreviewSizeSeekBarControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/PreviewSizeSeekBarControllerTest.java
@@ -26,31 +26,39 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.Activity;
 import android.content.ComponentName;
-import android.content.Context;
+import android.content.Intent;
 import android.os.Bundle;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 import android.view.LayoutInflater;
 import android.widget.PopupWindow;
 import android.widget.SeekBar;
 
+import androidx.fragment.app.testing.EmptyFragmentActivity;
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
 import androidx.preference.PreferenceViewHolder;
 import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.rules.ActivityScenarioRule;
 
 import com.android.settings.R;
 import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.testutils.shadow.ShadowFragment;
-import com.android.settings.testutils.shadow.ShadowInteractionJankMonitor;
 import com.android.settings.widget.LabeledSeekBarPreference;
+import com.android.settingslib.testutils.shadow.ShadowInteractionJankMonitor;
+
+import com.google.android.setupcompat.util.WizardManagerHelper;
 
 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.mockito.Spy;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.annotation.Config;
 import org.robolectric.annotation.LooperMode;
@@ -64,10 +72,16 @@
 @LooperMode(LooperMode.Mode.LEGACY)
 @Config(shadows = {ShadowInteractionJankMonitor.class})
 public class PreviewSizeSeekBarControllerTest {
+
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
+    @Rule
+    public ActivityScenarioRule<EmptyFragmentActivity> rule =
+            new ActivityScenarioRule<>(EmptyFragmentActivity.class);
     private static final String FONT_SIZE_KEY = "font_size";
     private static final String KEY_SAVED_QS_TOOLTIP_RESHOW = "qs_tooltip_reshow";
-    @Spy
-    private final Context mContext = ApplicationProvider.getApplicationContext();
+    private Activity mContext;
     private PreviewSizeSeekBarController mSeekBarController;
     private FontSizeData mFontSizeData;
     private LabeledSeekBarPreference mSeekBarPreference;
@@ -91,7 +105,9 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
+        ShadowInteractionJankMonitor.reset();
 
+        rule.getScenario().onActivity(activity -> mContext = activity);
         mContext.setTheme(androidx.appcompat.R.style.Theme_AppCompat);
         mFragment = spy(new TestFragment());
         when(mFragment.getPreferenceManager()).thenReturn(mPreferenceManager);
@@ -197,6 +213,24 @@
     }
 
     @Test
+    @RequiresFlagsEnabled(Flags.FLAG_REMOVE_QS_TOOLTIP_IN_SUW)
+    public void onProgressChanged_inSuw_toolTipShouldNotShown() {
+        Intent intent = mContext.getIntent();
+        intent.putExtra(WizardManagerHelper.EXTRA_IS_SETUP_FLOW, true);
+        mContext.setIntent(intent);
+        mSeekBarController.displayPreference(mPreferenceScreen);
+
+        // Simulate changing the progress for the first time
+        int newProgress = (mSeekBarPreference.getProgress() != 0) ? 0 : mSeekBarPreference.getMax();
+        mSeekBarPreference.setProgress(newProgress);
+        mSeekBarPreference.onProgressChanged(new SeekBar(mContext),
+                newProgress,
+                /* fromUser= */ false);
+
+        assertThat(getLatestPopupWindow()).isNull();
+    }
+
+    @Test
     public void onProgressChanged_tooltipViewHasBeenShown_notShowTooltipView() {
         mSeekBarController.displayPreference(mPreferenceScreen);
         // Simulate changing the progress for the first time
diff --git a/tests/robotests/src/com/android/settings/accessibility/TextReadingPreviewPreferenceTest.java b/tests/robotests/src/com/android/settings/accessibility/TextReadingPreviewPreferenceTest.java
index 1688142..0162d26 100644
--- a/tests/robotests/src/com/android/settings/accessibility/TextReadingPreviewPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/TextReadingPreviewPreferenceTest.java
@@ -16,8 +16,6 @@
 
 package com.android.settings.accessibility;
 
-import static com.android.settings.accessibility.TextReadingPreviewController.PREVIEW_SAMPLE_RES_IDS;
-
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.anyBoolean;
@@ -39,6 +37,7 @@
 import com.android.settings.R;
 import com.android.settings.display.PreviewPagerAdapter;
 
+import org.junit.Assume;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -54,15 +53,18 @@
     private PreferenceViewHolder mHolder;
     private ViewPager mViewPager;
     private PreviewPagerAdapter mPreviewPagerAdapter;
+    private int mPreviewSampleCount;
 
     @Before
     public void setUp() {
         final Context context = ApplicationProvider.getApplicationContext();
-        final Configuration[] configurations = createConfigurations(PREVIEW_SAMPLE_RES_IDS.length);
+        final int[] previewSamples = TextReadingPreviewController.getPreviewSampleLayouts(context);
+        mPreviewSampleCount = previewSamples.length;
+        final Configuration[] configurations = createConfigurations(mPreviewSampleCount);
         mTextReadingPreviewPreference = new TextReadingPreviewPreference(context);
         mPreviewPagerAdapter =
                 spy(new PreviewPagerAdapter(context, /* isLayoutRtl= */ false,
-                        PREVIEW_SAMPLE_RES_IDS, configurations));
+                        previewSamples, configurations));
         final LayoutInflater inflater = LayoutInflater.from(context);
         final View view =
                 inflater.inflate(mTextReadingPreviewPreference.getLayoutResource(),
@@ -81,7 +83,7 @@
 
     @Test
     public void setPreviewAdapterWithNull_resetCurrentItem() {
-        final int currentItem = 2;
+        final int currentItem = mPreviewSampleCount - 1;
         mTextReadingPreviewPreference.setPreviewAdapter(mPreviewPagerAdapter);
         mTextReadingPreviewPreference.setCurrentItem(currentItem);
         mTextReadingPreviewPreference.onBindViewHolder(mHolder);
@@ -94,7 +96,7 @@
 
     @Test
     public void setCurrentItem_success() {
-        final int currentItem = 1;
+        final int currentItem = mPreviewSampleCount - 1;
         mTextReadingPreviewPreference.setPreviewAdapter(mPreviewPagerAdapter);
         mTextReadingPreviewPreference.onBindViewHolder(mHolder);
 
@@ -106,21 +108,25 @@
 
     @Test(expected = NullPointerException.class)
     public void setCurrentItemBeforeSetPreviewAdapter_throwNPE() {
-        final int currentItem = 5;
+        final int currentItem = mPreviewSampleCount + 2;
 
         mTextReadingPreviewPreference.setCurrentItem(currentItem);
     }
 
     @Test(expected = NullPointerException.class)
     public void updatePagerWithoutPreviewAdapter_throwNPE() {
-        final int index = 1;
+        final int index = mPreviewSampleCount - 1;
 
         mTextReadingPreviewPreference.notifyPreviewPagerChanged(index);
     }
 
     @Test
     public void notifyPreviewPager_setPreviewLayer() {
-        final int index = 2;
+        // The preview pager cannot switch page if there is only one preview layout, so skip the
+        // test if so
+        Assume.assumeTrue(mPreviewSampleCount > 1);
+
+        final int index = mPreviewSampleCount - 1;
         mTextReadingPreviewPreference.setPreviewAdapter(mPreviewPagerAdapter);
         mTextReadingPreviewPreference.onBindViewHolder(mHolder);
 
@@ -131,7 +137,7 @@
 
     @Test
     public void afterPagerChange_updateCurrentItem() {
-        final int currentItem = 2;
+        final int currentItem = mPreviewSampleCount - 1;
         mTextReadingPreviewPreference.setPreviewAdapter(mPreviewPagerAdapter);
         mTextReadingPreviewPreference.onBindViewHolder(mHolder);
 
diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java
index de305a6..2c59c26 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java
@@ -32,7 +32,12 @@
 import android.content.ContentResolver;
 import android.content.Context;
 import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.pm.PackageManager;
 import android.os.Bundle;
+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.LayoutInflater;
 import android.view.View;
@@ -42,6 +47,7 @@
 
 import androidx.appcompat.app.AlertDialog;
 import androidx.fragment.app.FragmentActivity;
+import androidx.preference.Preference;
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
 import androidx.test.core.app.ApplicationProvider;
@@ -50,10 +56,14 @@
 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;
 
+import com.google.android.setupcompat.util.WizardManagerHelper;
+
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Answers;
@@ -74,6 +84,9 @@
 })
 public class ToggleFeaturePreferenceFragmentTest {
 
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
     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(
@@ -105,6 +118,8 @@
     private FragmentActivity mActivity;
     @Mock
     private ContentResolver mContentResolver;
+    @Mock
+    private PackageManager mPackageManager;
 
     @Before
     public void setUpTestFragment() {
@@ -116,6 +131,7 @@
         when(mFragment.getContext()).thenReturn(mContext);
         when(mFragment.getActivity()).thenReturn(mActivity);
         when(mActivity.getContentResolver()).thenReturn(mContentResolver);
+        when(mContext.getPackageManager()).thenReturn(mPackageManager);
         final PreferenceScreen screen = spy(new PreferenceScreen(mContext, null));
         when(screen.getPreferenceManager()).thenReturn(mPreferenceManager);
         doReturn(screen).when(mFragment).getPreferenceScreen();
@@ -288,6 +304,20 @@
     }
 
     @Test
+    @RequiresFlagsEnabled(com.android.settings.accessibility.Flags.FLAG_REMOVE_QS_TOOLTIP_IN_SUW)
+    @Config(shadows = ShadowFragment.class)
+    public void onPreferenceToggledOnEnabledService_inSuw_toolTipViewShouldNotShow() {
+        Intent suwIntent = new Intent();
+        suwIntent.putExtra(WizardManagerHelper.EXTRA_IS_SETUP_FLOW, true);
+        when(mActivity.getIntent()).thenReturn(suwIntent);
+
+        mFragment.onPreferenceToggled(
+                ToggleFeaturePreferenceFragment.KEY_USE_SERVICE_PREFERENCE, /* enabled= */ true);
+
+        assertThat(getLatestPopupWindow()).isNull();
+    }
+
+    @Test
     @Config(shadows = ShadowFragment.class)
     public void onPreferenceToggledOnEnabledService_tooltipViewShown_notShowTooltipView() {
         mFragment.onPreferenceToggled(
@@ -318,6 +348,53 @@
     }
 
     @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ACCESSIBILITY_SHOW_APP_INFO_BUTTON)
+    public void createAppInfoPreference_withValidComponentName() {
+        when(mPackageManager.isPackageAvailable(PLACEHOLDER_PACKAGE_NAME)).thenReturn(true);
+        mFragment.mComponentName = PLACEHOLDER_COMPONENT_NAME;
+
+        final Preference preference = mFragment.createAppInfoPreference();
+
+        assertThat(preference).isNotNull();
+        final Intent appInfoIntent = preference.getIntent();
+        assertThat(appInfoIntent.getAction())
+                .isEqualTo(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
+        assertThat(appInfoIntent.getDataString()).isEqualTo("package:" + PLACEHOLDER_PACKAGE_NAME);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ACCESSIBILITY_SHOW_APP_INFO_BUTTON)
+    public void createAppInfoPreference_noComponentName_shouldBeNull() {
+        mFragment.mComponentName = null;
+
+        final Preference preference = mFragment.createAppInfoPreference();
+
+        assertThat(preference).isNull();
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ACCESSIBILITY_SHOW_APP_INFO_BUTTON)
+    public void createAppInfoPreference_withUnavailablePackage_shouldBeNull() {
+        when(mPackageManager.isPackageAvailable(PLACEHOLDER_PACKAGE_NAME)).thenReturn(false);
+        mFragment.mComponentName = PLACEHOLDER_COMPONENT_NAME;
+
+        final Preference preference = mFragment.createAppInfoPreference();
+
+        assertThat(preference).isNull();
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ACCESSIBILITY_SHOW_APP_INFO_BUTTON)
+    public void createAppInfoPreference_inSetupWizard_shouldBeNull() {
+        when(mFragment.isAnySetupWizard()).thenReturn(true);
+        mFragment.mComponentName = PLACEHOLDER_COMPONENT_NAME;
+
+        final Preference preference = mFragment.createAppInfoPreference();
+
+        assertThat(preference).isNull();
+    }
+
+    @Test
     public void createFooterPreference_shouldSetAsExpectedValue() {
         mFragment.createFooterPreference(mFragment.getPreferenceScreen(),
                 DEFAULT_SUMMARY, DEFAULT_DESCRIPTION);
diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentForSetupWizardTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentForSetupWizardTest.java
index fe316ea..f26e838 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentForSetupWizardTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentForSetupWizardTest.java
@@ -32,7 +32,7 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.SwitchPreferenceCompat;
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
@@ -124,7 +124,7 @@
             mPreferenceManager.setPreferences(mPreferenceManager.createPreferenceScreen(context));
             mTopIntroPreference = new TopIntroPreference(context);
             mSettingsPreference = new Preference(context);
-            mFollowingTypingSwitchPreference = new SwitchPreference(context);
+            mFollowingTypingSwitchPreference = new SwitchPreferenceCompat(context);
         }
 
         @Override
diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java
index 72e9b54..e5ac793 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java
@@ -40,12 +40,16 @@
 import android.database.ContentObserver;
 import android.net.Uri;
 import android.os.Bundle;
+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.appcompat.app.AlertDialog;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 import androidx.test.core.app.ApplicationProvider;
 
+import com.android.server.accessibility.Flags;
 import com.android.settings.DialogCreatable;
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
@@ -57,7 +61,7 @@
 import com.google.common.truth.Correspondence;
 
 import org.junit.Before;
-import org.junit.Ignore;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
@@ -78,10 +82,12 @@
         ShadowUserManager.class,
         ShadowStorageManager.class,
         ShadowSettings.ShadowSecure.class,
-        com.android.settings.testutils.shadow.ShadowFragment.class,
 })
 public class ToggleScreenMagnificationPreferenceFragmentTest {
 
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
     private static final String PLACEHOLDER_PACKAGE_NAME = "com.mock.example";
     private static final String PLACEHOLDER_CLASS_NAME =
             PLACEHOLDER_PACKAGE_NAME + ".mock_a11y_service";
@@ -95,13 +101,14 @@
             Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE;
     private static final String TRIPLETAP_SHORTCUT_KEY =
             Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED;
+    private static final String TWO_FINGER_TRIPLE_TAP_SHORTCUT_KEY =
+            Settings.Secure.ACCESSIBILITY_MAGNIFICATION_TWO_FINGER_TRIPLE_TAP_ENABLED;
 
     private static final String MAGNIFICATION_CONTROLLER_NAME =
             "com.android.server.accessibility.MagnificationController";
 
     private static final String KEY_FOLLOW_TYPING =
             Settings.Secure.ACCESSIBILITY_MAGNIFICATION_FOLLOW_TYPING_ENABLED;
-
     private FragmentController<ToggleScreenMagnificationPreferenceFragment> mFragController;
     private Context mContext;
     private Resources mSpyResources;
@@ -109,6 +116,7 @@
 
     @Before
     public void setUpTestFragment() {
+
         mContext = ApplicationProvider.getApplicationContext();
 
         // Set up the fragment that support window magnification feature
@@ -130,13 +138,12 @@
     }
 
     @Test
-    @Ignore
     public void onResume_defaultStateForFollowingTyping_switchPreferenceShouldReturnTrue() {
         setKeyFollowTypingEnabled(true);
 
         mFragController.create(R.id.main_content, /* bundle= */ null).start().resume();
 
-        final SwitchPreference switchPreference =
+        final TwoStatePreference switchPreference =
                 mFragController.get().findPreference(
                         MagnificationFollowTypingPreferenceController.PREF_KEY);
         assertThat(switchPreference).isNotNull();
@@ -144,13 +151,12 @@
     }
 
     @Test
-    @Ignore
     public void onResume_disableFollowingTyping_switchPreferenceShouldReturnFalse() {
         setKeyFollowTypingEnabled(false);
 
         mFragController.create(R.id.main_content, /* bundle= */ null).start().resume();
 
-        final SwitchPreference switchPreference =
+        final TwoStatePreference switchPreference =
                 mFragController.get().findPreference(
                         MagnificationFollowTypingPreferenceController.PREF_KEY);
         assertThat(switchPreference).isNotNull();
@@ -158,7 +164,6 @@
     }
 
     @Test
-    @Ignore
     public void onResume_haveRegisterToSpecificUris() {
         ShadowContentResolver shadowContentResolver = Shadows.shadowOf(
                 mContext.getContentResolver());
@@ -187,7 +192,6 @@
     }
 
     @Test
-    @Ignore
     public void hasValueInSettings_putValue_hasValue() {
         setMagnificationTripleTapEnabled(/* enabled= */ true);
 
@@ -196,7 +200,26 @@
     }
 
     @Test
-    @Ignore
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_MAGNIFICATION_MULTIPLE_FINGER_MULTIPLE_TAP_GESTURE)
+    public void hasMagnificationValuesInSettings_twoFingerTripleTapIsOn_isTrue() {
+        Settings.Secure.putInt(
+                mContext.getContentResolver(), TWO_FINGER_TRIPLE_TAP_SHORTCUT_KEY, ON);
+
+        assertThat(ToggleScreenMagnificationPreferenceFragment.hasMagnificationValuesInSettings(
+                mContext, UserShortcutType.TWOFINGERTRIPLETAP)).isTrue();
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_MAGNIFICATION_MULTIPLE_FINGER_MULTIPLE_TAP_GESTURE)
+    public void hasMagnificationValuesInSettings_twoFingerTripleTapIsOff_isFalse() {
+        Settings.Secure.putInt(
+                mContext.getContentResolver(), TWO_FINGER_TRIPLE_TAP_SHORTCUT_KEY, OFF);
+
+        assertThat(ToggleScreenMagnificationPreferenceFragment.hasMagnificationValuesInSettings(
+                mContext, UserShortcutType.TWOFINGERTRIPLETAP)).isFalse();
+    }
+
+    @Test
     public void optInAllValuesToSettings_optInValue_haveMatchString() {
         int shortcutTypes = UserShortcutType.SOFTWARE | UserShortcutType.TRIPLETAP;
 
@@ -206,11 +229,21 @@
         assertThat(getStringFromSettings(SOFTWARE_SHORTCUT_KEY)).isEqualTo(
                 MAGNIFICATION_CONTROLLER_NAME);
         assertThat(getMagnificationTripleTapStatus()).isTrue();
-
     }
 
     @Test
-    @Ignore
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_MAGNIFICATION_MULTIPLE_FINGER_MULTIPLE_TAP_GESTURE)
+    public void optInAllValuesToSettings_twoFingerTripleTap_haveMatchString() {
+        int shortcutTypes = UserShortcutType.TWOFINGERTRIPLETAP;
+
+        ToggleScreenMagnificationPreferenceFragment.optInAllMagnificationValuesToSettings(mContext,
+                shortcutTypes);
+
+        assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
+                TWO_FINGER_TRIPLE_TAP_SHORTCUT_KEY, OFF)).isEqualTo(ON);
+    }
+
+    @Test
     public void optInAllValuesToSettings_existOtherValue_optInValue_haveMatchString() {
         putStringIntoSettings(SOFTWARE_SHORTCUT_KEY, PLACEHOLDER_COMPONENT_NAME.flattenToString());
 
@@ -222,7 +255,6 @@
     }
 
     @Test
-    @Ignore
     public void optInAllValuesToSettings_software_sizeValueIsNull_putLargeSizeValue() {
         ShadowSettings.ShadowSecure.reset();
 
@@ -236,7 +268,6 @@
     }
 
     @Test
-    @Ignore
     public void optInAllValuesToSettings_software_sizeValueIsNotNull_sizeValueIsNotChanged() {
         for (int size : new int[] {FloatingMenuSizePreferenceController.Size.LARGE,
                 FloatingMenuSizePreferenceController.Size.SMALL}) {
@@ -255,7 +286,6 @@
     }
 
     @Test
-    @Ignore
     public void optInAllValuesToSettings_hardware_sizeValueIsNotChanged() {
         for (int size : new int[] {FloatingMenuSizePreferenceController.Size.UNKNOWN,
                 FloatingMenuSizePreferenceController.Size.LARGE,
@@ -274,7 +304,6 @@
     }
 
     @Test
-    @Ignore
     public void optInAllValuesToSettings_tripletap_sizeValueIsNotChanged() {
         for (int size : new int[] {FloatingMenuSizePreferenceController.Size.UNKNOWN,
                 FloatingMenuSizePreferenceController.Size.LARGE,
@@ -293,7 +322,6 @@
     }
 
     @Test
-    @Ignore
     public void optOutAllValuesToSettings_optOutValue_emptyString() {
         putStringIntoSettings(SOFTWARE_SHORTCUT_KEY, MAGNIFICATION_CONTROLLER_NAME);
         putStringIntoSettings(HARDWARE_SHORTCUT_KEY, MAGNIFICATION_CONTROLLER_NAME);
@@ -310,7 +338,19 @@
     }
 
     @Test
-    @Ignore
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_MAGNIFICATION_MULTIPLE_FINGER_MULTIPLE_TAP_GESTURE)
+    public void optOutAllValuesToSettings_twoFingerTripleTap_settingsValueIsOff() {
+        Settings.Secure.putInt(mContext.getContentResolver(),
+                TWO_FINGER_TRIPLE_TAP_SHORTCUT_KEY, ON);
+
+        ToggleScreenMagnificationPreferenceFragment.optOutAllMagnificationValuesFromSettings(
+                mContext, UserShortcutType.TWOFINGERTRIPLETAP);
+
+        assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
+                TWO_FINGER_TRIPLE_TAP_SHORTCUT_KEY, ON)).isEqualTo(OFF);
+    }
+
+    @Test
     public void optOutValueFromSettings_existOtherValue_optOutValue_haveMatchString() {
         putStringIntoSettings(SOFTWARE_SHORTCUT_KEY,
                 PLACEHOLDER_COMPONENT_NAME.flattenToString() + ":" + MAGNIFICATION_CONTROLLER_NAME);
@@ -328,7 +368,6 @@
     }
 
     @Test
-    @Ignore
     public void updateShortcutPreferenceData_assignDefaultValueToVariable() {
         mFragController.create(R.id.main_content, /* bundle= */ null).start().resume();
 
@@ -341,7 +380,6 @@
     }
 
     @Test
-    @Ignore
     public void updateShortcutPreferenceData_hasValueInSettings_assignToVariable() {
         putStringIntoSettings(SOFTWARE_SHORTCUT_KEY, MAGNIFICATION_CONTROLLER_NAME);
         setMagnificationTripleTapEnabled(/* enabled= */ true);
@@ -355,7 +393,6 @@
     }
 
     @Test
-    @Ignore
     public void updateShortcutPreferenceData_hasValueInSharedPreference_assignToVariable() {
         final PreferredShortcut tripleTapShortcut = new PreferredShortcut(
                 MAGNIFICATION_CONTROLLER_NAME, UserShortcutType.TRIPLETAP);
@@ -370,7 +407,35 @@
     }
 
     @Test
-    @Ignore
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_MAGNIFICATION_MULTIPLE_FINGER_MULTIPLE_TAP_GESTURE)
+    public void updateShortcutPreferenceData_hasTwoFingerTripleTapInSettings_assignToVariable() {
+        Settings.Secure.putInt(
+                mContext.getContentResolver(), TWO_FINGER_TRIPLE_TAP_SHORTCUT_KEY, ON);
+        mFragController.create(R.id.main_content, /* bundle= */ null).start().resume();
+
+        mFragController.get().updateShortcutPreferenceData();
+
+        final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
+                MAGNIFICATION_CONTROLLER_NAME, UserShortcutType.SOFTWARE);
+        assertThat(expectedType).isEqualTo(UserShortcutType.TWOFINGERTRIPLETAP);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_MAGNIFICATION_MULTIPLE_FINGER_MULTIPLE_TAP_GESTURE)
+    public void updateShortcutPreferenceData_hasTwoFingerTripleTapInSharedPref_assignToVariable() {
+        final PreferredShortcut tripleTapShortcut = new PreferredShortcut(
+                MAGNIFICATION_CONTROLLER_NAME, UserShortcutType.TWOFINGERTRIPLETAP);
+        putUserShortcutTypeIntoSharedPreference(mContext, tripleTapShortcut);
+        mFragController.create(R.id.main_content, /* bundle= */ null).start().resume();
+
+        mFragController.get().updateShortcutPreferenceData();
+
+        final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
+                MAGNIFICATION_CONTROLLER_NAME, UserShortcutType.SOFTWARE);
+        assertThat(expectedType).isEqualTo(UserShortcutType.TWOFINGERTRIPLETAP);
+    }
+
+    @Test
     public void setupMagnificationEditShortcutDialog_shortcutPreferenceOff_checkboxIsEmptyValue() {
         ToggleScreenMagnificationPreferenceFragment fragment =
                 mFragController.create(R.id.main_content, /* bundle= */
@@ -386,7 +451,6 @@
     }
 
     @Test
-    @Ignore
     public void setupMagnificationEditShortcutDialog_shortcutPreferenceOn_checkboxIsSavedValue() {
         ToggleScreenMagnificationPreferenceFragment fragment =
                 mFragController.create(R.id.main_content, /* bundle= */
@@ -407,7 +471,27 @@
     }
 
     @Test
-    @Ignore
+    @RequiresFlagsEnabled(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.TWOFINGERTRIPLETAP);
+        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.TWOFINGERTRIPLETAP);
+    }
+
+    @Test
     public void restoreValueFromSavedInstanceState_assignToVariable() {
         final Bundle fragmentState = createFragmentSavedInstanceState(
                 UserShortcutType.HARDWARE | UserShortcutType.TRIPLETAP);
@@ -429,7 +513,28 @@
     }
 
     @Test
-    @Ignore
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_MAGNIFICATION_MULTIPLE_FINGER_MULTIPLE_TAP_GESTURE)
+    public void restoreValueFromSavedInstanceState_twoFingerTripleTap_assignToVariable() {
+        final Bundle fragmentState =
+                createFragmentSavedInstanceState(UserShortcutType.TWOFINGERTRIPLETAP);
+        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, UserShortcutType.SOFTWARE);
+        assertThat(value).isEqualTo(UserShortcutType.TWOFINGERTRIPLETAP);
+        assertThat(expectedType).isEqualTo(UserShortcutType.TWOFINGERTRIPLETAP);
+    }
+
+    @Test
     public void onCreateView_magnificationAreaNotSupported_settingsPreferenceIsNull() {
         setWindowMagnificationSupported(
                 /* magnificationAreaSupported= */ false,
@@ -441,7 +546,6 @@
     }
 
     @Test
-    @Ignore
     public void onCreateView_windowMagnificationNotSupported_settingsPreferenceIsNull() {
         setWindowMagnificationSupported(
                 /* magnificationAreaSupported= */ true,
@@ -453,7 +557,6 @@
     }
 
     @Test
-    @Ignore
     public void onCreateView_setDialogDelegateAndAddTheControllerToLifeCycleObserver() {
         Correspondence instanceOf = Correspondence.transforming(
                 observer -> (observer instanceof MagnificationModePreferenceController),
@@ -471,7 +574,6 @@
     }
 
     @Test
-    @Ignore
     public void onCreateDialog_setDialogDelegate_invokeDialogDelegate() {
         ToggleScreenMagnificationPreferenceFragment fragment =
                 mFragController.create(
@@ -488,7 +590,6 @@
     }
 
     @Test
-    @Ignore
     public void getMetricsCategory_returnsCorrectCategory() {
         ToggleScreenMagnificationPreferenceFragment fragment =
                 mFragController.create(
@@ -499,7 +600,6 @@
     }
 
     @Test
-    @Ignore
     public void getHelpResource_returnsCorrectHelpResource() {
         ToggleScreenMagnificationPreferenceFragment fragment =
                 mFragController.create(
@@ -509,7 +609,6 @@
     }
 
     @Test
-    @Ignore
     public void onProcessArguments_defaultArgumentUnavailable_shouldSetDefaultArguments() {
         ToggleScreenMagnificationPreferenceFragment fragment =
                 mFragController.create(
@@ -524,7 +623,6 @@
     }
 
     @Test
-    @Ignore
     public void getSummary_magnificationEnabled_returnShortcutOnWithSummary() {
         setMagnificationTripleTapEnabled(true);
 
@@ -535,7 +633,6 @@
     }
 
     @Test
-    @Ignore
     public void getSummary_magnificationDisabled_returnShortcutOffWithSummary() {
         setMagnificationTripleTapEnabled(false);
 
@@ -545,6 +642,29 @@
                         mContext.getString(R.string.generic_accessibility_feature_shortcut_off));
     }
 
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_MAGNIFICATION_MULTIPLE_FINGER_MULTIPLE_TAP_GESTURE)
+    public void getSummary_magnificationGestureEnabled_returnShortcutOnWithSummary() {
+        Settings.Secure.putInt(
+                mContext.getContentResolver(), TWO_FINGER_TRIPLE_TAP_SHORTCUT_KEY, ON);
+
+        assertThat(
+                ToggleScreenMagnificationPreferenceFragment.getServiceSummary(mContext).toString())
+                .isEqualTo(mContext.getString(R.string.accessibility_summary_shortcut_enabled));
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_MAGNIFICATION_MULTIPLE_FINGER_MULTIPLE_TAP_GESTURE)
+    public void getSummary_magnificationGestureDisabled_returnShortcutOffWithSummary() {
+        Settings.Secure.putInt(
+                mContext.getContentResolver(), TWO_FINGER_TRIPLE_TAP_SHORTCUT_KEY, OFF);
+
+        assertThat(
+                ToggleScreenMagnificationPreferenceFragment.getServiceSummary(mContext).toString())
+                .isEqualTo(
+                        mContext.getString(R.string.generic_accessibility_feature_shortcut_off));
+    }
+
     private void putStringIntoSettings(String key, String componentName) {
         Settings.Secure.putString(mContext.getContentResolver(), key, componentName);
     }
diff --git a/tests/robotests/src/com/android/settings/accounts/WorkModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/WorkModePreferenceControllerTest.java
index d6be73d..e53ed10 100644
--- a/tests/robotests/src/com/android/settings/accounts/WorkModePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/WorkModePreferenceControllerTest.java
@@ -115,11 +115,11 @@
 
     @Test
     public void onPreferenceChange_shouldRequestQuietModeEnabled() {
-        mController.onSwitchChanged(mSwitch, true);
+        mController.onCheckedChanged(mSwitch, true);
 
         verify(mUserManager).requestQuietModeEnabled(false, mManagedUser);
 
-        mController.onSwitchChanged(mSwitch, false);
+        mController.onCheckedChanged(mSwitch, false);
 
         verify(mUserManager).requestQuietModeEnabled(true, mManagedUser);
     }
diff --git a/tests/robotests/src/com/android/settings/applications/AppDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/applications/AppDashboardFragmentTest.java
index 0eca43c..5137516 100644
--- a/tests/robotests/src/com/android/settings/applications/AppDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/applications/AppDashboardFragmentTest.java
@@ -16,12 +16,24 @@
 
 package com.android.settings.applications;
 
+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 android.content.Context;
 
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.os.Bundle;
+
+import com.android.settings.applications.appcompat.UserAspectRatioAppsPreferenceController;
 import com.android.settings.testutils.XmlTestUtils;
 import com.android.settings.testutils.shadow.ShadowUserManager;
+import com.android.settings.widget.PreferenceCategoryController;
 import com.android.settingslib.core.AbstractPreferenceController;
 import com.android.settingslib.drawer.CategoryKey;
 
@@ -31,6 +43,7 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
+import org.robolectric.shadows.androidx.fragment.FragmentController;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -66,4 +79,22 @@
 
         assertThat(preferenceScreenKeys).containsAtLeastElementsIn(preferenceKeys);
     }
+
+    @Test
+    @Config(shadows = ShadowUserManager.class)
+    public void testAdvancedAppsCategory() {
+        AppDashboardFragment fragment = FragmentController.of(new AppDashboardFragment(),
+                new Bundle()).create().get();
+        UserAspectRatioAppsPreferenceController controller =
+                mock(UserAspectRatioAppsPreferenceController.class);
+        final PreferenceCategoryController advancedController =
+                fragment.getAdvancedAppsPreferenceCategoryController();
+        advancedController.setChildren(List.of(controller));
+
+        when(controller.getAvailabilityStatus()).thenReturn(AVAILABLE);
+        assertTrue(advancedController.isAvailable());
+
+        when(controller.getAvailabilityStatus()).thenReturn(CONDITIONALLY_UNAVAILABLE);
+        assertFalse(advancedController.isAvailable());
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/applications/InstalledAppCounterTest.java b/tests/robotests/src/com/android/settings/applications/InstalledAppCounterTest.java
index cd9cdd6..78cfd36 100644
--- a/tests/robotests/src/com/android/settings/applications/InstalledAppCounterTest.java
+++ b/tests/robotests/src/com/android/settings/applications/InstalledAppCounterTest.java
@@ -32,7 +32,11 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.ApplicationInfo;
+import android.content.pm.FakeFeatureFlagsImpl;
+import android.content.pm.FeatureFlags;
+import android.content.pm.Flags;
 import android.content.pm.PackageManager;
+import android.content.pm.PackageManager.ApplicationInfoFlags;
 import android.content.pm.ResolveInfo;
 import android.content.pm.UserInfo;
 import android.os.UserHandle;
@@ -51,18 +55,20 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
+import java.util.List;
 import java.util.Set;
 
 @RunWith(RobolectricTestRunner.class)
 @LooperMode(LooperMode.Mode.LEGACY)
 public final class InstalledAppCounterTest {
 
-    private final String APP_1 = "app1";
-    private final String APP_2 = "app2";
-    private final String APP_3 = "app3";
-    private final String APP_4 = "app4";
-    private final String APP_5 = "app5";
-    private final String APP_6 = "app6";
+    private static final String APP_1 = "app1";
+    private static final String APP_2 = "app2";
+    private static final String APP_3 = "app3";
+    private static final String APP_4 = "app4";
+    private static final String APP_5 = "app5";
+    private static final String APP_6 = "app6";
+    private static final String APP_7 = "app7";
 
     private final int MAIN_USER_ID = 0;
     private final int MANAGED_PROFILE_ID = 10;
@@ -85,11 +91,16 @@
     private ApplicationInfo mApp4;
     private ApplicationInfo mApp5;
     private ApplicationInfo mApp6;
+    private ApplicationInfo mApp7;
+
+    private FakeFeatureFlagsImpl mFakeFeatureFlags;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
+        mFakeFeatureFlags = new FakeFeatureFlagsImpl();
+        mFakeFeatureFlags.setFlag(Flags.FLAG_ARCHIVING, true);
 
         mApp1 = buildInfo(MAIN_USER_APP_UID, APP_1,
                 ApplicationInfo.FLAG_UPDATED_SYSTEM_APP, 0 /* targetSdkVersion */);
@@ -103,6 +114,9 @@
                 0 /* targetSdkVersion */);
         mApp6 = buildInfo(MANAGED_PROFILE_APP_UID, APP_6, ApplicationInfo.FLAG_SYSTEM,
                 0 /* targetSdkVersion */);
+        mApp7 = buildInfo(MAIN_USER_APP_UID, APP_7, 0 /* flags */,
+                0 /* targetSdkVersion */);
+        mApp7.isArchived = true;
     }
 
     private void expectQueryIntentActivities(int userId, String packageName, boolean launchable) {
@@ -128,8 +142,14 @@
 
         // Verify that installed packages were retrieved the current user and the user's managed
         // profile only.
-        verify(mPackageManager).getInstalledApplicationsAsUser(anyInt(), eq(MAIN_USER_ID));
-        verify(mPackageManager).getInstalledApplicationsAsUser(anyInt(), eq(MANAGED_PROFILE_ID));
+        verify(mPackageManager)
+                .getInstalledApplicationsAsUser(
+                        any(ApplicationInfoFlags.class),
+                        eq(MAIN_USER_ID));
+        verify(mPackageManager)
+                .getInstalledApplicationsAsUser(
+                        any(ApplicationInfoFlags.class),
+                        eq(MANAGED_PROFILE_ID));
         verify(mPackageManager, atLeast(0))
             .queryIntentActivitiesAsUser(any(Intent.class), anyInt(), anyInt());
         verifyNoMoreInteractions(mPackageManager);
@@ -179,6 +199,48 @@
         testCountInstalledAppsAcrossAllUsers(true /* async */);
     }
 
+    @Test
+    public void testCountInstalledApps_archivingDisabled() {
+        when(mUserManager.getProfiles(UserHandle.myUserId())).thenReturn(List.of(
+                new UserInfo(MAIN_USER_ID, "main", UserInfo.FLAG_ADMIN)));
+        // The user has four apps installed:
+        // * app2 is a user-installed app. It should be counted.
+        // * app7 is a user-archived app. It should not be counted.
+        when(mPackageManager.getInstalledApplicationsAsUser(
+                argThat(isApplicationInfoFlagsEqualTo(
+                        ApplicationInfoFlags.of(
+                                PackageManager.GET_DISABLED_COMPONENTS
+                                        | PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS
+                                        | PackageManager.MATCH_ANY_USER))),
+                eq(MAIN_USER_ID))).thenReturn(Arrays.asList(mApp2));
+
+        mFakeFeatureFlags.setFlag(Flags.FLAG_ARCHIVING, false);
+        // Count the number of all apps installed, irrespective of install reason.
+        count(InstalledAppCounter.IGNORE_INSTALL_REASON, mFakeFeatureFlags);
+        assertThat(mInstalledAppCount).isEqualTo(1);
+    }
+
+    @Test
+    public void testCountInstalledApps_archivingEnabled() {
+        when(mUserManager.getProfiles(UserHandle.myUserId())).thenReturn(List.of(
+                new UserInfo(MAIN_USER_ID, "main", UserInfo.FLAG_ADMIN)));
+        // The user has four apps installed:
+        // * app2 is a user-installed app. It should be counted.
+        // * app7 is a user-archived app. It should be counted.
+        when(mPackageManager.getInstalledApplicationsAsUser(
+                argThat(isApplicationInfoFlagsEqualTo(
+                        ApplicationInfoFlags.of(
+                                PackageManager.GET_DISABLED_COMPONENTS
+                                        | PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS
+                                        | PackageManager.MATCH_ANY_USER
+                                        | PackageManager.MATCH_ARCHIVED_PACKAGES))),
+                eq(MAIN_USER_ID))).thenReturn(Arrays.asList(mApp2, mApp7));
+
+        // Count the number of all apps installed, irrespective of install reason.
+        count(InstalledAppCounter.IGNORE_INSTALL_REASON, mFakeFeatureFlags);
+        assertThat(mInstalledAppCount).isEqualTo(2);
+    }
+
     private void count(int installReason, boolean async) {
         mInstalledAppCount = -1;
         final InstalledAppCounterTestable counter = new InstalledAppCounterTestable(installReason);
@@ -191,16 +253,27 @@
         }
     }
 
+    private void count(int installReason, FeatureFlags featureFlags) {
+        mInstalledAppCount = -1;
+        final InstalledAppCounterTestable counter =
+                new InstalledAppCounterTestable(installReason, featureFlags);
+        counter.executeInForeground();
+    }
+
     private void configurePackageManager() {
         // The first user has four apps installed:
         // * app1 is an updated system app. It should be counted.
         // * app2 is a user-installed app. It should be counted.
         // * app3 is a system app that provides a launcher icon. It should be counted.
         // * app4 is a system app that provides no launcher icon. It should not be counted.
-        when(mPackageManager.getInstalledApplicationsAsUser(PackageManager.GET_DISABLED_COMPONENTS
-                | PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS
-                | PackageManager.MATCH_ANY_USER,
-                MAIN_USER_ID)).thenReturn(Arrays.asList(mApp1, mApp2, mApp3, mApp4));
+        ApplicationInfoFlags infoFlags1 = ApplicationInfoFlags.of(
+                PackageManager.GET_DISABLED_COMPONENTS
+                        | PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS
+                        | PackageManager.MATCH_ANY_USER);
+        when(mPackageManager.getInstalledApplicationsAsUser(
+                argThat(isApplicationInfoFlagsEqualTo(infoFlags1)),
+                eq(MAIN_USER_ID))
+        ).thenReturn(Arrays.asList(mApp1, mApp2, mApp3, mApp4));
         // For system apps, InstalledAppCounter checks whether they handle the default launcher
         // intent to decide whether to include them in the count of installed apps or not.
         expectQueryIntentActivities(MAIN_USER_ID, APP_3, true /* launchable */);
@@ -220,9 +293,12 @@
         // The second user has two apps installed:
         // * app5 is a user-installed app. It should be counted.
         // * app6 is a system app that provides a launcher icon. It should be counted.
-        when(mPackageManager.getInstalledApplicationsAsUser(PackageManager.GET_DISABLED_COMPONENTS
-                | PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS,MANAGED_PROFILE_ID))
-                .thenReturn(Arrays.asList(mApp5, mApp6));
+        ApplicationInfoFlags infoFlags2 = ApplicationInfoFlags.of(
+                PackageManager.GET_DISABLED_COMPONENTS
+                        | PackageManager.GET_DISABLED_UNTIL_USED_COMPONENTS);
+        when(mPackageManager.getInstalledApplicationsAsUser(
+                argThat(isApplicationInfoFlagsEqualTo(infoFlags2)), eq(MANAGED_PROFILE_ID))
+        ).thenReturn(Arrays.asList(mApp5, mApp6));
         expectQueryIntentActivities(MANAGED_PROFILE_ID, APP_6, true /* launchable */);
 
         // app5 is installed by enterprise policy.
@@ -238,6 +314,10 @@
             super(mContext, installReason, mPackageManager);
         }
 
+        private InstalledAppCounterTestable(int installReason, FeatureFlags featureFlags) {
+            super(mContext, installReason, mPackageManager, featureFlags);
+        }
+
         @Override
         protected void onCountComplete(int num) {
             mInstalledAppCount = num;
@@ -263,4 +343,14 @@
             return true;
         };
     }
+
+    private ArgumentMatcher<ApplicationInfoFlags> isApplicationInfoFlagsEqualTo(
+            ApplicationInfoFlags infoFlags) {
+        return flags -> {
+            if (flags == null) {
+                return false;
+            }
+            return flags.getValue() == infoFlags.getValue();
+        };
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/applications/appcompat/UserAspectRatioDetailsTest.java b/tests/robotests/src/com/android/settings/applications/appcompat/UserAspectRatioDetailsTest.java
index d98b0e7..b615163 100644
--- a/tests/robotests/src/com/android/settings/applications/appcompat/UserAspectRatioDetailsTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appcompat/UserAspectRatioDetailsTest.java
@@ -21,21 +21,27 @@
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.inOrder;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import android.app.IActivityManager;
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.os.RemoteException;
 
 import androidx.test.core.app.ApplicationProvider;
 
+import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowActivityManager;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.InOrder;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
@@ -56,6 +62,7 @@
     private RadioWithImagePreference mRadioButtonPref;
     private Context mContext;
     private UserAspectRatioDetails mFragment;
+    private MetricsFeatureProvider mMetricsFeatureProvider;
 
     @Before
     public void setUp() {
@@ -67,6 +74,8 @@
         when(mFragment.getAspectRatioManager()).thenReturn(mUserAspectRatioManager);
         ShadowActivityManager.setService(mAm);
         mRadioButtonPref = new RadioWithImagePreference(mContext);
+        final FakeFeatureFactory featureFactory = FakeFeatureFactory.setupForTest();
+        mMetricsFeatureProvider = featureFactory.metricsFeatureProvider;
     }
 
     @Test
@@ -93,4 +102,31 @@
         verify(mUserAspectRatioManager).setUserMinAspectRatio(
                 any(), anyInt(), anyInt());
     }
+
+    @Test
+    public void onRadioButtonClicked_prefChange_logMetrics() throws NullPointerException {
+        // Default was already selected
+        mRadioButtonPref.setKey(KEY_PREF_DEFAULT);
+        mFragment.onRadioButtonClicked(mRadioButtonPref);
+        // Preference changed
+        mRadioButtonPref.setKey(KEY_PREF_3_2);
+        mFragment.onRadioButtonClicked(mRadioButtonPref);
+        InOrder inOrder = inOrder(mMetricsFeatureProvider);
+        // Check the old aspect ratio value is logged as having been unselected
+        inOrder.verify(mMetricsFeatureProvider)
+                .action(
+                        eq(SettingsEnums.PAGE_UNKNOWN),
+                        eq(SettingsEnums.ACTION_USER_ASPECT_RATIO_APP_DEFAULT_UNSELECTED),
+                        eq(SettingsEnums.USER_ASPECT_RATIO_APP_INFO_SETTINGS),
+                        any(),
+                        anyInt());
+        // Check the new aspect ratio value is logged as having been selected
+        inOrder.verify(mMetricsFeatureProvider)
+                .action(
+                        eq(SettingsEnums.PAGE_UNKNOWN),
+                        eq(SettingsEnums.ACTION_USER_ASPECT_RATIO_3_2_SELECTED),
+                        eq(SettingsEnums.USER_ASPECT_RATIO_APP_INFO_SETTINGS),
+                        any(),
+                        anyInt());
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/biometrics/BiometricSettingsProviderTest.kt b/tests/robotests/src/com/android/settings/biometrics/BiometricSettingsProviderTest.kt
new file mode 100644
index 0000000..edb1230
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/biometrics/BiometricSettingsProviderTest.kt
@@ -0,0 +1,92 @@
+/*
+ * 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
+
+import android.content.Context
+import android.content.res.Resources
+import android.net.Uri
+import android.os.Bundle
+import android.platform.test.annotations.RequiresFlagsEnabled
+import android.platform.test.flag.junit.CheckFlagsRule
+import android.platform.test.flag.junit.DeviceFlagsValueProvider
+import com.android.settings.flags.Flags
+import com.google.common.truth.Truth.assertThat
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mockito.spy
+import org.mockito.Mockito.`when` as whenever
+import org.mockito.Spy
+import org.robolectric.RobolectricTestRunner
+import org.robolectric.RuntimeEnvironment
+
+@RunWith(RobolectricTestRunner::class)
+class BiometricSettingsProviderTest {
+  @Spy private var context: Context = spy(RuntimeEnvironment.application)
+  @Spy private var resources: Resources = spy(context.resources)
+  private lateinit var provider: BiometricSettingsProvider
+
+  @get:Rule val checkFlagsRule: CheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule()
+
+  @Before
+  fun setUp() {
+    provider = BiometricSettingsProvider()
+  }
+
+  @Test(expected = UnsupportedOperationException::class)
+  fun query_shouldCrash() {
+    provider.query(Uri.EMPTY, null, null, null, null)
+  }
+
+  @Test(expected = UnsupportedOperationException::class)
+  fun getType_shouldCrash() {
+    provider.getType(Uri.EMPTY)
+  }
+
+  @Test(expected = UnsupportedOperationException::class)
+  fun insert_shouldCrash() {
+    provider.insert(Uri.EMPTY, null)
+  }
+
+  @Test(expected = UnsupportedOperationException::class)
+  fun delete_shouldCrash() {
+    provider.delete(Uri.EMPTY, null, null)
+  }
+
+  @Test(expected = UnsupportedOperationException::class)
+  fun update_shouldCrash() {
+    provider.update(Uri.EMPTY, null, null, null)
+  }
+
+  @Test
+  @RequiresFlagsEnabled(Flags.FLAG_BIOMETRIC_SETTINGS_PROVIDER)
+  fun getSuggestionState_shouldQueryFeatureProvider() {
+    val expectedValue = false
+    setSupportFaceEnroll(expectedValue)
+
+    val bundle =
+      provider.call(BiometricSettingsProvider.GET_SUW_FACE_ENABLED, null, Bundle())
+    assertThat(bundle!!.getString(BiometricSettingsProvider.SUW_FACE_ENABLED))
+      .isEqualTo(expectedValue)
+  }
+
+  private fun setSupportFaceEnroll(toThis: Boolean) {
+    whenever(resources.getBoolean(com.android.settings.R.bool.config_suw_support_face_enroll))
+      .thenReturn(toThis)
+  }
+}
diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensorTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensorTest.java
index 72f1ab8..adf76f4 100644
--- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensorTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensorTest.java
@@ -19,6 +19,7 @@
 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.text.Layout.HYPHENATION_FREQUENCY_NORMAL;
 
 import static com.android.settings.biometrics.BiometricEnrollBase.RESULT_FINISHED;
 import static com.android.settings.biometrics.BiometricEnrollBase.RESULT_SKIP;
@@ -49,6 +50,7 @@
 import android.os.Bundle;
 import android.os.CancellationSignal;
 import android.view.View;
+import android.widget.TextView;
 
 import androidx.fragment.app.Fragment;
 
@@ -62,6 +64,7 @@
 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.HeaderMixin;
 
 import org.junit.After;
 import org.junit.Before;
@@ -568,6 +571,15 @@
         assertThat(appliedThemes.contains("SetupWizardPartnerResource")).isTrue();
     }
 
+    @Test
+    public void fingerprintEnrollFindSensor_setHyphenationFrequencyNormalOnHeader() {
+        setupActivity_onUdfpsDevice();
+        PartnerCustomizationLayout layout = mActivity.findViewById(R.id.setup_wizard_layout);
+        final TextView textView = layout.getMixin(HeaderMixin.class).getTextView();
+
+        assertThat(textView.getHyphenationFrequency()).isEqualTo(HYPHENATION_FREQUENCY_NORMAL);
+    }
+
     private void triggerEnrollProgressAndError_onRearDevice() {
         EnrollmentCallback enrollmentCallback = verifyAndCaptureEnrollmentCallback();
         enrollmentCallback.onEnrollmentProgress(123);
diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintPreferenceTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintPreferenceTest.java
index 116591d..c8c867c 100644
--- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintPreferenceTest.java
@@ -21,6 +21,7 @@
 import static org.mockito.Mockito.verify;
 
 import android.content.Context;
+import android.hardware.fingerprint.Fingerprint;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.FrameLayout;
@@ -60,6 +61,21 @@
     }
 
     @Test
+    public void deleteContentDescription() {
+        final FrameLayout layout = new FrameLayout(mContext);
+        LayoutInflater.from(mContext).inflate(mPreference.getSecondTargetResId(), layout, true);
+        final String fingerprintName = "fingerprint test";
+        mPreference.setFingerprint(new Fingerprint(fingerprintName, 0, 0));
+        final PreferenceViewHolder holder = PreferenceViewHolder.createInstanceForTests(layout);
+        mPreference.onBindViewHolder(holder);
+
+        final View view = layout.findViewById(R.id.delete_button);
+        String expectedContentDescription =
+                mContext.getString(R.string.delete) + " " + fingerprintName;
+        assertThat(view.getContentDescription().toString()).isEqualTo(expectedContentDescription);
+    }
+
+    @Test
     public void bindAndClickDeleteButton_shouldInvokeOnDeleteListener() {
         final FrameLayout layout = new FrameLayout(mContext);
         LayoutInflater.from(mContext).inflate(mPreference.getSecondTargetResId(), layout, true);
diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint2/fragment/FingerprintEnrollIntroFragmentTest.kt b/tests/robotests/src/com/android/settings/biometrics/fingerprint2/fragment/FingerprintEnrollIntroFragmentTest.kt
new file mode 100644
index 0000000..024f346
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint2/fragment/FingerprintEnrollIntroFragmentTest.kt
@@ -0,0 +1,179 @@
+/*
+ * 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.fragment
+
+import android.content.Context
+import android.os.Bundle
+import androidx.fragment.app.testing.FragmentScenario
+import androidx.fragment.app.testing.launchFragmentInContainer
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.ViewModelProvider
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.espresso.Espresso.onView
+import androidx.test.espresso.assertion.ViewAssertions.doesNotExist
+import androidx.test.espresso.assertion.ViewAssertions.matches
+import androidx.test.espresso.matcher.ViewMatchers.Visibility
+import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
+import androidx.test.espresso.matcher.ViewMatchers.withEffectiveVisibility
+import androidx.test.espresso.matcher.ViewMatchers.withId
+import androidx.test.espresso.matcher.ViewMatchers.withText
+import androidx.test.runner.AndroidJUnit4
+import com.android.settings.R
+import com.android.settings.biometrics.fingerprint2.shared.model.Default
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment.FingerprintEnrollIntroV2Fragment
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollNavigationViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintGatekeeperViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintScrollViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.GatekeeperInfo
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Intro
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.NavState
+import com.android.settings.testutils2.FakeFingerprintManagerInteractor
+import com.google.android.setupdesign.GlifLayout
+import com.google.android.setupdesign.template.RequireScrollMixin
+import kotlinx.coroutines.test.StandardTestDispatcher
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class FingerprintEnrollIntroFragmentTest {
+  private var context: Context = ApplicationProvider.getApplicationContext()
+  private var interactor = FakeFingerprintManagerInteractor()
+
+  private val gatekeeperViewModel =
+    FingerprintGatekeeperViewModel(
+      GatekeeperInfo.GatekeeperPasswordInfo(byteArrayOf(1, 2, 3), 100L),
+      interactor
+    )
+  private val backgroundDispatcher = StandardTestDispatcher()
+  private lateinit var fragmentScenario: FragmentScenario<FingerprintEnrollIntroV2Fragment>
+
+  private val navigationViewModel =
+    FingerprintEnrollNavigationViewModel(
+      backgroundDispatcher,
+      interactor,
+      gatekeeperViewModel,
+      Intro,
+      NavState(true),
+      Default,
+    )
+  private var fingerprintViewModel =
+    FingerprintEnrollViewModel(interactor, gatekeeperViewModel, navigationViewModel)
+  private var fingerprintScrollViewModel = FingerprintScrollViewModel()
+
+  @Before
+  fun setup() {
+    val factory =
+      object : ViewModelProvider.Factory {
+        @Suppress("UNCHECKED_CAST")
+        override fun <T : ViewModel> create(
+          modelClass: Class<T>,
+        ): T {
+          return when (modelClass) {
+            FingerprintEnrollViewModel::class.java -> fingerprintViewModel
+            FingerprintScrollViewModel::class.java -> fingerprintScrollViewModel
+            FingerprintEnrollNavigationViewModel::class.java -> navigationViewModel
+            FingerprintGatekeeperViewModel::class.java -> gatekeeperViewModel
+            else -> null
+          }
+            as T
+        }
+      }
+
+    fragmentScenario =
+      launchFragmentInContainer(Bundle(), R.style.SudThemeGlif) {
+        FingerprintEnrollIntroV2Fragment(factory)
+      }
+  }
+
+  @Test
+  fun testScrollToBottomButtonChangesText() {
+    fragmentScenario.onFragment { fragment ->
+      onView(withText("I agree")).check(doesNotExist())
+      val someView = (fragment.requireView().findViewById<GlifLayout>(R.id.setup_wizard_layout))!!
+      val scrollMixin = someView.getMixin(RequireScrollMixin::class.java)!!
+      val listener = scrollMixin.onRequireScrollStateChangedListener
+      // This actually changes the button text
+      listener.onRequireScrollStateChanged(false)
+
+      onView(withText("I agree")).check(matches(isDisplayed()))
+    }
+  }
+
+  @Test
+  fun testBasicTitle() {
+    onView(withText(R.string.security_settings_fingerprint_enroll_introduction_title))
+      .check(matches(withEffectiveVisibility(Visibility.VISIBLE)))
+  }
+
+  @Test
+  fun testFooterMessageTwo() {
+    onView(withId(R.id.footer_message_2))
+      .check(
+        matches(
+          withText(
+            context.getString(
+              (R.string.security_settings_fingerprint_v2_enroll_introduction_footer_message_2)
+            )
+          )
+        )
+      )
+  }
+
+  @Test
+  fun testFooterMessageThree() {
+    onView(withId(R.id.footer_message_3))
+      .check(
+        matches(
+          withText(
+            context.getString(
+              (R.string.security_settings_fingerprint_v2_enroll_introduction_footer_message_3)
+            )
+          )
+        )
+      )
+  }
+
+  @Test
+  fun testFooterMessageFour() {
+    onView(withId(R.id.footer_message_4))
+      .check(
+        matches(
+          withText(
+            context.getString(
+              (R.string.security_settings_fingerprint_v2_enroll_introduction_footer_message_4)
+            )
+          )
+        )
+      )
+  }
+
+  @Test
+  fun testFooterMessageFive() {
+    onView(withId(R.id.footer_message_5))
+      .check(
+        matches(
+          withText(
+            context.getString(
+              (R.string.security_settings_fingerprint_v2_enroll_introduction_footer_message_5)
+            )
+          )
+        )
+      )
+  }
+}
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsDataSyncControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsDataSyncControllerTest.java
index 799f7fc..8fa3e8a 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsDataSyncControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsDataSyncControllerTest.java
@@ -25,7 +25,7 @@
 import android.companion.datatransfer.PermissionSyncRequest;
 
 import androidx.preference.PreferenceCategory;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
@@ -56,7 +56,7 @@
     private CompanionDeviceManager mCompanionDeviceManager;
 
     private PermissionSyncRequest mPermissionSyncRequest;
-    private SwitchPreference mPermSyncPreference;
+    private TwoStatePreference mPermSyncPreference;
 
     @Before
     public void setUp() {
@@ -92,6 +92,14 @@
     }
 
     @Test
+    public void refresh_noAssociations_checkPreferenceInvisible() {
+        mController.mAssociationId = DUMMY_ASSOCIATION_ID;
+        mController.refresh();
+
+        assertThat(mPermSyncPreference.isVisible()).isFalse();
+    }
+
+    @Test
     public void refresh_permSyncNull_checkPreferenceInvisible() {
         mPermissionSyncRequest = null;
         when(mCompanionDeviceManager.getPermissionSyncRequest(ASSOCIATION_ID)).thenReturn(
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHearingDeviceControlsControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHearingDeviceControlsControllerTest.java
index bf4e055..364d299 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHearingDeviceControlsControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHearingDeviceControlsControllerTest.java
@@ -23,7 +23,6 @@
 
 import android.content.Context;
 import android.content.Intent;
-import android.util.FeatureFlagUtils;
 
 import androidx.preference.Preference;
 
@@ -63,8 +62,6 @@
 
     @Test
     public void isAvailable_isHearingAidDevice_available() {
-        FeatureFlagUtils.setEnabled(mContext,
-                FeatureFlagUtils.SETTINGS_ACCESSIBILITY_HEARING_AID_PAGE, true);
         when(mCachedDevice.isHearingAidDevice()).thenReturn(true);
 
         assertThat(mController.isAvailable()).isTrue();
@@ -72,8 +69,6 @@
 
     @Test
     public void isAvailable_isNotHearingAidDevice_notAvailable() {
-        FeatureFlagUtils.setEnabled(mContext,
-                FeatureFlagUtils.SETTINGS_ACCESSIBILITY_HEARING_AID_PAGE, true);
         when(mCachedDevice.isHearingAidDevice()).thenReturn(false);
 
         assertThat(mController.isAvailable()).isFalse();
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherControllerTest.java
index 2bd2d74..c02ec32 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherControllerTest.java
@@ -20,6 +20,8 @@
 
 import static org.mockito.Mockito.when;
 
+import android.bluetooth.BluetoothDevice;
+
 import com.android.settings.R;
 import com.android.settings.applications.SpacePreference;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
@@ -65,7 +67,7 @@
 
     /** Test the pair other side button title during initialization. */
     @Test
-    public void init_leftSideDevice_pairRightSideButtonTitle() {
+    public void init_deviceIsLeftSide_showPairRightSideTitle() {
         when(mCachedDevice.getDeviceSide()).thenReturn(HearingAidInfo.DeviceSide.SIDE_LEFT);
 
         mController.init(mScreen);
@@ -76,7 +78,7 @@
 
     /** Test the pair other side button title during initialization. */
     @Test
-    public void init_rightSideDevice_pairLeftSideButtonTitle() {
+    public void init_deviceIsRightSide_showPairLeftSideTitle() {
         when(mCachedDevice.getDeviceSide()).thenReturn(HearingAidInfo.DeviceSide.SIDE_RIGHT);
 
         mController.init(mScreen);
@@ -87,7 +89,7 @@
 
     /** Test the pair other side button visibility during initialization. */
     @Test
-    public void init_isNotConnectedHearingAidDevice_preferenceIsNotVisible() {
+    public void init_deviceIsNotConnectedHearingAid_preferenceIsNotVisible() {
         when(mCachedDevice.isConnectedHearingAidDevice()).thenReturn(false);
 
         mController.init(mScreen);
@@ -99,13 +101,13 @@
     /**
      * Test if the controller is available.
      * Conditions:
-     *      1. Hearing aids is not connected
+     *      1. The device is not a connected hearing aid
      * Expected result:
      *      The controller is not available. No need to show pair other side hint for
-     *      not connected device.
+     *      non-hearing aid device or not connected device.
      */
     @Test
-    public void isAvailable_isNotConnectedHearingAidDevice_notAvailable() {
+    public void isAvailable_deviceIsNotConnectedHearingAid_notAvailable() {
         when(mCachedDevice.isConnectedHearingAidDevice()).thenReturn(false);
 
         assertThat(mController.isAvailable()).isFalse();
@@ -114,13 +116,13 @@
     /**
      * Test if the controller is available.
      * Conditions:
-     *      1. Monaural hearing aids
+     *      1. Monaural hearing aid
      * Expected result:
      *      The controller is not available. No need to show pair other side hint for
      *      monaural device.
      */
     @Test
-    public void isAvailable_isConnectedHearingAidDevice_isMonaural_notAvailable() {
+    public void isAvailable_deviceIsConnectedHearingAid_isMonaural_notAvailable() {
         when(mCachedDevice.isConnectedHearingAidDevice()).thenReturn(true);
         when(mCachedDevice.getDeviceMode()).thenReturn(HearingAidInfo.DeviceMode.MODE_MONAURAL);
 
@@ -130,18 +132,17 @@
     /**
      * Test if the controller is available.
      * Conditions:
-     *      1. Binaural ASHA hearing aids
+     *      1. Binaural hearing aids
      *      2. Sub device is added
-     *      3. Sub device is connected
+     *      3. Sub device is bonded
      * Expected result:
-     *      The controller is not available. Both sides are already paired and connected.
+     *      The controller is not available. Both sides are already paired.
      */
     @Test
-    public void isAvailable_ashaDevice_otherDeviceIsConnected_notAvailable() {
+    public void isAvailable_deviceIsConnectedHearingAid_subDeviceIsBonded_notAvailable() {
         when(mCachedDevice.isConnectedHearingAidDevice()).thenReturn(true);
-        when(mCachedDevice.isConnectedAshaHearingAidDevice()).thenReturn(true);
         when(mCachedDevice.getDeviceMode()).thenReturn(HearingAidInfo.DeviceMode.MODE_BINAURAL);
-        when(mSubCachedDevice.isConnectedAshaHearingAidDevice()).thenReturn(true);
+        when(mSubCachedDevice.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED);
         when(mCachedDevice.getSubDevice()).thenReturn(mSubCachedDevice);
 
         assertThat(mController.isAvailable()).isFalse();
@@ -150,18 +151,17 @@
     /**
      * Test if the controller is available.
      * Conditions:
-     *      1. Binaural ASHA hearing aids
+     *      1. Binaural hearing aids
      *      2. Sub device is added
-     *      3. Sub device is not connected
+     *      3. Sub device is not bonded
      * Expected result:
      *      The controller is available. Need to show the hint to pair the other side.
      */
     @Test
-    public void isAvailable_ashaDevice_otherDeviceIsNotConnected_available() {
+    public void isAvailable_deviceIsConnectedHearingAid_subDeviceIsNotBonded_available() {
         when(mCachedDevice.isConnectedHearingAidDevice()).thenReturn(true);
-        when(mCachedDevice.isConnectedAshaHearingAidDevice()).thenReturn(true);
         when(mCachedDevice.getDeviceMode()).thenReturn(HearingAidInfo.DeviceMode.MODE_BINAURAL);
-        when(mSubCachedDevice.isConnectedAshaHearingAidDevice()).thenReturn(false);
+        when(mSubCachedDevice.getBondState()).thenReturn(BluetoothDevice.BOND_NONE);
         when(mCachedDevice.getSubDevice()).thenReturn(mSubCachedDevice);
 
         assertThat(mController.isAvailable()).isTrue();
@@ -170,74 +170,55 @@
     /**
      * Test if the controller is available.
      * Conditions:
-     *      1. Binaural ASHA hearing aids
-     *      2. No sub device added
+     *      1. Binaural hearing aids
+     *      2. Member device is added
+     *      3. Member device is bonded
+     * Expected result:
+     *      The controller is not available. Both sides are already paired.
+     */
+    @Test
+    public void isAvailable_deviceIsConnectedHearingAid_memberDeviceIsBonded_notAvailable() {
+        when(mCachedDevice.isConnectedHearingAidDevice()).thenReturn(true);
+        when(mCachedDevice.getDeviceMode()).thenReturn(HearingAidInfo.DeviceMode.MODE_BINAURAL);
+        when(mSubCachedDevice.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED);
+        when(mCachedDevice.getMemberDevice()).thenReturn(Set.of(mSubCachedDevice));
+
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    /**
+     * Test if the controller is available.
+     * Conditions:
+     *      1. Binaural hearing aids
+     *      2. Member device is added
+     *      3. Member device is not bonded
      * Expected result:
      *      The controller is available. Need to show the hint to pair the other side.
      */
     @Test
-    public void isAvailable_ashaDevice_otherDeviceIsNotExist_available() {
+    public void isAvailable_deviceIsConnectedHearingAid_memberDeviceIsNotBonded_available() {
         when(mCachedDevice.isConnectedHearingAidDevice()).thenReturn(true);
-        when(mCachedDevice.isConnectedAshaHearingAidDevice()).thenReturn(true);
+        when(mCachedDevice.getDeviceMode()).thenReturn(HearingAidInfo.DeviceMode.MODE_BINAURAL);
+        when(mSubCachedDevice.getBondState()).thenReturn(BluetoothDevice.BOND_NONE);
+        when(mCachedDevice.getMemberDevice()).thenReturn(Set.of(mSubCachedDevice));
+
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    /**
+     * Test if the controller is available.
+     * Conditions:
+     *      1. Binaural hearing aids
+     *      2. No sub device is added
+     *      2. No member device is added
+     * Expected result:
+     *      The controller is available. Need to show the hint to pair the other side.
+     */
+    @Test
+    public void isAvailable_deviceIsConnectedHearingAid_otherDeviceIsNotExist_available() {
+        when(mCachedDevice.isConnectedHearingAidDevice()).thenReturn(true);
         when(mCachedDevice.getDeviceMode()).thenReturn(HearingAidInfo.DeviceMode.MODE_BINAURAL);
         when(mCachedDevice.getSubDevice()).thenReturn(null);
-
-        assertThat(mController.isAvailable()).isTrue();
-    }
-
-    /**
-     * Test if the controller is available.
-     * Conditions:
-     *      1. Binaural LE Audio hearing aids
-     *      2. Member device is added
-     *      3. Member device is connected
-     * Expected result:
-     *      The controller is not available. Both sides are already paired and connected.
-     */
-    @Test
-    public void isAvailable_leAudioDevice_otherDeviceIsConnected_notAvailable() {
-        when(mCachedDevice.isConnectedHearingAidDevice()).thenReturn(true);
-        when(mCachedDevice.isConnectedLeAudioHearingAidDevice()).thenReturn(true);
-        when(mCachedDevice.getDeviceMode()).thenReturn(HearingAidInfo.DeviceMode.MODE_BINAURAL);
-        when(mSubCachedDevice.isConnectedLeAudioHearingAidDevice()).thenReturn(true);
-        when(mCachedDevice.getMemberDevice()).thenReturn(Set.of(mSubCachedDevice));
-
-        assertThat(mController.isAvailable()).isFalse();
-    }
-
-    /**
-     * Test if the controller is available.
-     * Conditions:
-     *      1. Binaural LE Audio hearing aids
-     *      2. Member device is added
-     *      3. Member device is not connected
-     * Expected result:
-     *      The controller is available. Need to show the hint to pair the other side.
-     */
-    @Test
-    public void isAvailable_leAudioDevice_otherDeviceIsNotConnected_available() {
-        when(mCachedDevice.isConnectedHearingAidDevice()).thenReturn(true);
-        when(mCachedDevice.isConnectedLeAudioHearingAidDevice()).thenReturn(true);
-        when(mCachedDevice.getDeviceMode()).thenReturn(HearingAidInfo.DeviceMode.MODE_BINAURAL);
-        when(mSubCachedDevice.isConnectedLeAudioHearingAidDevice()).thenReturn(false);
-        when(mCachedDevice.getMemberDevice()).thenReturn(Set.of(mSubCachedDevice));
-
-        assertThat(mController.isAvailable()).isTrue();
-    }
-
-    /**
-     * Test if the controller is available.
-     * Conditions:
-     *      1. Binaural LE Audio hearing aids
-     *      2. No member device added
-     * Expected result:
-     *      The controller is available. Need to show the hint to pair the other side.
-     */
-    @Test
-    public void isAvailable_leAudioDevice_otherDeviceIsNotExist_available() {
-        when(mCachedDevice.isConnectedHearingAidDevice()).thenReturn(true);
-        when(mCachedDevice.isConnectedLeAudioHearingAidDevice()).thenReturn(true);
-        when(mCachedDevice.getDeviceMode()).thenReturn(HearingAidInfo.DeviceMode.MODE_BINAURAL);
         when(mCachedDevice.getMemberDevice()).thenReturn(new HashSet<>());
 
         assertThat(mController.isAvailable()).isTrue();
@@ -245,7 +226,7 @@
 
     /** Test the pair other side button title after refreshing. */
     @Test
-    public void refresh_rightSideDevice_pairLeftSideButtonTitle() {
+    public void refresh_deviceIsRightSide_showPairLeftSideTitle() {
         when(mCachedDevice.getDeviceSide()).thenReturn(HearingAidInfo.DeviceSide.SIDE_RIGHT);
         mController.init(mScreen);
 
@@ -257,7 +238,7 @@
 
     /** Test the pair other side button visibility after refreshing. */
     @Test
-    public void refresh_isNotConnectedHearingAidDevice_preferenceIsNotVisible() {
+    public void refresh_deviceIsNotConnectedHearingAid_preferenceIsNotVisible() {
         when(mCachedDevice.isConnectedHearingAidDevice()).thenReturn(false);
         mController.init(mScreen);
 
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsProfilesControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsProfilesControllerTest.java
index 76023c5..ad7c984 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsProfilesControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsProfilesControllerTest.java
@@ -28,6 +28,7 @@
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothProfile;
 import android.content.Context;
+import android.sysprop.BluetoothProperties;
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceCategory;
@@ -41,6 +42,8 @@
 import com.android.settingslib.bluetooth.MapProfile;
 import com.android.settingslib.bluetooth.PbapServerProfile;
 
+import com.google.common.collect.Lists;
+
 import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -60,6 +63,8 @@
 @Config(shadows = ShadowBluetoothDevice.class)
 public class BluetoothDetailsProfilesControllerTest extends BluetoothDetailsControllerTestBase {
 
+    private static final String LE_DEVICE_MODEL = "le_audio_headset";
+    private static final String NON_LE_DEVICE_MODEL = "non_le_audio_headset";
     private BluetoothDetailsProfilesController mController;
     private List<LocalBluetoothProfile> mConnectableProfiles;
     private PreferenceCategory mProfiles;
@@ -88,6 +93,7 @@
         mProfiles.setKey(mController.getPreferenceKey());
         mController.mProfilesContainer = mProfiles;
         mScreen.addPreference(mProfiles);
+        BluetoothProperties.le_audio_allow_list(Lists.newArrayList(LE_DEVICE_MODEL));
     }
 
     static class FakeBluetoothProfile implements LocalBluetoothProfile {
@@ -472,4 +478,15 @@
 
         verify(mProfileManager).removeServiceListener(mController);
     }
+
+    @Test
+    public void isDeviceInAllowList_returnTrue() {
+        assertThat(mController.isModelNameInAllowList(LE_DEVICE_MODEL)).isTrue();
+    }
+
+    @Test
+    public void isDeviceInAllowList_returnFalse() {
+        assertThat(mController.isModelNameInAllowList(null)).isFalse();
+        assertThat(mController.isModelNameInAllowList(NON_LE_DEVICE_MODEL)).isFalse();
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioControllerTest.java
index ce5631f..de70330 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioControllerTest.java
@@ -32,7 +32,7 @@
 import android.media.Spatializer;
 
 import androidx.preference.PreferenceCategory;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
@@ -68,8 +68,8 @@
     private AudioDeviceAttributes mAvailableDevice;
 
     private BluetoothDetailsSpatialAudioController mController;
-    private SwitchPreference mSpatialAudioPref;
-    private SwitchPreference mHeadTrackingPref;
+    private TwoStatePreference mSpatialAudioPref;
+    private TwoStatePreference mHeadTrackingPref;
 
     @Before
     public void setUp() {
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothEnablerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothEnablerTest.java
index cc1087e..4b82782 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothEnablerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothEnablerTest.java
@@ -39,8 +39,6 @@
 import androidx.preference.PreferenceViewHolder;
 
 import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
-import com.android.settings.widget.SwitchBar;
-import com.android.settings.widget.SwitchBarController;
 import com.android.settings.widget.SwitchWidgetController;
 import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
 import com.android.settingslib.RestrictedSwitchPreference;
@@ -80,6 +78,7 @@
     private SwitchWidgetController.OnSwitchChangeListener mCallback;
 
     private Context mContext;
+    @Mock
     private SwitchWidgetController mSwitchController;
     private BluetoothEnabler mBluetoothEnabler;
     private ShadowBluetoothAdapter mShadowBluetoothAdapter;
@@ -90,7 +89,6 @@
         mContext = spy(RuntimeEnvironment.application);
 
         mRestrictedSwitchPreference = new RestrictedSwitchPreference(mContext);
-        mSwitchController = spy(new SwitchBarController(new SwitchBar(mContext)));
         mBluetoothEnabler = new BluetoothEnabler(
                 mContext,
                 mSwitchController,
@@ -215,7 +213,7 @@
         verify(mSwitchController, never()).setChecked(anyBoolean());
         mBluetoothEnabler.resume(mContext);
         verify(mSwitchController, never()).setChecked(false);
-        verify(mSwitchController).setChecked(true);
+        when(mSwitchController.isChecked()).thenReturn(true);
 
         // Now simulate bluetooth being turned off via an event.
         BroadcastReceiver receiver = captor.getValue();
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceDashboardFragmentTest.java
index aed3787..107d77c 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceDashboardFragmentTest.java
@@ -23,7 +23,6 @@
 import android.nfc.NfcAdapter;
 import android.provider.SearchIndexableResource;
 
-import com.android.settings.nfc.AndroidBeamPreferenceController;
 import com.android.settings.testutils.shadow.ShadowConnectivityManager;
 import com.android.settings.testutils.shadow.ShadowNfcAdapter;
 import com.android.settings.testutils.shadow.ShadowUserManager;
@@ -78,14 +77,4 @@
     public void testGetCategoryKey_returnCategoryDevice() {
         assertThat(mFragment.getCategoryKey()).isEqualTo(CategoryKey.CATEGORY_DEVICE);
     }
-
-    @Test
-    public void testSearchIndexProvider_correctNonIndexables() {
-        mShadowNfcAdapter.setSecureNfcSupported(true);
-        final List<String> niks =
-                AdvancedConnectedDeviceDashboardFragment.SEARCH_INDEX_DATA_PROVIDER
-                        .getNonIndexableKeys(mContext);
-
-        assertThat(niks).contains(AndroidBeamPreferenceController.KEY_ANDROID_BEAM_SETTINGS);
-    }
-}
\ No newline at end of file
+}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragmentTest.java
index d381975..1d1f2f8 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragmentTest.java
@@ -56,6 +56,9 @@
     private static final String KEY_FAST_PAIR_DEVICE_SEE_ALL = "fast_pair_devices_see_all";
     private static final String KEY_FAST_PAIR_DEVICE_LIST = "fast_pair_devices";
     private static final String KEY_ADD_BT_DEVICES = "add_bt_devices";
+    private static final String KEY_AUDIO_SHARING_DEVICE_LIST = "audio_sharing_device_list";
+    private static final String KEY_AUDIO_SHARING_SETTINGS =
+            "connected_device_audio_sharing_settings";
     private static final String SETTINGS_PACKAGE_NAME = "com.android.settings";
     private static final String SYSTEMUI_PACKAGE_NAME = "com.android.systemui";
     private static final String SLICE_ACTION = "com.android.settings.SEARCH_RESULT_TRAMPOLINE";
@@ -93,9 +96,17 @@
         final List<String> niks = ConnectedDeviceDashboardFragment.SEARCH_INDEX_DATA_PROVIDER
                 .getNonIndexableKeys(mContext);
 
-        assertThat(niks).containsExactly(KEY_CONNECTED_DEVICES, KEY_AVAILABLE_DEVICES,
-                KEY_NEARBY_DEVICES, KEY_DISCOVERABLE_FOOTER, KEY_SAVED_DEVICE_SEE_ALL,
-                KEY_FAST_PAIR_DEVICE_SEE_ALL, KEY_FAST_PAIR_DEVICE_LIST);
+        assertThat(niks)
+                .containsExactly(
+                        KEY_CONNECTED_DEVICES,
+                        KEY_AVAILABLE_DEVICES,
+                        KEY_NEARBY_DEVICES,
+                        KEY_DISCOVERABLE_FOOTER,
+                        KEY_SAVED_DEVICE_SEE_ALL,
+                        KEY_FAST_PAIR_DEVICE_SEE_ALL,
+                        KEY_FAST_PAIR_DEVICE_LIST,
+                        KEY_AUDIO_SHARING_DEVICE_LIST,
+                        KEY_AUDIO_SHARING_SETTINGS);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/stylus/StylusDevicesControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/stylus/StylusDevicesControllerTest.java
index b521be1..047a7d5 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/stylus/StylusDevicesControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/stylus/StylusDevicesControllerTest.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.connecteddevice.stylus;
 
+import static android.view.KeyEvent.KEYCODE_STYLUS_BUTTON_TAIL;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.junit.Assert.assertEquals;
@@ -139,6 +141,8 @@
                 .setSources(InputDevice.SOURCE_STYLUS)
                 .build());
         when(mInputDevice.getBluetoothAddress()).thenReturn("SOME:ADDRESS");
+        when(mInputDevice.hasKeys(KEYCODE_STYLUS_BUTTON_TAIL)).thenReturn(
+                new boolean[]{true});
 
         mController = new StylusDevicesController(mContext, mInputDevice, null, mLifecycle);
     }
@@ -221,6 +225,28 @@
     }
 
     @Test
+    public void usiStylusInputDevice_doesntSupportTailButton_tailButtonPreferenceNotShown() {
+        when(mInputDevice.hasKeys(KEYCODE_STYLUS_BUTTON_TAIL)).thenReturn(new boolean[]{false});
+        when(mBluetoothDevice.getMetadata(BluetoothDevice.METADATA_DEVICE_TYPE)).thenReturn(
+                BluetoothDevice.DEVICE_TYPE_WATCH.getBytes());
+        StylusDevicesController controller = new StylusDevicesController(
+                mContext, mInputDevice, mCachedBluetoothDevice, mLifecycle
+        );
+
+        showScreen(controller);
+        Preference handwritingPref = mPreferenceContainer.getPreference(0);
+        Preference buttonPref = mPreferenceContainer.getPreference(1);
+
+        assertThat(mPreferenceContainer.getPreferenceCount()).isEqualTo(2);
+        assertThat(handwritingPref.getTitle().toString()).isEqualTo(
+                mContext.getString(R.string.stylus_textfield_handwriting));
+        assertThat(handwritingPref.isVisible()).isTrue();
+        assertThat(buttonPref.getTitle().toString()).isEqualTo(
+                mContext.getString(R.string.stylus_ignore_button));
+        assertThat(buttonPref.isVisible()).isTrue();
+    }
+
+    @Test
     public void btStylusInputDevice_showsAllPreferences() {
         showScreen(mController);
         Preference defaultNotesPref = mPreferenceContainer.getPreference(0);
diff --git a/tests/robotests/src/com/android/settings/core/codeinspection/CodeInspectionTest.java b/tests/robotests/src/com/android/settings/core/codeinspection/CodeInspectionTest.java
index 60753c6..7f3ef9a 100644
--- a/tests/robotests/src/com/android/settings/core/codeinspection/CodeInspectionTest.java
+++ b/tests/robotests/src/com/android/settings/core/codeinspection/CodeInspectionTest.java
@@ -53,7 +53,6 @@
     }
 
     @Test
-    @Ignore
     public void runSliceControllerInXmlInspection() throws Exception {
         new SliceControllerInXmlCodeInspector(mClasses).run();
     }
diff --git a/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectFragmentTest.java b/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectFragmentTest.java
index b595d06..0f0de56 100644
--- a/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectFragmentTest.java
@@ -18,7 +18,9 @@
 
 import static android.content.Intent.EXTRA_USER_ID;
 
+import static com.android.settings.dashboard.profileselector.ProfileSelectFragment.EXTRA_PROFILE;
 import static com.android.settings.dashboard.profileselector.ProfileSelectFragment.PERSONAL_TAB;
+import static com.android.settings.dashboard.profileselector.ProfileSelectFragment.PRIVATE_TAB;
 import static com.android.settings.dashboard.profileselector.ProfileSelectFragment.WORK_TAB;
 
 import static com.google.common.truth.Truth.assertThat;
@@ -29,6 +31,9 @@
 import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
+import android.os.Flags;
+import android.os.UserHandle;
+import android.platform.test.flag.junit.SetFlagsRule;
 
 import androidx.fragment.app.Fragment;
 import androidx.fragment.app.FragmentActivity;
@@ -38,6 +43,7 @@
 import com.android.settings.testutils.shadow.ShadowUserManager;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.MockitoAnnotations;
@@ -60,6 +66,7 @@
     private TestProfileSelectFragment mFragment;
     private FragmentActivity mActivity;
     private ShadowUserManager mUserManager;
+    @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
 
     @Before
     public void setUp() {
@@ -86,6 +93,14 @@
     }
 
     @Test
+    public void getTabId_setArgumentPrivate_setCorrectTab() {
+        final Bundle bundle = new Bundle();
+        bundle.putInt(SettingsActivity.EXTRA_SHOW_FRAGMENT_TAB, PRIVATE_TAB);
+
+        assertThat(mFragment.getTabId(mActivity, bundle)).isEqualTo(PRIVATE_TAB);
+    }
+
+    @Test
     public void getTabId_setArgumentPersonal_setCorrectTab() {
         final Bundle bundle = new Bundle();
         bundle.putInt(SettingsActivity.EXTRA_SHOW_FRAGMENT_TAB, PERSONAL_TAB);
@@ -105,6 +120,16 @@
     }
 
     @Test
+    public void getTabId_setPrivateId_getCorrectTab() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+        final Bundle bundle = new Bundle();
+        bundle.putInt(EXTRA_USER_ID, 11);
+        mUserManager.setPrivateProfile(11, "private", 0);
+
+        assertThat(mFragment.getTabId(mActivity, bundle)).isEqualTo(PRIVATE_TAB);
+    }
+
+    @Test
     public void getTabId_setPersonalId_getCorrectTab() {
         final Bundle bundle = new Bundle();
         bundle.putInt(EXTRA_USER_ID, 0);
@@ -124,12 +149,151 @@
         assertThat(mFragment.getTabId(mActivity, null)).isEqualTo(WORK_TAB);
     }
 
+    @Test
+    public void testGetFragments_whenOnlyPersonal_returnsOneFragment() {
+        mSetFlagsRule.disableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+        Fragment[] fragments = ProfileSelectFragment.getFragments(
+                mContext,
+                null /* bundle */,
+                TestProfileSelectFragment::new,
+                TestProfileSelectFragment::new,
+                TestProfileSelectFragment::new);
+        assertThat(fragments).hasLength(1);
+    }
+
+    @Test
+    public void testGetFragments_whenPrivateDisabled_returnsOneFragment() {
+        Fragment[] fragments = ProfileSelectFragment.getFragments(
+                mContext,
+                null /* bundle */,
+                TestProfileSelectFragment::new,
+                TestProfileSelectFragment::new,
+                TestProfileSelectFragment::new,
+                new ProfileSelectFragment.PrivateSpaceInfoProvider() {
+                    @Override
+                    public boolean isPrivateSpaceLocked(Context context) {
+                        return true;
+                    }
+                },
+                new ProfileSelectFragment.ManagedProfileInfoProvider() {
+                    @Override
+                    public UserHandle getManagedProfile(Context context) {
+                        return null;
+                    }
+                });
+        assertThat(fragments).hasLength(1);
+    }
+
+    @Test
+    public void testGetFragments_whenPrivateEnabled_returnsTwoFragments() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+        Fragment[] fragments = ProfileSelectFragment.getFragments(
+                mContext,
+                null /* bundle */,
+                TestProfileSelectFragment::new,
+                TestProfileSelectFragment::new,
+                TestProfileSelectFragment::new,
+                new ProfileSelectFragment.PrivateSpaceInfoProvider() {
+                    @Override
+                    public boolean isPrivateSpaceLocked(Context context) {
+                        return false;
+                    }
+                },
+                new ProfileSelectFragment.ManagedProfileInfoProvider() {
+                    @Override
+                    public UserHandle getManagedProfile(Context context) {
+                        return null;
+                    }
+                });
+        assertThat(fragments).hasLength(2);
+    }
+
+    @Test
+    public void testGetFragments_whenManagedProfile_returnsTwoFragments() {
+        mSetFlagsRule.disableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+        Fragment[] fragments = ProfileSelectFragment.getFragments(
+                mContext,
+                null /* bundle */,
+                TestProfileSelectFragment::new,
+                TestProfileSelectFragment::new,
+                TestProfileSelectFragment::new,
+                new ProfileSelectFragment.PrivateSpaceInfoProvider() {
+                    @Override
+                    public boolean isPrivateSpaceLocked(Context context) {
+                        return false;
+                    }
+                },
+                new ProfileSelectFragment.ManagedProfileInfoProvider() {
+                    @Override
+                    public UserHandle getManagedProfile(Context context) {
+                        return new UserHandle(123);
+                    }
+                });
+        assertThat(fragments).hasLength(2);
+    }
+
+    @Test
+    public void testGetFragments_whenAllProfiles_returnsThreeFragments() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+        Fragment[] fragments = ProfileSelectFragment.getFragments(
+                mContext,
+                null /* bundle */,
+                TestProfileSelectFragment::new,
+                TestProfileSelectFragment::new,
+                TestProfileSelectFragment::new,
+                new ProfileSelectFragment.PrivateSpaceInfoProvider() {
+                    @Override
+                    public boolean isPrivateSpaceLocked(Context context) {
+                        return false;
+                    }
+                },
+                new ProfileSelectFragment.ManagedProfileInfoProvider() {
+                    @Override
+                    public UserHandle getManagedProfile(Context context) {
+                        return new UserHandle(123);
+                    }
+                });
+        assertThat(fragments).hasLength(3);
+    }
+
+    @Test
+    public void testGetFragments_whenAvailableBundle_returnsFragmentsWithCorrectBundles() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+        Bundle bundle = new Bundle();
+        Fragment[] fragments = ProfileSelectFragment.getFragments(
+                mContext,
+                bundle,
+                TestProfileSelectFragment::new,
+                TestProfileSelectFragment::new,
+                TestProfileSelectFragment::new,
+                new ProfileSelectFragment.PrivateSpaceInfoProvider() {
+                    @Override
+                    public boolean isPrivateSpaceLocked(Context context) {
+                        return false;
+                    }
+                },
+                new ProfileSelectFragment.ManagedProfileInfoProvider() {
+                    @Override
+                    public UserHandle getManagedProfile(Context context) {
+                        return new UserHandle(123);
+                    }
+                });
+        assertThat(fragments).hasLength(3);
+        assertThat(fragments[0].getArguments().getInt(EXTRA_PROFILE))
+                .isEqualTo(ProfileSelectFragment.ProfileType.PERSONAL);
+        assertThat(fragments[1].getArguments().getInt(EXTRA_PROFILE))
+                .isEqualTo(ProfileSelectFragment.ProfileType.WORK);
+        assertThat(fragments[2].getArguments().getInt(EXTRA_PROFILE))
+                .isEqualTo(ProfileSelectFragment.ProfileType.PRIVATE);
+    }
+
     public static class TestProfileSelectFragment extends ProfileSelectFragment {
 
         @Override
         public Fragment[] getFragments() {
             return new Fragment[]{
                     new SettingsPreferenceFragmentTest.TestFragment(), //0
+                    new SettingsPreferenceFragmentTest.TestFragment(),
                     new SettingsPreferenceFragmentTest.TestFragment()
             };
         }
diff --git a/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectLocationFragmentTest.java b/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectLocationFragmentTest.java
index f463bec..fa2782f 100644
--- a/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectLocationFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectLocationFragmentTest.java
@@ -39,10 +39,12 @@
 
     @Test
     public void getFragments_containsCorrectBundle() {
-        assertThat(mProfileSelectLocationFragment.getFragments().length).isEqualTo(2);
+        assertThat(mProfileSelectLocationFragment.getFragments().length).isEqualTo(3);
         assertThat(mProfileSelectLocationFragment.getFragments()[0].getArguments().getInt(
                 EXTRA_PROFILE, -1)).isEqualTo(ProfileSelectFragment.ProfileType.PERSONAL);
         assertThat(mProfileSelectLocationFragment.getFragments()[1].getArguments().getInt(
                 EXTRA_PROFILE, -1)).isEqualTo(ProfileSelectFragment.ProfileType.WORK);
+        assertThat(mProfileSelectLocationFragment.getFragments()[1].getArguments().getInt(
+                EXTRA_PROFILE, -1)).isEqualTo(ProfileSelectFragment.ProfileType.PRIVATE);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/datausage/AppDataUsageTest.java b/tests/robotests/src/com/android/settings/datausage/AppDataUsageTest.java
index 6a1c0a6..1d841fa 100644
--- a/tests/robotests/src/com/android/settings/datausage/AppDataUsageTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/AppDataUsageTest.java
@@ -41,8 +41,8 @@
 import android.os.Bundle;
 import android.os.Process;
 import android.telephony.SubscriptionManager;
-import android.text.format.DateUtils;
 import android.util.ArraySet;
+import android.util.Range;
 
 import androidx.fragment.app.FragmentActivity;
 import androidx.preference.Preference;
@@ -51,6 +51,7 @@
 import androidx.recyclerview.widget.RecyclerView;
 
 import com.android.settings.applications.AppInfoBase;
+import com.android.settings.datausage.lib.NetworkUsageDetailsData;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowDataUsageUtils;
 import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
@@ -60,8 +61,7 @@
 import com.android.settingslib.AppItem;
 import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
 import com.android.settingslib.RestrictedSwitchPreference;
-import com.android.settingslib.net.NetworkCycleDataForUid;
-import com.android.settingslib.net.NetworkCycleDataForUidLoader;
+import com.android.settingslib.core.AbstractPreferenceController;
 import com.android.settingslib.net.UidDetail;
 import com.android.settingslib.net.UidDetailProvider;
 
@@ -79,7 +79,6 @@
 import org.robolectric.shadows.ShadowSubscriptionManager;
 import org.robolectric.util.ReflectionHelpers;
 
-import java.util.ArrayList;
 import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
@@ -109,10 +108,7 @@
     @Test
     @Config(shadows = ShadowFragment.class)
     public void onCreate_appUid_shouldGetAppLabelFromAppInfo() throws NameNotFoundException {
-        mFragment = spy(new AppDataUsage() {
-            @Override
-            public boolean isSimHardwareVisible(Context context) { return true; }
-        });
+        mFragment = spy(new TestFragment());
         final FragmentActivity activity = spy(Robolectric.setupActivity(FragmentActivity.class));
         doReturn(mPackageManager).when(activity).getPackageManager();
         doReturn(activity).when(mFragment).getActivity();
@@ -142,10 +138,7 @@
     @Test
     @Config(shadows = ShadowFragment.class)
     public void onCreate_notAppUid_shouldGetAppLabelFromUidDetailProvider() {
-        mFragment = spy(new AppDataUsage() {
-            @Override
-            public boolean isSimHardwareVisible(Context context) { return true; }
-        });
+        mFragment = spy(new TestFragment());
         ReflectionHelpers.setField(mFragment, "mDashboardFeatureProvider",
                 FakeFeatureFactory.setupForTest().dashboardFeatureProvider);
         doReturn(Robolectric.setupActivity(FragmentActivity.class)).when(mFragment).getActivity();
@@ -172,10 +165,7 @@
 
     @Test
     public void bindAppHeader_allWorkApps_shouldNotShowAppInfoLink() {
-        mFragment = spy(new AppDataUsage() {
-            @Override
-            public boolean isSimHardwareVisible(Context context) { return true; }
-        });
+        mFragment = spy(new TestFragment());
 
         when(mFragment.getPreferenceManager())
                 .thenReturn(mock(PreferenceManager.class, RETURNS_DEEP_STUBS));
@@ -192,10 +182,7 @@
             throws PackageManager.NameNotFoundException {
         final int fakeUserId = 100;
 
-        mFragment = spy(new AppDataUsage() {
-            @Override
-            public boolean isSimHardwareVisible(Context context) { return true; }
-        });
+        mFragment = spy(new TestFragment());
         final ArraySet<String> packages = new ArraySet<>();
         packages.add("pkg");
         final AppItem appItem = new AppItem(123456789);
@@ -221,10 +208,7 @@
 
     @Test
     public void changePreference_backgroundData_shouldUpdateUI() {
-        mFragment = spy(new AppDataUsage() {
-            @Override
-            public boolean isSimHardwareVisible(Context context) { return true; }
-        });
+        mFragment = spy(new TestFragment());
         final AppItem appItem = new AppItem(123456789);
         final RestrictedSwitchPreference pref = mock(RestrictedSwitchPreference.class);
         final DataSaverBackend dataSaverBackend = mock(DataSaverBackend.class);
@@ -241,10 +225,7 @@
 
     @Test
     public void updatePrefs_restrictedByAdmin_shouldDisablePreference() {
-        mFragment = spy(new AppDataUsage() {
-            @Override
-            public boolean isSimHardwareVisible(Context context) { return true; }
-        });
+        mFragment = spy(new TestFragment());
         final int testUid = 123123;
         final AppItem appItem = new AppItem(testUid);
         final RestrictedSwitchPreference restrictBackgroundPref
@@ -258,6 +239,7 @@
         ReflectionHelpers.setField(mFragment, "mUnrestrictedData", unrestrictedDataPref);
         ReflectionHelpers.setField(mFragment, "mDataSaverBackend", dataSaverBackend);
         ReflectionHelpers.setField(mFragment.services, "mPolicyManager", networkPolicyManager);
+        ReflectionHelpers.setField(mFragment, "mContext", RuntimeEnvironment.application);
         when(mFragment.getListView()).thenReturn(mock(RecyclerView.class));
 
         ShadowRestrictedLockUtilsInternal.setRestricted(true);
@@ -271,50 +253,27 @@
     }
 
     @Test
-    public void bindData_noAppUsageData_shouldHideCycleSpinner() {
-        mFragment = spy(new AppDataUsage() {
-            @Override
-            public boolean isSimHardwareVisible(Context context) { return true; }
-        });
-        final SpinnerPreference cycle = mock(SpinnerPreference.class);
-        ReflectionHelpers.setField(mFragment, "mCycle", cycle);
-        final Preference preference = mock(Preference.class);
-        ReflectionHelpers.setField(mFragment, "mBackgroundUsage", preference);
-        ReflectionHelpers.setField(mFragment, "mForegroundUsage", preference);
-        ReflectionHelpers.setField(mFragment, "mTotalUsage", preference);
-        ReflectionHelpers.setField(mFragment, "mContext", RuntimeEnvironment.application);
-
-        mFragment.bindData(0 /* position */);
-
-        verify(cycle).setHasCycles(false);
-    }
-
-    @Test
-    public void bindData_hasAppUsageData_shouldShowCycleSpinnerAndUpdateUsageSummary() {
-        mFragment = spy(new AppDataUsage() {
-            @Override
-            public boolean isSimHardwareVisible(Context context) { return true; }
-        });
+    public void bindData_shouldUpdateUsageSummary() {
+        mFragment = spy(new TestFragment());
         final Context context = RuntimeEnvironment.application;
         ReflectionHelpers.setField(mFragment, "mContext", context);
         final long backgroundBytes = 1234L;
         final long foregroundBytes = 5678L;
-        final List<NetworkCycleDataForUid> appUsage = new ArrayList<>();
-        appUsage.add(new NetworkCycleDataForUid.Builder()
-                .setBackgroundUsage(backgroundBytes).setForegroundUsage(foregroundBytes).build());
-        ReflectionHelpers.setField(mFragment, "mUsageData", appUsage);
+        final NetworkUsageDetailsData appUsage = new NetworkUsageDetailsData(
+                new Range<>(1L, 2L),
+                backgroundBytes + foregroundBytes,
+                foregroundBytes,
+                backgroundBytes
+        );
         final Preference backgroundPref = mock(Preference.class);
         ReflectionHelpers.setField(mFragment, "mBackgroundUsage", backgroundPref);
         final Preference foregroundPref = mock(Preference.class);
         ReflectionHelpers.setField(mFragment, "mForegroundUsage", foregroundPref);
         final Preference totalPref = mock(Preference.class);
         ReflectionHelpers.setField(mFragment, "mTotalUsage", totalPref);
-        final SpinnerPreference cycle = mock(SpinnerPreference.class);
-        ReflectionHelpers.setField(mFragment, "mCycle", cycle);
 
-        mFragment.bindData(0 /* position */);
+        mFragment.bindData(appUsage);
 
-        verify(cycle).setHasCycles(true);
         verify(totalPref).setSummary(
                 DataUsageUtils.formatDataUsage(context, backgroundBytes + foregroundBytes));
         verify(backgroundPref).setSummary(DataUsageUtils.formatDataUsage(context, backgroundBytes));
@@ -322,143 +281,14 @@
     }
 
     @Test
-    public void onCreateLoader_categoryApp_shouldQueryDataUsageUsingAppKey() {
-        mFragment = new AppDataUsage() {
-            @Override
-            public boolean isSimHardwareVisible(Context context) { return true; }
-        };
-        final Context context = RuntimeEnvironment.application;
-        final int testUid = 123123;
-        final AppItem appItem = new AppItem(testUid);
-        appItem.addUid(testUid);
-        appItem.category = AppItem.CATEGORY_APP;
-        ReflectionHelpers.setField(mFragment, "mContext", context);
-        ReflectionHelpers.setField(mFragment, "mAppItem", appItem);
-        ReflectionHelpers.setField(mFragment, "mTemplate",
-                new NetworkTemplate.Builder(NetworkTemplate.MATCH_WIFI).build());
-        final long end = System.currentTimeMillis();
-        final long start = end - (DateUtils.WEEK_IN_MILLIS * 4);
-
-        final NetworkCycleDataForUidLoader loader = (NetworkCycleDataForUidLoader)
-                mFragment.mUidDataCallbacks.onCreateLoader(0, Bundle.EMPTY);
-
-        final List<Integer> uids = loader.getUids();
-        assertThat(uids).hasSize(1);
-        assertThat(uids.get(0)).isEqualTo(testUid);
-    }
-
-    @Test
-    public void onCreateLoader_categoryUser_shouldQueryDataUsageUsingAssociatedUids() {
-        mFragment = new AppDataUsage() {
-            @Override
-            public boolean isSimHardwareVisible(Context context) { return true; }
-        };
-        final Context context = RuntimeEnvironment.application;
-        final int testUserId = 11;
-        final AppItem appItem = new AppItem(testUserId);
-        appItem.category = AppItem.CATEGORY_USER;
-        appItem.addUid(123);
-        appItem.addUid(456);
-        appItem.addUid(789);
-        ReflectionHelpers.setField(mFragment, "mContext", context);
-        ReflectionHelpers.setField(mFragment, "mAppItem", appItem);
-        ReflectionHelpers.setField(mFragment, "mTemplate",
-                new NetworkTemplate.Builder(NetworkTemplate.MATCH_WIFI).build());
-        final long end = System.currentTimeMillis();
-        final long start = end - (DateUtils.WEEK_IN_MILLIS * 4);
-
-        final NetworkCycleDataForUidLoader loader = (NetworkCycleDataForUidLoader)
-                mFragment.mUidDataCallbacks.onCreateLoader(0, Bundle.EMPTY);
-
-        final List<Integer> uids = loader.getUids();
-        assertThat(uids).hasSize(3);
-        assertThat(uids.get(0)).isEqualTo(123);
-        assertThat(uids.get(1)).isEqualTo(456);
-        assertThat(uids.get(2)).isEqualTo(789);
-    }
-
-    @Test
-    public void onCreateLoader_hasCyclesSpecified_shouldQueryDataUsageForSpecifiedCycles() {
-        final long startTime = 1521583200000L;
-        final long endTime = 1521676800000L;
-        ArrayList<Long> testCycles = new ArrayList<>();
-        testCycles.add(endTime);
-        testCycles.add(startTime);
-        final int uid = 123;
-        final AppItem appItem = new AppItem(uid);
-        appItem.category = AppItem.CATEGORY_APP;
-        appItem.addUid(uid);
-
-        mFragment = new AppDataUsage() {
-            @Override
-            public boolean isSimHardwareVisible(Context context) { return true; }
-        };
-        ReflectionHelpers.setField(mFragment, "mContext", RuntimeEnvironment.application);
-        ReflectionHelpers.setField(mFragment, "mCycles", testCycles);
-        ReflectionHelpers.setField(mFragment, "mAppItem", appItem);
-        ReflectionHelpers.setField(mFragment, "mTemplate",
-                new NetworkTemplate.Builder(NetworkTemplate.MATCH_WIFI).build());
-
-        final NetworkCycleDataForUidLoader loader = (NetworkCycleDataForUidLoader)
-                mFragment.mUidDataCallbacks.onCreateLoader(0 /* id */, Bundle.EMPTY /* args */);
-
-        final ArrayList<Long> cycles = loader.getCycles();
-        assertThat(cycles).hasSize(2);
-        assertThat(cycles.get(0)).isEqualTo(endTime);
-        assertThat(cycles.get(1)).isEqualTo(startTime);
-    }
-
-    @Test
-    public void onLoadFinished_hasSelectedCycleSpecified_shouldSelectSpecifiedCycle() {
-        final long now = System.currentTimeMillis();
-        final long tenDaysAgo = now - (DateUtils.DAY_IN_MILLIS * 10);
-        final long twentyDaysAgo = now - (DateUtils.DAY_IN_MILLIS * 20);
-        final long thirtyDaysAgo = now - (DateUtils.DAY_IN_MILLIS * 30);
-        final List<NetworkCycleDataForUid> data = new ArrayList<>();
-        NetworkCycleDataForUid.Builder builder = new NetworkCycleDataForUid.Builder();
-        builder.setStartTime(thirtyDaysAgo).setEndTime(twentyDaysAgo).setTotalUsage(9876L);
-        data.add(builder.build());
-        builder = new NetworkCycleDataForUid.Builder();
-        builder.setStartTime(twentyDaysAgo).setEndTime(tenDaysAgo).setTotalUsage(5678L);
-        data.add(builder.build());
-        builder = new NetworkCycleDataForUid.Builder();
-        builder.setStartTime(tenDaysAgo).setEndTime(now).setTotalUsage(1234L);
-        data.add(builder.build());
-
-        mFragment = new AppDataUsage() {
-            @Override
-            public boolean isSimHardwareVisible(Context context) { return true; }
-        };
-        ReflectionHelpers.setField(mFragment, "mContext", RuntimeEnvironment.application);
-        ReflectionHelpers.setField(mFragment, "mCycleAdapter", mock(CycleAdapter.class));
-        ReflectionHelpers.setField(mFragment, "mSelectedCycle", tenDaysAgo);
-        final Preference backgroundPref = mock(Preference.class);
-        ReflectionHelpers.setField(mFragment, "mBackgroundUsage", backgroundPref);
-        final Preference foregroundPref = mock(Preference.class);
-        ReflectionHelpers.setField(mFragment, "mForegroundUsage", foregroundPref);
-        final Preference totalPref = mock(Preference.class);
-        ReflectionHelpers.setField(mFragment, "mTotalUsage", totalPref);
-        final SpinnerPreference cycle = mock(SpinnerPreference.class);
-        ReflectionHelpers.setField(mFragment, "mCycle", cycle);
-
-        mFragment.mUidDataCallbacks.onLoadFinished(null /* loader */, data);
-
-        verify(cycle).setSelection(1);
-    }
-
-    @Test
     @Config(shadows = {ShadowDataUsageUtils.class, ShadowSubscriptionManager.class,
             ShadowFragment.class})
     public void onCreate_noNetworkTemplateAndInvalidDataSubscription_shouldUseWifiTemplate() {
         ShadowDataUsageUtils.IS_MOBILE_DATA_SUPPORTED = true;
         ShadowDataUsageUtils.IS_WIFI_SUPPORTED = true;
-        ShadowDataUsageUtils.HAS_SIM = false;
         ShadowSubscriptionManager.setDefaultDataSubscriptionId(
                 SubscriptionManager.INVALID_SUBSCRIPTION_ID);
-        mFragment = spy(new AppDataUsage() {
-            @Override
-            public boolean isSimHardwareVisible(Context context) { return true; }
-        });
+        mFragment = spy(new TestFragment());
         doReturn(Robolectric.setupActivity(FragmentActivity.class)).when(mFragment).getActivity();
         doReturn(RuntimeEnvironment.application).when(mFragment).getContext();
         final UidDetailProvider uidDetailProvider = mock(UidDetailProvider.class);
@@ -478,4 +308,20 @@
         assertTrue(mFragment.mTemplate.getSubscriberIds().isEmpty());
         assertTrue(mFragment.mTemplate.getWifiNetworkKeys().isEmpty());
     }
+
+    private static class TestFragment extends AppDataUsage {
+        @Override
+        protected <T extends AbstractPreferenceController> T use(Class<T> clazz) {
+            return mock(clazz);
+        }
+
+        @Override
+        void initCycle(List<Integer> uidList) {
+        }
+
+        @Override
+        public boolean isSimHardwareVisible(Context context) {
+            return true;
+        }
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageListTest.kt b/tests/robotests/src/com/android/settings/datausage/DataUsageListTest.kt
index 90bb048..39b8446 100644
--- a/tests/robotests/src/com/android/settings/datausage/DataUsageListTest.kt
+++ b/tests/robotests/src/com/android/settings/datausage/DataUsageListTest.kt
@@ -23,22 +23,18 @@
 import android.os.UserManager
 import android.provider.Settings
 import androidx.preference.Preference
-import androidx.preference.PreferenceManager
 import androidx.test.core.app.ApplicationProvider
 import com.android.settings.datausage.DataUsageListTest.ShadowDataUsageBaseFragment
 import com.android.settings.datausage.TemplatePreference.NetworkServices
 import com.android.settings.datausage.lib.BillingCycleRepository
-import com.android.settings.network.MobileDataEnabledListener
 import com.android.settings.testutils.FakeFeatureFactory
 import com.android.settingslib.NetworkPolicyEditor
 import com.android.settingslib.core.AbstractPreferenceController
-import com.android.settingslib.core.instrumentation.VisibilityLoggerMixin
 import com.google.common.truth.Truth.assertThat
 import org.junit.Before
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
-import org.mockito.ArgumentMatchers
 import org.mockito.Mock
 import org.mockito.Mockito.doNothing
 import org.mockito.Mockito.doReturn
@@ -62,9 +58,6 @@
     val mockito: MockitoRule = MockitoJUnit.rule()
 
     @Mock
-    private lateinit var mobileDataEnabledListener: MobileDataEnabledListener
-
-    @Mock
     private lateinit var networkServices: NetworkServices
 
     @Mock
@@ -86,7 +79,6 @@
     fun setUp() {
         FakeFeatureFactory.setupForTest()
         networkServices.mPolicyEditor = mock(NetworkPolicyEditor::class.java)
-        dataUsageList.dataStateListener = mobileDataEnabledListener
         doReturn(context).`when`(dataUsageList).context
         doReturn(userManager).`when`(context).getSystemService(UserManager::class.java)
         doReturn(false).`when`(userManager).isGuestUser
@@ -113,46 +105,6 @@
     }
 
     @Test
-    fun resume_shouldListenDataStateChange() {
-        dataUsageList.template = mock(NetworkTemplate::class.java)
-        dataUsageList.onCreate(null)
-        dataUsageList.dataStateListener = mobileDataEnabledListener
-        ReflectionHelpers.setField(
-            dataUsageList,
-            "mVisibilityLoggerMixin",
-            mock(VisibilityLoggerMixin::class.java),
-        )
-        ReflectionHelpers.setField(
-            dataUsageList,
-            "mPreferenceManager",
-            mock(PreferenceManager::class.java),
-        )
-        dataUsageList.onResume()
-        verify(mobileDataEnabledListener).start(ArgumentMatchers.anyInt())
-        dataUsageList.onPause()
-    }
-
-    @Test
-    fun pause_shouldUnlistenDataStateChange() {
-        dataUsageList.template = mock(NetworkTemplate::class.java)
-        dataUsageList.onCreate(null)
-        dataUsageList.dataStateListener = mobileDataEnabledListener
-        ReflectionHelpers.setField(
-            dataUsageList, "mVisibilityLoggerMixin", mock(
-                VisibilityLoggerMixin::class.java
-            )
-        )
-        ReflectionHelpers.setField(
-            dataUsageList, "mPreferenceManager", mock(
-                PreferenceManager::class.java
-            )
-        )
-        dataUsageList.onResume()
-        dataUsageList.onPause()
-        verify(mobileDataEnabledListener).stop()
-    }
-
-    @Test
     fun processArgument_shouldGetTemplateFromArgument() {
         val args = Bundle()
         args.putParcelable(
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java
index 4ac7387..2a9cca9 100644
--- a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java
@@ -27,15 +27,11 @@
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 
-import android.app.usage.NetworkStatsManager;
 import android.content.Context;
 import android.content.res.Resources;
-import android.net.NetworkPolicyManager;
 import android.os.UserManager;
 import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
 
-import androidx.fragment.app.FragmentActivity;
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
@@ -45,7 +41,6 @@
 import com.android.settings.testutils.shadow.ShadowUtils;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -53,13 +48,9 @@
 import org.mockito.Spy;
 import org.mockito.junit.MockitoJUnit;
 import org.mockito.junit.MockitoRule;
-import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
-import org.robolectric.shadows.ShadowApplication;
 import org.robolectric.shadows.ShadowSubscriptionManager;
-import org.robolectric.shadows.ShadowTelephonyManager;
 
 @Config(shadows = {
         ShadowUtils.class,
@@ -75,13 +66,6 @@
     Context mContext = ApplicationProvider.getApplicationContext();
     @Mock
     private UserManager mUserManager;
-    @Mock
-    private NetworkPolicyManager mNetworkPolicyManager;
-    @Mock
-    private NetworkStatsManager mNetworkStatsManager;
-    private TelephonyManager mTelephonyManager;
-    private Resources mResources;
-    private FragmentActivity mActivity;
 
     private DataUsageSummary mDataUsageSummary;
 
@@ -95,23 +79,12 @@
         doReturn(mUserManager).when(mContext).getSystemService(UserManager.class);
         doReturn(false).when(mUserManager).isGuestUser();
 
-        ShadowApplication shadowContext = ShadowApplication.getInstance();
         ShadowUserManager.getShadow().setIsAdminUser(true);
-        shadowContext.setSystemService(Context.NETWORK_POLICY_SERVICE, mNetworkPolicyManager);
 
-        mTelephonyManager = mContext.getSystemService(TelephonyManager.class);
-        final ShadowTelephonyManager shadowTelephonyManager = Shadows.shadowOf(mTelephonyManager);
-        shadowTelephonyManager.setTelephonyManagerForSubscriptionId(
-                SubscriptionManager.INVALID_SUBSCRIPTION_ID, mTelephonyManager);
-        shadowTelephonyManager.setTelephonyManagerForSubscriptionId(1, mTelephonyManager);
-        mActivity = spy(Robolectric.buildActivity(FragmentActivity.class).get());
-
-        mResources = spy(mContext.getResources());
+        Resources mResources = spy(mContext.getResources());
         doReturn(mResources).when(mContext).getResources();
         doReturn(true).when(mResources).getBoolean(R.bool.config_show_sim_info);
 
-        doReturn(mNetworkStatsManager).when(mActivity).getSystemService(NetworkStatsManager.class);
-
         mDataUsageSummary = spy(new DataUsageSummary());
         doReturn(mContext).when(mDataUsageSummary).getContext();
         doNothing().when(mDataUsageSummary).enableProxySubscriptionManager(any());
@@ -130,12 +103,10 @@
 
     @Test
     @Config(shadows = ShadowSubscriptionManager.class)
-    @Ignore
     public void configuration_withSim_shouldShowMobileAndWifi() {
         ShadowDataUsageUtils.IS_MOBILE_DATA_SUPPORTED = true;
         ShadowDataUsageUtils.IS_WIFI_SUPPORTED = true;
         ShadowSubscriptionManager.setDefaultDataSubscriptionId(1);
-        ShadowDataUsageUtils.HAS_SIM = true;
 
         final DataUsageSummary dataUsageSummary = spy(new DataUsageSummary());
         doNothing().when(dataUsageSummary).enableProxySubscriptionManager(any());
@@ -156,7 +127,6 @@
     public void configuration_withoutSim_shouldShowWifiSectionOnly() {
         ShadowDataUsageUtils.IS_MOBILE_DATA_SUPPORTED = true;
         ShadowDataUsageUtils.IS_WIFI_SUPPORTED = true;
-        ShadowDataUsageUtils.HAS_SIM = false;
 
         final DataUsageSummary dataUsageSummary = spy(new DataUsageSummary());
         doNothing().when(dataUsageSummary).enableProxySubscriptionManager(any());
@@ -177,7 +147,6 @@
     public void configuration_withoutMobile_shouldShowWifiSectionOnly() {
         ShadowDataUsageUtils.IS_MOBILE_DATA_SUPPORTED = false;
         ShadowDataUsageUtils.IS_WIFI_SUPPORTED = true;
-        ShadowDataUsageUtils.HAS_SIM = false;
 
         final DataUsageSummary dataUsageSummary = spy(new DataUsageSummary());
         doNothing().when(dataUsageSummary).enableProxySubscriptionManager(any());
@@ -199,7 +168,6 @@
     public void configuration_invalidDataSusbscription_shouldShowWifiSectionOnly() {
         ShadowDataUsageUtils.IS_MOBILE_DATA_SUPPORTED = true;
         ShadowDataUsageUtils.IS_WIFI_SUPPORTED = true;
-        ShadowDataUsageUtils.HAS_SIM = false;
         ShadowSubscriptionManager.setDefaultDataSubscriptionId(
                 SubscriptionManager.INVALID_SUBSCRIPTION_ID);
 
diff --git a/tests/robotests/src/com/android/settings/deletionhelper/AutomaticStorageManagerSwitchBarControllerTest.java b/tests/robotests/src/com/android/settings/deletionhelper/AutomaticStorageManagerSwitchBarControllerTest.java
index 17283cf..9841a0f 100644
--- a/tests/robotests/src/com/android/settings/deletionhelper/AutomaticStorageManagerSwitchBarControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deletionhelper/AutomaticStorageManagerSwitchBarControllerTest.java
@@ -80,7 +80,7 @@
 
     @Test
     public void onSwitchChanged_false_recordsAMetric() {
-        mController.onSwitchChanged(null, false);
+        mController.onCheckedChanged(null, false);
 
         verify(mMetricsFeatureProvider)
                 .action(
@@ -91,7 +91,7 @@
 
     @Test
     public void onSwitchChanged_true_recordsAMetric() {
-        mController.onSwitchChanged(null, true);
+        mController.onCheckedChanged(null, true);
 
         verify(mMetricsFeatureProvider)
                 .action(
@@ -102,7 +102,7 @@
 
     @Test
     public void onSwitchChanged_showWarningFragmentIfNotEnabledByDefault() {
-        mController.onSwitchChanged(null, true);
+        mController.onCheckedChanged(null, true);
 
         verify(mFragmentManager.beginTransaction())
                 .add(any(Fragment.class), eq(ActivationWarningFragment.TAG));
@@ -112,7 +112,7 @@
     public void onSwitchChange_doNotShowWarningFragmentIfEnabledByDefault() {
         SystemProperties.set("ro.storage_manager.enabled", "true");
 
-        mController.onSwitchChanged(null, true);
+        mController.onCheckedChanged(null, true);
 
         verify(mFragmentManager.beginTransaction(), never())
                 .add(any(Fragment.class), eq(ActivationWarningFragment.TAG));
diff --git a/tests/robotests/src/com/android/settings/development/BluetoothLeAudioAllowListPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/BluetoothLeAudioAllowListPreferenceControllerTest.java
index f4e52ba..4ac90a7 100644
--- a/tests/robotests/src/com/android/settings/development/BluetoothLeAudioAllowListPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/BluetoothLeAudioAllowListPreferenceControllerTest.java
@@ -19,12 +19,13 @@
 import static android.bluetooth.BluetoothStatusCodes.FEATURE_SUPPORTED;
 
 import static com.android.settings.development.BluetoothLeAudioAllowListPreferenceController
-        .LE_AUDIO_ALLOW_LIST_ENABLED_PROPERTY;
+        .BYPASS_LE_AUDIO_ALLOWLIST_PROPERTY;
 
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.verify;
 
 import android.bluetooth.BluetoothAdapter;
 import android.content.Context;
@@ -48,20 +49,18 @@
     private PreferenceScreen mPreferenceScreen;
     @Mock
     private DevelopmentSettingsDashboardFragment mFragment;
-
     @Mock
     private BluetoothAdapter mBluetoothAdapter;
-
-    private Context mContext;
+    @Mock
     private SwitchPreference mPreference;
-    private BluetoothLeAudioPreferenceController mController;
+    private Context mContext;
+    private BluetoothLeAudioAllowListPreferenceController mController;
 
     @Before
     public void setup() {
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
-        mPreference = new SwitchPreference(mContext);
-        mController = spy(new BluetoothLeAudioPreferenceController(mContext, mFragment));
+        mController = spy(new BluetoothLeAudioAllowListPreferenceController(mContext, mFragment));
         when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
             .thenReturn(mPreference);
         mController.mBluetoothAdapter = mBluetoothAdapter;
@@ -71,36 +70,38 @@
     }
 
     @Test
-    public void onRebootDialogConfirmedAsLeAudioAllowListDisabled_shouldSwitchStatus() {
-        SystemProperties.set(LE_AUDIO_ALLOW_LIST_ENABLED_PROPERTY, Boolean.toString(false));
-        mController.mChanged = true;
-
-        mController.onRebootDialogConfirmed();
-        final boolean mode = SystemProperties.getBoolean(
-                LE_AUDIO_ALLOW_LIST_ENABLED_PROPERTY, false);
-        assertThat(mode).isFalse();
-    }
-
-
-    @Test
-    public void onRebootDialogConfirmedAsLeAudioAllowListEnabled_shouldSwitchStatus() {
-        SystemProperties.set(LE_AUDIO_ALLOW_LIST_ENABLED_PROPERTY, Boolean.toString(true));
-        mController.mChanged = true;
-
-        mController.onRebootDialogConfirmed();
-        final boolean status = SystemProperties.getBoolean(
-                LE_AUDIO_ALLOW_LIST_ENABLED_PROPERTY, false);
-        assertThat(status).isTrue();
+    public void onPreferenceChange_setCheck_shouldBypassLeAudioAllowlist() {
+        mController.onPreferenceChange(mPreference, Boolean.TRUE);
+        assertThat(SystemProperties.getBoolean(BYPASS_LE_AUDIO_ALLOWLIST_PROPERTY,
+                false)).isTrue();
     }
 
     @Test
-    public void onRebootDialogCanceled_shouldNotSwitchStatus() {
-        SystemProperties.set(LE_AUDIO_ALLOW_LIST_ENABLED_PROPERTY, Boolean.toString(false));
-        mController.mChanged = true;
+    public void onPreferenceChange_setUnCheck_shouldNotBypassLeAudioAllowlist() {
+        mController.onPreferenceChange(mPreference, Boolean.FALSE);
+        assertThat(SystemProperties.getBoolean(BYPASS_LE_AUDIO_ALLOWLIST_PROPERTY,
+                true)).isFalse();
+    }
 
-        mController.onRebootDialogCanceled();
-        final boolean status = SystemProperties.getBoolean(
-                LE_AUDIO_ALLOW_LIST_ENABLED_PROPERTY, false);
-        assertThat(status).isFalse();
+    @Test
+    public void updateState_bluetoothOff_shouldDisableToggle() {
+        mController.mBluetoothAdapter = null;
+        mController.updateState(mPreference);
+        verify(mPreference).setEnabled(false);
+    }
+
+    @Test
+    public void updateState_bluetoothOn_shouldShowStatus() {
+        SystemProperties.set(BYPASS_LE_AUDIO_ALLOWLIST_PROPERTY, Boolean.toString(true));
+        mController.updateState(mPreference);
+        verify(mPreference).setChecked(true);
+    }
+
+    @Test
+    public void onDeveloperOptionsSwitchDisabled_shouldSetBypassLeAudioAllowlistToFalse() {
+        SystemProperties.set(BYPASS_LE_AUDIO_ALLOWLIST_PROPERTY, Boolean.toString(true));
+        mController.onDeveloperOptionsSwitchDisabled();
+        verify(mPreference).setEnabled(false);
+        assertThat(SystemProperties.getBoolean(BYPASS_LE_AUDIO_ALLOWLIST_PROPERTY, true)).isFalse();
     }
 }
diff --git a/tests/robotests/src/com/android/settings/development/BluetoothLeAudioDeviceDetailsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/BluetoothLeAudioDeviceDetailsPreferenceControllerTest.java
index 13bc6a4..36c9231 100644
--- a/tests/robotests/src/com/android/settings/development/BluetoothLeAudioDeviceDetailsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/BluetoothLeAudioDeviceDetailsPreferenceControllerTest.java
@@ -114,6 +114,7 @@
 
     @Test
     public void isAvailable_leAudioSupported() {
+        mController.mLeAudioEnabledByDefault = false;
         mController.sLeAudioSupportedStateCache = BluetoothStatusCodes.ERROR_UNKNOWN;
         when(mBluetoothAdapter.isLeAudioSupported())
                 .thenReturn(BluetoothStatusCodes.FEATURE_SUPPORTED);
@@ -122,9 +123,16 @@
 
     @Test
     public void isAvailable_leAudioNotSupported() {
+        mController.mLeAudioEnabledByDefault = false;
         mController.sLeAudioSupportedStateCache = BluetoothStatusCodes.ERROR_UNKNOWN;
         when(mBluetoothAdapter.isLeAudioSupported())
                 .thenReturn(BluetoothStatusCodes.FEATURE_NOT_SUPPORTED);
         assertThat(mController.isAvailable()).isFalse();
     }
+
+    @Test
+    public void isUnAvailable_ifLeAudioConnectionByDefault() {
+        mController.mLeAudioEnabledByDefault = true;
+        assertThat(mController.isAvailable()).isFalse();
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java
index fca338d..37a4aea 100644
--- a/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java
@@ -27,7 +27,6 @@
 import android.content.Context;
 import android.provider.SearchIndexableResource;
 import android.provider.Settings;
-import android.widget.Switch;
 
 import androidx.appcompat.app.AlertDialog;
 import androidx.fragment.app.FragmentActivity;
@@ -65,7 +64,6 @@
 })
 public class DevelopmentSettingsDashboardFragmentTest {
 
-    private Switch mSwitch;
     private Context mContext;
     private ShadowUserManager mShadowUserManager;
     private DevelopmentSettingsDashboardFragment mDashboard;
@@ -75,7 +73,6 @@
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
         SettingsMainSwitchBar switchBar = new SettingsMainSwitchBar(mContext);
-        mSwitch = switchBar.getSwitch();
         mDashboard = spy(new DevelopmentSettingsDashboardFragment());
         ReflectionHelpers.setField(mDashboard, "mSwitchBar", switchBar);
         mShadowUserManager = Shadow.extract(mContext.getSystemService(Context.USER_SERVICE));
@@ -163,7 +160,7 @@
         Settings.Global.putInt(mContext.getContentResolver(),
                 Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0);
 
-        mDashboard.onSwitchChanged(mSwitch, false /* isChecked */);
+        mDashboard.onCheckedChanged(null, false /* isChecked */);
         assertThat(ShadowEnableDevelopmentSettingWarningDialog.mShown).isFalse();
     }
 
@@ -175,7 +172,7 @@
         Settings.Global.putInt(mContext.getContentResolver(),
                 Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0);
 
-        mDashboard.onSwitchChanged(mSwitch, true /* isChecked */);
+        mDashboard.onCheckedChanged(null, true /* isChecked */);
         assertThat(ShadowEnableDevelopmentSettingWarningDialog.mShown).isTrue();
     }
 
@@ -187,7 +184,7 @@
         Settings.Global.putInt(mContext.getContentResolver(),
                 Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 1);
 
-        mDashboard.onSwitchChanged(mSwitch, false /* isChecked */);
+        mDashboard.onCheckedChanged(null, false /* isChecked */);
 
         assertThat(ShadowEnableDevelopmentSettingWarningDialog.mShown).isFalse();
         assertThat(DevelopmentSettingsEnabler.isDevelopmentSettingsEnabled(mContext)).isFalse();
@@ -206,7 +203,7 @@
         Settings.Global.putInt(mContext.getContentResolver(),
                 Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 1);
 
-        mDashboard.onSwitchChanged(mSwitch, false /* isChecked */);
+        mDashboard.onCheckedChanged(null, false /* isChecked */);
 
         AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
         assertThat(dialog).isNotNull();
diff --git a/tests/robotests/src/com/android/settings/development/DevelopmentSwitchBarControllerTest.java b/tests/robotests/src/com/android/settings/development/DevelopmentSwitchBarControllerTest.java
index f776536..34d22e0 100644
--- a/tests/robotests/src/com/android/settings/development/DevelopmentSwitchBarControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/DevelopmentSwitchBarControllerTest.java
@@ -24,6 +24,7 @@
 import static org.mockito.Mockito.when;
 
 import android.content.Context;
+import android.widget.CompoundButton.OnCheckedChangeListener;
 
 import androidx.lifecycle.LifecycleOwner;
 
@@ -31,7 +32,6 @@
 import com.android.settings.testutils.shadow.ShadowUtils;
 import com.android.settings.widget.SettingsMainSwitchBar;
 import com.android.settingslib.core.lifecycle.Lifecycle;
-import com.android.settingslib.widget.OnMainSwitchChangeListener;
 
 import org.junit.After;
 import org.junit.Before;
@@ -78,7 +78,7 @@
         ShadowUtils.setIsUserAMonkey(true);
         new DevelopmentSwitchBarController(mSettings, mSwitchBar,
                 true /* isAvailable */, mLifecycle);
-        final List<OnMainSwitchChangeListener> listeners =
+        final List<OnCheckedChangeListener> listeners =
                 ReflectionHelpers.getField(mSwitchBar, "mSwitchChangeListeners");
 
         mLifecycle.handleLifecycleEvent(ON_START);
@@ -93,7 +93,7 @@
         ShadowUtils.setIsUserAMonkey(false);
         new DevelopmentSwitchBarController(mSettings, mSwitchBar,
                 true /* isAvailable */, mLifecycle);
-        final List<OnMainSwitchChangeListener> listeners =
+        final List<OnCheckedChangeListener> listeners =
                 ReflectionHelpers.getField(mSwitchBar, "mSwitchChangeListeners");
 
         mLifecycle.handleLifecycleEvent(ON_START);
@@ -109,7 +109,7 @@
         ShadowUtils.setIsUserAMonkey(false);
         new DevelopmentSwitchBarController(mSettings, mSwitchBar,
                 true /* isAvailable */, mLifecycle);
-        final List<OnMainSwitchChangeListener> listeners =
+        final List<OnCheckedChangeListener> listeners =
                 ReflectionHelpers.getField(mSwitchBar, "mSwitchChangeListeners");
 
         mLifecycle.handleLifecycleEvent(ON_START);
diff --git a/tests/robotests/src/com/android/settings/development/ForcePeakRefreshRatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/ForcePeakRefreshRatePreferenceControllerTest.java
index 2e93d5e..c5cc856 100644
--- a/tests/robotests/src/com/android/settings/development/ForcePeakRefreshRatePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/ForcePeakRefreshRatePreferenceControllerTest.java
@@ -16,8 +16,9 @@
 
 package com.android.settings.development;
 
-import static com.android.settings.development.ForcePeakRefreshRatePreferenceController.DEFAULT_REFRESH_RATE;
+import static com.android.internal.display.RefreshRateSettingsUtils.DEFAULT_REFRESH_RATE;
 import static com.android.settings.development.ForcePeakRefreshRatePreferenceController.NO_CONFIG;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.Mockito.verify;
@@ -38,8 +39,6 @@
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 
-import android.util.Log;
-
 @RunWith(RobolectricTestRunner.class)
 public class ForcePeakRefreshRatePreferenceControllerTest {
 
@@ -68,7 +67,7 @@
         mController.onPreferenceChange(mPreference, true);
 
         assertThat(Settings.System.getFloat(mContext.getContentResolver(),
-                Settings.System.MIN_REFRESH_RATE, NO_CONFIG)).isEqualTo(88f);
+                Settings.System.MIN_REFRESH_RATE, NO_CONFIG)).isPositiveInfinity();
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/development/ShowHdrSdrRatioPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/ShowHdrSdrRatioPreferenceControllerTest.java
new file mode 100644
index 0000000..2234754
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/development/ShowHdrSdrRatioPreferenceControllerTest.java
@@ -0,0 +1,171 @@
+/**
+ * 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.development;
+
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertFalse;
+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.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.os.IBinder;
+import android.os.RemoteException;
+import android.platform.test.flag.junit.SetFlagsRule;
+
+import androidx.preference.PreferenceScreen;
+import androidx.preference.TwoStatePreference;
+
+import com.android.settings.flags.Flags;
+import com.android.settings.testutils.shadow.ShadowParcel;
+
+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)
+public class ShowHdrSdrRatioPreferenceControllerTest {
+
+    @Mock
+    private Context mContext;
+    @Mock
+    private PreferenceScreen mScreen;
+    @Mock
+    private TwoStatePreference mPreference;
+    @Mock
+    private IBinder mSurfaceFlinger;
+
+    private ShowHdrSdrRatioPreferenceController mController;
+
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
+        mController = new ShowHdrSdrRatioPreferenceController(mContext, mSurfaceFlinger, true);
+        when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
+        mController.displayPreference(mScreen);
+    }
+
+    @Test
+    @Config(shadows = ShadowParcel.class)
+    public void onPreferenceChange_settingEnabled_shouldChecked() throws RemoteException {
+        mSetFlagsRule.enableFlags(Flags.FLAG_DEVELOPMENT_HDR_SDR_RATIO);
+        assertTrue(mController.isAvailable());
+        ShadowParcel.sReadBoolResult = true;
+        doReturn(true).when(mSurfaceFlinger)
+            .transact(anyInt(), any(), any(), eq(0 /* flags */));
+        mController.onPreferenceChange(mPreference, true /* new value */);
+        verify(mPreference).setChecked(true);
+    }
+
+    @Test
+    @Config(shadows = ShadowParcel.class)
+    public void onPreferenceChange_settingDisabled_shouldUnchecked() throws RemoteException {
+        mSetFlagsRule.enableFlags(Flags.FLAG_DEVELOPMENT_HDR_SDR_RATIO);
+        assertTrue(mController.isAvailable());
+        ShadowParcel.sReadBoolResult = false;
+        doReturn(true).when(mSurfaceFlinger)
+            .transact(anyInt(), any(), any(), eq(0 /* flags */));
+        mController.onPreferenceChange(mPreference, false /* new value */);
+        verify(mPreference).setChecked(false);
+    }
+
+    @Test
+    @Config(shadows = ShadowParcel.class)
+    public void updateState_settingEnabled_shouldChecked() throws RemoteException {
+        mSetFlagsRule.enableFlags(Flags.FLAG_DEVELOPMENT_HDR_SDR_RATIO);
+        assertTrue(mController.isAvailable());
+        ShadowParcel.sReadBoolResult = true;
+        doReturn(true).when(mSurfaceFlinger)
+            .transact(anyInt(), any(), any(), eq(0 /* flags */));
+        mController.updateState(mPreference);
+        verify(mPreference).setChecked(true);
+    }
+
+    @Test
+    @Config(shadows = ShadowParcel.class)
+    public void updateState_settingDisabled_shouldUnchecked() throws RemoteException {
+        mSetFlagsRule.enableFlags(Flags.FLAG_DEVELOPMENT_HDR_SDR_RATIO);
+        assertTrue(mController.isAvailable());
+        ShadowParcel.sReadBoolResult = false;
+        doReturn(true).when(mSurfaceFlinger)
+            .transact(anyInt(), any(), any(), eq(0 /* flags */));
+        mController.updateState(mPreference);
+        verify(mPreference).setChecked(false);
+    }
+
+    @Test
+    public void settingNotAvailable_isHdrSdrRatioAvailableFalse_flagsOff() {
+        mSetFlagsRule.disableFlags(Flags.FLAG_DEVELOPMENT_HDR_SDR_RATIO);
+        mController = new ShowHdrSdrRatioPreferenceController(mContext, mSurfaceFlinger, true);
+        assertFalse(mController.isAvailable());
+    }
+
+    @Test
+    public void settingNotAvailable_isHdrSdrRatioAvailableTrue_flagsOn() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_DEVELOPMENT_HDR_SDR_RATIO);
+        mController = new ShowHdrSdrRatioPreferenceController(mContext, mSurfaceFlinger, false);
+        assertFalse(mController.isAvailable());
+    }
+
+    @Test
+    @Config(shadows = ShadowParcel.class)
+    public void onDeveloperOptionsSwitchDisabled_preferenceUnchecked_shouldNotTurnOffPreference()
+            throws RemoteException {
+        mSetFlagsRule.enableFlags(Flags.FLAG_DEVELOPMENT_HDR_SDR_RATIO);
+        assertTrue(mController.isAvailable());
+        ShadowParcel.sReadBoolResult = false;
+        doReturn(true).when(mSurfaceFlinger)
+            .transact(anyInt(), any(), any(), eq(0 /* flags */));
+        when(mPreference.isChecked()).thenReturn(false);
+        mController.onDeveloperOptionsSwitchDisabled();
+
+        mController.writeShowHdrSdrRatioSetting(true);
+        verify(mPreference).setChecked(false);
+        verify(mPreference).setEnabled(false);
+    }
+
+    @Test
+    @Config(shadows = ShadowParcel.class)
+    public void onDeveloperOptionsSwitchDisabled_preferenceChecked_shouldTurnOffPreference()
+            throws RemoteException {
+        mSetFlagsRule.enableFlags(Flags.FLAG_DEVELOPMENT_HDR_SDR_RATIO);
+        assertTrue(mController.isAvailable());
+        ShadowParcel.sReadBoolResult = true;
+        doReturn(true).when(mSurfaceFlinger)
+            .transact(anyInt(), any(), any(), eq(0 /* flags */));
+        when(mPreference.isChecked()).thenReturn(true);
+        mController.onDeveloperOptionsSwitchDisabled();
+
+        mController.writeShowHdrSdrRatioSetting(false);
+        verify(mPreference).setChecked(false);
+        verify(mPreference).setEnabled(false);
+    }
+}
+
diff --git a/tests/robotests/src/com/android/settings/development/WirelessDebuggingEnablerTest.java b/tests/robotests/src/com/android/settings/development/WirelessDebuggingEnablerTest.java
index 1baf483..14c0bc7 100644
--- a/tests/robotests/src/com/android/settings/development/WirelessDebuggingEnablerTest.java
+++ b/tests/robotests/src/com/android/settings/development/WirelessDebuggingEnablerTest.java
@@ -29,8 +29,7 @@
 
 import com.android.settings.testutils.shadow.ShadowUtils;
 import com.android.settings.testutils.shadow.ShadowWirelessDebuggingPreferenceController;
-import com.android.settings.widget.SwitchBar;
-import com.android.settings.widget.SwitchBarController;
+import com.android.settings.widget.SwitchWidgetController;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.After;
@@ -49,23 +48,22 @@
 public class WirelessDebuggingEnablerTest {
 
     @Mock
-    private SwitchBar mSwitchBar;
+    private SwitchWidgetController mSwitchWidgetController;
     @Mock
     private WirelessDebuggingEnabler.OnEnabledListener mListener;
 
     private WirelessDebuggingEnabler mWirelessDebuggingEnabler;
     private Context mContext;
-    private LifecycleOwner mLifecycleOwner;
     private Lifecycle mLifecycle;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
-        mLifecycleOwner = () -> mLifecycle;
+        LifecycleOwner mLifecycleOwner = () -> mLifecycle;
         mLifecycle = new Lifecycle(mLifecycleOwner);
         mWirelessDebuggingEnabler = spy(new WirelessDebuggingEnabler(
-                mContext, new SwitchBarController(mSwitchBar), mListener, mLifecycle));
+                mContext, mSwitchWidgetController, mListener, mLifecycle));
     }
 
     @After
@@ -75,14 +73,14 @@
 
     @Test
     public void onCreation_shouldShowSwitchBar() {
-        verify(mSwitchBar).show();
+        verify(mSwitchWidgetController).setupView();
     }
 
     @Test
     public void teardownSwitchController_shouldHideSwitchBar() {
         mWirelessDebuggingEnabler.teardownSwitchController();
 
-        verify(mSwitchBar).hide();
+        verify(mSwitchWidgetController).teardownView();
     }
 
     @Test
@@ -92,7 +90,7 @@
                 Global.ADB_WIFI_ENABLED, 0 /* setting disabled */);
         mWirelessDebuggingEnabler.onResume();
 
-        verify(mSwitchBar).setChecked(false);
+        verify(mSwitchWidgetController).setChecked(false);
         verify(mListener).onEnabled(false);
 
         Global.putInt(mContext.getContentResolver(),
@@ -101,7 +99,7 @@
                 ReflectionHelpers.getField(mWirelessDebuggingEnabler, "mSettingsObserver");
         observer.onChange(true, Global.getUriFor(Global.ADB_WIFI_ENABLED));
 
-        verify(mSwitchBar).setChecked(true);
+        verify(mSwitchWidgetController).setChecked(true);
         // Should also get a callback
         verify(mListener).onEnabled(true);
     }
@@ -112,7 +110,7 @@
                 Global.ADB_WIFI_ENABLED, 1 /* setting enabled */);
         mWirelessDebuggingEnabler.onResume();
 
-        verify(mSwitchBar).setChecked(true);
+        verify(mSwitchWidgetController).setChecked(true);
         verify(mListener).onEnabled(true);
 
         Global.putInt(mContext.getContentResolver(),
@@ -121,7 +119,7 @@
                 ReflectionHelpers.getField(mWirelessDebuggingEnabler, "mSettingsObserver");
         observer.onChange(true, Global.getUriFor(Global.ADB_WIFI_ENABLED));
 
-        verify(mSwitchBar).setChecked(false);
+        verify(mSwitchWidgetController).setChecked(false);
         // Should also get a callback
         verify(mListener).onEnabled(false);
     }
@@ -133,7 +131,7 @@
                 Global.ADB_WIFI_ENABLED, 0 /* setting disabled */);
         mWirelessDebuggingEnabler.onResume();
 
-        verify(mSwitchBar).setChecked(false);
+        verify(mSwitchWidgetController).setChecked(false);
         verify(mListener).onEnabled(false);
 
         mWirelessDebuggingEnabler.onSwitchToggled(true);
@@ -149,7 +147,7 @@
                 Global.ADB_WIFI_ENABLED, 0 /* setting disabled */);
         mWirelessDebuggingEnabler.onResume();
 
-        verify(mSwitchBar).setChecked(false);
+        verify(mSwitchWidgetController).setChecked(false);
         verify(mListener).onEnabled(false);
 
         mWirelessDebuggingEnabler.onSwitchToggled(true);
@@ -165,7 +163,7 @@
                 Global.ADB_WIFI_ENABLED, 1 /* setting disabled */);
         mWirelessDebuggingEnabler.onResume();
 
-        verify(mSwitchBar).setChecked(true);
+        verify(mSwitchWidgetController).setChecked(true);
         verify(mListener).onEnabled(true);
 
         mWirelessDebuggingEnabler.onSwitchToggled(false);
@@ -181,7 +179,7 @@
                 Global.ADB_WIFI_ENABLED, 1 /* setting disabled */);
         mWirelessDebuggingEnabler.onResume();
 
-        verify(mSwitchBar).setChecked(true);
+        verify(mSwitchWidgetController).setChecked(true);
         verify(mListener).onEnabled(true);
 
         mWirelessDebuggingEnabler.onSwitchToggled(false);
diff --git a/tests/robotests/src/com/android/settings/development/graphicsdriver/GraphicsDriverEnableAngleAsSystemDriverControllerTest.java b/tests/robotests/src/com/android/settings/development/graphicsdriver/GraphicsDriverEnableAngleAsSystemDriverControllerTest.java
index 686df7a..e623eb8 100644
--- a/tests/robotests/src/com/android/settings/development/graphicsdriver/GraphicsDriverEnableAngleAsSystemDriverControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/graphicsdriver/GraphicsDriverEnableAngleAsSystemDriverControllerTest.java
@@ -19,7 +19,6 @@
 import static com.android.settings.development.graphicsdriver.GraphicsDriverEnableAngleAsSystemDriverController.ANGLE_DRIVER_SUFFIX;
 import static com.android.settings.development.graphicsdriver.GraphicsDriverEnableAngleAsSystemDriverController.PROPERTY_DEBUG_ANGLE_DEVELOPER_OPTION;
 import static com.android.settings.development.graphicsdriver.GraphicsDriverEnableAngleAsSystemDriverController.PROPERTY_PERSISTENT_GRAPHICS_EGL;
-import static com.android.settings.development.graphicsdriver.GraphicsDriverEnableAngleAsSystemDriverController.PROPERTY_RO_GFX_ANGLE_SUPPORTED;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -83,7 +82,6 @@
 
     @Test
     public void onPreferenceChange_switchOn_shouldEnableAngleAsSystemDriver() {
-        ShadowSystemProperties.override(PROPERTY_RO_GFX_ANGLE_SUPPORTED, "true");
         // since GraphicsEnvironment is mocked in Robolectric test environment,
         // we will override the system property persist.graphics.egl as if it is changed by
         // mGraphicsEnvironment.toggleAngleAsSystemDriver(true).
@@ -100,7 +98,6 @@
 
     @Test
     public void onPreferenceChange_switchOff_shouldDisableAngleAsSystemDriver() {
-        ShadowSystemProperties.override(PROPERTY_RO_GFX_ANGLE_SUPPORTED, "true");
         // since GraphicsEnvironment is mocked in Robolectric test environment,
         // we will override the system property persist.graphics.egl as if it is changed by
         // mGraphicsEnvironment.toggleAngleAsSystemDriver(false).
@@ -116,30 +113,14 @@
     }
 
     @Test
-    public void updateState_angleNotSupported_preferenceShouldNotBeChecked() {
-        ShadowSystemProperties.override(PROPERTY_RO_GFX_ANGLE_SUPPORTED, "");
-        mController.updateState(mPreference);
-        verify(mPreference).setChecked(false);
-    }
-
-    @Test
-    public void updateState_angleNotSupported_preferenceShouldNotBeEnabled() {
-        ShadowSystemProperties.override(PROPERTY_RO_GFX_ANGLE_SUPPORTED, "");
-        mController.updateState(mPreference);
-        verify(mPreference).setEnabled(false);
-    }
-
-    @Test
-    public void updateState_angleSupported_angleUsed_preferenceShouldBeChecked() {
-        ShadowSystemProperties.override(PROPERTY_RO_GFX_ANGLE_SUPPORTED, "true");
+    public void updateState_angleUsed_preferenceShouldBeChecked() {
         ShadowSystemProperties.override(PROPERTY_PERSISTENT_GRAPHICS_EGL, ANGLE_DRIVER_SUFFIX);
         mController.updateState(mPreference);
         verify(mPreference).setChecked(true);
     }
 
     @Test
-    public void updateState_angleSupported_angleNotUsed_preferenceShouldNotBeChecked() {
-        ShadowSystemProperties.override(PROPERTY_RO_GFX_ANGLE_SUPPORTED, "true");
+    public void updateState_angleNotUsed_preferenceShouldNotBeChecked() {
         ShadowSystemProperties.override(PROPERTY_PERSISTENT_GRAPHICS_EGL, "");
         mController.updateState(mPreference);
         verify(mPreference).setChecked(false);
@@ -147,7 +128,6 @@
 
     @Test
     public void onDeveloperOptionSwitchDisabled_shouldDisableAngleAsSystemDriver() {
-        ShadowSystemProperties.override(PROPERTY_RO_GFX_ANGLE_SUPPORTED, "true");
         mController.onDeveloperOptionsSwitchDisabled();
         final String systemEGLDriver = SystemProperties.get(PROPERTY_PERSISTENT_GRAPHICS_EGL);
         assertThat(systemEGLDriver).isEqualTo("");
@@ -155,14 +135,12 @@
 
     @Test
     public void onDeveloperOptionSwitchDisabled_preferenceShouldNotBeChecked() {
-        ShadowSystemProperties.override(PROPERTY_RO_GFX_ANGLE_SUPPORTED, "true");
         mController.onDeveloperOptionsSwitchDisabled();
         verify(mPreference).setChecked(false);
     }
 
     @Test
     public void onDeveloperOptionsSwitchDisabled_preferenceShouldNotBeEnabled() {
-        ShadowSystemProperties.override(PROPERTY_RO_GFX_ANGLE_SUPPORTED, "true");
         mController.onDeveloperOptionsSwitchDisabled();
         verify(mPreference).setEnabled(false);
     }
diff --git a/tests/robotests/src/com/android/settings/development/graphicsdriver/GraphicsDriverGlobalSwitchBarControllerTest.java b/tests/robotests/src/com/android/settings/development/graphicsdriver/GraphicsDriverGlobalSwitchBarControllerTest.java
index 838703d..cedc060 100644
--- a/tests/robotests/src/com/android/settings/development/graphicsdriver/GraphicsDriverGlobalSwitchBarControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/graphicsdriver/GraphicsDriverGlobalSwitchBarControllerTest.java
@@ -27,8 +27,6 @@
 import android.content.Context;
 import android.provider.Settings;
 
-import com.android.settings.widget.SwitchBar;
-import com.android.settings.widget.SwitchBarController;
 import com.android.settings.widget.SwitchWidgetController;
 
 import org.junit.Before;
@@ -43,8 +41,6 @@
 public class GraphicsDriverGlobalSwitchBarControllerTest {
 
     @Mock
-    private SwitchBar mSwitchBar;
-    @Mock
     private SwitchWidgetController mSwitchWidgetController;
     @Mock
     private GraphicsDriverContentObserver mGraphicsDriverContentObserver;
@@ -65,9 +61,9 @@
         Settings.Global.putInt(
                 mResolver, Settings.Global.UPDATABLE_DRIVER_ALL_APPS, UPDATABLE_DRIVER_DEFAULT);
         mController = new GraphicsDriverGlobalSwitchBarController(
-                mContext, new SwitchBarController(mSwitchBar));
+                mContext, mSwitchWidgetController);
 
-        verify(mSwitchBar).setChecked(true);
+        verify(mSwitchWidgetController).setChecked(true);
     }
 
     @Test
@@ -75,34 +71,33 @@
         Settings.Global.putInt(mResolver, Settings.Global.UPDATABLE_DRIVER_ALL_APPS,
                 UPDATABLE_DRIVER_OFF);
         mController = new GraphicsDriverGlobalSwitchBarController(
-                mContext, new SwitchBarController(mSwitchBar));
+                mContext, mSwitchWidgetController);
 
-        verify(mSwitchBar).setChecked(false);
+        verify(mSwitchWidgetController).setChecked(false);
     }
 
     @Test
     public void constructor_developmentSettingsEnabled_shouldEnableSwitchBar() {
         Settings.Global.putInt(mResolver, Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 1);
         mController = new GraphicsDriverGlobalSwitchBarController(
-                mContext, new SwitchBarController(mSwitchBar));
+                mContext, mSwitchWidgetController);
 
-        verify(mSwitchBar).setEnabled(true);
+        verify(mSwitchWidgetController).setEnabled(true);
     }
 
     @Test
     public void constructor_developmentSettingsDisabled_shouldDisableSwitchBar() {
         Settings.Global.putInt(mResolver, Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0);
         mController = new GraphicsDriverGlobalSwitchBarController(
-                mContext, new SwitchBarController(mSwitchBar));
+                mContext, mSwitchWidgetController);
 
-        verify(mSwitchBar).setEnabled(false);
+        verify(mSwitchWidgetController).setEnabled(false);
     }
 
     @Test
     public void onStart_shouldStartListeningAndRegister() {
         mController = new GraphicsDriverGlobalSwitchBarController(
-                mContext, new SwitchBarController(mSwitchBar));
-        mController.mSwitchWidgetController = mSwitchWidgetController;
+                mContext, mSwitchWidgetController);
         mController.mGraphicsDriverContentObserver = mGraphicsDriverContentObserver;
         mController.onStart();
 
@@ -113,8 +108,7 @@
     @Test
     public void onStop_shouldStopListeningAndUnregister() {
         mController = new GraphicsDriverGlobalSwitchBarController(
-                mContext, new SwitchBarController(mSwitchBar));
-        mController.mSwitchWidgetController = mSwitchWidgetController;
+                mContext, mSwitchWidgetController);
         mController.mGraphicsDriverContentObserver = mGraphicsDriverContentObserver;
         mController.onStop();
 
@@ -127,7 +121,7 @@
         Settings.Global.putInt(mResolver, Settings.Global.UPDATABLE_DRIVER_ALL_APPS,
                 UPDATABLE_DRIVER_OFF);
         mController = new GraphicsDriverGlobalSwitchBarController(
-                mContext, new SwitchBarController(mSwitchBar));
+                mContext, mSwitchWidgetController);
         mController.onSwitchToggled(true);
 
         assertThat(Settings.Global.getInt(
@@ -141,7 +135,7 @@
         Settings.Global.putInt(
                 mResolver, Settings.Global.UPDATABLE_DRIVER_ALL_APPS, UPDATABLE_DRIVER_DEFAULT);
         mController = new GraphicsDriverGlobalSwitchBarController(
-                mContext, new SwitchBarController(mSwitchBar));
+                mContext, mSwitchWidgetController);
         mController.onSwitchToggled(false);
 
         assertThat(Settings.Global.getInt(
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceControllerTest.java
index 5db0243..b61f5ab 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceControllerTest.java
@@ -52,6 +52,7 @@
 import com.android.settings.SubSettings;
 import com.android.settings.applications.manageapplications.ManageApplications;
 import com.android.settings.dashboard.profileselector.ProfileSelectFragment;
+import com.android.settings.dashboard.profileselector.ProfileSelectFragment.ProfileType;
 import com.android.settings.deviceinfo.StorageItemPreference;
 import com.android.settings.testutils.shadow.ShadowUserManager;
 import com.android.settingslib.deviceinfo.StorageVolumeProvider;
@@ -99,7 +100,7 @@
         // Note: null is passed as the Lifecycle because we are handling it outside of the normal
         //       Settings fragment lifecycle for test purposes.
         mController = new StorageItemPreferenceController(mContext, mFragment, mVolume, mSvp,
-                false /* isWorkProfile */);
+                ProfileSelectFragment.ProfileType.PERSONAL);
         mPreference = new StorageItemPreference(mContext);
 
         // Inflate the preference and the widget.
@@ -175,7 +176,7 @@
         mPreference.setKey(StorageItemPreferenceController.IMAGES_KEY);
         final Context mockContext = getMockContext();
         mController = new StorageItemPreferenceController(mockContext, mFragment, mVolume,
-                mSvp, false /* isWorkProfile */);
+                mSvp, ProfileSelectFragment.ProfileType.PERSONAL);
         mController.handlePreferenceTreeClick(mPreference);
 
         final ArgumentCaptor<Intent> argumentCaptor = ArgumentCaptor.forClass(Intent.class);
@@ -192,7 +193,7 @@
         mPreference.setKey(StorageItemPreferenceController.AUDIO_KEY);
         final Context mockContext = getMockContext();
         mController = new StorageItemPreferenceController(mockContext, mFragment, mVolume,
-                mSvp, false /* isWorkProfile */);
+                mSvp, ProfileSelectFragment.ProfileType.PERSONAL);
         mController.handlePreferenceTreeClick(mPreference);
 
         final ArgumentCaptor<Intent> argumentCaptor = ArgumentCaptor.forClass(Intent.class);
@@ -242,7 +243,7 @@
     @Test
     public void launchAppsIntent_forWork_settingsIntent() {
         mController = new FakeStorageItemPreferenceController(mContext, mFragment, mVolume, mSvp,
-                true /* isWorkProfile */);
+                ProfileType.WORK);
         mPreference.setKey(StorageItemPreferenceController.APPS_KEY);
         mController.handlePreferenceTreeClick(mPreference);
 
@@ -272,7 +273,7 @@
         mPreference.setKey(StorageItemPreferenceController.DOCUMENTS_AND_OTHER_KEY);
         final Context mockContext = getMockContext();
         mController = new StorageItemPreferenceController(mockContext, mFragment, mVolume,
-                mSvp, false /* isWorkProfile */);
+                mSvp, ProfileSelectFragment.ProfileType.PERSONAL);
         mController.handlePreferenceTreeClick(mPreference);
 
         final ArgumentCaptor<Intent> argumentCaptor = ArgumentCaptor.forClass(Intent.class);
@@ -307,7 +308,7 @@
         mPreference.setKey(StorageItemPreferenceController.VIDEOS_KEY);
         final Context mockContext = getMockContext();
         mController = new StorageItemPreferenceController(mockContext, mFragment, mVolume,
-                mSvp, false /* isWorkProfile */);
+                mSvp, ProfileSelectFragment.ProfileType.PERSONAL);
         mController.handlePreferenceTreeClick(mPreference);
 
         final ArgumentCaptor<Intent> argumentCaptor = ArgumentCaptor.forClass(Intent.class);
@@ -457,8 +458,8 @@
         private static final int CURRENT_USER_ID = 10;
 
         FakeStorageItemPreferenceController(Context context, Fragment hostFragment,
-                VolumeInfo volume, StorageVolumeProvider svp, boolean isWorkProfile) {
-            super(context, hostFragment, volume, svp, isWorkProfile);
+                VolumeInfo volume, StorageVolumeProvider svp, @ProfileType int profileType) {
+            super(context, hostFragment, volume, svp, profileType);
         }
 
         @Override
diff --git a/tests/robotests/src/com/android/settings/display/ControlsTrivialPrivacyPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/ControlsTrivialPrivacyPreferenceControllerTest.java
index a82e1f1..03bf763 100644
--- a/tests/robotests/src/com/android/settings/display/ControlsTrivialPrivacyPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/ControlsTrivialPrivacyPreferenceControllerTest.java
@@ -20,6 +20,7 @@
 
 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.atLeastOnce;
 import static org.mockito.Mockito.spy;
@@ -220,7 +221,7 @@
             final ResolveInfo resolveInfo = new ResolveInfo();
             resolveInfo.activityInfo = activityInfo;
 
-            when(mPackageManager.resolveActivity(any(), any())).thenReturn(resolveInfo);
+            when(mPackageManager.resolveActivity(any(), anyInt())).thenReturn(resolveInfo);
         }
     }
 }
diff --git a/tests/robotests/src/com/android/settings/display/LockscreenClockPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/LockscreenClockPreferenceControllerTest.java
index 94f2dc6..88a3d23 100644
--- a/tests/robotests/src/com/android/settings/display/LockscreenClockPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/LockscreenClockPreferenceControllerTest.java
@@ -16,10 +16,14 @@
 
 package com.android.settings.display;
 
+import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.spy;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import android.content.ContentResolver;
 import android.content.Context;
+import android.content.res.Resources;
 import android.provider.Settings;
 
 import androidx.preference.Preference;
@@ -42,6 +46,8 @@
     private ContentResolver mContentResolver;
     private LockscreenClockPreferenceController mController;
 
+    private Resources mResources;
+
     @Mock
     private Preference mPreference;
 
@@ -51,12 +57,18 @@
         mContext = RuntimeEnvironment.application;
         mContentResolver = mContext.getContentResolver();
         mController = new LockscreenClockPreferenceController(mContext, TEST_KEY);
+        mResources = spy(mContext.getResources());
+        Context mClockContext = org.mockito.Mockito.mock(Context.class);
+        when(mClockContext.getResources()).thenReturn(mResources);
     }
 
     @Test
     public void isChecked_SettingIs1_returnTrue() {
         Settings.Secure.putInt(mContentResolver, SETTING_KEY, 1);
 
+        when(mResources.getInteger(com.android.internal.R.integer.config_doublelineClockDefault))
+            .thenReturn(1);
+
         assertThat(mController.isChecked()).isTrue();
     }
 
@@ -64,6 +76,9 @@
     public void isChecked_SettingIs0_returnFalse() {
         Settings.Secure.putInt(mContentResolver, SETTING_KEY, 0);
 
+        when(mResources.getInteger(com.android.internal.R.integer.config_doublelineClockDefault))
+            .thenReturn(0);
+
         assertThat(mController.isChecked()).isFalse();
     }
 
diff --git a/tests/robotests/src/com/android/settings/display/NightDisplayActivationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/NightDisplayActivationPreferenceControllerTest.java
index d084c51..5c38411 100644
--- a/tests/robotests/src/com/android/settings/display/NightDisplayActivationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/NightDisplayActivationPreferenceControllerTest.java
@@ -104,7 +104,7 @@
 
         final NightDisplayActivationPreferenceController controller =
                 new NightDisplayActivationPreferenceController(mContext, "night_display_activated");
-        controller.onSwitchChanged(null, true);
+        controller.onCheckedChanged(null, true);
 
         assertThat(mColorDisplayManager.isNightDisplayActivated()).isEqualTo(true);
     }
@@ -115,7 +115,7 @@
 
         final NightDisplayActivationPreferenceController controller =
                 new NightDisplayActivationPreferenceController(mContext, "night_display_activated");
-        controller.onSwitchChanged(null, false);
+        controller.onCheckedChanged(null, false);
 
         assertThat(mColorDisplayManager.isNightDisplayActivated()).isEqualTo(false);
     }
diff --git a/tests/robotests/src/com/android/settings/display/PeakRefreshRatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/PeakRefreshRatePreferenceControllerTest.java
index aaeeea4..8b2c445 100644
--- a/tests/robotests/src/com/android/settings/display/PeakRefreshRatePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/PeakRefreshRatePreferenceControllerTest.java
@@ -16,21 +16,24 @@
 
 package com.android.settings.display;
 
+import static com.android.internal.display.RefreshRateSettingsUtils.DEFAULT_REFRESH_RATE;
 import static com.android.settings.core.BasePreferenceController.AVAILABLE;
 import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
-import static com.android.settings.display.PeakRefreshRatePreferenceController.DEFAULT_REFRESH_RATE;
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.Mockito.when;
+
 import android.content.Context;
 import android.provider.Settings;
-import android.view.Display;
 
 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;
@@ -42,10 +45,16 @@
     private PeakRefreshRatePreferenceController mController;
     private SwitchPreference mPreference;
 
+    @Mock
+    private PeakRefreshRatePreferenceController.DeviceConfigDisplaySettings
+            mDeviceConfigDisplaySettings;
+
     @Before
     public void setUp() {
+        MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
         mController = new PeakRefreshRatePreferenceController(mContext, "key");
+        mController.injectDeviceConfigDisplaySettings(mDeviceConfigDisplaySettings);
         mPreference = new SwitchPreference(RuntimeEnvironment.application);
     }
 
@@ -70,13 +79,13 @@
     }
 
     @Test
-    public void setChecked_enableSmoothDisplay_setCurrentRefreshRate() {
+    public void setChecked_enableSmoothDisplay_setRefreshRateToInfinity() {
         mController.mPeakRefreshRate = 88f;
         mController.setChecked(true);
 
         assertThat(Settings.System.getFloat(mContext.getContentResolver(),
                 Settings.System.PEAK_REFRESH_RATE, DEFAULT_REFRESH_RATE))
-                .isEqualTo(88.0f);
+                .isPositiveInfinity();
     }
 
     @Test
@@ -104,18 +113,20 @@
     }
 
     @Test
-    public void findPeakRefreshRate_moreThanOneHigherThanDefault() {
-        Display.Mode lower = new Display.Mode(0, 0, 0, DEFAULT_REFRESH_RATE - 1);
-        Display.Mode def = new Display.Mode(0, 0, 0, DEFAULT_REFRESH_RATE);
-        Display.Mode higher = new Display.Mode(0, 0, 0, DEFAULT_REFRESH_RATE + 1);
-        Display.Mode higher1 = new Display.Mode(0, 0, 0, DEFAULT_REFRESH_RATE + 2);
+    public void isChecked_default_returnTrue() {
+        mController.mPeakRefreshRate = 88f;
+        when(mDeviceConfigDisplaySettings.getDefaultPeakRefreshRate())
+                .thenReturn(mController.mPeakRefreshRate);
 
-        assertThat(mController.findPeakRefreshRate(
-                new Display.Mode[] {lower, def, higher, higher1}))
-                .isEqualTo(DEFAULT_REFRESH_RATE + 2);
-        assertThat(mController.findPeakRefreshRate(
-                new Display.Mode[] {lower, def, higher1, higher}))
-                .isEqualTo(DEFAULT_REFRESH_RATE + 2);
+        assertThat(mController.isChecked()).isTrue();
+    }
+
+    @Test
+    public void isChecked_default_returnFalse() {
+        mController.mPeakRefreshRate = 88f;
+        when(mDeviceConfigDisplaySettings.getDefaultPeakRefreshRate()).thenReturn(60f);
+
+        assertThat(mController.isChecked()).isFalse();
     }
 
     private void enableSmoothDisplayPreference() {
diff --git a/tests/robotests/src/com/android/settings/dream/DreamMainSwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/dream/DreamMainSwitchPreferenceControllerTest.java
index fb55164..924c63a 100644
--- a/tests/robotests/src/com/android/settings/dream/DreamMainSwitchPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/dream/DreamMainSwitchPreferenceControllerTest.java
@@ -28,7 +28,6 @@
 
 import com.android.settingslib.dream.DreamBackend;
 import com.android.settingslib.widget.MainSwitchPreference;
-import com.android.settingslib.widget.OnMainSwitchChangeListener;
 
 import org.junit.After;
 import org.junit.Before;
@@ -53,8 +52,6 @@
     private DreamMainSwitchPreferenceController mController;
     private MainSwitchPreference mPreference;
     private DreamBackend mBackend;
-    @Mock
-    private OnMainSwitchChangeListener mChangeListener;
     private ShadowContentResolver mShadowContentResolver;
 
     @Before
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
index 5827498..d01d7e0 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
@@ -17,6 +17,7 @@
 package com.android.settings.fuelgauge;
 
 import static com.android.settings.SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS;
+import static com.android.settings.fuelgauge.BatteryOptimizeHistoricalLogEntry.Action;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -30,7 +31,6 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.verifyNoInteractions;
 import static org.mockito.Mockito.when;
-import static org.robolectric.shadows.ShadowLooper.shadowMainLooper;
 
 import android.app.AppOpsManager;
 import android.app.backup.BackupManager;
@@ -42,7 +42,6 @@
 import android.content.pm.PackageManager;
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
-import android.os.Process;
 import android.os.UserHandle;
 
 import androidx.fragment.app.FragmentActivity;
@@ -55,13 +54,12 @@
 import com.android.settings.testutils.shadow.ShadowActivityManager;
 import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
 import com.android.settings.widget.EntityHeaderController;
+import com.android.settingslib.PrimarySwitchPreference;
 import com.android.settingslib.applications.AppUtils;
 import com.android.settingslib.applications.ApplicationsState;
 import com.android.settingslib.applications.instantapps.InstantAppDataProvider;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
-import com.android.settingslib.widget.FooterPreference;
 import com.android.settingslib.widget.LayoutPreference;
-import com.android.settingslib.widget.SelectorWithWidgetPreference;
 
 import org.junit.After;
 import org.junit.Before;
@@ -77,18 +75,20 @@
 import org.robolectric.annotation.Config;
 import org.robolectric.util.ReflectionHelpers;
 
+import java.util.concurrent.TimeUnit;
+
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = {
-        ShadowEntityHeaderController.class,
-        ShadowActivityManager.class,
-        com.android.settings.testutils.shadow.ShadowFragment.class,
-})
+@Config(
+        shadows = {
+            ShadowEntityHeaderController.class,
+            ShadowActivityManager.class,
+            com.android.settings.testutils.shadow.ShadowFragment.class,
+        })
 public class AdvancedPowerUsageDetailTest {
     private static final String APP_LABEL = "app label";
     private static final String SUMMARY = "summary";
     private static final String[] PACKAGE_NAME = {"com.android.app"};
     private static final String USAGE_PERCENT = "16%";
-    private static final String SLOT_TIME = "12 am-2 am";
     private static final int ICON_ID = 123;
     private static final int UID = 1;
     private static final long BACKGROUND_TIME_MS = 100;
@@ -96,43 +96,26 @@
     private static final long FOREGROUND_SERVICE_TIME_MS = 444;
     private static final long FOREGROUND_TIME_MS =
             FOREGROUND_ACTIVITY_TIME_MS + FOREGROUND_SERVICE_TIME_MS;
-    private static final long FOREGROUND_SERVICE_TIME_US = FOREGROUND_SERVICE_TIME_MS * 1000;
-    private static final String KEY_PREF_UNRESTRICTED = "unrestricted_pref";
-    private static final String KEY_PREF_OPTIMIZED = "optimized_pref";
-    private static final String KEY_PREF_RESTRICTED = "restricted_pref";
+    private static final String KEY_ALLOW_BACKGROUND_USAGE = "allow_background_usage";
 
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private FragmentActivity mActivity;
-    @Mock
-    private EntityHeaderController mEntityHeaderController;
-    @Mock
-    private LayoutPreference mHeaderPreference;
-    @Mock
-    private ApplicationsState mState;
-    @Mock
-    private ApplicationsState.AppEntry mAppEntry;
-    @Mock
-    private Bundle mBundle;
-    @Mock
-    private BatteryEntry mBatteryEntry;
-    @Mock
-    private PackageManager mPackageManager;
-    @Mock
-    private InstallSourceInfo mInstallSourceInfo;
-    @Mock
-    private AppOpsManager mAppOpsManager;
-    @Mock
-    private LoaderManager mLoaderManager;
-    @Mock
-    private BatteryOptimizeUtils mBatteryOptimizeUtils;
-    @Mock
-    private BackupManager mBackupManager;
+
+    @Mock private EntityHeaderController mEntityHeaderController;
+    @Mock private LayoutPreference mHeaderPreference;
+    @Mock private ApplicationsState mState;
+    @Mock private ApplicationsState.AppEntry mAppEntry;
+    @Mock private Bundle mBundle;
+    @Mock private BatteryEntry mBatteryEntry;
+    @Mock private PackageManager mPackageManager;
+    @Mock private InstallSourceInfo mInstallSourceInfo;
+    @Mock private AppOpsManager mAppOpsManager;
+    @Mock private LoaderManager mLoaderManager;
+    @Mock private BatteryOptimizeUtils mBatteryOptimizeUtils;
+    @Mock private BackupManager mBackupManager;
 
     private Context mContext;
-    private FooterPreference mFooterPreference;
-    private SelectorWithWidgetPreference mRestrictedPreference;
-    private SelectorWithWidgetPreference mOptimizePreference;
-    private SelectorWithWidgetPreference mUnrestrictedPreference;
+    private PrimarySwitchPreference mAllowBackgroundUsagePreference;
     private AdvancedPowerUsageDetail mFragment;
     private SettingsActivity mTestActivity;
     private FakeFeatureFactory mFeatureFactory;
@@ -156,19 +139,26 @@
         doReturn(mLoaderManager).when(mFragment).getLoaderManager();
 
         ShadowEntityHeaderController.setUseMock(mEntityHeaderController);
-        doReturn(mEntityHeaderController).when(mEntityHeaderController)
+        doReturn(mEntityHeaderController)
+                .when(mEntityHeaderController)
                 .setButtonActions(anyInt(), anyInt());
-        doReturn(mEntityHeaderController).when(mEntityHeaderController)
+        doReturn(mEntityHeaderController)
+                .when(mEntityHeaderController)
                 .setIcon(nullable(Drawable.class));
-        doReturn(mEntityHeaderController).when(mEntityHeaderController).setIcon(nullable(
-                ApplicationsState.AppEntry.class));
-        doReturn(mEntityHeaderController).when(mEntityHeaderController)
+        doReturn(mEntityHeaderController)
+                .when(mEntityHeaderController)
+                .setIcon(nullable(ApplicationsState.AppEntry.class));
+        doReturn(mEntityHeaderController)
+                .when(mEntityHeaderController)
                 .setLabel(nullable(String.class));
-        doReturn(mEntityHeaderController).when(mEntityHeaderController)
+        doReturn(mEntityHeaderController)
+                .when(mEntityHeaderController)
                 .setLabel(nullable(String.class));
-        doReturn(mEntityHeaderController).when(mEntityHeaderController)
+        doReturn(mEntityHeaderController)
+                .when(mEntityHeaderController)
                 .setLabel(nullable(ApplicationsState.AppEntry.class));
-        doReturn(mEntityHeaderController).when(mEntityHeaderController)
+        doReturn(mEntityHeaderController)
+                .when(mEntityHeaderController)
                 .setSummary(nullable(String.class));
 
         when(mBatteryEntry.getUid()).thenReturn(UID);
@@ -191,23 +181,20 @@
 
         final ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
 
-        Answer<Void> callable = invocation -> {
-            mBundle = captor.getValue().getBundleExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS);
-            System.out.println("mBundle = " + mBundle);
-            return null;
-        };
-        doAnswer(callable).when(mActivity).startActivityAsUser(captor.capture(),
-                nullable(UserHandle.class));
+        Answer<Void> callable =
+                invocation -> {
+                    mBundle = captor.getValue().getBundleExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS);
+                    System.out.println("mBundle = " + mBundle);
+                    return null;
+                };
+        doAnswer(callable)
+                .when(mActivity)
+                .startActivityAsUser(captor.capture(), nullable(UserHandle.class));
         doAnswer(callable).when(mActivity).startActivity(captor.capture());
 
-        mFooterPreference = new FooterPreference(mContext);
-        mRestrictedPreference = new SelectorWithWidgetPreference(mContext);
-        mOptimizePreference = new SelectorWithWidgetPreference(mContext);
-        mUnrestrictedPreference = new SelectorWithWidgetPreference(mContext);
-        mFragment.mFooterPreference = mFooterPreference;
-        mFragment.mRestrictedPreference = mRestrictedPreference;
-        mFragment.mOptimizePreference = mOptimizePreference;
-        mFragment.mUnrestrictedPreference = mUnrestrictedPreference;
+        mAllowBackgroundUsagePreference = new PrimarySwitchPreference(mContext);
+        mAllowBackgroundUsagePreference.setKey(KEY_ALLOW_BACKGROUND_USAGE);
+        mFragment.mAllowBackgroundUsagePreference = mAllowBackgroundUsagePreference;
     }
 
     @After
@@ -231,7 +218,9 @@
 
     @Test
     public void initHeader_HasAppEntry_BuildByAppEntry() {
-        ReflectionHelpers.setStaticField(AppUtils.class, "sInstantAppDataProvider",
+        ReflectionHelpers.setStaticField(
+                AppUtils.class,
+                "sInstantAppDataProvider",
                 new InstantAppDataProvider() {
                     @Override
                     public boolean isInstantApp(ApplicationInfo info) {
@@ -248,7 +237,9 @@
 
     @Test
     public void initHeader_HasAppEntry_InstantApp() {
-        ReflectionHelpers.setStaticField(AppUtils.class, "sInstantAppDataProvider",
+        ReflectionHelpers.setStaticField(
+                AppUtils.class,
+                "sInstantAppDataProvider",
                 new InstantAppDataProvider() {
                     @Override
                     public boolean isInstantApp(ApplicationInfo info) {
@@ -264,416 +255,14 @@
     }
 
     @Test
-    public void initHeader_noAnyTimeNoConsumedPower_hasEmptySummary() {
-        Bundle bundle = new Bundle();
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_BACKGROUND_TIME, /* value */ 0);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_FOREGROUND_TIME, /* value */ 0);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_SCREEN_ON_TIME, /* value */ 0);
-        when(mFragment.getArguments()).thenReturn(bundle);
-
-        mFragment.initHeader();
-
-        ArgumentCaptor<CharSequence> captor = ArgumentCaptor.forClass(CharSequence.class);
-        verify(mEntityHeaderController).setSummary(captor.capture());
-        assertThat(captor.getValue().toString()).isEmpty();
-    }
-
-    @Test
-    public void initHeader_noAnyTimeButConsumedPower_hasEmptySummary() {
-        Bundle bundle = new Bundle();
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_BACKGROUND_TIME, /* value */ 0);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_FOREGROUND_TIME, /* value */ 0);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_SCREEN_ON_TIME, /* value */ 0);
-        bundle.putInt(AdvancedPowerUsageDetail.EXTRA_POWER_USAGE_AMOUNT, /* value */ 10);
-        when(mFragment.getArguments()).thenReturn(bundle);
-
-        mFragment.initHeader();
-
-        ArgumentCaptor<CharSequence> captor = ArgumentCaptor.forClass(CharSequence.class);
-        verify(mEntityHeaderController).setSummary(captor.capture());
-        assertThat(captor.getValue().toString()).isEmpty();
-    }
-
-    @Test
-    public void initHeader_ScreenTimeZerobackgroundTwoMin_hasCorrectSummary() {
-        final long backgroundTimeTwoMinutes = 120000;
-        final long foregroundTimeZero = 0;
-        final long screenOnTimeZero = 0;
-        Bundle bundle = new Bundle();
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_BACKGROUND_TIME, backgroundTimeTwoMinutes);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_FOREGROUND_TIME, foregroundTimeZero);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_SCREEN_ON_TIME, screenOnTimeZero);
-        when(mFragment.getArguments()).thenReturn(bundle);
-
-        mFragment.initHeader();
-
-        ArgumentCaptor<CharSequence> captor = ArgumentCaptor.forClass(CharSequence.class);
-        verify(mEntityHeaderController).setSummary(captor.capture());
-        assertThat(captor.getValue().toString())
-                .isEqualTo("Background: 2 min\n(since last full charge)");
-    }
-
-    @Test
-    public void initHeader_ScreenTimeZerobackgroundLessThanAMin_hasCorrectSummary() {
-        final long backgroundTimeLessThanAMinute = 59999;
-        final long foregroundTimeZero = 0;
-        final long screenOnTimeZero = 0;
-        Bundle bundle = new Bundle();
-        bundle.putLong(
-                AdvancedPowerUsageDetail.EXTRA_BACKGROUND_TIME, backgroundTimeLessThanAMinute);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_FOREGROUND_TIME, foregroundTimeZero);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_SCREEN_ON_TIME, screenOnTimeZero);
-        when(mFragment.getArguments()).thenReturn(bundle);
-
-        mFragment.initHeader();
-
-        ArgumentCaptor<CharSequence> captor = ArgumentCaptor.forClass(CharSequence.class);
-        verify(mEntityHeaderController).setSummary(captor.capture());
-        assertThat(captor.getValue().toString())
-                .isEqualTo("Background: less than a min\n(since last full charge)");
-    }
-
-    @Test
-    public void initHeader_ScreenTimeAMinuteBackgroundTwoMin_hasCorrectSummary() {
-        final long backgroundTimeTwoMinutes = 120000;
-        final long foregroundTimeTwoMinutes = 120000;
-        final long screenOnTimeAMinute = 60000;
-        Bundle bundle = new Bundle();
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_BACKGROUND_TIME, backgroundTimeTwoMinutes);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_FOREGROUND_TIME, foregroundTimeTwoMinutes);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_SCREEN_ON_TIME, screenOnTimeAMinute);
-        when(mFragment.getArguments()).thenReturn(bundle);
-
-        mFragment.initHeader();
-
-        ArgumentCaptor<CharSequence> captor = ArgumentCaptor.forClass(CharSequence.class);
-        verify(mEntityHeaderController).setSummary(captor.capture());
-        assertThat(captor.getValue().toString()).isEqualTo(
-                "Screen time: 1 min\nBackground: 2 min\n(since last full charge)");
-    }
-
-    @Test
-    public void initHeader_ScreenTimeAMinuteBackgroundLessThanAMin_hasCorrectSummary() {
-        final long backgroundTimeLessThanAMinute = 59999;
-        final long foregroundTimeTwoMinutes = 120000;
-        final long screenOnTimeAMinute = 60000;
-        Bundle bundle = new Bundle();
-        bundle.putLong(
-                AdvancedPowerUsageDetail.EXTRA_BACKGROUND_TIME, backgroundTimeLessThanAMinute);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_FOREGROUND_TIME, foregroundTimeTwoMinutes);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_SCREEN_ON_TIME, screenOnTimeAMinute);
-        when(mFragment.getArguments()).thenReturn(bundle);
-
-        mFragment.initHeader();
-
-        ArgumentCaptor<CharSequence> captor = ArgumentCaptor.forClass(CharSequence.class);
-        verify(mEntityHeaderController).setSummary(captor.capture());
-        assertThat(captor.getValue().toString()).isEqualTo(
-                "Screen time: 1 min\nBackground: less than a min\n(since last full charge)");
-    }
-
-    @Test
-    public void initHeader_ScreenTimeAMinuteBackgroundZero_hasCorrectSummary() {
-        final long backgroundTimezero = 0;
-        final long foregroundTimeTwoMinutes = 120000;
-        final long screenOnTimeAMinute = 60000;
-        Bundle bundle = new Bundle();
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_BACKGROUND_TIME, backgroundTimezero);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_FOREGROUND_TIME, foregroundTimeTwoMinutes);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_SCREEN_ON_TIME, screenOnTimeAMinute);
-        when(mFragment.getArguments()).thenReturn(bundle);
-
-        mFragment.initHeader();
-
-        ArgumentCaptor<CharSequence> captor = ArgumentCaptor.forClass(CharSequence.class);
-        verify(mEntityHeaderController).setSummary(captor.capture());
-        assertThat(captor.getValue().toString()).isEqualTo(
-                "Screen time: 1 min\n(since last full charge)");
-    }
-
-    @Test
-    public void initHeader_ScreenTimeLessThanAMinBackgroundTwoMin_hasCorrectSummary() {
-        final long backgroundTimeTwoMinutes = 120000;
-        final long foregroundTimeTwoMinutes = 120000;
-        final long screenOnTimeLessThanAMinute = 59999;
-        Bundle bundle = new Bundle();
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_BACKGROUND_TIME, backgroundTimeTwoMinutes);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_FOREGROUND_TIME, foregroundTimeTwoMinutes);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_SCREEN_ON_TIME, screenOnTimeLessThanAMinute);
-        when(mFragment.getArguments()).thenReturn(bundle);
-
-        mFragment.initHeader();
-
-        ArgumentCaptor<CharSequence> captor = ArgumentCaptor.forClass(CharSequence.class);
-        verify(mEntityHeaderController).setSummary(captor.capture());
-        assertThat(captor.getValue().toString()).isEqualTo(
-                "Screen time: less than a min\nBackground: 2 min\n(since last full charge)");
-    }
-
-    @Test
-    public void initHeader_ScreenTimeLessThanAMinBackgroundLessThanAMin_hasCorrectSummary() {
-        final long backgroundTimeLessThanAMinute = 59999;
-        final long foregroundTimeTwoMinutes = 120000;
-        final long screenOnTimeLessThanAMinute = 59999;
-        Bundle bundle = new Bundle();
-        bundle.putLong(
-                AdvancedPowerUsageDetail.EXTRA_BACKGROUND_TIME, backgroundTimeLessThanAMinute);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_FOREGROUND_TIME, foregroundTimeTwoMinutes);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_SCREEN_ON_TIME, screenOnTimeLessThanAMinute);
-        when(mFragment.getArguments()).thenReturn(bundle);
-
-        mFragment.initHeader();
-
-        ArgumentCaptor<CharSequence> captor = ArgumentCaptor.forClass(CharSequence.class);
-        verify(mEntityHeaderController).setSummary(captor.capture());
-        assertThat(captor.getValue().toString()).isEqualTo(
-                "Screen time: less than a min\nBackground: less than a min\n(since last full "
-                        + "charge)");
-    }
-
-    @Test
-    public void initHeader_ScreenTimeLessThanAMinBackgroundZero_hasCorrectSummary() {
-        final long backgroundTimezero = 0;
-        final long foregroundTimeTwoMinutes = 120000;
-        final long screenOnTimeLessThanAMinute = 59999;
-        Bundle bundle = new Bundle();
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_BACKGROUND_TIME, backgroundTimezero);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_FOREGROUND_TIME, foregroundTimeTwoMinutes);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_SCREEN_ON_TIME, screenOnTimeLessThanAMinute);
-        when(mFragment.getArguments()).thenReturn(bundle);
-
-        mFragment.initHeader();
-
-        ArgumentCaptor<CharSequence> captor = ArgumentCaptor.forClass(CharSequence.class);
-        verify(mEntityHeaderController).setSummary(captor.capture());
-        assertThat(captor.getValue().toString()).isEqualTo(
-                "Screen time: less than a min\n(since last full charge)");
-    }
-
-    @Test
-    public void initHeader_noAnyTimeNoConsumedPowerWithSlotTime_hasEmptySummary() {
-        Bundle bundle = new Bundle();
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_BACKGROUND_TIME, /* value */ 0);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_FOREGROUND_TIME, /* value */ 0);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_SCREEN_ON_TIME, /* value */ 0);
-        bundle.putString(AdvancedPowerUsageDetail.EXTRA_SLOT_TIME, SLOT_TIME);
-        when(mFragment.getArguments()).thenReturn(bundle);
-
-        mFragment.initHeader();
-
-        ArgumentCaptor<CharSequence> captor = ArgumentCaptor.forClass(CharSequence.class);
-        verify(mEntityHeaderController).setSummary(captor.capture());
-        assertThat(captor.getValue().toString()).isEmpty();
-    }
-
-    @Test
-    public void initHeader_noAnyTimeButConsumedPowerWithSlotTime_hasEmptySummary() {
-        Bundle bundle = new Bundle();
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_BACKGROUND_TIME, /* value */ 0);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_FOREGROUND_TIME, /* value */ 0);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_SCREEN_ON_TIME, /* value */ 0);
-        bundle.putInt(AdvancedPowerUsageDetail.EXTRA_POWER_USAGE_AMOUNT, /* value */ 10);
-        bundle.putString(AdvancedPowerUsageDetail.EXTRA_SLOT_TIME, SLOT_TIME);
-        when(mFragment.getArguments()).thenReturn(bundle);
-
-        mFragment.initHeader();
-
-        ArgumentCaptor<CharSequence> captor = ArgumentCaptor.forClass(CharSequence.class);
-        verify(mEntityHeaderController).setSummary(captor.capture());
-        assertThat(captor.getValue().toString()).isEmpty();
-    }
-
-    @Test
-    public void initHeader_ScreenTimeZerobackgroundTwoMinWithSlotTime_hasCorrectSummary() {
-        final long backgroundTimeTwoMinutes = 120000;
-        final long foregroundTimeZero = 0;
-        final long screenOnTimeZero = 0;
-        Bundle bundle = new Bundle();
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_BACKGROUND_TIME, backgroundTimeTwoMinutes);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_FOREGROUND_TIME, foregroundTimeZero);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_SCREEN_ON_TIME, screenOnTimeZero);
-        bundle.putString(AdvancedPowerUsageDetail.EXTRA_SLOT_TIME, SLOT_TIME);
-        when(mFragment.getArguments()).thenReturn(bundle);
-
-        mFragment.initHeader();
-
-        ArgumentCaptor<CharSequence> captor = ArgumentCaptor.forClass(CharSequence.class);
-        verify(mEntityHeaderController).setSummary(captor.capture());
-        assertThat(captor.getValue().toString())
-                .isEqualTo("Background: 2 min\n(12 am-2 am)");
-    }
-
-    @Test
-    public void initHeader_ScreenTimeZerobackgroundLessThanAMinWithSlotTime_hasCorrectSummary() {
-        final long backgroundTimeLessThanAMinute = 59999;
-        final long foregroundTimeZero = 0;
-        final long screenOnTimeZero = 0;
-        Bundle bundle = new Bundle();
-        bundle.putLong(
-                AdvancedPowerUsageDetail.EXTRA_BACKGROUND_TIME, backgroundTimeLessThanAMinute);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_FOREGROUND_TIME, foregroundTimeZero);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_SCREEN_ON_TIME, screenOnTimeZero);
-        bundle.putString(AdvancedPowerUsageDetail.EXTRA_SLOT_TIME, SLOT_TIME);
-        when(mFragment.getArguments()).thenReturn(bundle);
-
-        mFragment.initHeader();
-
-        ArgumentCaptor<CharSequence> captor = ArgumentCaptor.forClass(CharSequence.class);
-        verify(mEntityHeaderController).setSummary(captor.capture());
-        assertThat(captor.getValue().toString())
-                .isEqualTo("Background: less than a min\n(12 am-2 am)");
-    }
-
-    @Test
-    public void initHeader_ScreenTimeAMinuteBackgroundTwoMinWithSlotTime_hasCorrectSummary() {
-        final long backgroundTimeTwoMinutes = 120000;
-        final long foregroundTimeTwoMinutes = 120000;
-        final long screenOnTimeAMinute = 60000;
-        Bundle bundle = new Bundle();
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_BACKGROUND_TIME, backgroundTimeTwoMinutes);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_FOREGROUND_TIME, foregroundTimeTwoMinutes);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_SCREEN_ON_TIME, screenOnTimeAMinute);
-        bundle.putString(AdvancedPowerUsageDetail.EXTRA_SLOT_TIME, SLOT_TIME);
-        when(mFragment.getArguments()).thenReturn(bundle);
-
-        mFragment.initHeader();
-
-        ArgumentCaptor<CharSequence> captor = ArgumentCaptor.forClass(CharSequence.class);
-        verify(mEntityHeaderController).setSummary(captor.capture());
-        assertThat(captor.getValue().toString()).isEqualTo(
-                "Screen time: 1 min\nBackground: 2 min\n(12 am-2 am)");
-    }
-
-    @Test
-    public void initHeader_ScreenTimeAMinuteBackgroundLessThanAMinWithSlotTime_hasCorrectSummary() {
-        final long backgroundTimeLessThanAMinute = 59999;
-        final long foregroundTimeTwoMinutes = 120000;
-        final long screenOnTimeAMinute = 60000;
-        Bundle bundle = new Bundle();
-        bundle.putLong(
-                AdvancedPowerUsageDetail.EXTRA_BACKGROUND_TIME, backgroundTimeLessThanAMinute);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_FOREGROUND_TIME, foregroundTimeTwoMinutes);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_SCREEN_ON_TIME, screenOnTimeAMinute);
-        bundle.putString(AdvancedPowerUsageDetail.EXTRA_SLOT_TIME, SLOT_TIME);
-        when(mFragment.getArguments()).thenReturn(bundle);
-
-        mFragment.initHeader();
-
-        ArgumentCaptor<CharSequence> captor = ArgumentCaptor.forClass(CharSequence.class);
-        verify(mEntityHeaderController).setSummary(captor.capture());
-        assertThat(captor.getValue().toString()).isEqualTo(
-                "Screen time: 1 min\nBackground: less than a min\n(12 am-2 am)");
-    }
-
-    @Test
-    public void initHeader_ScreenTimeAMinuteBackgroundZeroWithSlotTime_hasCorrectSummary() {
-        final long backgroundTimezero = 0;
-        final long foregroundTimeTwoMinutes = 120000;
-        final long screenOnTimeAMinute = 60000;
-        Bundle bundle = new Bundle();
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_BACKGROUND_TIME, backgroundTimezero);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_FOREGROUND_TIME, foregroundTimeTwoMinutes);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_SCREEN_ON_TIME, screenOnTimeAMinute);
-        bundle.putString(AdvancedPowerUsageDetail.EXTRA_SLOT_TIME, SLOT_TIME);
-        when(mFragment.getArguments()).thenReturn(bundle);
-
-        mFragment.initHeader();
-
-        ArgumentCaptor<CharSequence> captor = ArgumentCaptor.forClass(CharSequence.class);
-        verify(mEntityHeaderController).setSummary(captor.capture());
-        assertThat(captor.getValue().toString()).isEqualTo(
-                "Screen time: 1 min\n(12 am-2 am)");
-    }
-
-    @Test
-    public void initHeader_ScreenTimeLessThanAMinBackgroundTwoMinWithSlotTime_hasCorrectSummary() {
-        final long backgroundTimeTwoMinutes = 120000;
-        final long foregroundTimeTwoMinutes = 120000;
-        final long screenOnTimeLessThanAMinute = 59999;
-        Bundle bundle = new Bundle();
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_BACKGROUND_TIME, backgroundTimeTwoMinutes);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_FOREGROUND_TIME, foregroundTimeTwoMinutes);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_SCREEN_ON_TIME, screenOnTimeLessThanAMinute);
-        bundle.putString(AdvancedPowerUsageDetail.EXTRA_SLOT_TIME, SLOT_TIME);
-        when(mFragment.getArguments()).thenReturn(bundle);
-
-        mFragment.initHeader();
-
-        ArgumentCaptor<CharSequence> captor = ArgumentCaptor.forClass(CharSequence.class);
-        verify(mEntityHeaderController).setSummary(captor.capture());
-        assertThat(captor.getValue().toString()).isEqualTo(
-                "Screen time: less than a min\nBackground: 2 min\n(12 am-2 am)");
-    }
-
-    @Test
-    public void initHeader_ScreenTimeLessAMinBackgroundLessAMinWithSlotTime_hasCorrectSummary() {
-        final long backgroundTimeLessThanAMinute = 59999;
-        final long foregroundTimeTwoMinutes = 120000;
-        final long screenOnTimeLessThanAMinute = 59999;
-        Bundle bundle = new Bundle();
-        bundle.putLong(
-                AdvancedPowerUsageDetail.EXTRA_BACKGROUND_TIME, backgroundTimeLessThanAMinute);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_FOREGROUND_TIME, foregroundTimeTwoMinutes);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_SCREEN_ON_TIME, screenOnTimeLessThanAMinute);
-        bundle.putString(AdvancedPowerUsageDetail.EXTRA_SLOT_TIME, SLOT_TIME);
-        when(mFragment.getArguments()).thenReturn(bundle);
-
-        mFragment.initHeader();
-
-        ArgumentCaptor<CharSequence> captor = ArgumentCaptor.forClass(CharSequence.class);
-        verify(mEntityHeaderController).setSummary(captor.capture());
-        assertThat(captor.getValue().toString()).isEqualTo(
-                "Screen time: less than a min\nBackground: less than a min\n(12 am-2 am)");
-    }
-
-    @Test
-    public void initHeader_ScreenTimeLessThanAMinBackgroundZeroWithSlotTime_hasCorrectSummary() {
-        final long backgroundTimezero = 0;
-        final long foregroundTimeTwoMinutes = 120000;
-        final long screenOnTimeLessThanAMinute = 59999;
-        Bundle bundle = new Bundle();
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_BACKGROUND_TIME, backgroundTimezero);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_FOREGROUND_TIME, foregroundTimeTwoMinutes);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_SCREEN_ON_TIME, screenOnTimeLessThanAMinute);
-        bundle.putString(AdvancedPowerUsageDetail.EXTRA_SLOT_TIME, SLOT_TIME);
-        when(mFragment.getArguments()).thenReturn(bundle);
-
-        mFragment.initHeader();
-
-        ArgumentCaptor<CharSequence> captor = ArgumentCaptor.forClass(CharSequence.class);
-        verify(mEntityHeaderController).setSummary(captor.capture());
-        assertThat(captor.getValue().toString()).isEqualTo(
-                "Screen time: less than a min\n(12 am-2 am)");
-    }
-
-    @Test
-    public void initHeader_systemUidWithChartIsEnabled_notNullSummary() {
-        Bundle bundle = new Bundle();
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_BACKGROUND_TIME, 240000);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_FOREGROUND_TIME, 120000);
-        bundle.putLong(AdvancedPowerUsageDetail.EXTRA_SCREEN_ON_TIME, 120000);
-        bundle.putInt(AdvancedPowerUsageDetail.EXTRA_UID, Process.SYSTEM_UID);
-        when(mFragment.getArguments()).thenReturn(bundle);
-
-        mFragment.initHeader();
-
-        ArgumentCaptor<CharSequence> captor = ArgumentCaptor.forClass(CharSequence.class);
-        verify(mEntityHeaderController).setSummary(captor.capture());
-        assertThat(captor.getValue()).isNotNull();
-    }
-
-    @Test
     public void startBatteryDetailPage_invalidToShowSummary_noFGBDData() {
-        AdvancedPowerUsageDetail.startBatteryDetailPage(mActivity, mFragment,
-                mBatteryEntry, USAGE_PERCENT);
+        AdvancedPowerUsageDetail.startBatteryDetailPage(
+                mActivity, mFragment, mBatteryEntry, USAGE_PERCENT);
 
         assertThat(mBundle.getInt(AdvancedPowerUsageDetail.EXTRA_UID)).isEqualTo(UID);
-        assertThat(mBundle.getLong(AdvancedPowerUsageDetail.EXTRA_BACKGROUND_TIME))
-                .isEqualTo(0);
-        assertThat(mBundle.getLong(AdvancedPowerUsageDetail.EXTRA_FOREGROUND_TIME))
-                .isEqualTo(0);
-        assertThat(mBundle.getLong(AdvancedPowerUsageDetail.EXTRA_SCREEN_ON_TIME))
-                .isEqualTo(0);
+        assertThat(mBundle.getLong(AdvancedPowerUsageDetail.EXTRA_BACKGROUND_TIME)).isEqualTo(0);
+        assertThat(mBundle.getLong(AdvancedPowerUsageDetail.EXTRA_FOREGROUND_TIME)).isEqualTo(0);
+        assertThat(mBundle.getLong(AdvancedPowerUsageDetail.EXTRA_SCREEN_ON_TIME)).isEqualTo(0);
         assertThat(mBundle.getString(AdvancedPowerUsageDetail.EXTRA_POWER_USAGE_PERCENT))
                 .isEqualTo(USAGE_PERCENT);
     }
@@ -687,18 +276,22 @@
 
         verify(mActivity).startActivity(captor.capture());
 
-        assertThat(captor.getValue().getBundleExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS)
-                .getString(AdvancedPowerUsageDetail.EXTRA_PACKAGE_NAME))
+        assertThat(
+                        captor.getValue()
+                                .getBundleExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS)
+                                .getString(AdvancedPowerUsageDetail.EXTRA_PACKAGE_NAME))
                 .isEqualTo(PACKAGE_NAME[0]);
 
-        assertThat(captor.getValue().getBundleExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS)
-                .getString(AdvancedPowerUsageDetail.EXTRA_POWER_USAGE_PERCENT))
+        assertThat(
+                        captor.getValue()
+                                .getBundleExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS)
+                                .getString(AdvancedPowerUsageDetail.EXTRA_POWER_USAGE_PERCENT))
                 .isEqualTo("0%");
     }
 
     @Test
-    public void startBatteryDetailPage_batteryEntryNotExisted_extractUidFromPackageName() throws
-            PackageManager.NameNotFoundException {
+    public void startBatteryDetailPage_batteryEntryNotExisted_extractUidFromPackageName()
+            throws PackageManager.NameNotFoundException {
         doReturn(UID).when(mPackageManager).getPackageUid(PACKAGE_NAME[0], 0 /* no flag */);
 
         AdvancedPowerUsageDetail.startBatteryDetailPage(
@@ -708,70 +301,60 @@
     }
 
     @Test
-    public void initPreferenceForTriState_isValidPackageName_hasCorrectString() {
+    public void initFooter_isValidPackageName_hasCorrectString() {
         when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(true);
 
-        mFragment.initPreferenceForTriState(mContext);
+        mFragment.initFooter();
 
-        assertThat(mFooterPreference.getTitle().toString())
+        assertThat(mAllowBackgroundUsagePreference.getSummary().toString())
                 .isEqualTo("This app requires optimized battery usage.");
     }
 
     @Test
-    public void initPreferenceForTriState_isSystemOrDefaultApp_hasCorrectString() {
+    public void initFooter_isSystemOrDefaultApp_hasCorrectString() {
         when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
         when(mBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(true);
 
-        mFragment.initPreferenceForTriState(mContext);
+        mFragment.initFooter();
 
-        assertThat(mFooterPreference.getTitle()
-                .toString()).isEqualTo("This app requires unrestricted battery usage.");
+        assertThat(mAllowBackgroundUsagePreference.getSummary().toString())
+                .isEqualTo("This app requires unrestricted battery usage.");
     }
 
     @Test
-    public void initPreferenceForTriState_hasCorrectString() {
+    public void initFooter_hasCorrectString() {
         when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
         when(mBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(false);
 
-        mFragment.initPreferenceForTriState(mContext);
+        mFragment.initFooter();
 
-        assertThat(mFooterPreference.getTitle().toString())
-                .isEqualTo("Changing how an app uses your battery can affect its performance.");
-    }
-
-    @Test
-    public void onRadioButtonClicked_clickOptimizePref_optimizePreferenceChecked() {
-        mOptimizePreference.setKey(KEY_PREF_OPTIMIZED);
-        mRestrictedPreference.setKey(KEY_PREF_RESTRICTED);
-        mUnrestrictedPreference.setKey(KEY_PREF_UNRESTRICTED);
-        mFragment.onRadioButtonClicked(mOptimizePreference);
-
-        assertThat(mOptimizePreference.isChecked()).isTrue();
-        assertThat(mRestrictedPreference.isChecked()).isFalse();
-        assertThat(mUnrestrictedPreference.isChecked()).isFalse();
+        assertThat(mAllowBackgroundUsagePreference.getSummary().toString())
+                .isEqualTo("Enable for real-time updates, disable to save battery");
     }
 
     @Test
     public void onPause_optimizationModeChanged_logPreference()
             throws PackageManager.NameNotFoundException, InterruptedException {
         final String packageName = "testPackageName";
-        final int mode = BatteryOptimizeUtils.MODE_RESTRICTED;
-        mFragment.mOptimizationMode = mode;
-        when(mBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(mode);
+        final int restrictedMode = BatteryOptimizeUtils.MODE_RESTRICTED;
+        final int optimizedMode = BatteryOptimizeUtils.MODE_OPTIMIZED;
+        mFragment.mOptimizationMode = restrictedMode;
+        when(mBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(restrictedMode);
         when(mBatteryOptimizeUtils.getPackageName()).thenReturn(packageName);
         when(mContext.getPackageManager()).thenReturn(mPackageManager);
         when(mPackageManager.getInstallSourceInfo(anyString())).thenReturn(mInstallSourceInfo);
         when(mInstallSourceInfo.getInitiatingPackageName()).thenReturn("com.android.vending");
-        mOptimizePreference.setKey(KEY_PREF_OPTIMIZED);
 
-        mFragment.onRadioButtonClicked(mOptimizePreference);
+        mFragment.onPreferenceChange(mAllowBackgroundUsagePreference, true);
+        verify(mBatteryOptimizeUtils).setAppUsageState(optimizedMode, Action.APPLY);
+        when(mBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(optimizedMode);
         mFragment.onPause();
 
-        shadowMainLooper().idle();
+        TimeUnit.SECONDS.sleep(1);
         verify(mMetricsFeatureProvider)
                 .action(
                         SettingsEnums.OPEN_APP_BATTERY_USAGE,
-                        SettingsEnums.ACTION_APP_BATTERY_USAGE_OPTIMIZED,
+                        SettingsEnums.ACTION_APP_BATTERY_USAGE_ALLOW_BACKGROUND,
                         SettingsEnums.OPEN_APP_BATTERY_USAGE,
                         packageName,
                         /* consumed battery */ 0);
@@ -780,18 +363,23 @@
     @Test
     public void onPause_optimizationModeIsNotChanged_notInvokeLogging()
             throws PackageManager.NameNotFoundException, InterruptedException {
-        final int mode = BatteryOptimizeUtils.MODE_OPTIMIZED;
-        mFragment.mOptimizationMode = mode;
-        when(mBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(mode);
+        final int restrictedMode = BatteryOptimizeUtils.MODE_RESTRICTED;
+        final int optimizedMode = BatteryOptimizeUtils.MODE_OPTIMIZED;
+        mFragment.mOptimizationMode = restrictedMode;
+        when(mBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(restrictedMode);
         when(mContext.getPackageManager()).thenReturn(mPackageManager);
         when(mPackageManager.getInstallSourceInfo(anyString())).thenReturn(mInstallSourceInfo);
         when(mInstallSourceInfo.getInitiatingPackageName()).thenReturn("com.android.vending");
-        mOptimizePreference.setKey(KEY_PREF_OPTIMIZED);
 
-        mFragment.onRadioButtonClicked(mOptimizePreference);
+        mFragment.onPreferenceChange(mAllowBackgroundUsagePreference, true);
+        verify(mBatteryOptimizeUtils).setAppUsageState(optimizedMode, Action.APPLY);
+        when(mBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(optimizedMode);
+        mFragment.onPreferenceChange(mAllowBackgroundUsagePreference, false);
+        verify(mBatteryOptimizeUtils).setAppUsageState(restrictedMode, Action.APPLY);
+        when(mBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(restrictedMode);
         mFragment.onPause();
 
-        shadowMainLooper().idle();
+        TimeUnit.SECONDS.sleep(1);
         verifyNoInteractions(mMetricsFeatureProvider);
     }
 
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/AllowBackgroundPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/AllowBackgroundPreferenceControllerTest.java
new file mode 100644
index 0000000..261a315
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/fuelgauge/AllowBackgroundPreferenceControllerTest.java
@@ -0,0 +1,150 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.fuelgauge;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.content.pm.PackageManager;
+
+import com.android.settingslib.widget.MainSwitchPreference;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class AllowBackgroundPreferenceControllerTest {
+    private static final int UID = 12345;
+    private static final String PACKAGE_NAME = "com.android.app";
+
+    private AllowBackgroundPreferenceController mController;
+    private MainSwitchPreference mMainSwitchPreference;
+    private BatteryOptimizeUtils mBatteryOptimizeUtils;
+
+    @Mock private PackageManager mMockPackageManager;
+
+    @Before
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+
+        Context context = spy(RuntimeEnvironment.application);
+        BatteryUtils.getInstance(context).reset();
+        doReturn(UID)
+                .when(mMockPackageManager)
+                .getPackageUid(PACKAGE_NAME, PackageManager.GET_META_DATA);
+
+        mController = new AllowBackgroundPreferenceController(context, UID, PACKAGE_NAME);
+        mMainSwitchPreference = new MainSwitchPreference(RuntimeEnvironment.application);
+        mBatteryOptimizeUtils = spy(new BatteryOptimizeUtils(context, UID, PACKAGE_NAME));
+        mController.mBatteryOptimizeUtils = mBatteryOptimizeUtils;
+    }
+
+    @Test
+    public void testUpdateState_isValidPackage_prefEnabled() {
+        when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
+        when(mBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(false);
+
+        mController.updateState(mMainSwitchPreference);
+
+        assertThat(mBatteryOptimizeUtils.isOptimizeModeMutable()).isTrue();
+        assertThat(mMainSwitchPreference.isEnabled()).isTrue();
+    }
+
+    @Test
+    public void testUpdateState_invalidPackage_prefDisabled() {
+        when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(true);
+        when(mBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(false);
+
+        mController.updateState(mMainSwitchPreference);
+
+        assertThat(mBatteryOptimizeUtils.isOptimizeModeMutable()).isFalse();
+        assertThat(mMainSwitchPreference.isEnabled()).isFalse();
+    }
+
+    @Test
+    public void testUpdateState_isSystemOrDefaultAppAndRestrictedStates_prefChecked() {
+        when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
+        when(mBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(true);
+        when(mBatteryOptimizeUtils.getAppOptimizationMode())
+                .thenReturn(BatteryOptimizeUtils.MODE_RESTRICTED);
+
+        mController.updateState(mMainSwitchPreference);
+
+        assertThat(mMainSwitchPreference.isEnabled()).isFalse();
+        assertThat(mMainSwitchPreference.isChecked()).isFalse();
+    }
+
+    @Test
+    public void testUpdateState_isSystemOrDefaultApp_prefUnchecked() {
+        when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
+        when(mBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(true);
+        when(mBatteryOptimizeUtils.getAppOptimizationMode())
+                .thenReturn(BatteryOptimizeUtils.MODE_OPTIMIZED);
+
+        mController.updateState(mMainSwitchPreference);
+
+        assertThat(mMainSwitchPreference.isEnabled()).isFalse();
+        assertThat(mMainSwitchPreference.isChecked()).isTrue();
+    }
+
+    @Test
+    public void testUpdateState_isRestrictedStates_prefChecked() {
+        when(mBatteryOptimizeUtils.isOptimizeModeMutable()).thenReturn(true);
+        when(mBatteryOptimizeUtils.getAppOptimizationMode())
+                .thenReturn(BatteryOptimizeUtils.MODE_RESTRICTED);
+
+        mController.updateState(mMainSwitchPreference);
+
+        assertThat(mMainSwitchPreference.isEnabled()).isTrue();
+        assertThat(mMainSwitchPreference.isChecked()).isFalse();
+    }
+
+    @Test
+    public void testUpdateState_prefUnchecked() {
+        when(mBatteryOptimizeUtils.isOptimizeModeMutable()).thenReturn(true);
+        when(mBatteryOptimizeUtils.getAppOptimizationMode())
+                .thenReturn(BatteryOptimizeUtils.MODE_OPTIMIZED);
+
+        mController.updateState(mMainSwitchPreference);
+
+        assertThat(mMainSwitchPreference.isEnabled()).isTrue();
+        assertThat(mMainSwitchPreference.isChecked()).isTrue();
+    }
+
+    @Test
+    public void testHandlePreferenceTreeClick_samePrefKey_verifyAction() {
+        mMainSwitchPreference.setKey(
+                AllowBackgroundPreferenceController.KEY_ALLOW_BACKGROUND_USAGE);
+        mController.handlePreferenceTreeClick(mMainSwitchPreference);
+
+        assertThat(mController.handlePreferenceTreeClick(mMainSwitchPreference)).isTrue();
+    }
+
+    @Test
+    public void testHandlePreferenceTreeClick_incorrectPrefKey_noAction() {
+        assertThat(mController.handlePreferenceTreeClick(mMainSwitchPreference)).isFalse();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/AutoRestrictionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/AutoRestrictionPreferenceControllerTest.java
index 0b6051b..5c3addf 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/AutoRestrictionPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/AutoRestrictionPreferenceControllerTest.java
@@ -91,26 +91,25 @@
     public void testGetAvailabilityStatus_smartBatterySupported_returnDisabled() {
         doReturn(true).when(mFeatureFactory.powerUsageFeatureProvider).isSmartBatterySupported();
 
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(
-                BasePreferenceController.UNSUPPORTED_ON_DEVICE);
+        assertThat(mController.getAvailabilityStatus())
+                .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);
     }
 
     @Test
     public void testGetAvailabilityStatus_smartBatteryUnSupported_returnAvailable() {
         doReturn(false).when(mFeatureFactory.powerUsageFeatureProvider).isSmartBatterySupported();
 
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(
-                BasePreferenceController.AVAILABLE);
+        assertThat(mController.getAvailabilityStatus())
+                .isEqualTo(BasePreferenceController.AVAILABLE);
     }
 
     private void putAutoRestrictionValue(int value) {
-        Settings.Global.putInt(mContext.getContentResolver(),
-                Settings.Global.APP_AUTO_RESTRICTION_ENABLED,
-                value);
+        Settings.Global.putInt(
+                mContext.getContentResolver(), Settings.Global.APP_AUTO_RESTRICTION_ENABLED, value);
     }
 
     private int getAutoRestrictionValue() {
-        return Settings.Global.getInt(mContext.getContentResolver(),
-                Settings.Global.APP_AUTO_RESTRICTION_ENABLED, ON);
+        return Settings.Global.getInt(
+                mContext.getContentResolver(), Settings.Global.APP_AUTO_RESTRICTION_ENABLED, ON);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryBackupHelperTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryBackupHelperTest.java
index b8c72ee..8980800 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryBackupHelperTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryBackupHelperTest.java
@@ -94,33 +94,24 @@
     private BatteryBackupHelper mBatteryBackupHelper;
     private PowerUsageFeatureProvider mPowerUsageFeatureProvider;
 
-    @Mock
-    private PackageManager mPackageManager;
-    @Mock
-    private BackupDataOutput mBackupDataOutput;
-    @Mock
-    private BackupDataInputStream mBackupDataInputStream;
-    @Mock
-    private IDeviceIdleController mDeviceController;
-    @Mock
-    private IPackageManager mIPackageManager;
-    @Mock
-    private AppOpsManager mAppOpsManager;
-    @Mock
-    private UserManager mUserManager;
-    @Mock
-    private PowerAllowlistBackend mPowerAllowlistBackend;
-    @Mock
-    private BatteryOptimizeUtils mBatteryOptimizeUtils;
+    @Mock private PackageManager mPackageManager;
+    @Mock private BackupDataOutput mBackupDataOutput;
+    @Mock private BackupDataInputStream mBackupDataInputStream;
+    @Mock private IDeviceIdleController mDeviceController;
+    @Mock private IPackageManager mIPackageManager;
+    @Mock private AppOpsManager mAppOpsManager;
+    @Mock private UserManager mUserManager;
+    @Mock private PowerAllowlistBackend mPowerAllowlistBackend;
+    @Mock private BatteryOptimizeUtils mBatteryOptimizeUtils;
 
     @Before
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
-        mPowerUsageFeatureProvider =
-                FakeFeatureFactory.setupForTest().powerUsageFeatureProvider;
+        mPowerUsageFeatureProvider = FakeFeatureFactory.setupForTest().powerUsageFeatureProvider;
         mContext = spy(RuntimeEnvironment.application);
         mStringWriter = new StringWriter();
         mPrintWriter = new PrintWriter(mStringWriter);
+        BatteryUtils.getInstance(mContext).reset();
         doReturn(mContext).when(mContext).getApplicationContext();
         doReturn(mAppOpsManager).when(mContext).getSystemService(AppOpsManager.class);
         doReturn(mUserManager).when(mContext).getSystemService(UserManager.class);
@@ -172,7 +163,7 @@
     public void backupOptimizationMode_nullInstalledApps_ignoreBackupOptimization()
             throws Exception {
         final UserInfo userInfo =
-                new UserInfo(/*userId=*/ 0, /*userName=*/ "google", /*flag=*/ 0);
+                new UserInfo(/* userId= */ 0, /* userName= */ "google", /* flag= */ 0);
         doReturn(Arrays.asList(userInfo)).when(mUserManager).getProfiles(anyInt());
         doThrow(new RuntimeException())
                 .when(mIPackageManager)
@@ -198,8 +189,7 @@
     }
 
     @Test
-    public void backupOptimizationMode_backupOptimizationModeAndIgnoreSystemApp()
-            throws Exception {
+    public void backupOptimizationMode_backupOptimizationModeAndIgnoreSystemApp() throws Exception {
         final List<String> allowlistedApps = Arrays.asList(PACKAGE_NAME1);
         createTestingData(PACKAGE_NAME1, UID1, PACKAGE_NAME2, PACKAGE_NAME3);
         // Sets "com.android.testing.1" as system app.
@@ -293,8 +283,7 @@
         // Invoke the restoreEntity() method 2nd time.
         mBatteryBackupHelper.restoreEntity(mBackupDataInputStream);
 
-        assertThat(TestUtils.getScheduledLevel(mContext))
-                .isEqualTo(invalidScheduledLevel);
+        assertThat(TestUtils.getScheduledLevel(mContext)).isEqualTo(invalidScheduledLevel);
     }
 
     @Test
@@ -312,9 +301,14 @@
     @Test
     public void restoreOptimizationMode_invalidModeFormat_skipRestore() throws Exception {
         final String invalidNumberFormat = "google";
-        final String packageModes =
-                PACKAGE_NAME1 + DELIMITER_MODE + MODE_RESTRICTED + DELIMITER +
-                PACKAGE_NAME2 + DELIMITER_MODE + invalidNumberFormat;
+        final String package1Mode = PACKAGE_NAME1
+                + DELIMITER_MODE
+                + MODE_RESTRICTED
+                + DELIMITER;
+        final String package2Mode = PACKAGE_NAME2
+                + DELIMITER_MODE
+                + invalidNumberFormat;
+        final String packageModes = package1Mode + package2Mode;
 
         mBatteryBackupHelper.restoreOptimizationMode(packageModes.getBytes());
         TimeUnit.SECONDS.sleep(1);
@@ -327,10 +321,19 @@
 
     @Test
     public void restoreOptimizationMode_restoreExpectedModes() throws Exception {
-        final String packageModes =
-                PACKAGE_NAME1 + DELIMITER_MODE + MODE_RESTRICTED + DELIMITER +
-                PACKAGE_NAME2 + DELIMITER_MODE + MODE_UNRESTRICTED + DELIMITER +
-                PACKAGE_NAME3 + DELIMITER_MODE + MODE_RESTRICTED + DELIMITER;
+        final String package1Mode = PACKAGE_NAME1
+                + DELIMITER_MODE
+                + MODE_RESTRICTED
+                + DELIMITER;
+        final String package2Mode = PACKAGE_NAME2
+                + DELIMITER_MODE
+                + MODE_UNRESTRICTED
+                + DELIMITER;
+        final String package3Mode = PACKAGE_NAME3
+                + DELIMITER_MODE
+                + MODE_RESTRICTED
+                + DELIMITER;
+        final String packageModes = package1Mode + package2Mode + package3Mode;
 
         mBatteryBackupHelper.restoreOptimizationMode(packageModes.getBytes());
         TimeUnit.SECONDS.sleep(1);
@@ -357,13 +360,14 @@
         verifyBackupData(inOrder, BatteryBackupHelper.KEY_BUILD_PRODUCT, Build.PRODUCT);
         verifyBackupData(inOrder, BatteryBackupHelper.KEY_BUILD_MANUFACTURER, Build.MANUFACTURER);
         verifyBackupData(inOrder, BatteryBackupHelper.KEY_BUILD_FINGERPRINT, Build.FINGERPRINT);
-        inOrder.verify(mBackupDataOutput, never()).writeEntityHeader(
-                eq(BatteryBackupHelper.KEY_BUILD_METADATA_1), anyInt());
+        inOrder.verify(mBackupDataOutput, never())
+                .writeEntityHeader(eq(BatteryBackupHelper.KEY_BUILD_METADATA_1), anyInt());
         verifyBackupData(inOrder, BatteryBackupHelper.KEY_BUILD_METADATA_2, deviceMetadata);
     }
 
     private void mockUid(int uid, String packageName) throws Exception {
-        doReturn(uid).when(mPackageManager)
+        doReturn(uid)
+                .when(mPackageManager)
                 .getPackageUid(packageName, PackageManager.GET_META_DATA);
     }
 
@@ -383,8 +387,8 @@
         final Set<String> expectedResultSet =
                 Set.of(expectedResult.split(BatteryBackupHelper.DELIMITER));
 
-        verify(mBackupDataOutput).writeEntityHeader(
-                BatteryBackupHelper.KEY_OPTIMIZATION_LIST, expectedBytes.length);
+        verify(mBackupDataOutput)
+                .writeEntityHeader(BatteryBackupHelper.KEY_OPTIMIZATION_LIST, expectedBytes.length);
         verify(mBackupDataOutput).writeEntityData(captor.capture(), eq(expectedBytes.length));
         final String actualResult = new String(captor.getValue());
         final Set<String> actualResultSet =
@@ -392,11 +396,12 @@
         assertThat(actualResultSet).isEqualTo(expectedResultSet);
     }
 
-    private void createTestingData(String packageName1, int uid1, String packageName2,
-            String packageName3) throws Exception {
+    private void createTestingData(
+            String packageName1, int uid1, String packageName2, String packageName3)
+            throws Exception {
         // Sets the getInstalledApplications() method for testing.
         final UserInfo userInfo =
-                new UserInfo(/*userId=*/ 0, /*userName=*/ "google", /*flag=*/ 0);
+                new UserInfo(/* userId= */ 0, /* userName= */ "google", /* flag= */ 0);
         doReturn(Arrays.asList(userInfo)).when(mUserManager).getProfiles(anyInt());
         final ApplicationInfo applicationInfo1 = new ApplicationInfo();
         applicationInfo1.enabled = true;
@@ -412,10 +417,12 @@
         applicationInfo3.uid = 3;
         applicationInfo3.packageName = packageName3;
         applicationInfo3.enabledSetting = PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
-        doReturn(new ParceledListSlice<ApplicationInfo>(
-                Arrays.asList(applicationInfo1, applicationInfo2, applicationInfo3)))
-            .when(mIPackageManager)
-            .getInstalledApplications(anyLong(), anyInt());
+        doReturn(
+                        new ParceledListSlice<ApplicationInfo>(
+                                Arrays.asList(
+                                        applicationInfo1, applicationInfo2, applicationInfo3)))
+                .when(mIPackageManager)
+                .getInstalledApplications(anyLong(), anyInt());
         // Sets the AppOpsManager for checkOpNoThrow() method.
         doReturn(AppOpsManager.MODE_ALLOWED)
                 .when(mAppOpsManager)
@@ -433,8 +440,8 @@
                 new ArraySet<>(Arrays.asList(applicationInfo1, applicationInfo2, applicationInfo3));
     }
 
-    private void verifyBackupData(
-            InOrder inOrder, String dataKey, String dataContent) throws Exception {
+    private void verifyBackupData(InOrder inOrder, String dataKey, String dataContent)
+            throws Exception {
         final byte[] expectedBytes = dataContent.getBytes();
         inOrder.verify(mBackupDataOutput).writeEntityHeader(dataKey, expectedBytes.length);
         inOrder.verify(mBackupDataOutput).writeEntityData(expectedBytes, expectedBytes.length);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryBroadcastReceiverTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryBroadcastReceiverTest.java
index 62f812d..2f3f5c5 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryBroadcastReceiverTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryBroadcastReceiverTest.java
@@ -54,8 +54,7 @@
     private static final int BATTERY_INTENT_LEVEL = 80;
     private static final int BATTERY_INTENT_SCALE = 100;
 
-    @Mock
-    private BatteryBroadcastReceiver.OnBatteryChangedListener mBatteryListener;
+    @Mock private BatteryBroadcastReceiver.OnBatteryChangedListener mBatteryListener;
     private BatteryBroadcastReceiver mBatteryBroadcastReceiver;
     private Context mContext;
     private Intent mChargingIntent;
@@ -75,8 +74,8 @@
         mChargingIntent = new Intent(Intent.ACTION_BATTERY_CHANGED);
         mChargingIntent.putExtra(BatteryManager.EXTRA_LEVEL, BATTERY_INTENT_LEVEL);
         mChargingIntent.putExtra(BatteryManager.EXTRA_SCALE, BATTERY_INTENT_SCALE);
-        mChargingIntent
-                .putExtra(BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_STATUS_CHARGING);
+        mChargingIntent.putExtra(
+                BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_STATUS_CHARGING);
     }
 
     @Test
@@ -85,8 +84,10 @@
 
         assertThat(mBatteryBroadcastReceiver.mBatteryLevel)
                 .isEqualTo(Utils.getBatteryPercentage(mChargingIntent));
-        assertThat(mBatteryBroadcastReceiver.mBatteryStatus).isEqualTo(
-                Utils.getBatteryStatus(mContext, mChargingIntent, /* compactStatus= */ false));
+        assertThat(mBatteryBroadcastReceiver.mBatteryStatus)
+                .isEqualTo(
+                        Utils.getBatteryStatus(
+                                mContext, mChargingIntent, /* compactStatus= */ false));
         verify(mBatteryListener).onBatteryChanged(BatteryUpdateType.BATTERY_LEVEL);
     }
 
@@ -103,7 +104,8 @@
 
     @Test
     public void onReceive_chargingStatusChanged_dataUpdated() {
-        mChargingIntent.putExtra(BatteryManager.EXTRA_CHARGING_STATUS,
+        mChargingIntent.putExtra(
+                BatteryManager.EXTRA_CHARGING_STATUS,
                 BatteryManager.CHARGING_POLICY_ADAPTIVE_LONGLIFE);
         mBatteryBroadcastReceiver.onReceive(mContext, mChargingIntent);
 
@@ -123,8 +125,8 @@
 
     @Test
     public void onReceive_powerSaveModeChanged_listenerInvoked() {
-        mBatteryBroadcastReceiver.onReceive(mContext,
-                new Intent(PowerManager.ACTION_POWER_SAVE_MODE_CHANGED));
+        mBatteryBroadcastReceiver.onReceive(
+                mContext, new Intent(PowerManager.ACTION_POWER_SAVE_MODE_CHANGED));
 
         verify(mBatteryListener).onBatteryChanged(BatteryUpdateType.BATTERY_SAVER);
     }
@@ -150,16 +152,16 @@
 
     @Test
     public void onReceive_dockDefenderBypassed_listenerInvoked() {
-        mBatteryBroadcastReceiver.onReceive(mContext,
-                new Intent(BatteryUtils.BYPASS_DOCK_DEFENDER_ACTION));
+        mBatteryBroadcastReceiver.onReceive(
+                mContext, new Intent(BatteryUtils.BYPASS_DOCK_DEFENDER_ACTION));
 
         verify(mBatteryListener).onBatteryChanged(BatteryUpdateType.BATTERY_STATUS);
     }
 
     @Test
     public void onReceive_usbPortComplianceChanged_listenerInvoked() {
-        mBatteryBroadcastReceiver.onReceive(mContext,
-                new Intent(UsbManager.ACTION_USB_PORT_COMPLIANCE_CHANGED));
+        mBatteryBroadcastReceiver.onReceive(
+                mContext, new Intent(UsbManager.ACTION_USB_PORT_COMPLIANCE_CHANGED));
 
         verify(mBatteryListener).onBatteryChanged(BatteryUpdateType.BATTERY_STATUS);
     }
@@ -173,8 +175,10 @@
 
         assertThat(mBatteryBroadcastReceiver.mBatteryLevel)
                 .isEqualTo(Utils.getBatteryPercentage(mChargingIntent));
-        assertThat(mBatteryBroadcastReceiver.mBatteryStatus).isEqualTo(
-                Utils.getBatteryStatus(mContext, mChargingIntent, /* compactStatus= */ false));
+        assertThat(mBatteryBroadcastReceiver.mBatteryStatus)
+                .isEqualTo(
+                        Utils.getBatteryStatus(
+                                mContext, mChargingIntent, /* compactStatus= */ false));
         assertThat(mBatteryBroadcastReceiver.mBatteryHealth)
                 .isEqualTo(BatteryManager.BATTERY_HEALTH_UNKNOWN);
         assertThat(mBatteryBroadcastReceiver.mChargingStatus)
@@ -188,10 +192,11 @@
         mBatteryBroadcastReceiver.register();
 
         ArgumentCaptor<IntentFilter> captor = ArgumentCaptor.forClass(IntentFilter.class);
-        verify(mContext).registerReceiver(
-                eq(mBatteryBroadcastReceiver),
-                captor.capture(),
-                eq(Context.RECEIVER_EXPORTED));
+        verify(mContext)
+                .registerReceiver(
+                        eq(mBatteryBroadcastReceiver),
+                        captor.capture(),
+                        eq(Context.RECEIVER_EXPORTED));
         assertAction(captor, Intent.ACTION_BATTERY_CHANGED);
         assertAction(captor, PowerManager.ACTION_POWER_SAVE_MODE_CHANGED);
         assertAction(captor, BatteryUtils.BYPASS_DOCK_DEFENDER_ACTION);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java
index 04d5dbf..83ff582 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java
@@ -68,22 +68,14 @@
     private static final String TIME_LEFT = "2h30min";
     private static final String BATTERY_STATUS = "Charging";
 
-    @Mock
-    private PreferenceScreen mPreferenceScreen;
-    @Mock
-    private BatteryInfo mBatteryInfo;
-    @Mock
-    private EntityHeaderController mEntityHeaderController;
-    @Mock
-    private UsageProgressBarPreference mBatteryUsageProgressBarPref;
-    @Mock
-    private BatteryStatusFeatureProvider mBatteryStatusFeatureProvider;
-    @Mock
-    private UsbPort mUsbPort;
-    @Mock
-    private UsbManager mUsbManager;
-    @Mock
-    private UsbPortStatus mUsbPortStatus;
+    @Mock private PreferenceScreen mPreferenceScreen;
+    @Mock private BatteryInfo mBatteryInfo;
+    @Mock private EntityHeaderController mEntityHeaderController;
+    @Mock private UsageProgressBarPreference mBatteryUsageProgressBarPref;
+    @Mock private BatteryStatusFeatureProvider mBatteryStatusFeatureProvider;
+    @Mock private UsbPort mUsbPort;
+    @Mock private UsbManager mUsbManager;
+    @Mock private UsbPortStatus mUsbPortStatus;
 
     private BatteryHeaderPreferenceController mController;
     private Context mContext;
@@ -104,8 +96,9 @@
         mBatteryIntent.putExtra(BatteryManager.EXTRA_PLUGGED, 1);
         doReturn(mBatteryIntent).when(mContext).registerReceiver(any(), any());
 
-        doReturn(mBatteryUsageProgressBarPref).when(mPreferenceScreen)
-            .findPreference(BatteryHeaderPreferenceController.KEY_BATTERY_HEADER);
+        doReturn(mBatteryUsageProgressBarPref)
+                .when(mPreferenceScreen)
+                .findPreference(BatteryHeaderPreferenceController.KEY_BATTERY_HEADER);
 
         mBatteryInfo.batteryLevel = BATTERY_LEVEL;
 
@@ -235,8 +228,8 @@
     @Test
     public void updateHeaderByBatteryTips_lowBatteryTip_showLowBattery() {
         setChargingState(/* isDischarging */ true, /* updatedByStatusFeature */ false);
-        BatteryTip lowBatteryTip = new LowBatteryTip(
-                BatteryTip.StateType.NEW, /* powerSaveModeOn */false);
+        BatteryTip lowBatteryTip =
+                new LowBatteryTip(BatteryTip.StateType.NEW, /* powerSaveModeOn */ false);
 
         mController.updateHeaderByBatteryTips(lowBatteryTip, mBatteryInfo);
 
@@ -265,8 +258,8 @@
 
     @Test
     public void updateHeaderByBatteryTips_noBatteryInfo_noAction() {
-        BatteryTip lowBatteryTip = new LowBatteryTip(
-                BatteryTip.StateType.NEW, /* powerSaveModeOn */false);
+        BatteryTip lowBatteryTip =
+                new LowBatteryTip(BatteryTip.StateType.NEW, /* powerSaveModeOn */ false);
 
         mController.updateHeaderByBatteryTips(lowBatteryTip, null);
 
@@ -288,8 +281,10 @@
 
         mController.updateHeaderPreference(mBatteryInfo);
 
-        verify(mBatteryUsageProgressBarPref).setBottomSummary(mContext.getString(
-                com.android.settingslib.R.string.battery_info_status_not_charging));
+        verify(mBatteryUsageProgressBarPref)
+                .setBottomSummary(
+                        mContext.getString(
+                                com.android.settingslib.R.string.battery_info_status_not_charging));
     }
 
     @Test
@@ -302,8 +297,8 @@
 
     @Test
     public void getAvailabilityStatus_returnAvailableUnsearchable() {
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(
-                BasePreferenceController.AVAILABLE_UNSEARCHABLE);
+        assertThat(mController.getAvailabilityStatus())
+                .isEqualTo(BasePreferenceController.AVAILABLE_UNSEARCHABLE);
     }
 
     @Test
@@ -319,12 +314,13 @@
     public void displayPreference_init_showLoading() {
         mController.displayPreference(mPreferenceScreen);
 
-        verify(mBatteryUsageProgressBarPref).setBottomSummary(
-                mContext.getString(R.string.settings_license_activity_loading));
+        verify(mBatteryUsageProgressBarPref)
+                .setBottomSummary(mContext.getString(R.string.settings_license_activity_loading));
     }
 
     private CharSequence formatBatteryPercentageText() {
-        return TextUtils.expandTemplate(mContext.getText(R.string.battery_header_title_alternate),
+        return TextUtils.expandTemplate(
+                mContext.getText(R.string.battery_header_title_alternate),
                 NumberFormat.getIntegerInstance().format(BATTERY_LEVEL));
     }
 
@@ -333,7 +329,7 @@
         mBatteryInfo.statusLabel = BATTERY_STATUS;
         mBatteryInfo.discharging = isDischarging;
 
-        when(mBatteryStatusFeatureProvider.triggerBatteryStatusUpdate(
-                mController, mBatteryInfo)).thenReturn(updatedByStatusFeature);
+        when(mBatteryStatusFeatureProvider.triggerBatteryStatusUpdate(mController, mBatteryInfo))
+                .thenReturn(updatedByStatusFeature);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoLoaderTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoLoaderTest.java
index b787239..3685a1d 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoLoaderTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoLoaderTest.java
@@ -46,10 +46,8 @@
 
     private static final long TEST_TIME_REMAINING = 1000L;
 
-    @Mock
-    private BatteryStatsManager mBatteryStatsManager;
-    @Mock
-    private BatteryUsageStats mBatteryUsageStats;
+    @Mock private BatteryStatsManager mBatteryStatsManager;
+    @Mock private BatteryUsageStats mBatteryUsageStats;
 
     private Context mContext;
 
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
index 2ba9f33..0339f57 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
@@ -72,21 +72,20 @@
     private static final String ENHANCED_STRING_SUFFIX = "based on your usage";
     private static final String BATTERY_RUN_OUT_PREFIX = "Battery may run out by";
     private static final long TEST_CHARGE_TIME_REMAINING = TimeUnit.MINUTES.toMicros(1);
-    private static final String TEST_CHARGE_TIME_REMAINING_STRINGIFIED =
-            "1 min left until full";
+    private static final String TEST_CHARGE_TIME_REMAINING_STRINGIFIED = "1 min left until full";
     private static final String TEST_BATTERY_LEVEL_10 = "10%";
     private static final String FIFTEEN_MIN_FORMATTED = "15 min";
-    private static final Estimate MOCK_ESTIMATE = new Estimate(
-            1000, /* estimateMillis */
-            false, /* isBasedOnUsage */
-            1000 /* averageDischargeTime */);
+    private static final Estimate MOCK_ESTIMATE =
+            new Estimate(
+                    1000, /* estimateMillis */
+                    false, /* isBasedOnUsage */
+                    1000 /* averageDischargeTime */);
 
     private Intent mDisChargingBatteryBroadcast;
     private Intent mChargingBatteryBroadcast;
     private Context mContext;
     private FakeFeatureFactory mFeatureFactory;
-    @Mock
-    private BatteryUsageStats mBatteryUsageStats;
+    @Mock private BatteryUsageStats mBatteryUsageStats;
 
     @Before
     public void setUp() {
@@ -99,17 +98,22 @@
         mChargingBatteryBroadcast = BatteryTestUtils.getChargingIntent();
 
         doReturn(false).when(mFeatureFactory.powerUsageFeatureProvider).isExtraDefend();
-        Settings.Global.putInt(mContext.getContentResolver(),
-                BatteryUtils.SETTINGS_GLOBAL_DOCK_DEFENDER_BYPASS, 0);
+        Settings.Global.putInt(
+                mContext.getContentResolver(),
+                BatteryUtils.SETTINGS_GLOBAL_DOCK_DEFENDER_BYPASS,
+                0);
     }
 
     @Test
     public void testGetBatteryInfo_hasStatusLabel() {
         doReturn(REMAINING_TIME_NULL).when(mBatteryUsageStats).getBatteryTimeRemainingMs();
-        BatteryInfo info = BatteryInfo.getBatteryInfoOld(mContext,
-                mDisChargingBatteryBroadcast, mBatteryUsageStats,
-                SystemClock.elapsedRealtime() * 1000,
-                true /* shortString */);
+        BatteryInfo info =
+                BatteryInfo.getBatteryInfoOld(
+                        mContext,
+                        mDisChargingBatteryBroadcast,
+                        mBatteryUsageStats,
+                        SystemClock.elapsedRealtime() * 1000,
+                        true /* shortString */);
 
         assertThat(info.statusLabel).isEqualTo(STATUS_NOT_CHARGING);
     }
@@ -117,8 +121,13 @@
     @Test
     public void testGetBatteryInfo_doNotShowChargingMethod_hasRemainingTime() {
         doReturn(REMAINING_TIME).when(mBatteryUsageStats).getChargeTimeRemainingMs();
-        BatteryInfo info = BatteryInfo.getBatteryInfoOld(mContext, mChargingBatteryBroadcast,
-                mBatteryUsageStats, SystemClock.elapsedRealtime() * 1000, false /* shortString */);
+        BatteryInfo info =
+                BatteryInfo.getBatteryInfoOld(
+                        mContext,
+                        mChargingBatteryBroadcast,
+                        mBatteryUsageStats,
+                        SystemClock.elapsedRealtime() * 1000,
+                        false /* shortString */);
 
         assertThat(info.chargeLabel.toString()).isEqualTo(STATUS_CHARGING_TIME);
     }
@@ -126,8 +135,13 @@
     @Test
     public void testGetBatteryInfo_doNotShowChargingMethod_noRemainingTime() {
         doReturn(REMAINING_TIME_NULL).when(mBatteryUsageStats).getChargeTimeRemainingMs();
-        BatteryInfo info = BatteryInfo.getBatteryInfoOld(mContext, mChargingBatteryBroadcast,
-                mBatteryUsageStats, SystemClock.elapsedRealtime() * 1000, false /* shortString */);
+        BatteryInfo info =
+                BatteryInfo.getBatteryInfoOld(
+                        mContext,
+                        mChargingBatteryBroadcast,
+                        mBatteryUsageStats,
+                        SystemClock.elapsedRealtime() * 1000,
+                        false /* shortString */);
 
         assertThat(info.chargeLabel.toString()).ignoringCase().isEqualTo(STATUS_CHARGING_NO_TIME);
     }
@@ -135,9 +149,15 @@
     @Test
     public void testGetBatteryInfo_pluggedInUsingShortString_usesCorrectData() {
         doReturn(TEST_CHARGE_TIME_REMAINING / 1000)
-                .when(mBatteryUsageStats).getChargeTimeRemainingMs();
-        BatteryInfo info = BatteryInfo.getBatteryInfoOld(mContext, mChargingBatteryBroadcast,
-                mBatteryUsageStats, SystemClock.elapsedRealtime() * 1000, true /* shortString */);
+                .when(mBatteryUsageStats)
+                .getChargeTimeRemainingMs();
+        BatteryInfo info =
+                BatteryInfo.getBatteryInfoOld(
+                        mContext,
+                        mChargingBatteryBroadcast,
+                        mBatteryUsageStats,
+                        SystemClock.elapsedRealtime() * 1000,
+                        true /* shortString */);
 
         assertThat(info.discharging).isEqualTo(false);
         assertThat(info.chargeLabel.toString()).isEqualTo("50% - 1 min left until full");
@@ -145,15 +165,27 @@
 
     @Test
     public void testGetBatteryInfo_basedOnUsageTrueMoreThanFifteenMinutes_usesCorrectString() {
-        Estimate estimate = new Estimate(Duration.ofHours(4).toMillis(),
-                true /* isBasedOnUsage */,
-                1000 /* averageDischargeTime */);
-        BatteryInfo info = BatteryInfo.getBatteryInfo(mContext, mDisChargingBatteryBroadcast,
-                mBatteryUsageStats, estimate, SystemClock.elapsedRealtime() * 1000,
-                false /* shortString */);
-        BatteryInfo info2 = BatteryInfo.getBatteryInfo(mContext, mDisChargingBatteryBroadcast,
-                mBatteryUsageStats, estimate, SystemClock.elapsedRealtime() * 1000,
-                true /* shortString */);
+        Estimate estimate =
+                new Estimate(
+                        Duration.ofHours(4).toMillis(),
+                        true /* isBasedOnUsage */,
+                        1000 /* averageDischargeTime */);
+        BatteryInfo info =
+                BatteryInfo.getBatteryInfo(
+                        mContext,
+                        mDisChargingBatteryBroadcast,
+                        mBatteryUsageStats,
+                        estimate,
+                        SystemClock.elapsedRealtime() * 1000,
+                        false /* shortString */);
+        BatteryInfo info2 =
+                BatteryInfo.getBatteryInfo(
+                        mContext,
+                        mDisChargingBatteryBroadcast,
+                        mBatteryUsageStats,
+                        estimate,
+                        SystemClock.elapsedRealtime() * 1000,
+                        true /* shortString */);
 
         // Both long and short strings should not have extra text
         assertThat(info.remainingLabel.toString()).doesNotContain(ENHANCED_STRING_SUFFIX);
@@ -165,24 +197,41 @@
     @Test
     @Ignore
     public void getBatteryInfo_MoreThanOneDay_suggestionLabelIsCorrectString() {
-        Estimate estimate = new Estimate(Duration.ofDays(3).toMillis(),
-                true /* isBasedOnUsage */,
-                1000 /* averageDischargeTime */);
-        BatteryInfo info = BatteryInfo.getBatteryInfo(mContext, mDisChargingBatteryBroadcast,
-                mBatteryUsageStats, estimate, SystemClock.elapsedRealtime() * 1000,
-                false /* shortString */);
+        Estimate estimate =
+                new Estimate(
+                        Duration.ofDays(3).toMillis(),
+                        true /* isBasedOnUsage */,
+                        1000 /* averageDischargeTime */);
+        BatteryInfo info =
+                BatteryInfo.getBatteryInfo(
+                        mContext,
+                        mDisChargingBatteryBroadcast,
+                        mBatteryUsageStats,
+                        estimate,
+                        SystemClock.elapsedRealtime() * 1000,
+                        false /* shortString */);
 
         assertThat(info.suggestionLabel).doesNotContain(BATTERY_RUN_OUT_PREFIX);
     }
 
     @Test
     public void testGetBatteryInfo_basedOnUsageFalse_usesDefaultString() {
-        BatteryInfo info = BatteryInfo.getBatteryInfo(mContext, mDisChargingBatteryBroadcast,
-                mBatteryUsageStats, MOCK_ESTIMATE, SystemClock.elapsedRealtime() * 1000,
-                false /* shortString */);
-        BatteryInfo info2 = BatteryInfo.getBatteryInfo(mContext, mDisChargingBatteryBroadcast,
-                mBatteryUsageStats, MOCK_ESTIMATE, SystemClock.elapsedRealtime() * 1000,
-                true /* shortString */);
+        BatteryInfo info =
+                BatteryInfo.getBatteryInfo(
+                        mContext,
+                        mDisChargingBatteryBroadcast,
+                        mBatteryUsageStats,
+                        MOCK_ESTIMATE,
+                        SystemClock.elapsedRealtime() * 1000,
+                        false /* shortString */);
+        BatteryInfo info2 =
+                BatteryInfo.getBatteryInfo(
+                        mContext,
+                        mDisChargingBatteryBroadcast,
+                        mBatteryUsageStats,
+                        MOCK_ESTIMATE,
+                        SystemClock.elapsedRealtime() * 1000,
+                        true /* shortString */);
 
         assertThat(info.remainingLabel.toString()).doesNotContain(ENHANCED_STRING_SUFFIX);
         assertThat(info2.remainingLabel.toString()).doesNotContain(ENHANCED_STRING_SUFFIX);
@@ -191,11 +240,17 @@
     @Test
     public void testGetBatteryInfo_charging_usesChargeTime() {
         doReturn(TEST_CHARGE_TIME_REMAINING / 1000)
-                .when(mBatteryUsageStats).getChargeTimeRemainingMs();
+                .when(mBatteryUsageStats)
+                .getChargeTimeRemainingMs();
 
-        BatteryInfo info = BatteryInfo.getBatteryInfo(mContext, mChargingBatteryBroadcast,
-                mBatteryUsageStats, MOCK_ESTIMATE, SystemClock.elapsedRealtime() * 1000,
-                false /* shortString */);
+        BatteryInfo info =
+                BatteryInfo.getBatteryInfo(
+                        mContext,
+                        mChargingBatteryBroadcast,
+                        mBatteryUsageStats,
+                        MOCK_ESTIMATE,
+                        SystemClock.elapsedRealtime() * 1000,
+                        false /* shortString */);
 
         assertThat(info.remainingTimeUs).isEqualTo(TEST_CHARGE_TIME_REMAINING);
         assertThat(info.remainingLabel.toString())
@@ -206,24 +261,33 @@
     public void testGetBatteryInfo_pluggedInWithFullBattery_onlyShowBatteryLevel() {
         mChargingBatteryBroadcast.putExtra(BatteryManager.EXTRA_LEVEL, 100);
 
-        BatteryInfo info = BatteryInfo.getBatteryInfo(mContext, mChargingBatteryBroadcast,
-                mBatteryUsageStats, MOCK_ESTIMATE, SystemClock.elapsedRealtime() * 1000,
-                false /* shortString */);
+        BatteryInfo info =
+                BatteryInfo.getBatteryInfo(
+                        mContext,
+                        mChargingBatteryBroadcast,
+                        mBatteryUsageStats,
+                        MOCK_ESTIMATE,
+                        SystemClock.elapsedRealtime() * 1000,
+                        false /* shortString */);
 
         assertThat(info.chargeLabel).isEqualTo("100%");
     }
 
     @Test
     public void testGetBatteryInfo_chargingWithDefender_updateChargeLabel() {
-        doReturn(TEST_CHARGE_TIME_REMAINING)
-                .when(mBatteryUsageStats)
-                .getChargeTimeRemainingMs();
-        mChargingBatteryBroadcast.putExtra(BatteryManager.EXTRA_CHARGING_STATUS,
+        doReturn(TEST_CHARGE_TIME_REMAINING).when(mBatteryUsageStats).getChargeTimeRemainingMs();
+        mChargingBatteryBroadcast.putExtra(
+                BatteryManager.EXTRA_CHARGING_STATUS,
                 BatteryManager.CHARGING_POLICY_ADAPTIVE_LONGLIFE);
 
-        BatteryInfo info = BatteryInfo.getBatteryInfo(mContext, mChargingBatteryBroadcast,
-                mBatteryUsageStats, MOCK_ESTIMATE, SystemClock.elapsedRealtime() * 1000,
-                false /* shortString */);
+        BatteryInfo info =
+                BatteryInfo.getBatteryInfo(
+                        mContext,
+                        mChargingBatteryBroadcast,
+                        mBatteryUsageStats,
+                        MOCK_ESTIMATE,
+                        SystemClock.elapsedRealtime() * 1000,
+                        false /* shortString */);
 
         assertThat(info.isBatteryDefender).isTrue();
         assertThat(info.chargeLabel.toString()).contains(STATUS_CHARGING_PAUSED);
@@ -231,30 +295,32 @@
 
     @Test
     public void testGetBatteryInfo_getChargeTimeRemaining_updateSettingsGlobal() {
-        doReturn(TEST_CHARGE_TIME_REMAINING)
-                .when(mBatteryUsageStats)
-                .getChargeTimeRemainingMs();
+        doReturn(TEST_CHARGE_TIME_REMAINING).when(mBatteryUsageStats).getChargeTimeRemainingMs();
 
-        BatteryInfo.getBatteryInfo(mContext, mChargingBatteryBroadcast,
-                mBatteryUsageStats, MOCK_ESTIMATE, SystemClock.elapsedRealtime() * 1000,
+        BatteryInfo.getBatteryInfo(
+                mContext,
+                mChargingBatteryBroadcast,
+                mBatteryUsageStats,
+                MOCK_ESTIMATE,
+                SystemClock.elapsedRealtime() * 1000,
                 false /* shortString */);
 
-        assertThat(BatteryInfo.getSettingsChargeTimeRemaining(mContext)).isEqualTo(
-                TEST_CHARGE_TIME_REMAINING);
+        assertThat(BatteryInfo.getSettingsChargeTimeRemaining(mContext))
+                .isEqualTo(TEST_CHARGE_TIME_REMAINING);
     }
 
     @Test
     public void testGetBatteryInfo_differentChargeTimeRemaining_updateSettingsGlobal() {
-        doReturn(TEST_CHARGE_TIME_REMAINING)
-                .when(mBatteryUsageStats)
-                .getChargeTimeRemainingMs();
+        doReturn(TEST_CHARGE_TIME_REMAINING).when(mBatteryUsageStats).getChargeTimeRemainingMs();
         final long newTimeToFull = 300L;
-        doReturn(newTimeToFull)
-                .when(mBatteryUsageStats)
-                .getChargeTimeRemainingMs();
+        doReturn(newTimeToFull).when(mBatteryUsageStats).getChargeTimeRemainingMs();
 
-        BatteryInfo.getBatteryInfo(mContext, mChargingBatteryBroadcast,
-                mBatteryUsageStats, MOCK_ESTIMATE, SystemClock.elapsedRealtime() * 1000,
+        BatteryInfo.getBatteryInfo(
+                mContext,
+                mChargingBatteryBroadcast,
+                mBatteryUsageStats,
+                MOCK_ESTIMATE,
+                SystemClock.elapsedRealtime() * 1000,
                 false /* shortString */);
 
         assertThat(BatteryInfo.getSettingsChargeTimeRemaining(mContext)).isEqualTo(newTimeToFull);
@@ -263,18 +329,27 @@
     @Test
     public void testGetBatteryInfo_dockDefenderActive_updateChargeString() {
         doReturn(TEST_CHARGE_TIME_REMAINING / 1000)
-                .when(mBatteryUsageStats).getChargeTimeRemainingMs();
+                .when(mBatteryUsageStats)
+                .getChargeTimeRemainingMs();
         doReturn(true).when(mFeatureFactory.powerUsageFeatureProvider).isExtraDefend();
-        Intent intent = BatteryTestUtils.getCustomBatteryIntent(BatteryManager.BATTERY_PLUGGED_DOCK,
-                        50 /* level */,
-                        100 /* scale */,
-                        BatteryManager.BATTERY_STATUS_CHARGING)
-                .putExtra(BatteryManager.EXTRA_CHARGING_STATUS,
-                        BatteryManager.CHARGING_POLICY_ADAPTIVE_LONGLIFE);
+        Intent intent =
+                BatteryTestUtils.getCustomBatteryIntent(
+                                BatteryManager.BATTERY_PLUGGED_DOCK,
+                                50 /* level */,
+                                100 /* scale */,
+                                BatteryManager.BATTERY_STATUS_CHARGING)
+                        .putExtra(
+                                BatteryManager.EXTRA_CHARGING_STATUS,
+                                BatteryManager.CHARGING_POLICY_ADAPTIVE_LONGLIFE);
 
-        BatteryInfo info = BatteryInfo.getBatteryInfo(mContext, intent,
-                mBatteryUsageStats, MOCK_ESTIMATE, SystemClock.elapsedRealtime() * 1000,
-                false /* shortString */);
+        BatteryInfo info =
+                BatteryInfo.getBatteryInfo(
+                        mContext,
+                        intent,
+                        mBatteryUsageStats,
+                        MOCK_ESTIMATE,
+                        SystemClock.elapsedRealtime() * 1000,
+                        false /* shortString */);
 
         assertThat(info.chargeLabel.toString()).contains(STATUS_CHARGING_PAUSED);
     }
@@ -282,18 +357,25 @@
     @Test
     public void testGetBatteryInfo_dockDefenderTemporarilyBypassed_updateChargeLabel() {
         doReturn(REMAINING_TIME).when(mBatteryUsageStats).getChargeTimeRemainingMs();
-        mChargingBatteryBroadcast.putExtra(BatteryManager.EXTRA_CHARGING_STATUS,
-                BatteryManager.CHARGING_POLICY_DEFAULT);
-        Settings.Global.putInt(mContext.getContentResolver(),
-                BatteryUtils.SETTINGS_GLOBAL_DOCK_DEFENDER_BYPASS, 1);
+        mChargingBatteryBroadcast.putExtra(
+                BatteryManager.EXTRA_CHARGING_STATUS, BatteryManager.CHARGING_POLICY_DEFAULT);
+        Settings.Global.putInt(
+                mContext.getContentResolver(),
+                BatteryUtils.SETTINGS_GLOBAL_DOCK_DEFENDER_BYPASS,
+                1);
 
-        BatteryInfo info = BatteryInfo.getBatteryInfo(mContext,
-                BatteryTestUtils.getCustomBatteryIntent(BatteryManager.BATTERY_PLUGGED_DOCK,
-                        50 /* level */,
-                        100 /* scale */,
-                        BatteryManager.BATTERY_STATUS_CHARGING),
-                mBatteryUsageStats, MOCK_ESTIMATE, SystemClock.elapsedRealtime() * 1000,
-                false /* shortString */);
+        BatteryInfo info =
+                BatteryInfo.getBatteryInfo(
+                        mContext,
+                        BatteryTestUtils.getCustomBatteryIntent(
+                                BatteryManager.BATTERY_PLUGGED_DOCK,
+                                50 /* level */,
+                                100 /* scale */,
+                                BatteryManager.BATTERY_STATUS_CHARGING),
+                        mBatteryUsageStats,
+                        MOCK_ESTIMATE,
+                        SystemClock.elapsedRealtime() * 1000,
+                        false /* shortString */);
 
         assertThat(info.chargeLabel.toString()).contains(STATUS_CHARGING_TIME);
     }
@@ -301,16 +383,21 @@
     @Test
     public void testGetBatteryInfo_dockDefenderFutureBypass_updateChargeLabel() {
         doReturn(false).when(mFeatureFactory.powerUsageFeatureProvider).isExtraDefend();
-        mChargingBatteryBroadcast.putExtra(BatteryManager.EXTRA_CHARGING_STATUS,
-                BatteryManager.CHARGING_POLICY_DEFAULT);
+        mChargingBatteryBroadcast.putExtra(
+                BatteryManager.EXTRA_CHARGING_STATUS, BatteryManager.CHARGING_POLICY_DEFAULT);
 
-        BatteryInfo info = BatteryInfo.getBatteryInfo(mContext,
-                BatteryTestUtils.getCustomBatteryIntent(BatteryManager.BATTERY_PLUGGED_DOCK,
-                        50 /* level */,
-                        100 /* scale */,
-                        BatteryManager.BATTERY_STATUS_CHARGING),
-                mBatteryUsageStats, MOCK_ESTIMATE, SystemClock.elapsedRealtime() * 1000,
-                false /* shortString */);
+        BatteryInfo info =
+                BatteryInfo.getBatteryInfo(
+                        mContext,
+                        BatteryTestUtils.getCustomBatteryIntent(
+                                BatteryManager.BATTERY_PLUGGED_DOCK,
+                                50 /* level */,
+                                100 /* scale */,
+                                BatteryManager.BATTERY_STATUS_CHARGING),
+                        mBatteryUsageStats,
+                        MOCK_ESTIMATE,
+                        SystemClock.elapsedRealtime() * 1000,
+                        false /* shortString */);
 
         assertThat(info.chargeLabel.toString()).contains(STATUS_CHARGING_FUTURE_BYPASS);
     }
@@ -318,15 +405,20 @@
     // Make our battery stats return a sequence of battery events.
     private void mockBatteryStatsHistory() {
         // Mock out new data every time iterateBatteryStatsHistory is called.
-        doAnswer(invocation -> {
-            BatteryStatsHistoryIterator iterator = mock(BatteryStatsHistoryIterator.class);
-            when(iterator.next()).thenReturn(
-                    makeHistoryIterm(1000, 99),
-                    makeHistoryIterm(1500, 98),
-                    makeHistoryIterm(2000, 97),
-                    null);
-            return iterator;
-        }).when(mBatteryUsageStats).iterateBatteryStatsHistory();
+        doAnswer(
+                        invocation -> {
+                            BatteryStatsHistoryIterator iterator =
+                                    mock(BatteryStatsHistoryIterator.class);
+                            when(iterator.next())
+                                    .thenReturn(
+                                            makeHistoryIterm(1000, 99),
+                                            makeHistoryIterm(1500, 98),
+                                            makeHistoryIterm(2000, 97),
+                                            null);
+                            return iterator;
+                        })
+                .when(mBatteryUsageStats)
+                .iterateBatteryStatsHistory();
     }
 
     private BatteryStats.HistoryItem makeHistoryIterm(long time, int batteryLevel) {
@@ -373,7 +465,8 @@
         pointsExpected.append(2000, 96);
         pointsExpected.append(2500, 95);
         pointsExpected.append(3000, 94);
-        doReturn(pointsExpected).when(mFeatureFactory.powerUsageFeatureProvider)
+        doReturn(pointsExpected)
+                .when(mFeatureFactory.powerUsageFeatureProvider)
                 .getEnhancedBatteryPredictionCurve(any(Context.class), anyLong());
 
         info.bindHistory(view);
@@ -390,14 +483,21 @@
         } else {
             doReturn(0L).when(mBatteryUsageStats).getChargeTimeRemainingMs();
         }
-        Estimate batteryEstimate = new Estimate(
-                estimate ? 1000 : 0,
-                false /* isBasedOnUsage */,
-                1000 /* averageDischargeTime */);
-        BatteryInfo info = BatteryInfo.getBatteryInfo(mContext,
-                charging ? mChargingBatteryBroadcast : mDisChargingBatteryBroadcast,
-                mBatteryUsageStats, batteryEstimate, SystemClock.elapsedRealtime() * 1000, false);
-        doReturn(enhanced).when(mFeatureFactory.powerUsageFeatureProvider)
+        Estimate batteryEstimate =
+                new Estimate(
+                        estimate ? 1000 : 0,
+                        false /* isBasedOnUsage */,
+                        1000 /* averageDischargeTime */);
+        BatteryInfo info =
+                BatteryInfo.getBatteryInfo(
+                        mContext,
+                        charging ? mChargingBatteryBroadcast : mDisChargingBatteryBroadcast,
+                        mBatteryUsageStats,
+                        batteryEstimate,
+                        SystemClock.elapsedRealtime() * 1000,
+                        false);
+        doReturn(enhanced)
+                .when(mFeatureFactory.powerUsageFeatureProvider)
                 .isEnhancedBatteryPredictionEnabled(mContext);
         return info;
     }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryMeterViewTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryMeterViewTest.java
index 0aa702a..ec3cfcf 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryMeterViewTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryMeterViewTest.java
@@ -39,12 +39,9 @@
     private static final int BATTERY_CRITICAL_LEVEL = 15;
     private static final int BATTERY_LOW_LEVEL = 3;
 
-    @Mock
-    private ColorFilter mErrorColorFilter;
-    @Mock
-    private ColorFilter mAccentColorFilter;
-    @Mock
-    private ColorFilter mForegroundColorFilter;
+    @Mock private ColorFilter mErrorColorFilter;
+    @Mock private ColorFilter mAccentColorFilter;
+    @Mock private ColorFilter mForegroundColorFilter;
     private Context mContext;
     private BatteryMeterView mBatteryMeterView;
     private BatteryMeterView.BatteryMeterDrawable mDrawable;
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizeLogUtilsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizeLogUtilsTest.java
index 87de62f..5f591eb 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizeLogUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizeLogUtilsTest.java
@@ -57,8 +57,7 @@
         BatteryOptimizeLogUtils.writeLog(mContext, Action.APPLY, "pkg1", "logs");
         BatteryOptimizeLogUtils.printBatteryOptimizeHistoricalLog(mContext, mTestPrintWriter);
 
-        assertThat(mTestStringWriter.toString()).contains(
-                "pkg1\taction:APPLY\tevent:logs");
+        assertThat(mTestStringWriter.toString()).contains("pkg1\taction:APPLY\tevent:logs");
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizeUtilsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizeUtilsTest.java
index f9d3108..3551eeb 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizeUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizeUtilsTest.java
@@ -98,8 +98,7 @@
         when(mMockAppOpsManager.checkOpNoThrow(anyInt(), anyInt(), anyString()))
                 .thenReturn(AppOpsManager.MODE_IGNORED);
 
-        assertThat(mBatteryOptimizeUtils.getAppOptimizationMode())
-                .isEqualTo(MODE_RESTRICTED);
+        assertThat(mBatteryOptimizeUtils.getAppOptimizationMode()).isEqualTo(MODE_RESTRICTED);
     }
 
     @Test
@@ -108,8 +107,7 @@
         when(mMockAppOpsManager.checkOpNoThrow(anyInt(), anyInt(), anyString()))
                 .thenReturn(AppOpsManager.MODE_ALLOWED);
 
-        assertThat(mBatteryOptimizeUtils.getAppOptimizationMode())
-                .isEqualTo(MODE_UNRESTRICTED);
+        assertThat(mBatteryOptimizeUtils.getAppOptimizationMode()).isEqualTo(MODE_UNRESTRICTED);
     }
 
     @Test
@@ -118,8 +116,7 @@
         when(mMockAppOpsManager.checkOpNoThrow(anyInt(), anyInt(), anyString()))
                 .thenReturn(AppOpsManager.MODE_ALLOWED);
 
-        assertThat(mBatteryOptimizeUtils.getAppOptimizationMode())
-                .isEqualTo(MODE_OPTIMIZED);
+        assertThat(mBatteryOptimizeUtils.getAppOptimizationMode()).isEqualTo(MODE_OPTIMIZED);
     }
 
     @Test
@@ -168,7 +165,6 @@
         when(mMockAppOpsManager.checkOpNoThrow(anyInt(), anyInt(), anyString()))
                 .thenReturn(AppOpsManager.MODE_IGNORED);
 
-
         mBatteryOptimizeUtils.setAppUsageState(MODE_UNRESTRICTED, Action.UNKNOWN);
         TimeUnit.SECONDS.sleep(1);
 
@@ -205,18 +201,19 @@
 
     @Test
     public void testGetInstalledApplications_returnEmptyArray() {
-        assertTrue(BatteryOptimizeUtils.getInstalledApplications(mContext, mMockIPackageManager)
-                .isEmpty());
+        assertTrue(
+                BatteryOptimizeUtils.getInstalledApplications(mContext, mMockIPackageManager)
+                        .isEmpty());
     }
 
     @Test
     public void testGetInstalledApplications_returnNull() throws Exception {
         final UserInfo userInfo =
-                new UserInfo(/*userId=*/ 0, /*userName=*/ "google", /*flag=*/ 0);
+                new UserInfo(/* userId= */ 0, /* userName= */ "google", /* flag= */ 0);
         doReturn(Arrays.asList(userInfo)).when(mMockUserManager).getProfiles(anyInt());
         doThrow(new RuntimeException())
-            .when(mMockIPackageManager)
-            .getInstalledApplications(anyLong(), anyInt());
+                .when(mMockIPackageManager)
+                .getInstalledApplications(anyLong(), anyInt());
 
         assertNull(BatteryOptimizeUtils.getInstalledApplications(mContext, mMockIPackageManager));
     }
@@ -224,7 +221,7 @@
     @Test
     public void testGetInstalledApplications_returnInstalledApps() throws Exception {
         final UserInfo userInfo =
-                new UserInfo(/*userId=*/ 0, /*userName=*/ "google", /*flag=*/ 0);
+                new UserInfo(/* userId= */ 0, /* userName= */ "google", /* flag= */ 0);
         doReturn(Arrays.asList(userInfo)).when(mMockUserManager).getProfiles(anyInt());
 
         final ApplicationInfo applicationInfo1 = new ApplicationInfo();
@@ -242,10 +239,15 @@
         applicationInfo4.enabled = true;
         applicationInfo4.uid = 4;
         applicationInfo4.enabledSetting = PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER;
-        doReturn(new ParceledListSlice<ApplicationInfo>(
-            Arrays.asList(applicationInfo1, applicationInfo2, applicationInfo3, applicationInfo4)))
-            .when(mMockIPackageManager)
-            .getInstalledApplications(anyLong(), anyInt());
+        doReturn(
+                        new ParceledListSlice<ApplicationInfo>(
+                                Arrays.asList(
+                                        applicationInfo1,
+                                        applicationInfo2,
+                                        applicationInfo3,
+                                        applicationInfo4)))
+                .when(mMockIPackageManager)
+                .getInstalledApplications(anyLong(), anyInt());
 
         final ArraySet<ApplicationInfo> applications =
                 BatteryOptimizeUtils.getInstalledApplications(mContext, mMockIPackageManager);
@@ -260,7 +262,8 @@
     @Test
     public void testResetAppOptimizationMode_Optimized_verifyAction() throws Exception {
         runTestForResetWithMode(
-                AppOpsManager.MODE_ALLOWED, /* allowListed */ false,
+                AppOpsManager.MODE_ALLOWED, /* allowListed */
+                false,
                 /* isSystemOrDefaultApp */ false);
 
         verifyNoInteractions(mMockBatteryUtils);
@@ -274,7 +277,8 @@
     @Test
     public void testResetAppOptimizationMode_SystemOrDefault_verifyAction() throws Exception {
         runTestForResetWithMode(
-                AppOpsManager.MODE_ALLOWED, /* allowListed */ true,
+                AppOpsManager.MODE_ALLOWED, /* allowListed */
+                true,
                 /* isSystemOrDefaultApp */ true);
 
         verifyNoInteractions(mMockBatteryUtils);
@@ -289,7 +293,8 @@
     @Test
     public void testResetAppOptimizationMode_Restricted_verifyAction() throws Exception {
         runTestForResetWithMode(
-                AppOpsManager.MODE_IGNORED, /* allowListed */ false,
+                AppOpsManager.MODE_IGNORED, /* allowListed */
+                false,
                 /* isSystemOrDefaultApp */ false);
 
         verifySetAppOptimizationMode(AppOpsManager.MODE_ALLOWED, /* allowListed */ false);
@@ -298,7 +303,8 @@
     @Test
     public void testResetAppOptimizationMode_Unrestricted_verifyAction() throws Exception {
         runTestForResetWithMode(
-                AppOpsManager.MODE_ALLOWED, /* allowListed */ true,
+                AppOpsManager.MODE_ALLOWED, /* allowListed */
+                true,
                 /* isSystemOrDefaultApp */ false);
 
         verifySetAppOptimizationMode(AppOpsManager.MODE_ALLOWED, /* allowListed */ false);
@@ -308,32 +314,28 @@
             int appStandbyMode, boolean allowListed, boolean isSystemOrDefaultApp)
             throws Exception {
         final UserInfo userInfo =
-                new UserInfo(/*userId=*/ 0, /*userName=*/ "google", /*flag=*/ 0);
+                new UserInfo(/* userId= */ 0, /* userName= */ "google", /* flag= */ 0);
         doReturn(Arrays.asList(userInfo)).when(mMockUserManager).getProfiles(anyInt());
         final ApplicationInfo applicationInfo = new ApplicationInfo();
         applicationInfo.uid = UID;
         applicationInfo.packageName = PACKAGE_NAME;
         applicationInfo.enabled = true;
-        doReturn(new ParceledListSlice<ApplicationInfo>(
-                Arrays.asList(applicationInfo)))
+        doReturn(new ParceledListSlice<ApplicationInfo>(Arrays.asList(applicationInfo)))
                 .when(mMockIPackageManager)
                 .getInstalledApplications(anyLong(), anyInt());
 
         doReturn(appStandbyMode)
                 .when(mMockAppOpsManager)
                 .checkOpNoThrow(anyInt(), anyInt(), anyString());
-        doReturn(allowListed)
-                .when(mMockBackend)
-                .isAllowlisted(anyString(), anyInt());
-        doReturn(isSystemOrDefaultApp)
-                .when(mMockBackend)
-                .isSysAllowlisted(anyString());
-        doReturn(isSystemOrDefaultApp)
-                .when(mMockBackend)
-                .isDefaultActiveApp(anyString(), anyInt());
+        doReturn(allowListed).when(mMockBackend).isAllowlisted(anyString(), anyInt());
+        doReturn(isSystemOrDefaultApp).when(mMockBackend).isSysAllowlisted(anyString());
+        doReturn(isSystemOrDefaultApp).when(mMockBackend).isDefaultActiveApp(anyString(), anyInt());
 
         BatteryOptimizeUtils.resetAppOptimizationMode(
-                mContext, mMockIPackageManager, mMockAppOpsManager, mMockBackend,
+                mContext,
+                mMockIPackageManager,
+                mMockAppOpsManager,
+                mMockBackend,
                 mMockBatteryUtils);
         TimeUnit.SECONDS.sleep(1);
     }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatterySaverControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatterySaverControllerTest.java
index ddb9860..8d9a1c0 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatterySaverControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatterySaverControllerTest.java
@@ -21,11 +21,9 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
-import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.os.PowerManager;
 import android.provider.Settings;
-import android.util.Pair;
 
 import androidx.preference.Preference;
 
@@ -41,10 +39,8 @@
 @RunWith(RobolectricTestRunner.class)
 public class BatterySaverControllerTest {
 
-    @Mock
-    private Preference mBatterySaverPref;
-    @Mock
-    private PowerManager mPowerManager;
+    @Mock private Preference mBatterySaverPref;
+    @Mock private PowerManager mPowerManager;
 
     private BatterySaverController mBatterySaverController;
     private Context mContext;
@@ -58,8 +54,8 @@
         ReflectionHelpers.setField(mBatterySaverController, "mPowerManager", mPowerManager);
         ReflectionHelpers.setField(mBatterySaverController, "mBatterySaverPref", mBatterySaverPref);
 
-        Settings.Global.putInt(mContext.getContentResolver(),
-                Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0);
+        Settings.Global.putInt(
+                mContext.getContentResolver(), Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0);
     }
 
     @Test
@@ -84,8 +80,8 @@
     @Test
     public void getSummary_batterySaverOffButScheduled_showSummaryScheduled() {
         when(mPowerManager.isPowerSaveMode()).thenReturn(false);
-        Settings.Global.putInt(mContext.getContentResolver(),
-                Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, 15);
+        Settings.Global.putInt(
+                mContext.getContentResolver(), Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, 15);
 
         assertThat(mBatterySaverController.getSummary()).isEqualTo("Will turn on at 15%");
     }
@@ -93,8 +89,8 @@
     @Test
     public void getSummary_batterySaverOffButScheduledZeroPercent_showSummaryOff() {
         when(mPowerManager.isPowerSaveMode()).thenReturn(false);
-        Settings.Global.putInt(mContext.getContentResolver(),
-                Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0);
+        Settings.Global.putInt(
+                mContext.getContentResolver(), Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0);
 
         assertThat(mBatterySaverController.getSummary()).isEqualTo("Off");
     }
@@ -107,8 +103,8 @@
                 Settings.Global.AUTOMATIC_POWER_SAVE_MODE,
                 PowerManager.POWER_SAVE_MODE_TRIGGER_DYNAMIC);
 
-        assertThat(mBatterySaverController.getSummary()).
-                isEqualTo("Will turn on based on your routine");
+        assertThat(mBatterySaverController.getSummary())
+                .isEqualTo("Will turn on based on your routine");
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatterySaverReceiverTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatterySaverReceiverTest.java
index e411531..e3e00ec1 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatterySaverReceiverTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatterySaverReceiverTest.java
@@ -32,10 +32,8 @@
 @RunWith(RobolectricTestRunner.class)
 public class BatterySaverReceiverTest {
 
-    @Mock
-    private BatterySaverReceiver.BatterySaverListener mBatterySaverListener;
-    @Mock
-    private Context mContext;
+    @Mock private BatterySaverReceiver.BatterySaverListener mBatterySaverListener;
+    @Mock private Context mContext;
     private BatterySaverReceiver mBatterySaverReceiver;
 
     @Before
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatterySettingsMigrateCheckerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatterySettingsMigrateCheckerTest.java
index c34dcec..ba7e9cc 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatterySettingsMigrateCheckerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatterySettingsMigrateCheckerTest.java
@@ -31,10 +31,8 @@
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.os.UserHandle;
-import android.os.UserManager;
 
 import com.android.settings.TestUtils;
-import com.android.settings.fuelgauge.BatteryOptimizeHistoricalLogEntry;
 import com.android.settings.fuelgauge.batterysaver.BatterySaverScheduleRadioButtonsController;
 
 import org.junit.After;
@@ -58,26 +56,25 @@
 @Config(shadows = {BatterySettingsMigrateCheckerTest.ShadowUserHandle.class})
 public final class BatterySettingsMigrateCheckerTest {
 
-    private static final Intent BOOT_COMPLETED_INTENT =
-            new Intent(Intent.ACTION_BOOT_COMPLETED);
+    private static final Intent BOOT_COMPLETED_INTENT = new Intent(Intent.ACTION_BOOT_COMPLETED);
     private static final int UID = 2003;
     private static final String PACKAGE_NAME = "com.android.test.app";
 
     private Context mContext;
     private BatterySettingsMigrateChecker mBatterySettingsMigrateChecker;
 
-    @Mock
-    private PackageManager mPackageManager;
-    @Mock
-    private BatteryOptimizeUtils mBatteryOptimizeUtils;
+    @Mock private PackageManager mPackageManager;
+    @Mock private BatteryOptimizeUtils mBatteryOptimizeUtils;
 
     @Before
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
         mContext = spy(RuntimeEnvironment.application);
+        BatteryUtils.getInstance(mContext).reset();
         doReturn(mContext).when(mContext).getApplicationContext();
         doReturn(mPackageManager).when(mContext).getPackageManager();
-        doReturn(UID).when(mPackageManager)
+        doReturn(UID)
+                .when(mPackageManager)
                 .getPackageUid(PACKAGE_NAME, PackageManager.GET_META_DATA);
         BatterySettingsMigrateChecker.sBatteryOptimizeUtils = mBatteryOptimizeUtils;
         mBatterySettingsMigrateChecker = new BatterySettingsMigrateChecker();
@@ -151,38 +148,42 @@
     }
 
     @Test
-    public void verifyOptimizationModes_inAllowList_resetOptimizationMode() throws Exception {
-        doReturn(BatteryOptimizeUtils.MODE_RESTRICTED).when(mBatteryOptimizeUtils)
+    public void verifyBatteryOptimizeModeApps_inAllowList_resetOptimizationMode() throws Exception {
+        doReturn(BatteryOptimizeUtils.MODE_RESTRICTED)
+                .when(mBatteryOptimizeUtils)
                 .getAppOptimizationMode();
 
-        mBatterySettingsMigrateChecker.verifyOptimizationModes(
-                mContext, Arrays.asList(PACKAGE_NAME));
+        mBatterySettingsMigrateChecker.verifyBatteryOptimizeModeApps(
+                mContext, BatteryOptimizeUtils.MODE_OPTIMIZED, Arrays.asList(PACKAGE_NAME));
 
         final InOrder inOrder = inOrder(mBatteryOptimizeUtils);
         inOrder.verify(mBatteryOptimizeUtils).getAppOptimizationMode();
-        inOrder.verify(mBatteryOptimizeUtils).setAppUsageState(
-                BatteryOptimizeUtils.MODE_OPTIMIZED,
-                BatteryOptimizeHistoricalLogEntry.Action.FORCE_RESET);
+        inOrder.verify(mBatteryOptimizeUtils)
+                .setAppUsageState(
+                        BatteryOptimizeUtils.MODE_OPTIMIZED,
+                        BatteryOptimizeHistoricalLogEntry.Action.FORCE_RESET);
     }
 
     @Test
-    public void verifyOptimizationModes_optimizedMode_noAction() throws Exception {
-        doReturn(BatteryOptimizeUtils.MODE_OPTIMIZED).when(mBatteryOptimizeUtils)
+    public void verifyBatteryOptimizeModeApps_optimizedMode_noAction() throws Exception {
+        doReturn(BatteryOptimizeUtils.MODE_OPTIMIZED)
+                .when(mBatteryOptimizeUtils)
                 .getAppOptimizationMode();
 
-        mBatterySettingsMigrateChecker.verifyOptimizationModes(
-                mContext, Arrays.asList(PACKAGE_NAME));
+        mBatterySettingsMigrateChecker.verifyBatteryOptimizeModeApps(
+                mContext, BatteryOptimizeUtils.MODE_OPTIMIZED, Arrays.asList(PACKAGE_NAME));
 
         verify(mBatteryOptimizeUtils, never()).setAppUsageState(anyInt(), any());
     }
 
     @Test
-    public void verifyOptimizationModes_notInAllowList_noAction() throws Exception {
-        doReturn(BatteryOptimizeUtils.MODE_RESTRICTED).when(mBatteryOptimizeUtils)
+    public void verifyBatteryOptimizeModeApps_notInAllowList_noAction() throws Exception {
+        doReturn(BatteryOptimizeUtils.MODE_RESTRICTED)
+                .when(mBatteryOptimizeUtils)
                 .getAppOptimizationMode();
 
-        mBatterySettingsMigrateChecker.verifyOptimizationModes(
-                mContext, new ArrayList<String>());
+        mBatterySettingsMigrateChecker.verifyBatteryOptimizeModeApps(
+                mContext, BatteryOptimizeUtils.MODE_OPTIMIZED, new ArrayList<String>());
 
         verifyNoInteractions(mBatteryOptimizeUtils);
     }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java
index 2fe0cec..0d8c669 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java
@@ -106,32 +106,22 @@
     private static final String INFO_EXCESSIVE = "anomaly_type=4,auto_restriction=false";
     private static final String INFO_WAKELOCK = "anomaly_type=1,auto_restriction=false";
 
-    @Mock
-    private BatteryStats.Uid mUid;
-    @Mock
-    private BatteryStats.Timer mTimer;
-    @Mock
-    private BatteryUsageStats mBatteryUsageStats;
-    @Mock
-    private BatteryConsumer mAggregateBatteryConsumer;
-    @Mock
-    private BatteryInfo mBatteryInfo;
-    @Mock
-    private PackageManager mPackageManager;
-    @Mock
-    private AppOpsManager mAppOpsManager;
-    @Mock
-    private ApplicationInfo mApplicationInfo;
+    @Mock private BatteryStats.Uid mUid;
+    @Mock private BatteryStats.Timer mTimer;
+    @Mock private BatteryUsageStats mBatteryUsageStats;
+    @Mock private BatteryConsumer mAggregateBatteryConsumer;
+    @Mock private BatteryInfo mBatteryInfo;
+    @Mock private PackageManager mPackageManager;
+    @Mock private AppOpsManager mAppOpsManager;
+    @Mock private ApplicationInfo mApplicationInfo;
+
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private BatteryStatsManager mBatteryStatsManager;
-    @Mock
-    private ApplicationInfo mHighApplicationInfo;
-    @Mock
-    private ApplicationInfo mLowApplicationInfo;
-    @Mock
-    private PowerAllowlistBackend mPowerAllowlistBackend;
-    @Mock
-    private BatteryDatabaseManager mBatteryDatabaseManager;
+
+    @Mock private ApplicationInfo mHighApplicationInfo;
+    @Mock private ApplicationInfo mLowApplicationInfo;
+    @Mock private PowerAllowlistBackend mPowerAllowlistBackend;
+    @Mock private BatteryDatabaseManager mBatteryDatabaseManager;
     private AnomalyInfo mAnomalyInfo;
     private BatteryUtils mBatteryUtils;
     private FakeFeatureFactory mFeatureFactory;
@@ -145,16 +135,21 @@
         mFeatureFactory = FakeFeatureFactory.setupForTest();
         mProvider = mFeatureFactory.powerUsageFeatureProvider;
 
-        doReturn(TIME_STATE_TOP).when(mUid).getProcessStateTime(eq(PROCESS_STATE_TOP), anyLong(),
-                anyInt());
-        doReturn(TIME_STATE_FOREGROUND_SERVICE).when(mUid).getProcessStateTime(
-                eq(PROCESS_STATE_FOREGROUND_SERVICE), anyLong(), anyInt());
-        doReturn(TIME_STATE_TOP_SLEEPING).when(mUid).getProcessStateTime(
-                eq(PROCESS_STATE_TOP_SLEEPING), anyLong(), anyInt());
-        doReturn(TIME_STATE_FOREGROUND).when(mUid).getProcessStateTime(eq(PROCESS_STATE_FOREGROUND),
-                anyLong(), anyInt());
-        doReturn(TIME_STATE_BACKGROUND).when(mUid).getProcessStateTime(eq(PROCESS_STATE_BACKGROUND),
-                anyLong(), anyInt());
+        doReturn(TIME_STATE_TOP)
+                .when(mUid)
+                .getProcessStateTime(eq(PROCESS_STATE_TOP), anyLong(), anyInt());
+        doReturn(TIME_STATE_FOREGROUND_SERVICE)
+                .when(mUid)
+                .getProcessStateTime(eq(PROCESS_STATE_FOREGROUND_SERVICE), anyLong(), anyInt());
+        doReturn(TIME_STATE_TOP_SLEEPING)
+                .when(mUid)
+                .getProcessStateTime(eq(PROCESS_STATE_TOP_SLEEPING), anyLong(), anyInt());
+        doReturn(TIME_STATE_FOREGROUND)
+                .when(mUid)
+                .getProcessStateTime(eq(PROCESS_STATE_FOREGROUND), anyLong(), anyInt());
+        doReturn(TIME_STATE_BACKGROUND)
+                .when(mUid)
+                .getProcessStateTime(eq(PROCESS_STATE_BACKGROUND), anyLong(), anyInt());
 
         when(mPackageManager.getApplicationInfo(eq(HIGH_SDK_PACKAGE), anyInt()))
                 .thenReturn(mHighApplicationInfo);
@@ -166,12 +161,14 @@
         mContext = spy(RuntimeEnvironment.application);
         doReturn(mPackageManager).when(mContext).getPackageManager();
         doReturn(mAppOpsManager).when(mContext).getSystemService(Context.APP_OPS_SERVICE);
-        doReturn(mBatteryStatsManager).when(mContext)
+        doReturn(mBatteryStatsManager)
+                .when(mContext)
                 .getSystemService(Context.BATTERY_STATS_SERVICE);
         mBatteryUtils = spy(new BatteryUtils(mContext));
         mBatteryUtils.mPowerUsageFeatureProvider = mProvider;
-        doReturn(0L).when(mBatteryUtils)
-            .getForegroundServiceTotalTimeUs(any(BatteryStats.Uid.class), anyLong());
+        doReturn(0L)
+                .when(mBatteryUtils)
+                .getForegroundServiceTotalTimeUs(any(BatteryStats.Uid.class), anyLong());
         mAnomalyInfo = new AnomalyInfo(INFO_WAKELOCK);
 
         BatteryDatabaseManager.setUpForTest(mBatteryDatabaseManager);
@@ -180,54 +177,62 @@
 
     @Test
     public void testGetProcessTimeMs_typeForeground_timeCorrect() {
-        doReturn(TIME_STATE_FOREGROUND + 500).when(mBatteryUtils)
-            .getForegroundActivityTotalTimeUs(eq(mUid), anyLong());
+        doReturn(TIME_STATE_FOREGROUND + 500)
+                .when(mBatteryUtils)
+                .getForegroundActivityTotalTimeUs(eq(mUid), anyLong());
 
-        final long time = mBatteryUtils.getProcessTimeMs(BatteryUtils.StatusType.FOREGROUND, mUid,
-                BatteryStats.STATS_SINCE_CHARGED);
+        final long time =
+                mBatteryUtils.getProcessTimeMs(
+                        BatteryUtils.StatusType.FOREGROUND, mUid, BatteryStats.STATS_SINCE_CHARGED);
 
         assertThat(time).isEqualTo(TIME_EXPECTED_FOREGROUND);
     }
 
     @Test
     public void testGetProcessTimeMs_typeBackground_timeCorrect() {
-        final long time = mBatteryUtils.getProcessTimeMs(BatteryUtils.StatusType.BACKGROUND, mUid,
-                BatteryStats.STATS_SINCE_CHARGED);
+        final long time =
+                mBatteryUtils.getProcessTimeMs(
+                        BatteryUtils.StatusType.BACKGROUND, mUid, BatteryStats.STATS_SINCE_CHARGED);
 
         assertThat(time).isEqualTo(TIME_EXPECTED_BACKGROUND);
     }
 
     @Test
     public void testGetProcessTimeMs_typeAll_timeCorrect() {
-        doReturn(TIME_STATE_FOREGROUND + 500).when(mBatteryUtils)
-            .getForegroundActivityTotalTimeUs(eq(mUid), anyLong());
+        doReturn(TIME_STATE_FOREGROUND + 500)
+                .when(mBatteryUtils)
+                .getForegroundActivityTotalTimeUs(eq(mUid), anyLong());
 
-        final long time = mBatteryUtils.getProcessTimeMs(BatteryUtils.StatusType.ALL, mUid,
-                BatteryStats.STATS_SINCE_CHARGED);
+        final long time =
+                mBatteryUtils.getProcessTimeMs(
+                        BatteryUtils.StatusType.ALL, mUid, BatteryStats.STATS_SINCE_CHARGED);
 
         assertThat(time).isEqualTo(TIME_EXPECTED_ALL);
     }
 
     @Test
     public void testGetProcessTimeMs_uidNull_returnZero() {
-        final long time = mBatteryUtils.getProcessTimeMs(BatteryUtils.StatusType.ALL, null,
-                BatteryStats.STATS_SINCE_CHARGED);
+        final long time =
+                mBatteryUtils.getProcessTimeMs(
+                        BatteryUtils.StatusType.ALL, null, BatteryStats.STATS_SINCE_CHARGED);
 
         assertThat(time).isEqualTo(0);
     }
 
     @Test
     public void testCalculateBatteryPercent() {
-        assertThat(mBatteryUtils.calculateBatteryPercent(BATTERY_SYSTEM_USAGE, TOTAL_BATTERY_USAGE,
-                DISCHARGE_AMOUNT))
-                .isWithin(PRECISION).of(PERCENT_SYSTEM_USAGE);
+        assertThat(
+                        mBatteryUtils.calculateBatteryPercent(
+                                BATTERY_SYSTEM_USAGE, TOTAL_BATTERY_USAGE, DISCHARGE_AMOUNT))
+                .isWithin(PRECISION)
+                .of(PERCENT_SYSTEM_USAGE);
     }
 
     @Test
     public void testCalculateLastFullChargeTime() {
         final long currentTimeMs = System.currentTimeMillis();
-        when(mBatteryUsageStats.getStatsStartTimestamp()).thenReturn(
-                currentTimeMs - TIME_SINCE_LAST_FULL_CHARGE_MS);
+        when(mBatteryUsageStats.getStatsStartTimestamp())
+                .thenReturn(currentTimeMs - TIME_SINCE_LAST_FULL_CHARGE_MS);
 
         assertThat(mBatteryUtils.calculateLastFullChargeTime(mBatteryUsageStats, currentTimeMs))
                 .isEqualTo(TIME_SINCE_LAST_FULL_CHARGE_MS);
@@ -237,49 +242,54 @@
     public void testGetForegroundActivityTotalTimeMs_returnMilliseconds() {
         final long rawRealtimeUs = SystemClock.elapsedRealtime() * 1000;
         doReturn(mTimer).when(mUid).getForegroundActivityTimer();
-        doReturn(TIME_SINCE_LAST_FULL_CHARGE_US).when(mTimer)
+        doReturn(TIME_SINCE_LAST_FULL_CHARGE_US)
+                .when(mTimer)
                 .getTotalTimeLocked(rawRealtimeUs, BatteryStats.STATS_SINCE_CHARGED);
 
-        assertThat(mBatteryUtils.getForegroundActivityTotalTimeUs(mUid, rawRealtimeUs)).isEqualTo(
-                TIME_SINCE_LAST_FULL_CHARGE_US);
+        assertThat(mBatteryUtils.getForegroundActivityTotalTimeUs(mUid, rawRealtimeUs))
+                .isEqualTo(TIME_SINCE_LAST_FULL_CHARGE_US);
     }
 
     @Test
-    public void testGetTargetSdkVersion_packageExist_returnSdk() throws
-            PackageManager.NameNotFoundException {
-        doReturn(mApplicationInfo).when(mPackageManager).getApplicationInfo(PACKAGE_NAME,
-                PackageManager.GET_META_DATA);
+    public void testGetTargetSdkVersion_packageExist_returnSdk()
+            throws PackageManager.NameNotFoundException {
+        doReturn(mApplicationInfo)
+                .when(mPackageManager)
+                .getApplicationInfo(PACKAGE_NAME, PackageManager.GET_META_DATA);
         mApplicationInfo.targetSdkVersion = SDK_VERSION;
 
         assertThat(mBatteryUtils.getTargetSdkVersion(PACKAGE_NAME)).isEqualTo(SDK_VERSION);
     }
 
     @Test
-    public void testGetTargetSdkVersion_packageNotExist_returnSdkNull() throws
-            PackageManager.NameNotFoundException {
-        doThrow(new PackageManager.NameNotFoundException()).when(
-                mPackageManager).getApplicationInfo(PACKAGE_NAME, PackageManager.GET_META_DATA);
+    public void testGetTargetSdkVersion_packageNotExist_returnSdkNull()
+            throws PackageManager.NameNotFoundException {
+        doThrow(new PackageManager.NameNotFoundException())
+                .when(mPackageManager)
+                .getApplicationInfo(PACKAGE_NAME, PackageManager.GET_META_DATA);
 
-        assertThat(mBatteryUtils.getTargetSdkVersion(PACKAGE_NAME)).isEqualTo(
-                BatteryUtils.SDK_NULL);
+        assertThat(mBatteryUtils.getTargetSdkVersion(PACKAGE_NAME))
+                .isEqualTo(BatteryUtils.SDK_NULL);
     }
 
     @Test
     public void testBackgroundRestrictionOn_restrictionOn_returnTrue() {
-        doReturn(AppOpsManager.MODE_IGNORED).when(mAppOpsManager).checkOpNoThrow(
-                AppOpsManager.OP_RUN_IN_BACKGROUND, UID, PACKAGE_NAME);
+        doReturn(AppOpsManager.MODE_IGNORED)
+                .when(mAppOpsManager)
+                .checkOpNoThrow(AppOpsManager.OP_RUN_IN_BACKGROUND, UID, PACKAGE_NAME);
 
-        assertThat(mBatteryUtils.isBackgroundRestrictionEnabled(SDK_VERSION, UID,
-                PACKAGE_NAME)).isTrue();
+        assertThat(mBatteryUtils.isBackgroundRestrictionEnabled(SDK_VERSION, UID, PACKAGE_NAME))
+                .isTrue();
     }
 
     @Test
     public void testBackgroundRestrictionOn_restrictionOff_returnFalse() {
-        doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOpsManager).checkOpNoThrow(
-                AppOpsManager.OP_RUN_IN_BACKGROUND, UID, PACKAGE_NAME);
+        doReturn(AppOpsManager.MODE_ALLOWED)
+                .when(mAppOpsManager)
+                .checkOpNoThrow(AppOpsManager.OP_RUN_IN_BACKGROUND, UID, PACKAGE_NAME);
 
         assertThat(mBatteryUtils.isBackgroundRestrictionEnabled(SDK_VERSION, UID, PACKAGE_NAME))
-            .isFalse();
+                .isFalse();
     }
 
     @Test
@@ -294,13 +304,13 @@
 
     @Test
     public void testIsPreOApp_containPreOApp_ReturnTrue() {
-        assertThat(
-                mBatteryUtils.isPreOApp(new String[]{HIGH_SDK_PACKAGE, LOW_SDK_PACKAGE})).isTrue();
+        assertThat(mBatteryUtils.isPreOApp(new String[] {HIGH_SDK_PACKAGE, LOW_SDK_PACKAGE}))
+                .isTrue();
     }
 
     @Test
     public void testIsPreOApp_emptyList_ReturnFalse() {
-        assertThat(mBatteryUtils.isPreOApp(new String[]{})).isFalse();
+        assertThat(mBatteryUtils.isPreOApp(new String[] {})).isFalse();
     }
 
     @Ignore
@@ -309,10 +319,18 @@
         mBatteryUtils.setForceAppStandby(UID, LOW_SDK_PACKAGE, AppOpsManager.MODE_IGNORED);
 
         // Restrict both OP_RUN_IN_BACKGROUND and OP_RUN_ANY_IN_BACKGROUND
-        verify(mAppOpsManager).setMode(AppOpsManager.OP_RUN_IN_BACKGROUND, UID, LOW_SDK_PACKAGE,
-                AppOpsManager.MODE_IGNORED);
-        verify(mAppOpsManager).setMode(AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, UID, LOW_SDK_PACKAGE,
-                AppOpsManager.MODE_IGNORED);
+        verify(mAppOpsManager)
+                .setMode(
+                        AppOpsManager.OP_RUN_IN_BACKGROUND,
+                        UID,
+                        LOW_SDK_PACKAGE,
+                        AppOpsManager.MODE_IGNORED);
+        verify(mAppOpsManager)
+                .setMode(
+                        AppOpsManager.OP_RUN_ANY_IN_BACKGROUND,
+                        UID,
+                        LOW_SDK_PACKAGE,
+                        AppOpsManager.MODE_IGNORED);
     }
 
     @Ignore
@@ -321,42 +339,53 @@
         mBatteryUtils.setForceAppStandby(UID, HIGH_SDK_PACKAGE, AppOpsManager.MODE_IGNORED);
 
         // Don't restrict OP_RUN_IN_BACKGROUND because it is already been restricted for O app
-        verify(mAppOpsManager, never()).setMode(AppOpsManager.OP_RUN_IN_BACKGROUND, UID,
-                HIGH_SDK_PACKAGE, AppOpsManager.MODE_IGNORED);
+        verify(mAppOpsManager, never())
+                .setMode(
+                        AppOpsManager.OP_RUN_IN_BACKGROUND,
+                        UID,
+                        HIGH_SDK_PACKAGE,
+                        AppOpsManager.MODE_IGNORED);
         // Restrict OP_RUN_ANY_IN_BACKGROUND
-        verify(mAppOpsManager).setMode(AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, UID,
-                HIGH_SDK_PACKAGE, AppOpsManager.MODE_IGNORED);
+        verify(mAppOpsManager)
+                .setMode(
+                        AppOpsManager.OP_RUN_ANY_IN_BACKGROUND,
+                        UID,
+                        HIGH_SDK_PACKAGE,
+                        AppOpsManager.MODE_IGNORED);
     }
 
     @Test
     public void testSetForceAppStandby_restrictApp_recordTime() {
         mBatteryUtils.setForceAppStandby(UID, HIGH_SDK_PACKAGE, AppOpsManager.MODE_IGNORED);
 
-        verify(mBatteryDatabaseManager).insertAction(
-                eq(AnomalyDatabaseHelper.ActionType.RESTRICTION), eq(UID),
-                eq(HIGH_SDK_PACKAGE), anyLong());
+        verify(mBatteryDatabaseManager)
+                .insertAction(
+                        eq(AnomalyDatabaseHelper.ActionType.RESTRICTION), eq(UID),
+                        eq(HIGH_SDK_PACKAGE), anyLong());
     }
 
     @Test
     public void testSetForceAppStandby_unrestrictApp_deleteTime() {
         mBatteryUtils.setForceAppStandby(UID, HIGH_SDK_PACKAGE, AppOpsManager.MODE_ALLOWED);
 
-        verify(mBatteryDatabaseManager).deleteAction(AnomalyDatabaseHelper.ActionType.RESTRICTION,
-                UID, HIGH_SDK_PACKAGE);
+        verify(mBatteryDatabaseManager)
+                .deleteAction(AnomalyDatabaseHelper.ActionType.RESTRICTION, UID, HIGH_SDK_PACKAGE);
     }
 
     @Test
     public void testIsForceAppStandbyEnabled_enabled_returnTrue() {
-        when(mAppOpsManager.checkOpNoThrow(AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, UID,
-                PACKAGE_NAME)).thenReturn(AppOpsManager.MODE_IGNORED);
+        when(mAppOpsManager.checkOpNoThrow(
+                        AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, UID, PACKAGE_NAME))
+                .thenReturn(AppOpsManager.MODE_IGNORED);
 
         assertThat(mBatteryUtils.isForceAppStandbyEnabled(UID, PACKAGE_NAME)).isTrue();
     }
 
     @Test
     public void testIsForceAppStandbyEnabled_disabled_returnFalse() {
-        when(mAppOpsManager.checkOpNoThrow(AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, UID,
-                PACKAGE_NAME)).thenReturn(AppOpsManager.MODE_ALLOWED);
+        when(mAppOpsManager.checkOpNoThrow(
+                        AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, UID, PACKAGE_NAME))
+                .thenReturn(AppOpsManager.MODE_ALLOWED);
 
         assertThat(mBatteryUtils.isForceAppStandbyEnabled(UID, PACKAGE_NAME)).isFalse();
     }
@@ -369,77 +398,85 @@
         resolveInfo.activityInfo.packageName = HIGH_SDK_PACKAGE;
 
         doReturn(resolveInfos).when(mPackageManager).queryIntentActivities(any(), anyInt());
-        doReturn(new String[]{HIGH_SDK_PACKAGE}).when(mPackageManager).getPackagesForUid(UID);
+        doReturn(new String[] {HIGH_SDK_PACKAGE}).when(mPackageManager).getPackagesForUid(UID);
         mHighApplicationInfo.flags = ApplicationInfo.FLAG_SYSTEM;
 
-        assertThat(mBatteryUtils.shouldHideAnomaly(mPowerAllowlistBackend, UID,
-                mAnomalyInfo)).isTrue();
+        assertThat(mBatteryUtils.shouldHideAnomaly(mPowerAllowlistBackend, UID, mAnomalyInfo))
+                .isTrue();
     }
 
     @Test
     public void testShouldHideAnomaly_systemAppWithoutLauncher_returnTrue() {
         doReturn(new ArrayList<>()).when(mPackageManager).queryIntentActivities(any(), anyInt());
-        doReturn(new String[]{HIGH_SDK_PACKAGE}).when(mPackageManager).getPackagesForUid(UID);
+        doReturn(new String[] {HIGH_SDK_PACKAGE}).when(mPackageManager).getPackagesForUid(UID);
         mHighApplicationInfo.flags = ApplicationInfo.FLAG_SYSTEM;
 
-        assertThat(mBatteryUtils.shouldHideAnomaly(mPowerAllowlistBackend, UID,
-                mAnomalyInfo)).isTrue();
+        assertThat(mBatteryUtils.shouldHideAnomaly(mPowerAllowlistBackend, UID, mAnomalyInfo))
+                .isTrue();
     }
 
     @Test
     public void testShouldHideAnomaly_systemUid_returnTrue() {
         final int systemUid = Process.ROOT_UID;
-        doReturn(new String[]{HIGH_SDK_PACKAGE}).when(mPackageManager).getPackagesForUid(systemUid);
+        doReturn(new String[] {HIGH_SDK_PACKAGE})
+                .when(mPackageManager)
+                .getPackagesForUid(systemUid);
 
-        assertThat(mBatteryUtils.shouldHideAnomaly(mPowerAllowlistBackend, systemUid,
-                mAnomalyInfo)).isTrue();
+        assertThat(mBatteryUtils.shouldHideAnomaly(mPowerAllowlistBackend, systemUid, mAnomalyInfo))
+                .isTrue();
     }
 
     @Test
     public void testShouldHideAnomaly_AppInDozeList_returnTrue() {
-        doReturn(new String[]{HIGH_SDK_PACKAGE}).when(mPackageManager).getPackagesForUid(UID);
-        doReturn(true).when(mPowerAllowlistBackend)
-                .isAllowlisted(new String[]{HIGH_SDK_PACKAGE}, UID);
+        doReturn(new String[] {HIGH_SDK_PACKAGE}).when(mPackageManager).getPackagesForUid(UID);
+        doReturn(true)
+                .when(mPowerAllowlistBackend)
+                .isAllowlisted(new String[] {HIGH_SDK_PACKAGE}, UID);
 
-        assertThat(mBatteryUtils.shouldHideAnomaly(mPowerAllowlistBackend, UID,
-                mAnomalyInfo)).isTrue();
+        assertThat(mBatteryUtils.shouldHideAnomaly(mPowerAllowlistBackend, UID, mAnomalyInfo))
+                .isTrue();
     }
 
     @Test
     public void testShouldHideAnomaly_normalApp_returnFalse() {
-        doReturn(new String[]{HIGH_SDK_PACKAGE}).when(mPackageManager).getPackagesForUid(UID);
+        doReturn(new String[] {HIGH_SDK_PACKAGE}).when(mPackageManager).getPackagesForUid(UID);
 
-        assertThat(mBatteryUtils.shouldHideAnomaly(mPowerAllowlistBackend, UID,
-                mAnomalyInfo)).isFalse();
+        assertThat(mBatteryUtils.shouldHideAnomaly(mPowerAllowlistBackend, UID, mAnomalyInfo))
+                .isFalse();
     }
 
     @Test
     public void testShouldHideAnomaly_excessivePriorOApp_returnFalse() {
-        doReturn(new String[]{LOW_SDK_PACKAGE}).when(mPackageManager).getPackagesForUid(UID);
+        doReturn(new String[] {LOW_SDK_PACKAGE}).when(mPackageManager).getPackagesForUid(UID);
         mAnomalyInfo = new AnomalyInfo(INFO_EXCESSIVE);
 
-        assertThat(mBatteryUtils.shouldHideAnomaly(mPowerAllowlistBackend, UID,
-                mAnomalyInfo)).isFalse();
+        assertThat(mBatteryUtils.shouldHideAnomaly(mPowerAllowlistBackend, UID, mAnomalyInfo))
+                .isFalse();
     }
 
     @Test
     public void testShouldHideAnomaly_excessiveOApp_returnTrue() {
-        doReturn(new String[]{HIGH_SDK_PACKAGE}).when(mPackageManager).getPackagesForUid(UID);
+        doReturn(new String[] {HIGH_SDK_PACKAGE}).when(mPackageManager).getPackagesForUid(UID);
         mAnomalyInfo = new AnomalyInfo(INFO_EXCESSIVE);
 
-        assertThat(mBatteryUtils.shouldHideAnomaly(mPowerAllowlistBackend, UID,
-                mAnomalyInfo)).isTrue();
+        assertThat(mBatteryUtils.shouldHideAnomaly(mPowerAllowlistBackend, UID, mAnomalyInfo))
+                .isTrue();
     }
 
     @Test
     public void clearForceAppStandby_appRestricted_clearAndReturnTrue() {
         when(mBatteryUtils.getPackageUid(HIGH_SDK_PACKAGE)).thenReturn(UID);
-        when(mAppOpsManager.checkOpNoThrow(AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, UID,
-                HIGH_SDK_PACKAGE)).thenReturn(AppOpsManager.MODE_IGNORED);
+        when(mAppOpsManager.checkOpNoThrow(
+                        AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, UID, HIGH_SDK_PACKAGE))
+                .thenReturn(AppOpsManager.MODE_IGNORED);
 
         assertThat(mBatteryUtils.clearForceAppStandby(HIGH_SDK_PACKAGE)).isTrue();
-        verify(mAppOpsManager).setMode(AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, UID,
-                HIGH_SDK_PACKAGE, AppOpsManager.MODE_ALLOWED);
+        verify(mAppOpsManager)
+                .setMode(
+                        AppOpsManager.OP_RUN_ANY_IN_BACKGROUND,
+                        UID,
+                        HIGH_SDK_PACKAGE,
+                        AppOpsManager.MODE_ALLOWED);
     }
 
     @Test
@@ -447,29 +484,38 @@
         when(mBatteryUtils.getPackageUid(PACKAGE_NAME)).thenReturn(BatteryUtils.UID_NULL);
 
         assertThat(mBatteryUtils.clearForceAppStandby(PACKAGE_NAME)).isFalse();
-        verify(mAppOpsManager, never()).setMode(AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, UID,
-                PACKAGE_NAME, AppOpsManager.MODE_ALLOWED);
+        verify(mAppOpsManager, never())
+                .setMode(
+                        AppOpsManager.OP_RUN_ANY_IN_BACKGROUND,
+                        UID,
+                        PACKAGE_NAME,
+                        AppOpsManager.MODE_ALLOWED);
     }
 
     @Test
     public void clearForceAppStandby_appUnrestricted_returnFalse() {
         when(mBatteryUtils.getPackageUid(PACKAGE_NAME)).thenReturn(UID);
-        when(mAppOpsManager.checkOpNoThrow(AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, UID,
-                PACKAGE_NAME)).thenReturn(AppOpsManager.MODE_ALLOWED);
+        when(mAppOpsManager.checkOpNoThrow(
+                        AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, UID, PACKAGE_NAME))
+                .thenReturn(AppOpsManager.MODE_ALLOWED);
 
         assertThat(mBatteryUtils.clearForceAppStandby(PACKAGE_NAME)).isFalse();
-        verify(mAppOpsManager, never()).setMode(AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, UID,
-                PACKAGE_NAME, AppOpsManager.MODE_ALLOWED);
+        verify(mAppOpsManager, never())
+                .setMode(
+                        AppOpsManager.OP_RUN_ANY_IN_BACKGROUND,
+                        UID,
+                        PACKAGE_NAME,
+                        AppOpsManager.MODE_ALLOWED);
     }
 
     @Test
     public void getBatteryInfo_providerNull_shouldNotCrash() {
         when(mProvider.isEnhancedBatteryPredictionEnabled(mContext)).thenReturn(true);
         when(mProvider.getEnhancedBatteryPrediction(mContext)).thenReturn(null);
-        when(mContext.registerReceiver(nullable(BroadcastReceiver.class),
-                any(IntentFilter.class))).thenReturn(new Intent());
+        when(mContext.registerReceiver(nullable(BroadcastReceiver.class), any(IntentFilter.class)))
+                .thenReturn(new Intent());
 
-        //Should not crash
+        // Should not crash
         assertThat(mBatteryUtils.getBatteryInfo(TAG)).isNotNull();
     }
 
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/HighPowerDetailTest.java b/tests/robotests/src/com/android/settings/fuelgauge/HighPowerDetailTest.java
index 3097a70..46d2d01 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/HighPowerDetailTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/HighPowerDetailTest.java
@@ -51,10 +51,8 @@
     private HighPowerDetail mFragment;
 
     private Context mContext;
-    @Mock
-    private PowerAllowlistBackend mPowerAllowlistBackend;
-    @Mock
-    private BatteryUtils mBatteryUtils;
+    @Mock private PowerAllowlistBackend mPowerAllowlistBackend;
+    @Mock private BatteryUtils mBatteryUtils;
 
     @Before
     public void setUp() {
@@ -73,13 +71,19 @@
     public void logSpecialPermissionChange() {
         // Deny means app is allowlisted to opt out of power save restrictions
         HighPowerDetail.logSpecialPermissionChange(true, "app", RuntimeEnvironment.application);
-        verify(mFeatureFactory.metricsFeatureProvider).action(any(Context.class),
-                eq(MetricsProto.MetricsEvent.APP_SPECIAL_PERMISSION_BATTERY_DENY), eq("app"));
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        any(Context.class),
+                        eq(MetricsProto.MetricsEvent.APP_SPECIAL_PERMISSION_BATTERY_DENY),
+                        eq("app"));
 
         // Allow means app is NOT allowlisted to opt out of power save restrictions
         HighPowerDetail.logSpecialPermissionChange(false, "app", RuntimeEnvironment.application);
-        verify(mFeatureFactory.metricsFeatureProvider).action(any(Context.class),
-                eq(MetricsProto.MetricsEvent.APP_SPECIAL_PERMISSION_BATTERY_ALLOW), eq("app"));
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        any(Context.class),
+                        eq(MetricsProto.MetricsEvent.APP_SPECIAL_PERMISSION_BATTERY_ALLOW),
+                        eq("app"));
     }
 
     @Test
@@ -87,15 +91,17 @@
         mFragment.mIsEnabled = true;
         when(mPowerAllowlistBackend.isAllowlisted(TEST_PACKAGE, TEST_UID)).thenReturn(false);
         mFragment.onClick(null, DialogInterface.BUTTON_POSITIVE);
-        verify(mBatteryUtils).setForceAppStandby(TEST_UID, TEST_PACKAGE,
-                AppOpsManager.MODE_ALLOWED);
+        verify(mBatteryUtils)
+                .setForceAppStandby(TEST_UID, TEST_PACKAGE, AppOpsManager.MODE_ALLOWED);
     }
 
     @Test
     public void getSummary_defaultActivePackage_returnUnavailable() {
         doReturn(true).when(mPowerAllowlistBackend).isDefaultActiveApp(TEST_PACKAGE, TEST_UID);
 
-        assertThat(HighPowerDetail.getSummary(mContext, mPowerAllowlistBackend, TEST_PACKAGE,
-                TEST_UID)).isEqualTo(mContext.getString(R.string.high_power_system));
+        assertThat(
+                        HighPowerDetail.getSummary(
+                                mContext, mPowerAllowlistBackend, TEST_PACKAGE, TEST_UID))
+                .isEqualTo(mContext.getString(R.string.high_power_system));
     }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/OptimizedPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/OptimizedPreferenceControllerTest.java
index 71bb998..6656471 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/OptimizedPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/OptimizedPreferenceControllerTest.java
@@ -18,8 +18,13 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.when;
 
+import android.content.Context;
+import android.content.pm.PackageManager;
+
 import com.android.settingslib.widget.SelectorWithWidgetPreference;
 
 import org.junit.Before;
@@ -37,35 +42,42 @@
 
     private OptimizedPreferenceController mController;
     private SelectorWithWidgetPreference mPreference;
+    private BatteryOptimizeUtils mBatteryOptimizeUtils;
 
-    @Mock BatteryOptimizeUtils mockBatteryOptimizeUtils;
+    @Mock PackageManager mMockPackageManager;
 
     @Before
-    public void setUp() {
+    public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
 
-        mController = new OptimizedPreferenceController(
-                RuntimeEnvironment.application, UID, PACKAGE_NAME);
+        Context context = spy(RuntimeEnvironment.application);
+        BatteryUtils.getInstance(context).reset();
+        doReturn(UID)
+                .when(mMockPackageManager)
+                .getPackageUid(PACKAGE_NAME, PackageManager.GET_META_DATA);
+
+        mController = new OptimizedPreferenceController(context, UID, PACKAGE_NAME);
         mPreference = new SelectorWithWidgetPreference(RuntimeEnvironment.application);
-        mController.mBatteryOptimizeUtils = mockBatteryOptimizeUtils;
+        mBatteryOptimizeUtils = spy(new BatteryOptimizeUtils(context, UID, PACKAGE_NAME));
+        mController.mBatteryOptimizeUtils = mBatteryOptimizeUtils;
     }
 
     @Test
     public void testUpdateState_invalidPackage_prefEnabled() {
-        when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(true);
+        when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(true);
 
         mController.updateState(mPreference);
 
-        assertThat(mPreference.isEnabled()).isTrue();
+        assertThat(mPreference.isEnabled()).isFalse();
         assertThat(mPreference.isChecked()).isTrue();
     }
 
     @Test
     public void testUpdateState_isSystemOrDefaultAppAndOptimizeStates_prefChecked() {
-        when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
-        when(mockBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(true);
-        when(mockBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(
-                BatteryOptimizeUtils.MODE_OPTIMIZED);
+        when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
+        when(mBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(true);
+        when(mBatteryOptimizeUtils.getAppOptimizationMode())
+                .thenReturn(BatteryOptimizeUtils.MODE_OPTIMIZED);
 
         mController.updateState(mPreference);
 
@@ -74,8 +86,8 @@
 
     @Test
     public void testUpdateState_isSystemOrDefaultApp_prefUnchecked() {
-        when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
-        when(mockBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(true);
+        when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
+        when(mBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(true);
 
         mController.updateState(mPreference);
 
@@ -85,9 +97,9 @@
 
     @Test
     public void testUpdateState_isOptimizedStates_prefChecked() {
-        when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
-        when(mockBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(
-                BatteryOptimizeUtils.MODE_OPTIMIZED);
+        when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
+        when(mBatteryOptimizeUtils.getAppOptimizationMode())
+                .thenReturn(BatteryOptimizeUtils.MODE_OPTIMIZED);
 
         mController.updateState(mPreference);
 
@@ -96,7 +108,7 @@
 
     @Test
     public void testUpdateState_prefUnchecked() {
-        when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
+        when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
 
         mController.updateState(mPreference);
 
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerBackgroundUsageDetailTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerBackgroundUsageDetailTest.java
new file mode 100644
index 0000000..3b80efb
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerBackgroundUsageDetailTest.java
@@ -0,0 +1,288 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.fuelgauge;
+
+import static com.android.settings.SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS;
+import static com.android.settings.fuelgauge.BatteryOptimizeHistoricalLogEntry.Action;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.nullable;
+import static org.mockito.Mockito.doAnswer;
+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.AppOpsManager;
+import android.app.backup.BackupManager;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.os.UserHandle;
+import android.widget.CompoundButton;
+
+import androidx.fragment.app.FragmentActivity;
+import androidx.loader.app.LoaderManager;
+
+import com.android.settings.SettingsActivity;
+import com.android.settings.fuelgauge.batteryusage.BatteryEntry;
+import com.android.settings.testutils.shadow.ShadowActivityManager;
+import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
+import com.android.settings.widget.EntityHeaderController;
+import com.android.settingslib.applications.AppUtils;
+import com.android.settingslib.applications.ApplicationsState;
+import com.android.settingslib.applications.instantapps.InstantAppDataProvider;
+import com.android.settingslib.widget.FooterPreference;
+import com.android.settingslib.widget.LayoutPreference;
+import com.android.settingslib.widget.MainSwitchPreference;
+import com.android.settingslib.widget.SelectorWithWidgetPreference;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Answers;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.stubbing.Answer;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+import org.robolectric.util.ReflectionHelpers;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(
+        shadows = {
+            ShadowEntityHeaderController.class,
+            ShadowActivityManager.class,
+            com.android.settings.testutils.shadow.ShadowFragment.class,
+        })
+public class PowerBackgroundUsageDetailTest {
+    private static final String APP_LABEL = "app label";
+    private static final String SUMMARY = "summary";
+    private static final int ICON_ID = 123;
+    private static final int UID = 1;
+    private static final String KEY_PREF_UNRESTRICTED = "unrestricted_preference";
+    private static final String KEY_PREF_OPTIMIZED = "optimized_preference";
+    private static final String KEY_ALLOW_BACKGROUND_USAGE = "allow_background_usage";
+
+    private Context mContext;
+    private PowerBackgroundUsageDetail mFragment;
+    private FooterPreference mFooterPreference;
+    private MainSwitchPreference mMainSwitchPreference;
+    private SelectorWithWidgetPreference mOptimizePreference;
+    private SelectorWithWidgetPreference mUnrestrictedPreference;
+    private SettingsActivity mTestActivity;
+
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private FragmentActivity mActivity;
+
+    @Mock private EntityHeaderController mEntityHeaderController;
+    @Mock private BatteryOptimizeUtils mBatteryOptimizeUtils;
+    @Mock private LayoutPreference mHeaderPreference;
+    @Mock private ApplicationsState mState;
+    @Mock private Bundle mBundle;
+    @Mock private LoaderManager mLoaderManager;
+    @Mock private ApplicationsState.AppEntry mAppEntry;
+    @Mock private BatteryEntry mBatteryEntry;
+    @Mock private BackupManager mBackupManager;
+    @Mock private PackageManager mPackageManager;
+    @Mock private AppOpsManager mAppOpsManager;
+    @Mock private CompoundButton mMockSwitch;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+
+        mContext = spy(RuntimeEnvironment.application);
+        when(mContext.getPackageName()).thenReturn("foo");
+
+        mFragment = spy(new PowerBackgroundUsageDetail());
+        doReturn(mContext).when(mFragment).getContext();
+        doReturn(mActivity).when(mFragment).getActivity();
+        doReturn(SUMMARY).when(mFragment).getString(anyInt());
+        doReturn(APP_LABEL).when(mBundle).getString(nullable(String.class));
+        when(mFragment.getArguments()).thenReturn(mBundle);
+        doReturn(mLoaderManager).when(mFragment).getLoaderManager();
+
+        ShadowEntityHeaderController.setUseMock(mEntityHeaderController);
+        doReturn(mEntityHeaderController)
+                .when(mEntityHeaderController)
+                .setButtonActions(anyInt(), anyInt());
+        doReturn(mEntityHeaderController)
+                .when(mEntityHeaderController)
+                .setIcon(nullable(Drawable.class));
+        doReturn(mEntityHeaderController)
+                .when(mEntityHeaderController)
+                .setIcon(nullable(ApplicationsState.AppEntry.class));
+        doReturn(mEntityHeaderController)
+                .when(mEntityHeaderController)
+                .setLabel(nullable(String.class));
+        doReturn(mEntityHeaderController)
+                .when(mEntityHeaderController)
+                .setLabel(nullable(String.class));
+        doReturn(mEntityHeaderController)
+                .when(mEntityHeaderController)
+                .setLabel(nullable(ApplicationsState.AppEntry.class));
+        doReturn(mEntityHeaderController)
+                .when(mEntityHeaderController)
+                .setSummary(nullable(String.class));
+
+        when(mBatteryEntry.getUid()).thenReturn(UID);
+        when(mBatteryEntry.getLabel()).thenReturn(APP_LABEL);
+        mBatteryEntry.mIconId = ICON_ID;
+
+        mFragment.mHeaderPreference = mHeaderPreference;
+        mFragment.mState = mState;
+        mFragment.mBatteryOptimizeUtils = mBatteryOptimizeUtils;
+        mFragment.mBackupManager = mBackupManager;
+        mAppEntry.info = mock(ApplicationInfo.class);
+
+        mTestActivity = spy(new SettingsActivity());
+        doReturn(mPackageManager).when(mTestActivity).getPackageManager();
+        doReturn(mPackageManager).when(mActivity).getPackageManager();
+        doReturn(mAppOpsManager).when(mTestActivity).getSystemService(Context.APP_OPS_SERVICE);
+
+        final ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
+
+        Answer<Void> callable =
+                invocation -> {
+                    mBundle = captor.getValue().getBundleExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS);
+                    System.out.println("mBundle = " + mBundle);
+                    return null;
+                };
+        doAnswer(callable)
+                .when(mActivity)
+                .startActivityAsUser(captor.capture(), nullable(UserHandle.class));
+        doAnswer(callable).when(mActivity).startActivity(captor.capture());
+
+        mFooterPreference = spy(new FooterPreference(mContext));
+        mMainSwitchPreference = spy(new MainSwitchPreference(mContext));
+        mMainSwitchPreference.setKey(KEY_ALLOW_BACKGROUND_USAGE);
+        mOptimizePreference = spy(new SelectorWithWidgetPreference(mContext));
+        mOptimizePreference.setKey(KEY_PREF_OPTIMIZED);
+        mUnrestrictedPreference = spy(new SelectorWithWidgetPreference(mContext));
+        mUnrestrictedPreference.setKey(KEY_PREF_UNRESTRICTED);
+        mFragment.mFooterPreference = mFooterPreference;
+        mFragment.mMainSwitchPreference = mMainSwitchPreference;
+        mFragment.mOptimizePreference = mOptimizePreference;
+        mFragment.mUnrestrictedPreference = mUnrestrictedPreference;
+    }
+
+    @After
+    public void reset() {
+        ShadowEntityHeaderController.reset();
+    }
+
+    @Test
+    public void initHeader_NoAppEntry_BuildByBundle() {
+        mFragment.mAppEntry = null;
+        mFragment.initHeader();
+
+        verify(mEntityHeaderController).setIcon(nullable(Drawable.class));
+        verify(mEntityHeaderController).setLabel(APP_LABEL);
+    }
+
+    @Test
+    public void initHeader_HasAppEntry_BuildByAppEntry() {
+        ReflectionHelpers.setStaticField(
+                AppUtils.class,
+                "sInstantAppDataProvider",
+                new InstantAppDataProvider() {
+                    @Override
+                    public boolean isInstantApp(ApplicationInfo info) {
+                        return false;
+                    }
+                });
+        mFragment.mAppEntry = mAppEntry;
+        mFragment.initHeader();
+
+        verify(mEntityHeaderController).setIcon(mAppEntry);
+        verify(mEntityHeaderController).setLabel(mAppEntry);
+        verify(mEntityHeaderController).setIsInstantApp(false);
+    }
+
+    @Test
+    public void initHeader_HasAppEntry_InstantApp() {
+        ReflectionHelpers.setStaticField(
+                AppUtils.class,
+                "sInstantAppDataProvider",
+                new InstantAppDataProvider() {
+                    @Override
+                    public boolean isInstantApp(ApplicationInfo info) {
+                        return true;
+                    }
+                });
+        mFragment.mAppEntry = mAppEntry;
+        mFragment.initHeader();
+
+        verify(mEntityHeaderController).setIcon(mAppEntry);
+        verify(mEntityHeaderController).setLabel(mAppEntry);
+        verify(mEntityHeaderController).setIsInstantApp(true);
+    }
+
+    @Test
+    public void initFooter_hasCorrectString() {
+        when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
+        when(mBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(false);
+
+        mFragment.initFooter();
+
+        assertThat(mFooterPreference.getTitle().toString())
+                .isEqualTo("Changing how an app uses your battery can affect its performance.");
+    }
+
+    @Test
+    public void onSwitchChanged_fromUnrestrictedModeSetDisabled_becomeRestrictedMode() {
+        final int restrictedMode = BatteryOptimizeUtils.MODE_RESTRICTED;
+        final int optimizedMode = BatteryOptimizeUtils.MODE_OPTIMIZED;
+        mFragment.mOptimizationMode = optimizedMode;
+
+        mFragment.onCheckedChanged(mMockSwitch, /* isChecked= */ false);
+
+        verify(mOptimizePreference).setEnabled(false);
+        verify(mUnrestrictedPreference).setEnabled(false);
+        verify(mFragment).onRadioButtonClicked(null);
+        verify(mMainSwitchPreference).setChecked(false);
+        assertThat(mFragment.getSelectedPreference()).isEqualTo(restrictedMode);
+        verify(mBatteryOptimizeUtils).setAppUsageState(restrictedMode, Action.APPLY);
+    }
+
+    @Test
+    public void onSwitchChanged_fromRestrictedModeSetEnabled_becomeOptimizedMode() {
+        final int restrictedMode = BatteryOptimizeUtils.MODE_RESTRICTED;
+        final int optimizedMode = BatteryOptimizeUtils.MODE_OPTIMIZED;
+        mFragment.mOptimizationMode = restrictedMode;
+
+        mFragment.onCheckedChanged(mMockSwitch, /* isChecked= */ true);
+
+        verify(mOptimizePreference).setEnabled(true);
+        verify(mUnrestrictedPreference).setEnabled(true);
+        verify(mFragment).onRadioButtonClicked(mOptimizePreference);
+        verify(mMainSwitchPreference).setChecked(true);
+        verify(mOptimizePreference).setChecked(true);
+        assertThat(mFragment.getSelectedPreference()).isEqualTo(optimizedMode);
+        verify(mBatteryOptimizeUtils).setAppUsageState(optimizedMode, Action.APPLY);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImplTest.java
index a0b449a..0131330 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImplTest.java
@@ -46,8 +46,8 @@
 
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private Context mContext;
-    @Mock
-    private PackageManager mPackageManager;
+
+    @Mock private PackageManager mPackageManager;
     private PowerUsageFeatureProviderImpl mPowerFeatureProvider;
 
     @Before
@@ -117,16 +117,18 @@
 
     @Test
     public void testIsSmartBatterySupported_smartBatterySupported_returnTrue() {
-        when(mContext.getResources().getBoolean(
-                com.android.internal.R.bool.config_smart_battery_available)).thenReturn(true);
+        when(mContext.getResources()
+                        .getBoolean(com.android.internal.R.bool.config_smart_battery_available))
+                .thenReturn(true);
 
         assertThat(mPowerFeatureProvider.isSmartBatterySupported()).isTrue();
     }
 
     @Test
     public void testIsSmartBatterySupported_smartBatteryNotSupported_returnFalse() {
-        when(mContext.getResources().getBoolean(
-                com.android.internal.R.bool.config_smart_battery_available)).thenReturn(false);
+        when(mContext.getResources()
+                        .getBoolean(com.android.internal.R.bool.config_smart_battery_available))
+                .thenReturn(false);
 
         assertThat(mPowerFeatureProvider.isSmartBatterySupported()).isFalse();
     }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageTimeControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageTimeControllerTest.java
new file mode 100644
index 0000000..22d4ba3
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageTimeControllerTest.java
@@ -0,0 +1,281 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.fuelgauge;
+
+import static org.mockito.ArgumentMatchers.anyString;
+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 android.content.Context;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
+
+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 PowerUsageTimeControllerTest {
+    private static final String SLOT_TIME = "12 am-2 am";
+    private static final String KEY_SCREEN_ON_TIME_PREF = "battery_usage_screen_time";
+    private static final String KEY_BACKGROUND_TIME_PREF = "battery_usage_background_time";
+    private static final String TEST_ANOMALY_HINT_TEXT = "test_anomaly_hint_text";
+
+    private Context mContext;
+    private PowerUsageTimeController mPowerUsageTimeController;
+
+    @Mock private PreferenceCategory mPowerUsageTimeCategory;
+    @Mock private PowerUsageTimePreference mScreenTimePreference;
+    @Mock private PowerUsageTimePreference mBackgroundTimePreference;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = spy(RuntimeEnvironment.application);
+        mPowerUsageTimeController = new PowerUsageTimeController(mContext);
+        mPowerUsageTimeController.mPowerUsageTimeCategory = mPowerUsageTimeCategory;
+        mPowerUsageTimeController.mScreenTimePreference = mScreenTimePreference;
+        mPowerUsageTimeController.mBackgroundTimePreference = mBackgroundTimePreference;
+        doReturn(KEY_SCREEN_ON_TIME_PREF).when(mScreenTimePreference).getKey();
+        doReturn(KEY_BACKGROUND_TIME_PREF).when(mBackgroundTimePreference).getKey();
+    }
+
+    @Test
+    public void handleScreenTimeUpdated_noInfo_prefInvisible() {
+        mPowerUsageTimeController.handleScreenTimeUpdated(
+                /* slotTime= */ null,
+                /* screenOnTimeInMs= */ 0,
+                /* backgroundTimeInMs= */ 0,
+                /* anomalyHintPrefKey= */ null,
+                /* anomalyHintText= */ null);
+
+        verifyAllPreferencesVisible(false);
+    }
+
+    @Test
+    public void handleScreenTimeUpdated_onlySlotTime_prefInvisible() {
+        mPowerUsageTimeController.handleScreenTimeUpdated(
+                SLOT_TIME,
+                /* screenOnTimeInMs= */ 0,
+                /* backgroundTimeInMs= */ 0,
+                /* anomalyHintPrefKey= */ null,
+                /* anomalyHintText= */ null);
+
+        verifyAllPreferencesVisible(false);
+    }
+
+    @Test
+    public void handleScreenTimeUpdated_lackBackgroundTime_onlyScreenOnTime() {
+        final long screenOnTimeAMinute = 60000;
+        final long backgroundTimeZero = 0;
+
+        mPowerUsageTimeController.handleScreenTimeUpdated(
+                SLOT_TIME,
+                screenOnTimeAMinute,
+                backgroundTimeZero,
+                /* anomalyHintPrefKey= */ null,
+                /* anomalyHintText= */ null);
+
+        verifyOnePreferenceInvisible(mBackgroundTimePreference);
+        verify(mScreenTimePreference).setTimeTitle("Screen time");
+        verify(mScreenTimePreference).setTimeSummary("1 min");
+        verify(mScreenTimePreference, never()).setAnomalyHint(anyString());
+    }
+
+    @Test
+    public void handleScreenTimeUpdated_lackScreenOnTime_onlyBackgroundTime() {
+        final long screenOnTimeZero = 0;
+        final long backgroundTimeTwoMinutes = 120000;
+
+        mPowerUsageTimeController.handleScreenTimeUpdated(
+                SLOT_TIME,
+                screenOnTimeZero,
+                backgroundTimeTwoMinutes,
+                /* anomalyHintPrefKey= */ null,
+                /* anomalyHintText= */ null);
+
+        verifyOnePreferenceInvisible(mScreenTimePreference);
+        verify(mBackgroundTimePreference).setTimeTitle("Background time");
+        verify(mBackgroundTimePreference).setTimeSummary("2 min");
+        verify(mBackgroundTimePreference, never()).setAnomalyHint(anyString());
+    }
+
+    @Test
+    public void handleScreenTimeUpdated_categoryTitleWithSlotTime_expectedResult() {
+        final long screenOnTimeAMinute = 60000;
+        final long backgroundTimeTwoMinutes = 120000;
+
+        mPowerUsageTimeController.handleScreenTimeUpdated(
+                SLOT_TIME,
+                screenOnTimeAMinute,
+                backgroundTimeTwoMinutes,
+                /* anomalyHintPrefKey= */ null,
+                /* anomalyHintText= */ null);
+
+        verifyAllPreferencesVisible(true);
+        verify(mScreenTimePreference).setTimeTitle("Screen time");
+        verify(mScreenTimePreference).setTimeSummary("1 min");
+        verify(mScreenTimePreference, never()).setAnomalyHint(anyString());
+        verify(mBackgroundTimePreference).setTimeTitle("Background time");
+        verify(mBackgroundTimePreference).setTimeSummary("2 min");
+        verify(mBackgroundTimePreference, never()).setAnomalyHint(anyString());
+        verify(mPowerUsageTimeCategory).setTitle("App usage for 12 am-2 am");
+    }
+
+    @Test
+    public void handleScreenTimeUpdated_categoryTitleWithoutSlotTime_expectedResult() {
+        final long backgroundTimeTwoMinutes = 120000;
+        final long screenOnTimeAMinute = 60000;
+
+        mPowerUsageTimeController.handleScreenTimeUpdated(
+                /* slotTime= */ null,
+                screenOnTimeAMinute,
+                backgroundTimeTwoMinutes,
+                /* anomalyHintPrefKey= */ null,
+                /* anomalyHintText= */ null);
+
+        verifyAllPreferencesVisible(true);
+        verify(mPowerUsageTimeCategory).setTitle("App usage since last full charge");
+    }
+
+    @Test
+    public void handleScreenTimeUpdated_BackgroundLessThanAMinWithSlotTime_expectedResult() {
+        final long screenOnTimeAMinute = 60000;
+        final long backgroundTimeLessThanAMinute = 59999;
+
+        mPowerUsageTimeController.handleScreenTimeUpdated(
+                SLOT_TIME,
+                screenOnTimeAMinute,
+                backgroundTimeLessThanAMinute,
+                /* anomalyHintPrefKey= */ null,
+                /* anomalyHintText= */ null);
+
+        verifyAllPreferencesVisible(true);
+        verify(mScreenTimePreference).setTimeSummary("1 min");
+        verify(mBackgroundTimePreference).setTimeSummary("Less than a min");
+    }
+
+    @Test
+    public void handleScreenTimeUpdated_ScreenTimeLessThanAMin_expectedResult() {
+        final long screenOnTimeLessThanAMinute = 59999;
+        final long backgroundTimeTwoMinutes = 120000;
+
+        mPowerUsageTimeController.handleScreenTimeUpdated(
+                SLOT_TIME,
+                screenOnTimeLessThanAMinute,
+                backgroundTimeTwoMinutes,
+                /* anomalyHintPrefKey= */ null,
+                /* anomalyHintText= */ null);
+
+        verifyAllPreferencesVisible(true);
+        verify(mScreenTimePreference).setTimeSummary("Less than a min");
+        verify(mBackgroundTimePreference).setTimeSummary("2 min");
+    }
+
+    @Test
+    public void handleScreenTimeUpdated_bothLessThanAMin_expectedResult() {
+        final long screenOnTimeLessThanAMinute = 59999;
+        final long backgroundTimeLessThanAMinute = 59999;
+
+        mPowerUsageTimeController.handleScreenTimeUpdated(
+                SLOT_TIME,
+                screenOnTimeLessThanAMinute,
+                backgroundTimeLessThanAMinute,
+                /* anomalyHintPrefKey= */ null,
+                /* anomalyHintText= */ null);
+
+        verifyAllPreferencesVisible(true);
+        verify(mScreenTimePreference).setTimeSummary("Less than a min");
+        verify(mBackgroundTimePreference).setTimeSummary("Less than a min");
+    }
+
+    @Test
+    public void handleScreenTimeUpdated_anomalyOfScreenOnTime_expectedResult() {
+        final long screenOnTimeAMinute = 60000;
+        final long backgroundTimeTwoMinutes = 120000;
+
+        mPowerUsageTimeController.handleScreenTimeUpdated(
+                SLOT_TIME,
+                screenOnTimeAMinute,
+                backgroundTimeTwoMinutes,
+                KEY_SCREEN_ON_TIME_PREF,
+                TEST_ANOMALY_HINT_TEXT);
+
+        verifyAllPreferencesVisible(true);
+        verify(mScreenTimePreference).setAnomalyHint(TEST_ANOMALY_HINT_TEXT);
+        verify(mBackgroundTimePreference, never()).setAnomalyHint(anyString());
+    }
+
+    @Test
+    public void handleScreenTimeUpdated_anomalyOfBackgroundTime_expectedResult() {
+        final long screenOnTimeAMinute = 60000;
+        final long backgroundTimeTwoMinutes = 120000;
+
+        mPowerUsageTimeController.handleScreenTimeUpdated(
+                SLOT_TIME,
+                screenOnTimeAMinute,
+                backgroundTimeTwoMinutes,
+                KEY_BACKGROUND_TIME_PREF,
+                TEST_ANOMALY_HINT_TEXT);
+
+        verifyAllPreferencesVisible(true);
+        verify(mScreenTimePreference, never()).setAnomalyHint(anyString());
+        verify(mBackgroundTimePreference).setAnomalyHint(TEST_ANOMALY_HINT_TEXT);
+    }
+
+    @Test
+    public void handleScreenTimeUpdated_anomalyOfScreenOnTimeWithoutTimeInfo_expectedResult() {
+        final long screenOnTimeZero = 0;
+        final long backgroundTimeTwoMinutes = 120000;
+
+        mPowerUsageTimeController.handleScreenTimeUpdated(
+                SLOT_TIME,
+                screenOnTimeZero,
+                backgroundTimeTwoMinutes,
+                KEY_SCREEN_ON_TIME_PREF,
+                TEST_ANOMALY_HINT_TEXT);
+
+        verifyAllPreferencesVisible(true);
+        verify(mScreenTimePreference).setTimeSummary("Less than a min");
+        verify(mScreenTimePreference).setAnomalyHint(TEST_ANOMALY_HINT_TEXT);
+        verify(mBackgroundTimePreference, never()).setAnomalyHint(anyString());
+    }
+
+    private void verifySetPrefToVisible(Preference pref, boolean isVisible) {
+        verify(pref, isVisible ? times(1) : never()).setVisible(true);
+    }
+
+    private void verifyAllPreferencesVisible(boolean isVisible) {
+        verifySetPrefToVisible(mScreenTimePreference, isVisible);
+        verifySetPrefToVisible(mBackgroundTimePreference, isVisible);
+        verifySetPrefToVisible(mPowerUsageTimeCategory, isVisible);
+    }
+
+    private void verifyOnePreferenceInvisible(Preference pref) {
+        verifySetPrefToVisible(mScreenTimePreference, mScreenTimePreference != pref);
+        verifySetPrefToVisible(mBackgroundTimePreference, mBackgroundTimePreference != pref);
+        verifySetPrefToVisible(mPowerUsageTimeCategory, mPowerUsageTimeCategory != pref);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/RestrictAppPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/RestrictAppPreferenceControllerTest.java
index 0321483..64efb6a 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/RestrictAppPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/RestrictAppPreferenceControllerTest.java
@@ -33,7 +33,6 @@
 import android.content.Intent;
 import android.os.UserHandle;
 import android.os.UserManager;
-import android.util.Pair;
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceManager;
@@ -65,12 +64,9 @@
     private static final String RESTRICTED_PACKAGE_NAME = "com.android.restricted.package";
     private static final int OTHER_USER_UID = UserHandle.PER_USER_RANGE + RESTRICTED_UID;
 
-    @Mock
-    private AppOpsManager mAppOpsManager;
-    @Mock
-    private InstrumentedPreferenceFragment mFragment;
-    @Mock
-    private UserManager mUserManager;
+    @Mock private AppOpsManager mAppOpsManager;
+    @Mock private InstrumentedPreferenceFragment mFragment;
+    @Mock private UserManager mUserManager;
 
     private AppOpsManager.PackageOps mRestrictedPackageOps;
     private AppOpsManager.PackageOps mAllowedPackageOps;
@@ -84,19 +80,25 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         final List<AppOpsManager.OpEntry> allowOps = new ArrayList<>();
-        allowOps.add(new AppOpsManager.OpEntry(
-                AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, AppOpsManager.MODE_ALLOWED,
-                Collections.emptyMap()));
+        allowOps.add(
+                new AppOpsManager.OpEntry(
+                        AppOpsManager.OP_RUN_ANY_IN_BACKGROUND,
+                        AppOpsManager.MODE_ALLOWED,
+                        Collections.emptyMap()));
         final List<AppOpsManager.OpEntry> restrictedOps = new ArrayList<>();
-        restrictedOps.add(new AppOpsManager.OpEntry(
-                AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, AppOpsManager.MODE_IGNORED,
-                Collections.emptyMap()));
-        mAllowedPackageOps = new AppOpsManager.PackageOps(
-                ALLOWED_PACKAGE_NAME, ALLOWED_UID, allowOps);
-        mRestrictedPackageOps = new AppOpsManager.PackageOps(
-                RESTRICTED_PACKAGE_NAME, RESTRICTED_UID, restrictedOps);
-        mOtherUserPackageOps = new AppOpsManager.PackageOps(
-                RESTRICTED_PACKAGE_NAME, OTHER_USER_UID, restrictedOps);
+        restrictedOps.add(
+                new AppOpsManager.OpEntry(
+                        AppOpsManager.OP_RUN_ANY_IN_BACKGROUND,
+                        AppOpsManager.MODE_IGNORED,
+                        Collections.emptyMap()));
+        mAllowedPackageOps =
+                new AppOpsManager.PackageOps(ALLOWED_PACKAGE_NAME, ALLOWED_UID, allowOps);
+        mRestrictedPackageOps =
+                new AppOpsManager.PackageOps(
+                        RESTRICTED_PACKAGE_NAME, RESTRICTED_UID, restrictedOps);
+        mOtherUserPackageOps =
+                new AppOpsManager.PackageOps(
+                        RESTRICTED_PACKAGE_NAME, OTHER_USER_UID, restrictedOps);
 
         mContext = spy(ApplicationProvider.getApplicationContext());
         doReturn(mAppOpsManager).when(mContext).getSystemService(Context.APP_OPS_SERVICE);
@@ -109,8 +111,8 @@
         mPreferenceScreen = spy(new PreferenceScreen(mContext, null));
         when(mPreferenceScreen.getPreferenceManager()).thenReturn(mock(PreferenceManager.class));
         when(mPreferenceScreen.getContext()).thenReturn(mContext);
-        when(mPreferenceScreen.findPreference(
-                RestrictAppPreferenceController.KEY_RESTRICT_APP)).thenReturn(mPreference);
+        when(mPreferenceScreen.findPreference(RestrictAppPreferenceController.KEY_RESTRICT_APP))
+                .thenReturn(mPreference);
 
         final List<UserHandle> userHandles = new ArrayList<>();
         userHandles.add(new UserHandle(0));
@@ -122,8 +124,8 @@
         mPackageOpsList.add(mRestrictedPackageOps);
         doReturn(mPackageOpsList).when(mAppOpsManager).getPackagesForOps(any(int[].class));
 
-        final RestrictAppPreferenceController controller = new RestrictAppPreferenceController(
-                mFragment);
+        final RestrictAppPreferenceController controller =
+                new RestrictAppPreferenceController(mFragment);
         controller.displayPreference(mPreferenceScreen);
         controller.updateState(mPreference);
 
@@ -138,8 +140,8 @@
         mPackageOpsList.add(mOtherUserPackageOps);
         doReturn(mPackageOpsList).when(mAppOpsManager).getPackagesForOps(any(int[].class));
 
-        final RestrictAppPreferenceController controller = new RestrictAppPreferenceController(
-                mFragment);
+        final RestrictAppPreferenceController controller =
+                new RestrictAppPreferenceController(mFragment);
         controller.displayPreference(mPreferenceScreen);
         controller.updateState(mPreference);
 
@@ -154,17 +156,18 @@
         mPackageOpsList.add(mOtherUserPackageOps);
         doReturn(mPackageOpsList).when(mAppOpsManager).getPackagesForOps(any(int[].class));
 
-        final RestrictAppPreferenceController controller = new RestrictAppPreferenceController(
-                mFragment);
+        final RestrictAppPreferenceController controller =
+                new RestrictAppPreferenceController(mFragment);
         controller.displayPreference(mPreferenceScreen);
         controller.updateState(mPreference);
 
         assertThat(mPreference.getSummary()).isEqualTo("Limiting battery usage for 1 app");
-        assertThat(controller.mAppInfos).containsExactly(
-                new AppInfo.Builder()
-                        .setUid(RESTRICTED_UID)
-                        .setPackageName(RESTRICTED_PACKAGE_NAME)
-                        .build());
+        assertThat(controller.mAppInfos)
+                .containsExactly(
+                        new AppInfo.Builder()
+                                .setUid(RESTRICTED_UID)
+                                .setPackageName(RESTRICTED_PACKAGE_NAME)
+                                .build());
     }
 
     @Test
@@ -172,8 +175,8 @@
         mPackageOpsList.add(mAllowedPackageOps);
         doReturn(mPackageOpsList).when(mAppOpsManager).getPackagesForOps(any(int[].class));
 
-        final RestrictAppPreferenceController controller = new RestrictAppPreferenceController(
-                mFragment);
+        final RestrictAppPreferenceController controller =
+                new RestrictAppPreferenceController(mFragment);
         controller.displayPreference(mPreferenceScreen);
         controller.updateState(mPreference);
 
@@ -185,8 +188,8 @@
     public void handlePreferenceTreeClick_startFragment() {
         final ArgumentCaptor<Intent> intent = ArgumentCaptor.forClass(Intent.class);
 
-        final RestrictAppPreferenceController controller = new RestrictAppPreferenceController(
-                mFragment);
+        final RestrictAppPreferenceController controller =
+                new RestrictAppPreferenceController(mFragment);
         controller.handlePreferenceTreeClick(mPreference);
 
         verify(mContext).startActivity(intent.capture());
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/RestrictedAppDetailsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/RestrictedAppDetailsTest.java
index 2991e78..54b8808 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/RestrictedAppDetailsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/RestrictedAppDetailsTest.java
@@ -72,17 +72,11 @@
     private static final int UID = UserHandle.getUid(USER_ID, 234);
     private static final String APP_NAME = "app";
 
-
-    @Mock
-    private PackageManager mPackageManager;
-    @Mock
-    private ApplicationInfo mApplicationInfo;
-    @Mock
-    private IconDrawableFactory mIconDrawableFactory;
-    @Mock
-    private InstrumentedPreferenceFragment mFragment;
-    @Mock
-    private BatteryDatabaseManager mBatteryDatabaseManager;
+    @Mock private PackageManager mPackageManager;
+    @Mock private ApplicationInfo mApplicationInfo;
+    @Mock private IconDrawableFactory mIconDrawableFactory;
+    @Mock private InstrumentedPreferenceFragment mFragment;
+    @Mock private BatteryDatabaseManager mBatteryDatabaseManager;
     private PreferenceManager mPreferenceManager;
     private RestrictedAppDetails mRestrictedAppDetails;
     private Context mContext;
@@ -96,10 +90,7 @@
 
         mContext = spy(RuntimeEnvironment.application);
         mRestrictedAppDetails = spy(new RestrictedAppDetails());
-        mAppInfo = new AppInfo.Builder()
-                .setPackageName(PACKAGE_NAME)
-                .setUid(UID)
-                .build();
+        mAppInfo = new AppInfo.Builder().setPackageName(PACKAGE_NAME).setUid(UID).build();
 
         mPreferenceManager = new PreferenceManager(mContext);
 
@@ -113,8 +104,9 @@
         mRestrictedAppDetails.mRestrictedAppListGroup = spy(new PreferenceCategory(mContext));
         mRestrictedAppDetails.mBatteryUtils = spy(new BatteryUtils(mContext));
         mRestrictedAppDetails.mBatteryDatabaseManager = mBatteryDatabaseManager;
-        doReturn(mPreferenceManager).when(
-                mRestrictedAppDetails.mRestrictedAppListGroup).getPreferenceManager();
+        doReturn(mPreferenceManager)
+                .when(mRestrictedAppDetails.mRestrictedAppListGroup)
+                .getPreferenceManager();
 
         mCheckBoxPreference = new CheckBoxPreference(mContext);
         mCheckBoxPreference.setKey(mRestrictedAppDetails.getKeyFromAppInfo(mAppInfo));
@@ -122,14 +114,17 @@
 
     @Test
     public void refreshUi_displayPreference() throws Exception {
-        doReturn(mApplicationInfo).when(mPackageManager)
+        doReturn(mApplicationInfo)
+                .when(mPackageManager)
                 .getApplicationInfoAsUser(PACKAGE_NAME, 0, USER_ID);
         doReturn(APP_NAME).when(mPackageManager).getApplicationLabel(mApplicationInfo);
-        doReturn(true).when(mRestrictedAppDetails.mBatteryUtils).isForceAppStandbyEnabled(UID,
-                PACKAGE_NAME);
+        doReturn(true)
+                .when(mRestrictedAppDetails.mBatteryUtils)
+                .isForceAppStandbyEnabled(UID, PACKAGE_NAME);
         final SparseLongArray timestampArray = new SparseLongArray();
         timestampArray.put(UID, System.currentTimeMillis() - TimeUnit.HOURS.toMillis(5));
-        doReturn(timestampArray).when(mBatteryDatabaseManager)
+        doReturn(timestampArray)
+                .when(mBatteryDatabaseManager)
                 .queryActionTime(AnomalyDatabaseHelper.ActionType.RESTRICTION);
 
         mRestrictedAppDetails.refreshUi();
@@ -145,30 +140,32 @@
     @Test
     public void startRestrictedAppDetails_startWithCorrectData() {
         final ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
-        doAnswer(invocation -> {
-            // Get the intent in which it has the app info bundle
-            mIntent = captor.getValue();
-            return true;
-        }).when(mContext).startActivity(captor.capture());
+        doAnswer(
+                        invocation -> {
+                            // Get the intent in which it has the app info bundle
+                            mIntent = captor.getValue();
+                            return true;
+                        })
+                .when(mContext)
+                .startActivity(captor.capture());
 
-        RestrictedAppDetails.startRestrictedAppDetails(mFragment,
-                mRestrictedAppDetails.mAppInfos);
+        RestrictedAppDetails.startRestrictedAppDetails(mFragment, mRestrictedAppDetails.mAppInfos);
 
-        final Bundle bundle = mIntent.getBundleExtra(
-                SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS);
+        final Bundle bundle =
+                mIntent.getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS);
         // Verify the bundle has the correct info
-        final List<AppInfo> appInfos = bundle.getParcelableArrayList(
-                RestrictedAppDetails.EXTRA_APP_INFO_LIST);
+        final List<AppInfo> appInfos =
+                bundle.getParcelableArrayList(RestrictedAppDetails.EXTRA_APP_INFO_LIST);
         assertThat(appInfos).containsExactly(mAppInfo);
     }
 
     @Test
     public void createDialogFragment_toRestrict_createRestrictDialog() {
-        final BatteryTipDialogFragment dialogFragment = mRestrictedAppDetails.createDialogFragment(
-                mAppInfo, true);
+        final BatteryTipDialogFragment dialogFragment =
+                mRestrictedAppDetails.createDialogFragment(mAppInfo, true);
 
-        FragmentController.setupFragment(dialogFragment, FragmentActivity.class,
-                0 /* containerViewId */, null /* bundle */);
+        FragmentController.setupFragment(
+                dialogFragment, FragmentActivity.class, 0 /* containerViewId */, null /* bundle */);
 
         final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
         ShadowAlertDialogCompat shadowDialog = ShadowAlertDialogCompat.shadowOf(dialog);
@@ -177,11 +174,11 @@
 
     @Test
     public void createDialogFragment_toUnrestrict_createUnrestrictDialog() {
-        final BatteryTipDialogFragment dialogFragment = mRestrictedAppDetails.createDialogFragment(
-                mAppInfo, false);
+        final BatteryTipDialogFragment dialogFragment =
+                mRestrictedAppDetails.createDialogFragment(mAppInfo, false);
 
-        FragmentController.setupFragment(dialogFragment, FragmentActivity.class,
-                0 /* containerViewId */, null /* bundle */);
+        FragmentController.setupFragment(
+                dialogFragment, FragmentActivity.class, 0 /* containerViewId */, null /* bundle */);
 
         final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
         ShadowAlertDialogCompat shadowDialog = ShadowAlertDialogCompat.shadowOf(dialog);
@@ -190,8 +187,8 @@
 
     @Test
     public void onBatteryTipHandled_restrict_setChecked() {
-        final RestrictAppTip restrictAppTip = new RestrictAppTip(BatteryTip.StateType.NEW,
-                mAppInfo);
+        final RestrictAppTip restrictAppTip =
+                new RestrictAppTip(BatteryTip.StateType.NEW, mAppInfo);
         mRestrictedAppDetails.mRestrictedAppListGroup.addPreference(mCheckBoxPreference);
 
         mRestrictedAppDetails.onBatteryTipHandled(restrictAppTip);
@@ -201,8 +198,8 @@
 
     @Test
     public void onBatteryTipHandled_unrestrict_setUnchecked() {
-        final UnrestrictAppTip unrestrictAppTip = new UnrestrictAppTip(BatteryTip.StateType.NEW,
-                mAppInfo);
+        final UnrestrictAppTip unrestrictAppTip =
+                new UnrestrictAppTip(BatteryTip.StateType.NEW, mAppInfo);
         mRestrictedAppDetails.mRestrictedAppListGroup.addPreference(mCheckBoxPreference);
 
         mRestrictedAppDetails.onBatteryTipHandled(unrestrictAppTip);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/RestrictedPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/RestrictedPreferenceControllerTest.java
deleted file mode 100644
index bcddbc2..0000000
--- a/tests/robotests/src/com/android/settings/fuelgauge/RestrictedPreferenceControllerTest.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Copyright (C) 2021 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.fuelgauge;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.when;
-
-import com.android.settingslib.widget.SelectorWithWidgetPreference;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-@RunWith(RobolectricTestRunner.class)
-public class RestrictedPreferenceControllerTest {
-    private static final int UID = 12345;
-    private static final String PACKAGE_NAME = "com.android.app";
-
-    private RestrictedPreferenceController mController;
-    private SelectorWithWidgetPreference mPreference;
-
-    @Mock BatteryOptimizeUtils mockBatteryOptimizeUtils;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-
-        mController = new RestrictedPreferenceController(
-                RuntimeEnvironment.application, UID, PACKAGE_NAME);
-        mPreference = new SelectorWithWidgetPreference(RuntimeEnvironment.application);
-        mController.mBatteryOptimizeUtils = mockBatteryOptimizeUtils;
-    }
-
-    @Test
-    public void testUpdateState_isValidPackage_prefEnabled() {
-        when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.isEnabled()).isTrue();
-    }
-
-    @Test
-    public void testUpdateState_invalidPackage_prefDisabled() {
-        when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(true);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.isEnabled()).isFalse();
-    }
-
-    @Test
-    public void testUpdateState_isSystemOrDefaultAppAndRestrictedStates_prefChecked() {
-        when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
-        when(mockBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(true);
-        when(mockBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(
-                BatteryOptimizeUtils.MODE_RESTRICTED);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.isChecked()).isTrue();
-    }
-
-    @Test
-    public void testUpdateState_isSystemOrDefaultApp_prefUnchecked() {
-        when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
-        when(mockBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(true);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.isChecked()).isFalse();
-        assertThat(mPreference.isEnabled()).isFalse();
-    }
-
-    @Test
-    public void testUpdateState_isRestrictedStates_prefChecked() {
-        when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
-        when(mockBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(
-                BatteryOptimizeUtils.MODE_RESTRICTED);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.isChecked()).isTrue();
-    }
-
-    @Test
-    public void testUpdateState_prefUnchecked() {
-        when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.isChecked()).isFalse();
-    }
-
-    @Test
-    public void testHandlePreferenceTreeClick_samePrefKey_verifyAction() {
-        mPreference.setKey(mController.KEY_RESTRICTED_PREF);
-        mController.handlePreferenceTreeClick(mPreference);
-
-        assertThat(mController.handlePreferenceTreeClick(mPreference)).isTrue();
-    }
-
-    @Test
-    public void testHandlePreferenceTreeClick_incorrectPrefKey_noAction() {
-        assertThat(mController.handlePreferenceTreeClick(mPreference)).isFalse();
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/SmartBatteryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/SmartBatteryPreferenceControllerTest.java
index 6691bd5..b03602d 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/SmartBatteryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/SmartBatteryPreferenceControllerTest.java
@@ -54,7 +54,8 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        doReturn(mock(DevicePolicyManager.class)).when(mContext)
+        doReturn(mock(DevicePolicyManager.class))
+                .when(mContext)
                 .getSystemService(Context.DEVICE_POLICY_SERVICE);
 
         mFeatureFactory = FakeFeatureFactory.setupForTest();
@@ -99,26 +100,26 @@
     public void testGetAvailabilityStatus_smartBatterySupported_returnAvailable() {
         doReturn(true).when(mFeatureFactory.powerUsageFeatureProvider).isSmartBatterySupported();
 
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(
-                BasePreferenceController.AVAILABLE);
+        assertThat(mController.getAvailabilityStatus())
+                .isEqualTo(BasePreferenceController.AVAILABLE);
     }
 
     @Test
     public void testGetAvailabilityStatus_smartBatteryUnSupported_returnDisabled() {
         doReturn(false).when(mFeatureFactory.powerUsageFeatureProvider).isSmartBatterySupported();
 
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(
-                BasePreferenceController.UNSUPPORTED_ON_DEVICE);
+        assertThat(mController.getAvailabilityStatus())
+                .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);
     }
 
     private void putSmartBatteryValue(int value) {
-        Settings.Global.putInt(mContentResolver,
-                Settings.Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED, value);
+        Settings.Global.putInt(
+                mContentResolver, Settings.Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED, value);
     }
 
     private int getSmartBatteryValue() {
-        return Settings.Global.getInt(mContentResolver,
-                Settings.Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED, ON);
+        return Settings.Global.getInt(
+                mContentResolver, Settings.Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED, ON);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceControllerTest.java
index 7a7a384..3435987 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceControllerTest.java
@@ -50,12 +50,9 @@
     private TopLevelBatteryPreferenceController mController;
     private BatterySettingsFeatureProvider mBatterySettingsFeatureProvider;
 
-    @Mock
-    private UsbPort mUsbPort;
-    @Mock
-    private UsbManager mUsbManager;
-    @Mock
-    private UsbPortStatus mUsbPortStatus;
+    @Mock private UsbPort mUsbPort;
+    @Mock private UsbManager mUsbManager;
+    @Mock private UsbPortStatus mUsbPortStatus;
 
     @Before
     public void setUp() {
@@ -125,8 +122,7 @@
         info.discharging = false;
         info.chargeLabel = "5% - charging";
 
-        assertThat(mController.getDashboardLabel(mContext, info, true))
-                .isEqualTo(info.chargeLabel);
+        assertThat(mController.getDashboardLabel(mContext, info, true)).isEqualTo(info.chargeLabel);
     }
 
     @Test
@@ -136,8 +132,9 @@
         BatteryInfo info = new BatteryInfo();
 
         assertThat(mController.getDashboardLabel(mContext, info, true))
-                .isEqualTo(mContext.getString(
-                        com.android.settingslib.R.string.battery_info_status_not_charging));
+                .isEqualTo(
+                        mContext.getString(
+                                com.android.settingslib.R.string.battery_info_status_not_charging));
     }
 
     @Test
@@ -147,8 +144,7 @@
         info.batteryStatus = BatteryManager.BATTERY_STATUS_NOT_CHARGING;
         info.statusLabel = "expected returned label";
 
-        assertThat(mController.getDashboardLabel(mContext, info, true))
-                .isEqualTo(info.statusLabel);
+        assertThat(mController.getDashboardLabel(mContext, info, true)).isEqualTo(info.statusLabel);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/UnrestrictedPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/UnrestrictedPreferenceControllerTest.java
index 9bed9ba..0c6f7da 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/UnrestrictedPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/UnrestrictedPreferenceControllerTest.java
@@ -18,8 +18,13 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.when;
 
+import android.content.Context;
+import android.content.pm.PackageManager;
+
 import com.android.settingslib.widget.SelectorWithWidgetPreference;
 
 import org.junit.Before;
@@ -37,43 +42,54 @@
 
     private UnrestrictedPreferenceController mController;
     private SelectorWithWidgetPreference mPreference;
+    private BatteryOptimizeUtils mBatteryOptimizeUtils;
 
-    @Mock BatteryOptimizeUtils mockBatteryOptimizeUtils;
+    @Mock PackageManager mMockPackageManager;
 
     @Before
-    public void setUp() {
+    public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
 
-        mController = new UnrestrictedPreferenceController(
-                RuntimeEnvironment.application, UID, PACKAGE_NAME);
+        Context context = spy(RuntimeEnvironment.application);
+        BatteryUtils.getInstance(context).reset();
+        doReturn(UID)
+                .when(mMockPackageManager)
+                .getPackageUid(PACKAGE_NAME, PackageManager.GET_META_DATA);
+
+        mController = new UnrestrictedPreferenceController(context, UID, PACKAGE_NAME);
         mPreference = new SelectorWithWidgetPreference(RuntimeEnvironment.application);
-        mController.mBatteryOptimizeUtils = mockBatteryOptimizeUtils;
+        mBatteryOptimizeUtils = spy(new BatteryOptimizeUtils(context, UID, PACKAGE_NAME));
+        mController.mBatteryOptimizeUtils = mBatteryOptimizeUtils;
     }
 
     @Test
     public void testUpdateState_isValidPackage_prefEnabled() {
-        when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
+        when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
+        when(mBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(false);
 
         mController.updateState(mPreference);
 
+        assertThat(mBatteryOptimizeUtils.isOptimizeModeMutable()).isTrue();
         assertThat(mPreference.isEnabled()).isTrue();
     }
 
     @Test
     public void testUpdateState_invalidPackage_prefDisabled() {
-        when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(true);
+        when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(true);
+        when(mBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(false);
 
         mController.updateState(mPreference);
 
+        assertThat(mBatteryOptimizeUtils.isOptimizeModeMutable()).isFalse();
         assertThat(mPreference.isEnabled()).isFalse();
     }
 
     @Test
     public void testUpdateState_isSystemOrDefaultAppAndUnrestrictedStates_prefChecked() {
-        when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
-        when(mockBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(true);
-        when(mockBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(
-                BatteryOptimizeUtils.MODE_UNRESTRICTED);
+        when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
+        when(mBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(true);
+        when(mBatteryOptimizeUtils.getAppOptimizationMode())
+                .thenReturn(BatteryOptimizeUtils.MODE_UNRESTRICTED);
 
         mController.updateState(mPreference);
 
@@ -82,32 +98,38 @@
 
     @Test
     public void testUpdateState_isSystemOrDefaultApp_prefUnchecked() {
-        when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
-        when(mockBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(true);
+        when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
+        when(mBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(true);
+        when(mBatteryOptimizeUtils.getAppOptimizationMode())
+                .thenReturn(BatteryOptimizeUtils.MODE_OPTIMIZED);
 
         mController.updateState(mPreference);
 
-        assertThat(mPreference.isChecked()).isFalse();
         assertThat(mPreference.isEnabled()).isFalse();
+        assertThat(mPreference.isChecked()).isFalse();
     }
 
     @Test
     public void testUpdateState_isUnrestrictedStates_prefChecked() {
-        when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
-        when(mockBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(
-                BatteryOptimizeUtils.MODE_UNRESTRICTED);
+        when(mBatteryOptimizeUtils.isOptimizeModeMutable()).thenReturn(true);
+        when(mBatteryOptimizeUtils.getAppOptimizationMode())
+                .thenReturn(BatteryOptimizeUtils.MODE_UNRESTRICTED);
 
         mController.updateState(mPreference);
 
+        assertThat(mPreference.isEnabled()).isTrue();
         assertThat(mPreference.isChecked()).isTrue();
     }
 
     @Test
     public void testUpdateState_prefUnchecked() {
-        when(mockBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
+        when(mBatteryOptimizeUtils.isOptimizeModeMutable()).thenReturn(true);
+        when(mBatteryOptimizeUtils.getAppOptimizationMode())
+                .thenReturn(BatteryOptimizeUtils.MODE_OPTIMIZED);
 
         mController.updateState(mPreference);
 
+        assertThat(mPreference.isEnabled()).isTrue();
         assertThat(mPreference.isChecked()).isFalse();
     }
 
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceControllerTest.java
index 7398e5c..cdcb12f 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceControllerTest.java
@@ -47,10 +47,8 @@
     private Context mContext;
     private MainSwitchPreference mPreference;
 
-    @Mock
-    private PowerManager mPowerManager;
-    @Mock
-    private PreferenceScreen mPreferenceScreen;
+    @Mock private PowerManager mPowerManager;
+    @Mock private PreferenceScreen mPreferenceScreen;
 
     @Before
     public void setUp() {
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverSchedulePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverSchedulePreferenceControllerTest.java
index 2bb8f28..cdde8f9 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverSchedulePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverSchedulePreferenceControllerTest.java
@@ -59,10 +59,12 @@
 
     @Test
     public void testPreference_lowPowerLevelZero_percentageMode_summaryNoSchedule() {
-        Settings.Global.putInt(mContext.getContentResolver(),
-                Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0);
-        Settings.Global.putInt(mContext.getContentResolver(),
-                Global.AUTOMATIC_POWER_SAVE_MODE, PowerManager.POWER_SAVE_MODE_TRIGGER_PERCENTAGE);
+        Settings.Global.putInt(
+                mContext.getContentResolver(), Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0);
+        Settings.Global.putInt(
+                mContext.getContentResolver(),
+                Global.AUTOMATIC_POWER_SAVE_MODE,
+                PowerManager.POWER_SAVE_MODE_TRIGGER_PERCENTAGE);
 
         mController.updateState(mPreference);
 
@@ -71,10 +73,14 @@
 
     @Test
     public void testPreference_lowPowerLevelNonZero_percentageMode_summaryPercentage() {
-        Settings.Global.putInt(mContext.getContentResolver(),
-                Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, TRIGGER_LEVEL);
-        Settings.Global.putInt(mContext.getContentResolver(),
-                Global.AUTOMATIC_POWER_SAVE_MODE, PowerManager.POWER_SAVE_MODE_TRIGGER_PERCENTAGE);
+        Settings.Global.putInt(
+                mContext.getContentResolver(),
+                Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL,
+                TRIGGER_LEVEL);
+        Settings.Global.putInt(
+                mContext.getContentResolver(),
+                Global.AUTOMATIC_POWER_SAVE_MODE,
+                PowerManager.POWER_SAVE_MODE_TRIGGER_PERCENTAGE);
 
         mController.updateState(mPreference);
 
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSeekBarControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSeekBarControllerTest.java
index 9de3ada..f224c8a 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSeekBarControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSeekBarControllerTest.java
@@ -34,8 +34,7 @@
     private Context mContext;
     private ContentResolver mResolver;
     private BatterySaverScheduleSeekBarController mController;
-    @Mock
-    private PreferenceScreen mScreen;
+    @Mock private PreferenceScreen mScreen;
 
     @Before
     public void setUp() {
@@ -83,7 +82,9 @@
 
     @Test
     public void updateSeekBar_routineMode_hasCorrectProperties() {
-        Settings.Global.putInt(mResolver, Global.AUTOMATIC_POWER_SAVE_MODE,
+        Settings.Global.putInt(
+                mResolver,
+                Global.AUTOMATIC_POWER_SAVE_MODE,
                 PowerManager.POWER_SAVE_MODE_TRIGGER_DYNAMIC);
 
         mController.updateSeekBar();
@@ -95,7 +96,9 @@
     @Test
     public void updateSeekBar_percentageMode_hasCorrectProperties() {
         final CharSequence expectedTitle = "10%";
-        Settings.Global.putInt(mResolver, Global.AUTOMATIC_POWER_SAVE_MODE,
+        Settings.Global.putInt(
+                mResolver,
+                Global.AUTOMATIC_POWER_SAVE_MODE,
                 PowerManager.POWER_SAVE_MODE_TRIGGER_PERCENTAGE);
         setTriggerLevel(10);
 
@@ -108,7 +111,9 @@
 
     @Test
     public void updateSeekBar_noneMode_hasCorrectProperties() {
-        Settings.Global.putInt(mResolver, Global.AUTOMATIC_POWER_SAVE_MODE,
+        Settings.Global.putInt(
+                mResolver,
+                Global.AUTOMATIC_POWER_SAVE_MODE,
                 PowerManager.POWER_SAVE_MODE_TRIGGER_PERCENTAGE);
         setTriggerLevel(0);
 
@@ -120,7 +125,9 @@
 
     @Test
     public void addToScreen_addsToEnd() {
-        Settings.Global.putInt(mResolver, Global.AUTOMATIC_POWER_SAVE_MODE,
+        Settings.Global.putInt(
+                mResolver,
+                Global.AUTOMATIC_POWER_SAVE_MODE,
                 PowerManager.POWER_SAVE_MODE_TRIGGER_PERCENTAGE);
         setTriggerLevel(15);
 
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSettingsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSettingsTest.java
index dc9cac4..2138e64 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSettingsTest.java
@@ -1,6 +1,7 @@
 package com.android.settings.fuelgauge.batterysaver;
 
 import static com.google.common.truth.Truth.assertThat;
+
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.verifyNoMoreInteractions;
@@ -90,18 +91,25 @@
     }
 
     private void setSchedule(int scheduleType, int schedulePercentage) {
-        Settings.Global.putInt(mContext.getContentResolver(),
-                Settings.Global.AUTOMATIC_POWER_SAVE_MODE, scheduleType);
-        Settings.Global.putInt(mContext.getContentResolver(),
-                Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, schedulePercentage);
+        Settings.Global.putInt(
+                mContext.getContentResolver(),
+                Settings.Global.AUTOMATIC_POWER_SAVE_MODE,
+                scheduleType);
+        Settings.Global.putInt(
+                mContext.getContentResolver(),
+                Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL,
+                schedulePercentage);
     }
 
     private void verifySchedule(String scheduleTypeKey, int schedulePercentage) {
         waitAWhile();
-        verify(mMetricsFeatureProvider).action(SettingsEnums.FUELGAUGE_BATTERY_SAVER,
-                SettingsEnums.FIELD_BATTERY_SAVER_SCHEDULE_TYPE,
-                SettingsEnums.FIELD_BATTERY_SAVER_PERCENTAGE_VALUE,
-                scheduleTypeKey, schedulePercentage);
+        verify(mMetricsFeatureProvider)
+                .action(
+                        SettingsEnums.FUELGAUGE_BATTERY_SAVER,
+                        SettingsEnums.FIELD_BATTERY_SAVER_SCHEDULE_TYPE,
+                        SettingsEnums.FIELD_BATTERY_SAVER_PERCENTAGE_VALUE,
+                        scheduleTypeKey,
+                        schedulePercentage);
     }
 
     private void waitAWhile() {
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverSettingsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverSettingsTest.java
index c858902..84af4e1 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverSettingsTest.java
@@ -34,13 +34,13 @@
 import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = {
-        com.android.settings.testutils.shadow.ShadowFragment.class,
-})
+@Config(
+        shadows = {
+            com.android.settings.testutils.shadow.ShadowFragment.class,
+        })
 public class BatterySaverSettingsTest {
     BatterySaverSettings mFragment;
-    @Mock
-    PreferenceScreen mScreen;
+    @Mock PreferenceScreen mScreen;
 
     @Before
     public void setUp() {
@@ -50,7 +50,6 @@
         doReturn(mScreen).when(mFragment).getPreferenceScreen();
     }
 
-
     @Test
     public void setupFooter_linkAddedWhenAppropriate() {
         doReturn("").when(mFragment).getText(anyInt());
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/AnomalyCleanupJobServiceTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/AnomalyCleanupJobServiceTest.java
index 4c276ba..22c59b0 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/AnomalyCleanupJobServiceTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/AnomalyCleanupJobServiceTest.java
@@ -63,16 +63,15 @@
 
     private Context mContext;
     private JobScheduler mJobScheduler;
-    @Mock
-    private JobParameters mParams;
+    @Mock private JobParameters mParams;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
 
         mContext = spy(RuntimeEnvironment.application);
-        mJobScheduler = spy(new JobSchedulerImpl(mContext,
-                IJobScheduler.Stub.asInterface(new Binder())));
+        mJobScheduler =
+                spy(new JobSchedulerImpl(mContext, IJobScheduler.Stub.asInterface(new Binder())));
         when(mContext.getSystemService(JobScheduler.class)).thenReturn(mJobScheduler);
     }
 
@@ -108,25 +107,31 @@
     @Ignore
     public void onStartJob_cleanUpDataBefore30days() {
         final BatteryDatabaseManager databaseManager = BatteryDatabaseManager.getInstance(mContext);
-        final AnomalyCleanupJobService service = spy(Robolectric.setupService(
-                AnomalyCleanupJobService.class));
+        final AnomalyCleanupJobService service =
+                spy(Robolectric.setupService(AnomalyCleanupJobService.class));
         doNothing().when(service).jobFinished(any(), anyBoolean());
 
         // Insert two records, one is current and the other one is 31 days before
-        databaseManager.insertAnomaly(UID, PACKAGE_NAME, ANOMALY_TYPE,
-                AnomalyDatabaseHelper.State.NEW, TIMESTAMP_NOW);
-        databaseManager.insertAnomaly(UID, PACKAGE_NAME_OLD, ANOMALY_TYPE,
-                AnomalyDatabaseHelper.State.NEW, TIMESTAMP_31_DAYS_BEFORE);
+        databaseManager.insertAnomaly(
+                UID, PACKAGE_NAME, ANOMALY_TYPE, AnomalyDatabaseHelper.State.NEW, TIMESTAMP_NOW);
+        databaseManager.insertAnomaly(
+                UID,
+                PACKAGE_NAME_OLD,
+                ANOMALY_TYPE,
+                AnomalyDatabaseHelper.State.NEW,
+                TIMESTAMP_31_DAYS_BEFORE);
 
         service.onStartJob(mParams);
 
         // In database, it only contains the current record
-        final List<AppInfo> appInfos = databaseManager.queryAllAnomalies(0,
-                AnomalyDatabaseHelper.State.NEW);
-        assertThat(appInfos).containsExactly(new AppInfo.Builder()
-                .setUid(UID)
-                .setPackageName(PACKAGE_NAME)
-                .addAnomalyType(ANOMALY_TYPE)
-                .build());
+        final List<AppInfo> appInfos =
+                databaseManager.queryAllAnomalies(0, AnomalyDatabaseHelper.State.NEW);
+        assertThat(appInfos)
+                .containsExactly(
+                        new AppInfo.Builder()
+                                .setUid(UID)
+                                .setPackageName(PACKAGE_NAME)
+                                .addAnomalyType(ANOMALY_TYPE)
+                                .build());
     }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/AnomalyConfigJobServiceTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/AnomalyConfigJobServiceTest.java
index 3807be6..345b8a1 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/AnomalyConfigJobServiceTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/AnomalyConfigJobServiceTest.java
@@ -57,8 +57,7 @@
 
     private static final int ANOMALY_CONFIG_VERSION = 1;
     private static final String ANOMALY_CONFIG = "X64s";
-    @Mock
-    private StatsManager mStatsManager;
+    @Mock private StatsManager mStatsManager;
 
     private Context mContext;
     private JobScheduler mJobScheduler;
@@ -69,14 +68,16 @@
         MockitoAnnotations.initMocks(this);
 
         mContext = spy(RuntimeEnvironment.application);
-        mJobScheduler = spy(new JobSchedulerImpl(mContext,
-                IJobScheduler.Stub.asInterface(new Binder())));
+        mJobScheduler =
+                spy(new JobSchedulerImpl(mContext, IJobScheduler.Stub.asInterface(new Binder())));
         when(mContext.getSystemService(JobScheduler.class)).thenReturn(mJobScheduler);
 
         mJobService = spy(new AnomalyConfigJobService());
-        doReturn(application.getSharedPreferences(AnomalyConfigJobService.PREF_DB,
-                Context.MODE_PRIVATE)).when(mJobService).getSharedPreferences(anyString(),
-                anyInt());
+        doReturn(
+                        application.getSharedPreferences(
+                                AnomalyConfigJobService.PREF_DB, Context.MODE_PRIVATE))
+                .when(mJobService)
+                .getSharedPreferences(anyString(), anyInt());
         doReturn(application.getContentResolver()).when(mJobService).getContentResolver();
     }
 
@@ -105,11 +106,13 @@
 
     @Test
     public void checkAnomalyConfig_newConfigExist_removeOldConfig()
-            throws StatsManager.StatsUnavailableException{
-        Settings.Global.putInt(application.getContentResolver(),
-                Settings.Global.ANOMALY_CONFIG_VERSION, ANOMALY_CONFIG_VERSION);
-        Settings.Global.putString(application.getContentResolver(), Settings.Global.ANOMALY_CONFIG,
-                ANOMALY_CONFIG);
+            throws StatsManager.StatsUnavailableException {
+        Settings.Global.putInt(
+                application.getContentResolver(),
+                Settings.Global.ANOMALY_CONFIG_VERSION,
+                ANOMALY_CONFIG_VERSION);
+        Settings.Global.putString(
+                application.getContentResolver(), Settings.Global.ANOMALY_CONFIG, ANOMALY_CONFIG);
 
         mJobService.checkAnomalyConfig(mStatsManager);
 
@@ -118,11 +121,13 @@
 
     @Test
     public void checkAnomalyConfig_newConfigExist_uploadNewConfig()
-            throws StatsManager.StatsUnavailableException{
-        Settings.Global.putInt(application.getContentResolver(),
-                Settings.Global.ANOMALY_CONFIG_VERSION, ANOMALY_CONFIG_VERSION);
-        Settings.Global.putString(application.getContentResolver(), Settings.Global.ANOMALY_CONFIG,
-                ANOMALY_CONFIG);
+            throws StatsManager.StatsUnavailableException {
+        Settings.Global.putInt(
+                application.getContentResolver(),
+                Settings.Global.ANOMALY_CONFIG_VERSION,
+                ANOMALY_CONFIG_VERSION);
+        Settings.Global.putString(
+                application.getContentResolver(), Settings.Global.ANOMALY_CONFIG, ANOMALY_CONFIG);
 
         mJobService.checkAnomalyConfig(mStatsManager);
 
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/AnomalyDetectionJobServiceTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/AnomalyDetectionJobServiceTest.java
index 1c37d31..a67e5d3 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/AnomalyDetectionJobServiceTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/AnomalyDetectionJobServiceTest.java
@@ -86,20 +86,13 @@
             "anomaly_type=6,auto_restriction=false";
     private static final int ANOMALY_TYPE = 6;
     private static final long VERSION_CODE = 15;
-    @Mock
-    private UserManager mUserManager;
-    @Mock
-    private BatteryDatabaseManager mBatteryDatabaseManager;
-    @Mock
-    private BatteryUtils mBatteryUtils;
-    @Mock
-    private PowerAllowlistBackend mPowerAllowlistBackend;
-    @Mock
-    private StatsDimensionsValue mStatsDimensionsValue;
-    @Mock
-    private JobParameters mJobParameters;
-    @Mock
-    private JobWorkItem mJobWorkItem;
+    @Mock private UserManager mUserManager;
+    @Mock private BatteryDatabaseManager mBatteryDatabaseManager;
+    @Mock private BatteryUtils mBatteryUtils;
+    @Mock private PowerAllowlistBackend mPowerAllowlistBackend;
+    @Mock private StatsDimensionsValue mStatsDimensionsValue;
+    @Mock private JobParameters mJobParameters;
+    @Mock private JobWorkItem mJobWorkItem;
 
     private BatteryTipPolicy mPolicy;
     private Bundle mBundle;
@@ -113,8 +106,8 @@
         MockitoAnnotations.initMocks(this);
 
         mContext = spy(RuntimeEnvironment.application);
-        mJobScheduler = spy(new JobSchedulerImpl(mContext,
-                IJobScheduler.Stub.asInterface(new Binder())));
+        mJobScheduler =
+                spy(new JobSchedulerImpl(mContext, IJobScheduler.Stub.asInterface(new Binder())));
         when(mContext.getSystemService(JobScheduler.class)).thenReturn(mJobScheduler);
 
         mPolicy = new BatteryTipPolicy(mContext);
@@ -146,17 +139,24 @@
     @Test
     public void saveAnomalyToDatabase_systemAllowlisted_doNotSave() {
         doReturn(UID).when(mAnomalyDetectionJobService).extractUidFromStatsDimensionsValue(any());
-        doReturn(true).when(mPowerAllowlistBackend)
+        doReturn(true)
+                .when(mPowerAllowlistBackend)
                 .isAllowlisted(any(String[].class), any(Integer.class));
 
-        mAnomalyDetectionJobService.saveAnomalyToDatabase(mContext,
-                mUserManager, mBatteryDatabaseManager, mBatteryUtils, mPolicy,
-                mPowerAllowlistBackend, mContext.getContentResolver(),
+        mAnomalyDetectionJobService.saveAnomalyToDatabase(
+                mContext,
+                mUserManager,
+                mBatteryDatabaseManager,
+                mBatteryUtils,
+                mPolicy,
+                mPowerAllowlistBackend,
+                mContext.getContentResolver(),
                 mFeatureFactory.powerUsageFeatureProvider,
-                mFeatureFactory.metricsFeatureProvider, mBundle);
+                mFeatureFactory.metricsFeatureProvider,
+                mBundle);
 
-        verify(mBatteryDatabaseManager, never()).insertAnomaly(anyInt(), anyString(), anyInt(),
-                anyInt(), anyLong());
+        verify(mBatteryDatabaseManager, never())
+                .insertAnomaly(anyInt(), anyString(), anyInt(), anyInt(), anyLong());
     }
 
     @Test
@@ -166,53 +166,76 @@
         mBundle.putStringArrayList(StatsManager.EXTRA_STATS_BROADCAST_SUBSCRIBER_COOKIES, cookies);
         doReturn(SYSTEM_PACKAGE).when(mBatteryUtils).getPackageName(anyInt());
         doReturn(false).when(mPowerAllowlistBackend).isSysAllowlisted(SYSTEM_PACKAGE);
-        doReturn(Process.FIRST_APPLICATION_UID).when(
-                mAnomalyDetectionJobService).extractUidFromStatsDimensionsValue(any());
+        doReturn(Process.FIRST_APPLICATION_UID)
+                .when(mAnomalyDetectionJobService)
+                .extractUidFromStatsDimensionsValue(any());
         doReturn(true).when(mBatteryUtils).shouldHideAnomaly(any(), anyInt(), any());
 
-        mAnomalyDetectionJobService.saveAnomalyToDatabase(mContext,
-                mUserManager, mBatteryDatabaseManager, mBatteryUtils, mPolicy,
-                mPowerAllowlistBackend, mContext.getContentResolver(),
+        mAnomalyDetectionJobService.saveAnomalyToDatabase(
+                mContext,
+                mUserManager,
+                mBatteryDatabaseManager,
+                mBatteryUtils,
+                mPolicy,
+                mPowerAllowlistBackend,
+                mContext.getContentResolver(),
                 mFeatureFactory.powerUsageFeatureProvider,
-                mFeatureFactory.metricsFeatureProvider, mBundle);
+                mFeatureFactory.metricsFeatureProvider,
+                mBundle);
 
-        verify(mBatteryDatabaseManager, never()).insertAnomaly(anyInt(), anyString(), anyInt(),
-                anyInt(), anyLong());
-        verify(mFeatureFactory.metricsFeatureProvider).action(SettingsEnums.PAGE_UNKNOWN,
-                MetricsProto.MetricsEvent.ACTION_ANOMALY_IGNORED,
-                SettingsEnums.PAGE_UNKNOWN,
-                SYSTEM_PACKAGE + "/" + VERSION_CODE,
-                 ANOMALY_TYPE);
+        verify(mBatteryDatabaseManager, never())
+                .insertAnomaly(anyInt(), anyString(), anyInt(), anyInt(), anyLong());
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        SettingsEnums.PAGE_UNKNOWN,
+                        MetricsProto.MetricsEvent.ACTION_ANOMALY_IGNORED,
+                        SettingsEnums.PAGE_UNKNOWN,
+                        SYSTEM_PACKAGE + "/" + VERSION_CODE,
+                        ANOMALY_TYPE);
     }
 
     @Test
     public void saveAnomalyToDatabase_systemUid_doNotSave() {
-        doReturn(Process.SYSTEM_UID).when(
-                mAnomalyDetectionJobService).extractUidFromStatsDimensionsValue(any());
+        doReturn(Process.SYSTEM_UID)
+                .when(mAnomalyDetectionJobService)
+                .extractUidFromStatsDimensionsValue(any());
 
-        mAnomalyDetectionJobService.saveAnomalyToDatabase(mContext,
-                mUserManager, mBatteryDatabaseManager, mBatteryUtils, mPolicy,
-                mPowerAllowlistBackend, mContext.getContentResolver(),
-                mFeatureFactory.powerUsageFeatureProvider, mFeatureFactory.metricsFeatureProvider,
+        mAnomalyDetectionJobService.saveAnomalyToDatabase(
+                mContext,
+                mUserManager,
+                mBatteryDatabaseManager,
+                mBatteryUtils,
+                mPolicy,
+                mPowerAllowlistBackend,
+                mContext.getContentResolver(),
+                mFeatureFactory.powerUsageFeatureProvider,
+                mFeatureFactory.metricsFeatureProvider,
                 mBundle);
 
-        verify(mBatteryDatabaseManager, never()).insertAnomaly(anyInt(), anyString(), anyInt(),
-                anyInt(), anyLong());
+        verify(mBatteryDatabaseManager, never())
+                .insertAnomaly(anyInt(), anyString(), anyInt(), anyInt(), anyLong());
     }
 
     @Test
     public void saveAnomalyToDatabase_uidNull_doNotSave() {
-        doReturn(AnomalyDetectionJobService.UID_NULL).when(
-                mAnomalyDetectionJobService).extractUidFromStatsDimensionsValue(any());
+        doReturn(AnomalyDetectionJobService.UID_NULL)
+                .when(mAnomalyDetectionJobService)
+                .extractUidFromStatsDimensionsValue(any());
 
-        mAnomalyDetectionJobService.saveAnomalyToDatabase(mContext,
-                mUserManager, mBatteryDatabaseManager, mBatteryUtils, mPolicy,
-                mPowerAllowlistBackend, mContext.getContentResolver(),
-                mFeatureFactory.powerUsageFeatureProvider, mFeatureFactory.metricsFeatureProvider,
+        mAnomalyDetectionJobService.saveAnomalyToDatabase(
+                mContext,
+                mUserManager,
+                mBatteryDatabaseManager,
+                mBatteryUtils,
+                mPolicy,
+                mPowerAllowlistBackend,
+                mContext.getContentResolver(),
+                mFeatureFactory.powerUsageFeatureProvider,
+                mFeatureFactory.metricsFeatureProvider,
                 mBundle);
 
-        verify(mBatteryDatabaseManager, never()).insertAnomaly(anyInt(), anyString(), anyInt(),
-                anyInt(), anyLong());
+        verify(mBatteryDatabaseManager, never())
+                .insertAnomaly(anyInt(), anyString(), anyInt(), anyInt(), anyLong());
     }
 
     @Test
@@ -222,22 +245,36 @@
         mBundle.putStringArrayList(StatsManager.EXTRA_STATS_BROADCAST_SUBSCRIBER_COOKIES, cookies);
         doReturn(SYSTEM_PACKAGE).when(mBatteryUtils).getPackageName(anyInt());
         doReturn(false).when(mPowerAllowlistBackend).isSysAllowlisted(SYSTEM_PACKAGE);
-        doReturn(Process.FIRST_APPLICATION_UID).when(
-                mAnomalyDetectionJobService).extractUidFromStatsDimensionsValue(any());
+        doReturn(Process.FIRST_APPLICATION_UID)
+                .when(mAnomalyDetectionJobService)
+                .extractUidFromStatsDimensionsValue(any());
 
-        mAnomalyDetectionJobService.saveAnomalyToDatabase(mContext,
-                mUserManager, mBatteryDatabaseManager, mBatteryUtils, mPolicy,
-                mPowerAllowlistBackend, mContext.getContentResolver(),
-                mFeatureFactory.powerUsageFeatureProvider, mFeatureFactory.metricsFeatureProvider,
+        mAnomalyDetectionJobService.saveAnomalyToDatabase(
+                mContext,
+                mUserManager,
+                mBatteryDatabaseManager,
+                mBatteryUtils,
+                mPolicy,
+                mPowerAllowlistBackend,
+                mContext.getContentResolver(),
+                mFeatureFactory.powerUsageFeatureProvider,
+                mFeatureFactory.metricsFeatureProvider,
                 mBundle);
 
-        verify(mBatteryDatabaseManager).insertAnomaly(anyInt(), anyString(), eq(6),
-                eq(AnomalyDatabaseHelper.State.AUTO_HANDLED), anyLong());
-        verify(mFeatureFactory.metricsFeatureProvider).action(SettingsEnums.PAGE_UNKNOWN,
-                MetricsProto.MetricsEvent.ACTION_ANOMALY_TRIGGERED,
-                SettingsEnums.PAGE_UNKNOWN,
-                SYSTEM_PACKAGE + "/" + VERSION_CODE,
-                ANOMALY_TYPE);
+        verify(mBatteryDatabaseManager)
+                .insertAnomaly(
+                        anyInt(),
+                        anyString(),
+                        eq(6),
+                        eq(AnomalyDatabaseHelper.State.AUTO_HANDLED),
+                        anyLong());
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        SettingsEnums.PAGE_UNKNOWN,
+                        MetricsProto.MetricsEvent.ACTION_ANOMALY_TRIGGERED,
+                        SettingsEnums.PAGE_UNKNOWN,
+                        SYSTEM_PACKAGE + "/" + VERSION_CODE,
+                        ANOMALY_TYPE);
     }
 
     @Test
@@ -247,22 +284,36 @@
         mBundle.putStringArrayList(StatsManager.EXTRA_STATS_BROADCAST_SUBSCRIBER_COOKIES, cookies);
         doReturn(SYSTEM_PACKAGE).when(mBatteryUtils).getPackageName(anyInt());
         doReturn(false).when(mPowerAllowlistBackend).isSysAllowlisted(SYSTEM_PACKAGE);
-        doReturn(Process.FIRST_APPLICATION_UID).when(
-                mAnomalyDetectionJobService).extractUidFromStatsDimensionsValue(any());
+        doReturn(Process.FIRST_APPLICATION_UID)
+                .when(mAnomalyDetectionJobService)
+                .extractUidFromStatsDimensionsValue(any());
 
-        mAnomalyDetectionJobService.saveAnomalyToDatabase(mContext,
-                mUserManager, mBatteryDatabaseManager, mBatteryUtils, mPolicy,
-                mPowerAllowlistBackend, mContext.getContentResolver(),
-                mFeatureFactory.powerUsageFeatureProvider, mFeatureFactory.metricsFeatureProvider,
+        mAnomalyDetectionJobService.saveAnomalyToDatabase(
+                mContext,
+                mUserManager,
+                mBatteryDatabaseManager,
+                mBatteryUtils,
+                mPolicy,
+                mPowerAllowlistBackend,
+                mContext.getContentResolver(),
+                mFeatureFactory.powerUsageFeatureProvider,
+                mFeatureFactory.metricsFeatureProvider,
                 mBundle);
 
-        verify(mBatteryDatabaseManager).insertAnomaly(anyInt(), anyString(), eq(6),
-                eq(AnomalyDatabaseHelper.State.NEW), anyLong());
-        verify(mFeatureFactory.metricsFeatureProvider).action(SettingsEnums.PAGE_UNKNOWN,
-                MetricsProto.MetricsEvent.ACTION_ANOMALY_TRIGGERED,
-                SettingsEnums.PAGE_UNKNOWN,
-                SYSTEM_PACKAGE + "/" + VERSION_CODE,
-                ANOMALY_TYPE);
+        verify(mBatteryDatabaseManager)
+                .insertAnomaly(
+                        anyInt(),
+                        anyString(),
+                        eq(6),
+                        eq(AnomalyDatabaseHelper.State.NEW),
+                        anyLong());
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        SettingsEnums.PAGE_UNKNOWN,
+                        MetricsProto.MetricsEvent.ACTION_ANOMALY_TRIGGERED,
+                        SettingsEnums.PAGE_UNKNOWN,
+                        SYSTEM_PACKAGE + "/" + VERSION_CODE,
+                        ANOMALY_TYPE);
     }
 
     @Test
@@ -280,8 +331,8 @@
         statsDimensionsValues.add(intValue);
         when(tupleValue.getTupleValueList()).thenReturn(statsDimensionsValues);
 
-        assertThat(mAnomalyDetectionJobService.extractUidFromStatsDimensionsValue(
-                tupleValue)).isEqualTo(UID);
+        assertThat(mAnomalyDetectionJobService.extractUidFromStatsDimensionsValue(tupleValue))
+                .isEqualTo(UID);
     }
 
     @Test
@@ -292,8 +343,8 @@
         when(floatValue.getField()).thenReturn(AnomalyDetectionJobService.STATSD_UID_FILED);
         when(floatValue.getFloatValue()).thenReturn(0f);
 
-        assertThat(mAnomalyDetectionJobService.extractUidFromStatsDimensionsValue(
-                floatValue)).isEqualTo(AnomalyDetectionJobService.UID_NULL);
+        assertThat(mAnomalyDetectionJobService.extractUidFromStatsDimensionsValue(floatValue))
+                .isEqualTo(AnomalyDetectionJobService.UID_NULL);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragmentTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragmentTest.java
index 58bc061..f080574 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragmentTest.java
@@ -18,7 +18,6 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.spy;
 
 import android.content.Context;
@@ -39,7 +38,6 @@
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
 import com.android.settings.testutils.shadow.ShadowUtils;
-import com.android.settingslib.fuelgauge.EstimateKt;
 
 import org.junit.After;
 import org.junit.Before;
@@ -98,20 +96,21 @@
         mPackageManager.setApplicationIcon(PACKAGE_NAME, new ColorDrawable());
 
         List<AppInfo> highUsageTips = new ArrayList<>();
-        mAppInfo = new AppInfo.Builder()
-                .setScreenOnTimeMs(SCREEN_TIME_MS)
-                .setPackageName(PACKAGE_NAME)
-                .build();
+        mAppInfo =
+                new AppInfo.Builder()
+                        .setScreenOnTimeMs(SCREEN_TIME_MS)
+                        .setPackageName(PACKAGE_NAME)
+                        .build();
         highUsageTips.add(mAppInfo);
         mHighUsageTip = new HighUsageTip(SCREEN_TIME_MS, highUsageTips);
 
         final List<AppInfo> restrictApps = new ArrayList<>();
         restrictApps.add(mAppInfo);
-        mRestrictedOneAppTip = new RestrictAppTip(BatteryTip.StateType.NEW,
-                new ArrayList<>(restrictApps));
+        mRestrictedOneAppTip =
+                new RestrictAppTip(BatteryTip.StateType.NEW, new ArrayList<>(restrictApps));
         restrictApps.add(mAppInfo);
-        mRestrictTwoAppsTip = new RestrictAppTip(BatteryTip.StateType.NEW,
-                new ArrayList<>(restrictApps));
+        mRestrictTwoAppsTip =
+                new RestrictAppTip(BatteryTip.StateType.NEW, new ArrayList<>(restrictApps));
 
         mUnrestrictAppTip = new UnrestrictAppTip(BatteryTip.StateType.NEW, mAppInfo);
         mDefenderTip = new BatteryDefenderTip(BatteryTip.StateType.NEW, false /* isPluggedIn */);
@@ -128,24 +127,30 @@
 
         mDialogFragment = BatteryTipDialogFragment.newInstance(mHighUsageTip, METRICS_KEY);
 
-        FragmentController.setupFragment(mDialogFragment, FragmentActivity.class,
-                0 /* containerViewId */, null /* bundle */);
+        FragmentController.setupFragment(
+                mDialogFragment,
+                FragmentActivity.class,
+                0 /* containerViewId */,
+                null /* bundle */);
 
         Robolectric.getForegroundThreadScheduler().advanceToLastPostedRunnable();
 
         final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
         ShadowAlertDialogCompat shadowDialog = ShadowAlertDialogCompat.shadowOf(dialog);
 
-        assertThat(shadowDialog.getMessage()).isEqualTo(
-                mContext.getString(R.string.battery_tip_dialog_message, 1));
+        assertThat(shadowDialog.getMessage())
+                .isEqualTo(mContext.getString(R.string.battery_tip_dialog_message, 1));
     }
 
     @Test
     public void testOnCreateDialog_restrictOneAppTip_fireRestrictOneAppDialog() {
         mDialogFragment = BatteryTipDialogFragment.newInstance(mRestrictedOneAppTip, METRICS_KEY);
 
-        FragmentController.setupFragment(mDialogFragment, FragmentActivity.class,
-                0 /* containerViewId */, null /* bundle */);
+        FragmentController.setupFragment(
+                mDialogFragment,
+                FragmentActivity.class,
+                0 /* containerViewId */,
+                null /* bundle */);
 
         final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
         ShadowAlertDialogCompat shadowDialog = ShadowAlertDialogCompat.shadowOf(dialog);
@@ -163,9 +168,11 @@
 
         mDialogFragment = BatteryTipDialogFragment.newInstance(mRestrictTwoAppsTip, METRICS_KEY);
 
-
-        FragmentController.setupFragment(mDialogFragment, FragmentActivity.class,
-                0 /* containerViewId */, null /* bundle */);
+        FragmentController.setupFragment(
+                mDialogFragment,
+                FragmentActivity.class,
+                0 /* containerViewId */,
+                null /* bundle */);
 
         Robolectric.getForegroundThreadScheduler().advanceToLastPostedRunnable();
 
@@ -189,13 +196,16 @@
         for (int i = 0; i < 6; i++) {
             appInfos.add(mAppInfo);
         }
-        final RestrictAppTip restrictSixAppsTip = new RestrictAppTip(BatteryTip.StateType.NEW,
-                appInfos);
+        final RestrictAppTip restrictSixAppsTip =
+                new RestrictAppTip(BatteryTip.StateType.NEW, appInfos);
 
         mDialogFragment = BatteryTipDialogFragment.newInstance(restrictSixAppsTip, METRICS_KEY);
 
-        FragmentController.setupFragment(mDialogFragment, FragmentActivity.class,
-                0 /* containerViewId */, null /* bundle */);
+        FragmentController.setupFragment(
+                mDialogFragment,
+                FragmentActivity.class,
+                0 /* containerViewId */,
+                null /* bundle */);
 
         Robolectric.getForegroundThreadScheduler().advanceToLastPostedRunnable();
 
@@ -215,8 +225,11 @@
         mDialogFragment = BatteryTipDialogFragment.newInstance(mUnrestrictAppTip, METRICS_KEY);
         ShadowUtils.setApplicationLabel(PACKAGE_NAME, DISPLAY_NAME);
 
-        FragmentController.setupFragment(mDialogFragment, FragmentActivity.class,
-                0 /* containerViewId */, null /* bundle */);
+        FragmentController.setupFragment(
+                mDialogFragment,
+                FragmentActivity.class,
+                0 /* containerViewId */,
+                null /* bundle */);
 
         final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
         ShadowAlertDialogCompat shadowDialog = ShadowAlertDialogCompat.shadowOf(dialog);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoaderTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoaderTest.java
index e13dcc0..5613c4e 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoaderTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoaderTest.java
@@ -50,21 +50,20 @@
 public class BatteryTipLoaderTest {
 
     private static final int[] TIP_ORDER = {
-            BatteryTip.TipType.LOW_BATTERY,
-            BatteryTip.TipType.BATTERY_DEFENDER,
-            BatteryTip.TipType.DOCK_DEFENDER,
-            BatteryTip.TipType.INCOMPATIBLE_CHARGER,
-            BatteryTip.TipType.HIGH_DEVICE_USAGE};
+        BatteryTip.TipType.LOW_BATTERY,
+        BatteryTip.TipType.BATTERY_DEFENDER,
+        BatteryTip.TipType.DOCK_DEFENDER,
+        BatteryTip.TipType.INCOMPATIBLE_CHARGER,
+        BatteryTip.TipType.HIGH_DEVICE_USAGE
+    };
+
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private BatteryUsageStats mBatteryUsageStats;
-    @Mock
-    private PowerManager mPowerManager;
-    @Mock
-    private Intent mIntent;
-    @Mock
-    private BatteryUtils mBatteryUtils;
-    @Mock
-    private BatteryInfo mBatteryInfo;
+
+    @Mock private PowerManager mPowerManager;
+    @Mock private Intent mIntent;
+    @Mock private BatteryUtils mBatteryUtils;
+    @Mock private BatteryInfo mBatteryInfo;
     private Context mContext;
     private BatteryTipLoader mBatteryTipLoader;
 
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceControllerTest.java
index 1c1d2cc..eeedccc 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceControllerTest.java
@@ -15,8 +15,7 @@
  */
 package com.android.settings.fuelgauge.batterytip;
 
-import static com.android.settings.fuelgauge.batterytip.tips.BatteryTip.TipType
-        .SMART_BATTERY_MANAGER;
+import static com.android.settings.fuelgauge.batterytip.tips.BatteryTip.TipType.SMART_BATTERY_MANAGER;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -31,8 +30,6 @@
 
 import androidx.preference.PreferenceScreen;
 
-import com.android.internal.logging.nano.MetricsProto;
-import com.android.settings.R;
 import com.android.settings.SettingsActivity;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.core.InstrumentedPreferenceFragment;
@@ -58,16 +55,11 @@
     private static final String KEY_TIP = "key_battery_tip";
     private static final long AVERAGE_TIME_MS = DateUtils.HOUR_IN_MILLIS;
 
-    @Mock
-    private BatteryTipPreferenceController.BatteryTipListener mBatteryTipListener;
-    @Mock
-    private PreferenceScreen mPreferenceScreen;
-    @Mock
-    private BatteryTip mBatteryTip;
-    @Mock
-    private SettingsActivity mSettingsActivity;
-    @Mock
-    private InstrumentedPreferenceFragment mFragment;
+    @Mock private BatteryTipPreferenceController.BatteryTipListener mBatteryTipListener;
+    @Mock private PreferenceScreen mPreferenceScreen;
+    @Mock private BatteryTip mBatteryTip;
+    @Mock private SettingsActivity mSettingsActivity;
+    @Mock private InstrumentedPreferenceFragment mFragment;
 
     private Context mContext;
     private CardPreference mCardPreference;
@@ -147,13 +139,13 @@
 
     @Test
     public void getAvailabilityStatus_returnAvailableUnsearchable() {
-        assertThat(mBatteryTipPreferenceController.getAvailabilityStatus()).isEqualTo(
-                BasePreferenceController.AVAILABLE_UNSEARCHABLE);
+        assertThat(mBatteryTipPreferenceController.getAvailabilityStatus())
+                .isEqualTo(BasePreferenceController.AVAILABLE_UNSEARCHABLE);
     }
 
     private BatteryTipPreferenceController buildBatteryTipPreferenceController() {
-        final BatteryTipPreferenceController controller = new BatteryTipPreferenceController(
-                mContext, KEY_PREF);
+        final BatteryTipPreferenceController controller =
+                new BatteryTipPreferenceController(mContext, KEY_PREF);
         controller.setActivity(mSettingsActivity);
         controller.setFragment(mFragment);
         controller.setBatteryTipListener(mBatteryTipListener);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipUtilsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipUtilsTest.java
index e4f286d..82a850e 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipUtilsTest.java
@@ -45,10 +45,8 @@
 @RunWith(RobolectricTestRunner.class)
 public class BatteryTipUtilsTest {
 
-    @Mock
-    private SettingsActivity mSettingsActivity;
-    @Mock
-    private InstrumentedPreferenceFragment mFragment;
+    @Mock private SettingsActivity mSettingsActivity;
+    @Mock private InstrumentedPreferenceFragment mFragment;
     private RestrictAppTip mRestrictAppTip;
     private LowBatteryTip mLowBatteryTip;
     private BatteryDefenderTip mBatteryDefenderTip;
@@ -61,42 +59,49 @@
         when(mSettingsActivity.getApplicationContext()).thenReturn(RuntimeEnvironment.application);
         when(mFragment.getContext()).thenReturn(RuntimeEnvironment.application);
         mRestrictAppTip = spy(new RestrictAppTip(BatteryTip.StateType.NEW, new ArrayList<>()));
-        mLowBatteryTip = spy(
-                new LowBatteryTip(BatteryTip.StateType.NEW, false /* powerSaveModeOn */));
-        mBatteryDefenderTip = spy(new BatteryDefenderTip(BatteryTip.StateType.NEW,
-                false /* isPluggedIn */));
+        mLowBatteryTip =
+                spy(new LowBatteryTip(BatteryTip.StateType.NEW, false /* powerSaveModeOn */));
+        mBatteryDefenderTip =
+                spy(new BatteryDefenderTip(BatteryTip.StateType.NEW, false /* isPluggedIn */));
     }
 
     @Test
     public void testGetActionForBatteryTip_typeRestrictStateNew_returnActionRestrict() {
         when(mRestrictAppTip.getState()).thenReturn(BatteryTip.StateType.NEW);
 
-        assertThat(BatteryTipUtils.getActionForBatteryTip(mRestrictAppTip, mSettingsActivity,
-                mFragment)).isInstanceOf(RestrictAppAction.class);
+        assertThat(
+                        BatteryTipUtils.getActionForBatteryTip(
+                                mRestrictAppTip, mSettingsActivity, mFragment))
+                .isInstanceOf(RestrictAppAction.class);
     }
 
     @Test
     public void testGetActionForBatteryTip_typeRestrictStateHandled_returnActionOpen() {
         when(mRestrictAppTip.getState()).thenReturn(BatteryTip.StateType.HANDLED);
 
-        assertThat(BatteryTipUtils.getActionForBatteryTip(mRestrictAppTip, mSettingsActivity,
-                mFragment)).isInstanceOf(OpenRestrictAppFragmentAction.class);
+        assertThat(
+                        BatteryTipUtils.getActionForBatteryTip(
+                                mRestrictAppTip, mSettingsActivity, mFragment))
+                .isInstanceOf(OpenRestrictAppFragmentAction.class);
     }
 
     @Test
     public void testGetActionForBatteryTip_typeLowBatteryStateNew_returnActionOpen() {
         when(mLowBatteryTip.getState()).thenReturn(BatteryTip.StateType.NEW);
 
-        assertThat(BatteryTipUtils.getActionForBatteryTip(mLowBatteryTip, mSettingsActivity,
-                mFragment)).isInstanceOf(OpenBatterySaverAction.class);
+        assertThat(
+                        BatteryTipUtils.getActionForBatteryTip(
+                                mLowBatteryTip, mSettingsActivity, mFragment))
+                .isInstanceOf(OpenBatterySaverAction.class);
     }
 
     @Test
-    public void
-            testGetActionForBatteryTip_typeBatteryDefenderStateNew_returnNullAction() {
+    public void testGetActionForBatteryTip_typeBatteryDefenderStateNew_returnNullAction() {
         when(mBatteryDefenderTip.getState()).thenReturn(BatteryTip.StateType.NEW);
 
-        assertThat(BatteryTipUtils.getActionForBatteryTip(mBatteryDefenderTip, mSettingsActivity,
-                mFragment)).isNull();
+        assertThat(
+                        BatteryTipUtils.getActionForBatteryTip(
+                                mBatteryDefenderTip, mSettingsActivity, mFragment))
+                .isNull();
     }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/HighUsageDataParserTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/HighUsageDataParserTest.java
index a0e205d..0310225 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/HighUsageDataParserTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/HighUsageDataParserTest.java
@@ -24,9 +24,9 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 
 import java.time.Duration;
-import org.robolectric.RobolectricTestRunner;
 
 @RunWith(RobolectricTestRunner.class)
 public class HighUsageDataParserTest {
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/actions/OpenRestrictAppFragmentActionTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/actions/OpenRestrictAppFragmentActionTest.java
index 71202df..e5ada76 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/actions/OpenRestrictAppFragmentActionTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/actions/OpenRestrictAppFragmentActionTest.java
@@ -39,10 +39,10 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
 
 import java.util.ArrayList;
 import java.util.List;
-import org.robolectric.RobolectricTestRunner;
 
 @RunWith(RobolectricTestRunner.class)
 public class OpenRestrictAppFragmentActionTest {
@@ -53,10 +53,8 @@
     private static final int ANOMALY_BT = 1;
     private static final int METRICS_KEY = 1;
 
-    @Mock
-    private InstrumentedPreferenceFragment mFragment;
-    @Mock
-    private BatteryDatabaseManager mBatteryDatabaseManager;
+    @Mock private InstrumentedPreferenceFragment mFragment;
+    @Mock private BatteryDatabaseManager mBatteryDatabaseManager;
     private OpenRestrictAppFragmentAction mAction;
     private FakeFeatureFactory mFeatureFactory;
     private Context mContext;
@@ -67,19 +65,22 @@
         MockitoAnnotations.initMocks(this);
         mContext = ApplicationProvider.getApplicationContext();
         mAppInfos = new ArrayList<>();
-        mAppInfos.add(new AppInfo.Builder()
-                .setPackageName(PACKAGE_NAME_1)
-                .addAnomalyType(ANOMALY_BT)
-                .build());
-        mAppInfos.add(new AppInfo.Builder()
-                .setPackageName(PACKAGE_NAME_2)
-                .addAnomalyType(ANOMALY_WAKEUP)
-                .build());
+        mAppInfos.add(
+                new AppInfo.Builder()
+                        .setPackageName(PACKAGE_NAME_1)
+                        .addAnomalyType(ANOMALY_BT)
+                        .build());
+        mAppInfos.add(
+                new AppInfo.Builder()
+                        .setPackageName(PACKAGE_NAME_2)
+                        .addAnomalyType(ANOMALY_WAKEUP)
+                        .build());
         mFeatureFactory = FakeFeatureFactory.setupForTest();
         when(mFragment.getContext()).thenReturn(mContext);
 
-        mAction = new OpenRestrictAppFragmentAction(mFragment,
-                new RestrictAppTip(BatteryTip.StateType.HANDLED, mAppInfos));
+        mAction =
+                new OpenRestrictAppFragmentAction(
+                        mFragment, new RestrictAppTip(BatteryTip.StateType.HANDLED, mAppInfos));
         mAction.mBatteryDatabaseManager = mBatteryDatabaseManager;
     }
 
@@ -93,9 +94,12 @@
     public void testHandlePositiveAction() {
         mAction.handlePositiveAction(METRICS_KEY);
 
-        verify(mFeatureFactory.metricsFeatureProvider).action(mContext,
-                MetricsProto.MetricsEvent.ACTION_TIP_OPEN_APP_RESTRICTION_PAGE, METRICS_KEY);
-        verify(mBatteryDatabaseManager).updateAnomalies(mAppInfos,
-                AnomalyDatabaseHelper.State.HANDLED);
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        mContext,
+                        MetricsProto.MetricsEvent.ACTION_TIP_OPEN_APP_RESTRICTION_PAGE,
+                        METRICS_KEY);
+        verify(mBatteryDatabaseManager)
+                .updateAnomalies(mAppInfos, AnomalyDatabaseHelper.State.HANDLED);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/actions/RestrictAppActionTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/actions/RestrictAppActionTest.java
index 121348a..19e3442 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/actions/RestrictAppActionTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/actions/RestrictAppActionTest.java
@@ -52,8 +52,7 @@
     private static final int ANOMALY_BT = 1;
     private static final int METRICS_KEY = 1;
 
-    @Mock
-    private BatteryUtils mBatteryUtils;
+    @Mock private BatteryUtils mBatteryUtils;
     private RestrictAppAction mRestrictAppAction;
     private FakeFeatureFactory mFeatureFactory;
 
@@ -62,20 +61,20 @@
         MockitoAnnotations.initMocks(this);
 
         final List<AppInfo> mAppInfos = new ArrayList<>();
-        mAppInfos.add(new AppInfo.Builder()
-                .setUid(UID_1)
-                .setPackageName(PACKAGE_NAME_1)
-                .build());
-        mAppInfos.add(new AppInfo.Builder()
-                .setUid(UID_2)
-                .setPackageName(PACKAGE_NAME_2)
-                .addAnomalyType(ANOMALY_BT)
-                .addAnomalyType(ANOMALY_WAKEUP)
-                .build());
+        mAppInfos.add(new AppInfo.Builder().setUid(UID_1).setPackageName(PACKAGE_NAME_1).build());
+        mAppInfos.add(
+                new AppInfo.Builder()
+                        .setUid(UID_2)
+                        .setPackageName(PACKAGE_NAME_2)
+                        .addAnomalyType(ANOMALY_BT)
+                        .addAnomalyType(ANOMALY_WAKEUP)
+                        .build());
         mFeatureFactory = FakeFeatureFactory.setupForTest();
 
-        mRestrictAppAction = new RestrictAppAction(RuntimeEnvironment.application,
-                new RestrictAppTip(BatteryTip.StateType.NEW, mAppInfos));
+        mRestrictAppAction =
+                new RestrictAppAction(
+                        RuntimeEnvironment.application,
+                        new RestrictAppTip(BatteryTip.StateType.NEW, mAppInfos));
         mRestrictAppAction.mBatteryUtils = mBatteryUtils;
     }
 
@@ -89,17 +88,28 @@
     public void testHandlePositiveAction() {
         mRestrictAppAction.handlePositiveAction(METRICS_KEY);
 
-        verify(mBatteryUtils)
-                .setForceAppStandby(UID_1, PACKAGE_NAME_1, AppOpsManager.MODE_IGNORED);
-        verify(mBatteryUtils)
-                .setForceAppStandby(UID_2, PACKAGE_NAME_2, AppOpsManager.MODE_IGNORED);
-        verify(mFeatureFactory.metricsFeatureProvider).action(SettingsEnums.PAGE_UNKNOWN,
-                MetricsProto.MetricsEvent.ACTION_TIP_RESTRICT_APP, METRICS_KEY, PACKAGE_NAME_1, 0);
-        verify(mFeatureFactory.metricsFeatureProvider).action(SettingsEnums.PAGE_UNKNOWN,
-                MetricsProto.MetricsEvent.ACTION_TIP_RESTRICT_APP, METRICS_KEY, PACKAGE_NAME_2,
-                ANOMALY_WAKEUP);
-        verify(mFeatureFactory.metricsFeatureProvider).action(SettingsEnums.PAGE_UNKNOWN,
-                MetricsProto.MetricsEvent.ACTION_TIP_RESTRICT_APP, METRICS_KEY, PACKAGE_NAME_2,
-                ANOMALY_BT);
+        verify(mBatteryUtils).setForceAppStandby(UID_1, PACKAGE_NAME_1, AppOpsManager.MODE_IGNORED);
+        verify(mBatteryUtils).setForceAppStandby(UID_2, PACKAGE_NAME_2, AppOpsManager.MODE_IGNORED);
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        SettingsEnums.PAGE_UNKNOWN,
+                        MetricsProto.MetricsEvent.ACTION_TIP_RESTRICT_APP,
+                        METRICS_KEY,
+                        PACKAGE_NAME_1,
+                        0);
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        SettingsEnums.PAGE_UNKNOWN,
+                        MetricsProto.MetricsEvent.ACTION_TIP_RESTRICT_APP,
+                        METRICS_KEY,
+                        PACKAGE_NAME_2,
+                        ANOMALY_WAKEUP);
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        SettingsEnums.PAGE_UNKNOWN,
+                        MetricsProto.MetricsEvent.ACTION_TIP_RESTRICT_APP,
+                        METRICS_KEY,
+                        PACKAGE_NAME_2,
+                        ANOMALY_BT);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/actions/UnrestrictAppActionTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/actions/UnrestrictAppActionTest.java
index 1ef9a8a..0f4a043 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/actions/UnrestrictAppActionTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/actions/UnrestrictAppActionTest.java
@@ -44,8 +44,7 @@
     private static final String PACKAGE_NAME_1 = "com.android.app1";
     private static final int METRICS_KEY = 1;
 
-    @Mock
-    private BatteryUtils mBatteryUtils;
+    @Mock private BatteryUtils mBatteryUtils;
     private UnrestrictAppAction mUnrestrictAppAction;
     private FakeFeatureFactory mFeatureFactory;
 
@@ -53,14 +52,14 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
 
-        final AppInfo appInfo = new AppInfo.Builder()
-                .setUid(UID_1)
-                .setPackageName(PACKAGE_NAME_1)
-                .build();
+        final AppInfo appInfo =
+                new AppInfo.Builder().setUid(UID_1).setPackageName(PACKAGE_NAME_1).build();
         mFeatureFactory = FakeFeatureFactory.setupForTest();
 
-        mUnrestrictAppAction = new UnrestrictAppAction(RuntimeEnvironment.application,
-                new UnrestrictAppTip(BatteryTip.StateType.NEW, appInfo));
+        mUnrestrictAppAction =
+                new UnrestrictAppAction(
+                        RuntimeEnvironment.application,
+                        new UnrestrictAppTip(BatteryTip.StateType.NEW, appInfo));
         mUnrestrictAppAction.mBatteryUtils = mBatteryUtils;
     }
 
@@ -73,13 +72,13 @@
     public void testHandlePositiveAction() {
         mUnrestrictAppAction.handlePositiveAction(METRICS_KEY);
 
-        verify(mBatteryUtils)
-                .setForceAppStandby(UID_1, PACKAGE_NAME_1, AppOpsManager.MODE_ALLOWED);
-        verify(mFeatureFactory.metricsFeatureProvider).action(
-                SettingsEnums.PAGE_UNKNOWN,
-                MetricsProto.MetricsEvent.ACTION_TIP_UNRESTRICT_APP,
-                METRICS_KEY,
-                PACKAGE_NAME_1,
-                0);
+        verify(mBatteryUtils).setForceAppStandby(UID_1, PACKAGE_NAME_1, AppOpsManager.MODE_ALLOWED);
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        SettingsEnums.PAGE_UNKNOWN,
+                        MetricsProto.MetricsEvent.ACTION_TIP_UNRESTRICT_APP,
+                        METRICS_KEY,
+                        PACKAGE_NAME_1,
+                        0);
     }
 }
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 64d5d04..0a63ba2 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
@@ -38,8 +38,7 @@
 @RunWith(RobolectricTestRunner.class)
 public class BatteryDefenderDetectorTest {
 
-    @Mock
-    private BatteryInfo mBatteryInfo;
+    @Mock private BatteryInfo mBatteryInfo;
     private BatteryDefenderDetector mBatteryDefenderDetector;
     private Context mContext;
 
@@ -53,8 +52,7 @@
 
         mContext = ApplicationProvider.getApplicationContext();
 
-        mBatteryDefenderDetector = new BatteryDefenderDetector(
-            mBatteryInfo, mContext);
+        mBatteryDefenderDetector = new BatteryDefenderDetector(mBatteryInfo, mContext);
 
         mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
     }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/DockDefenderDetectorTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/DockDefenderDetectorTest.java
index bd2c5d1..b90733d 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/DockDefenderDetectorTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/DockDefenderDetectorTest.java
@@ -59,25 +59,35 @@
         mBatteryInfo = new BatteryInfo();
         mBatteryInfo.pluggedStatus = BatteryManager.BATTERY_PLUGGED_DOCK;
         mDockDefenderDetector = new DockDefenderDetector(mBatteryInfo, mContext);
-        Intent intent = BatteryTestUtils.getCustomBatteryIntent(BatteryManager.BATTERY_PLUGGED_DOCK,
-                50 /* level */, 100 /* scale */, BatteryManager.BATTERY_STATUS_CHARGING);
-        doReturn(intent).when(mContext).registerReceiver(eq(null),
-                refEq(new IntentFilter(Intent.ACTION_BATTERY_CHANGED)));
+        Intent intent =
+                BatteryTestUtils.getCustomBatteryIntent(
+                        BatteryManager.BATTERY_PLUGGED_DOCK,
+                        50 /* level */,
+                        100 /* scale */,
+                        BatteryManager.BATTERY_STATUS_CHARGING);
+        doReturn(intent)
+                .when(mContext)
+                .registerReceiver(eq(null), refEq(new IntentFilter(Intent.ACTION_BATTERY_CHANGED)));
 
-        Settings.Global.putInt(mContext.getContentResolver(),
-                BatteryUtils.SETTINGS_GLOBAL_DOCK_DEFENDER_BYPASS, 0);
+        Settings.Global.putInt(
+                mContext.getContentResolver(),
+                BatteryUtils.SETTINGS_GLOBAL_DOCK_DEFENDER_BYPASS,
+                0);
         mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
     }
 
     @Test
     public void testDetect_dockDefenderTemporarilyBypassed() {
-        Settings.Global.putInt(mContext.getContentResolver(),
-                BatteryUtils.SETTINGS_GLOBAL_DOCK_DEFENDER_BYPASS, 1);
+        Settings.Global.putInt(
+                mContext.getContentResolver(),
+                BatteryUtils.SETTINGS_GLOBAL_DOCK_DEFENDER_BYPASS,
+                1);
 
         BatteryTip batteryTip = mDockDefenderDetector.detect();
 
         assertTrue(batteryTip instanceof DockDefenderTip);
-        assertEquals(((DockDefenderTip) batteryTip).getMode(),
+        assertEquals(
+                ((DockDefenderTip) batteryTip).getMode(),
                 BatteryUtils.DockDefenderMode.TEMPORARILY_BYPASSED);
     }
 
@@ -89,8 +99,8 @@
         BatteryTip batteryTip = mDockDefenderDetector.detect();
 
         assertTrue(batteryTip instanceof DockDefenderTip);
-        assertEquals(((DockDefenderTip) batteryTip).getMode(),
-                BatteryUtils.DockDefenderMode.ACTIVE);
+        assertEquals(
+                ((DockDefenderTip) batteryTip).getMode(), BatteryUtils.DockDefenderMode.ACTIVE);
     }
 
     @Test
@@ -101,7 +111,8 @@
         BatteryTip batteryTip = mDockDefenderDetector.detect();
 
         assertTrue(batteryTip instanceof DockDefenderTip);
-        assertEquals(((DockDefenderTip) batteryTip).getMode(),
+        assertEquals(
+                ((DockDefenderTip) batteryTip).getMode(),
                 BatteryUtils.DockDefenderMode.FUTURE_BYPASS);
     }
 
@@ -113,8 +124,8 @@
         BatteryTip batteryTip = mDockDefenderDetector.detect();
 
         assertTrue(batteryTip instanceof DockDefenderTip);
-        assertEquals(((DockDefenderTip) batteryTip).getMode(),
-                BatteryUtils.DockDefenderMode.DISABLED);
+        assertEquals(
+                ((DockDefenderTip) batteryTip).getMode(), BatteryUtils.DockDefenderMode.DISABLED);
     }
 
     @Test
@@ -124,8 +135,8 @@
         BatteryTip batteryTip = mDockDefenderDetector.detect();
 
         assertTrue(batteryTip instanceof DockDefenderTip);
-        assertEquals(((DockDefenderTip) batteryTip).getMode(),
-                BatteryUtils.DockDefenderMode.DISABLED);
+        assertEquals(
+                ((DockDefenderTip) batteryTip).getMode(), BatteryUtils.DockDefenderMode.DISABLED);
     }
 
     @Test
@@ -136,7 +147,7 @@
         BatteryTip batteryTip = mDockDefenderDetector.detect();
 
         assertTrue(batteryTip instanceof DockDefenderTip);
-        assertEquals(((DockDefenderTip) batteryTip).getMode(),
-                BatteryUtils.DockDefenderMode.DISABLED);
+        assertEquals(
+                ((DockDefenderTip) batteryTip).getMode(), BatteryUtils.DockDefenderMode.DISABLED);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/HighUsageDetectorTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/HighUsageDetectorTest.java
index c125876..b9f9ed2 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/HighUsageDetectorTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/HighUsageDetectorTest.java
@@ -62,18 +62,12 @@
     private static final double POWER_LOW = 10000;
 
     private Context mContext;
-    @Mock
-    private UidBatteryConsumer mHighBatteryConsumer;
-    @Mock
-    private UidBatteryConsumer mLowBatteryConsumer;
-    @Mock
-    private UidBatteryConsumer mSystemBatteryConsumer;
-    @Mock
-    private HighUsageDataParser mDataParser;
-    @Mock
-    private BatteryUsageStats mBatteryUsageStats;
-    @Mock
-    private BatteryStatsManager mBatteryStatsManager;
+    @Mock private UidBatteryConsumer mHighBatteryConsumer;
+    @Mock private UidBatteryConsumer mLowBatteryConsumer;
+    @Mock private UidBatteryConsumer mSystemBatteryConsumer;
+    @Mock private HighUsageDataParser mDataParser;
+    @Mock private BatteryUsageStats mBatteryUsageStats;
+    @Mock private BatteryStatsManager mBatteryStatsManager;
 
     private AppInfo mHighAppInfo;
     private AppInfo mLowAppInfo;
@@ -94,11 +88,17 @@
         when(mBatteryStatsManager.getBatteryUsageStats(any(BatteryUsageStatsQuery.class)))
                 .thenReturn(mBatteryUsageStats);
 
-        mContext.sendStickyBroadcast(new Intent(Intent.ACTION_BATTERY_CHANGED)
-                .putExtra(BatteryManager.EXTRA_PLUGGED, 0));
+        mContext.sendStickyBroadcast(
+                new Intent(Intent.ACTION_BATTERY_CHANGED)
+                        .putExtra(BatteryManager.EXTRA_PLUGGED, 0));
 
-        mHighUsageDetector = spy(new HighUsageDetector(mContext, mPolicy, mBatteryUsageStats,
-                mBatteryUtils.getBatteryInfo(TAG)));
+        mHighUsageDetector =
+                spy(
+                        new HighUsageDetector(
+                                mContext,
+                                mPolicy,
+                                mBatteryUsageStats,
+                                mBatteryUtils.getBatteryInfo(TAG)));
         mHighUsageDetector.mBatteryUtils = mBatteryUtils;
         mHighUsageDetector.mDataParser = mDataParser;
         doNothing().when(mHighUsageDetector).parseBatteryData();
@@ -111,12 +111,8 @@
         when(mBatteryUsageStats.getDischargePercentage()).thenReturn(100);
         when(mBatteryUsageStats.getConsumedPower()).thenReturn(POWER_HIGH + POWER_LOW);
 
-        mHighAppInfo = new AppInfo.Builder()
-                .setUid(UID_HIGH)
-                .build();
-        mLowAppInfo = new AppInfo.Builder()
-                .setUid(UID_LOW)
-                .build();
+        mHighAppInfo = new AppInfo.Builder().setUid(UID_HIGH).build();
+        mLowAppInfo = new AppInfo.Builder().setUid(UID_LOW).build();
 
         ArrayList<UidBatteryConsumer> consumers = new ArrayList<>();
         consumers.add(mSystemBatteryConsumer);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/IncompatibleChargerDetectorTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/IncompatibleChargerDetectorTest.java
index 9ababe7..c0f6108 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/IncompatibleChargerDetectorTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/IncompatibleChargerDetectorTest.java
@@ -81,6 +81,7 @@
         when(mUsbPort.getStatus()).thenReturn(mUsbPortStatus);
         when(mUsbPort.supportsComplianceWarnings()).thenReturn(true);
         when(mUsbPortStatus.isConnected()).thenReturn(true);
-        when(mUsbPortStatus.getComplianceWarnings()).thenReturn(new int[]{1});
+        when(mUsbPortStatus.getComplianceWarnings())
+                .thenReturn(new int[] {UsbPortStatus.COMPLIANCE_WARNING_DEBUG_ACCESSORY});
     }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/LowBatteryDetectorTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/LowBatteryDetectorTest.java
index c9e201b..8e3de7c 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/LowBatteryDetectorTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/LowBatteryDetectorTest.java
@@ -40,8 +40,7 @@
 @RunWith(RobolectricTestRunner.class)
 public class LowBatteryDetectorTest {
 
-    @Mock
-    private BatteryInfo mBatteryInfo;
+    @Mock private BatteryInfo mBatteryInfo;
     private BatteryTipPolicy mPolicy;
     private LowBatteryDetector mLowBatteryDetector;
     private Context mContext;
@@ -55,15 +54,16 @@
         ReflectionHelpers.setField(mPolicy, "lowBatteryEnabled", true);
         mBatteryInfo.discharging = true;
 
-        mLowBatteryDetector = new LowBatteryDetector(mContext, mPolicy, mBatteryInfo,
-                false /* isPowerSaveMode */);
+        mLowBatteryDetector =
+                new LowBatteryDetector(
+                        mContext, mPolicy, mBatteryInfo, false /* isPowerSaveMode */);
     }
 
     @Test
     public void testDetect_disabledByPolicy_tipInvisible() {
         ReflectionHelpers.setField(mPolicy, "lowBatteryEnabled", false);
-        mLowBatteryDetector = new LowBatteryDetector(mContext, mPolicy, mBatteryInfo,
-                true /* isPowerSaveMode */);
+        mLowBatteryDetector =
+                new LowBatteryDetector(mContext, mPolicy, mBatteryInfo, true /* isPowerSaveMode */);
 
         assertThat(mLowBatteryDetector.detect().isVisible()).isFalse();
     }
@@ -84,8 +84,8 @@
 
     @Test
     public void testDetect_batterySaverOn_tipInvisible() {
-        mLowBatteryDetector = new LowBatteryDetector(mContext, mPolicy, mBatteryInfo,
-                true /* isPowerSaveMode */);
+        mLowBatteryDetector =
+                new LowBatteryDetector(mContext, mPolicy, mBatteryInfo, true /* isPowerSaveMode */);
 
         assertThat(mLowBatteryDetector.detect().getState())
                 .isEqualTo(BatteryTip.StateType.INVISIBLE);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/SmartBatteryDetectorTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/SmartBatteryDetectorTest.java
index d40f5b8..bd207ee 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/SmartBatteryDetectorTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/SmartBatteryDetectorTest.java
@@ -22,7 +22,6 @@
 
 import android.content.ContentResolver;
 import android.content.Context;
-import android.os.PowerManager;
 import android.provider.Settings;
 
 import com.android.settings.fuelgauge.BatteryInfo;
@@ -49,8 +48,7 @@
     private SmartBatteryDetector mSmartBatteryDetector;
     private BatteryTipPolicy mPolicy;
 
-    @Mock
-    private BatteryInfo mBatteryInfo;
+    @Mock private BatteryInfo mBatteryInfo;
 
     @Before
     public void setUp() {
@@ -59,8 +57,13 @@
         mContext = RuntimeEnvironment.application;
         mContentResolver = mContext.getContentResolver();
         mPolicy = spy(new BatteryTipPolicy(mContext));
-        mSmartBatteryDetector = new SmartBatteryDetector(mContext, mPolicy, mBatteryInfo,
-                mContentResolver, false /* isPowerSaveMode */);
+        mSmartBatteryDetector =
+                new SmartBatteryDetector(
+                        mContext,
+                        mPolicy,
+                        mBatteryInfo,
+                        mContentResolver,
+                        false /* isPowerSaveMode */);
     }
 
     @Test
@@ -72,8 +75,8 @@
 
     @Test
     public void testDetect_smartBatteryOff_tipVisible() {
-        Settings.Global.putInt(mContentResolver,
-                Settings.Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED, 0);
+        Settings.Global.putInt(
+                mContentResolver, Settings.Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED, 0);
         mBatteryInfo.batteryLevel = EXPECTED_BATTERY_LEVEL;
 
         assertThat(mSmartBatteryDetector.detect().isVisible()).isTrue();
@@ -81,30 +84,40 @@
 
     @Test
     public void testDetect_batterySaverOn_tipInvisible() {
-        Settings.Global.putInt(mContentResolver,
-                Settings.Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED, 0);
+        Settings.Global.putInt(
+                mContentResolver, Settings.Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED, 0);
         mBatteryInfo.batteryLevel = EXPECTED_BATTERY_LEVEL;
-        mSmartBatteryDetector = new SmartBatteryDetector(mContext, mPolicy, mBatteryInfo,
-                mContentResolver, true /* isPowerSaveMode */);
+        mSmartBatteryDetector =
+                new SmartBatteryDetector(
+                        mContext,
+                        mPolicy,
+                        mBatteryInfo,
+                        mContentResolver,
+                        true /* isPowerSaveMode */);
 
         assertThat(mSmartBatteryDetector.detect().isVisible()).isFalse();
     }
 
     @Test
     public void testDetect_unexpectedBatteryLevel_tipInvisible() {
-        Settings.Global.putInt(mContentResolver,
-                Settings.Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED, 0);
+        Settings.Global.putInt(
+                mContentResolver, Settings.Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED, 0);
         mBatteryInfo.batteryLevel = UNEXPECTED_BATTERY_LEVEL;
-        mSmartBatteryDetector = new SmartBatteryDetector(mContext, mPolicy, mBatteryInfo,
-                mContentResolver, true /* isPowerSaveMode */);
+        mSmartBatteryDetector =
+                new SmartBatteryDetector(
+                        mContext,
+                        mPolicy,
+                        mBatteryInfo,
+                        mContentResolver,
+                        true /* isPowerSaveMode */);
 
         assertThat(mSmartBatteryDetector.detect().isVisible()).isFalse();
     }
 
     @Test
     public void testDetect_smartBatteryOn_tipInvisible() {
-        Settings.Global.putInt(mContentResolver,
-                Settings.Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED, 1);
+        Settings.Global.putInt(
+                mContentResolver, Settings.Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED, 1);
         mBatteryInfo.batteryLevel = EXPECTED_BATTERY_LEVEL;
 
         assertThat(mSmartBatteryDetector.detect().isVisible()).isFalse();
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/BatteryDefenderTipTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/BatteryDefenderTipTest.java
index eee2df3..f8a4f28 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/BatteryDefenderTipTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/BatteryDefenderTipTest.java
@@ -17,9 +17,7 @@
 
 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.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -63,8 +61,8 @@
         mFeatureFactory = FakeFeatureFactory.setupForTest();
         mMetricsFeatureProvider = mFeatureFactory.metricsFeatureProvider;
         mContext = RuntimeEnvironment.application;
-        mBatteryDefenderTip = new BatteryDefenderTip(BatteryTip.StateType.NEW,
-                false /* isPluggedIn */);
+        mBatteryDefenderTip =
+                new BatteryDefenderTip(BatteryTip.StateType.NEW, false /* isPluggedIn */);
 
         when(mPreference.getContext()).thenReturn(mContext);
         when(mCardPreference.getContext()).thenReturn(mContext);
@@ -93,8 +91,8 @@
         mBatteryDefenderTip.updateState(mBatteryTip);
         mBatteryDefenderTip.log(mContext, mMetricsFeatureProvider);
 
-        verify(mMetricsFeatureProvider).action(mContext,
-                SettingsEnums.ACTION_BATTERY_DEFENDER_TIP, mBatteryTip.mState);
+        verify(mMetricsFeatureProvider)
+                .action(mContext, SettingsEnums.ACTION_BATTERY_DEFENDER_TIP, mBatteryTip.mState);
     }
 
     @Test
@@ -131,8 +129,8 @@
 
     @Test
     public void updatePreference_whenCharging_setPrimaryButtonVisibleToBeTrue() {
-        mBatteryDefenderTip = new BatteryDefenderTip(BatteryTip.StateType.NEW,
-                true /* isPluggedIn */);
+        mBatteryDefenderTip =
+                new BatteryDefenderTip(BatteryTip.StateType.NEW, true /* isPluggedIn */);
 
         mBatteryDefenderTip.updatePreference(mCardPreference);
 
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTipTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTipTest.java
index ecac4f9..45fdc1f 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTipTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/BatteryTipTest.java
@@ -45,8 +45,7 @@
 
     private static final String TITLE = "title";
     private static final String SUMMARY = "summary";
-    @DrawableRes
-    private static final int ICON_ID = R.drawable.ic_fingerprint;
+    @DrawableRes private static final int ICON_ID = R.drawable.ic_fingerprint;
 
     private Context mContext;
     private TestBatteryTip mBatteryTip;
@@ -86,8 +85,10 @@
     @Test
     public void updatePreference_resetLayoutState() {
         mContext.setTheme(R.style.Theme_Settings);
-        PreferenceViewHolder holder = PreferenceViewHolder.createInstanceForTests(
-                View.inflate(mContext, R.layout.card_preference_layout, /* parent= */ null));
+        PreferenceViewHolder holder =
+                PreferenceViewHolder.createInstanceForTests(
+                        View.inflate(
+                                mContext, R.layout.card_preference_layout, /* parent= */ null));
         CardPreference cardPreference = new CardPreference(mContext);
         cardPreference.onBindViewHolder(holder);
         cardPreference.setPrimaryButtonVisible(true);
@@ -113,9 +114,7 @@
         assertThat(mBatteryTip.toString()).isEqualTo("type=6 state=0");
     }
 
-    /**
-     * Used to test the non abstract methods in {@link TestBatteryTip}
-     */
+    /** Used to test the non abstract methods in {@link TestBatteryTip} */
     public static class TestBatteryTip extends BatteryTip {
         TestBatteryTip() {
             super(TipType.SUMMARY, StateType.NEW, true);
@@ -150,14 +149,15 @@
             // do nothing
         }
 
-        public final Parcelable.Creator CREATOR = new Parcelable.Creator() {
-            public BatteryTip createFromParcel(Parcel in) {
-                return new TestBatteryTip(in);
-            }
+        public final Parcelable.Creator CREATOR =
+                new Parcelable.Creator() {
+                    public BatteryTip createFromParcel(Parcel in) {
+                        return new TestBatteryTip(in);
+                    }
 
-            public BatteryTip[] newArray(int size) {
-                return new TestBatteryTip[size];
-            }
-        };
+                    public BatteryTip[] newArray(int size) {
+                        return new TestBatteryTip[size];
+                    }
+                };
     }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/DockDefenderTipTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/DockDefenderTipTest.java
index e897a1c..6d6c2e0 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/DockDefenderTipTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/DockDefenderTipTest.java
@@ -54,10 +54,8 @@
     private FakeFeatureFactory mFeatureFactory;
     private MetricsFeatureProvider mMetricsFeatureProvider;
 
-    @Mock
-    private Preference mPreference;
-    @Mock
-    private CardPreference mCardPreference;
+    @Mock private Preference mPreference;
+    @Mock private CardPreference mCardPreference;
 
     @Before
     public void setUp() {
@@ -67,14 +65,18 @@
         mFeatureFactory = FakeFeatureFactory.setupForTest();
         mMetricsFeatureProvider = mFeatureFactory.metricsFeatureProvider;
 
-        mDockDefenderTipFutureBypass = new DockDefenderTip(BatteryTip.StateType.NEW,
-                BatteryUtils.DockDefenderMode.FUTURE_BYPASS);
-        mDockDefenderTipActive = new DockDefenderTip(BatteryTip.StateType.NEW,
-                BatteryUtils.DockDefenderMode.ACTIVE);
-        mDockDefenderTipTemporarilyBypassed = new DockDefenderTip(BatteryTip.StateType.NEW,
-                BatteryUtils.DockDefenderMode.TEMPORARILY_BYPASSED);
-        mDockDefenderTipDisabled = new DockDefenderTip(BatteryTip.StateType.INVISIBLE,
-                BatteryUtils.DockDefenderMode.DISABLED);
+        mDockDefenderTipFutureBypass =
+                new DockDefenderTip(
+                        BatteryTip.StateType.NEW, BatteryUtils.DockDefenderMode.FUTURE_BYPASS);
+        mDockDefenderTipActive =
+                new DockDefenderTip(BatteryTip.StateType.NEW, BatteryUtils.DockDefenderMode.ACTIVE);
+        mDockDefenderTipTemporarilyBypassed =
+                new DockDefenderTip(
+                        BatteryTip.StateType.NEW,
+                        BatteryUtils.DockDefenderMode.TEMPORARILY_BYPASSED);
+        mDockDefenderTipDisabled =
+                new DockDefenderTip(
+                        BatteryTip.StateType.INVISIBLE, BatteryUtils.DockDefenderMode.DISABLED);
 
         doReturn(mContext).when(mPreference).getContext();
         doReturn(mContext).when(mCardPreference).getContext();
@@ -82,69 +84,78 @@
 
     @Test
     public void testGetTitle() {
-        assertThat(mDockDefenderTipFutureBypass.getTitle(mContext).toString()).isEqualTo(
-                mContext.getString(R.string.battery_tip_dock_defender_future_bypass_title));
-        assertThat(mDockDefenderTipActive.getTitle(mContext).toString()).isEqualTo(
-                mContext.getString(R.string.battery_tip_dock_defender_active_title));
-        assertThat(mDockDefenderTipTemporarilyBypassed.getTitle(mContext).toString()).isEqualTo(
-                mContext.getString(R.string.battery_tip_dock_defender_temporarily_bypassed_title));
+        assertThat(mDockDefenderTipFutureBypass.getTitle(mContext).toString())
+                .isEqualTo(
+                        mContext.getString(R.string.battery_tip_dock_defender_future_bypass_title));
+        assertThat(mDockDefenderTipActive.getTitle(mContext).toString())
+                .isEqualTo(mContext.getString(R.string.battery_tip_dock_defender_active_title));
+        assertThat(mDockDefenderTipTemporarilyBypassed.getTitle(mContext).toString())
+                .isEqualTo(
+                        mContext.getString(
+                                R.string.battery_tip_dock_defender_temporarily_bypassed_title));
         assertThat(mDockDefenderTipDisabled.getTitle(mContext)).isNull();
     }
 
     @Test
     public void testGetSummary() {
-        assertThat(mDockDefenderTipFutureBypass.getSummary(mContext).toString()).isEqualTo(
-                mContext.getString(R.string.battery_tip_dock_defender_future_bypass_summary));
-        assertThat(mDockDefenderTipActive.getSummary(mContext).toString()).isEqualTo(
-                mContext.getString(R.string.battery_tip_dock_defender_active_summary));
-        assertThat(mDockDefenderTipTemporarilyBypassed.getSummary(mContext).toString()).isEqualTo(
-                mContext.getString(
-                        R.string.battery_tip_dock_defender_temporarily_bypassed_summary));
+        assertThat(mDockDefenderTipFutureBypass.getSummary(mContext).toString())
+                .isEqualTo(
+                        mContext.getString(
+                                R.string.battery_tip_dock_defender_future_bypass_summary));
+        assertThat(mDockDefenderTipActive.getSummary(mContext).toString())
+                .isEqualTo(mContext.getString(R.string.battery_tip_dock_defender_active_summary));
+        assertThat(mDockDefenderTipTemporarilyBypassed.getSummary(mContext).toString())
+                .isEqualTo(
+                        mContext.getString(
+                                R.string.battery_tip_dock_defender_temporarily_bypassed_summary));
         assertThat(mDockDefenderTipDisabled.getSummary(mContext)).isNull();
     }
 
     @Test
     public void testGetIconId_dockDefenderActive_getProtectedIcon() {
-        assertThat(mDockDefenderTipActive.getIconId()).isEqualTo(
-                R.drawable.ic_battery_status_protected_24dp);
+        assertThat(mDockDefenderTipActive.getIconId())
+                .isEqualTo(R.drawable.ic_battery_status_protected_24dp);
     }
 
     @Test
     public void testGetIconId_dockDefenderNotActive_getUntriggeredIcon() {
-        assertThat(mDockDefenderTipFutureBypass.getIconId()).isEqualTo(
-                R.drawable.ic_battery_dock_defender_untriggered_24dp);
-        assertThat(mDockDefenderTipTemporarilyBypassed.getIconId()).isEqualTo(
-                R.drawable.ic_battery_dock_defender_untriggered_24dp);
-        assertThat(mDockDefenderTipDisabled.getIconId()).isEqualTo(
-                R.drawable.ic_battery_dock_defender_untriggered_24dp);
+        assertThat(mDockDefenderTipFutureBypass.getIconId())
+                .isEqualTo(R.drawable.ic_battery_dock_defender_untriggered_24dp);
+        assertThat(mDockDefenderTipTemporarilyBypassed.getIconId())
+                .isEqualTo(R.drawable.ic_battery_dock_defender_untriggered_24dp);
+        assertThat(mDockDefenderTipDisabled.getIconId())
+                .isEqualTo(R.drawable.ic_battery_dock_defender_untriggered_24dp);
     }
 
     @Test
     public void testUpdateState() {
         mDockDefenderTipTemporarilyBypassed.updateState(mDockDefenderTipDisabled);
 
-        assertThat(mDockDefenderTipTemporarilyBypassed.getState()).isEqualTo(
-                BatteryTip.StateType.INVISIBLE);
-        assertThat(mDockDefenderTipTemporarilyBypassed.getMode()).isEqualTo(
-                BatteryUtils.DockDefenderMode.DISABLED);
+        assertThat(mDockDefenderTipTemporarilyBypassed.getState())
+                .isEqualTo(BatteryTip.StateType.INVISIBLE);
+        assertThat(mDockDefenderTipTemporarilyBypassed.getMode())
+                .isEqualTo(BatteryUtils.DockDefenderMode.DISABLED);
     }
 
     @Test
     public void testLog() {
         mDockDefenderTipActive.log(mContext, mMetricsFeatureProvider);
 
-        verify(mMetricsFeatureProvider).action(mContext, SettingsEnums.ACTION_DOCK_DEFENDER_TIP,
-                mDockDefenderTipActive.getState());
+        verify(mMetricsFeatureProvider)
+                .action(
+                        mContext,
+                        SettingsEnums.ACTION_DOCK_DEFENDER_TIP,
+                        mDockDefenderTipActive.getState());
     }
 
-
     @Test
     public void testUpdatePreference_dockDefenderTipFutureBypass() {
         mDockDefenderTipFutureBypass.updatePreference(mCardPreference);
 
         verify(mCardPreference).setPrimaryButtonVisible(true);
-        verify(mCardPreference).setPrimaryButtonText(
-                mContext.getString(R.string.battery_tip_charge_to_full_button));
+        verify(mCardPreference)
+                .setPrimaryButtonText(
+                        mContext.getString(R.string.battery_tip_charge_to_full_button));
         verifySecondaryButton();
     }
 
@@ -153,8 +164,9 @@
         mDockDefenderTipActive.updatePreference(mCardPreference);
 
         verify(mCardPreference).setPrimaryButtonVisible(true);
-        verify(mCardPreference).setPrimaryButtonText(
-                mContext.getString(R.string.battery_tip_charge_to_full_button));
+        verify(mCardPreference)
+                .setPrimaryButtonText(
+                        mContext.getString(R.string.battery_tip_charge_to_full_button));
         verifySecondaryButton();
     }
 
@@ -170,8 +182,10 @@
     private void verifySecondaryButton() {
         verify(mCardPreference).setSecondaryButtonText(mContext.getString(R.string.learn_more));
         verify(mCardPreference).setSecondaryButtonVisible(true);
-        verify(mCardPreference).setSecondaryButtonContentDescription(mContext.getString(
-                R.string.battery_tip_limited_temporarily_sec_button_content_description));
+        final String expectedContent =
+                mContext.getString(
+                        R.string.battery_tip_limited_temporarily_sec_button_content_description);
+        verify(mCardPreference).setSecondaryButtonContentDescription(expectedContent);
     }
 
     @Test
@@ -182,9 +196,11 @@
     }
 
     private String getLastErrorLog() {
-        return ShadowLog.getLogsForTag(DockDefenderTip.class.getSimpleName()).stream().filter(
-                log -> log.type == Log.ERROR).reduce((first, second) -> second).orElse(
-                createErrorLog("No Error Log")).msg;
+        return ShadowLog.getLogsForTag(DockDefenderTip.class.getSimpleName()).stream()
+                .filter(log -> log.type == Log.ERROR)
+                .reduce((first, second) -> second)
+                .orElse(createErrorLog("No Error Log"))
+                .msg;
     }
 
     private ShadowLog.LogItem createErrorLog(String msg) {
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/HighUsageTipTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/HighUsageTipTest.java
index 71a8062..0484a82 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/HighUsageTipTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/HighUsageTipTest.java
@@ -45,8 +45,7 @@
     private static final long SCREEN_TIME = 30 * DateUtils.MINUTE_IN_MILLIS;
     private static final long LAST_FULL_CHARGE_TIME = 20 * DateUtils.MINUTE_IN_MILLIS;
 
-    @Mock
-    private MetricsFeatureProvider mMetricsFeatureProvider;
+    @Mock private MetricsFeatureProvider mMetricsFeatureProvider;
     private Context mContext;
     private HighUsageTip mBatteryTip;
     private List<AppInfo> mUsageAppList;
@@ -57,10 +56,11 @@
 
         mContext = RuntimeEnvironment.application;
         mUsageAppList = new ArrayList<>();
-        mUsageAppList.add(new AppInfo.Builder()
-                .setPackageName(PACKAGE_NAME)
-                .setScreenOnTimeMs(SCREEN_TIME)
-                .build());
+        mUsageAppList.add(
+                new AppInfo.Builder()
+                        .setPackageName(PACKAGE_NAME)
+                        .setScreenOnTimeMs(SCREEN_TIME)
+                        .build());
         mBatteryTip = new HighUsageTip(LAST_FULL_CHARGE_TIME, mUsageAppList);
     }
 
@@ -86,19 +86,25 @@
 
     @Test
     public void toString_containsAppData() {
-        assertThat(mBatteryTip.toString()).isEqualTo(
-                "type=2 state=0 { packageName=com.android.app,anomalyTypes={},screenTime=1800000 "
-                        + "}");
+        assertThat(mBatteryTip.toString())
+                .isEqualTo(
+                        "type=2 state=0 {"
+                            + " packageName=com.android.app,anomalyTypes={},screenTime=1800000 }");
     }
 
     @Test
     public void testLog_logAppInfo() {
         mBatteryTip.log(mContext, mMetricsFeatureProvider);
-        verify(mMetricsFeatureProvider).action(mContext,
-                MetricsProto.MetricsEvent.ACTION_HIGH_USAGE_TIP, BatteryTip.StateType.NEW);
+        verify(mMetricsFeatureProvider)
+                .action(
+                        mContext,
+                        MetricsProto.MetricsEvent.ACTION_HIGH_USAGE_TIP,
+                        BatteryTip.StateType.NEW);
 
-        verify(mMetricsFeatureProvider).action(mContext,
-                MetricsProto.MetricsEvent.ACTION_HIGH_USAGE_TIP_LIST,
-                PACKAGE_NAME);
+        verify(mMetricsFeatureProvider)
+                .action(
+                        mContext,
+                        MetricsProto.MetricsEvent.ACTION_HIGH_USAGE_TIP_LIST,
+                        PACKAGE_NAME);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/IncompatibleChargerTipTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/IncompatibleChargerTipTest.java
index 9f6e4e3..1d7ab66 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/IncompatibleChargerTipTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/IncompatibleChargerTipTest.java
@@ -17,16 +17,11 @@
 
 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.mock;
 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.util.Log;
 
 import androidx.preference.Preference;
@@ -72,20 +67,19 @@
 
     @Test
     public void getTitle_showTitle() {
-        assertThat(mIncompatibleChargerTip.getTitle(mContext)).isEqualTo(
-                mContext.getString(R.string.battery_tip_incompatible_charging_title));
+        assertThat(mIncompatibleChargerTip.getTitle(mContext))
+                .isEqualTo(mContext.getString(R.string.battery_tip_incompatible_charging_title));
     }
 
     @Test
     public void getSummary_showSummary() {
-        assertThat(mIncompatibleChargerTip.getSummary(mContext)).isEqualTo(
-                mContext.getString(R.string.battery_tip_incompatible_charging_message));
+        assertThat(mIncompatibleChargerTip.getSummary(mContext))
+                .isEqualTo(mContext.getString(R.string.battery_tip_incompatible_charging_message));
     }
 
     @Test
     public void getIcon_showIcon() {
-        assertThat(mIncompatibleChargerTip.getIconId())
-                .isEqualTo(R.drawable.ic_battery_charger);
+        assertThat(mIncompatibleChargerTip.getIconId()).isEqualTo(R.drawable.ic_battery_charger);
     }
 
     @Test
@@ -93,8 +87,11 @@
         mIncompatibleChargerTip.updateState(mBatteryTip);
         mIncompatibleChargerTip.log(mContext, mMetricsFeatureProvider);
 
-        verify(mMetricsFeatureProvider).action(mContext,
-                SettingsEnums.ACTION_INCOMPATIBLE_CHARGING_TIP, mBatteryTip.mState);
+        verify(mMetricsFeatureProvider)
+                .action(
+                        mContext,
+                        SettingsEnums.ACTION_INCOMPATIBLE_CHARGING_TIP,
+                        mBatteryTip.mState);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/LowBatteryTipTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/LowBatteryTipTest.java
index 3f42231..69edef7 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/LowBatteryTipTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/LowBatteryTipTest.java
@@ -37,8 +37,7 @@
 @RunWith(RobolectricTestRunner.class)
 public class LowBatteryTipTest {
 
-    @Mock
-    private MetricsFeatureProvider mMetricsFeatureProvider;
+    @Mock private MetricsFeatureProvider mMetricsFeatureProvider;
     private Context mContext;
     private LowBatteryTip mLowBatteryTip;
 
@@ -58,25 +57,25 @@
         final LowBatteryTip parcelTip = new LowBatteryTip(parcel);
 
         assertThat(parcelTip.isPowerSaveModeOn()).isFalse();
-        assertThat(parcelTip.getSummary(mContext)).isEqualTo(
-                mContext.getString(R.string.battery_tip_low_battery_summary));
+        assertThat(parcelTip.getSummary(mContext))
+                .isEqualTo(mContext.getString(R.string.battery_tip_low_battery_summary));
     }
 
     @Test
     public void updateState_stateNew_showExpectedInformation() {
         mLowBatteryTip.mState = BatteryTip.StateType.NEW;
 
-        assertThat(mLowBatteryTip.getTitle(mContext)).isEqualTo(
-                mContext.getString(R.string.battery_tip_low_battery_title));
-        assertThat(mLowBatteryTip.getSummary(mContext)).isEqualTo(
-                mContext.getString(R.string.battery_tip_low_battery_summary));
+        assertThat(mLowBatteryTip.getTitle(mContext))
+                .isEqualTo(mContext.getString(R.string.battery_tip_low_battery_title));
+        assertThat(mLowBatteryTip.getSummary(mContext))
+                .isEqualTo(mContext.getString(R.string.battery_tip_low_battery_summary));
         assertThat(mLowBatteryTip.getIconId()).isEqualTo(R.drawable.ic_battery_saver_accent_24dp);
     }
 
     @Test
     public void updateState_powerSaveModeOn_notShowTipItem() {
-        final LowBatteryTip tip = new LowBatteryTip(
-                BatteryTip.StateType.NEW, true /* powerSaveModeOn */);
+        final LowBatteryTip tip =
+                new LowBatteryTip(BatteryTip.StateType.NEW, true /* powerSaveModeOn */);
 
         tip.updateState(tip);
 
@@ -87,7 +86,10 @@
     public void log_lowBatteryActionWithCorrectState() {
         mLowBatteryTip.log(mContext, mMetricsFeatureProvider);
 
-        verify(mMetricsFeatureProvider).action(mContext,
-                MetricsProto.MetricsEvent.ACTION_LOW_BATTERY_TIP, BatteryTip.StateType.NEW);
+        verify(mMetricsFeatureProvider)
+                .action(
+                        mContext,
+                        MetricsProto.MetricsEvent.ACTION_LOW_BATTERY_TIP,
+                        BatteryTip.StateType.NEW);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTipTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTipTest.java
index bb70077..c4bc3bc 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTipTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTipTest.java
@@ -65,12 +65,9 @@
     private List<AppInfo> mUsageAppList;
     private AppInfo mAppInfo;
     private AppInfo mUninstallAppInfo;
-    @Mock
-    private ApplicationInfo mApplicationInfo;
-    @Mock
-    private PackageManager mPackageManager;
-    @Mock
-    private MetricsFeatureProvider mMetricsFeatureProvider;
+    @Mock private ApplicationInfo mApplicationInfo;
+    @Mock private PackageManager mPackageManager;
+    @Mock private MetricsFeatureProvider mMetricsFeatureProvider;
 
     @Before
     public void setUp() throws Exception {
@@ -79,28 +76,35 @@
         mContext = spy(RuntimeEnvironment.application);
         doReturn(mContext).when(mContext).getApplicationContext();
         doReturn(mPackageManager).when(mContext).getPackageManager();
-        doReturn(mApplicationInfo).when(mPackageManager).getApplicationInfo(PACKAGE_NAME,
-                PackageManager.MATCH_DISABLED_COMPONENTS | PackageManager.MATCH_ANY_USER);
-        doThrow(new PackageManager.NameNotFoundException()).when(mPackageManager)
-                .getApplicationInfo(UNINSTALL_PACKAGE_NAME,
+        doReturn(mApplicationInfo)
+                .when(mPackageManager)
+                .getApplicationInfo(
+                        PACKAGE_NAME,
+                        PackageManager.MATCH_DISABLED_COMPONENTS | PackageManager.MATCH_ANY_USER);
+        doThrow(new PackageManager.NameNotFoundException())
+                .when(mPackageManager)
+                .getApplicationInfo(
+                        UNINSTALL_PACKAGE_NAME,
                         PackageManager.MATCH_DISABLED_COMPONENTS | PackageManager.MATCH_ANY_USER);
         doReturn(DISPLAY_NAME).when(mApplicationInfo).loadLabel(mPackageManager);
 
-        mAppInfo = new AppInfo.Builder()
-                .setPackageName(PACKAGE_NAME)
-                .addAnomalyType(ANOMALY_WAKEUP)
-                .addAnomalyType(ANOMALY_WAKELOCK)
-                .build();
-        mUninstallAppInfo = new AppInfo.Builder()
-                .setPackageName(UNINSTALL_PACKAGE_NAME)
-                .addAnomalyType(ANOMALY_WAKEUP)
-                .build();
+        mAppInfo =
+                new AppInfo.Builder()
+                        .setPackageName(PACKAGE_NAME)
+                        .addAnomalyType(ANOMALY_WAKEUP)
+                        .addAnomalyType(ANOMALY_WAKELOCK)
+                        .build();
+        mUninstallAppInfo =
+                new AppInfo.Builder()
+                        .setPackageName(UNINSTALL_PACKAGE_NAME)
+                        .addAnomalyType(ANOMALY_WAKEUP)
+                        .build();
         mUsageAppList = new ArrayList<>();
         mUsageAppList.add(mAppInfo);
         mNewBatteryTip = new RestrictAppTip(BatteryTip.StateType.NEW, mUsageAppList);
         mHandledBatteryTip = new RestrictAppTip(BatteryTip.StateType.HANDLED, mUsageAppList);
-        mInvisibleBatteryTip = new RestrictAppTip(BatteryTip.StateType.INVISIBLE,
-                new ArrayList<>());
+        mInvisibleBatteryTip =
+                new RestrictAppTip(BatteryTip.StateType.INVISIBLE, new ArrayList<>());
     }
 
     @After
@@ -149,8 +153,9 @@
     @Test
     public void getSummary_oneAppHandled_showHandledSummary() {
         assertThat(mHandledBatteryTip.getSummary(mContext).toString())
-                .isEqualTo(StringUtil.getIcuPluralsString(mContext, 1,
-                        R.string.battery_tip_restrict_handled_summary));
+                .isEqualTo(
+                        StringUtil.getIcuPluralsString(
+                                mContext, 1, R.string.battery_tip_restrict_handled_summary));
     }
 
     @Test
@@ -158,8 +163,9 @@
         mUsageAppList.add(new AppInfo.Builder().build());
         mHandledBatteryTip = new RestrictAppTip(BatteryTip.StateType.HANDLED, mUsageAppList);
         assertThat(mHandledBatteryTip.getSummary(mContext))
-                .isEqualTo(StringUtil.getIcuPluralsString(mContext, 2,
-                        R.string.battery_tip_restrict_handled_summary));
+                .isEqualTo(
+                        StringUtil.getIcuPluralsString(
+                                mContext, 2, R.string.battery_tip_restrict_handled_summary));
     }
 
     @Test
@@ -217,35 +223,47 @@
 
     @Test
     public void toString_containsAppData() {
-        assertThat(mNewBatteryTip.toString()).isEqualTo(
-                "type=1 state=0 { packageName=com.android.app,anomalyTypes={0, 1},screenTime=0 }");
+        assertThat(mNewBatteryTip.toString())
+                .isEqualTo(
+                        "type=1 state=0 { packageName=com.android.app,anomalyTypes={0,"
+                            + " 1},screenTime=0 }");
     }
 
     @Test
     public void testLog_stateNew_logAppInfo() {
         mNewBatteryTip.log(mContext, mMetricsFeatureProvider);
 
-        verify(mMetricsFeatureProvider).action(mContext,
-                MetricsProto.MetricsEvent.ACTION_APP_RESTRICTION_TIP, BatteryTip.StateType.NEW);
-        verify(mMetricsFeatureProvider).action(SettingsEnums.PAGE_UNKNOWN,
-                MetricsProto.MetricsEvent.ACTION_APP_RESTRICTION_TIP_LIST,
-                SettingsEnums.PAGE_UNKNOWN,
-                PACKAGE_NAME,
-                ANOMALY_WAKEUP);
-        verify(mMetricsFeatureProvider).action(SettingsEnums.PAGE_UNKNOWN,
-                MetricsProto.MetricsEvent.ACTION_APP_RESTRICTION_TIP_LIST,
-                SettingsEnums.PAGE_UNKNOWN,
-                PACKAGE_NAME,
-                ANOMALY_WAKELOCK);
+        verify(mMetricsFeatureProvider)
+                .action(
+                        mContext,
+                        MetricsProto.MetricsEvent.ACTION_APP_RESTRICTION_TIP,
+                        BatteryTip.StateType.NEW);
+        verify(mMetricsFeatureProvider)
+                .action(
+                        SettingsEnums.PAGE_UNKNOWN,
+                        MetricsProto.MetricsEvent.ACTION_APP_RESTRICTION_TIP_LIST,
+                        SettingsEnums.PAGE_UNKNOWN,
+                        PACKAGE_NAME,
+                        ANOMALY_WAKEUP);
+        verify(mMetricsFeatureProvider)
+                .action(
+                        SettingsEnums.PAGE_UNKNOWN,
+                        MetricsProto.MetricsEvent.ACTION_APP_RESTRICTION_TIP_LIST,
+                        SettingsEnums.PAGE_UNKNOWN,
+                        PACKAGE_NAME,
+                        ANOMALY_WAKELOCK);
     }
 
     @Test
     public void testLog_stateHandled_doNotLogAppInfo() {
         mHandledBatteryTip.log(mContext, mMetricsFeatureProvider);
 
-        verify(mMetricsFeatureProvider).action(mContext,
-                MetricsProto.MetricsEvent.ACTION_APP_RESTRICTION_TIP, BatteryTip.StateType.HANDLED);
-        verify(mMetricsFeatureProvider, never()).action(
-                anyInt(), anyInt(), anyInt(), anyString(), anyInt());
+        verify(mMetricsFeatureProvider)
+                .action(
+                        mContext,
+                        MetricsProto.MetricsEvent.ACTION_APP_RESTRICTION_TIP,
+                        BatteryTip.StateType.HANDLED);
+        verify(mMetricsFeatureProvider, never())
+                .action(anyInt(), anyInt(), anyInt(), anyString(), anyInt());
     }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/SmartBatteryTipTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/SmartBatteryTipTest.java
index 7da6a4f..36cb319 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/SmartBatteryTipTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/SmartBatteryTipTest.java
@@ -33,8 +33,7 @@
 @RunWith(RobolectricTestRunner.class)
 public class SmartBatteryTipTest {
 
-    @Mock
-    private MetricsFeatureProvider mMetricsFeatureProvider;
+    @Mock private MetricsFeatureProvider mMetricsFeatureProvider;
     private Context mContext;
     private SmartBatteryTip mSmartBatteryTip;
 
@@ -50,7 +49,10 @@
     public void testLog() {
         mSmartBatteryTip.log(mContext, mMetricsFeatureProvider);
 
-        verify(mMetricsFeatureProvider).action(mContext,
-                MetricsProto.MetricsEvent.ACTION_SMART_BATTERY_TIP, BatteryTip.StateType.NEW);
+        verify(mMetricsFeatureProvider)
+                .action(
+                        mContext,
+                        MetricsProto.MetricsEvent.ACTION_SMART_BATTERY_TIP,
+                        BatteryTip.StateType.NEW);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/AnomalyEventWrapperTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/AnomalyEventWrapperTest.java
index 60e0af0..0d4d671 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/AnomalyEventWrapperTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/AnomalyEventWrapperTest.java
@@ -45,19 +45,18 @@
 
     @Test
     public void getDismissRecordKey_returnExpectedResult() {
-        mAnomalyEventWrapper = new AnomalyEventWrapper(mContext,
-                BatteryTestUtils.createAdaptiveBrightnessAnomalyEvent());
-        assertThat(mAnomalyEventWrapper.getDismissRecordKey())
-                .isEqualTo("KEY_BRIGHTNESS");
+        mAnomalyEventWrapper =
+                new AnomalyEventWrapper(
+                        mContext, BatteryTestUtils.createAdaptiveBrightnessAnomalyEvent());
+        assertThat(mAnomalyEventWrapper.getDismissRecordKey()).isEqualTo("KEY_BRIGHTNESS");
 
-        mAnomalyEventWrapper = new AnomalyEventWrapper(mContext,
-                BatteryTestUtils.createScreenTimeoutAnomalyEvent());
-        assertThat(mAnomalyEventWrapper.getDismissRecordKey())
-                .isEqualTo("KEY_SCREEN_TIMEOUT");
+        mAnomalyEventWrapper =
+                new AnomalyEventWrapper(
+                        mContext, BatteryTestUtils.createScreenTimeoutAnomalyEvent());
+        assertThat(mAnomalyEventWrapper.getDismissRecordKey()).isEqualTo("KEY_SCREEN_TIMEOUT");
 
-        mAnomalyEventWrapper = new AnomalyEventWrapper(mContext,
-                BatteryTestUtils.createAppAnomalyEvent());
-        assertThat(mAnomalyEventWrapper.getDismissRecordKey())
-                .isEqualTo("KEY_APP_1");
+        mAnomalyEventWrapper =
+                new AnomalyEventWrapper(mContext, BatteryTestUtils.createAppAnomalyEvent());
+        assertThat(mAnomalyEventWrapper.getDismissRecordKey()).isEqualTo("KEY_APP_1");
     }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerTest.java
index 275ab34..bbb022e 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerTest.java
@@ -66,22 +66,14 @@
 
 @RunWith(RobolectricTestRunner.class)
 public final class BatteryChartPreferenceControllerTest {
-    @Mock
-    private Intent mIntent;
-    @Mock
-    private UserManager mUserManager;
-    @Mock
-    private SettingsActivity mSettingsActivity;
-    @Mock
-    private TextView mChartSummaryTextView;
-    @Mock
-    private BatteryChartView mDailyChartView;
-    @Mock
-    private BatteryChartView mHourlyChartView;
-    @Mock
-    private ViewPropertyAnimator mViewPropertyAnimator;
-    @Mock
-    private LinearLayout.LayoutParams mLayoutParams;
+    @Mock private Intent mIntent;
+    @Mock private UserManager mUserManager;
+    @Mock private SettingsActivity mSettingsActivity;
+    @Mock private TextView mChartSummaryTextView;
+    @Mock private BatteryChartView mDailyChartView;
+    @Mock private BatteryChartView mHourlyChartView;
+    @Mock private ViewPropertyAnimator mViewPropertyAnimator;
+    @Mock private LinearLayout.LayoutParams mLayoutParams;
 
     private Context mContext;
     private FakeFeatureFactory mFeatureFactory;
@@ -97,11 +89,9 @@
         mFeatureFactory = FakeFeatureFactory.setupForTest();
         mContext = spy(RuntimeEnvironment.application);
         doReturn(mContext).when(mContext).getApplicationContext();
-        doReturn(mUserManager)
-                .when(mContext)
-                .getSystemService(UserManager.class);
+        doReturn(mUserManager).when(mContext).getSystemService(UserManager.class);
         doReturn(true).when(mUserManager).isUserUnlocked(anyInt());
-        doReturn(new int[]{0}).when(mUserManager).getProfileIdsWithDisabled(anyInt());
+        doReturn(new int[] {0}).when(mUserManager).getProfileIdsWithDisabled(anyInt());
         final Resources resources = spy(mContext.getResources());
         resources.getConfiguration().setLocales(new LocaleList(new Locale("en_US")));
         doReturn(resources).when(mContext).getResources();
@@ -122,7 +112,7 @@
         // Adds fake testing data.
         BatteryDiffEntry.sResourceCache.put(
                 "fakeBatteryDiffEntryKey",
-                new BatteryEntry.NameAndIcon("fakeName", /*icon=*/ null, /*iconId=*/ 1));
+                new BatteryEntry.NameAndIcon("fakeName", /* icon= */ null, /* iconId= */ 1));
     }
 
     @Test
@@ -156,15 +146,18 @@
         verify(mDailyChartView, atLeastOnce()).setVisibility(View.GONE);
         // Ignore fast refresh ui from the data processor callback.
         verify(mHourlyChartView, atLeast(0)).setViewModel(null);
-        verify(mHourlyChartView, atLeastOnce()).setViewModel(new BatteryChartViewModel(
-                List.of(100, 99, 97, 95, 66),
-                List.of(1619247660000L /* 7:01 AM */,
-                        1619251200000L /* 8 AM */,
-                        1619258400000L /* 10 AM */,
-                        1619265600000L /* 12 PM */,
-                        1619265720000L /* now (12:02 PM) */),
-                BatteryChartViewModel.AxisLabelPosition.BETWEEN_TRAPEZOIDS,
-                mBatteryChartPreferenceController.mHourlyChartLabelTextGenerator));
+        verify(mHourlyChartView, atLeastOnce())
+                .setViewModel(
+                        new BatteryChartViewModel(
+                                List.of(100, 99, 97, 95, 66),
+                                List.of(
+                                        1619247660000L /* 7:01 AM */,
+                                        1619251200000L /* 8 AM */,
+                                        1619258400000L /* 10 AM */,
+                                        1619265600000L /* 12 PM */,
+                                        1619265720000L /* now (12:02 PM) */),
+                                BatteryChartViewModel.AxisLabelPosition.BETWEEN_TRAPEZOIDS,
+                                mBatteryChartPreferenceController.mHourlyChartLabelTextGenerator));
     }
 
     @Test
@@ -173,15 +166,17 @@
         reset(mHourlyChartView);
         setupHourlyChartViewAnimationMock();
 
-        BatteryChartViewModel expectedDailyViewModel = new BatteryChartViewModel(
-                List.of(100, 83, 59, 66),
-                // "Sat", "Sun", "Mon", "Mon"
-                List.of(1619247660000L /* Sat */,
-                        1619308800000L /* Sun */,
-                        1619395200000L /* Mon */,
-                        1619460120000L /* Mon */),
-                BatteryChartViewModel.AxisLabelPosition.CENTER_OF_TRAPEZOIDS,
-                mBatteryChartPreferenceController.mDailyChartLabelTextGenerator);
+        BatteryChartViewModel expectedDailyViewModel =
+                new BatteryChartViewModel(
+                        List.of(100, 83, 59, 66),
+                        // "Sat", "Sun", "Mon", "Mon"
+                        List.of(
+                                1619247660000L /* Sat */,
+                                1619308800000L /* Sun */,
+                                1619395200000L /* Mon */,
+                                1619460120000L /* Mon */),
+                        BatteryChartViewModel.AxisLabelPosition.CENTER_OF_TRAPEZOIDS,
+                        mBatteryChartPreferenceController.mDailyChartLabelTextGenerator);
 
         mBatteryChartPreferenceController.onBatteryLevelDataUpdate(createBatteryLevelData(60));
 
@@ -202,20 +197,23 @@
 
         expectedDailyViewModel.setSelectedIndex(0);
         verify(mDailyChartView).setViewModel(expectedDailyViewModel);
-        verify(mHourlyChartView).setViewModel(new BatteryChartViewModel(
-                List.of(100, 99, 97, 95, 93, 91, 89, 87, 85, 83),
-                List.of(1619247660000L /* 7:01 AM */,
-                        1619251200000L /* 8 AM */,
-                        1619258400000L /* 10 AM */,
-                        1619265600000L /* 12 PM */,
-                        1619272800000L /* 2 PM */,
-                        1619280000000L /* 4 PM */,
-                        1619287200000L /* 6 PM */,
-                        1619294400000L /* 8 PM */,
-                        1619301600000L /* 10 PM */,
-                        1619308800000L /* 12 AM */),
-                BatteryChartViewModel.AxisLabelPosition.BETWEEN_TRAPEZOIDS,
-                mBatteryChartPreferenceController.mHourlyChartLabelTextGenerator));
+        verify(mHourlyChartView)
+                .setViewModel(
+                        new BatteryChartViewModel(
+                                List.of(100, 99, 97, 95, 93, 91, 89, 87, 85, 83),
+                                List.of(
+                                        1619247660000L /* 7:01 AM */,
+                                        1619251200000L /* 8 AM */,
+                                        1619258400000L /* 10 AM */,
+                                        1619265600000L /* 12 PM */,
+                                        1619272800000L /* 2 PM */,
+                                        1619280000000L /* 4 PM */,
+                                        1619287200000L /* 6 PM */,
+                                        1619294400000L /* 8 PM */,
+                                        1619301600000L /* 10 PM */,
+                                        1619308800000L /* 12 AM */),
+                                BatteryChartViewModel.AxisLabelPosition.BETWEEN_TRAPEZOIDS,
+                                mBatteryChartPreferenceController.mHourlyChartLabelTextGenerator));
 
         reset(mDailyChartView);
         reset(mHourlyChartView);
@@ -228,23 +226,25 @@
         verify(mViewPropertyAnimator, atLeastOnce()).alpha(1f);
         expectedDailyViewModel.setSelectedIndex(1);
         verify(mDailyChartView).setViewModel(expectedDailyViewModel);
-        BatteryChartViewModel expectedHourlyViewModel = new BatteryChartViewModel(
-                List.of(83, 81, 79, 77, 75, 73, 71, 69, 67, 65, 63, 61, 59),
-                List.of(1619308800000L /* 12 AM */,
-                        1619316000000L /* 2 AM */,
-                        1619323200000L /* 4 AM */,
-                        1619330400000L /* 6 AM */,
-                        1619337600000L /* 8 AM */,
-                        1619344800000L /* 10 AM */,
-                        1619352000000L /* 12 PM */,
-                        1619359200000L /* 2 PM */,
-                        1619366400000L /* 4 PM */,
-                        1619373600000L /* 6 PM */,
-                        1619380800000L /* 8 PM */,
-                        1619388000000L /* 10 PM */,
-                        1619395200000L /* 12 AM */),
-                BatteryChartViewModel.AxisLabelPosition.BETWEEN_TRAPEZOIDS,
-                mBatteryChartPreferenceController.mHourlyChartLabelTextGenerator);
+        BatteryChartViewModel expectedHourlyViewModel =
+                new BatteryChartViewModel(
+                        List.of(83, 81, 79, 77, 75, 73, 71, 69, 67, 65, 63, 61, 59),
+                        List.of(
+                                1619308800000L /* 12 AM */,
+                                1619316000000L /* 2 AM */,
+                                1619323200000L /* 4 AM */,
+                                1619330400000L /* 6 AM */,
+                                1619337600000L /* 8 AM */,
+                                1619344800000L /* 10 AM */,
+                                1619352000000L /* 12 PM */,
+                                1619359200000L /* 2 PM */,
+                                1619366400000L /* 4 PM */,
+                                1619373600000L /* 6 PM */,
+                                1619380800000L /* 8 PM */,
+                                1619388000000L /* 10 PM */,
+                                1619395200000L /* 12 AM */),
+                        BatteryChartViewModel.AxisLabelPosition.BETWEEN_TRAPEZOIDS,
+                        mBatteryChartPreferenceController.mHourlyChartLabelTextGenerator);
         expectedHourlyViewModel.setSelectedIndex(6);
         verify(mHourlyChartView).setViewModel(expectedHourlyViewModel);
 
@@ -259,22 +259,24 @@
         verify(mViewPropertyAnimator, atLeastOnce()).alpha(1f);
         expectedDailyViewModel.setSelectedIndex(2);
         verify(mDailyChartView).setViewModel(expectedDailyViewModel);
-        verify(mHourlyChartView).setViewModel(new BatteryChartViewModel(
-                List.of(59, 57, 55, 53, 51, 49, 47, 45, 43, 41, 66),
-                List.of(1619395200000L /* 12 AM */,
-                        1619402400000L /* 2 AM */,
-                        1619409600000L /* 4 AM */,
-                        1619416800000L /* 6 AM */,
-                        1619424000000L /* 8 AM */,
-                        1619431200000L /* 10 AM */,
-                        1619438400000L /* 12 PM */,
-                        1619445600000L /* 2 PM */,
-                        1619452800000L /* 4 PM */,
-                        1619460000000L /* 6 PM */,
-                        1619460120000L /* now (6:02 PM) */),
-                BatteryChartViewModel.AxisLabelPosition.BETWEEN_TRAPEZOIDS,
-                mBatteryChartPreferenceController.mHourlyChartLabelTextGenerator));
-
+        verify(mHourlyChartView)
+                .setViewModel(
+                        new BatteryChartViewModel(
+                                List.of(59, 57, 55, 53, 51, 49, 47, 45, 43, 41, 66),
+                                List.of(
+                                        1619395200000L /* 12 AM */,
+                                        1619402400000L /* 2 AM */,
+                                        1619409600000L /* 4 AM */,
+                                        1619416800000L /* 6 AM */,
+                                        1619424000000L /* 8 AM */,
+                                        1619431200000L /* 10 AM */,
+                                        1619438400000L /* 12 PM */,
+                                        1619445600000L /* 2 PM */,
+                                        1619452800000L /* 4 PM */,
+                                        1619460000000L /* 6 PM */,
+                                        1619460120000L /* now (6:02 PM) */),
+                                BatteryChartViewModel.AxisLabelPosition.BETWEEN_TRAPEZOIDS,
+                                mBatteryChartPreferenceController.mHourlyChartLabelTextGenerator));
     }
 
     @Test
@@ -408,8 +410,8 @@
         mBatteryChartPreferenceController.mDailyChartIndex = 0;
         mBatteryChartPreferenceController.mHourlyChartIndex = 2;
 
-        assertThat(mBatteryChartPreferenceController.getSlotInformation()).isEqualTo(
-                "10 AM - 12 PM");
+        assertThat(mBatteryChartPreferenceController.getSlotInformation())
+                .isEqualTo("10 AM - 12 PM");
     }
 
     @Test
@@ -418,8 +420,8 @@
         mBatteryChartPreferenceController.mDailyChartIndex = 1;
         mBatteryChartPreferenceController.mHourlyChartIndex = 8;
 
-        assertThat(mBatteryChartPreferenceController.getSlotInformation()).isEqualTo(
-                "Sunday 4 PM - 6 PM");
+        assertThat(mBatteryChartPreferenceController.getSlotInformation())
+                .isEqualTo("Sunday 4 PM - 6 PM");
     }
 
     @Test
@@ -428,8 +430,8 @@
         mBatteryChartPreferenceController.mDailyChartIndex = 0;
         mBatteryChartPreferenceController.mHourlyChartIndex = 0;
 
-        assertThat(mBatteryChartPreferenceController.getSlotInformation()).isEqualTo(
-                "7:01 AM - 8 AM");
+        assertThat(mBatteryChartPreferenceController.getSlotInformation())
+                .isEqualTo("7:01 AM - 8 AM");
     }
 
     @Test
@@ -438,8 +440,7 @@
         mBatteryChartPreferenceController.mDailyChartIndex = 0;
         mBatteryChartPreferenceController.mHourlyChartIndex = 3;
 
-        assertThat(mBatteryChartPreferenceController.getSlotInformation()).isEqualTo(
-                "12 PM - now");
+        assertThat(mBatteryChartPreferenceController.getSlotInformation()).isEqualTo("12 PM - now");
     }
 
     @Test
@@ -448,8 +449,8 @@
         mBatteryChartPreferenceController.mDailyChartIndex = 0;
         mBatteryChartPreferenceController.mHourlyChartIndex = 0;
 
-        assertThat(mBatteryChartPreferenceController.getSlotInformation()).isEqualTo(
-                "7:01 AM - now");
+        assertThat(mBatteryChartPreferenceController.getSlotInformation())
+                .isEqualTo("7:01 AM - now");
     }
 
     @Test
@@ -508,7 +509,7 @@
     private BatteryChartPreferenceController createController() {
         final BatteryChartPreferenceController controller =
                 new BatteryChartPreferenceController(
-                        mContext, /*lifecycle=*/ null, mSettingsActivity);
+                        mContext, /* lifecycle= */ null, mSettingsActivity);
         controller.mPrefContext = mContext;
         return controller;
     }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartViewTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartViewTest.java
index 5213199..4263bad 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartViewTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartViewTest.java
@@ -45,8 +45,7 @@
     private FakeFeatureFactory mFeatureFactory;
     private PowerUsageFeatureProvider mPowerUsageFeatureProvider;
 
-    @Mock
-    private View mMockView;
+    @Mock private View mMockView;
 
     @Before
     public void setUp() {
@@ -54,17 +53,19 @@
         mFeatureFactory = FakeFeatureFactory.setupForTest();
         mPowerUsageFeatureProvider = mFeatureFactory.powerUsageFeatureProvider;
         mContext = spy(RuntimeEnvironment.application);
-        mContext.getResources().getConfiguration().setLocales(
-                new LocaleList(new Locale("en_US")));
+        mContext.getResources().getConfiguration().setLocales(new LocaleList(new Locale("en_US")));
         mBatteryChartView = new BatteryChartView(mContext);
     }
 
     @Test
     public void onClick_invokesCallback() {
         final int originalSelectedIndex = 2;
-        BatteryChartViewModel batteryChartViewModel = new BatteryChartViewModel(
-                List.of(90, 80, 70, 60), List.of(0L, 0L, 0L, 0L),
-                BatteryChartViewModel.AxisLabelPosition.BETWEEN_TRAPEZOIDS, null);
+        BatteryChartViewModel batteryChartViewModel =
+                new BatteryChartViewModel(
+                        List.of(90, 80, 70, 60),
+                        List.of(0L, 0L, 0L, 0L),
+                        BatteryChartViewModel.AxisLabelPosition.BETWEEN_TRAPEZOIDS,
+                        null);
         batteryChartViewModel.setSelectedIndex(originalSelectedIndex);
         mBatteryChartView.setViewModel(batteryChartViewModel);
         for (int i = 0; i < mBatteryChartView.mTrapezoidSlots.length; i++) {
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffDataTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffDataTest.java
index d4bae29..ffe3c44 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffDataTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffDataTest.java
@@ -60,10 +60,11 @@
     @Test
     public void needsCombineInSystemApp_isHidden_returnTrue() {
         final BatteryDiffEntry hiddenDiffEntry =
-                createBatteryDiffEntry(mContext, /*consumePower=*/ 0, /*isHidden=*/ true);
+                createBatteryDiffEntry(mContext, /* consumePower= */ 0, /* isHidden= */ true);
 
-        final boolean needsCombineInSystemApp = BatteryDiffData.needsCombineInSystemApp(
-                hiddenDiffEntry, List.of(), Set.of(), Set.of());
+        final boolean needsCombineInSystemApp =
+                BatteryDiffData.needsCombineInSystemApp(
+                        hiddenDiffEntry, List.of(), Set.of(), Set.of());
 
         assertThat(needsCombineInSystemApp).isTrue();
     }
@@ -71,13 +72,17 @@
     @Test
     public void needsCombineInSystemApp_isSystemApp_returnTrue() {
         final BatteryDiffEntry batteryDiffEntry =
-                createBatteryDiffEntry(mContext, /*consumePower=*/ 0, /*isHidden=*/ false);
+                createBatteryDiffEntry(mContext, /* consumePower= */ 0, /* isHidden= */ false);
         doReturn(mAppEntry).when(mApplicationsState).getEntry(anyString(), anyInt());
         mAppEntry.info = mApplicationInfo;
         mApplicationInfo.flags = ApplicationInfo.FLAG_SYSTEM;
 
-        final boolean needsCombineInSystemApp = BatteryDiffData.needsCombineInSystemApp(
-                batteryDiffEntry, List.of(), Set.of(ConvertUtils.FAKE_PACKAGE_NAME), Set.of());
+        final boolean needsCombineInSystemApp =
+                BatteryDiffData.needsCombineInSystemApp(
+                        batteryDiffEntry,
+                        List.of(),
+                        Set.of(ConvertUtils.FAKE_PACKAGE_NAME),
+                        Set.of());
 
         assertThat(needsCombineInSystemApp).isTrue();
     }
@@ -85,13 +90,14 @@
     @Test
     public void needsCombineInSystemApp_notSystemApp_returnFalse() {
         final BatteryDiffEntry batteryDiffEntry =
-                createBatteryDiffEntry(mContext, /*consumePower=*/ 0, /*isHidden=*/ false);
+                createBatteryDiffEntry(mContext, /* consumePower= */ 0, /* isHidden= */ false);
         doReturn(mAppEntry).when(mApplicationsState).getEntry(anyString(), anyInt());
         mAppEntry.info = mApplicationInfo;
         mApplicationInfo.flags = 0;
 
-        final boolean needsCombineInSystemApp = BatteryDiffData.needsCombineInSystemApp(
-                batteryDiffEntry, List.of(), Set.of(), Set.of());
+        final boolean needsCombineInSystemApp =
+                BatteryDiffData.needsCombineInSystemApp(
+                        batteryDiffEntry, List.of(), Set.of(), Set.of());
 
         assertThat(needsCombineInSystemApp).isFalse();
     }
@@ -100,11 +106,11 @@
     public void processPercentsAndSort_sumLessThan100_adjustTo100() {
         List<BatteryDiffEntry> batteryDiffEntries = new ArrayList<>();
         batteryDiffEntries.add(
-                createBatteryDiffEntry(mContext, /*consumePower=*/ 33.33, /*isHidden=*/ false));
+                createBatteryDiffEntry(mContext, /* consumePower= */ 33.33, /* isHidden= */ false));
         batteryDiffEntries.add(
-                createBatteryDiffEntry(mContext, /*consumePower=*/ 33.34, /*isHidden=*/ false));
+                createBatteryDiffEntry(mContext, /* consumePower= */ 33.34, /* isHidden= */ false));
         batteryDiffEntries.add(
-                createBatteryDiffEntry(mContext, /*consumePower=*/ 33.33, /*isHidden=*/ false));
+                createBatteryDiffEntry(mContext, /* consumePower= */ 33.33, /* isHidden= */ false));
 
         BatteryDiffData.processAndSortEntries(batteryDiffEntries);
 
@@ -120,11 +126,11 @@
     public void processPercentsAndSort_sumGreaterThan100_adjustTo100() {
         List<BatteryDiffEntry> batteryDiffEntries = new ArrayList<>();
         batteryDiffEntries.add(
-                createBatteryDiffEntry(mContext, /*consumePower=*/ 48.5, /*isHidden=*/ false));
+                createBatteryDiffEntry(mContext, /* consumePower= */ 48.5, /* isHidden= */ false));
         batteryDiffEntries.add(
-                createBatteryDiffEntry(mContext, /*consumePower=*/ 3, /*isHidden=*/ false));
+                createBatteryDiffEntry(mContext, /* consumePower= */ 3, /* isHidden= */ false));
         batteryDiffEntries.add(
-                createBatteryDiffEntry(mContext, /*consumePower=*/ 48.5, /*isHidden=*/ false));
+                createBatteryDiffEntry(mContext, /* consumePower= */ 48.5, /* isHidden= */ false));
 
         BatteryDiffData.processAndSortEntries(batteryDiffEntries);
 
@@ -136,47 +142,97 @@
         assertThat(batteryDiffEntries.get(2).getAdjustPercentageOffset()).isEqualTo(0);
     }
 
+    @Test
+    public void processPercentsAndSort_uninstalledApps_sortAsExpected() {
+        List<BatteryDiffEntry> batteryDiffEntries = new ArrayList<>();
+        batteryDiffEntries.add(
+                createBatteryDiffEntry(mContext, /* consumePower= */ 28.5, /* key= */ "APP_1"));
+        batteryDiffEntries.add(
+                createBatteryDiffEntry(
+                        mContext, /* consumePower= */ 20, BatteryDiffEntry.UNINSTALLED_APPS_KEY));
+        batteryDiffEntries.add(
+                createBatteryDiffEntry(mContext, /* consumePower= */ 3, /* key= */ "APP_2"));
+        batteryDiffEntries.add(
+                createBatteryDiffEntry(
+                        mContext, /* consumePower= */ 28.5, BatteryDiffEntry.SYSTEM_APPS_KEY));
+        batteryDiffEntries.add(
+                createBatteryDiffEntry(mContext, /* consumePower= */ 20, /* key= */ "APP_3"));
+
+        BatteryDiffData.processAndSortEntries(batteryDiffEntries);
+
+        assertThat(batteryDiffEntries.get(0).getKey()).isEqualTo("APP_1");
+        assertThat(batteryDiffEntries.get(1).getKey()).isEqualTo("APP_3");
+        assertThat(batteryDiffEntries.get(2).getKey()).isEqualTo("APP_2");
+        assertThat(batteryDiffEntries.get(3).getKey())
+                .isEqualTo(BatteryDiffEntry.UNINSTALLED_APPS_KEY);
+        assertThat(batteryDiffEntries.get(4).getKey()).isEqualTo(BatteryDiffEntry.SYSTEM_APPS_KEY);
+    }
+
     private static BatteryDiffEntry createBatteryDiffEntry(
             Context context, double consumePower, boolean isHidden) {
+        return createBatteryDiffEntry(context, consumePower, isHidden, /* key= */ null);
+    }
+
+    private static BatteryDiffEntry createBatteryDiffEntry(
+            Context context, double consumePower, String key) {
+        return createBatteryDiffEntry(context, consumePower, /* isHidden= */ false, key);
+    }
+
+    private static BatteryDiffEntry createBatteryDiffEntry(
+            Context context, double consumePower, boolean isHidden, String key) {
         final int currentUserId = context.getUserId();
-        final BatteryHistEntry batteryHistEntry = createBatteryHistEntry(
-                ConvertUtils.FAKE_PACKAGE_NAME, "fake_label", consumePower,
-                /*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
-                /*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
-                /*uid=*/ 0L, currentUserId, ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
-                /*foregroundUsageTimeInMs=*/ 0L,  /*backgroundUsageTimeInMs=*/ 0L, isHidden);
+        final BatteryHistEntry batteryHistEntry =
+                createBatteryHistEntry(
+                        ConvertUtils.FAKE_PACKAGE_NAME,
+                        "fake_label",
+                        consumePower,
+                        /* foregroundUsageConsumePower= */ 0,
+                        /* foregroundServiceUsageConsumePower= */ 0,
+                        /* backgroundUsageConsumePower= */ 0,
+                        /* cachedUsageConsumePower= */ 0,
+                        /* uid= */ 0L,
+                        currentUserId,
+                        ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 0L,
+                        /* backgroundUsageTimeInMs= */ 0L,
+                        isHidden);
         return new BatteryDiffEntry(
                 context,
                 batteryHistEntry.mUid,
                 batteryHistEntry.mUserId,
-                batteryHistEntry.getKey(),
+                key == null ? batteryHistEntry.getKey() : key,
                 batteryHistEntry.mIsHidden,
                 batteryHistEntry.mDrainType,
                 batteryHistEntry.mPackageName,
                 batteryHistEntry.mAppLabel,
                 batteryHistEntry.mConsumerType,
-                /*foregroundUsageTimeInMs=*/ 0,
-                /*backgroundUsageTimeInMs=*/ 0,
-                /*screenOnTimeInMs=*/ 0,
-                /*consumePower=*/ consumePower,
-                /*foregroundUsageConsumePower=*/ 0,
-                /*foregroundServiceUsageConsumePower=*/ 0,
-                /*backgroundUsageConsumePower=*/ 0,
-                /*cachedUsageConsumePower=*/ 0);
+                /* foregroundUsageTimeInMs= */ 0,
+                /* backgroundUsageTimeInMs= */ 0,
+                /* screenOnTimeInMs= */ 0,
+                consumePower,
+                /* foregroundUsageConsumePower= */ 0,
+                /* foregroundServiceUsageConsumePower= */ 0,
+                /* backgroundUsageConsumePower= */ 0,
+                /* cachedUsageConsumePower= */ 0);
     }
 
     private static BatteryHistEntry createBatteryHistEntry(
-            final String packageName, final String appLabel, final double consumePower,
+            final String packageName,
+            final String appLabel,
+            final double consumePower,
             final double foregroundUsageConsumePower,
             final double foregroundServiceUsageConsumePower,
-            final double backgroundUsageConsumePower, final double cachedUsageConsumePower,
-            final long uid, final long userId, final int consumerType,
-            final long foregroundUsageTimeInMs, final long backgroundUsageTimeInMs,
+            final double backgroundUsageConsumePower,
+            final double cachedUsageConsumePower,
+            final long uid,
+            final long userId,
+            final int consumerType,
+            final long foregroundUsageTimeInMs,
+            final long backgroundUsageTimeInMs,
             final boolean isHidden) {
         // Only insert required fields.
         final BatteryInformation batteryInformation =
-                BatteryInformation
-                        .newBuilder()
+                BatteryInformation.newBuilder()
                         .setAppLabel(appLabel)
                         .setConsumePower(consumePower)
                         .setForegroundUsageConsumePower(foregroundUsageConsumePower)
@@ -192,7 +248,8 @@
         values.put(BatteryHistEntry.KEY_UID, uid);
         values.put(BatteryHistEntry.KEY_USER_ID, userId);
         values.put(BatteryHistEntry.KEY_CONSUMER_TYPE, consumerType);
-        values.put(BatteryHistEntry.KEY_BATTERY_INFORMATION,
+        values.put(
+                BatteryHistEntry.KEY_BATTERY_INFORMATION,
                 ConvertUtils.convertBatteryInformationToString(batteryInformation));
         return new BatteryHistEntry(values);
     }
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 9bb4b73..d8b733c 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntryTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntryTest.java
@@ -58,35 +58,42 @@
 @Config(shadows = {BatteryDiffEntryTest.ShadowUserHandle.class})
 public final class BatteryDiffEntryTest {
 
+    private static final int UID = 100;
+    private static final int UNINSTALLED_UID = 101;
+    private static final String PACKAGE_NAME = "com.android.testing";
+    private static final String UNINSTALLED_PACKAGE_NAME = "com.android.testing.uninstalled";
+    private static final String UID_ZERO_PACKAGE_NAME = "com.android.testing.uid.zero";
+
     private Context mContext;
 
-    @Mock
-    private ApplicationInfo mMockAppInfo;
-    @Mock
-    private PackageManager mMockPackageManager;
-    @Mock
-    private UserManager mMockUserManager;
-    @Mock
-    private Drawable mMockDrawable;
-    @Mock
-    private Drawable mMockDrawable2;
-    @Mock
-    private Drawable mMockBadgedDrawable;
-    @Mock
-    private BatteryHistEntry mBatteryHistEntry;
-    @Mock
-    private PackageInfo mMockPackageInfo;
-    @Mock
-    private ConstantState mMockConstantState;
+    @Mock private ApplicationInfo mMockAppInfo;
+    @Mock private PackageManager mMockPackageManager;
+    @Mock private UserManager mMockUserManager;
+    @Mock private Drawable mMockDrawable;
+    @Mock private Drawable mMockDrawable2;
+    @Mock private Drawable mMockBadgedDrawable;
+    @Mock private BatteryHistEntry mBatteryHistEntry;
+    @Mock private PackageInfo mMockPackageInfo;
+    @Mock private ConstantState mMockConstantState;
 
     @Before
-    public void setUp() {
+    public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
         ShadowUserHandle.reset();
         mContext = spy(RuntimeEnvironment.application);
+        BatteryUtils.getInstance(mContext).reset();
         doReturn(mContext).when(mContext).getApplicationContext();
         doReturn(mMockUserManager).when(mContext).getSystemService(UserManager.class);
         doReturn(mMockPackageManager).when(mContext).getPackageManager();
+        doReturn(UID)
+                .when(mMockPackageManager)
+                .getPackageUid(PACKAGE_NAME, PackageManager.GET_META_DATA);
+        doReturn(BatteryUtils.UID_NULL)
+                .when(mMockPackageManager)
+                .getPackageUid(UNINSTALLED_PACKAGE_NAME, PackageManager.GET_META_DATA);
+        doReturn(BatteryUtils.UID_ZERO)
+                .when(mMockPackageManager)
+                .getPackageUid(UID_ZERO_PACKAGE_NAME, PackageManager.GET_META_DATA);
         BatteryDiffEntry.clearCache();
     }
 
@@ -95,22 +102,22 @@
         final BatteryDiffEntry entry =
                 new BatteryDiffEntry(
                         mContext,
-                        /*uid=*/ 0,
-                        /*userId=*/ 0,
-                        /*key=*/ "key",
-                        /*isHidden=*/ false,
-                        /*componentId=*/ -1,
-                        /*legacyPackageName=*/ null,
-                        /*legacyLabel=*/ null,
+                        /* uid= */ 0,
+                        /* userId= */ 0,
+                        /* key= */ "key",
+                        /* isHidden= */ false,
+                        /* componentId= */ -1,
+                        /* legacyPackageName= */ null,
+                        /* legacyLabel= */ null,
                         /*consumerType*/ ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
-                        /*foregroundUsageTimeInMs=*/ 10001L,
-                        /*backgroundUsageTimeInMs=*/ 20002L,
-                        /*screenOnTimeInMs=*/ 30003L,
-                        /*consumePower=*/ 22.0,
-                        /*foregroundUsageConsumePower=*/ 10.0,
-                        /*foregroundServiceUsageConsumePower=*/ 10.0,
-                        /*backgroundUsageConsumePower=*/ 1.0,
-                        /*cachedUsageConsumePower=*/ 1.0);
+                        /* foregroundUsageTimeInMs= */ 10001L,
+                        /* backgroundUsageTimeInMs= */ 20002L,
+                        /* screenOnTimeInMs= */ 30003L,
+                        /* consumePower= */ 22.0,
+                        /* foregroundUsageConsumePower= */ 10.0,
+                        /* foregroundServiceUsageConsumePower= */ 10.0,
+                        /* backgroundUsageConsumePower= */ 1.0,
+                        /* cachedUsageConsumePower= */ 1.0);
         entry.setTotalConsumePower(100.0);
 
         assertThat(entry.getPercentage()).isEqualTo(22.0);
@@ -121,22 +128,22 @@
         final BatteryDiffEntry entry =
                 new BatteryDiffEntry(
                         mContext,
-                        /*uid=*/ 0,
-                        /*userId=*/ 0,
-                        /*key=*/ "key",
-                        /*isHidden=*/ false,
-                        /*componentId=*/ -1,
-                        /*legacyPackageName=*/ null,
-                        /*legacyLabel=*/ null,
+                        /* uid= */ 0,
+                        /* userId= */ 0,
+                        /* key= */ "key",
+                        /* isHidden= */ false,
+                        /* componentId= */ -1,
+                        /* legacyPackageName= */ null,
+                        /* legacyLabel= */ null,
                         /*consumerType*/ ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
-                        /*foregroundUsageTimeInMs=*/ 10001L,
-                        /*backgroundUsageTimeInMs=*/ 20002L,
-                        /*screenOnTimeInMs=*/ 30003L,
-                        /*consumePower=*/ 22.0,
-                        /*foregroundUsageConsumePower=*/ 10.0,
-                        /*foregroundServiceUsageConsumePower=*/ 10.0,
-                        /*backgroundUsageConsumePower=*/ 1.0,
-                        /*cachedUsageConsumePower=*/ 1.0);
+                        /* foregroundUsageTimeInMs= */ 10001L,
+                        /* backgroundUsageTimeInMs= */ 20002L,
+                        /* screenOnTimeInMs= */ 30003L,
+                        /* consumePower= */ 22.0,
+                        /* foregroundUsageConsumePower= */ 10.0,
+                        /* foregroundServiceUsageConsumePower= */ 10.0,
+                        /* backgroundUsageConsumePower= */ 1.0,
+                        /* cachedUsageConsumePower= */ 1.0);
         entry.setTotalConsumePower(0);
 
         assertThat(entry.getPercentage()).isEqualTo(0);
@@ -149,22 +156,22 @@
         BatteryDiffEntry systemAppsBatteryDiffEntry =
                 new BatteryDiffEntry(
                         mContext,
-                        /*uid=*/ 0,
-                        /*userId=*/ 0,
-                        /*key=*/ BatteryDiffEntry.SYSTEM_APPS_KEY,
-                        /*isHidden=*/ false,
-                        /*componentId=*/ -1,
-                        /*legacyPackageName=*/ null,
-                        /*legacyLabel=*/ BatteryDiffEntry.SYSTEM_APPS_KEY,
+                        /* uid= */ 0,
+                        /* userId= */ 0,
+                        /* key= */ BatteryDiffEntry.SYSTEM_APPS_KEY,
+                        /* isHidden= */ false,
+                        /* componentId= */ -1,
+                        /* legacyPackageName= */ null,
+                        /* legacyLabel= */ BatteryDiffEntry.SYSTEM_APPS_KEY,
                         /*consumerType*/ ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
-                        /*foregroundUsageTimeInMs=*/ 0,
-                        /*backgroundUsageTimeInMs=*/ 0,
-                        /*screenOnTimeInMs=*/ 0,
-                        /*consumePower=*/ 0,
-                        /*foregroundUsageConsumePower=*/ 0,
-                        /*foregroundServiceUsageConsumePower=*/ 0,
-                        /*backgroundUsageConsumePower=*/ 0,
-                        /*cachedUsageConsumePower=*/ 0);
+                        /* foregroundUsageTimeInMs= */ 0,
+                        /* backgroundUsageTimeInMs= */ 0,
+                        /* screenOnTimeInMs= */ 0,
+                        /* consumePower= */ 0,
+                        /* foregroundUsageConsumePower= */ 0,
+                        /* foregroundServiceUsageConsumePower= */ 0,
+                        /* backgroundUsageConsumePower= */ 0,
+                        /* cachedUsageConsumePower= */ 0);
         systemAppsBatteryDiffEntry.mConsumePower = 16;
         systemAppsBatteryDiffEntry.setTotalConsumePower(100);
         entryList.add(systemAppsBatteryDiffEntry);
@@ -184,14 +191,14 @@
     public void testLoadLabelAndIcon_forSystemBattery_returnExpectedResult() {
         final String expectedName = "Ambient display";
         // Generates fake testing data.
-        final ContentValues values = getContentValuesWithType(
-                ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
+        final ContentValues values =
+                getContentValuesWithType(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
         final BatteryInformation batteryInformation =
-                BatteryInformation
-                        .newBuilder()
+                BatteryInformation.newBuilder()
                         .setDrainType(BatteryConsumer.POWER_COMPONENT_AMBIENT_DISPLAY)
                         .build();
-        values.put(BatteryHistEntry.KEY_BATTERY_INFORMATION,
+        values.put(
+                BatteryHistEntry.KEY_BATTERY_INFORMATION,
                 ConvertUtils.convertBatteryInformationToString(batteryInformation));
         final BatteryHistEntry batteryHistEntry = new BatteryHistEntry(values);
 
@@ -215,8 +222,8 @@
         final String expectedName = "Removed user";
         doReturn(null).when(mMockUserManager).getUserInfo(1001);
         // Generates fake testing data.
-        final ContentValues values = getContentValuesWithType(
-                ConvertUtils.CONSUMER_TYPE_USER_BATTERY);
+        final ContentValues values =
+                getContentValuesWithType(ConvertUtils.CONSUMER_TYPE_USER_BATTERY);
         values.put(BatteryHistEntry.KEY_USER_ID, Integer.valueOf(1001));
         final BatteryHistEntry batteryHistEntry = new BatteryHistEntry(values);
 
@@ -240,14 +247,12 @@
     public void testGetAppLabel_loadDataFromApplicationInfo() throws Exception {
         final String expectedAppLabel = "fake app label";
         final String fakePackageName = "com.fake.google.com";
-        final ContentValues values = getContentValuesWithType(
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
+        final ContentValues values =
+                getContentValuesWithType(ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
         values.put(BatteryHistEntry.KEY_UID, /*invalid uid*/ 10001);
         values.put(BatteryHistEntry.KEY_PACKAGE_NAME, fakePackageName);
-        doReturn(mMockAppInfo).when(mMockPackageManager)
-                .getApplicationInfo(fakePackageName, 0);
-        doReturn(expectedAppLabel).when(mMockPackageManager)
-                .getApplicationLabel(mMockAppInfo);
+        doReturn(mMockAppInfo).when(mMockPackageManager).getApplicationInfo(fakePackageName, 0);
+        doReturn(expectedAppLabel).when(mMockPackageManager).getApplicationLabel(mMockAppInfo);
         final BatteryHistEntry batteryHistEntry = new BatteryHistEntry(values);
 
         final BatteryDiffEntry entry = createBatteryDiffEntry(10, batteryHistEntry);
@@ -267,8 +272,8 @@
     @Test
     public void testGetAppLabel_loadDataFromPreDefinedNameAndUid() {
         final String expectedAppLabel = "Android OS";
-        final ContentValues values = getContentValuesWithType(
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
+        final ContentValues values =
+                getContentValuesWithType(ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
         final BatteryHistEntry batteryHistEntry = new BatteryHistEntry(values);
 
         final BatteryDiffEntry entry = createBatteryDiffEntry(10, batteryHistEntry);
@@ -284,14 +289,12 @@
     @Test
     public void testGetAppLabel_nullAppLabel_returnAppLabelInBatteryHistEntry() {
         final String expectedAppLabel = "fake app label";
-        final ContentValues values = getContentValuesWithType(
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
+        final ContentValues values =
+                getContentValuesWithType(ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
         final BatteryInformation batteryInformation =
-                BatteryInformation
-                        .newBuilder()
-                        .setAppLabel(expectedAppLabel)
-                        .build();
-        values.put(BatteryHistEntry.KEY_BATTERY_INFORMATION,
+                BatteryInformation.newBuilder().setAppLabel(expectedAppLabel).build();
+        values.put(
+                BatteryHistEntry.KEY_BATTERY_INFORMATION,
                 ConvertUtils.convertBatteryInformationToString(batteryInformation));
         final BatteryHistEntry batteryHistEntry = new BatteryHistEntry(values);
 
@@ -304,8 +307,8 @@
 
     @Test
     public void testGetAppIcon_nonUidConsumer_returnAppIconInBatteryDiffEntry() {
-        final ContentValues values = getContentValuesWithType(
-                ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
+        final ContentValues values =
+                getContentValuesWithType(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
         final BatteryHistEntry batteryHistEntry = new BatteryHistEntry(values);
         mockConstantState(mMockDrawable);
 
@@ -324,7 +327,8 @@
         final BatteryDiffEntry entry = createBatteryDiffEntry(mMockDrawable);
         mockConstantState(mMockDrawable);
         mockConstantState(mMockBadgedDrawable);
-        doReturn(mMockBadgedDrawable).when(mMockUserManager)
+        doReturn(mMockBadgedDrawable)
+                .when(mMockUserManager)
                 .getBadgedIconForUser(eq(mMockDrawable), any());
 
         entry.mAppIcon = null;
@@ -347,17 +351,18 @@
     }
 
     @Test
-    public void testClearCache_clearDataForResourcesAndFlags() {
+    public void testClearCache_clearDataForAllCaches() {
         BatteryDiffEntry.sResourceCache.put(
                 "fake application key",
-                new BatteryEntry.NameAndIcon("app label", null, /*iconId=*/ 0));
-        BatteryDiffEntry.sValidForRestriction.put(
-                "fake application key", Boolean.valueOf(false));
+                new BatteryEntry.NameAndIcon("app label", null, /* iconId= */ 0));
+        BatteryDiffEntry.sValidForRestriction.put("fake application key", Boolean.valueOf(false));
+        BatteryDiffEntry.sPackageNameAndUidCache.put(PACKAGE_NAME, UID);
 
         BatteryDiffEntry.clearCache();
 
         assertThat(BatteryDiffEntry.sResourceCache).isEmpty();
         assertThat(BatteryDiffEntry.sValidForRestriction).isEmpty();
+        assertThat(BatteryDiffEntry.sPackageNameAndUidCache).isEmpty();
     }
 
     @Test
@@ -386,7 +391,8 @@
         final BatteryDiffEntry entry =
                 createBatteryDiffEntry(
                         ConvertUtils.CONSUMER_TYPE_USER_BATTERY,
-                        /*uid=*/ 0, /*isHidden=*/ false);
+                        /* uid= */ 0,
+                        /* isHidden= */ false);
         assertThat(entry.isSystemEntry()).isTrue();
     }
 
@@ -395,7 +401,8 @@
         final BatteryDiffEntry entry =
                 createBatteryDiffEntry(
                         ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY,
-                        /*uid=*/ 0, /*isHidden=*/ false);
+                        /* uid= */ 0,
+                        /* isHidden= */ false);
         assertThat(entry.isSystemEntry()).isTrue();
     }
 
@@ -404,7 +411,8 @@
         final BatteryDiffEntry entry =
                 createBatteryDiffEntry(
                         ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
-                        /*uid=*/ 123, /*isHidden=*/ false);
+                        /* uid= */ 123,
+                        /* isHidden= */ false);
         assertThat(entry.isSystemEntry()).isFalse();
     }
 
@@ -413,39 +421,98 @@
         final BatteryDiffEntry entry =
                 createBatteryDiffEntry(
                         ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
-                        /*uid=*/ 1230, /*isHidden=*/ false);
+                        /* uid= */ 1230,
+                        /* isHidden= */ false);
         assertThat(entry.isSystemEntry()).isFalse();
     }
 
     @Test
+    public void testIsUninstalledEntry_systemApp_returnFalse() {
+        final BatteryDiffEntry entry =
+                createBatteryDiffEntry(
+                        ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY,
+                        /* uid= */ 0,
+                        /* isHidden= */ false);
+        assertThat(entry.isSystemEntry()).isTrue();
+        assertThat(entry.isUninstalledEntry()).isFalse();
+    }
+
+    @Test
+    public void testIsUninstalledEntry_installedApp_returnFalse() throws Exception {
+        final ContentValues values =
+                getContentValuesWithType(ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
+        values.put(BatteryHistEntry.KEY_UID, UID);
+        values.put(BatteryHistEntry.KEY_PACKAGE_NAME, PACKAGE_NAME);
+        final BatteryDiffEntry entry = createBatteryDiffEntry(10, new BatteryHistEntry(values));
+
+        assertThat(entry.isSystemEntry()).isFalse();
+        assertThat(BatteryDiffEntry.sPackageNameAndUidCache.containsKey(PACKAGE_NAME)).isFalse();
+        assertThat(entry.isUninstalledEntry()).isFalse();
+        assertThat(BatteryDiffEntry.sPackageNameAndUidCache.containsKey(PACKAGE_NAME)).isTrue();
+        assertThat(BatteryDiffEntry.sPackageNameAndUidCache.get(PACKAGE_NAME)).isEqualTo(UID);
+    }
+
+    @Test
+    public void testIsUninstalledEntry_uidZero_returnFalse() throws Exception {
+        final ContentValues values =
+                getContentValuesWithType(ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
+        values.put(BatteryHistEntry.KEY_UID, BatteryUtils.UID_ZERO);
+        values.put(BatteryHistEntry.KEY_PACKAGE_NAME, PACKAGE_NAME);
+        final BatteryDiffEntry entry = createBatteryDiffEntry(10, new BatteryHistEntry(values));
+
+        assertThat(entry.isSystemEntry()).isFalse();
+        assertThat(BatteryDiffEntry.sPackageNameAndUidCache.containsKey(PACKAGE_NAME)).isFalse();
+        assertThat(entry.isUninstalledEntry()).isFalse();
+        assertThat(BatteryDiffEntry.sPackageNameAndUidCache.containsKey(PACKAGE_NAME)).isFalse();
+    }
+
+    @Test
+    public void testIsUninstalledEntry_uninstalledApp_returnTrue() throws Exception {
+        final ContentValues values =
+                getContentValuesWithType(ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
+        values.put(BatteryHistEntry.KEY_UID, UNINSTALLED_UID);
+        values.put(BatteryHistEntry.KEY_PACKAGE_NAME, UNINSTALLED_PACKAGE_NAME);
+        final BatteryDiffEntry entry = createBatteryDiffEntry(10, new BatteryHistEntry(values));
+
+        assertThat(entry.isSystemEntry()).isFalse();
+        assertThat(BatteryDiffEntry.sPackageNameAndUidCache.containsKey(UNINSTALLED_PACKAGE_NAME))
+                .isFalse();
+        assertThat(entry.isUninstalledEntry()).isTrue();
+        assertThat(BatteryDiffEntry.sPackageNameAndUidCache.get(UNINSTALLED_PACKAGE_NAME))
+                .isEqualTo(BatteryUtils.UID_NULL);
+    }
+
+    @Test
     public void testUpdateRestrictionFlagState_updateFlagAsExpected() throws Exception {
         final String expectedAppLabel = "fake app label";
         final String fakePackageName = "com.fake.google.com";
-        final ContentValues values = getContentValuesWithType(
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
+        final ContentValues values =
+                getContentValuesWithType(ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
         values.put(BatteryHistEntry.KEY_UID, /*invalid uid*/ 10001);
         values.put(BatteryHistEntry.KEY_PACKAGE_NAME, fakePackageName);
-        final BatteryDiffEntry entry =
-                createBatteryDiffEntry(10, new BatteryHistEntry(values));
+        final BatteryDiffEntry entry = createBatteryDiffEntry(10, new BatteryHistEntry(values));
 
         entry.updateRestrictionFlagState();
         // Sets false if the app entry cannot be found.
         assertThat(entry.mValidForRestriction).isFalse();
 
-        doReturn(BatteryUtils.UID_NULL).when(mMockPackageManager).getPackageUid(
-                entry.getPackageName(), PackageManager.GET_META_DATA);
+        doReturn(BatteryUtils.UID_NULL)
+                .when(mMockPackageManager)
+                .getPackageUid(entry.getPackageName(), PackageManager.GET_META_DATA);
         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);
+        doReturn(1000)
+                .when(mMockPackageManager)
+                .getPackageUid(entry.getPackageName(), PackageManager.GET_META_DATA);
         entry.updateRestrictionFlagState();
         // Sets false if the app PackageInfo cannot be found.
         assertThat(entry.mValidForRestriction).isFalse();
 
-        doReturn(mMockPackageInfo).when(mMockPackageManager).getPackageInfo(
-                eq(entry.getPackageName()), anyInt());
+        doReturn(mMockPackageInfo)
+                .when(mMockPackageManager)
+                .getPackageInfo(eq(entry.getPackageName()), anyInt());
         entry.updateRestrictionFlagState();
         // Sets true if package is valid and PackageInfo can be found.
         assertThat(entry.mValidForRestriction).isTrue();
@@ -454,11 +521,10 @@
     @Test
     public void testGetPackageName_returnExpectedResult() {
         final String expectedPackageName = "com.fake.google.com";
-        final ContentValues values = getContentValuesWithType(
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
+        final ContentValues values =
+                getContentValuesWithType(ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
         values.put(BatteryHistEntry.KEY_PACKAGE_NAME, expectedPackageName);
-        final BatteryDiffEntry entry =
-                createBatteryDiffEntry(10, new BatteryHistEntry(values));
+        final BatteryDiffEntry entry = createBatteryDiffEntry(10, new BatteryHistEntry(values));
 
         assertThat(entry.getPackageName()).isEqualTo(expectedPackageName);
     }
@@ -466,59 +532,56 @@
     @Test
     public void testGetPackageName_withProcessName_returnExpectedResult() {
         final String expectedPackageName = "com.fake.google.com";
-        final ContentValues values = getContentValuesWithType(
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
-        values.put(
-                BatteryHistEntry.KEY_PACKAGE_NAME,
-                expectedPackageName + ":privileged_process0");
-        final BatteryDiffEntry entry =
-                createBatteryDiffEntry(10, new BatteryHistEntry(values));
+        final ContentValues values =
+                getContentValuesWithType(ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
+        values.put(BatteryHistEntry.KEY_PACKAGE_NAME, expectedPackageName + ":privileged_process0");
+        final BatteryDiffEntry entry = createBatteryDiffEntry(10, new BatteryHistEntry(values));
 
         assertThat(entry.getPackageName()).isEqualTo(expectedPackageName);
     }
 
-    private BatteryDiffEntry createBatteryDiffEntry(
-            int consumerType, long uid, boolean isHidden) {
+    private BatteryDiffEntry createBatteryDiffEntry(int consumerType, long uid, boolean isHidden) {
         return new BatteryDiffEntry(
                 mContext,
-                /*uid=*/ uid,
-                /*userId=*/ 0,
-                /*key=*/ "key",
-                /*isHidden=*/ isHidden,
-                /*componentId=*/ -1,
-                /*legacyPackageName=*/ null,
-                /*legacyLabel=*/ null,
+                /* uid= */ uid,
+                /* userId= */ 0,
+                /* key= */ "key",
+                /* isHidden= */ isHidden,
+                /* componentId= */ -1,
+                /* legacyPackageName= */ null,
+                /* legacyLabel= */ null,
                 /*consumerType*/ consumerType,
-                /*foregroundUsageTimeInMs=*/ 0,
-                /*backgroundUsageTimeInMs=*/ 0,
-                /*screenOnTimeInMs=*/ 0,
-                /*consumePower=*/ 0,
-                /*foregroundUsageConsumePower=*/ 0,
-                /*foregroundServiceUsageConsumePower=*/ 0,
-                /*backgroundUsageConsumePower=*/ 0,
-                /*cachedUsageConsumePower=*/ 0);
+                /* foregroundUsageTimeInMs= */ 0,
+                /* backgroundUsageTimeInMs= */ 0,
+                /* screenOnTimeInMs= */ 0,
+                /* consumePower= */ 0,
+                /* foregroundUsageConsumePower= */ 0,
+                /* foregroundServiceUsageConsumePower= */ 0,
+                /* backgroundUsageConsumePower= */ 0,
+                /* cachedUsageConsumePower= */ 0);
     }
 
     private BatteryDiffEntry createBatteryDiffEntry(
             double consumePower, BatteryHistEntry batteryHistEntry) {
-        final BatteryDiffEntry entry = new BatteryDiffEntry(
-                mContext,
-                batteryHistEntry.mUid,
-                batteryHistEntry.mUserId,
-                batteryHistEntry.getKey(),
-                batteryHistEntry.mIsHidden,
-                batteryHistEntry.mDrainType,
-                batteryHistEntry.mPackageName,
-                batteryHistEntry.mAppLabel,
-                batteryHistEntry.mConsumerType,
-                /*foregroundUsageTimeInMs=*/ 0,
-                /*backgroundUsageTimeInMs=*/ 0,
-                /*screenOnTimeInMs=*/ 0,
-                consumePower,
-                /*foregroundUsageConsumePower=*/ 0,
-                /*foregroundServiceUsageConsumePower=*/ 0,
-                /*backgroundUsageConsumePower=*/ 0,
-                /*cachedUsageConsumePower=*/ 0);
+        final BatteryDiffEntry entry =
+                new BatteryDiffEntry(
+                        mContext,
+                        batteryHistEntry.mUid,
+                        batteryHistEntry.mUserId,
+                        batteryHistEntry.getKey(),
+                        batteryHistEntry.mIsHidden,
+                        batteryHistEntry.mDrainType,
+                        batteryHistEntry.mPackageName,
+                        batteryHistEntry.mAppLabel,
+                        batteryHistEntry.mConsumerType,
+                        /* foregroundUsageTimeInMs= */ 0,
+                        /* backgroundUsageTimeInMs= */ 0,
+                        /* screenOnTimeInMs= */ 0,
+                        consumePower,
+                        /* foregroundUsageConsumePower= */ 0,
+                        /* foregroundServiceUsageConsumePower= */ 0,
+                        /* backgroundUsageConsumePower= */ 0,
+                        /* cachedUsageConsumePower= */ 0);
         entry.setTotalConsumePower(100.0);
         return entry;
     }
@@ -530,15 +593,14 @@
     }
 
     private BatteryDiffEntry createBatteryDiffEntry(Drawable drawable) throws Exception {
-        final ContentValues values = getContentValuesWithType(
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
+        final ContentValues values =
+                getContentValuesWithType(ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
         values.put(BatteryHistEntry.KEY_UID, 1001);
         values.put(BatteryHistEntry.KEY_PACKAGE_NAME, "com.a.b.c");
         final BatteryHistEntry batteryHistEntry = new BatteryHistEntry(values);
         doReturn(drawable).when(mMockPackageManager).getDefaultActivityIcon();
         doReturn(null).when(mMockPackageManager).getApplicationInfo("com.a.b.c", 0);
-        doReturn(new String[]{"com.a.b.c"}).when(mMockPackageManager)
-                .getPackagesForUid(1001);
+        doReturn(new String[] {"com.a.b.c"}).when(mMockPackageManager).getPackagesForUid(1001);
         return createBatteryDiffEntry(10, batteryHistEntry);
     }
 
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 e9606da..83b4458 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryEntryTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryEntryTest.java
@@ -61,18 +61,15 @@
     private static final String HIGH_DRAIN_PACKAGE = "com.android.test.screen";
     private static final String ANDROID_PACKAGE = "android";
 
-    @Rule
-    public MockitoRule mocks = MockitoJUnit.rule();
+    @Rule public MockitoRule mocks = MockitoJUnit.rule();
 
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private Context mMockContext;
+
     private Context mContext;
-    @Mock
-    private PackageManager mMockPackageManager;
-    @Mock
-    private UserManager mMockUserManager;
-    @Mock
-    private UidBatteryConsumer mUidBatteryConsumer;
+    @Mock private PackageManager mMockPackageManager;
+    @Mock private UserManager mMockUserManager;
+    @Mock private UidBatteryConsumer mUidBatteryConsumer;
 
     @Before
     public void stubContextToReturnMockPackageManager() {
@@ -83,23 +80,27 @@
     @Before
     public void stubPackageManagerToReturnAppPackageAndName() throws NameNotFoundException {
         when(mMockPackageManager.getApplicationInfo(anyString(), eq(0) /* no flags */))
-                .thenAnswer(invocation -> {
-                    ApplicationInfo info = new ApplicationInfo();
-                    info.packageName = invocation.getArgument(0);
-                    return info;
-                });
+                .thenAnswer(
+                        invocation -> {
+                            ApplicationInfo info = new ApplicationInfo();
+                            info.packageName = invocation.getArgument(0);
+                            return info;
+                        });
         when(mMockPackageManager.getApplicationLabel(any(ApplicationInfo.class)))
-                .thenAnswer(invocation -> LABEL_PREFIX
-                        + ((ApplicationInfo) invocation.getArgument(0)).packageName);
+                .thenAnswer(
+                        invocation ->
+                                LABEL_PREFIX
+                                        + ((ApplicationInfo) invocation.getArgument(0))
+                                                .packageName);
     }
 
-    private BatteryEntry createBatteryEntryForApp(String[] packages, String packageName,
-            String highDrainPackage) {
+    private BatteryEntry createBatteryEntryForApp(
+            String[] packages, String packageName, String highDrainPackage) {
         UidBatteryConsumer consumer = mock(UidBatteryConsumer.class);
         when(consumer.getUid()).thenReturn(APP_UID);
         when(consumer.getPackageWithHighestDrain()).thenReturn(highDrainPackage);
-        return new BatteryEntry(mMockContext, mMockUserManager,
-                consumer, false, APP_UID, packages, packageName);
+        return new BatteryEntry(
+                mMockContext, mMockUserManager, consumer, false, APP_UID, packages, packageName);
     }
 
     private BatteryEntry createAggregateBatteryEntry(int powerComponentId) {
@@ -122,14 +123,13 @@
     private BatteryEntry createUserBatteryConsumer(int userId) {
         UserBatteryConsumer consumer = mock(UserBatteryConsumer.class);
         when(consumer.getUserId()).thenReturn(userId);
-        return new BatteryEntry(mMockContext, mMockUserManager,
-                consumer, false, 0, null, null);
+        return new BatteryEntry(mMockContext, mMockUserManager, consumer, false, 0, null, null);
     }
 
     @Test
     public void batteryEntryForApp_shouldSetDefaultPackageNameAndLabel() throws Exception {
-        BatteryEntry entry = createBatteryEntryForApp(null, APP_DEFAULT_PACKAGE_NAME,
-                HIGH_DRAIN_PACKAGE);
+        BatteryEntry entry =
+                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);
@@ -157,20 +157,24 @@
 
     @Test
     public void batteryEntryForApp_shouldSetHighestDrainPackage_whenMultiplePackagesFoundForUid() {
-        BatteryEntry entry = createBatteryEntryForApp(
-                new String[]{APP_DEFAULT_PACKAGE_NAME, "package2", "package3"}, null,
-                HIGH_DRAIN_PACKAGE);
+        BatteryEntry entry =
+                createBatteryEntryForApp(
+                        new String[] {APP_DEFAULT_PACKAGE_NAME, "package2", "package3"},
+                        null,
+                        HIGH_DRAIN_PACKAGE);
 
         assertThat(entry.getLabel()).isEqualTo(LABEL_PREFIX + HIGH_DRAIN_PACKAGE);
     }
 
     @Test
     public void batteryEntryForAOD_containCorrectInfo() {
-        final BatteryEntry entry = new BatteryEntry(RuntimeEnvironment.application,
-                BatteryConsumer.POWER_COMPONENT_AMBIENT_DISPLAY,
-                /* devicePowerMah= */ 200,
-                /* usageDurationMs= */ 1000,
-                /* isHidden= */ false);
+        final BatteryEntry entry =
+                new BatteryEntry(
+                        RuntimeEnvironment.application,
+                        BatteryConsumer.POWER_COMPONENT_AMBIENT_DISPLAY,
+                        /* devicePowerMah= */ 200,
+                        /* usageDurationMs= */ 1000,
+                        /* isHidden= */ false);
 
         assertThat(entry.mIconId).isEqualTo(R.drawable.ic_settings_aod);
         assertThat(entry.mName).isEqualTo("Ambient display");
@@ -178,10 +182,12 @@
 
     @Test
     public void batteryEntryForCustomComponent_containCorrectInfo() {
-        final BatteryEntry entry = new BatteryEntry(RuntimeEnvironment.application,
-                BatteryConsumer.FIRST_CUSTOM_POWER_COMPONENT_ID + 42,
-                /* powerComponentName= */ "ABC",
-                /* devicePowerMah= */ 200);
+        final BatteryEntry entry =
+                new BatteryEntry(
+                        RuntimeEnvironment.application,
+                        BatteryConsumer.FIRST_CUSTOM_POWER_COMPONENT_ID + 42,
+                        /* powerComponentName= */ "ABC",
+                        /* devicePowerMah= */ 200);
 
         assertThat(entry.mIconId).isEqualTo(R.drawable.ic_power_system);
         assertThat(entry.mName).isEqualTo("ABC");
@@ -192,19 +198,28 @@
         when(mUidBatteryConsumer.getTimeInStateMs(UidBatteryConsumer.STATE_FOREGROUND))
                 .thenReturn(100L);
 
-        final BatteryEntry entry = new BatteryEntry(RuntimeEnvironment.application,
-                mMockUserManager, mUidBatteryConsumer, false, 0, null, null);
+        final BatteryEntry entry =
+                new BatteryEntry(
+                        RuntimeEnvironment.application,
+                        mMockUserManager,
+                        mUidBatteryConsumer,
+                        false,
+                        0,
+                        null,
+                        null);
 
         assertThat(entry.getTimeInForegroundMs()).isEqualTo(100L);
     }
 
     @Test
     public void getTimeInForegroundMs_aggregateBatteryConsumer() {
-        final BatteryEntry entry = new BatteryEntry(RuntimeEnvironment.application,
-                BatteryConsumer.POWER_COMPONENT_BLUETOOTH,
-                /* devicePowerMah= */ 10,
-                /* usageDurationMs= */ 100,
-                /* isHidden= */ false);
+        final BatteryEntry entry =
+                new BatteryEntry(
+                        RuntimeEnvironment.application,
+                        BatteryConsumer.POWER_COMPONENT_BLUETOOTH,
+                        /* devicePowerMah= */ 10,
+                        /* usageDurationMs= */ 100,
+                        /* isHidden= */ false);
 
         assertThat(entry.getTimeInForegroundMs()).isEqualTo(100L);
     }
@@ -214,19 +229,28 @@
         when(mUidBatteryConsumer.getTimeInStateMs(UidBatteryConsumer.STATE_BACKGROUND))
                 .thenReturn(100L);
 
-        final BatteryEntry entry = new BatteryEntry(RuntimeEnvironment.application,
-                mMockUserManager, mUidBatteryConsumer, false, 0, null, null);
+        final BatteryEntry entry =
+                new BatteryEntry(
+                        RuntimeEnvironment.application,
+                        mMockUserManager,
+                        mUidBatteryConsumer,
+                        false,
+                        0,
+                        null,
+                        null);
 
         assertThat(entry.getTimeInBackgroundMs()).isEqualTo(100L);
     }
 
     @Test
     public void getTimeInBackgroundMs_systemConsumer() {
-        final BatteryEntry entry = new BatteryEntry(RuntimeEnvironment.application,
-                BatteryConsumer.POWER_COMPONENT_BLUETOOTH,
-                /* devicePowerMah= */ 100,
-                /* usageDurationMs= */ 1000,
-                /* isHidden= */ false);
+        final BatteryEntry entry =
+                new BatteryEntry(
+                        RuntimeEnvironment.application,
+                        BatteryConsumer.POWER_COMPONENT_BLUETOOTH,
+                        /* devicePowerMah= */ 100,
+                        /* usageDurationMs= */ 1000,
+                        /* isHidden= */ false);
 
         assertThat(entry.getTimeInBackgroundMs()).isEqualTo(0);
     }
@@ -241,16 +265,17 @@
 
     @Test
     public void getKey_AggregateBatteryConsumer_returnComponentId() {
-        final BatteryEntry entry = createAggregateBatteryEntry(
-                BatteryConsumer.POWER_COMPONENT_BLUETOOTH);
+        final BatteryEntry entry =
+                createAggregateBatteryEntry(BatteryConsumer.POWER_COMPONENT_BLUETOOTH);
         final String key = entry.getKey();
         assertThat(key).isEqualTo("S|2");
     }
 
     @Test
     public void getKey_CustomAggregateBatteryConsumer_returnComponentId() {
-        final BatteryEntry entry = createCustomAggregateBatteryEntry(
-                BatteryConsumer.FIRST_CUSTOM_POWER_COMPONENT_ID + 42);
+        final BatteryEntry entry =
+                createCustomAggregateBatteryEntry(
+                        BatteryConsumer.FIRST_CUSTOM_POWER_COMPONENT_ID + 42);
         final String key = entry.getKey();
         assertThat(key).isEqualTo("S|1042");
     }
@@ -269,19 +294,18 @@
         doReturn(mMockUserManager).when(mContext).getSystemService(UserManager.class);
         doReturn(null).when(mMockUserManager).getUserInfo(userId);
 
-        final NameAndIcon nameAndIcon = BatteryEntry.getNameAndIconFromUserId(
-                mContext, userId);
-        assertThat(nameAndIcon.mName).isEqualTo(getString(
-                R.string.running_process_item_removed_user_label));
+        final NameAndIcon nameAndIcon = BatteryEntry.getNameAndIconFromUserId(mContext, userId);
+        assertThat(nameAndIcon.mName)
+                .isEqualTo(getString(R.string.running_process_item_removed_user_label));
         assertThat(nameAndIcon.mIcon).isNull();
     }
 
     @Test
     public void getNameAndIconFromUid_rerturnExpectedName() {
-        final NameAndIcon nameAndIcon = BatteryEntry.getNameAndIconFromUid(
-                mContext, /* name */ null, /* uid */ 0);
-        assertThat(nameAndIcon.mName).isEqualTo(
-                getString(com.android.settingslib.R.string.process_kernel_label));
+        final NameAndIcon nameAndIcon =
+                BatteryEntry.getNameAndIconFromUid(mContext, /* name */ null, /* uid */ 0);
+        assertThat(nameAndIcon.mName)
+                .isEqualTo(getString(com.android.settingslib.R.string.process_kernel_label));
 
         assertNameAndIcon("mediaserver", R.string.process_mediaserver_label);
         assertNameAndIcon("dex2oat32", R.string.process_dex2oat_label);
@@ -291,63 +315,75 @@
 
     @Test
     public void getNameAndIconFromUid_tetheringUid_rerturnExpectedName() {
-        final NameAndIcon nameAndIcon = BatteryEntry.getNameAndIconFromUid(
-                mContext, /* name */ null, /* uid */ BatteryUtils.UID_TETHERING);
+        final NameAndIcon nameAndIcon =
+                BatteryEntry.getNameAndIconFromUid(
+                        mContext, /* name */ null, /* uid */ BatteryUtils.UID_TETHERING);
 
         assertThat(nameAndIcon.mName).isEqualTo(getString(R.string.process_network_tethering));
     }
 
     @Test
     public void getNameAndIconFromUid_removedAppsUid_rerturnExpectedName() {
-        final NameAndIcon nameAndIcon = BatteryEntry.getNameAndIconFromUid(
-                mContext, /* name */ null, /* uid */ BatteryUtils.UID_REMOVED_APPS);
+        final NameAndIcon nameAndIcon =
+                BatteryEntry.getNameAndIconFromUid(
+                        mContext, /* name */ null, /* uid */ BatteryUtils.UID_REMOVED_APPS);
 
         assertThat(nameAndIcon.mName).isEqualTo(getString(R.string.process_removed_apps));
     }
 
     @Test
     public void getNameAndIconFromPowerComponent_rerturnExpectedNameAndIcon() {
-        assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_SCREEN,
+        assertNameAndIcon(
+                BatteryConsumer.POWER_COMPONENT_SCREEN,
                 R.string.power_screen,
                 R.drawable.ic_settings_display);
-        assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_CPU,
+        assertNameAndIcon(
+                BatteryConsumer.POWER_COMPONENT_CPU,
                 R.string.power_cpu,
                 R.drawable.ic_settings_cpu);
-        assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_BLUETOOTH,
+        assertNameAndIcon(
+                BatteryConsumer.POWER_COMPONENT_BLUETOOTH,
                 R.string.power_bluetooth,
                 R.drawable.ic_settings_bluetooth);
-        assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_CAMERA,
+        assertNameAndIcon(
+                BatteryConsumer.POWER_COMPONENT_CAMERA,
                 R.string.power_camera,
                 R.drawable.ic_settings_camera);
-        assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_FLASHLIGHT,
+        assertNameAndIcon(
+                BatteryConsumer.POWER_COMPONENT_FLASHLIGHT,
                 R.string.power_flashlight,
                 R.drawable.ic_settings_flashlight);
-        assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO,
+        assertNameAndIcon(
+                BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO,
                 R.string.power_cell,
                 R.drawable.ic_settings_cellular);
-        assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_GNSS,
+        assertNameAndIcon(
+                BatteryConsumer.POWER_COMPONENT_GNSS,
                 R.string.power_gps,
                 R.drawable.ic_settings_gps);
-        assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_WIFI,
+        assertNameAndIcon(
+                BatteryConsumer.POWER_COMPONENT_WIFI,
                 R.string.power_wifi,
                 R.drawable.ic_settings_wireless_no_theme);
-        assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_PHONE,
+        assertNameAndIcon(
+                BatteryConsumer.POWER_COMPONENT_PHONE,
                 R.string.power_phone,
                 R.drawable.ic_settings_voice_calls);
-        assertNameAndIcon(BatteryConsumer.POWER_COMPONENT_AMBIENT_DISPLAY,
+        assertNameAndIcon(
+                BatteryConsumer.POWER_COMPONENT_AMBIENT_DISPLAY,
                 R.string.ambient_display_screen_title,
                 R.drawable.ic_settings_aod);
     }
 
     private void assertNameAndIcon(String name, int stringId) {
-        final NameAndIcon nameAndIcon = BatteryEntry.getNameAndIconFromUid(
-                mContext, name, /* uid */ 1000);
+        final NameAndIcon nameAndIcon =
+                BatteryEntry.getNameAndIconFromUid(mContext, name, /* uid */ 1000);
         assertThat(nameAndIcon.mName).isEqualTo(getString(stringId));
     }
 
     private void assertNameAndIcon(int powerComponentId, int stringId, int iconId) {
-        final NameAndIcon nameAndIcon = BatteryEntry.getNameAndIconFromPowerComponent(
-                mContext, powerComponentId);
+        final NameAndIcon nameAndIcon =
+                BatteryEntry.getNameAndIconFromPowerComponent(mContext, powerComponentId);
         assertThat(nameAndIcon.mName).isEqualTo(getString(stringId));
         assertThat(nameAndIcon.mIconId).isEqualTo(iconId);
     }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryHistEntryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryHistEntryTest.java
index 609f2fc..02800f7 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryHistEntryTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryHistEntryTest.java
@@ -41,10 +41,8 @@
 @RunWith(RobolectricTestRunner.class)
 public final class BatteryHistEntryTest {
 
-    @Mock
-    private BatteryEntry mMockBatteryEntry;
-    @Mock
-    private BatteryUsageStats mBatteryUsageStats;
+    @Mock private BatteryEntry mMockBatteryEntry;
+    @Mock private BatteryUsageStats mBatteryUsageStats;
 
     @Before
     public void setUp() {
@@ -75,17 +73,17 @@
                 ConvertUtils.convertBatteryEntryToContentValues(
                         mMockBatteryEntry,
                         mBatteryUsageStats,
-                        /*batteryLevel=*/ 12,
-                        /*batteryStatus=*/ BatteryManager.BATTERY_STATUS_FULL,
-                        /*batteryHealth=*/ BatteryManager.BATTERY_HEALTH_COLD,
-                        /*bootTimestamp=*/ 101L,
-                        /*timestamp=*/ 10001L,
-                        /*isFullChargeStart=*/ false);
+                        /* batteryLevel= */ 12,
+                        /* batteryStatus= */ BatteryManager.BATTERY_STATUS_FULL,
+                        /* batteryHealth= */ BatteryManager.BATTERY_HEALTH_COLD,
+                        /* bootTimestamp= */ 101L,
+                        /* timestamp= */ 10001L,
+                        /* isFullChargeStart= */ false);
 
         assertBatteryHistEntry(
                 new BatteryHistEntry(values),
-                /*drainType=*/ expectedType,
-                /*percentOfTotal=*/ mMockBatteryEntry.mPercent);
+                /* drainType= */ expectedType,
+                /* percentOfTotal= */ mMockBatteryEntry.mPercent);
     }
 
     @Test
@@ -98,25 +96,25 @@
     public void testConstructor_cursor_returnsExpectedResult() {
         assertBatteryHistEntry(
                 createBatteryHistEntry(
-                        /*bootTimestamp=*/ 101L,
-                        /*timestamp=*/ 10001L,
-                        /*totalPower=*/ 5.1,
-                        /*consumePower=*/ 1.1,
-                        /*foregroundUsageConsumePower=*/ 1.2,
-                        /*foregroundServiceUsageConsumePower=*/ 1.3,
-                        /*backgroundUsageConsumePower=*/ 1.4,
-                        /*cachedUsageConsumePower=*/ 1.5,
-                        /*foregroundUsageTimeInMs=*/ 1234L,
-                        /*backgroundUsageTimeInMs=*/ 5689L,
-                        /*batteryLevel=*/ 12),
-                /*drainType=*/ 3,
-                /*percentOfTotal=*/ 0.3);
+                        /* bootTimestamp= */ 101L,
+                        /* timestamp= */ 10001L,
+                        /* totalPower= */ 5.1,
+                        /* consumePower= */ 1.1,
+                        /* foregroundUsageConsumePower= */ 1.2,
+                        /* foregroundServiceUsageConsumePower= */ 1.3,
+                        /* backgroundUsageConsumePower= */ 1.4,
+                        /* cachedUsageConsumePower= */ 1.5,
+                        /* foregroundUsageTimeInMs= */ 1234L,
+                        /* backgroundUsageTimeInMs= */ 5689L,
+                        /* batteryLevel= */ 12),
+                /* drainType= */ 3,
+                /* percentOfTotal= */ 0.3);
     }
 
     @Test
     public void testGetKey_consumerUidType_returnExpectedString() {
-        final ContentValues values = getContentValuesWithType(
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
+        final ContentValues values =
+                getContentValuesWithType(ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
         values.put(BatteryHistEntry.KEY_UID, 3);
         final BatteryHistEntry batteryHistEntry = new BatteryHistEntry(values);
 
@@ -125,8 +123,8 @@
 
     @Test
     public void testGetKey_consumerUserType_returnExpectedString() {
-        final ContentValues values = getContentValuesWithType(
-                ConvertUtils.CONSUMER_TYPE_USER_BATTERY);
+        final ContentValues values =
+                getContentValuesWithType(ConvertUtils.CONSUMER_TYPE_USER_BATTERY);
         values.put(BatteryHistEntry.KEY_USER_ID, 2);
         final BatteryHistEntry batteryHistEntry = new BatteryHistEntry(values);
 
@@ -135,14 +133,12 @@
 
     @Test
     public void testGetKey_consumerSystemType_returnExpectedString() {
-        final ContentValues values = getContentValuesWithType(
-                ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
+        final ContentValues values =
+                getContentValuesWithType(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
         final BatteryInformation batteryInformation =
-                BatteryInformation
-                        .newBuilder()
-                        .setDrainType(1)
-                        .build();
-        values.put(BatteryHistEntry.KEY_BATTERY_INFORMATION,
+                BatteryInformation.newBuilder().setDrainType(1).build();
+        values.put(
+                BatteryHistEntry.KEY_BATTERY_INFORMATION,
                 ConvertUtils.convertBatteryInformationToString(batteryInformation));
         final BatteryHistEntry batteryHistEntry = new BatteryHistEntry(values);
 
@@ -151,32 +147,51 @@
 
     @Test
     public void testIsAppEntry_returnExpectedResult() {
-        assertThat(isUidConsumer(
-                createEntry(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY).mConsumerType)).isFalse();
-        assertThat(isUidConsumer(
-                createEntry(ConvertUtils.CONSUMER_TYPE_USER_BATTERY).mConsumerType)).isFalse();
-        assertThat(isUidConsumer(
-                createEntry(ConvertUtils.CONSUMER_TYPE_UID_BATTERY).mConsumerType)).isTrue();
+        assertThat(
+                        isUidConsumer(
+                                createEntry(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY)
+                                        .mConsumerType))
+                .isFalse();
+        assertThat(
+                        isUidConsumer(
+                                createEntry(ConvertUtils.CONSUMER_TYPE_USER_BATTERY).mConsumerType))
+                .isFalse();
+        assertThat(isUidConsumer(createEntry(ConvertUtils.CONSUMER_TYPE_UID_BATTERY).mConsumerType))
+                .isTrue();
     }
 
     @Test
     public void testIsUserEntry_returnExpectedResult() {
-        assertThat(isUserConsumer(
-                createEntry(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY).mConsumerType)).isFalse();
-        assertThat(isUserConsumer(
-                createEntry(ConvertUtils.CONSUMER_TYPE_USER_BATTERY).mConsumerType)).isTrue();
-        assertThat(isUserConsumer(
-                createEntry(ConvertUtils.CONSUMER_TYPE_UID_BATTERY).mConsumerType)).isFalse();
+        assertThat(
+                        isUserConsumer(
+                                createEntry(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY)
+                                        .mConsumerType))
+                .isFalse();
+        assertThat(
+                        isUserConsumer(
+                                createEntry(ConvertUtils.CONSUMER_TYPE_USER_BATTERY).mConsumerType))
+                .isTrue();
+        assertThat(
+                        isUserConsumer(
+                                createEntry(ConvertUtils.CONSUMER_TYPE_UID_BATTERY).mConsumerType))
+                .isFalse();
     }
 
     @Test
     public void testIsSystemEntry_returnExpectedResult() {
-        assertThat(isSystemConsumer(
-                createEntry(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY).mConsumerType)).isTrue();
-        assertThat(isSystemConsumer(
-                createEntry(ConvertUtils.CONSUMER_TYPE_USER_BATTERY).mConsumerType)).isFalse();
-        assertThat(isSystemConsumer(
-                createEntry(ConvertUtils.CONSUMER_TYPE_UID_BATTERY).mConsumerType)).isFalse();
+        assertThat(
+                        isSystemConsumer(
+                                createEntry(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY)
+                                        .mConsumerType))
+                .isTrue();
+        assertThat(
+                        isSystemConsumer(
+                                createEntry(ConvertUtils.CONSUMER_TYPE_USER_BATTERY).mConsumerType))
+                .isFalse();
+        assertThat(
+                        isSystemConsumer(
+                                createEntry(ConvertUtils.CONSUMER_TYPE_UID_BATTERY).mConsumerType))
+                .isFalse();
     }
 
     @Test
@@ -185,52 +200,52 @@
         final long upperTimestamp = 300L;
         final long lowerTimestamp = 100L;
         final double ratio = 0.5;
-        final BatteryHistEntry lowerHistEntry = createBatteryHistEntry(
-                /*bootTimestamp=*/ 1000L,
-                lowerTimestamp,
-                /*totalPower=*/ 50,
-                /*consumePower=*/ 10,
-                /*foregroundUsageConsumePower=*/ 1,
-                /*foregroundServiceUsageConsumePower=*/ 2,
-                /*backgroundUsageConsumePower=*/ 3,
-                /*cachedUsageConsumePower=*/ 4,
-                /*foregroundUsageTimeInMs=*/ 100,
-                /*backgroundUsageTimeInMs=*/ 200,
-                /*batteryLevel=*/ 90);
-        final BatteryHistEntry upperHistEntry = createBatteryHistEntry(
-                /*bootTimestamp=*/ 1200L,
-                upperTimestamp,
-                /*totalPower=*/ 80,
-                /*consumePower=*/ 20,
-                /*foregroundUsageConsumePower=*/ 4,
-                /*foregroundServiceUsageConsumePower=*/ 5,
-                /*backgroundUsageConsumePower=*/ 6,
-                /*cachedUsageConsumePower=*/ 5,
-                /*foregroundUsageTimeInMs=*/ 200,
-                /*backgroundUsageTimeInMs=*/ 300,
-                /*batteryLevel=*/ 80);
+        final BatteryHistEntry lowerHistEntry =
+                createBatteryHistEntry(
+                        /* bootTimestamp= */ 1000L,
+                        lowerTimestamp,
+                        /* totalPower= */ 50,
+                        /* consumePower= */ 10,
+                        /* foregroundUsageConsumePower= */ 1,
+                        /* foregroundServiceUsageConsumePower= */ 2,
+                        /* backgroundUsageConsumePower= */ 3,
+                        /* cachedUsageConsumePower= */ 4,
+                        /* foregroundUsageTimeInMs= */ 100,
+                        /* backgroundUsageTimeInMs= */ 200,
+                        /* batteryLevel= */ 90);
+        final BatteryHistEntry upperHistEntry =
+                createBatteryHistEntry(
+                        /* bootTimestamp= */ 1200L,
+                        upperTimestamp,
+                        /* totalPower= */ 80,
+                        /* consumePower= */ 20,
+                        /* foregroundUsageConsumePower= */ 4,
+                        /* foregroundServiceUsageConsumePower= */ 5,
+                        /* backgroundUsageConsumePower= */ 6,
+                        /* cachedUsageConsumePower= */ 5,
+                        /* foregroundUsageTimeInMs= */ 200,
+                        /* backgroundUsageTimeInMs= */ 300,
+                        /* batteryLevel= */ 80);
 
         final BatteryHistEntry newEntry =
                 BatteryHistEntry.interpolate(
-                        slotTimestamp,
-                        upperTimestamp,
-                        ratio,
-                        lowerHistEntry,
-                        upperHistEntry);
+                        slotTimestamp, upperTimestamp, ratio, lowerHistEntry, upperHistEntry);
 
         assertBatteryHistEntry(
-                newEntry, 3, upperHistEntry.mPercentOfTotal,
-                /*bootTimestamp=*/ 1200 - 100,
-                /*timestamp=*/ slotTimestamp,
-                /*totalPower=*/ 50 + 0.5 * (80 - 50),
-                /*consumePower=*/ 10 + 0.5 * (20 - 10),
-                /*foregroundUsageConsumePower=*/ 1 + 0.5 * (4 - 1),
-                /*foregroundServiceUsageConsumePower=*/ 2 + 0.5 * (5 - 2),
-                /*backgroundUsageConsumePower=*/ 3 + 0.5 * (6 - 3),
-                /*cachedUsageConsumePower=*/ 4 + 0.5 * (5 - 4),
-                /*foregroundUsageTimeInMs=*/ Math.round(100 + 0.5 * (200 - 100)),
-                /*backgroundUsageTimeInMs=*/ Math.round(200 + 0.5 * (300 - 200)),
-                /*batteryLevel=*/ (int) Math.round(90 + 0.5 * (80 - 90)));
+                newEntry,
+                3,
+                upperHistEntry.mPercentOfTotal,
+                /* bootTimestamp= */ 1200 - 100,
+                /* timestamp= */ slotTimestamp,
+                /* totalPower= */ 50 + 0.5 * (80 - 50),
+                /* consumePower= */ 10 + 0.5 * (20 - 10),
+                /* foregroundUsageConsumePower= */ 1 + 0.5 * (4 - 1),
+                /* foregroundServiceUsageConsumePower= */ 2 + 0.5 * (5 - 2),
+                /* backgroundUsageConsumePower= */ 3 + 0.5 * (6 - 3),
+                /* cachedUsageConsumePower= */ 4 + 0.5 * (5 - 4),
+                /* foregroundUsageTimeInMs= */ Math.round(100 + 0.5 * (200 - 100)),
+                /* backgroundUsageTimeInMs= */ Math.round(200 + 0.5 * (300 - 200)),
+                /* batteryLevel= */ (int) Math.round(90 + 0.5 * (80 - 90)));
     }
 
     @Test
@@ -238,40 +253,43 @@
         final long slotTimestamp = 200L;
         final long upperTimestamp = 300L;
         final double ratio = 0.5;
-        final BatteryHistEntry upperHistEntry = createBatteryHistEntry(
-                /*bootTimestamp=*/ 1200L,
-                upperTimestamp,
-                /*totalPower=*/ 80,
-                /*consumePower=*/ 20,
-                /*foregroundUsageConsumePower=*/ 4,
-                /*foregroundServiceUsageConsumePower=*/ 5,
-                /*backgroundUsageConsumePower=*/ 6,
-                /*cachedUsageConsumePower=*/ 5,
-                /*foregroundUsageTimeInMs=*/ 200,
-                /*backgroundUsageTimeInMs=*/ 300,
-                /*batteryLevel=*/ 80);
+        final BatteryHistEntry upperHistEntry =
+                createBatteryHistEntry(
+                        /* bootTimestamp= */ 1200L,
+                        upperTimestamp,
+                        /* totalPower= */ 80,
+                        /* consumePower= */ 20,
+                        /* foregroundUsageConsumePower= */ 4,
+                        /* foregroundServiceUsageConsumePower= */ 5,
+                        /* backgroundUsageConsumePower= */ 6,
+                        /* cachedUsageConsumePower= */ 5,
+                        /* foregroundUsageTimeInMs= */ 200,
+                        /* backgroundUsageTimeInMs= */ 300,
+                        /* batteryLevel= */ 80);
 
         final BatteryHistEntry newEntry =
                 BatteryHistEntry.interpolate(
                         slotTimestamp,
                         upperTimestamp,
                         ratio,
-                        /*lowerHistEntry=*/ null,
+                        /* lowerHistEntry= */ null,
                         upperHistEntry);
 
         assertBatteryHistEntry(
-                newEntry, 3, upperHistEntry.mPercentOfTotal,
-                /*bootTimestamp=*/ 1200 - 100,
-                /*timestamp=*/ slotTimestamp,
-                /*totalPower=*/ 0.5 * 80,
-                /*consumePower=*/ 0.5 * 20,
-                /*foregroundUsageConsumePower=*/ 0.5 * 4,
-                /*foregroundServiceUsageConsumePower=*/ 0.5 * 5,
-                /*backgroundUsageConsumePower=*/ 0.5 * 6,
-                /*cachedUsageConsumePower=*/ 0.5 * 5,
-                /*foregroundUsageTimeInMs=*/ Math.round(0.5 * 200),
-                /*backgroundUsageTimeInMs=*/ Math.round(0.5 * 300),
-                /*batteryLevel=*/ upperHistEntry.mBatteryLevel);
+                newEntry,
+                3,
+                upperHistEntry.mPercentOfTotal,
+                /* bootTimestamp= */ 1200 - 100,
+                /* timestamp= */ slotTimestamp,
+                /* totalPower= */ 0.5 * 80,
+                /* consumePower= */ 0.5 * 20,
+                /* foregroundUsageConsumePower= */ 0.5 * 4,
+                /* foregroundServiceUsageConsumePower= */ 0.5 * 5,
+                /* backgroundUsageConsumePower= */ 0.5 * 6,
+                /* cachedUsageConsumePower= */ 0.5 * 5,
+                /* foregroundUsageTimeInMs= */ Math.round(0.5 * 200),
+                /* backgroundUsageTimeInMs= */ Math.round(0.5 * 300),
+                /* batteryLevel= */ upperHistEntry.mBatteryLevel);
     }
 
     private static BatteryHistEntry createEntry(int consumerType) {
@@ -280,26 +298,27 @@
 
     private static ContentValues getContentValuesWithType(int consumerType) {
         final ContentValues values = new ContentValues();
-        values.put(BatteryHistEntry.KEY_CONSUMER_TYPE,
-                Integer.valueOf(consumerType));
+        values.put(BatteryHistEntry.KEY_CONSUMER_TYPE, Integer.valueOf(consumerType));
         return values;
     }
 
     private void assertBatteryHistEntry(
             BatteryHistEntry entry, int drainType, double percentOfTotal) {
         assertBatteryHistEntry(
-                entry, drainType, percentOfTotal,
-                /*bootTimestamp=*/ 101L,
-                /*timestamp=*/ 10001L,
-                /*totalPower=*/ 5.1,
-                /*consumePower=*/ 1.1,
-                /*foregroundUsageConsumePower=*/ 1.2,
-                /*foregroundServiceUsageConsumePower=*/ 1.3,
-                /*backgroundUsageConsumePower=*/ 1.4,
-                /*cachedUsageConsumePower=*/ 1.5,
-                /*foregroundUsageTimeInMs=*/ 1234L,
-                /*backgroundUsageTimeInMs=*/ 5689L,
-                /*batteryLevel=*/ 12);
+                entry,
+                drainType,
+                percentOfTotal,
+                /* bootTimestamp= */ 101L,
+                /* timestamp= */ 10001L,
+                /* totalPower= */ 5.1,
+                /* consumePower= */ 1.1,
+                /* foregroundUsageConsumePower= */ 1.2,
+                /* foregroundServiceUsageConsumePower= */ 1.3,
+                /* backgroundUsageConsumePower= */ 1.4,
+                /* cachedUsageConsumePower= */ 1.5,
+                /* foregroundUsageTimeInMs= */ 1234L,
+                /* backgroundUsageTimeInMs= */ 5689L,
+                /* batteryLevel= */ 12);
     }
 
     private void assertBatteryHistEntry(
@@ -321,8 +340,7 @@
         assertThat(entry.mUid).isEqualTo(1001);
         assertThat(entry.mUserId).isEqualTo(UserHandle.getUserId(1001));
         assertThat(entry.mAppLabel).isEqualTo("Settings");
-        assertThat(entry.mPackageName)
-                .isEqualTo("com.google.android.settings.battery");
+        assertThat(entry.mPackageName).isEqualTo("com.google.android.settings.battery");
         assertThat(entry.mIsHidden).isTrue();
         assertThat(entry.mBootTimestamp).isEqualTo(bootTimestamp);
         assertThat(entry.mTimestamp).isEqualTo(timestamp);
@@ -338,13 +356,10 @@
         assertThat(entry.mForegroundUsageTimeInMs).isEqualTo(foregroundUsageTimeInMs);
         assertThat(entry.mBackgroundUsageTimeInMs).isEqualTo(backgroundUsageTimeInMs);
         assertThat(entry.mDrainType).isEqualTo(drainType);
-        assertThat(entry.mConsumerType)
-                .isEqualTo(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
+        assertThat(entry.mConsumerType).isEqualTo(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
         assertThat(entry.mBatteryLevel).isEqualTo(batteryLevel);
-        assertThat(entry.mBatteryStatus)
-                .isEqualTo(BatteryManager.BATTERY_STATUS_FULL);
-        assertThat(entry.mBatteryHealth)
-                .isEqualTo(BatteryManager.BATTERY_HEALTH_COLD);
+        assertThat(entry.mBatteryStatus).isEqualTo(BatteryManager.BATTERY_STATUS_FULL);
+        assertThat(entry.mBatteryHealth).isEqualTo(BatteryManager.BATTERY_HEALTH_COLD);
     }
 
     private BatteryHistEntry createBatteryHistEntry(
@@ -359,24 +374,24 @@
             long foregroundUsageTimeInMs,
             long backgroundUsageTimeInMs,
             int batteryLevel) {
-        final MatrixCursor cursor = new MatrixCursor(
-            new String[]{
-                BatteryHistEntry.KEY_UID,
-                BatteryHistEntry.KEY_USER_ID,
-                BatteryHistEntry.KEY_PACKAGE_NAME,
-                BatteryHistEntry.KEY_TIMESTAMP,
-                BatteryHistEntry.KEY_CONSUMER_TYPE,
-                BatteryHistEntry.KEY_BATTERY_INFORMATION});
+        final MatrixCursor cursor =
+                new MatrixCursor(
+                        new String[] {
+                            BatteryHistEntry.KEY_UID,
+                            BatteryHistEntry.KEY_USER_ID,
+                            BatteryHistEntry.KEY_PACKAGE_NAME,
+                            BatteryHistEntry.KEY_TIMESTAMP,
+                            BatteryHistEntry.KEY_CONSUMER_TYPE,
+                            BatteryHistEntry.KEY_BATTERY_INFORMATION
+                        });
         DeviceBatteryState deviceBatteryState =
-                DeviceBatteryState
-                        .newBuilder()
+                DeviceBatteryState.newBuilder()
                         .setBatteryLevel(batteryLevel)
                         .setBatteryStatus(BatteryManager.BATTERY_STATUS_FULL)
                         .setBatteryHealth(BatteryManager.BATTERY_HEALTH_COLD)
                         .build();
         BatteryInformation batteryInformation =
-                BatteryInformation
-                        .newBuilder()
+                BatteryInformation.newBuilder()
                         .setDeviceBatteryState(deviceBatteryState)
                         .setIsHidden(true)
                         .setBootTimestamp(bootTimestamp)
@@ -394,13 +409,14 @@
                         .setBackgroundUsageTimeInMs(backgroundUsageTimeInMs)
                         .build();
         cursor.addRow(
-            new Object[]{
-                Long.valueOf(1001),
-                Long.valueOf(UserHandle.getUserId(1001)),
-                "com.google.android.settings.battery",
-                Long.valueOf(timestamp),
-                Integer.valueOf(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY),
-                ConvertUtils.convertBatteryInformationToString(batteryInformation)});
+                new Object[] {
+                    Long.valueOf(1001),
+                    Long.valueOf(UserHandle.getUserId(1001)),
+                    "com.google.android.settings.battery",
+                    Long.valueOf(timestamp),
+                    Integer.valueOf(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY),
+                    ConvertUtils.convertBatteryInformationToString(batteryInformation)
+                });
         cursor.moveToFirst();
         return new BatteryHistEntry(cursor);
     }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryPreferenceTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryPreferenceTest.java
index 9155c66..26fff37 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryPreferenceTest.java
@@ -38,14 +38,10 @@
 
 @RunWith(RobolectricTestRunner.class)
 public class BatteryHistoryPreferenceTest {
-    @Mock
-    private PreferenceViewHolder mViewHolder;
-    @Mock
-    private TextView mTextView;
-    @Mock
-    private BatteryChartView mDailyChartView;
-    @Mock
-    private BatteryChartView mHourlyChartView;
+    @Mock private PreferenceViewHolder mViewHolder;
+    @Mock private TextView mTextView;
+    @Mock private BatteryChartView mDailyChartView;
+    @Mock private BatteryChartView mHourlyChartView;
     private BatteryHistoryPreference mBatteryHistoryPreference;
 
     @Before
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryLevelDataTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryLevelDataTest.java
index 7dc4eab..712df9d 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryLevelDataTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryLevelDataTest.java
@@ -42,129 +42,143 @@
     @Test
     public void getDailyTimestamps_allDataInOneHour_returnExpectedList() {
         // Timezone GMT+8
-        final List<Long> timestamps = List.of(
-                1640970006000L, // 2022-01-01 01:00:06
-                1640973608000L  // 2022-01-01 01:00:08
-        );
+        final List<Long> timestamps =
+                List.of(
+                        1640970006000L, // 2022-01-01 01:00:06
+                        1640973608000L // 2022-01-01 01:00:08
+                        );
 
-        final List<Long> expectedTimestamps = List.of(
-                1640970006000L, // 2022-01-01 01:00:06
-                1640973608000L  // 2022-01-01 01:00:08
-        );
+        final List<Long> expectedTimestamps =
+                List.of(
+                        1640970006000L, // 2022-01-01 01:00:06
+                        1640973608000L // 2022-01-01 01:00:08
+                        );
         assertThat(BatteryLevelData.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
     }
 
     @Test
     public void getDailyTimestamps_OneHourDataPerDay_returnExpectedList() {
         // Timezone GMT+8
-        final List<Long> timestamps = List.of(
-                1641049200000L, // 2022-01-01 23:00:00
-                1641052800000L, // 2022-01-02 00:00:00
-                1641056400000L  // 2022-01-02 01:00:00
-        );
+        final List<Long> timestamps =
+                List.of(
+                        1641049200000L, // 2022-01-01 23:00:00
+                        1641052800000L, // 2022-01-02 00:00:00
+                        1641056400000L // 2022-01-02 01:00:00
+                        );
 
-        final List<Long> expectedTimestamps = List.of(
-                1641049200000L, // 2022-01-01 23:00:00
-                1641052800000L, // 2022-01-02 00:00:00
-                1641056400000L  // 2022-01-02 01:00:00
-        );
+        final List<Long> expectedTimestamps =
+                List.of(
+                        1641049200000L, // 2022-01-01 23:00:00
+                        1641052800000L, // 2022-01-02 00:00:00
+                        1641056400000L // 2022-01-02 01:00:00
+                        );
         assertThat(BatteryLevelData.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
     }
 
     @Test
     public void getDailyTimestamps_OneDayData_returnExpectedList() {
         // Timezone GMT+8
-        final List<Long> timestamps = List.of(
-                1640966400000L, // 2022-01-01 00:00:00
-                1640970000000L, // 2022-01-01 01:00:00
-                1640973600000L, // 2022-01-01 02:00:00
-                1640977200000L, // 2022-01-01 03:00:00
-                1640980800000L  // 2022-01-01 04:00:00
-        );
+        final List<Long> timestamps =
+                List.of(
+                        1640966400000L, // 2022-01-01 00:00:00
+                        1640970000000L, // 2022-01-01 01:00:00
+                        1640973600000L, // 2022-01-01 02:00:00
+                        1640977200000L, // 2022-01-01 03:00:00
+                        1640980800000L // 2022-01-01 04:00:00
+                        );
 
-        final List<Long> expectedTimestamps = List.of(
-                1640966400000L, // 2022-01-01 00:00:00
-                1640980800000L  // 2022-01-01 04:00:00
-        );
+        final List<Long> expectedTimestamps =
+                List.of(
+                        1640966400000L, // 2022-01-01 00:00:00
+                        1640980800000L // 2022-01-01 04:00:00
+                        );
         assertThat(BatteryLevelData.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
     }
 
     @Test
     public void getDailyTimestamps_MultipleDaysData_returnExpectedList() {
         // Timezone GMT+8
-        final List<Long> timestamps = List.of(
-                1641045600000L, // 2022-01-01 22:00:00
-                1641060000000L, // 2022-01-02 02:00:00
-                1641160800000L, // 2022-01-03 06:00:00
-                1641232800000L  // 2022-01-04 02:00:00
-        );
+        final List<Long> timestamps =
+                List.of(
+                        1641045600000L, // 2022-01-01 22:00:00
+                        1641060000000L, // 2022-01-02 02:00:00
+                        1641160800000L, // 2022-01-03 06:00:00
+                        1641232800000L // 2022-01-04 02:00:00
+                        );
 
-        final List<Long> expectedTimestamps = List.of(
-                1641045600000L, // 2022-01-01 22:00:00
-                1641052800000L, // 2022-01-02 00:00:00
-                1641139200000L, // 2022-01-03 00:00:00
-                1641225600000L, // 2022-01-04 00:00:00
-                1641232800000L  // 2022-01-04 02:00:00
-        );
+        final List<Long> expectedTimestamps =
+                List.of(
+                        1641045600000L, // 2022-01-01 22:00:00
+                        1641052800000L, // 2022-01-02 00:00:00
+                        1641139200000L, // 2022-01-03 00:00:00
+                        1641225600000L, // 2022-01-04 00:00:00
+                        1641232800000L // 2022-01-04 02:00:00
+                        );
         assertThat(BatteryLevelData.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
     }
 
     @Test
     public void getDailyTimestamps_FirstDayOneHourData_returnExpectedList() {
         // Timezone GMT+8
-        final List<Long> timestamps = List.of(
-                1641049200000L, // 2022-01-01 23:00:00
-                1641060000000L, // 2022-01-02 02:00:00
-                1641160800000L, // 2022-01-03 06:00:00
-                1641254400000L  // 2022-01-04 08:00:00
-        );
+        final List<Long> timestamps =
+                List.of(
+                        1641049200000L, // 2022-01-01 23:00:00
+                        1641060000000L, // 2022-01-02 02:00:00
+                        1641160800000L, // 2022-01-03 06:00:00
+                        1641254400000L // 2022-01-04 08:00:00
+                        );
 
-        final List<Long> expectedTimestamps = List.of(
-                1641049200000L, // 2022-01-01 23:00:00
-                1641052800000L, // 2022-01-02 00:00:00
-                1641139200000L, // 2022-01-03 00:00:00
-                1641225600000L, // 2022-01-04 00:00:00
-                1641254400000L  // 2022-01-04 08:00:00
-        );
+        final List<Long> expectedTimestamps =
+                List.of(
+                        1641049200000L, // 2022-01-01 23:00:00
+                        1641052800000L, // 2022-01-02 00:00:00
+                        1641139200000L, // 2022-01-03 00:00:00
+                        1641225600000L, // 2022-01-04 00:00:00
+                        1641254400000L // 2022-01-04 08:00:00
+                        );
         assertThat(BatteryLevelData.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
     }
 
     @Test
     public void getDailyTimestamps_LastDayNoData_returnExpectedList() {
         // Timezone GMT+8
-        final List<Long> timestamps = List.of(
-                1640988000000L, // 2022-01-01 06:00:00
-                1641060000000L, // 2022-01-02 02:00:00
-                1641160800000L, // 2022-01-03 06:00:00
-                1641225600000L  // 2022-01-04 00:00:00
-        );
+        final List<Long> timestamps =
+                List.of(
+                        1640988000000L, // 2022-01-01 06:00:00
+                        1641060000000L, // 2022-01-02 02:00:00
+                        1641160800000L, // 2022-01-03 06:00:00
+                        1641225600000L // 2022-01-04 00:00:00
+                        );
 
-        final List<Long> expectedTimestamps = List.of(
-                1640988000000L, // 2022-01-01 06:00:00
-                1641052800000L, // 2022-01-02 00:00:00
-                1641139200000L, // 2022-01-03 00:00:00
-                1641225600000L  // 2022-01-04 00:00:00
-        );
+        final List<Long> expectedTimestamps =
+                List.of(
+                        1640988000000L, // 2022-01-01 06:00:00
+                        1641052800000L, // 2022-01-02 00:00:00
+                        1641139200000L, // 2022-01-03 00:00:00
+                        1641225600000L // 2022-01-04 00:00:00
+                        );
         assertThat(BatteryLevelData.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
     }
 
     @Test
     public void getDailyTimestamps_LastDayOneHourData_returnExpectedList() {
         // Timezone GMT+8
-        final List<Long> timestamps = List.of(
-                1640988000000L, // 2022-01-01 06:00:00
-                1641060000000L, // 2022-01-02 02:00:00
-                1641160800000L, // 2022-01-03 06:00:00
-                1641229200000L  // 2022-01-04 01:00:00
-        );
+        final List<Long> timestamps =
+                List.of(
+                        1640988000000L, // 2022-01-01 06:00:00
+                        1641060000000L, // 2022-01-02 02:00:00
+                        1641160800000L, // 2022-01-03 06:00:00
+                        1641229200000L // 2022-01-04 01:00:00
+                        );
 
-        final List<Long> expectedTimestamps = List.of(
-                1640988000000L, // 2022-01-01 06:00:00
-                1641052800000L, // 2022-01-02 00:00:00
-                1641139200000L, // 2022-01-03 00:00:00
-                1641225600000L, // 2022-01-04 00:00:00
-                1641229200000L  // 2022-01-04 01:00:00
-        );
+        final List<Long> expectedTimestamps =
+                List.of(
+                        1640988000000L, // 2022-01-01 06:00:00
+                        1641052800000L, // 2022-01-02 00:00:00
+                        1641139200000L, // 2022-01-03 00:00:00
+                        1641225600000L, // 2022-01-04 00:00:00
+                        1641229200000L // 2022-01-04 01:00:00
+                        );
         assertThat(BatteryLevelData.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
     }
 
@@ -172,21 +186,26 @@
     public void combine_normalFlow_returnExpectedResult() {
         final BatteryLevelData batteryLevelData =
                 new BatteryLevelData(Map.of(1691596800000L, 90, 1691604000000L, 80));
-        final List<BatteryEvent> batteryLevelRecordEvents = List.of(
-                BatteryEvent.newBuilder().setTimestamp(1691586000166L).setBatteryLevel(100)
-                        .setType(BatteryEventType.FULL_CHARGED).build(),
-                BatteryEvent.newBuilder().setTimestamp(1691589600000L).setBatteryLevel(98)
-                        .setType(BatteryEventType.EVEN_HOUR).build());
+        final List<BatteryEvent> batteryLevelRecordEvents =
+                List.of(
+                        BatteryEvent.newBuilder()
+                                .setTimestamp(1691586000166L)
+                                .setBatteryLevel(100)
+                                .setType(BatteryEventType.FULL_CHARGED)
+                                .build(),
+                        BatteryEvent.newBuilder()
+                                .setTimestamp(1691589600000L)
+                                .setBatteryLevel(98)
+                                .setType(BatteryEventType.EVEN_HOUR)
+                                .build());
 
         BatteryLevelData result =
                 BatteryLevelData.combine(batteryLevelData, batteryLevelRecordEvents);
 
         assertThat(result.getDailyBatteryLevels().getTimestamps())
                 .isEqualTo(List.of(1691586000166L, 1691596800000L, 1691604000000L));
-        assertThat(result.getDailyBatteryLevels().getLevels())
-                .isEqualTo(List.of(100, 90, 80));
-        assertThat(result.getHourlyBatteryLevelsPerDay())
-                .hasSize(2);
+        assertThat(result.getDailyBatteryLevels().getLevels()).isEqualTo(List.of(100, 90, 80));
+        assertThat(result.getHourlyBatteryLevelsPerDay()).hasSize(2);
         assertThat(result.getHourlyBatteryLevelsPerDay().get(0).getTimestamps())
                 .isEqualTo(List.of(1691586000166L, 1691589600000L, 1691596800000L));
         assertThat(result.getHourlyBatteryLevelsPerDay().get(0).getLevels())
@@ -199,17 +218,22 @@
 
     @Test
     public void combine_existingBatteryLevelDataIsNull_returnExpectedResult() {
-        final List<BatteryEvent> batteryLevelRecordEvents = List.of(
-                BatteryEvent.newBuilder().setTimestamp(1691586000166L).setBatteryLevel(100)
-                        .setType(BatteryEventType.FULL_CHARGED).build(),
-                BatteryEvent.newBuilder().setTimestamp(1691589600000L).setBatteryLevel(98)
-                        .setType(BatteryEventType.EVEN_HOUR).build());
+        final List<BatteryEvent> batteryLevelRecordEvents =
+                List.of(
+                        BatteryEvent.newBuilder()
+                                .setTimestamp(1691586000166L)
+                                .setBatteryLevel(100)
+                                .setType(BatteryEventType.FULL_CHARGED)
+                                .build(),
+                        BatteryEvent.newBuilder()
+                                .setTimestamp(1691589600000L)
+                                .setBatteryLevel(98)
+                                .setType(BatteryEventType.EVEN_HOUR)
+                                .build());
 
-        BatteryLevelData result =
-                BatteryLevelData.combine(null, batteryLevelRecordEvents);
+        BatteryLevelData result = BatteryLevelData.combine(null, batteryLevelRecordEvents);
 
-        assertThat(result.getHourlyBatteryLevelsPerDay())
-                .hasSize(1);
+        assertThat(result.getHourlyBatteryLevelsPerDay()).hasSize(1);
         assertThat(result.getHourlyBatteryLevelsPerDay().get(0).getTimestamps())
                 .isEqualTo(List.of(1691586000166L, 1691589600000L));
         assertThat(result.getHourlyBatteryLevelsPerDay().get(0).getLevels())
@@ -219,25 +243,31 @@
     @Test
     public void getIndexByTimestamps_returnExpectedResult() {
         final BatteryLevelData batteryLevelData =
-                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
+                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
         final PowerAnomalyEvent event = BatteryTestUtils.createAppAnomalyEvent();
 
         assertThat(batteryLevelData.getIndexByTimestamps(0L, 0L))
-                .isEqualTo(Pair.create(BatteryChartViewModel.SELECTED_INDEX_INVALID,
-                        BatteryChartViewModel.SELECTED_INDEX_INVALID));
+                .isEqualTo(
+                        Pair.create(
+                                BatteryChartViewModel.SELECTED_INDEX_INVALID,
+                                BatteryChartViewModel.SELECTED_INDEX_INVALID));
         assertThat(batteryLevelData.getIndexByTimestamps(1694361600000L + 1L, 1694368800000L + 1L))
-                .isEqualTo(Pair.create(BatteryChartViewModel.SELECTED_INDEX_INVALID,
-                        BatteryChartViewModel.SELECTED_INDEX_INVALID));
+                .isEqualTo(
+                        Pair.create(
+                                BatteryChartViewModel.SELECTED_INDEX_INVALID,
+                                BatteryChartViewModel.SELECTED_INDEX_INVALID));
         assertThat(batteryLevelData.getIndexByTimestamps(1694361600000L, 1694368800000L))
                 .isEqualTo(Pair.create(1, 0));
         assertThat(batteryLevelData.getIndexByTimestamps(1694361600000L + 1L, 1694368800000L - 1L))
                 .isEqualTo(Pair.create(1, 0));
-        assertThat(batteryLevelData.getIndexByTimestamps(
-                event.getWarningItemInfo().getStartTimestamp(),
-                event.getWarningItemInfo().getEndTimestamp()))
+        assertThat(
+                        batteryLevelData.getIndexByTimestamps(
+                                event.getWarningItemInfo().getStartTimestamp(),
+                                event.getWarningItemInfo().getEndTimestamp()))
                 .isEqualTo(Pair.create(1, 0));
     }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreferenceTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreferenceTest.java
index 63cb1b3..91d8c7d 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreferenceTest.java
@@ -61,19 +61,16 @@
     private BatteryTipsController mBatteryTipsController;
     private BatteryChartPreferenceController mBatteryChartPreferenceController;
 
-    @Mock
-    private View mFakeView;
-    @Mock
-    private BatteryUsageBreakdownController mBatteryUsageBreakdownController;
-    @Mock
-    private BatteryDiffEntry mFakeEntry;
+    @Mock private View mFakeView;
+    @Mock private BatteryUsageBreakdownController mBatteryUsageBreakdownController;
+    @Mock private BatteryDiffEntry mFakeEntry;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = spy(RuntimeEnvironment.application);
         mFeatureFactory = FakeFeatureFactory.setupForTest();
-        mBatteryTipsCardPreference = new BatteryTipsCardPreference(mContext, /*attrs=*/ null);
+        mBatteryTipsCardPreference = new BatteryTipsCardPreference(mContext, /* attrs= */ null);
         mBatteryTipsController = new BatteryTipsController(mContext);
         mBatteryChartPreferenceController =
                 spy(new BatteryChartPreferenceController(mContext, null, null));
@@ -85,17 +82,20 @@
         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
+        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);
+        assertThat(mBatteryTipsCardPreference.getLayoutResource())
+                .isEqualTo(R.layout.battery_tips_card);
     }
 
     @Test
@@ -118,10 +118,13 @@
                 .isEqualTo(DisplaySettings.class.getName());
         assertThat(intent.getIntExtra(MetricsFeatureProvider.EXTRA_SOURCE_METRICS_CATEGORY, -1))
                 .isEqualTo(SettingsEnums.DISPLAY);
-        verify(mFeatureFactory.metricsFeatureProvider).action(
-                mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW, "BrightnessAnomaly");
-        verify(mFeatureFactory.metricsFeatureProvider).action(
-                mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_ACCEPT, "BrightnessAnomaly");
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW, "BrightnessAnomaly");
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        mContext,
+                        SettingsEnums.ACTION_BATTERY_TIPS_CARD_ACCEPT,
+                        "BrightnessAnomaly");
     }
 
     @Test
@@ -140,10 +143,16 @@
         assertThat(DatabaseUtils.getDismissedPowerAnomalyKeys(mContext)).hasSize(1);
         assertThat(DatabaseUtils.getDismissedPowerAnomalyKeys(mContext))
                 .contains(PowerAnomalyKey.KEY_SCREEN_TIMEOUT.name());
-        verify(mFeatureFactory.metricsFeatureProvider).action(
-                mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW, "ScreenTimeoutAnomaly");
-        verify(mFeatureFactory.metricsFeatureProvider).action(
-                mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_DISMISS, "ScreenTimeoutAnomaly");
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        mContext,
+                        SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW,
+                        "ScreenTimeoutAnomaly");
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        mContext,
+                        SettingsEnums.ACTION_BATTERY_TIPS_CARD_DISMISS,
+                        "ScreenTimeoutAnomaly");
     }
 
     @Test
@@ -159,13 +168,12 @@
 
         assertThat(mBatteryTipsCardPreference.isVisible()).isFalse();
         verify(mContext, never()).startActivity(any(Intent.class));
-        verify(mBatteryChartPreferenceController).onHighlightSlotIndexUpdate(
-                eq(1), eq(0));
+        verify(mBatteryChartPreferenceController).onHighlightSlotIndexUpdate(eq(1), eq(0));
         verify(mBatteryChartPreferenceController).selectHighlightSlotIndex();
-        verify(mFeatureFactory.metricsFeatureProvider).action(
-                mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW, "AppAnomaly");
-        verify(mFeatureFactory.metricsFeatureProvider).action(
-                mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_ACCEPT, "AppAnomaly");
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW, "AppAnomaly");
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_ACCEPT, "AppAnomaly");
     }
 
     @Test
@@ -180,12 +188,11 @@
 
         assertThat(mBatteryTipsCardPreference.isVisible()).isFalse();
         verify(mContext, never()).startActivity(any(Intent.class));
-        verify(mBatteryChartPreferenceController).onHighlightSlotIndexUpdate(
-                eq(1), eq(0));
+        verify(mBatteryChartPreferenceController).onHighlightSlotIndexUpdate(eq(1), eq(0));
         verify(mBatteryChartPreferenceController, never()).selectHighlightSlotIndex();
-        verify(mFeatureFactory.metricsFeatureProvider).action(
-                mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW, "AppAnomaly");
-        verify(mFeatureFactory.metricsFeatureProvider).action(
-                mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_DISMISS, "AppAnomaly");
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW, "AppAnomaly");
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_DISMISS, "AppAnomaly");
     }
 }
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 b8afe98..e7c8e81 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsControllerTest.java
@@ -48,8 +48,7 @@
     private FakeFeatureFactory mFeatureFactory;
     private BatteryTipsController mBatteryTipsController;
 
-    @Mock
-    private BatteryTipsCardPreference mBatteryTipsCardPreference;
+    @Mock private BatteryTipsCardPreference mBatteryTipsCardPreference;
 
     @Before
     public void setUp() {
@@ -82,17 +81,16 @@
                 new AnomalyEventWrapper(mContext, event), false);
 
         // Check pre-defined string
-        verify(mBatteryTipsCardPreference).setTitle(
-                "Turn on adaptive brightness to extend battery life");
+        verify(mBatteryTipsCardPreference)
+                .setTitle("Turn on adaptive brightness to extend battery life");
         verify(mBatteryTipsCardPreference).setIconResourceId(R.drawable.ic_battery_tips_lightbulb);
-        verify(mBatteryTipsCardPreference).setMainButtonStrokeColorResourceId(
-                R.color.color_accent_selector);
+        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(
-                mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW, "BrightnessAnomaly");
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW, "BrightnessAnomaly");
     }
 
     @Test
@@ -105,25 +103,28 @@
 
         verify(mBatteryTipsCardPreference).setTitle("Reduce screen timeout to extend battery life");
         verify(mBatteryTipsCardPreference).setIconResourceId(R.drawable.ic_battery_tips_lightbulb);
-        verify(mBatteryTipsCardPreference).setMainButtonStrokeColorResourceId(
-                R.color.color_accent_selector);
+        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(
-                mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW, "ScreenTimeoutAnomaly");
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        mContext,
+                        SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW,
+                        "ScreenTimeoutAnomaly");
     }
 
     @Test
     public void handleBatteryTipsCardUpdated_screenTimeoutAnomalyHasTitle_showAnomaly() {
         PowerAnomalyEvent event = BatteryTestUtils.createScreenTimeoutAnomalyEvent();
         String testTitle = "TestTitle";
-        event = event.toBuilder()
-                .setWarningBannerInfo(
-                        event.getWarningBannerInfo().toBuilder()
-                                .setTitleString(testTitle)
-                                .build())
-                .build();
+        event =
+                event.toBuilder()
+                        .setWarningBannerInfo(
+                                event.getWarningBannerInfo().toBuilder()
+                                        .setTitleString(testTitle)
+                                        .build())
+                        .build();
         when(mFeatureFactory.powerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
 
         mBatteryTipsController.handleBatteryTipsCardUpdated(
@@ -131,13 +132,15 @@
 
         verify(mBatteryTipsCardPreference).setTitle(testTitle);
         verify(mBatteryTipsCardPreference).setIconResourceId(R.drawable.ic_battery_tips_lightbulb);
-        verify(mBatteryTipsCardPreference).setMainButtonStrokeColorResourceId(
-                R.color.color_accent_selector);
+        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(
-                mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW, "ScreenTimeoutAnomaly");
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        mContext,
+                        SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW,
+                        "ScreenTimeoutAnomaly");
     }
 
     @Test
@@ -146,20 +149,18 @@
         when(mFeatureFactory.powerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
 
         AnomalyEventWrapper eventWrapper = new AnomalyEventWrapper(mContext, event);
-        eventWrapper.setRelatedBatteryDiffEntry(
-                new BatteryDiffEntry(mContext, "", "Chrome", 0));
+        eventWrapper.setRelatedBatteryDiffEntry(new BatteryDiffEntry(mContext, "", "Chrome", 0));
         mBatteryTipsController.handleBatteryTipsCardUpdated(eventWrapper, false);
 
-        verify(mBatteryTipsCardPreference).setTitle(
-                "Chrome used more battery than usual");
-        verify(mBatteryTipsCardPreference).setIconResourceId(
-                R.drawable.ic_battery_tips_warning_icon);
-        verify(mBatteryTipsCardPreference).setMainButtonStrokeColorResourceId(
-                R.color.color_battery_anomaly_yellow_selector);
+        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);
-        verify(mFeatureFactory.metricsFeatureProvider).action(
-                mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW, "AppAnomaly");
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW, "AppAnomaly");
     }
 }
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 a721ad4..fc30702 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java
@@ -58,18 +58,12 @@
     private static final String PREF_KEY2 = "pref_key2";
     private static final String PREF_SUMMARY = "fake preference summary";
 
-    @Mock
-    private InstrumentedPreferenceFragment mFragment;
-    @Mock
-    private SettingsActivity mSettingsActivity;
-    @Mock
-    private PreferenceGroup mAppListPreferenceGroup;
-    @Mock
-    private Drawable mDrawable;
-    @Mock
-    private BatteryHistEntry mBatteryHistEntry;
-    @Mock
-    private AnomalyAppItemPreference mAnomalyAppItemPreference;
+    @Mock private InstrumentedPreferenceFragment mFragment;
+    @Mock private SettingsActivity mSettingsActivity;
+    @Mock private PreferenceGroup mAppListPreferenceGroup;
+    @Mock private Drawable mDrawable;
+    @Mock private BatteryHistEntry mBatteryHistEntry;
+    @Mock private AnomalyAppItemPreference mAnomalyAppItemPreference;
 
     private Context mContext;
     private FakeFeatureFactory mFeatureFactory;
@@ -94,43 +88,51 @@
                 .getHideApplicationSet();
         mBatteryUsageBreakdownController = createController();
         mBatteryUsageBreakdownController.mAppListPreferenceGroup = mAppListPreferenceGroup;
-        mBatteryDiffEntry = new BatteryDiffEntry(
-                mContext,
-                /*uid=*/ 0L,
-                /*userId=*/ 0L,
-                /*key=*/ "key",
-                /*isHidden=*/ false,
-                /*componentId=*/ -1,
-                /*legacyPackageName=*/ null,
-                /*legacyLabel=*/ null,
-                /*consumerType=*/ ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
-                /*foregroundUsageTimeInMs=*/ 1,
-                /*backgroundUsageTimeInMs=*/ 2,
-                /*screenOnTimeInMs=*/ 0,
-                /*consumePower=*/ 3,
-                /*foregroundUsageConsumePower=*/ 0,
-                /*foregroundServiceUsageConsumePower=*/ 1,
-                /*backgroundUsageConsumePower=*/ 2,
-                /*cachedUsageConsumePower=*/ 0);
+        mBatteryDiffEntry =
+                new BatteryDiffEntry(
+                        mContext,
+                        /* uid= */ 0L,
+                        /* userId= */ 0L,
+                        /* key= */ "key",
+                        /* isHidden= */ false,
+                        /* componentId= */ -1,
+                        /* legacyPackageName= */ null,
+                        /* legacyLabel= */ null,
+                        /* consumerType= */ ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 1,
+                        /* backgroundUsageTimeInMs= */ 2,
+                        /* screenOnTimeInMs= */ 0,
+                        /* consumePower= */ 3,
+                        /* foregroundUsageConsumePower= */ 0,
+                        /* foregroundServiceUsageConsumePower= */ 1,
+                        /* backgroundUsageConsumePower= */ 2,
+                        /* cachedUsageConsumePower= */ 0);
         mBatteryDiffEntry = spy(mBatteryDiffEntry);
         mBatteryUsageBreakdownController.mBatteryDiffData =
-                new BatteryDiffData(mContext, /* startTimestamp= */ 0L, /* endTimestamp= */ 0L,
-                        /* startBatteryLevel= */ 0, /* endBatteryLevel= */ 0,
-                        /* screenOnTime= */ 0L, Arrays.asList(mBatteryDiffEntry), Arrays.asList(),
-                        Set.of(), Set.of(), /* isAccumulated= */ false);
+                new BatteryDiffData(
+                        mContext,
+                        /* startTimestamp= */ 0L,
+                        /* endTimestamp= */ 0L,
+                        /* startBatteryLevel= */ 0,
+                        /* endBatteryLevel= */ 0,
+                        /* screenOnTime= */ 0L,
+                        Arrays.asList(mBatteryDiffEntry),
+                        Arrays.asList(),
+                        Set.of(),
+                        Set.of(),
+                        /* isAccumulated= */ false);
         BatteryDiffEntry.clearCache();
         // Adds fake testing data.
         BatteryDiffEntry.sResourceCache.put(
                 "fakeBatteryDiffEntryKey",
-                new BatteryEntry.NameAndIcon("fakeName", /*icon=*/ null, /*iconId=*/ 1));
+                new BatteryEntry.NameAndIcon("fakeName", /* icon= */ null, /* iconId= */ 1));
         doReturn(mAnomalyAppItemPreference).when(mAppListPreferenceGroup).findPreference(PREF_KEY);
     }
 
     @Test
     public void onDestroy_clearPreferenceCacheAndPreferenceGroupRemoveAll() {
         // Ensures the testing environment is correct.
-        mBatteryUsageBreakdownController.mPreferenceCache.put(
-                PREF_KEY, mAnomalyAppItemPreference);
+        mBatteryUsageBreakdownController.mPreferenceCache.put(PREF_KEY, mAnomalyAppItemPreference);
         assertThat(mBatteryUsageBreakdownController.mPreferenceCache).hasSize(1);
 
         mBatteryUsageBreakdownController.onDestroy();
@@ -158,8 +160,8 @@
 
         // Verifies the preference cache.
         final PowerGaugePreference pref =
-                (PowerGaugePreference) mBatteryUsageBreakdownController.mPreferenceCache
-                        .get(PREF_KEY);
+                (PowerGaugePreference)
+                        mBatteryUsageBreakdownController.mPreferenceCache.get(PREF_KEY);
         assertThat(pref).isNotNull();
         // Verifies the added preference configuration.
         verify(mAppListPreferenceGroup).addPreference(pref);
@@ -218,8 +220,10 @@
 
     @Test
     public void handlePreferenceTreeClick_notPowerGaugePreference_returnFalse() {
-        assertThat(mBatteryUsageBreakdownController
-                .handlePreferenceTreeClick(mAppListPreferenceGroup)).isFalse();
+        assertThat(
+                        mBatteryUsageBreakdownController.handlePreferenceTreeClick(
+                                mAppListPreferenceGroup))
+                .isFalse();
 
         verify(mMetricsFeatureProvider, never())
                 .action(mContext, SettingsEnums.ACTION_BATTERY_USAGE_APP_ITEM);
@@ -232,8 +236,10 @@
         mBatteryDiffEntry.mConsumerType = ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY;
         doReturn(mBatteryDiffEntry).when(mAnomalyAppItemPreference).getBatteryDiffEntry();
 
-        assertThat(mBatteryUsageBreakdownController.handlePreferenceTreeClick(
-                mAnomalyAppItemPreference)).isTrue();
+        assertThat(
+                        mBatteryUsageBreakdownController.handlePreferenceTreeClick(
+                                mAnomalyAppItemPreference))
+                .isTrue();
         verify(mMetricsFeatureProvider)
                 .action(
                         SettingsEnums.OPEN_BATTERY_USAGE,
@@ -248,8 +254,10 @@
         mBatteryDiffEntry.mConsumerType = ConvertUtils.CONSUMER_TYPE_UID_BATTERY;
         doReturn(mBatteryDiffEntry).when(mAnomalyAppItemPreference).getBatteryDiffEntry();
 
-        assertThat(mBatteryUsageBreakdownController.handlePreferenceTreeClick(
-                mAnomalyAppItemPreference)).isTrue();
+        assertThat(
+                        mBatteryUsageBreakdownController.handlePreferenceTreeClick(
+                                mAnomalyAppItemPreference))
+                .isTrue();
         verify(mMetricsFeatureProvider)
                 .action(
                         SettingsEnums.OPEN_BATTERY_USAGE,
@@ -262,11 +270,12 @@
     @Test
     public void setPreferencePercent_lessThanThreshold_expectedFormat() {
         final PowerGaugePreference pref = new PowerGaugePreference(mContext);
-        final BatteryDiffEntry batteryDiffEntry = createBatteryDiffEntry(
-                /*isSystem=*/ true,
-                /*screenOnTimeInMs=*/ 0,
-                /*foregroundUsageTimeInMs=*/ 0,
-                /*backgroundUsageTimeInMs=*/ 0);
+        final BatteryDiffEntry batteryDiffEntry =
+                createBatteryDiffEntry(
+                        /* isSystem= */ true,
+                        /* screenOnTimeInMs= */ 0,
+                        /* foregroundUsageTimeInMs= */ 0,
+                        /* backgroundUsageTimeInMs= */ 0);
         batteryDiffEntry.mConsumePower = 0.8;
         batteryDiffEntry.setTotalConsumePower(100);
         mBatteryUsageBreakdownController.mPercentLessThanThresholdText = "< 1%";
@@ -279,11 +288,12 @@
     @Test
     public void setPreferencePercent_greaterThanThreshold_expectedFormat() {
         final PowerGaugePreference pref = new PowerGaugePreference(mContext);
-        final BatteryDiffEntry batteryDiffEntry = createBatteryDiffEntry(
-                /*isSystem=*/ true,
-                /*screenOnTimeInMs=*/ 0,
-                /*foregroundUsageTimeInMs=*/ 0,
-                /*backgroundUsageTimeInMs=*/ 0);
+        final BatteryDiffEntry batteryDiffEntry =
+                createBatteryDiffEntry(
+                        /* isSystem= */ true,
+                        /* screenOnTimeInMs= */ 0,
+                        /* foregroundUsageTimeInMs= */ 0,
+                        /* backgroundUsageTimeInMs= */ 0);
         batteryDiffEntry.mConsumePower = 16;
         batteryDiffEntry.setTotalConsumePower(100);
         mBatteryUsageBreakdownController.mPercentLessThanThresholdText = "< 1%";
@@ -299,11 +309,12 @@
         pref.setSummary(PREF_SUMMARY);
 
         mBatteryUsageBreakdownController.setPreferenceSummary(
-                pref, createBatteryDiffEntry(
-                        /*isSystem=*/ true,
-                        /*screenOnTimeInMs=*/ 0,
-                        /*foregroundUsageTimeInMs=*/ 0,
-                        /*backgroundUsageTimeInMs=*/ 0));
+                pref,
+                createBatteryDiffEntry(
+                        /* isSystem= */ true,
+                        /* screenOnTimeInMs= */ 0,
+                        /* foregroundUsageTimeInMs= */ 0,
+                        /* backgroundUsageTimeInMs= */ 0));
         assertThat(pref.getSummary().toString().isEmpty()).isTrue();
     }
 
@@ -313,11 +324,12 @@
         pref.setSummary(PREF_SUMMARY);
 
         mBatteryUsageBreakdownController.setPreferenceSummary(
-                pref, createBatteryDiffEntry(
-                        /*isSystem=*/ true,
-                        /*screenOnTimeInMs=*/ 0,
-                        /*foregroundUsageTimeInMs=*/ DateUtils.MINUTE_IN_MILLIS - 1,
-                        /*backgroundUsageTimeInMs=*/ 0));
+                pref,
+                createBatteryDiffEntry(
+                        /* isSystem= */ true,
+                        /* screenOnTimeInMs= */ 0,
+                        /* foregroundUsageTimeInMs= */ DateUtils.MINUTE_IN_MILLIS - 1,
+                        /* backgroundUsageTimeInMs= */ 0));
         assertThat(pref.getSummary().toString()).isEqualTo("Total: less than a min");
     }
 
@@ -327,11 +339,12 @@
         pref.setSummary(PREF_SUMMARY);
 
         mBatteryUsageBreakdownController.setPreferenceSummary(
-                pref, createBatteryDiffEntry(
-                        /*isSystem=*/ true,
-                        /*screenOnTimeInMs=*/ 0,
-                        /*foregroundUsageTimeInMs=*/ DateUtils.MINUTE_IN_MILLIS * 2,
-                        /*backgroundUsageTimeInMs=*/ 0));
+                pref,
+                createBatteryDiffEntry(
+                        /* isSystem= */ true,
+                        /* screenOnTimeInMs= */ 0,
+                        /* foregroundUsageTimeInMs= */ DateUtils.MINUTE_IN_MILLIS * 2,
+                        /* backgroundUsageTimeInMs= */ 0));
         assertThat(pref.getSummary().toString()).isEqualTo("Total: 2 min");
     }
 
@@ -341,11 +354,12 @@
         pref.setSummary(PREF_SUMMARY);
 
         mBatteryUsageBreakdownController.setPreferenceSummary(
-                pref, createBatteryDiffEntry(
-                        /*isSystem=*/ false,
-                        /*screenOnTimeInMs=*/ 0,
-                        /*foregroundUsageTimeInMs=*/ 0,
-                        /*backgroundUsageTimeInMs=*/ 0));
+                pref,
+                createBatteryDiffEntry(
+                        /* isSystem= */ false,
+                        /* screenOnTimeInMs= */ 0,
+                        /* foregroundUsageTimeInMs= */ 0,
+                        /* backgroundUsageTimeInMs= */ 0));
         assertThat(pref.getSummary().toString().isEmpty()).isTrue();
     }
 
@@ -355,11 +369,12 @@
         pref.setSummary(PREF_SUMMARY);
 
         mBatteryUsageBreakdownController.setPreferenceSummary(
-                pref, createBatteryDiffEntry(
-                        /*isSystem=*/ false,
-                        /*screenOnTimeInMs=*/ 0,
-                        /*foregroundUsageTimeInMs=*/ 0,
-                        /*backgroundUsageTimeInMs=*/ DateUtils.MINUTE_IN_MILLIS));
+                pref,
+                createBatteryDiffEntry(
+                        /* isSystem= */ false,
+                        /* screenOnTimeInMs= */ 0,
+                        /* foregroundUsageTimeInMs= */ 0,
+                        /* backgroundUsageTimeInMs= */ DateUtils.MINUTE_IN_MILLIS));
         assertThat(pref.getSummary().toString()).isEqualTo("Background: 1 min");
     }
 
@@ -369,11 +384,12 @@
         pref.setSummary(PREF_SUMMARY);
 
         mBatteryUsageBreakdownController.setPreferenceSummary(
-                pref, createBatteryDiffEntry(
-                        /*isSystem=*/ false,
-                        /*screenOnTimeInMs=*/ DateUtils.MINUTE_IN_MILLIS,
-                        /*foregroundUsageTimeInMs=*/ 0,
-                        /*backgroundUsageTimeInMs=*/ 0));
+                pref,
+                createBatteryDiffEntry(
+                        /* isSystem= */ false,
+                        /* screenOnTimeInMs= */ DateUtils.MINUTE_IN_MILLIS,
+                        /* foregroundUsageTimeInMs= */ 0,
+                        /* backgroundUsageTimeInMs= */ 0));
         assertThat(pref.getSummary().toString()).isEqualTo("Screen time: 1 min");
     }
 
@@ -383,21 +399,28 @@
         pref.setSummary(PREF_SUMMARY);
 
         mBatteryUsageBreakdownController.setPreferenceSummary(
-                pref, createBatteryDiffEntry(
-                        /*isSystem=*/ false,
-                        /*screenOnTimeInMs=*/ DateUtils.MINUTE_IN_MILLIS - 1,
-                        /*foregroundUsageTimeInMs=*/ DateUtils.MINUTE_IN_MILLIS - 1,
-                        /*backgroundUsageTimeInMs=*/ DateUtils.MINUTE_IN_MILLIS - 1));
-        assertThat(pref.getSummary().toString()).isEqualTo(
-                "Screen time: less than a min\nBackground: less than a min");
+                pref,
+                createBatteryDiffEntry(
+                        /* isSystem= */ false,
+                        /* screenOnTimeInMs= */ DateUtils.MINUTE_IN_MILLIS - 1,
+                        /* foregroundUsageTimeInMs= */ DateUtils.MINUTE_IN_MILLIS - 1,
+                        /* backgroundUsageTimeInMs= */ DateUtils.MINUTE_IN_MILLIS - 1));
+        assertThat(pref.getSummary().toString())
+                .isEqualTo("Screen time: less than a min\nBackground: less than a min");
     }
 
-    private BatteryDiffEntry createBatteryDiffEntry(boolean isSystem, long screenOnTimeInMs,
-            long foregroundUsageTimeInMs, long backgroundUsageTimeInMs) {
+    private BatteryDiffEntry createBatteryDiffEntry(
+            boolean isSystem,
+            long screenOnTimeInMs,
+            long foregroundUsageTimeInMs,
+            long backgroundUsageTimeInMs) {
         final ContentValues contentValues = new ContentValues();
-        contentValues.put(BatteryHistEntry.KEY_CONSUMER_TYPE, Integer.valueOf(
-                isSystem ? ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY
-                        : ConvertUtils.CONSUMER_TYPE_UID_BATTERY));
+        contentValues.put(
+                BatteryHistEntry.KEY_CONSUMER_TYPE,
+                Integer.valueOf(
+                        isSystem
+                                ? ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY
+                                : ConvertUtils.CONSUMER_TYPE_UID_BATTERY));
         contentValues.put(BatteryHistEntry.KEY_USER_ID, Integer.valueOf(1001));
         final BatteryHistEntry batteryHistEntry = new BatteryHistEntry(contentValues);
         return new BatteryDiffEntry(
@@ -413,17 +436,17 @@
                 foregroundUsageTimeInMs,
                 backgroundUsageTimeInMs,
                 screenOnTimeInMs,
-                /*consumePower=*/ 0,
-                /*foregroundUsageConsumePower=*/ 0,
-                /*foregroundServiceUsageConsumePower=*/ 0,
-                /*backgroundUsageConsumePower=*/ 0,
-                /*cachedUsageConsumePower=*/ 0);
+                /* consumePower= */ 0,
+                /* foregroundUsageConsumePower= */ 0,
+                /* foregroundServiceUsageConsumePower= */ 0,
+                /* backgroundUsageConsumePower= */ 0,
+                /* cachedUsageConsumePower= */ 0);
     }
 
     private BatteryUsageBreakdownController createController() {
         final BatteryUsageBreakdownController controller =
                 new BatteryUsageBreakdownController(
-                        mContext, /*lifecycle=*/ null, mSettingsActivity, mFragment);
+                        mContext, /* lifecycle= */ null, mSettingsActivity, mFragment);
         controller.mPrefContext = mContext;
         return controller;
     }
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 f00c049..af0cb91 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiverTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiverTest.java
@@ -30,6 +30,7 @@
 import android.os.SystemClock;
 import android.text.format.DateUtils;
 
+import com.android.settings.testutils.BatteryTestUtils;
 import com.android.settings.testutils.FakeFeatureFactory;
 
 import org.junit.Before;
@@ -47,8 +48,7 @@
     private BatteryUsageBroadcastReceiver mBatteryUsageBroadcastReceiver;
     private FakeFeatureFactory mFakeFeatureFactory;
 
-    @Mock
-    private PackageManager mPackageManager;
+    @Mock private PackageManager mPackageManager;
 
     @Before
     public void setUp() {
@@ -68,16 +68,27 @@
     }
 
     @Test
+    public void onReceive_workProfile_doNothing() {
+        BatteryTestUtils.setWorkProfile(mContext);
+
+        mBatteryUsageBroadcastReceiver.onReceive(
+                mContext, new Intent(BatteryUsageBroadcastReceiver.ACTION_BATTERY_UNPLUGGING));
+
+        assertThat(mBatteryUsageBroadcastReceiver.mFetchBatteryUsageData).isFalse();
+    }
+
+    @Test
     public void onReceive_aospNotFullCharged_notFetchUsageData() {
         when(mFakeFeatureFactory.powerUsageFeatureProvider.getFullChargeIntentAction())
                 .thenReturn(Intent.ACTION_BATTERY_LEVEL_CHANGED);
         when(mFakeFeatureFactory.powerUsageFeatureProvider.delayHourlyJobWhenBooting())
                 .thenReturn(true);
-        doReturn(getBatteryIntent(/*level=*/ 20, BatteryManager.BATTERY_STATUS_UNKNOWN))
-                .when(mContext).registerReceiver(any(), any());
+        doReturn(getBatteryIntent(/* level= */ 20, BatteryManager.BATTERY_STATUS_UNKNOWN))
+                .when(mContext)
+                .registerReceiver(any(), any());
 
-        mBatteryUsageBroadcastReceiver.onReceive(mContext,
-                new Intent(Intent.ACTION_BATTERY_LEVEL_CHANGED));
+        mBatteryUsageBroadcastReceiver.onReceive(
+                mContext, new Intent(Intent.ACTION_BATTERY_LEVEL_CHANGED));
 
         assertThat(mBatteryUsageBroadcastReceiver.mFetchBatteryUsageData).isFalse();
         assertSharedPreferences(Intent.ACTION_BATTERY_LEVEL_CHANGED);
@@ -90,14 +101,15 @@
         when(mFakeFeatureFactory.powerUsageFeatureProvider.delayHourlyJobWhenBooting())
                 .thenReturn(true);
         // Make sure isCharged returns true.
-        doReturn(getBatteryIntent(/*level=*/ 100, BatteryManager.BATTERY_STATUS_FULL))
-                .when(mContext).registerReceiver(any(), any());
+        doReturn(getBatteryIntent(/* level= */ 100, BatteryManager.BATTERY_STATUS_FULL))
+                .when(mContext)
+                .registerReceiver(any(), any());
         // Make sure broadcast will be sent with delay.
         BatteryUsageBroadcastReceiver.sBroadcastDelayFromBoot =
                 SystemClock.elapsedRealtime() + 5 * DateUtils.MINUTE_IN_MILLIS;
 
-        mBatteryUsageBroadcastReceiver.onReceive(mContext,
-                new Intent(Intent.ACTION_BATTERY_LEVEL_CHANGED));
+        mBatteryUsageBroadcastReceiver.onReceive(
+                mContext, new Intent(Intent.ACTION_BATTERY_LEVEL_CHANGED));
 
         assertThat(mBatteryUsageBroadcastReceiver.mFetchBatteryUsageData).isFalse();
         assertSharedPreferences(Intent.ACTION_BATTERY_LEVEL_CHANGED);
@@ -110,13 +122,14 @@
         when(mFakeFeatureFactory.powerUsageFeatureProvider.delayHourlyJobWhenBooting())
                 .thenReturn(true);
         // Make sure isCharged returns true.
-        doReturn(getBatteryIntent(/*level=*/ 100, BatteryManager.BATTERY_STATUS_UNKNOWN))
-                .when(mContext).registerReceiver(any(), any());
+        doReturn(getBatteryIntent(/* level= */ 100, BatteryManager.BATTERY_STATUS_UNKNOWN))
+                .when(mContext)
+                .registerReceiver(any(), any());
         BatteryUsageBroadcastReceiver.sBroadcastDelayFromBoot =
                 SystemClock.elapsedRealtime() - 5 * DateUtils.MINUTE_IN_MILLIS;
 
-        mBatteryUsageBroadcastReceiver.onReceive(mContext,
-                new Intent(Intent.ACTION_BATTERY_LEVEL_CHANGED));
+        mBatteryUsageBroadcastReceiver.onReceive(
+                mContext, new Intent(Intent.ACTION_BATTERY_LEVEL_CHANGED));
 
         assertThat(mBatteryUsageBroadcastReceiver.mFetchBatteryUsageData).isFalse();
         assertSharedPreferences(Intent.ACTION_BATTERY_LEVEL_CHANGED);
@@ -129,13 +142,14 @@
         when(mFakeFeatureFactory.powerUsageFeatureProvider.delayHourlyJobWhenBooting())
                 .thenReturn(true);
         // Make sure isCharged returns true.
-        doReturn(getBatteryIntent(/*level=*/ 100, BatteryManager.BATTERY_STATUS_UNKNOWN))
-                .when(mContext).registerReceiver(any(), any());
+        doReturn(getBatteryIntent(/* level= */ 100, BatteryManager.BATTERY_STATUS_UNKNOWN))
+                .when(mContext)
+                .registerReceiver(any(), any());
         BatteryUsageBroadcastReceiver.sBroadcastDelayFromBoot =
                 SystemClock.elapsedRealtime() - 5 * DateUtils.MINUTE_IN_MILLIS;
 
-        mBatteryUsageBroadcastReceiver.onReceive(mContext,
-                new Intent(Intent.ACTION_BATTERY_LEVEL_CHANGED));
+        mBatteryUsageBroadcastReceiver.onReceive(
+                mContext, new Intent(Intent.ACTION_BATTERY_LEVEL_CHANGED));
 
         assertThat(mBatteryUsageBroadcastReceiver.mFetchBatteryUsageData).isTrue();
         assertSharedPreferences(Intent.ACTION_BATTERY_LEVEL_CHANGED);
@@ -147,11 +161,12 @@
                 .thenReturn(Intent.ACTION_POWER_DISCONNECTED);
         when(mFakeFeatureFactory.powerUsageFeatureProvider.delayHourlyJobWhenBooting())
                 .thenReturn(false);
-        doReturn(getBatteryIntent(/*level=*/ 20, BatteryManager.BATTERY_STATUS_UNKNOWN))
-                .when(mContext).registerReceiver(any(), any());
+        doReturn(getBatteryIntent(/* level= */ 20, BatteryManager.BATTERY_STATUS_UNKNOWN))
+                .when(mContext)
+                .registerReceiver(any(), any());
 
-        mBatteryUsageBroadcastReceiver.onReceive(mContext,
-                new Intent(BatteryUsageBroadcastReceiver.ACTION_BATTERY_UNPLUGGING));
+        mBatteryUsageBroadcastReceiver.onReceive(
+                mContext, new Intent(BatteryUsageBroadcastReceiver.ACTION_BATTERY_UNPLUGGING));
 
         assertThat(mBatteryUsageBroadcastReceiver.mFetchBatteryUsageData).isFalse();
         assertSharedPreferences(BatteryUsageBroadcastReceiver.ACTION_BATTERY_UNPLUGGING);
@@ -164,14 +179,15 @@
         when(mFakeFeatureFactory.powerUsageFeatureProvider.delayHourlyJobWhenBooting())
                 .thenReturn(false);
         // Make sure isCharged returns true.
-        doReturn(getBatteryIntent(/*level=*/ 100, BatteryManager.BATTERY_STATUS_FULL))
-                .when(mContext).registerReceiver(any(), any());
+        doReturn(getBatteryIntent(/* level= */ 100, BatteryManager.BATTERY_STATUS_FULL))
+                .when(mContext)
+                .registerReceiver(any(), any());
         // Make sure broadcast will be sent with delay.
         BatteryUsageBroadcastReceiver.sBroadcastDelayFromBoot =
                 SystemClock.elapsedRealtime() + 5 * DateUtils.MINUTE_IN_MILLIS;
 
-        mBatteryUsageBroadcastReceiver.onReceive(mContext,
-                new Intent(BatteryUsageBroadcastReceiver.ACTION_BATTERY_UNPLUGGING));
+        mBatteryUsageBroadcastReceiver.onReceive(
+                mContext, new Intent(BatteryUsageBroadcastReceiver.ACTION_BATTERY_UNPLUGGING));
 
         assertThat(mBatteryUsageBroadcastReceiver.mFetchBatteryUsageData).isTrue();
         assertSharedPreferences(BatteryUsageBroadcastReceiver.ACTION_BATTERY_UNPLUGGING);
@@ -184,13 +200,14 @@
         when(mFakeFeatureFactory.powerUsageFeatureProvider.delayHourlyJobWhenBooting())
                 .thenReturn(false);
         // Make sure isCharged returns true.
-        doReturn(getBatteryIntent(/*level=*/ 100, BatteryManager.BATTERY_STATUS_UNKNOWN))
-                .when(mContext).registerReceiver(any(), any());
+        doReturn(getBatteryIntent(/* level= */ 100, BatteryManager.BATTERY_STATUS_UNKNOWN))
+                .when(mContext)
+                .registerReceiver(any(), any());
         BatteryUsageBroadcastReceiver.sBroadcastDelayFromBoot =
                 SystemClock.elapsedRealtime() - 5 * DateUtils.MINUTE_IN_MILLIS;
 
-        mBatteryUsageBroadcastReceiver.onReceive(mContext,
-                new Intent(BatteryUsageBroadcastReceiver.ACTION_BATTERY_UNPLUGGING));
+        mBatteryUsageBroadcastReceiver.onReceive(
+                mContext, new Intent(BatteryUsageBroadcastReceiver.ACTION_BATTERY_UNPLUGGING));
 
         assertThat(mBatteryUsageBroadcastReceiver.mFetchBatteryUsageData).isFalse();
         assertSharedPreferences(BatteryUsageBroadcastReceiver.ACTION_BATTERY_UNPLUGGING);
@@ -203,13 +220,14 @@
         when(mFakeFeatureFactory.powerUsageFeatureProvider.delayHourlyJobWhenBooting())
                 .thenReturn(false);
         // Make sure isCharged returns true.
-        doReturn(getBatteryIntent(/*level=*/ 100, BatteryManager.BATTERY_STATUS_UNKNOWN))
-                .when(mContext).registerReceiver(any(), any());
+        doReturn(getBatteryIntent(/* level= */ 100, BatteryManager.BATTERY_STATUS_UNKNOWN))
+                .when(mContext)
+                .registerReceiver(any(), any());
         BatteryUsageBroadcastReceiver.sBroadcastDelayFromBoot =
                 SystemClock.elapsedRealtime() - 5 * DateUtils.MINUTE_IN_MILLIS;
 
-        mBatteryUsageBroadcastReceiver.onReceive(mContext,
-                new Intent(BatteryUsageBroadcastReceiver.ACTION_BATTERY_UNPLUGGING));
+        mBatteryUsageBroadcastReceiver.onReceive(
+                mContext, new Intent(BatteryUsageBroadcastReceiver.ACTION_BATTERY_UNPLUGGING));
 
         assertThat(mBatteryUsageBroadcastReceiver.mFetchBatteryUsageData).isTrue();
         assertSharedPreferences(BatteryUsageBroadcastReceiver.ACTION_BATTERY_UNPLUGGING);
@@ -223,12 +241,12 @@
                 /*packageName*/ "com.android.testing_package", Boolean.valueOf(true));
         assertThat(BatteryDiffEntry.sValidForRestriction).isNotEmpty();
 
-        mBatteryUsageBroadcastReceiver.onReceive(mContext,
+        mBatteryUsageBroadcastReceiver.onReceive(
+                mContext,
                 new Intent(BatteryUsageBroadcastReceiver.ACTION_CLEAR_BATTERY_CACHE_DATA));
 
         assertThat(BatteryDiffEntry.sValidForRestriction).isEmpty();
-        assertSharedPreferences(
-                BatteryUsageBroadcastReceiver.ACTION_CLEAR_BATTERY_CACHE_DATA);
+        assertSharedPreferences(BatteryUsageBroadcastReceiver.ACTION_CLEAR_BATTERY_CACHE_DATA);
     }
 
     @Test
@@ -239,12 +257,12 @@
                 /*packageName*/ "com.android.testing_package", Boolean.valueOf(true));
         assertThat(BatteryDiffEntry.sValidForRestriction).isNotEmpty();
 
-        mBatteryUsageBroadcastReceiver.onReceive(mContext,
+        mBatteryUsageBroadcastReceiver.onReceive(
+                mContext,
                 new Intent(BatteryUsageBroadcastReceiver.ACTION_CLEAR_BATTERY_CACHE_DATA));
 
         assertThat(BatteryDiffEntry.sValidForRestriction).isNotEmpty();
-        assertSharedPreferences(
-                BatteryUsageBroadcastReceiver.ACTION_CLEAR_BATTERY_CACHE_DATA);
+        assertSharedPreferences(BatteryUsageBroadcastReceiver.ACTION_CLEAR_BATTERY_CACHE_DATA);
     }
 
     private static Intent getBatteryIntent(int level, int status) {
@@ -256,7 +274,6 @@
     }
 
     private void assertSharedPreferences(String preferenceKey) {
-        assertThat(DatabaseUtils.getSharedPreferences(mContext).contains(preferenceKey))
-                .isTrue();
+        assertThat(DatabaseUtils.getSharedPreferences(mContext).contains(preferenceKey)).isTrue();
     }
 }
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 999a921..95b950f 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProviderTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProviderTest.java
@@ -66,7 +66,7 @@
     public void setUp() {
         mContext = ApplicationProvider.getApplicationContext();
         mProvider = new BatteryUsageContentProvider();
-        mProvider.attachInfo(mContext, /*info=*/ null);
+        mProvider.attachInfo(mContext, /* info= */ null);
         BatteryTestUtils.setUpBatteryStateDatabase(mContext);
     }
 
@@ -95,11 +95,14 @@
                 IllegalArgumentException.class,
                 () ->
                         mProvider.query(
-                                uri, /*strings=*/ null, /*s=*/ null, /*strings1=*/ null,
-                                /*s1=*/ null));
+                                uri,
+                                /* strings= */ null,
+                                /* s= */ null,
+                                /* strings1= */ null,
+                                /* s1= */ null));
         assertThrows(
                 IllegalArgumentException.class,
-                () -> mProvider.insert(uri, /*contentValues=*/ null));
+                () -> mProvider.insert(uri, /* contentValues= */ null));
     }
 
     @Test
@@ -116,11 +119,14 @@
                 IllegalArgumentException.class,
                 () ->
                         mProvider.query(
-                                uri, /*strings=*/ null, /*s=*/ null, /*strings1=*/ null,
-                                /*s1=*/ null));
+                                uri,
+                                /* strings= */ null,
+                                /* s= */ null,
+                                /* strings1= */ null,
+                                /* s1= */ null));
         assertThrows(
                 IllegalArgumentException.class,
-                () -> mProvider.insert(uri, /*contentValues=*/ null));
+                () -> mProvider.insert(uri, /* contentValues= */ null));
     }
 
     @Test
@@ -128,7 +134,8 @@
         mProvider.onCreate();
         ContentValues values = new ContentValues();
         values.put(BatteryEventEntity.KEY_TIMESTAMP, 10001L);
-        values.put(BatteryEventEntity.KEY_BATTERY_EVENT_TYPE,
+        values.put(
+                BatteryEventEntity.KEY_BATTERY_EVENT_TYPE,
                 BatteryEventType.FULL_CHARGED.getNumber());
         values.put(BatteryEventEntity.KEY_BATTERY_LEVEL, 100);
         mProvider.insert(DatabaseUtils.BATTERY_EVENT_URI, values);
@@ -263,15 +270,13 @@
     public void insert_batteryState_returnsExpectedResult() {
         mProvider.onCreate();
         final DeviceBatteryState deviceBatteryState =
-                DeviceBatteryState
-                        .newBuilder()
+                DeviceBatteryState.newBuilder()
                         .setBatteryLevel(51)
                         .setBatteryStatus(2)
                         .setBatteryHealth(3)
                         .build();
         final BatteryInformation batteryInformation =
-                BatteryInformation
-                        .newBuilder()
+                BatteryInformation.newBuilder()
                         .setDeviceBatteryState(deviceBatteryState)
                         .setAppLabel("Settings")
                         .setIsHidden(true)
@@ -318,17 +323,13 @@
     public void insert_partialFieldsContentValues_returnsExpectedResult() {
         mProvider.onCreate();
         final DeviceBatteryState deviceBatteryState =
-                DeviceBatteryState
-                        .newBuilder()
+                DeviceBatteryState.newBuilder()
                         .setBatteryLevel(52)
                         .setBatteryStatus(3)
                         .setBatteryHealth(2)
                         .build();
         final BatteryInformation batteryInformation =
-                BatteryInformation
-                        .newBuilder()
-                        .setDeviceBatteryState(deviceBatteryState)
-                        .build();
+                BatteryInformation.newBuilder().setDeviceBatteryState(deviceBatteryState).build();
         final String expectedBatteryInformationString =
                 ConvertUtils.convertBatteryInformationToString(batteryInformation);
         final ContentValues values = new ContentValues();
@@ -381,7 +382,8 @@
         mProvider.onCreate();
         ContentValues values = new ContentValues();
         values.put(BatteryEventEntity.KEY_TIMESTAMP, 10001L);
-        values.put(BatteryEventEntity.KEY_BATTERY_EVENT_TYPE,
+        values.put(
+                BatteryEventEntity.KEY_BATTERY_EVENT_TYPE,
                 BatteryEventType.POWER_CONNECTED.getNumber());
         values.put(BatteryEventEntity.KEY_BATTERY_LEVEL, 66);
 
@@ -393,24 +395,26 @@
                 BatteryStateDatabase.getInstance(mContext).batteryEventDao().getAll();
         assertThat(entities).hasSize(1);
         assertThat(entities.get(0).timestamp).isEqualTo(10001L);
-        assertThat(entities.get(0).batteryEventType).isEqualTo(
-                BatteryEventType.POWER_CONNECTED.getNumber());
+        assertThat(entities.get(0).batteryEventType)
+                .isEqualTo(BatteryEventType.POWER_CONNECTED.getNumber());
         assertThat(entities.get(0).batteryLevel).isEqualTo(66);
 
-        final Cursor cursor1 = getCursorOfBatteryEvents(
-                0L, List.of(BatteryEventType.POWER_CONNECTED.getNumber()));
+        final Cursor cursor1 =
+                getCursorOfBatteryEvents(0L, List.of(BatteryEventType.POWER_CONNECTED.getNumber()));
         assertThat(cursor1.getCount()).isEqualTo(1);
         cursor1.moveToFirst();
         assertThat(cursor1.getLong(cursor1.getColumnIndex(BatteryEventEntity.KEY_TIMESTAMP)))
                 .isEqualTo(10001L);
         assertThat(
-                cursor1.getInt(cursor1.getColumnIndex(BatteryEventEntity.KEY_BATTERY_EVENT_TYPE)))
+                        cursor1.getInt(
+                                cursor1.getColumnIndex(BatteryEventEntity.KEY_BATTERY_EVENT_TYPE)))
                 .isEqualTo(BatteryEventType.POWER_CONNECTED.getNumber());
         assertThat(cursor1.getInt(cursor1.getColumnIndex(BatteryEventEntity.KEY_BATTERY_LEVEL)))
                 .isEqualTo(66);
 
-        final Cursor cursor2 = getCursorOfBatteryEvents(
-                0L, List.of(BatteryEventType.POWER_DISCONNECTED.getNumber()));
+        final Cursor cursor2 =
+                getCursorOfBatteryEvents(
+                        0L, List.of(BatteryEventType.POWER_DISCONNECTED.getNumber()));
         assertThat(cursor2.getCount()).isEqualTo(0);
     }
 
@@ -435,8 +439,11 @@
         cursor1.moveToFirst();
         assertThat(cursor1.getLong(cursor1.getColumnIndex(BatteryUsageSlotEntity.KEY_TIMESTAMP)))
                 .isEqualTo(10001L);
-        assertThat(cursor1.getString(cursor1.getColumnIndex(
-                BatteryUsageSlotEntity.KEY_BATTERY_USAGE_SLOT))).isEqualTo("TEST_STRING");
+        assertThat(
+                        cursor1.getString(
+                                cursor1.getColumnIndex(
+                                        BatteryUsageSlotEntity.KEY_BATTERY_USAGE_SLOT)))
+                .isEqualTo("TEST_STRING");
 
         final Cursor cursor2 = getCursorOfBatteryUsageSlots(10002L);
         assertThat(cursor2.getCount()).isEqualTo(0);
@@ -446,7 +453,7 @@
     public void delete_throwsUnsupportedOperationException() {
         assertThrows(
                 UnsupportedOperationException.class,
-                () -> mProvider.delete(/*uri=*/ null, /*s=*/ null, /*strings=*/ null));
+                () -> mProvider.delete(/* uri= */ null, /* s= */ null, /* strings= */ null));
     }
 
     @Test
@@ -455,13 +462,13 @@
                 UnsupportedOperationException.class,
                 () ->
                         mProvider.update(
-                                /*uri=*/ null, /*contentValues=*/ null, /*s=*/ null,
-                                /*strings=*/ null));
+                                /* uri= */ null,
+                                /* contentValues= */ null,
+                                /* s= */ null,
+                                /* strings= */ null));
     }
 
-    private Cursor insertBatteryState(
-            Duration currentTime,
-            String queryTimestamp)
+    private Cursor insertBatteryState(Duration currentTime, String queryTimestamp)
             throws Exception {
         mProvider.onCreate();
         final FakeClock fakeClock = new FakeClock();
@@ -470,20 +477,17 @@
         final long currentTimestamp = currentTime.toMillis();
         // Inserts some valid testing data.
         BatteryTestUtils.insertDataToBatteryStateTable(
-                mContext, currentTimestamp - 6, PACKAGE_NAME1,
-                /*isFullChargeStart=*/ true);
+                mContext, currentTimestamp - 6, PACKAGE_NAME1, /* isFullChargeStart= */ true);
         BatteryTestUtils.insertDataToBatteryStateTable(
                 mContext, currentTimestamp - 2, PACKAGE_NAME2);
-        BatteryTestUtils.insertDataToBatteryStateTable(
-                mContext, currentTimestamp, PACKAGE_NAME3);
+        BatteryTestUtils.insertDataToBatteryStateTable(mContext, currentTimestamp, PACKAGE_NAME3);
 
         final Uri batteryStateQueryContentUri =
                 new Uri.Builder()
                         .scheme(ContentResolver.SCHEME_CONTENT)
                         .authority(DatabaseUtils.AUTHORITY)
                         .appendPath(DatabaseUtils.BATTERY_STATE_TABLE)
-                        .appendQueryParameter(
-                                DatabaseUtils.QUERY_KEY_TIMESTAMP, queryTimestamp)
+                        .appendQueryParameter(DatabaseUtils.QUERY_KEY_TIMESTAMP, queryTimestamp)
                         .build();
 
         final Cursor cursor = query(batteryStateQueryContentUri);
@@ -532,17 +536,17 @@
                         .scheme(ContentResolver.SCHEME_CONTENT)
                         .authority(DatabaseUtils.AUTHORITY)
                         .appendPath(DatabaseUtils.APP_USAGE_LATEST_TIMESTAMP_PATH)
-                        .appendQueryParameter(
-                                DatabaseUtils.QUERY_KEY_USERID, Long.toString(userId))
+                        .appendQueryParameter(DatabaseUtils.QUERY_KEY_USERID, Long.toString(userId))
                         .build();
 
         return query(appUsageLatestTimestampQueryContentUri);
     }
 
     private Cursor getCursorOfAppUsage(final List<Long> userIds, final long queryTimestamp) {
-        final String queryUserIdString = userIds.stream()
-                .map(userId -> String.valueOf(userId))
-                .collect(Collectors.joining(","));
+        final String queryUserIdString =
+                userIds.stream()
+                        .map(userId -> String.valueOf(userId))
+                        .collect(Collectors.joining(","));
         final Uri appUsageEventUri =
                 new Uri.Builder()
                         .scheme(ContentResolver.SCHEME_CONTENT)
@@ -558,9 +562,10 @@
 
     private Cursor getCursorOfBatteryEvents(
             final long queryTimestamp, final List<Integer> batteryEventTypes) {
-        final String batteryEventTypesString = batteryEventTypes.stream()
-                .map(type -> String.valueOf(type))
-                .collect(Collectors.joining(","));
+        final String batteryEventTypesString =
+                batteryEventTypes.stream()
+                        .map(type -> String.valueOf(type))
+                        .collect(Collectors.joining(","));
         final Uri batteryEventUri =
                 new Uri.Builder()
                         .scheme(ContentResolver.SCHEME_CONTENT)
@@ -590,6 +595,6 @@
 
     private Cursor query(Uri uri) {
         return mProvider.query(
-                uri, /*strings=*/ null, /*s=*/ null, /*strings1=*/ null, /*s1=*/ null);
+                uri, /* strings= */ null, /* s= */ null, /* strings1= */ null, /* s1= */ null);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoaderTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoaderTest.java
index f3965fd..723a138 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoaderTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoaderTest.java
@@ -52,28 +52,22 @@
 public final class BatteryUsageDataLoaderTest {
 
     private Context mContext;
-    @Mock
-    private ContentResolver mMockContentResolver;
-    @Mock
-    private BatteryStatsManager mBatteryStatsManager;
-    @Mock
-    private PackageManager mPackageManager;
-    @Mock
-    private UserManager mUserManager;
-    @Mock
-    private BatteryUsageStats mBatteryUsageStats;
-    @Mock
-    private BatteryEntry mMockBatteryEntry;
-    @Captor
-    private ArgumentCaptor<BatteryUsageStatsQuery> mStatsQueryCaptor;
+    @Mock private ContentResolver mMockContentResolver;
+    @Mock private BatteryStatsManager mBatteryStatsManager;
+    @Mock private PackageManager mPackageManager;
+    @Mock private UserManager mUserManager;
+    @Mock private BatteryUsageStats mBatteryUsageStats;
+    @Mock private BatteryEntry mMockBatteryEntry;
+    @Captor private ArgumentCaptor<BatteryUsageStatsQuery> mStatsQueryCaptor;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = spy(RuntimeEnvironment.application);
         doReturn(mContext).when(mContext).getApplicationContext();
-        doReturn(mBatteryStatsManager).when(mContext).getSystemService(
-                Context.BATTERY_STATS_SERVICE);
+        doReturn(mBatteryStatsManager)
+                .when(mContext)
+                .getSystemService(Context.BATTERY_STATS_SERVICE);
         doReturn(mPackageManager).when(mContext).getPackageManager();
         doReturn(mUserManager).when(mContext).getSystemService(UserManager.class);
         doReturn(mMockContentResolver).when(mContext).getContentResolver();
@@ -88,11 +82,10 @@
                 .thenReturn(mBatteryUsageStats);
         BatteryUsageDataLoader.sFakeBatteryEntryListSupplier = () -> batteryEntryList;
 
-        BatteryUsageDataLoader.loadBatteryStatsData(mContext, /*isFullChargeStart=*/ false);
+        BatteryUsageDataLoader.loadBatteryStatsData(mContext, /* isFullChargeStart= */ false);
 
         final int queryFlags = mStatsQueryCaptor.getValue().getFlags();
-        assertThat(queryFlags
-                & BatteryUsageStatsQuery.FLAG_BATTERY_USAGE_STATS_INCLUDE_HISTORY)
+        assertThat(queryFlags & BatteryUsageStatsQuery.FLAG_BATTERY_USAGE_STATS_INCLUDE_HISTORY)
                 .isNotEqualTo(0);
         verify(mMockContentResolver).insert(any(), any());
     }
@@ -103,7 +96,7 @@
                 .thenReturn(mBatteryUsageStats);
         BatteryUsageDataLoader.sFakeBatteryEntryListSupplier = () -> null;
 
-        BatteryUsageDataLoader.loadBatteryStatsData(mContext, /*isFullChargeStart=*/ false);
+        BatteryUsageDataLoader.loadBatteryStatsData(mContext, /* isFullChargeStart= */ false);
 
         verify(mMockContentResolver).insert(any(), any());
     }
@@ -114,7 +107,7 @@
                 .thenReturn(mBatteryUsageStats);
         BatteryUsageDataLoader.sFakeBatteryEntryListSupplier = () -> new ArrayList<>();
 
-        BatteryUsageDataLoader.loadBatteryStatsData(mContext, /*isFullChargeStart=*/ false);
+        BatteryUsageDataLoader.loadBatteryStatsData(mContext, /* isFullChargeStart= */ false);
 
         verify(mMockContentResolver).insert(any(), any());
     }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageStatsLoaderTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageStatsLoaderTest.java
index 1d0bca4..2932209 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageStatsLoaderTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageStatsLoaderTest.java
@@ -39,25 +39,23 @@
 @RunWith(RobolectricTestRunner.class)
 public class BatteryUsageStatsLoaderTest {
     private Context mContext;
-    @Mock
-    private BatteryStatsManager mBatteryStatsManager;
-    @Mock
-    private BatteryUsageStats mBatteryUsageStats;
-    @Captor
-    private ArgumentCaptor<BatteryUsageStatsQuery> mUsageStatsQueryCaptor;
+    @Mock private BatteryStatsManager mBatteryStatsManager;
+    @Mock private BatteryUsageStats mBatteryUsageStats;
+    @Captor private ArgumentCaptor<BatteryUsageStatsQuery> mUsageStatsQueryCaptor;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = spy(RuntimeEnvironment.application);
-        doReturn(mBatteryStatsManager).when(mContext).getSystemService(
-                Context.BATTERY_STATS_SERVICE);
+        doReturn(mBatteryStatsManager)
+                .when(mContext)
+                .getSystemService(Context.BATTERY_STATS_SERVICE);
     }
 
     @Test
     public void testLoadInBackground_loadWithoutHistory() {
-        BatteryUsageStatsLoader loader = new BatteryUsageStatsLoader(
-                mContext, /* includeBatteryHistory */ false);
+        BatteryUsageStatsLoader loader =
+                new BatteryUsageStatsLoader(mContext, /* includeBatteryHistory */ false);
 
         when(mBatteryStatsManager.getBatteryUsageStats(mUsageStatsQueryCaptor.capture()))
                 .thenReturn(mBatteryUsageStats);
@@ -65,14 +63,14 @@
         loader.loadInBackground();
 
         final int queryFlags = mUsageStatsQueryCaptor.getValue().getFlags();
-        assertThat(queryFlags
-                & BatteryUsageStatsQuery.FLAG_BATTERY_USAGE_STATS_INCLUDE_HISTORY).isEqualTo(0);
+        assertThat(queryFlags & BatteryUsageStatsQuery.FLAG_BATTERY_USAGE_STATS_INCLUDE_HISTORY)
+                .isEqualTo(0);
     }
 
     @Test
     public void testLoadInBackground_loadWithHistory() {
-        BatteryUsageStatsLoader loader = new BatteryUsageStatsLoader(
-                mContext, /* includeBatteryHistory */ true);
+        BatteryUsageStatsLoader loader =
+                new BatteryUsageStatsLoader(mContext, /* includeBatteryHistory */ true);
 
         when(mBatteryStatsManager.getBatteryUsageStats(mUsageStatsQueryCaptor.capture()))
                 .thenReturn(mBatteryUsageStats);
@@ -80,7 +78,7 @@
         loader.loadInBackground();
 
         final int queryFlags = mUsageStatsQueryCaptor.getValue().getFlags();
-        assertThat(queryFlags
-                & BatteryUsageStatsQuery.FLAG_BATTERY_USAGE_STATS_INCLUDE_HISTORY).isNotEqualTo(0);
+        assertThat(queryFlags & BatteryUsageStatsQuery.FLAG_BATTERY_USAGE_STATS_INCLUDE_HISTORY)
+                .isNotEqualTo(0);
     }
 }
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 566df52..118c3ed 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BootBroadcastReceiverTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BootBroadcastReceiverTest.java
@@ -88,7 +88,8 @@
         final SharedPreferences sharedPreferences = DatabaseUtils.getSharedPreferences(mContext);
         sharedPreferences
                 .edit()
-                .putInt(DatabaseUtils.KEY_LAST_USAGE_SOURCE,
+                .putInt(
+                        DatabaseUtils.KEY_LAST_USAGE_SOURCE,
                         UsageStatsManager.USAGE_SOURCE_CURRENT_ACTIVITY)
                 .apply();
 
@@ -96,9 +97,8 @@
 
         assertThat(mShadowAlarmManager.peekNextScheduledAlarm()).isNotNull();
         assertThat(
-                DatabaseUtils
-                        .getSharedPreferences(mContext)
-                        .contains(DatabaseUtils.KEY_LAST_USAGE_SOURCE))
+                        DatabaseUtils.getSharedPreferences(mContext)
+                                .contains(DatabaseUtils.KEY_LAST_USAGE_SOURCE))
                 .isFalse();
     }
 
@@ -124,7 +124,7 @@
 
     @Test
     public void onReceive_nullIntent_notRefreshesJob() {
-        mReceiver.onReceive(mContext, /*intent=*/ null);
+        mReceiver.onReceive(mContext, /* intent= */ null);
         assertThat(mShadowAlarmManager.peekNextScheduledAlarm()).isNull();
     }
 
@@ -142,11 +142,10 @@
     public void invokeJobRecheck_broadcastsIntent() {
         BootBroadcastReceiver.invokeJobRecheck(mContext);
 
-        final List<Intent> intents =
-                Shadows.shadowOf((Application) mContext).getBroadcastIntents();
+        final List<Intent> intents = Shadows.shadowOf((Application) mContext).getBroadcastIntents();
         assertThat(intents).hasSize(1);
-        assertThat(intents.get(0).getAction()).isEqualTo(
-                BootBroadcastReceiver.ACTION_PERIODIC_JOB_RECHECK);
+        assertThat(intents.get(0).getAction())
+                .isEqualTo(BootBroadcastReceiver.ACTION_PERIODIC_JOB_RECHECK);
     }
 
     private void clearSharedPreferences() {
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 cd594d3..672bc54 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/ConvertUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/ConvertUtilsTest.java
@@ -32,6 +32,7 @@
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.database.MatrixCursor;
+import android.os.BatteryConsumer;
 import android.os.BatteryManager;
 import android.os.BatteryUsageStats;
 import android.os.LocaleList;
@@ -60,14 +61,10 @@
 
     private Context mContext;
 
-    @Mock
-    private PackageManager mMockPackageManager;
-    @Mock
-    private BatteryUsageStats mBatteryUsageStats;
-    @Mock
-    private BatteryEntry mMockBatteryEntry;
-    @Mock
-    private IUsageStatsManager mUsageStatsManager;
+    @Mock private PackageManager mMockPackageManager;
+    @Mock private BatteryUsageStats mBatteryUsageStats;
+    @Mock private BatteryEntry mMockBatteryEntry;
+    @Mock private IUsageStatsManager mUsageStatsManager;
 
     @Before
     public void setUp() {
@@ -80,8 +77,7 @@
     }
 
     @Test
-    public void convertBatteryEntryToContentValues_returnsExpectedContentValues() {
-        final int expectedType = 3;
+    public void convertBatteryEntryToContentValues_appEntry_returnsExpectedContentValues() {
         when(mMockBatteryEntry.getUid()).thenReturn(1001);
         when(mMockBatteryEntry.getLabel()).thenReturn("Settings");
         when(mMockBatteryEntry.getDefaultPackageName())
@@ -96,20 +92,20 @@
         mMockBatteryEntry.mPercent = 0.3;
         when(mMockBatteryEntry.getTimeInForegroundMs()).thenReturn(1234L);
         when(mMockBatteryEntry.getTimeInBackgroundMs()).thenReturn(5689L);
-        when(mMockBatteryEntry.getPowerComponentId()).thenReturn(expectedType);
+        when(mMockBatteryEntry.getPowerComponentId()).thenReturn(-1);
         when(mMockBatteryEntry.getConsumerType())
-                .thenReturn(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
+                .thenReturn(ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
 
         final ContentValues values =
                 ConvertUtils.convertBatteryEntryToContentValues(
                         mMockBatteryEntry,
                         mBatteryUsageStats,
-                        /*batteryLevel=*/ 12,
-                        /*batteryStatus=*/ BatteryManager.BATTERY_STATUS_FULL,
-                        /*batteryHealth=*/ BatteryManager.BATTERY_HEALTH_COLD,
-                        /*bootTimestamp=*/ 101L,
-                        /*timestamp=*/ 10001L,
-                        /*isFullChargeStart=*/ true);
+                        /* batteryLevel= */ 12,
+                        /* batteryStatus= */ BatteryManager.BATTERY_STATUS_FULL,
+                        /* batteryHealth= */ BatteryManager.BATTERY_HEALTH_COLD,
+                        /* bootTimestamp= */ 101L,
+                        /* timestamp= */ 10001L,
+                        /* isFullChargeStart= */ true);
         final BatteryInformation batteryInformation =
                 ConvertUtils.getBatteryInformation(
                         values, BatteryHistEntry.KEY_BATTERY_INFORMATION);
@@ -122,7 +118,7 @@
                 .isEqualTo("com.google.android.settings.battery");
         assertThat(values.getAsLong(BatteryHistEntry.KEY_TIMESTAMP)).isEqualTo(10001L);
         assertThat(values.getAsInteger(BatteryHistEntry.KEY_CONSUMER_TYPE))
-                .isEqualTo(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
+                .isEqualTo(ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
         assertThat(values.getAsBoolean(BatteryHistEntry.KEY_IS_FULL_CHARGE_CYCLE_START)).isTrue();
         assertThat(batteryInformation.getAppLabel()).isEqualTo("Settings");
         assertThat(batteryInformation.getIsHidden()).isTrue();
@@ -137,7 +133,71 @@
         assertThat(batteryInformation.getPercentOfTotal()).isEqualTo(0.3);
         assertThat(batteryInformation.getForegroundUsageTimeInMs()).isEqualTo(1234L);
         assertThat(batteryInformation.getBackgroundUsageTimeInMs()).isEqualTo(5689L);
-        assertThat(batteryInformation.getDrainType()).isEqualTo(expectedType);
+        assertThat(batteryInformation.getDrainType()).isEqualTo(-1);
+        assertThat(deviceBatteryState.getBatteryLevel()).isEqualTo(12);
+        assertThat(deviceBatteryState.getBatteryStatus())
+                .isEqualTo(BatteryManager.BATTERY_STATUS_FULL);
+        assertThat(deviceBatteryState.getBatteryHealth())
+                .isEqualTo(BatteryManager.BATTERY_HEALTH_COLD);
+    }
+
+    @Test
+    public void convertBatteryEntryToContentValues_systemEntry_returnsExpectedContentValues() {
+        when(mMockBatteryEntry.getUid()).thenReturn(-1);
+        when(mMockBatteryEntry.getLabel()).thenReturn("CPU");
+        when(mMockBatteryEntry.getDefaultPackageName()).thenReturn(null);
+        when(mMockBatteryEntry.getPowerComponentId())
+                .thenReturn(BatteryConsumer.POWER_COMPONENT_CPU);
+        when(mBatteryUsageStats.getConsumedPower()).thenReturn(5.1);
+        when(mMockBatteryEntry.getConsumedPower()).thenReturn(1.1);
+        when(mMockBatteryEntry.getConsumedPowerInForeground()).thenReturn(1.2);
+        when(mMockBatteryEntry.getConsumedPowerInForegroundService()).thenReturn(1.3);
+        when(mMockBatteryEntry.getConsumedPowerInBackground()).thenReturn(1.4);
+        when(mMockBatteryEntry.getConsumedPowerInCached()).thenReturn(1.5);
+        mMockBatteryEntry.mPercent = 0.3;
+        when(mMockBatteryEntry.getTimeInForegroundMs()).thenReturn(1234L);
+        when(mMockBatteryEntry.getTimeInBackgroundMs()).thenReturn(5689L);
+        when(mMockBatteryEntry.getConsumerType())
+                .thenReturn(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
+
+        final ContentValues values =
+                ConvertUtils.convertBatteryEntryToContentValues(
+                        mMockBatteryEntry,
+                        mBatteryUsageStats,
+                        /* batteryLevel= */ 12,
+                        /* batteryStatus= */ BatteryManager.BATTERY_STATUS_FULL,
+                        /* batteryHealth= */ BatteryManager.BATTERY_HEALTH_COLD,
+                        /* bootTimestamp= */ 101L,
+                        /* timestamp= */ 10001L,
+                        /* isFullChargeStart= */ true);
+        final BatteryInformation batteryInformation =
+                ConvertUtils.getBatteryInformation(
+                        values, BatteryHistEntry.KEY_BATTERY_INFORMATION);
+        final DeviceBatteryState deviceBatteryState = batteryInformation.getDeviceBatteryState();
+
+        assertThat(values.getAsLong(BatteryHistEntry.KEY_UID)).isEqualTo(-1);
+        assertThat(values.getAsLong(BatteryHistEntry.KEY_USER_ID))
+                .isEqualTo(UserHandle.getUserId(1001));
+        assertThat(values.getAsString(BatteryHistEntry.KEY_PACKAGE_NAME)).isEqualTo("");
+        assertThat(values.getAsLong(BatteryHistEntry.KEY_TIMESTAMP)).isEqualTo(10001L);
+        assertThat(values.getAsInteger(BatteryHistEntry.KEY_CONSUMER_TYPE))
+                .isEqualTo(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
+        assertThat(values.getAsBoolean(BatteryHistEntry.KEY_IS_FULL_CHARGE_CYCLE_START)).isTrue();
+        assertThat(batteryInformation.getAppLabel()).isEqualTo("CPU");
+        assertThat(batteryInformation.getIsHidden()).isFalse();
+        assertThat(batteryInformation.getBootTimestamp()).isEqualTo(101L);
+        assertThat(batteryInformation.getZoneId()).isEqualTo(TimeZone.getDefault().getID());
+        assertThat(batteryInformation.getTotalPower()).isEqualTo(5.1);
+        assertThat(batteryInformation.getConsumePower()).isEqualTo(1.1);
+        assertThat(batteryInformation.getForegroundUsageConsumePower()).isEqualTo(1.2);
+        assertThat(batteryInformation.getForegroundServiceUsageConsumePower()).isEqualTo(1.3);
+        assertThat(batteryInformation.getBackgroundUsageConsumePower()).isEqualTo(1.4);
+        assertThat(batteryInformation.getCachedUsageConsumePower()).isEqualTo(1.5);
+        assertThat(batteryInformation.getPercentOfTotal()).isEqualTo(0.3);
+        assertThat(batteryInformation.getForegroundUsageTimeInMs()).isEqualTo(1234L);
+        assertThat(batteryInformation.getBackgroundUsageTimeInMs()).isEqualTo(5689L);
+        assertThat(batteryInformation.getDrainType())
+                .isEqualTo(BatteryConsumer.POWER_COMPONENT_CPU);
         assertThat(deviceBatteryState.getBatteryLevel()).isEqualTo(12);
         assertThat(deviceBatteryState.getBatteryStatus())
                 .isEqualTo(BatteryManager.BATTERY_STATUS_FULL);
@@ -149,14 +209,14 @@
     public void convertBatteryEntryToContentValues_nullBatteryEntry_returnsExpectedContentValues() {
         final ContentValues values =
                 ConvertUtils.convertBatteryEntryToContentValues(
-                        /*entry=*/ null,
-                        /*batteryUsageStats=*/ null,
-                        /*batteryLevel=*/ 12,
-                        /*batteryStatus=*/ BatteryManager.BATTERY_STATUS_FULL,
-                        /*batteryHealth=*/ BatteryManager.BATTERY_HEALTH_COLD,
-                        /*bootTimestamp=*/ 101L,
-                        /*timestamp=*/ 10001L,
-                        /*isFullChargeStart=*/ false);
+                        /* entry= */ null,
+                        /* batteryUsageStats= */ null,
+                        /* batteryLevel= */ 12,
+                        /* batteryStatus= */ BatteryManager.BATTERY_STATUS_FULL,
+                        /* batteryHealth= */ BatteryManager.BATTERY_HEALTH_COLD,
+                        /* bootTimestamp= */ 101L,
+                        /* timestamp= */ 10001L,
+                        /* isFullChargeStart= */ false);
 
         final BatteryInformation batteryInformation =
                 ConvertUtils.getBatteryInformation(
@@ -170,8 +230,7 @@
                 .isEqualTo(BatteryManager.BATTERY_STATUS_FULL);
         assertThat(deviceBatteryState.getBatteryHealth())
                 .isEqualTo(BatteryManager.BATTERY_HEALTH_COLD);
-        assertThat(values.getAsLong(BatteryHistEntry.KEY_TIMESTAMP))
-                .isEqualTo(10001L);
+        assertThat(values.getAsLong(BatteryHistEntry.KEY_TIMESTAMP)).isEqualTo(10001L);
         assertThat(values.getAsString(BatteryHistEntry.KEY_PACKAGE_NAME))
                 .isEqualTo(ConvertUtils.FAKE_PACKAGE_NAME);
     }
@@ -209,11 +268,10 @@
                         .setType(BatteryEventType.POWER_CONNECTED)
                         .setBatteryLevel(66)
                         .build();
-        final ContentValues values =
-                ConvertUtils.convertBatteryEventToContentValues(batteryEvent);
+        final ContentValues values = ConvertUtils.convertBatteryEventToContentValues(batteryEvent);
         assertThat(values.getAsLong(BatteryEventEntity.KEY_TIMESTAMP)).isEqualTo(10001L);
-        assertThat(values.getAsInteger(BatteryEventEntity.KEY_BATTERY_EVENT_TYPE)).isEqualTo(
-                BatteryEventType.POWER_CONNECTED.getNumber());
+        assertThat(values.getAsInteger(BatteryEventEntity.KEY_BATTERY_EVENT_TYPE))
+                .isEqualTo(BatteryEventType.POWER_CONNECTED.getNumber());
         assertThat(values.getAsInteger(BatteryEventEntity.KEY_BATTERY_LEVEL)).isEqualTo(66);
     }
 
@@ -238,8 +296,7 @@
         final int expectedType = 3;
         when(mMockBatteryEntry.getUid()).thenReturn(1001);
         when(mMockBatteryEntry.getLabel()).thenReturn("Settings");
-        when(mMockBatteryEntry.getDefaultPackageName())
-                .thenReturn("com.android.settings.battery");
+        when(mMockBatteryEntry.getDefaultPackageName()).thenReturn("com.android.settings.battery");
         when(mMockBatteryEntry.isHidden()).thenReturn(true);
         when(mBatteryUsageStats.getConsumedPower()).thenReturn(5.1);
         when(mMockBatteryEntry.getConsumedPower()).thenReturn(1.1);
@@ -255,23 +312,16 @@
                 .thenReturn(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
 
         final BatteryHistEntry batteryHistEntry =
-                ConvertUtils.convertToBatteryHistEntry(
-                        mMockBatteryEntry,
-                        mBatteryUsageStats);
+                ConvertUtils.convertToBatteryHistEntry(mMockBatteryEntry, mBatteryUsageStats);
 
         assertThat(batteryHistEntry.mUid).isEqualTo(1001L);
-        assertThat(batteryHistEntry.mUserId)
-                .isEqualTo(UserHandle.getUserId(1001));
-        assertThat(batteryHistEntry.mAppLabel)
-                .isEqualTo("Settings");
-        assertThat(batteryHistEntry.mPackageName)
-                .isEqualTo("com.android.settings.battery");
+        assertThat(batteryHistEntry.mUserId).isEqualTo(UserHandle.getUserId(1001));
+        assertThat(batteryHistEntry.mAppLabel).isEqualTo("Settings");
+        assertThat(batteryHistEntry.mPackageName).isEqualTo("com.android.settings.battery");
         assertThat(batteryHistEntry.mIsHidden).isTrue();
-        assertThat(batteryHistEntry.mBootTimestamp)
-                .isEqualTo(0L);
+        assertThat(batteryHistEntry.mBootTimestamp).isEqualTo(0L);
         assertThat(batteryHistEntry.mTimestamp).isEqualTo(0L);
-        assertThat(batteryHistEntry.mZoneId)
-                .isEqualTo(TimeZone.getDefault().getID());
+        assertThat(batteryHistEntry.mZoneId).isEqualTo(TimeZone.getDefault().getID());
         assertThat(batteryHistEntry.mTotalPower).isEqualTo(5.1);
         assertThat(batteryHistEntry.mConsumePower).isEqualTo(1.1);
         assertThat(batteryHistEntry.mForegroundUsageConsumePower).isEqualTo(1.2);
@@ -279,10 +329,8 @@
         assertThat(batteryHistEntry.mBackgroundUsageConsumePower).isEqualTo(1.4);
         assertThat(batteryHistEntry.mCachedUsageConsumePower).isEqualTo(1.5);
         assertThat(batteryHistEntry.mPercentOfTotal).isEqualTo(0.3);
-        assertThat(batteryHistEntry.mForegroundUsageTimeInMs)
-                .isEqualTo(1234L);
-        assertThat(batteryHistEntry.mBackgroundUsageTimeInMs)
-                .isEqualTo(5689L);
+        assertThat(batteryHistEntry.mForegroundUsageTimeInMs).isEqualTo(1234L);
+        assertThat(batteryHistEntry.mBackgroundUsageTimeInMs).isEqualTo(5689L);
         assertThat(batteryHistEntry.mDrainType).isEqualTo(expectedType);
         assertThat(batteryHistEntry.mConsumerType)
                 .isEqualTo(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
@@ -295,20 +343,15 @@
     public void convertToBatteryHistEntry_nullBatteryEntry_returnsExpectedResult() {
         final BatteryHistEntry batteryHistEntry =
                 ConvertUtils.convertToBatteryHistEntry(
-                        /*entry=*/ null,
-                        /*batteryUsageStats=*/ null);
+                        /* entry= */ null, /* batteryUsageStats= */ null);
 
-        assertThat(batteryHistEntry.mBootTimestamp)
-                .isEqualTo(0L);
-        assertThat(batteryHistEntry.mTimestamp)
-                .isEqualTo(0);
-        assertThat(batteryHistEntry.mZoneId)
-                .isEqualTo(TimeZone.getDefault().getID());
+        assertThat(batteryHistEntry.mBootTimestamp).isEqualTo(0L);
+        assertThat(batteryHistEntry.mTimestamp).isEqualTo(0);
+        assertThat(batteryHistEntry.mZoneId).isEqualTo(TimeZone.getDefault().getID());
         assertThat(batteryHistEntry.mBatteryLevel).isEqualTo(0);
         assertThat(batteryHistEntry.mBatteryStatus).isEqualTo(0);
         assertThat(batteryHistEntry.mBatteryHealth).isEqualTo(0);
-        assertThat(batteryHistEntry.mPackageName)
-                .isEqualTo(ConvertUtils.FAKE_PACKAGE_NAME);
+        assertThat(batteryHistEntry.mPackageName).isEqualTo(ConvertUtils.FAKE_PACKAGE_NAME);
     }
 
     @Test
@@ -323,8 +366,8 @@
         when(mMockPackageManager.getPackageUidAsUser(any(), anyInt())).thenReturn(1001);
 
         final long userId = 2;
-        final AppUsageEvent appUsageEvent = ConvertUtils.convertToAppUsageEvent(
-                mContext, mUsageStatsManager, event, userId);
+        final AppUsageEvent appUsageEvent =
+                ConvertUtils.convertToAppUsageEvent(mContext, mUsageStatsManager, event, userId);
         assertThat(appUsageEvent.getTimestamp()).isEqualTo(101L);
         assertThat(appUsageEvent.getType()).isEqualTo(AppUsageEventType.ACTIVITY_RESUMED);
         assertThat(appUsageEvent.getPackageName()).isEqualTo("com.android.settings1");
@@ -362,14 +405,14 @@
 
         final AppUsageEvent appUsageEvent =
                 ConvertUtils.convertToAppUsageEvent(
-                        mContext, mUsageStatsManager, event, /*userId=*/ 0);
+                        mContext, mUsageStatsManager, event, /* userId= */ 0);
 
         assertThat(appUsageEvent).isNull();
     }
 
     @Test
     public void convertToAppUsageEvent_failToGetUid_returnsNull()
-            throws PackageManager.NameNotFoundException  {
+            throws PackageManager.NameNotFoundException {
         final Event event = new Event();
         event.mEventType = UsageEvents.Event.DEVICE_SHUTDOWN;
         event.mPackage = "com.android.settings1";
@@ -385,24 +428,27 @@
 
     @Test
     public void convertToAppUsageEvent_returnExpectedResult() {
-        final MatrixCursor cursor = new MatrixCursor(
-                new String[]{
-                        AppUsageEventEntity.KEY_UID,
-                        AppUsageEventEntity.KEY_USER_ID,
-                        AppUsageEventEntity.KEY_PACKAGE_NAME,
-                        AppUsageEventEntity.KEY_TIMESTAMP,
-                        AppUsageEventEntity.KEY_APP_USAGE_EVENT_TYPE,
-                        AppUsageEventEntity.KEY_TASK_ROOT_PACKAGE_NAME,
-                        AppUsageEventEntity.KEY_INSTANCE_ID});
+        final MatrixCursor cursor =
+                new MatrixCursor(
+                        new String[] {
+                            AppUsageEventEntity.KEY_UID,
+                            AppUsageEventEntity.KEY_USER_ID,
+                            AppUsageEventEntity.KEY_PACKAGE_NAME,
+                            AppUsageEventEntity.KEY_TIMESTAMP,
+                            AppUsageEventEntity.KEY_APP_USAGE_EVENT_TYPE,
+                            AppUsageEventEntity.KEY_TASK_ROOT_PACKAGE_NAME,
+                            AppUsageEventEntity.KEY_INSTANCE_ID
+                        });
         cursor.addRow(
-                new Object[]{
-                        101L,
-                        1001L,
-                        "com.android.settings1",
-                        10001L,
-                        AppUsageEventType.DEVICE_SHUTDOWN.getNumber(),
-                        "com.android.settings2",
-                        100001L});
+                new Object[] {
+                    101L,
+                    1001L,
+                    "com.android.settings1",
+                    10001L,
+                    AppUsageEventType.DEVICE_SHUTDOWN.getNumber(),
+                    "com.android.settings2",
+                    100001L
+                });
         cursor.moveToFirst();
 
         final AppUsageEvent appUsageEvent = ConvertUtils.convertToAppUsageEvent(cursor);
@@ -418,20 +464,23 @@
 
     @Test
     public void convertToAppUsageEvent_emptyInstanceIdAndRootName_returnExpectedResult() {
-        final MatrixCursor cursor = new MatrixCursor(
-                new String[]{
-                        AppUsageEventEntity.KEY_UID,
-                        AppUsageEventEntity.KEY_USER_ID,
-                        AppUsageEventEntity.KEY_PACKAGE_NAME,
-                        AppUsageEventEntity.KEY_TIMESTAMP,
-                        AppUsageEventEntity.KEY_APP_USAGE_EVENT_TYPE});
+        final MatrixCursor cursor =
+                new MatrixCursor(
+                        new String[] {
+                            AppUsageEventEntity.KEY_UID,
+                            AppUsageEventEntity.KEY_USER_ID,
+                            AppUsageEventEntity.KEY_PACKAGE_NAME,
+                            AppUsageEventEntity.KEY_TIMESTAMP,
+                            AppUsageEventEntity.KEY_APP_USAGE_EVENT_TYPE
+                        });
         cursor.addRow(
-                new Object[]{
-                        101L,
-                        1001L,
-                        "com.android.settings1",
-                        10001L,
-                        AppUsageEventType.DEVICE_SHUTDOWN.getNumber()});
+                new Object[] {
+                    101L,
+                    1001L,
+                    "com.android.settings1",
+                    10001L,
+                    AppUsageEventType.DEVICE_SHUTDOWN.getNumber()
+                });
         cursor.moveToFirst();
 
         final AppUsageEvent appUsageEvent = ConvertUtils.convertToAppUsageEvent(cursor);
@@ -447,8 +496,8 @@
 
     @Test
     public void convertToBatteryEvent_normalCase_returnsExpectedResult() {
-        final BatteryEvent batteryEvent = ConvertUtils.convertToBatteryEvent(
-                666L, BatteryEventType.POWER_DISCONNECTED, 88);
+        final BatteryEvent batteryEvent =
+                ConvertUtils.convertToBatteryEvent(666L, BatteryEventType.POWER_DISCONNECTED, 88);
         assertThat(batteryEvent.getTimestamp()).isEqualTo(666L);
         assertThat(batteryEvent.getType()).isEqualTo(BatteryEventType.POWER_DISCONNECTED);
         assertThat(batteryEvent.getBatteryLevel()).isEqualTo(88);
@@ -456,8 +505,9 @@
 
     @Test
     public void convertToBatteryEventList_normalCase_returnsExpectedResult() {
-        final BatteryLevelData batteryLevelData = new BatteryLevelData(Map.of(
-                1691589600000L, 98, 1691596800000L, 90, 1691596812345L, 80));
+        final BatteryLevelData batteryLevelData =
+                new BatteryLevelData(
+                        Map.of(1691589600000L, 98, 1691596800000L, 90, 1691596812345L, 80));
 
         final List<BatteryEvent> batteryEventList =
                 ConvertUtils.convertToBatteryEventList(batteryLevelData);
@@ -473,14 +523,20 @@
 
     @Test
     public void convertToBatteryUsageSlotList_normalCase_returnsExpectedResult() {
-        BatteryDiffData batteryDiffData1 = new BatteryDiffData(
-                mContext, 11L, 12L, 13, 14, 15, List.of(), List.of(), Set.of(), Set.of(), false);
-        BatteryDiffData batteryDiffData2 = new BatteryDiffData(
-                mContext, 21L, 22L, 23, 24, 25, List.of(), List.of(), Set.of(), Set.of(), false);
-        BatteryDiffData batteryDiffData3 = new BatteryDiffData(
-                mContext, 31L, 32L, 33, 34, 35, List.of(), List.of(), Set.of(), Set.of(), false);
-        final Map<Long, BatteryDiffData> batteryDiffDataMap = Map.of(
-                11L, batteryDiffData1, 21L, batteryDiffData2, 31L, batteryDiffData3);
+        BatteryDiffData batteryDiffData1 =
+                new BatteryDiffData(
+                        mContext, 11L, 12L, 13, 14, 15, List.of(), List.of(), Set.of(), Set.of(),
+                        false);
+        BatteryDiffData batteryDiffData2 =
+                new BatteryDiffData(
+                        mContext, 21L, 22L, 23, 24, 25, List.of(), List.of(), Set.of(), Set.of(),
+                        false);
+        BatteryDiffData batteryDiffData3 =
+                new BatteryDiffData(
+                        mContext, 31L, 32L, 33, 34, 35, List.of(), List.of(), Set.of(), Set.of(),
+                        false);
+        final Map<Long, BatteryDiffData> batteryDiffDataMap =
+                Map.of(11L, batteryDiffData1, 21L, batteryDiffData2, 31L, batteryDiffData3);
 
         final List<BatteryUsageSlot> batteryUsageSlotList =
                 ConvertUtils.convertToBatteryUsageSlotList(batteryDiffDataMap);
@@ -492,8 +548,7 @@
 
     @Test
     public void getLocale_nullContext_returnDefaultLocale() {
-        assertThat(ConvertUtils.getLocale(/*context=*/ null))
-                .isEqualTo(Locale.getDefault());
+        assertThat(ConvertUtils.getLocale(/* context= */ null)).isEqualTo(Locale.getDefault());
     }
 
     @Test
@@ -514,8 +569,9 @@
         final String packageName = "com.android.settings1";
         final String taskRootPackageName = "com.android.settings2";
 
-        assertThat(ConvertUtils.getEffectivePackageName(
-                mContext, mUsageStatsManager, packageName, taskRootPackageName))
+        assertThat(
+                        ConvertUtils.getEffectivePackageName(
+                                mContext, mUsageStatsManager, packageName, taskRootPackageName))
                 .isEqualTo(packageName);
     }
 
@@ -524,8 +580,9 @@
         final String packageName = "com.android.settings1";
         final String taskRootPackageName = "com.android.settings2";
 
-        assertThat(ConvertUtils.getEffectivePackageName(
-                mContext, mUsageStatsManager, packageName, taskRootPackageName))
+        assertThat(
+                        ConvertUtils.getEffectivePackageName(
+                                mContext, mUsageStatsManager, packageName, taskRootPackageName))
                 .isEqualTo(packageName);
     }
 
@@ -535,8 +592,9 @@
         final String packageName = "com.android.settings1";
         final String taskRootPackageName = "com.android.settings2";
 
-        assertThat(ConvertUtils.getEffectivePackageName(
-                mContext, mUsageStatsManager, packageName, taskRootPackageName))
+        assertThat(
+                        ConvertUtils.getEffectivePackageName(
+                                mContext, mUsageStatsManager, packageName, taskRootPackageName))
                 .isEqualTo(taskRootPackageName);
     }
 
@@ -545,11 +603,19 @@
         ConvertUtils.sUsageSource = USAGE_SOURCE_TASK_ROOT_ACTIVITY;
         final String packageName = "com.android.settings1";
 
-        assertThat(ConvertUtils.getEffectivePackageName(
-                mContext, mUsageStatsManager, packageName, /*taskRootPackageName=*/ null))
+        assertThat(
+                        ConvertUtils.getEffectivePackageName(
+                                mContext,
+                                mUsageStatsManager,
+                                packageName,
+                                /* taskRootPackageName= */ null))
                 .isEqualTo(packageName);
-        assertThat(ConvertUtils.getEffectivePackageName(
-                mContext, mUsageStatsManager, packageName, /*taskRootPackageName=*/ ""))
+        assertThat(
+                        ConvertUtils.getEffectivePackageName(
+                                mContext,
+                                mUsageStatsManager,
+                                packageName,
+                                /* taskRootPackageName= */ ""))
                 .isEqualTo(packageName);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessManagerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessManagerTest.java
index 601d3f3..6227790 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessManagerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessManagerTest.java
@@ -70,18 +70,12 @@
     private Context mContext;
     private DataProcessManager mDataProcessManager;
 
-    @Mock
-    private IUsageStatsManager mUsageStatsManager;
-    @Mock
-    private UserManager mUserManager;
-    @Mock
-    private BatteryStatsManager mBatteryStatsManager;
-    @Mock
-    private BatteryUsageStats mBatteryUsageStats;
-    @Mock
-    private Intent mIntent;
-    @Captor
-    private ArgumentCaptor<BatteryUsageStatsQuery> mBatteryUsageStatsQueryCaptor;
+    @Mock private IUsageStatsManager mUsageStatsManager;
+    @Mock private UserManager mUserManager;
+    @Mock private BatteryStatsManager mBatteryStatsManager;
+    @Mock private BatteryUsageStats mBatteryUsageStats;
+    @Mock private Intent mIntent;
+    @Captor private ArgumentCaptor<BatteryUsageStatsQuery> mBatteryUsageStatsQueryCaptor;
 
     @Before
     public void setUp() {
@@ -91,22 +85,26 @@
         DataProcessor.sTestSystemAppsPackageNames = Set.of();
         DataProcessor.sUsageStatsManager = mUsageStatsManager;
         doReturn(mContext).when(mContext).getApplicationContext();
-        doReturn(mUserManager)
+        doReturn(mUserManager).when(mContext).getSystemService(UserManager.class);
+        doReturn(mBatteryStatsManager)
                 .when(mContext)
-                .getSystemService(UserManager.class);
-        doReturn(mBatteryStatsManager).when(mContext).getSystemService(
-                Context.BATTERY_STATS_SERVICE);
-        doReturn(mBatteryUsageStats).when(
-                mBatteryStatsManager).getBatteryUsageStats(mBatteryUsageStatsQueryCaptor.capture());
+                .getSystemService(Context.BATTERY_STATS_SERVICE);
+        doReturn(mBatteryUsageStats)
+                .when(mBatteryStatsManager)
+                .getBatteryUsageStats(mBatteryUsageStatsQueryCaptor.capture());
         doReturn(mIntent).when(mContext).registerReceiver(any(), any());
         doReturn(100).when(mIntent).getIntExtra(eq(BatteryManager.EXTRA_SCALE), anyInt());
         doReturn(66).when(mIntent).getIntExtra(eq(BatteryManager.EXTRA_LEVEL), anyInt());
 
-        mDataProcessManager = new DataProcessManager(
-                mContext, /*handler=*/ null,  /*rawStartTimestamp=*/ 0L,
-                /*lastFullChargeTimestamp=*/ 0L, /*callbackFunction=*/ null,
-                /*hourlyBatteryLevelsPerDay=*/ new ArrayList<>(),
-                /*batteryHistoryMap=*/ new HashMap<>());
+        mDataProcessManager =
+                new DataProcessManager(
+                        mContext,
+                        /* handler= */ null,
+                        /* rawStartTimestamp= */ 0L,
+                        /* lastFullChargeTimestamp= */ 0L,
+                        /* callbackFunction= */ null,
+                        /* hourlyBatteryLevelsPerDay= */ new ArrayList<>(),
+                        /* batteryHistoryMap= */ new HashMap<>());
     }
 
     @After
@@ -119,18 +117,20 @@
     @LooperMode(LooperMode.Mode.LEGACY)
     public void constructor_noLevelData() {
         final DataProcessManager dataProcessManager =
-                new DataProcessManager(mContext, /*handler=*/ null, /*callbackFunction=*/ null);
+                new DataProcessManager(mContext, /* handler= */ null, /* callbackFunction= */ null);
         assertThat(dataProcessManager.getShowScreenOnTime()).isFalse();
     }
 
     @Test
     @LooperMode(LooperMode.Mode.LEGACY)
     public void start_loadEmptyDatabaseAppUsageData() {
-        final MatrixCursor cursor = new MatrixCursor(
-                new String[]{
-                        AppUsageEventEntity.KEY_UID,
-                        AppUsageEventEntity.KEY_PACKAGE_NAME,
-                        AppUsageEventEntity.KEY_TIMESTAMP});
+        final MatrixCursor cursor =
+                new MatrixCursor(
+                        new String[] {
+                            AppUsageEventEntity.KEY_UID,
+                            AppUsageEventEntity.KEY_PACKAGE_NAME,
+                            AppUsageEventEntity.KEY_TIMESTAMP
+                        });
         DatabaseUtils.sFakeSupplier = () -> cursor;
         doReturn(true).when(mUserManager).isUserUnlocked(anyInt());
 
@@ -166,9 +166,9 @@
                 new BatteryLevelData.PeriodBatteryLevelData(batteryLevelMap2, timestamps2));
         // Fake current usage data.
         final UsageEvents.Event event1 =
-                getUsageEvent(UsageEvents.Event.ACTIVITY_RESUMED, /*timestamp=*/ 1, packageName);
+                getUsageEvent(UsageEvents.Event.ACTIVITY_RESUMED, /* timestamp= */ 1, packageName);
         final UsageEvents.Event event2 =
-                getUsageEvent(UsageEvents.Event.ACTIVITY_STOPPED, /*timestamp=*/ 2, packageName);
+                getUsageEvent(UsageEvents.Event.ACTIVITY_STOPPED, /* timestamp= */ 2, packageName);
         final List<UsageEvents.Event> events = new ArrayList<>();
         events.add(event1);
         events.add(event2);
@@ -182,40 +182,68 @@
         doReturn(new ArrayList<>()).when(mUserManager).getUserProfiles();
 
         // Fake database usage data.
-        final MatrixCursor cursor = new MatrixCursor(
-                new String[]{
-                        AppUsageEventEntity.KEY_APP_USAGE_EVENT_TYPE,
-                        AppUsageEventEntity.KEY_TIMESTAMP,
-                        AppUsageEventEntity.KEY_USER_ID,
-                        AppUsageEventEntity.KEY_INSTANCE_ID,
-                        AppUsageEventEntity.KEY_PACKAGE_NAME
-                });
+        final MatrixCursor cursor =
+                new MatrixCursor(
+                        new String[] {
+                            AppUsageEventEntity.KEY_APP_USAGE_EVENT_TYPE,
+                            AppUsageEventEntity.KEY_TIMESTAMP,
+                            AppUsageEventEntity.KEY_USER_ID,
+                            AppUsageEventEntity.KEY_INSTANCE_ID,
+                            AppUsageEventEntity.KEY_PACKAGE_NAME
+                        });
         // Adds fake data into the cursor.
-        cursor.addRow(new Object[] {
-                AppUsageEventType.ACTIVITY_RESUMED.getNumber(), /*timestamp=*/ 3, /*userId=*/ 1,
-                /*instanceId=*/ 2, packageName});
-        cursor.addRow(new Object[] {
-                AppUsageEventType.ACTIVITY_STOPPED.getNumber(), /*timestamp=*/ 4, /*userId=*/ 1,
-                /*instanceId=*/ 2, packageName});
-        cursor.addRow(new Object[] {
-                AppUsageEventType.ACTIVITY_RESUMED.getNumber(), /*timestamp=*/ 5, /*userId=*/ 1,
-                /*instanceId=*/ 2, packageName});
-        cursor.addRow(new Object[] {
-                AppUsageEventType.ACTIVITY_STOPPED.getNumber(), /*timestamp=*/ 6, /*userId=*/ 1,
-                /*instanceId=*/ 2, packageName});
-        DatabaseUtils.sFakeSupplier = new Supplier<>() {
-            private int mTimes = 0;
-            @Override
-            public Cursor get() {
-                mTimes++;
-                return mTimes <= 2 ? null : cursor;
-            }
-        };
+        cursor.addRow(
+                new Object[] {
+                    AppUsageEventType.ACTIVITY_RESUMED.getNumber(),
+                    /* timestamp= */ 3,
+                    /* userId= */ 1,
+                    /* instanceId= */ 2,
+                    packageName
+                });
+        cursor.addRow(
+                new Object[] {
+                    AppUsageEventType.ACTIVITY_STOPPED.getNumber(),
+                    /* timestamp= */ 4,
+                    /* userId= */ 1,
+                    /* instanceId= */ 2,
+                    packageName
+                });
+        cursor.addRow(
+                new Object[] {
+                    AppUsageEventType.ACTIVITY_RESUMED.getNumber(),
+                    /* timestamp= */ 5,
+                    /* userId= */ 1,
+                    /* instanceId= */ 2,
+                    packageName
+                });
+        cursor.addRow(
+                new Object[] {
+                    AppUsageEventType.ACTIVITY_STOPPED.getNumber(),
+                    /* timestamp= */ 6,
+                    /* userId= */ 1,
+                    /* instanceId= */ 2,
+                    packageName
+                });
+        DatabaseUtils.sFakeSupplier =
+                new Supplier<>() {
+                    private int mTimes = 0;
 
-        final DataProcessManager dataProcessManager = new DataProcessManager(
-                mContext, /*handler=*/ null, /*rawStartTimestamp=*/ 2L,
-                /*lastFullChargeTimestamp=*/ 1L, /*callbackFunction=*/ null,
-                hourlyBatteryLevelsPerDay, /*batteryHistoryMap=*/ new HashMap<>());
+                    @Override
+                    public Cursor get() {
+                        mTimes++;
+                        return mTimes <= 2 ? null : cursor;
+                    }
+                };
+
+        final DataProcessManager dataProcessManager =
+                new DataProcessManager(
+                        mContext,
+                        /* handler= */ null,
+                        /* rawStartTimestamp= */ 2L,
+                        /* lastFullChargeTimestamp= */ 1L,
+                        /* callbackFunction= */ null,
+                        hourlyBatteryLevelsPerDay,
+                        /* batteryHistoryMap= */ new HashMap<>());
         dataProcessManager.start();
 
         assertThat(dataProcessManager.getIsCurrentAppUsageLoaded()).isTrue();
@@ -226,17 +254,17 @@
         Collections.sort(appUsageEventList, DataProcessor.APP_USAGE_EVENT_TIMESTAMP_COMPARATOR);
         assertThat(appUsageEventList.size()).isEqualTo(6);
         assertAppUsageEvent(
-                appUsageEventList.get(0), AppUsageEventType.ACTIVITY_RESUMED, /*timestamp=*/ 1);
+                appUsageEventList.get(0), AppUsageEventType.ACTIVITY_RESUMED, /* timestamp= */ 1);
         assertAppUsageEvent(
-                appUsageEventList.get(1), AppUsageEventType.ACTIVITY_STOPPED, /*timestamp=*/ 2);
+                appUsageEventList.get(1), AppUsageEventType.ACTIVITY_STOPPED, /* timestamp= */ 2);
         assertAppUsageEvent(
-                appUsageEventList.get(2), AppUsageEventType.ACTIVITY_RESUMED, /*timestamp=*/ 3);
+                appUsageEventList.get(2), AppUsageEventType.ACTIVITY_RESUMED, /* timestamp= */ 3);
         assertAppUsageEvent(
-                appUsageEventList.get(3), AppUsageEventType.ACTIVITY_STOPPED, /*timestamp=*/ 4);
+                appUsageEventList.get(3), AppUsageEventType.ACTIVITY_STOPPED, /* timestamp= */ 4);
         assertAppUsageEvent(
-                appUsageEventList.get(4), AppUsageEventType.ACTIVITY_RESUMED, /*timestamp=*/ 5);
+                appUsageEventList.get(4), AppUsageEventType.ACTIVITY_RESUMED, /* timestamp= */ 5);
         assertAppUsageEvent(
-                appUsageEventList.get(5), AppUsageEventType.ACTIVITY_STOPPED, /*timestamp=*/ 6);
+                appUsageEventList.get(5), AppUsageEventType.ACTIVITY_STOPPED, /* timestamp= */ 6);
 
         final Map<Integer, Map<Integer, Map<Long, Map<String, List<AppUsagePeriod>>>>>
                 appUsagePeriodMap = dataProcessManager.getAppUsagePeriodMap();
@@ -267,18 +295,20 @@
     @LooperMode(LooperMode.Mode.LEGACY)
     public void start_currentUserLocked_emptyAppUsageList() throws RemoteException {
         final UsageEvents.Event event =
-                getUsageEvent(UsageEvents.Event.ACTIVITY_RESUMED, /*timestamp=*/ 1, "package");
+                getUsageEvent(UsageEvents.Event.ACTIVITY_RESUMED, /* timestamp= */ 1, "package");
         final List<UsageEvents.Event> events = new ArrayList<>();
         events.add(event);
         doReturn(getUsageEvents(events))
                 .when(mUsageStatsManager)
                 .queryEventsForUser(anyLong(), anyLong(), anyInt(), any());
         doReturn(false).when(mUserManager).isUserUnlocked(anyInt());
-        final MatrixCursor cursor = new MatrixCursor(
-                new String[]{
-                        AppUsageEventEntity.KEY_UID,
-                        AppUsageEventEntity.KEY_PACKAGE_NAME,
-                        AppUsageEventEntity.KEY_TIMESTAMP});
+        final MatrixCursor cursor =
+                new MatrixCursor(
+                        new String[] {
+                            AppUsageEventEntity.KEY_UID,
+                            AppUsageEventEntity.KEY_PACKAGE_NAME,
+                            AppUsageEventEntity.KEY_TIMESTAMP
+                        });
         // Adds fake data into the cursor.
         cursor.addRow(new Object[] {101L, "app name1", 1001L});
         DatabaseUtils.sFakeSupplier = () -> cursor;
@@ -293,25 +323,30 @@
     @Test
     @LooperMode(LooperMode.Mode.LEGACY)
     public void getBatteryLevelData_emptyHistoryMap_returnNull() {
-        assertThat(DataProcessManager.getBatteryLevelData(
-                mContext,
-                /*handler=*/ null,
-                /*isFromPeriodJob=*/ false,
-                /*asyncResponseDelegate=*/ null)).isNull();
-        assertThat(DataProcessManager.getBatteryLevelData(
-                mContext,
-                /*handler=*/ null,
-                /*isFromPeriodJob=*/ true,
-                /*asyncResponseDelegate=*/ null)).isNull();
+        assertThat(
+                        DataProcessManager.getBatteryLevelData(
+                                mContext,
+                                /* handler= */ null,
+                                /* isFromPeriodJob= */ false,
+                                /* asyncResponseDelegate= */ null))
+                .isNull();
+        assertThat(
+                        DataProcessManager.getBatteryLevelData(
+                                mContext,
+                                /* handler= */ null,
+                                /* isFromPeriodJob= */ true,
+                                /* asyncResponseDelegate= */ null))
+                .isNull();
     }
 
     @Test
     public void getBatteryLevelData_allDataInOneHour_returnExpectedResult() {
         // The timestamps and the current time are within half hour before an even hour.
         final long[] timestamps = {
-                DateUtils.HOUR_IN_MILLIS * 2 - 300L,
-                DateUtils.HOUR_IN_MILLIS * 2 - 200L,
-                DateUtils.HOUR_IN_MILLIS * 2 - 100L};
+            DateUtils.HOUR_IN_MILLIS * 2 - 300L,
+            DateUtils.HOUR_IN_MILLIS * 2 - 200L,
+            DateUtils.HOUR_IN_MILLIS * 2 - 100L
+        };
         final int[] levels = {100, 99, 98};
         DataProcessManager.sFakeBatteryHistoryMap = createHistoryMap(timestamps, levels);
         DataProcessor.sTestCurrentTimeMillis = timestamps[timestamps.length - 1];
@@ -319,13 +354,12 @@
         final BatteryLevelData resultData =
                 DataProcessManager.getBatteryLevelData(
                         mContext,
-                        /*handler=*/ null,
-                        /*isFromPeriodJob=*/ false,
-                        /*asyncResponseDelegate=*/ null);
+                        /* handler= */ null,
+                        /* isFromPeriodJob= */ false,
+                        /* asyncResponseDelegate= */ null);
 
-        final List<Long> expectedDailyTimestamps = List.of(
-                DateUtils.HOUR_IN_MILLIS * 2 - 300L,
-                DateUtils.HOUR_IN_MILLIS * 2 - 100L);
+        final List<Long> expectedDailyTimestamps =
+                List.of(DateUtils.HOUR_IN_MILLIS * 2 - 300L, DateUtils.HOUR_IN_MILLIS * 2 - 100L);
         final List<Integer> expectedDailyLevels = List.of(100, 66);
         final List<List<Long>> expectedHourlyTimestamps = List.of(expectedDailyTimestamps);
         final List<List<Integer>> expectedHourlyLevels = List.of(expectedDailyLevels);
@@ -348,13 +382,14 @@
         final BatteryLevelData resultData =
                 DataProcessManager.getBatteryLevelData(
                         mContext,
-                        /*handler=*/ null,
-                        /*isFromPeriodJob=*/ false,
-                        /*asyncResponseDelegate=*/ null);
+                        /* handler= */ null,
+                        /* isFromPeriodJob= */ false,
+                        /* asyncResponseDelegate= */ null);
 
-        final List<Long> expectedDailyTimestamps = List.of(
-                1640966400000L,  // 2022-01-01 00:00:00
-                1640970000000L); // 2022-01-01 01:00:00
+        final List<Long> expectedDailyTimestamps =
+                List.of(
+                        1640966400000L, // 2022-01-01 00:00:00
+                        1640970000000L); // 2022-01-01 01:00:00
         final List<Integer> expectedDailyLevels = List.of(100, 66);
         final List<List<Long>> expectedHourlyTimestamps = List.of(expectedDailyTimestamps);
         final List<List<Integer>> expectedHourlyLevels = List.of(expectedDailyLevels);
@@ -400,16 +435,11 @@
     private static ContentValues getContentValuesWithBatteryLevel(final int level) {
         final ContentValues values = new ContentValues();
         final DeviceBatteryState deviceBatteryState =
-                DeviceBatteryState
-                        .newBuilder()
-                        .setBatteryLevel(level)
-                        .build();
+                DeviceBatteryState.newBuilder().setBatteryLevel(level).build();
         final BatteryInformation batteryInformation =
-                BatteryInformation
-                        .newBuilder()
-                        .setDeviceBatteryState(deviceBatteryState)
-                        .build();
-        values.put(BatteryHistEntry.KEY_BATTERY_INFORMATION,
+                BatteryInformation.newBuilder().setDeviceBatteryState(deviceBatteryState).build();
+        values.put(
+                BatteryHistEntry.KEY_BATTERY_INFORMATION,
                 ConvertUtils.convertBatteryInformationToString(batteryInformation));
         return values;
     }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java
index c4394f7..7a67240 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java
@@ -98,18 +98,19 @@
 
         DataProcessor.sTestSystemAppsPackageNames = Set.of();
         DataProcessor.sUsageStatsManager = mUsageStatsManager;
-        doReturn(mIntent).when(mContext).registerReceiver(
-                isA(BroadcastReceiver.class), isA(IntentFilter.class));
+        doReturn(mIntent)
+                .when(mContext)
+                .registerReceiver(isA(BroadcastReceiver.class), isA(IntentFilter.class));
         doReturn(100).when(mIntent).getIntExtra(eq(BatteryManager.EXTRA_SCALE), anyInt());
         doReturn(66).when(mIntent).getIntExtra(eq(BatteryManager.EXTRA_LEVEL), anyInt());
         doReturn(mContext).when(mContext).getApplicationContext();
         doReturn(mUserManager).when(mContext).getSystemService(UserManager.class);
-        doReturn(new int[]{0}).when(mUserManager).getProfileIdsWithDisabled(anyInt());
+        doReturn(new int[] {0}).when(mUserManager).getProfileIdsWithDisabled(anyInt());
     }
 
     @Test
     public void getAppUsageEvents_returnExpectedResult() throws RemoteException {
-        UserInfo userInfo = new UserInfo(/*id=*/ 0, "user_0", /*flags=*/ 0);
+        UserInfo userInfo = new UserInfo(/* id= */ 0, "user_0", /* flags= */ 0);
         final List<UserInfo> userInfoList = new ArrayList<>();
         userInfoList.add(userInfo);
         doReturn(userInfoList).when(mUserManager).getAliveUsers();
@@ -126,7 +127,7 @@
 
     @Test
     public void getAppUsageEvents_lockedUser_returnNull() {
-        UserInfo userInfo = new UserInfo(/*id=*/ 0, "user_0", /*flags=*/ 0);
+        UserInfo userInfo = new UserInfo(/* id= */ 0, "user_0", /* flags= */ 0);
         final List<UserInfo> userInfoList = new ArrayList<>();
         userInfoList.add(userInfo);
         doReturn(userInfoList).when(mUserManager).getAliveUsers();
@@ -140,12 +141,13 @@
 
     @Test
     public void getAppUsageEvents_nullUsageEvents_returnNull() throws RemoteException {
-        UserInfo userInfo = new UserInfo(/*id=*/ 0, "user_0", /*flags=*/ 0);
+        UserInfo userInfo = new UserInfo(/* id= */ 0, "user_0", /* flags= */ 0);
         final List<UserInfo> userInfoList = new ArrayList<>();
         userInfoList.add(userInfo);
         doReturn(userInfoList).when(mUserManager).getAliveUsers();
         doReturn(true).when(mUserManager).isUserUnlocked(userInfo.id);
-        doReturn(null).when(mUsageStatsManager)
+        doReturn(null)
+                .when(mUsageStatsManager)
                 .queryEventsForUser(anyLong(), anyLong(), anyInt(), anyString());
 
         final Map<Long, UsageEvents> resultMap = DataProcessor.getAppUsageEvents(mContext);
@@ -178,7 +180,8 @@
     public void getAppUsageEventsForUser_nullUsageEvents_returnNull() throws RemoteException {
         final int userId = 1;
         doReturn(true).when(mUserManager).isUserUnlocked(userId);
-        doReturn(null).when(mUsageStatsManager)
+        doReturn(null)
+                .when(mUsageStatsManager)
                 .queryEventsForUser(anyLong(), anyLong(), anyInt(), anyString());
 
         assertThat(DataProcessor.getAppUsageEventsForUser(mContext, userId, 0)).isNull();
@@ -206,52 +209,112 @@
                 new BatteryLevelData.PeriodBatteryLevelData(batteryLevelMap2, timestamps2));
         final List<AppUsageEvent> appUsageEventList = new ArrayList<>();
         // Adds some events before the start timestamp.
-        appUsageEventList.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_RESUMED, /*timestamp=*/ 1, /*userId=*/ 1,
-                /*instanceId=*/ 2, packageName));
-        appUsageEventList.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_STOPPED, /*timestamp=*/ 2, /*userId=*/ 1,
-                /*instanceId=*/ 2, packageName));
+        appUsageEventList.add(
+                buildAppUsageEvent(
+                        AppUsageEventType.ACTIVITY_RESUMED,
+                        /* timestamp= */ 1,
+                        /* userId= */ 1,
+                        /* instanceId= */ 2,
+                        packageName));
+        appUsageEventList.add(
+                buildAppUsageEvent(
+                        AppUsageEventType.ACTIVITY_STOPPED,
+                        /* timestamp= */ 2,
+                        /* userId= */ 1,
+                        /* instanceId= */ 2,
+                        packageName));
         // Adds the valid app usage events.
-        appUsageEventList.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_RESUMED, /*timestamp=*/ 4200000L, /*userId=*/ 1,
-                /*instanceId=*/ 2, packageName));
-        appUsageEventList.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_STOPPED, /*timestamp=*/ 4500000L, /*userId=*/ 1,
-                /*instanceId=*/ 2, packageName));
-        appUsageEventList.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_RESUMED, /*timestamp=*/ 12600000L, /*userId=*/ 2,
-                /*instanceId=*/ 3, packageName));
-        appUsageEventList.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_STOPPED, /*timestamp=*/ 15600000L, /*userId=*/ 2,
-                /*instanceId=*/ 3, packageName));
-        appUsageEventList.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_RESUMED, /*timestamp=*/ 16200000L, /*userId=*/ 2,
-                /*instanceId=*/ 3, packageName));
-        appUsageEventList.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_STOPPED, /*timestamp=*/ 18000000L, /*userId=*/ 2,
-                /*instanceId=*/ 3, packageName));
-        appUsageEventList.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_RESUMED, /*timestamp=*/ 17200000L, /*userId=*/ 1,
-                /*instanceId=*/ 2, packageName));
-        appUsageEventList.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_STOPPED, /*timestamp=*/ 17800000L, /*userId=*/ 1,
-                /*instanceId=*/ 2, packageName));
-        appUsageEventList.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_STOPPED, /*timestamp=*/ 46000000L, /*userId=*/ 1,
-                /*instanceId=*/ 2, packageName));
-        appUsageEventList.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_RESUMED, /*timestamp=*/ 47800000L, /*userId=*/ 1,
-                /*instanceId=*/ 2, packageName));
-        appUsageEventList.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_STOPPED, /*timestamp=*/ 49000000L, /*userId=*/ 1,
-                /*instanceId=*/ 2, packageName));
-        appUsageEventList.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_RESUMED, /*timestamp=*/ 59600000L, /*userId=*/ 1,
-                /*instanceId=*/ 4, packageName));
-        appUsageEventList.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_STOPPED, /*timestamp=*/ 61200000L, /*userId=*/ 1,
-                /*instanceId=*/ 4, packageName));
+        appUsageEventList.add(
+                buildAppUsageEvent(
+                        AppUsageEventType.ACTIVITY_RESUMED,
+                        /* timestamp= */ 4200000L,
+                        /* userId= */ 1,
+                        /* instanceId= */ 2,
+                        packageName));
+        appUsageEventList.add(
+                buildAppUsageEvent(
+                        AppUsageEventType.ACTIVITY_STOPPED,
+                        /* timestamp= */ 4500000L,
+                        /* userId= */ 1,
+                        /* instanceId= */ 2,
+                        packageName));
+        appUsageEventList.add(
+                buildAppUsageEvent(
+                        AppUsageEventType.ACTIVITY_RESUMED,
+                        /* timestamp= */ 12600000L,
+                        /* userId= */ 2,
+                        /* instanceId= */ 3,
+                        packageName));
+        appUsageEventList.add(
+                buildAppUsageEvent(
+                        AppUsageEventType.ACTIVITY_STOPPED,
+                        /* timestamp= */ 15600000L,
+                        /* userId= */ 2,
+                        /* instanceId= */ 3,
+                        packageName));
+        appUsageEventList.add(
+                buildAppUsageEvent(
+                        AppUsageEventType.ACTIVITY_RESUMED,
+                        /* timestamp= */ 16200000L,
+                        /* userId= */ 2,
+                        /* instanceId= */ 3,
+                        packageName));
+        appUsageEventList.add(
+                buildAppUsageEvent(
+                        AppUsageEventType.ACTIVITY_STOPPED,
+                        /* timestamp= */ 18000000L,
+                        /* userId= */ 2,
+                        /* instanceId= */ 3,
+                        packageName));
+        appUsageEventList.add(
+                buildAppUsageEvent(
+                        AppUsageEventType.ACTIVITY_RESUMED,
+                        /* timestamp= */ 17200000L,
+                        /* userId= */ 1,
+                        /* instanceId= */ 2,
+                        packageName));
+        appUsageEventList.add(
+                buildAppUsageEvent(
+                        AppUsageEventType.ACTIVITY_STOPPED,
+                        /* timestamp= */ 17800000L,
+                        /* userId= */ 1,
+                        /* instanceId= */ 2,
+                        packageName));
+        appUsageEventList.add(
+                buildAppUsageEvent(
+                        AppUsageEventType.ACTIVITY_STOPPED,
+                        /* timestamp= */ 46000000L,
+                        /* userId= */ 1,
+                        /* instanceId= */ 2,
+                        packageName));
+        appUsageEventList.add(
+                buildAppUsageEvent(
+                        AppUsageEventType.ACTIVITY_RESUMED,
+                        /* timestamp= */ 47800000L,
+                        /* userId= */ 1,
+                        /* instanceId= */ 2,
+                        packageName));
+        appUsageEventList.add(
+                buildAppUsageEvent(
+                        AppUsageEventType.ACTIVITY_STOPPED,
+                        /* timestamp= */ 49000000L,
+                        /* userId= */ 1,
+                        /* instanceId= */ 2,
+                        packageName));
+        appUsageEventList.add(
+                buildAppUsageEvent(
+                        AppUsageEventType.ACTIVITY_RESUMED,
+                        /* timestamp= */ 59600000L,
+                        /* userId= */ 1,
+                        /* instanceId= */ 4,
+                        packageName));
+        appUsageEventList.add(
+                buildAppUsageEvent(
+                        AppUsageEventType.ACTIVITY_STOPPED,
+                        /* timestamp= */ 61200000L,
+                        /* userId= */ 1,
+                        /* instanceId= */ 4,
+                        packageName));
 
         final Map<Integer, Map<Integer, Map<Long, Map<String, List<AppUsagePeriod>>>>> periodMap =
                 DataProcessor.generateAppUsagePeriodMap(
@@ -292,18 +355,22 @@
                 new ArrayList<>();
         hourlyBatteryLevelsPerDay.add(
                 new BatteryLevelData.PeriodBatteryLevelData(new ArrayMap<>(), new ArrayList<>()));
-        assertThat(DataProcessor.generateAppUsagePeriodMap(
-                mContext, hourlyBatteryLevelsPerDay, new ArrayList<>(), new ArrayList<>()))
+        assertThat(
+                        DataProcessor.generateAppUsagePeriodMap(
+                                mContext,
+                                hourlyBatteryLevelsPerDay,
+                                new ArrayList<>(),
+                                new ArrayList<>()))
                 .isNull();
     }
 
     @Test
     public void generateAppUsageEventListFromUsageEvents_returnExpectedResult() {
-        Event event1 = getUsageEvent(Event.NOTIFICATION_INTERRUPTION, /*timestamp=*/ 1);
-        Event event2 = getUsageEvent(Event.ACTIVITY_RESUMED, /*timestamp=*/ 2);
-        Event event3 = getUsageEvent(Event.ACTIVITY_STOPPED, /*timestamp=*/ 3);
-        Event event4 = getUsageEvent(Event.DEVICE_SHUTDOWN, /*timestamp=*/ 4);
-        Event event5 = getUsageEvent(Event.ACTIVITY_RESUMED, /*timestamp=*/ 5);
+        Event event1 = getUsageEvent(Event.NOTIFICATION_INTERRUPTION, /* timestamp= */ 1);
+        Event event2 = getUsageEvent(Event.ACTIVITY_RESUMED, /* timestamp= */ 2);
+        Event event3 = getUsageEvent(Event.ACTIVITY_STOPPED, /* timestamp= */ 3);
+        Event event4 = getUsageEvent(Event.DEVICE_SHUTDOWN, /* timestamp= */ 4);
+        Event event5 = getUsageEvent(Event.ACTIVITY_RESUMED, /* timestamp= */ 5);
         event5.mPackage = null;
         List<Event> events1 = new ArrayList<>();
         events1.add(event1);
@@ -325,17 +392,16 @@
 
         assertThat(appUsageEventList).hasSize(3);
         assertAppUsageEvent(
-                appUsageEventList.get(0), AppUsageEventType.ACTIVITY_RESUMED, /*timestamp=*/ 2);
+                appUsageEventList.get(0), AppUsageEventType.ACTIVITY_RESUMED, /* timestamp= */ 2);
         assertAppUsageEvent(
-                appUsageEventList.get(1), AppUsageEventType.ACTIVITY_STOPPED, /*timestamp=*/ 3);
+                appUsageEventList.get(1), AppUsageEventType.ACTIVITY_STOPPED, /* timestamp= */ 3);
         assertAppUsageEvent(
-                appUsageEventList.get(2), AppUsageEventType.DEVICE_SHUTDOWN, /*timestamp=*/ 4);
+                appUsageEventList.get(2), AppUsageEventType.DEVICE_SHUTDOWN, /* timestamp= */ 4);
     }
 
     @Test
     public void getHistoryMapWithExpectedTimestamps_emptyHistoryMap_returnEmptyMap() {
-        assertThat(DataProcessor
-                .getHistoryMapWithExpectedTimestamps(mContext, new HashMap<>()))
+        assertThat(DataProcessor.getHistoryMapWithExpectedTimestamps(mContext, new HashMap<>()))
                 .isEmpty();
     }
 
@@ -343,11 +409,11 @@
     public void getHistoryMapWithExpectedTimestamps_returnExpectedMap() {
         // Timezone GMT+8
         final long[] timestamps = {
-                1640966700000L, // 2022-01-01 00:05:00
-                1640970180000L, // 2022-01-01 01:03:00
-                1640973840000L, // 2022-01-01 02:04:00
-                1640978100000L, // 2022-01-01 03:15:00
-                1640981400000L  // 2022-01-01 04:10:00
+            1640966700000L, // 2022-01-01 00:05:00
+            1640970180000L, // 2022-01-01 01:03:00
+            1640973840000L, // 2022-01-01 02:04:00
+            1640978100000L, // 2022-01-01 03:15:00
+            1640981400000L // 2022-01-01 04:10:00
         };
         final int[] levels = {100, 94, 90, 82, 50};
         final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap =
@@ -359,12 +425,12 @@
 
         // Timezone GMT+8
         final long[] expectedTimestamps = {
-                1640966700000L, // 2022-01-01 00:05:00
-                1640970000000L, // 2022-01-01 01:00:00
-                1640973600000L, // 2022-01-01 02:00:00
-                1640977200000L, // 2022-01-01 03:00:00
-                1640980800000L, // 2022-01-01 04:00:00
-                1640981400000L  // 2022-01-01 04:10:00
+            1640966700000L, // 2022-01-01 00:05:00
+            1640970000000L, // 2022-01-01 01:00:00
+            1640973600000L, // 2022-01-01 02:00:00
+            1640977200000L, // 2022-01-01 03:00:00
+            1640980800000L, // 2022-01-01 04:00:00
+            1640981400000L // 2022-01-01 04:10:00
         };
         final int[] expectedLevels = {100, 94, 90, 84, 56, 98};
         assertThat(resultMap).hasSize(expectedLevels.length);
@@ -372,19 +438,23 @@
             assertThat(resultMap.get(expectedTimestamps[index]).get(FAKE_ENTRY_KEY).mBatteryLevel)
                     .isEqualTo(expectedLevels[index]);
         }
-        assertThat(resultMap.get(expectedTimestamps[expectedLevels.length - 1]).containsKey(
-                DataProcessor.CURRENT_TIME_BATTERY_HISTORY_PLACEHOLDER)).isTrue();
+        assertThat(
+                        resultMap
+                                .get(expectedTimestamps[expectedLevels.length - 1])
+                                .containsKey(
+                                        DataProcessor.CURRENT_TIME_BATTERY_HISTORY_PLACEHOLDER))
+                .isTrue();
     }
 
     @Test
     public void getLevelDataThroughProcessedHistoryMap_OneDayData_returnExpectedResult() {
         // Timezone GMT+8
         final long[] timestamps = {
-                1640966400000L, // 2022-01-01 00:00:00
-                1640970000000L, // 2022-01-01 01:00:00
-                1640973600000L, // 2022-01-01 02:00:00
-                1640977200000L, // 2022-01-01 03:00:00
-                1640980800000L  // 2022-01-01 04:00:00
+            1640966400000L, // 2022-01-01 00:00:00
+            1640970000000L, // 2022-01-01 01:00:00
+            1640973600000L, // 2022-01-01 02:00:00
+            1640977200000L, // 2022-01-01 03:00:00
+            1640980800000L // 2022-01-01 04:00:00
         };
         final int[] levels = {100, 94, 90, 82, 50};
         final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap =
@@ -396,12 +466,10 @@
 
         final List<Long> expectedDailyTimestamps = List.of(timestamps[0], timestamps[4]);
         final List<Integer> expectedDailyLevels = List.of(levels[0], levels[4]);
-        final List<List<Long>> expectedHourlyTimestamps = List.of(
-                List.of(timestamps[0], timestamps[2], timestamps[4])
-        );
-        final List<List<Integer>> expectedHourlyLevels = List.of(
-                List.of(levels[0], levels[2], levels[4])
-        );
+        final List<List<Long>> expectedHourlyTimestamps =
+                List.of(List.of(timestamps[0], timestamps[2], timestamps[4]));
+        final List<List<Integer>> expectedHourlyLevels =
+                List.of(List.of(levels[0], levels[2], levels[4]));
         verifyExpectedBatteryLevelData(
                 resultData,
                 expectedDailyTimestamps,
@@ -414,10 +482,10 @@
     public void getLevelDataThroughProcessedHistoryMap_MultipleDaysData_returnExpectedResult() {
         // Timezone GMT+8
         final long[] timestamps = {
-                1641038400000L, // 2022-01-01 20:00:00
-                1641060000000L, // 2022-01-02 02:00:00
-                1641067200000L, // 2022-01-02 04:00:00
-                1641081600000L, // 2022-01-02 08:00:00
+            1641038400000L, // 2022-01-01 20:00:00
+            1641060000000L, // 2022-01-02 02:00:00
+            1641067200000L, // 2022-01-02 04:00:00
+            1641081600000L, // 2022-01-02 08:00:00
         };
         final int[] levels = {100, 94, 90, 82};
         final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap =
@@ -427,29 +495,30 @@
         final BatteryLevelData resultData =
                 DataProcessor.getLevelDataThroughProcessedHistoryMap(mContext, batteryHistoryMap);
 
-        final List<Long> expectedDailyTimestamps = List.of(
-                1641038400000L, // 2022-01-01 20:00:00
-                1641052800000L, // 2022-01-02 00:00:00
-                1641081600000L  // 2022-01-02 08:00:00
-        );
+        final List<Long> expectedDailyTimestamps =
+                List.of(
+                        1641038400000L, // 2022-01-01 20:00:00
+                        1641052800000L, // 2022-01-02 00:00:00
+                        1641081600000L // 2022-01-02 08:00:00
+                        );
         final List<Integer> expectedDailyLevels = new ArrayList<>();
         expectedDailyLevels.add(100);
         expectedDailyLevels.add(BATTERY_LEVEL_UNKNOWN);
         expectedDailyLevels.add(82);
-        final List<List<Long>> expectedHourlyTimestamps = List.of(
+        final List<List<Long>> expectedHourlyTimestamps =
                 List.of(
-                        1641038400000L, // 2022-01-01 20:00:00
-                        1641045600000L, // 2022-01-01 22:00:00
-                        1641052800000L  // 2022-01-02 00:00:00
-                ),
-                List.of(
-                        1641052800000L, // 2022-01-02 00:00:00
-                        1641060000000L, // 2022-01-02 02:00:00
-                        1641067200000L, // 2022-01-02 04:00:00
-                        1641074400000L, // 2022-01-02 06:00:00
-                        1641081600000L  // 2022-01-02 08:00:00
-                )
-        );
+                        List.of(
+                                1641038400000L, // 2022-01-01 20:00:00
+                                1641045600000L, // 2022-01-01 22:00:00
+                                1641052800000L // 2022-01-02 00:00:00
+                                ),
+                        List.of(
+                                1641052800000L, // 2022-01-02 00:00:00
+                                1641060000000L, // 2022-01-02 02:00:00
+                                1641067200000L, // 2022-01-02 04:00:00
+                                1641074400000L, // 2022-01-02 06:00:00
+                                1641081600000L // 2022-01-02 08:00:00
+                                ));
         final List<Integer> expectedHourlyLevels1 = new ArrayList<>();
         expectedHourlyLevels1.add(100);
         expectedHourlyLevels1.add(BATTERY_LEVEL_UNKNOWN);
@@ -460,10 +529,8 @@
         expectedHourlyLevels2.add(90);
         expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
         expectedHourlyLevels2.add(82);
-        final List<List<Integer>> expectedHourlyLevels = List.of(
-                expectedHourlyLevels1,
-                expectedHourlyLevels2
-        );
+        final List<List<Integer>> expectedHourlyLevels =
+                List.of(expectedHourlyLevels1, expectedHourlyLevels2);
         verifyExpectedBatteryLevelData(
                 resultData,
                 expectedDailyTimestamps,
@@ -477,8 +544,8 @@
         // Timezone PST 2022-11-06 has an extra 01:00:00 - 01:59:59 for daylight saving.
         TimeZone.setDefault(TimeZone.getTimeZone("America/Los_Angeles"));
         final long[] timestamps = {
-                1667667600000L, // 2022-11-05 10:00:00
-                1667829600000L  // 2022-11-07 06:00:00
+            1667667600000L, // 2022-11-05 10:00:00
+            1667829600000L // 2022-11-07 06:00:00
         };
         final int[] levels = {100, 88};
         final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap =
@@ -488,51 +555,52 @@
         final BatteryLevelData resultData =
                 DataProcessor.getLevelDataThroughProcessedHistoryMap(mContext, batteryHistoryMap);
 
-        final List<Long> expectedDailyTimestamps = List.of(
-                1667667600000L, // 2022-11-05 10:00:00
-                1667718000000L, // 2022-11-06 00:00:00
-                1667808000000L, // 2022-11-07 00:00:00
-                1667829600000L  // 2022-11-07 06:00:00
-        );
+        final List<Long> expectedDailyTimestamps =
+                List.of(
+                        1667667600000L, // 2022-11-05 10:00:00
+                        1667718000000L, // 2022-11-06 00:00:00
+                        1667808000000L, // 2022-11-07 00:00:00
+                        1667829600000L // 2022-11-07 06:00:00
+                        );
         final List<Integer> expectedDailyLevels = new ArrayList<>();
         expectedDailyLevels.add(100);
         expectedDailyLevels.add(BATTERY_LEVEL_UNKNOWN);
         expectedDailyLevels.add(BATTERY_LEVEL_UNKNOWN);
         expectedDailyLevels.add(88);
-        final List<List<Long>> expectedHourlyTimestamps = List.of(
+        final List<List<Long>> expectedHourlyTimestamps =
                 List.of(
-                        1667667600000L, // 2022-11-05 10:00:00
-                        1667674800000L, // 2022-11-05 12:00:00
-                        1667682000000L, // 2022-11-05 14:00:00
-                        1667689200000L, // 2022-11-05 16:00:00
-                        1667696400000L, // 2022-11-05 18:00:00
-                        1667703600000L, // 2022-11-05 20:00:00
-                        1667710800000L, // 2022-11-05 22:00:00
-                        1667718000000L  // 2022-11-06 00:00:00
-                ),
-                List.of(
-                        1667718000000L, // 2022-11-06 00:00:00
-                        1667725200000L, // 2022-11-06 01:00:00  after daylight saving change
-                        1667732400000L, // 2022-11-06 03:00:00
-                        1667739600000L, // 2022-11-06 05:00:00
-                        1667746800000L, // 2022-11-06 07:00:00
-                        1667754000000L, // 2022-11-06 09:00:00
-                        1667761200000L, // 2022-11-06 11:00:00
-                        1667768400000L, // 2022-11-06 13:00:00
-                        1667775600000L, // 2022-11-06 15:00:00
-                        1667782800000L, // 2022-11-06 17:00:00
-                        1667790000000L, // 2022-11-06 19:00:00
-                        1667797200000L, // 2022-11-06 21:00:00
-                        1667804400000L, // 2022-11-06 23:00:00
-                        1667808000000L  // 2022-11-07 00:00:00
-                ),
-                List.of(
-                        1667808000000L, // 2022-11-07 00:00:00
-                        1667815200000L, // 2022-11-07 02:00:00
-                        1667822400000L, // 2022-11-07 04:00:00
-                        1667829600000L  // 2022-11-07 06:00:00
-                )
-        );
+                        List.of(
+                                1667667600000L, // 2022-11-05 10:00:00
+                                1667674800000L, // 2022-11-05 12:00:00
+                                1667682000000L, // 2022-11-05 14:00:00
+                                1667689200000L, // 2022-11-05 16:00:00
+                                1667696400000L, // 2022-11-05 18:00:00
+                                1667703600000L, // 2022-11-05 20:00:00
+                                1667710800000L, // 2022-11-05 22:00:00
+                                1667718000000L // 2022-11-06 00:00:00
+                                ),
+                        List.of(
+                                1667718000000L, // 2022-11-06 00:00:00
+                                1667725200000L, // 2022-11-06 01:00:00  after daylight saving change
+                                1667732400000L, // 2022-11-06 03:00:00
+                                1667739600000L, // 2022-11-06 05:00:00
+                                1667746800000L, // 2022-11-06 07:00:00
+                                1667754000000L, // 2022-11-06 09:00:00
+                                1667761200000L, // 2022-11-06 11:00:00
+                                1667768400000L, // 2022-11-06 13:00:00
+                                1667775600000L, // 2022-11-06 15:00:00
+                                1667782800000L, // 2022-11-06 17:00:00
+                                1667790000000L, // 2022-11-06 19:00:00
+                                1667797200000L, // 2022-11-06 21:00:00
+                                1667804400000L, // 2022-11-06 23:00:00
+                                1667808000000L // 2022-11-07 00:00:00
+                                ),
+                        List.of(
+                                1667808000000L, // 2022-11-07 00:00:00
+                                1667815200000L, // 2022-11-07 02:00:00
+                                1667822400000L, // 2022-11-07 04:00:00
+                                1667829600000L // 2022-11-07 06:00:00
+                                ));
         final List<Integer> expectedHourlyLevels1 = new ArrayList<>();
         expectedHourlyLevels1.add(100);
         expectedHourlyLevels1.add(BATTERY_LEVEL_UNKNOWN);
@@ -562,11 +630,8 @@
         expectedHourlyLevels3.add(BATTERY_LEVEL_UNKNOWN);
         expectedHourlyLevels3.add(BATTERY_LEVEL_UNKNOWN);
         expectedHourlyLevels3.add(88);
-        final List<List<Integer>> expectedHourlyLevels = List.of(
-                expectedHourlyLevels1,
-                expectedHourlyLevels2,
-                expectedHourlyLevels3
-        );
+        final List<List<Integer>> expectedHourlyLevels =
+                List.of(expectedHourlyLevels1, expectedHourlyLevels2, expectedHourlyLevels3);
         verifyExpectedBatteryLevelData(
                 resultData,
                 expectedDailyTimestamps,
@@ -580,8 +645,8 @@
         // Timezone PST 2022-03-13 has no 02:00:00 - 02:59:59 for daylight saving.
         TimeZone.setDefault(TimeZone.getTimeZone("America/Los_Angeles"));
         final long[] timestamps = {
-                1647151200000L, // 2022-03-12 22:00:00
-                1647262800000L  // 2022-03-14 06:00:00
+            1647151200000L, // 2022-03-12 22:00:00
+            1647262800000L // 2022-03-14 06:00:00
         };
         final int[] levels = {100, 88};
         final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap =
@@ -591,44 +656,45 @@
         final BatteryLevelData resultData =
                 DataProcessor.getLevelDataThroughProcessedHistoryMap(mContext, batteryHistoryMap);
 
-        final List<Long> expectedDailyTimestamps = List.of(
-                1647151200000L, // 2022-03-12 22:00:00
-                1647158400000L, // 2022-03-13 00:00:00
-                1647241200000L, // 2022-03-14 00:00:00
-                1647262800000L  // 2022-03-14 06:00:00
-        );
+        final List<Long> expectedDailyTimestamps =
+                List.of(
+                        1647151200000L, // 2022-03-12 22:00:00
+                        1647158400000L, // 2022-03-13 00:00:00
+                        1647241200000L, // 2022-03-14 00:00:00
+                        1647262800000L // 2022-03-14 06:00:00
+                        );
         final List<Integer> expectedDailyLevels = new ArrayList<>();
         expectedDailyLevels.add(100);
         expectedDailyLevels.add(BATTERY_LEVEL_UNKNOWN);
         expectedDailyLevels.add(BATTERY_LEVEL_UNKNOWN);
         expectedDailyLevels.add(88);
-        final List<List<Long>> expectedHourlyTimestamps = List.of(
+        final List<List<Long>> expectedHourlyTimestamps =
                 List.of(
-                        1647151200000L, // 2022-03-12 22:00:00
-                        1647158400000L  // 2022-03-13 00:00:00
-                ),
-                List.of(
-                        1647158400000L, // 2022-03-13 00:00:00
-                        1647165600000L, // 2022-03-13 03:00:00  after daylight saving change
-                        1647172800000L, // 2022-03-13 05:00:00
-                        1647180000000L, // 2022-03-13 07:00:00
-                        1647187200000L, // 2022-03-13 09:00:00
-                        1647194400000L, // 2022-03-13 11:00:00
-                        1647201600000L, // 2022-03-13 13:00:00
-                        1647208800000L, // 2022-03-13 15:00:00
-                        1647216000000L, // 2022-03-13 17:00:00
-                        1647223200000L, // 2022-03-13 19:00:00
-                        1647230400000L, // 2022-03-13 21:00:00
-                        1647237600000L, // 2022-03-13 23:00:00
-                        1647241200000L  // 2022-03-14 00:00:00
-                ),
-                List.of(
-                        1647241200000L, // 2022-03-14 00:00:00
-                        1647248400000L, // 2022-03-14 02:00:00
-                        1647255600000L, // 2022-03-14 04:00:00
-                        1647262800000L  // 2022-03-14 06:00:00
-                )
-        );
+                        List.of(
+                                1647151200000L, // 2022-03-12 22:00:00
+                                1647158400000L // 2022-03-13 00:00:00
+                                ),
+                        List.of(
+                                1647158400000L, // 2022-03-13 00:00:00
+                                1647165600000L, // 2022-03-13 03:00:00  after daylight saving change
+                                1647172800000L, // 2022-03-13 05:00:00
+                                1647180000000L, // 2022-03-13 07:00:00
+                                1647187200000L, // 2022-03-13 09:00:00
+                                1647194400000L, // 2022-03-13 11:00:00
+                                1647201600000L, // 2022-03-13 13:00:00
+                                1647208800000L, // 2022-03-13 15:00:00
+                                1647216000000L, // 2022-03-13 17:00:00
+                                1647223200000L, // 2022-03-13 19:00:00
+                                1647230400000L, // 2022-03-13 21:00:00
+                                1647237600000L, // 2022-03-13 23:00:00
+                                1647241200000L // 2022-03-14 00:00:00
+                                ),
+                        List.of(
+                                1647241200000L, // 2022-03-14 00:00:00
+                                1647248400000L, // 2022-03-14 02:00:00
+                                1647255600000L, // 2022-03-14 04:00:00
+                                1647262800000L // 2022-03-14 06:00:00
+                                ));
         final List<Integer> expectedHourlyLevels1 = new ArrayList<>();
         expectedHourlyLevels1.add(100);
         expectedHourlyLevels1.add(BATTERY_LEVEL_UNKNOWN);
@@ -651,11 +717,8 @@
         expectedHourlyLevels3.add(BATTERY_LEVEL_UNKNOWN);
         expectedHourlyLevels3.add(BATTERY_LEVEL_UNKNOWN);
         expectedHourlyLevels3.add(88);
-        final List<List<Integer>> expectedHourlyLevels = List.of(
-                expectedHourlyLevels1,
-                expectedHourlyLevels2,
-                expectedHourlyLevels3
-        );
+        final List<List<Integer>> expectedHourlyLevels =
+                List.of(expectedHourlyLevels1, expectedHourlyLevels2, expectedHourlyLevels3);
         verifyExpectedBatteryLevelData(
                 resultData,
                 expectedDailyTimestamps,
@@ -666,8 +729,9 @@
 
     @Test
     public void getTimestampSlots_emptyRawList_returnEmptyList() {
-        final List<Long> resultList = DataProcessor.getTimestampSlots(
-                new ArrayList<>(), 1641038400000L); // 2022-01-01 20:00:00
+        final List<Long> resultList =
+                DataProcessor.getTimestampSlots(
+                        new ArrayList<>(), 1641038400000L); // 2022-01-01 20:00:00
         assertThat(resultList).isEmpty();
     }
 
@@ -756,20 +820,24 @@
 
     @Test
     public void findNearestTimestamp_returnExpectedResult() {
-        long[] results = DataProcessor.findNearestTimestamp(
-                Arrays.asList(10L, 20L, 30L, 40L), /*target=*/ 15L);
+        long[] results =
+                DataProcessor.findNearestTimestamp(
+                        Arrays.asList(10L, 20L, 30L, 40L), /* target= */ 15L);
         assertThat(results).isEqualTo(new long[] {10L, 20L});
 
-        results = DataProcessor.findNearestTimestamp(
-                Arrays.asList(10L, 20L, 30L, 40L), /*target=*/ 10L);
+        results =
+                DataProcessor.findNearestTimestamp(
+                        Arrays.asList(10L, 20L, 30L, 40L), /* target= */ 10L);
         assertThat(results).isEqualTo(new long[] {10L, 10L});
 
-        results = DataProcessor.findNearestTimestamp(
-                Arrays.asList(10L, 20L, 30L, 40L), /*target=*/ 5L);
+        results =
+                DataProcessor.findNearestTimestamp(
+                        Arrays.asList(10L, 20L, 30L, 40L), /* target= */ 5L);
         assertThat(results).isEqualTo(new long[] {0L, 10L});
 
-        results = DataProcessor.findNearestTimestamp(
-                Arrays.asList(10L, 20L, 30L, 40L), /*target=*/ 50L);
+        results =
+                DataProcessor.findNearestTimestamp(
+                        Arrays.asList(10L, 20L, 30L, 40L), /* target= */ 50L);
         assertThat(results).isEqualTo(new long[] {40L, 0L});
     }
 
@@ -781,36 +849,100 @@
         hourlyBatteryLevelsPerDay.add(
                 new BatteryLevelData.PeriodBatteryLevelData(new ArrayMap<>(), new ArrayList<>()));
 
-        assertThat(DataProcessor.getBatteryDiffDataMap(mContext, hourlyBatteryLevelsPerDay,
-                new HashMap<>(), /*appUsagePeriodMap=*/ null, Set.of(), Set.of())).isEmpty();
+        assertThat(
+                        DataProcessor.getBatteryDiffDataMap(
+                                mContext,
+                                hourlyBatteryLevelsPerDay,
+                                new HashMap<>(),
+                                /* appUsagePeriodMap= */ null,
+                                Set.of(),
+                                Set.of()))
+                .isEmpty();
     }
 
     @Test
     public void getBatteryDiffDataMap_normalFlow_returnExpectedResult() {
         final int userId = mContext.getUserId();
-        final long[] batteryHistoryKeys = new long[]{
-                1641045600000L, // 2022-01-01 22:00:00
-                1641049200000L, // 2022-01-01 23:00:00
-                1641052800000L, // 2022-01-02 00:00:00
-        };
-        final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap = Map.of(
-                batteryHistoryKeys[0], Map.of(FAKE_PACKAGE_NAME, createBatteryHistEntry(
-                        FAKE_PACKAGE_NAME, "fake_label", /*consumePower=*/ 0, 0, 0,
-                        0, 0, 0L, userId, ConvertUtils.CONSUMER_TYPE_UID_BATTERY, 0L, 0L, false)),
-                batteryHistoryKeys[1], Map.of(FAKE_PACKAGE_NAME, createBatteryHistEntry(
-                        FAKE_PACKAGE_NAME, "fake_label", /*consumePower=*/ 5, 0, 0,
-                        0, 0, 0L, userId, ConvertUtils.CONSUMER_TYPE_UID_BATTERY, 0L, 0L, false)),
-                batteryHistoryKeys[2], Map.of(FAKE_PACKAGE_NAME, createBatteryHistEntry(
-                        FAKE_PACKAGE_NAME, "fake_label", /*consumePower=*/ 16, 0, 0,
-                        0, 0, 0L, userId, ConvertUtils.CONSUMER_TYPE_UID_BATTERY, 0L, 0L, false)));
+        final long[] batteryHistoryKeys =
+                new long[] {
+                    1641045600000L, // 2022-01-01 22:00:00
+                    1641049200000L, // 2022-01-01 23:00:00
+                    1641052800000L, // 2022-01-02 00:00:00
+                };
+        final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap =
+                Map.of(
+                        batteryHistoryKeys[0],
+                                Map.of(
+                                        FAKE_PACKAGE_NAME,
+                                        createBatteryHistEntry(
+                                                FAKE_PACKAGE_NAME,
+                                                "fake_label",
+                                                /* consumePower= */ 0,
+                                                0,
+                                                0,
+                                                0,
+                                                0,
+                                                0L,
+                                                userId,
+                                                ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                                                0L,
+                                                0L,
+                                                false)),
+                        batteryHistoryKeys[1],
+                                Map.of(
+                                        FAKE_PACKAGE_NAME,
+                                        createBatteryHistEntry(
+                                                FAKE_PACKAGE_NAME,
+                                                "fake_label",
+                                                /* consumePower= */ 5,
+                                                0,
+                                                0,
+                                                0,
+                                                0,
+                                                0L,
+                                                userId,
+                                                ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                                                0L,
+                                                0L,
+                                                false)),
+                        batteryHistoryKeys[2],
+                                Map.of(
+                                        FAKE_PACKAGE_NAME,
+                                        createBatteryHistEntry(
+                                                FAKE_PACKAGE_NAME,
+                                                "fake_label",
+                                                /* consumePower= */ 16,
+                                                0,
+                                                0,
+                                                0,
+                                                0,
+                                                0L,
+                                                userId,
+                                                ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                                                0L,
+                                                0L,
+                                                false)));
         final BatteryLevelData batteryLevelData = generateBatteryLevelData(batteryHistoryKeys);
         final Map<Integer, Map<Integer, Map<Long, Map<String, List<AppUsagePeriod>>>>>
-                appUsagePeriodMap = Map.of(0, Map.of(0, Map.of(Long.valueOf(userId), Map.of(
-                FAKE_PACKAGE_NAME, List.of(buildAppUsagePeriod(0, 6))))));
+                appUsagePeriodMap =
+                        Map.of(
+                                0,
+                                Map.of(
+                                        0,
+                                        Map.of(
+                                                Long.valueOf(userId),
+                                                Map.of(
+                                                        FAKE_PACKAGE_NAME,
+                                                        List.of(buildAppUsagePeriod(0, 6))))));
 
-        Map<Long, BatteryDiffData> batteryDiffDataMap = DataProcessor.getBatteryDiffDataMap(
-                mContext, batteryLevelData.getHourlyBatteryLevelsPerDay(), batteryHistoryMap,
-                appUsagePeriodMap, Set.of(), Set.of());
+        Map<Long, BatteryDiffData> batteryDiffDataMap =
+                DataProcessor.getBatteryDiffDataMap(
+                        mContext,
+                        batteryLevelData.getHourlyBatteryLevelsPerDay(),
+                        batteryHistoryMap,
+                        appUsagePeriodMap,
+                        Set.of(),
+                        Set.of());
 
         assertThat(batteryDiffDataMap).hasSize(1);
         assertThat(batteryDiffDataMap).containsKey(batteryHistoryKeys[0]);
@@ -821,31 +953,48 @@
 
     @Test
     public void generateBatteryUsageMap_returnsExpectedResult() {
-        final long[] batteryHistoryKeys = new long[]{
-                1641045600000L, // 2022-01-01 22:00:00
-                1641049200000L, // 2022-01-01 23:00:00
-                1641052800000L, // 2022-01-02 00:00:00
-                1641056400000L, // 2022-01-02 01:00:00
-                1641060000000L, // 2022-01-02 02:00:00
-        };
+        final long[] batteryHistoryKeys =
+                new long[] {
+                    1641045600000L, // 2022-01-01 22:00:00
+                    1641049200000L, // 2022-01-01 23:00:00
+                    1641052800000L, // 2022-01-02 00:00:00
+                    1641056400000L, // 2022-01-02 01:00:00
+                    1641060000000L, // 2022-01-02 02:00:00
+                };
         final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap = new HashMap<>();
         final int currentUserId = mContext.getUserId();
-        final BatteryHistEntry fakeEntry = createBatteryHistEntry(
-                FAKE_PACKAGE_NAME, "fake_label", /*consumePower=*/ 0,
-                /*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
-                /*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
-                /*uid=*/ 0L, currentUserId, ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
-                /*foregroundUsageTimeInMs=*/ 0L,  /*backgroundUsageTimeInMs=*/ 0L,
-                /*isHidden=*/ false);
+        final BatteryHistEntry fakeEntry =
+                createBatteryHistEntry(
+                        FAKE_PACKAGE_NAME,
+                        "fake_label",
+                        /* consumePower= */ 0,
+                        /* foregroundUsageConsumePower= */ 0,
+                        /* foregroundServiceUsageConsumePower= */ 0,
+                        /* backgroundUsageConsumePower= */ 0,
+                        /* cachedUsageConsumePower= */ 0,
+                        /* uid= */ 0L,
+                        currentUserId,
+                        ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 0L,
+                        /* backgroundUsageTimeInMs= */ 0L,
+                        /* isHidden= */ false);
         // Adds the index = 0 data.
         Map<String, BatteryHistEntry> entryMap = new HashMap<>();
-        BatteryHistEntry entry = createBatteryHistEntry(
-                "package1", "label1", /*consumePower=*/ 5.0,
-                /*foregroundUsageConsumePower=*/ 2, /*foregroundServiceUsageConsumePower=*/ 0,
-                /*backgroundUsageConsumePower=*/ 3, /*cachedUsageConsumePower=*/ 0,
-                /*uid=*/ 1L, currentUserId,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 10L,
-                /*backgroundUsageTimeInMs=*/ 20L, /*isHidden=*/ false);
+        BatteryHistEntry entry =
+                createBatteryHistEntry(
+                        "package1",
+                        "label1",
+                        /* consumePower= */ 5.0,
+                        /* foregroundUsageConsumePower= */ 2,
+                        /* foregroundServiceUsageConsumePower= */ 0,
+                        /* backgroundUsageConsumePower= */ 3,
+                        /* cachedUsageConsumePower= */ 0,
+                        /* uid= */ 1L,
+                        currentUserId,
+                        ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 10L,
+                        /* backgroundUsageTimeInMs= */ 20L,
+                        /* isHidden= */ false);
         entryMap.put(entry.getKey(), entry);
         entryMap.put(fakeEntry.getKey(), fakeEntry);
         batteryHistoryMap.put(batteryHistoryKeys[0], entryMap);
@@ -855,69 +1004,125 @@
         batteryHistoryMap.put(batteryHistoryKeys[1], entryMap);
         // Adds the index = 2 data.
         entryMap = new HashMap<>();
-        entry = createBatteryHistEntry(
-                "package2", "label2", /*consumePower=*/ 20.0,
-                /*foregroundUsageConsumePower=*/ 5, /*foregroundServiceUsageConsumePower=*/ 5,
-                /*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5,
-                /*uid=*/ 2L, currentUserId,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 15L,
-                /*backgroundUsageTimeInMs=*/ 25L, /*isHidden=*/ false);
+        entry =
+                createBatteryHistEntry(
+                        "package2",
+                        "label2",
+                        /* consumePower= */ 20.0,
+                        /* foregroundUsageConsumePower= */ 5,
+                        /* foregroundServiceUsageConsumePower= */ 5,
+                        /* backgroundUsageConsumePower= */ 5,
+                        /* cachedUsageConsumePower= */ 5,
+                        /* uid= */ 2L,
+                        currentUserId,
+                        ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 15L,
+                        /* backgroundUsageTimeInMs= */ 25L,
+                        /* isHidden= */ false);
         entryMap.put(entry.getKey(), entry);
         entryMap.put(fakeEntry.getKey(), fakeEntry);
         batteryHistoryMap.put(batteryHistoryKeys[2], entryMap);
         // Adds the index = 3 data.
         entryMap = new HashMap<>();
-        entry = createBatteryHistEntry(
-                "package2", "label2", /*consumePower=*/ 40.0,
-                /*foregroundUsageConsumePower=*/ 8, /*foregroundServiceUsageConsumePower=*/ 8,
-                /*backgroundUsageConsumePower=*/ 8, /*cachedUsageConsumePower=*/ 8,
-                /*uid=*/ 2L, currentUserId,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 25L,
-                /*backgroundUsageTimeInMs=*/ 35L, /*isHidden=*/ false);
+        entry =
+                createBatteryHistEntry(
+                        "package2",
+                        "label2",
+                        /* consumePower= */ 40.0,
+                        /* foregroundUsageConsumePower= */ 8,
+                        /* foregroundServiceUsageConsumePower= */ 8,
+                        /* backgroundUsageConsumePower= */ 8,
+                        /* cachedUsageConsumePower= */ 8,
+                        /* uid= */ 2L,
+                        currentUserId,
+                        ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 25L,
+                        /* backgroundUsageTimeInMs= */ 35L,
+                        /* isHidden= */ false);
         entryMap.put(entry.getKey(), entry);
-        entry = createBatteryHistEntry(
-                "package3", "Screen", /*consumePower=*/ 10.0,
-                /*foregroundUsageConsumePower=*/ 4, /*foregroundServiceUsageConsumePower=*/ 2,
-                /*backgroundUsageConsumePower=*/ 2, /*cachedUsageConsumePower=*/ 2,
-                /*uid=*/ 3L, currentUserId,
-                ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY, /*foregroundUsageTimeInMs=*/ 40L,
-                /*backgroundUsageTimeInMs=*/ 50L, /*isHidden=*/ false);
+        entry =
+                createBatteryHistEntry(
+                        "package3",
+                        "Screen",
+                        /* consumePower= */ 10.0,
+                        /* foregroundUsageConsumePower= */ 4,
+                        /* foregroundServiceUsageConsumePower= */ 2,
+                        /* backgroundUsageConsumePower= */ 2,
+                        /* cachedUsageConsumePower= */ 2,
+                        /* uid= */ 3L,
+                        currentUserId,
+                        ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 40L,
+                        /* backgroundUsageTimeInMs= */ 50L,
+                        /* isHidden= */ false);
         entryMap.put(entry.getKey(), entry);
-        entry = createBatteryHistEntry(
-                "package4", "label4", /*consumePower=*/ 15.0,
-                /*foregroundUsageConsumePower=*/ 6, /*foregroundServiceUsageConsumePower=*/ 3,
-                /*backgroundUsageConsumePower=*/ 3, /*cachedUsageConsumePower=*/ 3,
-                /*uid=*/ 4L, currentUserId,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 5L,
-                /*backgroundUsageTimeInMs=*/ 5L, /*isHidden=*/ false);
+        entry =
+                createBatteryHistEntry(
+                        "package4",
+                        "label4",
+                        /* consumePower= */ 15.0,
+                        /* foregroundUsageConsumePower= */ 6,
+                        /* foregroundServiceUsageConsumePower= */ 3,
+                        /* backgroundUsageConsumePower= */ 3,
+                        /* cachedUsageConsumePower= */ 3,
+                        /* uid= */ 4L,
+                        currentUserId,
+                        ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 5L,
+                        /* backgroundUsageTimeInMs= */ 5L,
+                        /* isHidden= */ false);
         entryMap.put(entry.getKey(), entry);
         entryMap.put(fakeEntry.getKey(), fakeEntry);
         batteryHistoryMap.put(batteryHistoryKeys[3], entryMap);
         // Adds the index = 4 data.
         entryMap = new HashMap<>();
-        entry = createBatteryHistEntry(
-                "package2", "label2", /*consumePower=*/ 40.0,
-                /*foregroundUsageConsumePower=*/ 14, /*foregroundServiceUsageConsumePower=*/ 9,
-                /*backgroundUsageConsumePower=*/ 9, /*cachedUsageConsumePower=*/ 8,
-                /*uid=*/ 2L, currentUserId,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 30L,
-                /*backgroundUsageTimeInMs=*/ 40L, /*isHidden=*/ false);
+        entry =
+                createBatteryHistEntry(
+                        "package2",
+                        "label2",
+                        /* consumePower= */ 40.0,
+                        /* foregroundUsageConsumePower= */ 14,
+                        /* foregroundServiceUsageConsumePower= */ 9,
+                        /* backgroundUsageConsumePower= */ 9,
+                        /* cachedUsageConsumePower= */ 8,
+                        /* uid= */ 2L,
+                        currentUserId,
+                        ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 30L,
+                        /* backgroundUsageTimeInMs= */ 40L,
+                        /* isHidden= */ false);
         entryMap.put(entry.getKey(), entry);
-        entry = createBatteryHistEntry(
-                "package3", "Screen", /*consumePower=*/ 20.0,
-                /*foregroundUsageConsumePower=*/ 5, /*foregroundServiceUsageConsumePower=*/ 5,
-                /*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5,
-                /*uid=*/ 3L, currentUserId,
-                ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY, /*foregroundUsageTimeInMs=*/ 50L,
-                /*backgroundUsageTimeInMs=*/ 60L, /*isHidden=*/ false);
+        entry =
+                createBatteryHistEntry(
+                        "package3",
+                        "Screen",
+                        /* consumePower= */ 20.0,
+                        /* foregroundUsageConsumePower= */ 5,
+                        /* foregroundServiceUsageConsumePower= */ 5,
+                        /* backgroundUsageConsumePower= */ 5,
+                        /* cachedUsageConsumePower= */ 5,
+                        /* uid= */ 3L,
+                        currentUserId,
+                        ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 50L,
+                        /* backgroundUsageTimeInMs= */ 60L,
+                        /* isHidden= */ false);
         entryMap.put(entry.getKey(), entry);
-        entry = createBatteryHistEntry(
-                "package4", "label4", /*consumePower=*/ 40.0,
-                /*foregroundUsageConsumePower=*/ 8, /*foregroundServiceUsageConsumePower=*/ 8,
-                /*backgroundUsageConsumePower=*/ 8, /*cachedUsageConsumePower=*/ 8,
-                /*uid=*/ 4L, currentUserId,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 5L,
-                /*backgroundUsageTimeInMs=*/ 5L, /*isHidden=*/ false);
+        entry =
+                createBatteryHistEntry(
+                        "package4",
+                        "label4",
+                        /* consumePower= */ 40.0,
+                        /* foregroundUsageConsumePower= */ 8,
+                        /* foregroundServiceUsageConsumePower= */ 8,
+                        /* backgroundUsageConsumePower= */ 8,
+                        /* cachedUsageConsumePower= */ 8,
+                        /* uid= */ 4L,
+                        currentUserId,
+                        ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 5L,
+                        /* backgroundUsageTimeInMs= */ 5L,
+                        /* isHidden= */ false);
         entryMap.put(entry.getKey(), entry);
         entryMap.put(fakeEntry.getKey(), fakeEntry);
         batteryHistoryMap.put(batteryHistoryKeys[4], entryMap);
@@ -938,18 +1143,22 @@
         appUsageMap = new HashMap<>();
         userPeriodMap = new HashMap<>();
         appUsageMap.put(Long.valueOf(currentUserId), userPeriodMap);
-        userPeriodMap.put("package2",
-                List.of(buildAppUsagePeriod(2, 7), buildAppUsagePeriod(5, 9)));
-        userPeriodMap.put("package3",
-                List.of(buildAppUsagePeriod(10, 15), buildAppUsagePeriod(25, 29)));
+        userPeriodMap.put(
+                "package2", List.of(buildAppUsagePeriod(2, 7), buildAppUsagePeriod(5, 9)));
+        userPeriodMap.put(
+                "package3", List.of(buildAppUsagePeriod(10, 15), buildAppUsagePeriod(25, 29)));
         appUsagePeriodMap.get(1).put(0, appUsageMap);
 
         final Map<Integer, Map<Integer, BatteryDiffData>> resultMap =
                 DataProcessor.generateBatteryUsageMap(
                         mContext,
-                        DataProcessor.getBatteryDiffDataMap(mContext,
-                                batteryLevelData.getHourlyBatteryLevelsPerDay(), batteryHistoryMap,
-                                appUsagePeriodMap, Set.of(), Set.of()),
+                        DataProcessor.getBatteryDiffDataMap(
+                                mContext,
+                                batteryLevelData.getHourlyBatteryLevelsPerDay(),
+                                batteryHistoryMap,
+                                appUsagePeriodMap,
+                                Set.of(),
+                                Set.of()),
                         batteryLevelData);
 
         BatteryDiffData resultDiffData =
@@ -958,146 +1167,261 @@
                         .get(DataProcessor.SELECTED_INDEX_ALL);
         assertThat(resultDiffData.getScreenOnTime()).isEqualTo(36L);
         assertBatteryDiffEntry(
-                resultDiffData.getAppDiffEntryList().get(0), currentUserId, /*uid=*/ 2L,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 50.0,
-                /*foregroundUsageConsumePower=*/ 14, /*foregroundServiceUsageConsumePower=*/ 9,
-                /*backgroundUsageConsumePower=*/ 9, /*cachedUsageConsumePower=*/ 8,
-                /*foregroundUsageTimeInMs=*/ 30, /*backgroundUsageTimeInMs=*/ 40,
-                /*screenOnTimeInMs=*/ 12);
+                resultDiffData.getAppDiffEntryList().get(0),
+                currentUserId,
+                /* uid= */ 2L,
+                ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                /* consumePercentage= */ 50.0,
+                /* foregroundUsageConsumePower= */ 14,
+                /* foregroundServiceUsageConsumePower= */ 9,
+                /* backgroundUsageConsumePower= */ 9,
+                /* cachedUsageConsumePower= */ 8,
+                /* foregroundUsageTimeInMs= */ 30,
+                /* backgroundUsageTimeInMs= */ 40,
+                /* screenOnTimeInMs= */ 12);
         assertBatteryDiffEntry(
-                resultDiffData.getAppDiffEntryList().get(1), currentUserId, /*uid=*/ 4L,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 50.0,
-                /*foregroundUsageConsumePower=*/ 8, /*foregroundServiceUsageConsumePower=*/ 8,
-                /*backgroundUsageConsumePower=*/ 8, /*cachedUsageConsumePower=*/ 8,
-                /*foregroundUsageTimeInMs=*/ 5, /*backgroundUsageTimeInMs=*/ 5,
-                /*screenOnTimeInMs=*/ 0);
+                resultDiffData.getAppDiffEntryList().get(1),
+                currentUserId,
+                /* uid= */ 4L,
+                ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                /* consumePercentage= */ 50.0,
+                /* foregroundUsageConsumePower= */ 8,
+                /* foregroundServiceUsageConsumePower= */ 8,
+                /* backgroundUsageConsumePower= */ 8,
+                /* cachedUsageConsumePower= */ 8,
+                /* foregroundUsageTimeInMs= */ 5,
+                /* backgroundUsageTimeInMs= */ 5,
+                /* screenOnTimeInMs= */ 0);
         assertBatteryDiffEntry(
-                resultDiffData.getSystemDiffEntryList().get(0), currentUserId, /*uid=*/ 3L,
-                ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY, /*consumePercentage=*/ 100.0,
-                /*foregroundUsageConsumePower=*/ 5, /*foregroundServiceUsageConsumePower=*/ 5,
-                /*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5,
-                /*foregroundUsageTimeInMs=*/ 16, /*backgroundUsageTimeInMs=*/ 60,
-                /*screenOnTimeInMs=*/ 9);
+                resultDiffData.getSystemDiffEntryList().get(0),
+                currentUserId,
+                /* uid= */ 3L,
+                ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY,
+                /* consumePercentage= */ 100.0,
+                /* foregroundUsageConsumePower= */ 5,
+                /* foregroundServiceUsageConsumePower= */ 5,
+                /* backgroundUsageConsumePower= */ 5,
+                /* cachedUsageConsumePower= */ 5,
+                /* foregroundUsageTimeInMs= */ 16,
+                /* backgroundUsageTimeInMs= */ 60,
+                /* screenOnTimeInMs= */ 9);
         resultDiffData = resultMap.get(0).get(DataProcessor.SELECTED_INDEX_ALL);
         assertBatteryDiffEntry(
-                resultDiffData.getAppDiffEntryList().get(0), currentUserId, /*uid=*/ 2L,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 100.0,
-                /*foregroundUsageConsumePower=*/ 5, /*foregroundServiceUsageConsumePower=*/ 5,
-                /*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5,
-                /*foregroundUsageTimeInMs=*/ 15, /*backgroundUsageTimeInMs=*/ 25,
-                /*screenOnTimeInMs=*/ 5);
+                resultDiffData.getAppDiffEntryList().get(0),
+                currentUserId,
+                /* uid= */ 2L,
+                ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                /* consumePercentage= */ 100.0,
+                /* foregroundUsageConsumePower= */ 5,
+                /* foregroundServiceUsageConsumePower= */ 5,
+                /* backgroundUsageConsumePower= */ 5,
+                /* cachedUsageConsumePower= */ 5,
+                /* foregroundUsageTimeInMs= */ 15,
+                /* backgroundUsageTimeInMs= */ 25,
+                /* screenOnTimeInMs= */ 5);
         resultDiffData = resultMap.get(1).get(DataProcessor.SELECTED_INDEX_ALL);
         assertBatteryDiffEntry(
-                resultDiffData.getAppDiffEntryList().get(0), currentUserId, /*uid=*/ 4L,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 66.66666666666666,
-                /*foregroundUsageConsumePower=*/ 8, /*foregroundServiceUsageConsumePower=*/ 8,
-                /*backgroundUsageConsumePower=*/ 8, /*cachedUsageConsumePower=*/ 8,
-                /*foregroundUsageTimeInMs=*/ 5, /*backgroundUsageTimeInMs=*/ 5,
-                /*screenOnTimeInMs=*/ 0);
+                resultDiffData.getAppDiffEntryList().get(0),
+                currentUserId,
+                /* uid= */ 4L,
+                ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                /* consumePercentage= */ 66.66666666666666,
+                /* foregroundUsageConsumePower= */ 8,
+                /* foregroundServiceUsageConsumePower= */ 8,
+                /* backgroundUsageConsumePower= */ 8,
+                /* cachedUsageConsumePower= */ 8,
+                /* foregroundUsageTimeInMs= */ 5,
+                /* backgroundUsageTimeInMs= */ 5,
+                /* screenOnTimeInMs= */ 0);
         assertBatteryDiffEntry(
-                resultDiffData.getAppDiffEntryList().get(1), currentUserId, /*uid=*/ 2L,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 33.33333333333333,
-                /*foregroundUsageConsumePower=*/ 9, /*foregroundServiceUsageConsumePower=*/ 4,
-                /*backgroundUsageConsumePower=*/ 4, /*cachedUsageConsumePower=*/ 3,
-                /*foregroundUsageTimeInMs=*/ 15, /*backgroundUsageTimeInMs=*/ 15,
-                /*screenOnTimeInMs=*/ 7);
+                resultDiffData.getAppDiffEntryList().get(1),
+                currentUserId,
+                /* uid= */ 2L,
+                ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                /* consumePercentage= */ 33.33333333333333,
+                /* foregroundUsageConsumePower= */ 9,
+                /* foregroundServiceUsageConsumePower= */ 4,
+                /* backgroundUsageConsumePower= */ 4,
+                /* cachedUsageConsumePower= */ 3,
+                /* foregroundUsageTimeInMs= */ 15,
+                /* backgroundUsageTimeInMs= */ 15,
+                /* screenOnTimeInMs= */ 7);
         assertBatteryDiffEntry(
-                resultDiffData.getSystemDiffEntryList().get(0), currentUserId, /*uid=*/ 3L,
-                ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY, /*consumePercentage=*/ 100.0,
-                /*foregroundUsageConsumePower=*/ 5, /*foregroundServiceUsageConsumePower=*/ 5,
-                /*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5,
-                /*foregroundUsageTimeInMs=*/ 16, /*backgroundUsageTimeInMs=*/ 60,
-                /*screenOnTimeInMs=*/ 9);
+                resultDiffData.getSystemDiffEntryList().get(0),
+                currentUserId,
+                /* uid= */ 3L,
+                ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY,
+                /* consumePercentage= */ 100.0,
+                /* foregroundUsageConsumePower= */ 5,
+                /* foregroundServiceUsageConsumePower= */ 5,
+                /* backgroundUsageConsumePower= */ 5,
+                /* cachedUsageConsumePower= */ 5,
+                /* foregroundUsageTimeInMs= */ 16,
+                /* backgroundUsageTimeInMs= */ 60,
+                /* screenOnTimeInMs= */ 9);
     }
 
     @Test
     public void generateBatteryUsageMap_multipleUsers_returnsExpectedResult() {
-        final long[] batteryHistoryKeys = new long[]{
-                1641052800000L, // 2022-01-02 00:00:00
-                1641056400000L, // 2022-01-02 01:00:00
-                1641060000000L  // 2022-01-02 02:00:00
-        };
+        final long[] batteryHistoryKeys =
+                new long[] {
+                    1641052800000L, // 2022-01-02 00:00:00
+                    1641056400000L, // 2022-01-02 01:00:00
+                    1641060000000L // 2022-01-02 02:00:00
+                };
         final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap = new HashMap<>();
         final int currentUserId = mContext.getUserId();
         // Adds the index = 0 data.
         Map<String, BatteryHistEntry> entryMap = new HashMap<>();
-        BatteryHistEntry entry = createBatteryHistEntry(
-                "package1", "label1", /*consumePower=*/ 5.0,
-                /*foregroundUsageConsumePower=*/ 5, /*foregroundServiceUsageConsumePower=*/ 0,
-                /*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
-                /*uid=*/ 1L, currentUserId,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 10L,
-                /*backgroundUsageTimeInMs=*/ 20L, /*isHidden=*/ false);
+        BatteryHistEntry entry =
+                createBatteryHistEntry(
+                        "package1",
+                        "label1",
+                        /* consumePower= */ 5.0,
+                        /* foregroundUsageConsumePower= */ 5,
+                        /* foregroundServiceUsageConsumePower= */ 0,
+                        /* backgroundUsageConsumePower= */ 0,
+                        /* cachedUsageConsumePower= */ 0,
+                        /* uid= */ 1L,
+                        currentUserId,
+                        ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 10L,
+                        /* backgroundUsageTimeInMs= */ 20L,
+                        /* isHidden= */ false);
         entryMap.put(entry.getKey(), entry);
-        entry = createBatteryHistEntry(
-                "package1", "label1", /*consumePower=*/ 10.0,
-                /*foregroundUsageConsumePower=*/ 7, /*foregroundServiceUsageConsumePower=*/ 1,
-                /*backgroundUsageConsumePower=*/ 1, /*cachedUsageConsumePower=*/ 1,
-                /*uid=*/ 2L, currentUserId + 1,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 10L,
-                /*backgroundUsageTimeInMs=*/ 20L, /*isHidden=*/ false);
+        entry =
+                createBatteryHistEntry(
+                        "package1",
+                        "label1",
+                        /* consumePower= */ 10.0,
+                        /* foregroundUsageConsumePower= */ 7,
+                        /* foregroundServiceUsageConsumePower= */ 1,
+                        /* backgroundUsageConsumePower= */ 1,
+                        /* cachedUsageConsumePower= */ 1,
+                        /* uid= */ 2L,
+                        currentUserId + 1,
+                        ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 10L,
+                        /* backgroundUsageTimeInMs= */ 20L,
+                        /* isHidden= */ false);
         entryMap.put(entry.getKey(), entry);
-        entry = createBatteryHistEntry(
-                "package2", "label2", /*consumePower=*/ 5.0,
-                /*foregroundUsageConsumePower=*/ 5, /*foregroundServiceUsageConsumePower=*/ 0,
-                /*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
-                /*uid=*/ 3L, currentUserId + 2,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 20L,
-                /*backgroundUsageTimeInMs=*/ 30L, /*isHidden=*/ false);
+        entry =
+                createBatteryHistEntry(
+                        "package2",
+                        "label2",
+                        /* consumePower= */ 5.0,
+                        /* foregroundUsageConsumePower= */ 5,
+                        /* foregroundServiceUsageConsumePower= */ 0,
+                        /* backgroundUsageConsumePower= */ 0,
+                        /* cachedUsageConsumePower= */ 0,
+                        /* uid= */ 3L,
+                        currentUserId + 2,
+                        ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 20L,
+                        /* backgroundUsageTimeInMs= */ 30L,
+                        /* isHidden= */ false);
         entryMap.put(entry.getKey(), entry);
         batteryHistoryMap.put(batteryHistoryKeys[0], entryMap);
         // Adds the index = 1 data.
         entryMap = new HashMap<>();
-        entry = createBatteryHistEntry(
-                "package1", "label1", /*consumePower=*/ 15.0,
-                /*foregroundUsageConsumePower=*/ 9, /*foregroundServiceUsageConsumePower=*/ 2,
-                /*backgroundUsageConsumePower=*/ 2, /*cachedUsageConsumePower=*/ 2,
-                /*uid=*/ 1L, currentUserId,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 20L,
-                /*backgroundUsageTimeInMs=*/ 30L, /*isHidden=*/ false);
+        entry =
+                createBatteryHistEntry(
+                        "package1",
+                        "label1",
+                        /* consumePower= */ 15.0,
+                        /* foregroundUsageConsumePower= */ 9,
+                        /* foregroundServiceUsageConsumePower= */ 2,
+                        /* backgroundUsageConsumePower= */ 2,
+                        /* cachedUsageConsumePower= */ 2,
+                        /* uid= */ 1L,
+                        currentUserId,
+                        ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 20L,
+                        /* backgroundUsageTimeInMs= */ 30L,
+                        /* isHidden= */ false);
         entryMap.put(entry.getKey(), entry);
-        entry = createBatteryHistEntry(
-                "package1", "label1", /*consumePower=*/ 30.0,
-                /*foregroundUsageConsumePower=*/ 20, /*foregroundServiceUsageConsumePower=*/ 6,
-                /*backgroundUsageConsumePower=*/ 2, /*cachedUsageConsumePower=*/ 2,
-                /*uid=*/ 2L, currentUserId + 1,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 10L,
-                /*backgroundUsageTimeInMs=*/ 20L, /*isHidden=*/ false);
+        entry =
+                createBatteryHistEntry(
+                        "package1",
+                        "label1",
+                        /* consumePower= */ 30.0,
+                        /* foregroundUsageConsumePower= */ 20,
+                        /* foregroundServiceUsageConsumePower= */ 6,
+                        /* backgroundUsageConsumePower= */ 2,
+                        /* cachedUsageConsumePower= */ 2,
+                        /* uid= */ 2L,
+                        currentUserId + 1,
+                        ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 10L,
+                        /* backgroundUsageTimeInMs= */ 20L,
+                        /* isHidden= */ false);
         entryMap.put(entry.getKey(), entry);
-        entry = createBatteryHistEntry(
-                "package2", "label2", /*consumePower=*/ 15.0,
-                /*foregroundUsageConsumePower=*/ 10, /*foregroundServiceUsageConsumePower=*/ 5,
-                /*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
-                /*uid=*/ 3L, currentUserId + 2,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 30L,
-                /*backgroundUsageTimeInMs=*/ 30L, /*isHidden=*/ false);
+        entry =
+                createBatteryHistEntry(
+                        "package2",
+                        "label2",
+                        /* consumePower= */ 15.0,
+                        /* foregroundUsageConsumePower= */ 10,
+                        /* foregroundServiceUsageConsumePower= */ 5,
+                        /* backgroundUsageConsumePower= */ 0,
+                        /* cachedUsageConsumePower= */ 0,
+                        /* uid= */ 3L,
+                        currentUserId + 2,
+                        ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 30L,
+                        /* backgroundUsageTimeInMs= */ 30L,
+                        /* isHidden= */ false);
         entryMap.put(entry.getKey(), entry);
         batteryHistoryMap.put(batteryHistoryKeys[1], entryMap);
         // Adds the index = 2 data.
         entryMap = new HashMap<>();
-        entry = createBatteryHistEntry(
-                "package1", "label1", /*consumePower=*/ 25.0,
-                /*foregroundUsageConsumePower=*/ 10, /*foregroundServiceUsageConsumePower=*/ 5,
-                /*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5,
-                /*uid=*/ 1L, currentUserId,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 20L,
-                /*backgroundUsageTimeInMs=*/ 30L, /*isHidden=*/ false);
+        entry =
+                createBatteryHistEntry(
+                        "package1",
+                        "label1",
+                        /* consumePower= */ 25.0,
+                        /* foregroundUsageConsumePower= */ 10,
+                        /* foregroundServiceUsageConsumePower= */ 5,
+                        /* backgroundUsageConsumePower= */ 5,
+                        /* cachedUsageConsumePower= */ 5,
+                        /* uid= */ 1L,
+                        currentUserId,
+                        ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 20L,
+                        /* backgroundUsageTimeInMs= */ 30L,
+                        /* isHidden= */ false);
         entryMap.put(entry.getKey(), entry);
-        entry = createBatteryHistEntry(
-                "package1", "label1", /*consumePower=*/ 50.0,
-                /*foregroundUsageConsumePower=*/ 20, /*foregroundServiceUsageConsumePower=*/ 10,
-                /*backgroundUsageConsumePower=*/ 10, /*cachedUsageConsumePower=*/ 10,
-                /*uid=*/ 2L, currentUserId + 1,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 20L,
-                /*backgroundUsageTimeInMs=*/ 20L, /*isHidden=*/ false);
+        entry =
+                createBatteryHistEntry(
+                        "package1",
+                        "label1",
+                        /* consumePower= */ 50.0,
+                        /* foregroundUsageConsumePower= */ 20,
+                        /* foregroundServiceUsageConsumePower= */ 10,
+                        /* backgroundUsageConsumePower= */ 10,
+                        /* cachedUsageConsumePower= */ 10,
+                        /* uid= */ 2L,
+                        currentUserId + 1,
+                        ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 20L,
+                        /* backgroundUsageTimeInMs= */ 20L,
+                        /* isHidden= */ false);
         entryMap.put(entry.getKey(), entry);
-        entry = createBatteryHistEntry(
-                "package2", "label2", /*consumePower=*/ 25.0,
-                /*foregroundUsageConsumePower=*/ 10, /*foregroundServiceUsageConsumePower=*/ 10,
-                /*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 0,
-                /*uid=*/ 3L, currentUserId + 2,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 30L,
-                /*backgroundUsageTimeInMs=*/ 30L, /*isHidden=*/ false);
+        entry =
+                createBatteryHistEntry(
+                        "package2",
+                        "label2",
+                        /* consumePower= */ 25.0,
+                        /* foregroundUsageConsumePower= */ 10,
+                        /* foregroundServiceUsageConsumePower= */ 10,
+                        /* backgroundUsageConsumePower= */ 5,
+                        /* cachedUsageConsumePower= */ 0,
+                        /* uid= */ 3L,
+                        currentUserId + 2,
+                        ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 30L,
+                        /* backgroundUsageTimeInMs= */ 30L,
+                        /* isHidden= */ false);
         entryMap.put(entry.getKey(), entry);
         batteryHistoryMap.put(batteryHistoryKeys[2], entryMap);
         final BatteryLevelData batteryLevelData = generateBatteryLevelData(batteryHistoryKeys);
@@ -1105,9 +1429,13 @@
         final Map<Integer, Map<Integer, BatteryDiffData>> resultMap =
                 DataProcessor.generateBatteryUsageMap(
                         mContext,
-                        DataProcessor.getBatteryDiffDataMap(mContext,
-                                batteryLevelData.getHourlyBatteryLevelsPerDay(), batteryHistoryMap,
-                                /*appUsagePeriodMap=*/ null, Set.of(), Set.of()),
+                        DataProcessor.getBatteryDiffDataMap(
+                                mContext,
+                                batteryLevelData.getHourlyBatteryLevelsPerDay(),
+                                batteryHistoryMap,
+                                /* appUsagePeriodMap= */ null,
+                                Set.of(),
+                                Set.of()),
                         batteryLevelData);
 
         final BatteryDiffData resultDiffData =
@@ -1116,12 +1444,18 @@
                         .get(DataProcessor.SELECTED_INDEX_ALL);
         assertThat(resultDiffData.getScreenOnTime()).isEqualTo(0L);
         assertBatteryDiffEntry(
-                resultDiffData.getAppDiffEntryList().get(0), currentUserId, /*uid=*/ 1L,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 100.0,
-                /*foregroundUsageConsumePower=*/ 5, /*foregroundServiceUsageConsumePower=*/ 5,
-                /*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5,
-                /*foregroundUsageTimeInMs=*/ 10, /*backgroundUsageTimeInMs=*/ 10,
-                /*screenOnTimeInMs=*/ 0);
+                resultDiffData.getAppDiffEntryList().get(0),
+                currentUserId,
+                /* uid= */ 1L,
+                ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                /* consumePercentage= */ 100.0,
+                /* foregroundUsageConsumePower= */ 5,
+                /* foregroundServiceUsageConsumePower= */ 5,
+                /* backgroundUsageConsumePower= */ 5,
+                /* cachedUsageConsumePower= */ 5,
+                /* foregroundUsageTimeInMs= */ 10,
+                /* backgroundUsageTimeInMs= */ 10,
+                /* screenOnTimeInMs= */ 0);
         assertThat(resultDiffData.getSystemDiffEntryList()).isEmpty();
         assertThat(resultMap.get(0).get(0)).isNotNull();
         assertThat(resultMap.get(0).get(DataProcessor.SELECTED_INDEX_ALL)).isNotNull();
@@ -1129,44 +1463,69 @@
 
     @Test
     public void generateBatteryUsageMap_usageTimeExceed_returnsExpectedResult() {
-        final long[] batteryHistoryKeys = new long[]{
-                1641052800000L, // 2022-01-02 00:00:00
-                1641056400000L, // 2022-01-02 01:00:00
-                1641060000000L  // 2022-01-02 02:00:00
-        };
+        final long[] batteryHistoryKeys =
+                new long[] {
+                    1641052800000L, // 2022-01-02 00:00:00
+                    1641056400000L, // 2022-01-02 01:00:00
+                    1641060000000L // 2022-01-02 02:00:00
+                };
         final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap = new HashMap<>();
         final int currentUserId = mContext.getUserId();
         // Adds the index = 0 data.
         Map<String, BatteryHistEntry> entryMap = new HashMap<>();
-        BatteryHistEntry entry = createBatteryHistEntry(
-                "package1", "label1", /*consumePower=*/ 0,
-                /*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
-                /*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
-                /*uid=*/ 1L, currentUserId,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 0L,
-                /*backgroundUsageTimeInMs=*/ 0L, /*isHidden=*/ false);
+        BatteryHistEntry entry =
+                createBatteryHistEntry(
+                        "package1",
+                        "label1",
+                        /* consumePower= */ 0,
+                        /* foregroundUsageConsumePower= */ 0,
+                        /* foregroundServiceUsageConsumePower= */ 0,
+                        /* backgroundUsageConsumePower= */ 0,
+                        /* cachedUsageConsumePower= */ 0,
+                        /* uid= */ 1L,
+                        currentUserId,
+                        ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 0L,
+                        /* backgroundUsageTimeInMs= */ 0L,
+                        /* isHidden= */ false);
         entryMap.put(entry.getKey(), entry);
         batteryHistoryMap.put(batteryHistoryKeys[0], entryMap);
         // Adds the index = 1 data.
         entryMap = new HashMap<>();
-        entry = createBatteryHistEntry(
-                "package1", "label1", /*consumePower=*/ 0,
-                /*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
-                /*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
-                /*uid=*/ 1L, currentUserId,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 0L,
-                /*backgroundUsageTimeInMs=*/ 0L, /*isHidden=*/ false);
+        entry =
+                createBatteryHistEntry(
+                        "package1",
+                        "label1",
+                        /* consumePower= */ 0,
+                        /* foregroundUsageConsumePower= */ 0,
+                        /* foregroundServiceUsageConsumePower= */ 0,
+                        /* backgroundUsageConsumePower= */ 0,
+                        /* cachedUsageConsumePower= */ 0,
+                        /* uid= */ 1L,
+                        currentUserId,
+                        ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 0L,
+                        /* backgroundUsageTimeInMs= */ 0L,
+                        /* isHidden= */ false);
         entryMap.put(entry.getKey(), entry);
         batteryHistoryMap.put(batteryHistoryKeys[1], entryMap);
         // Adds the index = 2 data.
         entryMap = new HashMap<>();
-        entry = createBatteryHistEntry(
-                "package1", "label1", /*consumePower=*/ 500.0,
-                /*foregroundUsageConsumePower=*/ 200, /*foregroundServiceUsageConsumePower=*/ 100,
-                /*backgroundUsageConsumePower=*/ 100, /*cachedUsageConsumePower=*/ 100,
-                /*uid=*/ 1L, currentUserId,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 3600000L,
-                /*backgroundUsageTimeInMs=*/ 7200000L, /*isHidden=*/ false);
+        entry =
+                createBatteryHistEntry(
+                        "package1",
+                        "label1",
+                        /* consumePower= */ 500.0,
+                        /* foregroundUsageConsumePower= */ 200,
+                        /* foregroundServiceUsageConsumePower= */ 100,
+                        /* backgroundUsageConsumePower= */ 100,
+                        /* cachedUsageConsumePower= */ 100,
+                        /* uid= */ 1L,
+                        currentUserId,
+                        ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 3600000L,
+                        /* backgroundUsageTimeInMs= */ 7200000L,
+                        /* isHidden= */ false);
         entryMap.put(entry.getKey(), entry);
         batteryHistoryMap.put(batteryHistoryKeys[2], entryMap);
         final BatteryLevelData batteryLevelData = generateBatteryLevelData(batteryHistoryKeys);
@@ -1185,9 +1544,13 @@
         final Map<Integer, Map<Integer, BatteryDiffData>> resultMap =
                 DataProcessor.generateBatteryUsageMap(
                         mContext,
-                        DataProcessor.getBatteryDiffDataMap(mContext,
-                                batteryLevelData.getHourlyBatteryLevelsPerDay(), batteryHistoryMap,
-                                appUsagePeriodMap, Set.of(), Set.of()),
+                        DataProcessor.getBatteryDiffDataMap(
+                                mContext,
+                                batteryLevelData.getHourlyBatteryLevelsPerDay(),
+                                batteryHistoryMap,
+                                appUsagePeriodMap,
+                                Set.of(),
+                                Set.of()),
                         batteryLevelData);
 
         final BatteryDiffData resultDiffData =
@@ -1200,10 +1563,8 @@
         final BatteryDiffEntry resultEntry = resultDiffData.getAppDiffEntryList().get(0);
         assertThat(resultEntry.mForegroundUsageTimeInMs)
                 .isEqualTo(Math.round(entry.mForegroundUsageTimeInMs * ratio));
-        assertThat(resultEntry.mBackgroundUsageTimeInMs)
-                .isEqualTo(0);
-        assertThat(resultEntry.mConsumePower)
-                .isEqualTo(entry.mConsumePower * ratio);
+        assertThat(resultEntry.mBackgroundUsageTimeInMs).isEqualTo(0);
+        assertThat(resultEntry.mConsumePower).isEqualTo(entry.mConsumePower * ratio);
         assertThat(resultEntry.mForegroundUsageConsumePower)
                 .isEqualTo(entry.mForegroundUsageConsumePower * ratio);
         assertThat(resultEntry.mForegroundServiceUsageConsumePower)
@@ -1219,80 +1580,132 @@
 
     @Test
     public void generateBatteryUsageMap_hideApplicationEntries_returnsExpectedResult() {
-        final long[] batteryHistoryKeys = new long[]{
-                1641052800000L, // 2022-01-02 00:00:00
-                1641056400000L, // 2022-01-02 01:00:00
-                1641060000000L  // 2022-01-02 02:00:00
-        };
+        final long[] batteryHistoryKeys =
+                new long[] {
+                    1641052800000L, // 2022-01-02 00:00:00
+                    1641056400000L, // 2022-01-02 01:00:00
+                    1641060000000L // 2022-01-02 02:00:00
+                };
         final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap = new HashMap<>();
         final int currentUserId = mContext.getUserId();
         // Adds the index = 0 data.
         Map<String, BatteryHistEntry> entryMap = new HashMap<>();
-        BatteryHistEntry entry = createBatteryHistEntry(
-                "package1", "label1", /*consumePower=*/ 0,
-                /*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
-                /*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
-                /*uid=*/ 1L, currentUserId,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 0L,
-                /*backgroundUsageTimeInMs=*/ 0L, /*isHidden=*/ false);
+        BatteryHistEntry entry =
+                createBatteryHistEntry(
+                        "package1",
+                        "label1",
+                        /* consumePower= */ 0,
+                        /* foregroundUsageConsumePower= */ 0,
+                        /* foregroundServiceUsageConsumePower= */ 0,
+                        /* backgroundUsageConsumePower= */ 0,
+                        /* cachedUsageConsumePower= */ 0,
+                        /* uid= */ 1L,
+                        currentUserId,
+                        ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 0L,
+                        /* backgroundUsageTimeInMs= */ 0L,
+                        /* isHidden= */ false);
         entryMap.put(entry.getKey(), entry);
-        entry = createBatteryHistEntry(
-                "package2", "label2", /*consumePower=*/ 0,
-                /*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
-                /*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
-                /*uid=*/ 2L, currentUserId,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 0L,
-                /*backgroundUsageTimeInMs=*/ 0L, /*isHidden=*/ false);
+        entry =
+                createBatteryHistEntry(
+                        "package2",
+                        "label2",
+                        /* consumePower= */ 0,
+                        /* foregroundUsageConsumePower= */ 0,
+                        /* foregroundServiceUsageConsumePower= */ 0,
+                        /* backgroundUsageConsumePower= */ 0,
+                        /* cachedUsageConsumePower= */ 0,
+                        /* uid= */ 2L,
+                        currentUserId,
+                        ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 0L,
+                        /* backgroundUsageTimeInMs= */ 0L,
+                        /* isHidden= */ false);
         entryMap.put(entry.getKey(), entry);
         batteryHistoryMap.put(batteryHistoryKeys[0], entryMap);
         // Adds the index = 1 data.
         entryMap = new HashMap<>();
-        entry = createBatteryHistEntry(
-                "package1", "label1", /*consumePower=*/ 0,
-                /*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
-                /*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
-                /*uid=*/ 1L, currentUserId,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 0L,
-                /*backgroundUsageTimeInMs=*/ 0L, /*isHidden=*/ false);
+        entry =
+                createBatteryHistEntry(
+                        "package1",
+                        "label1",
+                        /* consumePower= */ 0,
+                        /* foregroundUsageConsumePower= */ 0,
+                        /* foregroundServiceUsageConsumePower= */ 0,
+                        /* backgroundUsageConsumePower= */ 0,
+                        /* cachedUsageConsumePower= */ 0,
+                        /* uid= */ 1L,
+                        currentUserId,
+                        ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 0L,
+                        /* backgroundUsageTimeInMs= */ 0L,
+                        /* isHidden= */ false);
         entryMap.put(entry.getKey(), entry);
-        entry = createBatteryHistEntry(
-                "package2", "label2", /*consumePower=*/ 0,
-                /*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
-                /*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
-                /*uid=*/ 2L, currentUserId,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 0L,
-                /*backgroundUsageTimeInMs=*/ 0L, /*isHidden=*/ false);
+        entry =
+                createBatteryHistEntry(
+                        "package2",
+                        "label2",
+                        /* consumePower= */ 0,
+                        /* foregroundUsageConsumePower= */ 0,
+                        /* foregroundServiceUsageConsumePower= */ 0,
+                        /* backgroundUsageConsumePower= */ 0,
+                        /* cachedUsageConsumePower= */ 0,
+                        /* uid= */ 2L,
+                        currentUserId,
+                        ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 0L,
+                        /* backgroundUsageTimeInMs= */ 0L,
+                        /* isHidden= */ false);
         entryMap.put(entry.getKey(), entry);
         batteryHistoryMap.put(batteryHistoryKeys[1], entryMap);
         // Adds the index = 2 data.
         entryMap = new HashMap<>();
-        entry = createBatteryHistEntry(
-                "package1", "label1", /*consumePower=*/ 10.0,
-                /*foregroundUsageConsumePower=*/ 5, /*foregroundServiceUsageConsumePower=*/ 5,
-                /*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
-                /*uid=*/ 1L, currentUserId,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 10L,
-                /*backgroundUsageTimeInMs=*/ 20L, /*isHidden=*/ false);
+        entry =
+                createBatteryHistEntry(
+                        "package1",
+                        "label1",
+                        /* consumePower= */ 10.0,
+                        /* foregroundUsageConsumePower= */ 5,
+                        /* foregroundServiceUsageConsumePower= */ 5,
+                        /* backgroundUsageConsumePower= */ 0,
+                        /* cachedUsageConsumePower= */ 0,
+                        /* uid= */ 1L,
+                        currentUserId,
+                        ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 10L,
+                        /* backgroundUsageTimeInMs= */ 20L,
+                        /* isHidden= */ false);
         entryMap.put(entry.getKey(), entry);
-        entry = createBatteryHistEntry(
-                "package2", "label2", /*consumePower=*/ 10.0,
-                /*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
-                /*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5,
-                /*uid=*/ 2L, currentUserId,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 10L,
-                /*backgroundUsageTimeInMs=*/ 20L, /*isHidden=*/ false);
+        entry =
+                createBatteryHistEntry(
+                        "package2",
+                        "label2",
+                        /* consumePower= */ 10.0,
+                        /* foregroundUsageConsumePower= */ 0,
+                        /* foregroundServiceUsageConsumePower= */ 0,
+                        /* backgroundUsageConsumePower= */ 5,
+                        /* cachedUsageConsumePower= */ 5,
+                        /* uid= */ 2L,
+                        currentUserId,
+                        ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 10L,
+                        /* backgroundUsageTimeInMs= */ 20L,
+                        /* isHidden= */ false);
         entryMap.put(entry.getKey(), entry);
         batteryHistoryMap.put(batteryHistoryKeys[2], entryMap);
         final BatteryLevelData batteryLevelData = generateBatteryLevelData(batteryHistoryKeys);
-        when(mPowerUsageFeatureProvider.getHideApplicationSet())
-                .thenReturn(Set.of("package1"));
+        when(mPowerUsageFeatureProvider.getHideApplicationSet()).thenReturn(Set.of("package1"));
 
         final Map<Integer, Map<Integer, BatteryDiffData>> resultMap =
                 DataProcessor.generateBatteryUsageMap(
                         mContext,
-                        DataProcessor.getBatteryDiffDataMap(mContext,
-                                batteryLevelData.getHourlyBatteryLevelsPerDay(), batteryHistoryMap,
-                                /*appUsagePeriodMap=*/ null, Set.of(), Set.of()),
+                        DataProcessor.getBatteryDiffDataMap(
+                                mContext,
+                                batteryLevelData.getHourlyBatteryLevelsPerDay(),
+                                batteryHistoryMap,
+                                /* appUsagePeriodMap= */ null,
+                                Set.of(),
+                                Set.of()),
                         batteryLevelData);
 
         final BatteryDiffData resultDiffData =
@@ -1300,78 +1713,133 @@
                         .get(DataProcessor.SELECTED_INDEX_ALL)
                         .get(DataProcessor.SELECTED_INDEX_ALL);
         assertBatteryDiffEntry(
-                resultDiffData.getAppDiffEntryList().get(0), currentUserId, /*uid=*/ 2L,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 100.0,
-                /*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
-                /*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5,
-                /*foregroundUsageTimeInMs=*/ 10, /*backgroundUsageTimeInMs=*/ 20,
-                /*screenOnTimeInMs=*/ 0);
+                resultDiffData.getAppDiffEntryList().get(0),
+                currentUserId,
+                /* uid= */ 2L,
+                ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                /* consumePercentage= */ 100.0,
+                /* foregroundUsageConsumePower= */ 0,
+                /* foregroundServiceUsageConsumePower= */ 0,
+                /* backgroundUsageConsumePower= */ 5,
+                /* cachedUsageConsumePower= */ 5,
+                /* foregroundUsageTimeInMs= */ 10,
+                /* backgroundUsageTimeInMs= */ 20,
+                /* screenOnTimeInMs= */ 0);
     }
 
     @Test
     public void generateBatteryUsageMap_hideBackgroundUsageTime_returnsExpectedResult() {
-        final long[] batteryHistoryKeys = new long[]{
-                1641052800000L, // 2022-01-02 00:00:00
-                1641056400000L, // 2022-01-02 01:00:00
-                1641060000000L  // 2022-01-02 02:00:00
-        };
+        final long[] batteryHistoryKeys =
+                new long[] {
+                    1641052800000L, // 2022-01-02 00:00:00
+                    1641056400000L, // 2022-01-02 01:00:00
+                    1641060000000L // 2022-01-02 02:00:00
+                };
         final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap = new HashMap<>();
         final int currentUserId = mContext.getUserId();
         // Adds the index = 0 data.
         Map<String, BatteryHistEntry> entryMap = new HashMap<>();
-        BatteryHistEntry entry = createBatteryHistEntry(
-                "package1", "label1", /*consumePower=*/ 0,
-                /*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
-                /*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
-                /*uid=*/ 1L, currentUserId,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 0L,
-                /*backgroundUsageTimeInMs=*/ 0L, /*isHidden=*/ false);
+        BatteryHistEntry entry =
+                createBatteryHistEntry(
+                        "package1",
+                        "label1",
+                        /* consumePower= */ 0,
+                        /* foregroundUsageConsumePower= */ 0,
+                        /* foregroundServiceUsageConsumePower= */ 0,
+                        /* backgroundUsageConsumePower= */ 0,
+                        /* cachedUsageConsumePower= */ 0,
+                        /* uid= */ 1L,
+                        currentUserId,
+                        ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 0L,
+                        /* backgroundUsageTimeInMs= */ 0L,
+                        /* isHidden= */ false);
         entryMap.put(entry.getKey(), entry);
-        entry = createBatteryHistEntry(
-                "package2", "label2", /*consumePower=*/ 0,
-                /*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
-                /*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
-                /*uid=*/ 2L, currentUserId,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 0L,
-                /*backgroundUsageTimeInMs=*/ 0L, /*isHidden=*/ false);
+        entry =
+                createBatteryHistEntry(
+                        "package2",
+                        "label2",
+                        /* consumePower= */ 0,
+                        /* foregroundUsageConsumePower= */ 0,
+                        /* foregroundServiceUsageConsumePower= */ 0,
+                        /* backgroundUsageConsumePower= */ 0,
+                        /* cachedUsageConsumePower= */ 0,
+                        /* uid= */ 2L,
+                        currentUserId,
+                        ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 0L,
+                        /* backgroundUsageTimeInMs= */ 0L,
+                        /* isHidden= */ false);
         entryMap.put(entry.getKey(), entry);
         batteryHistoryMap.put(batteryHistoryKeys[0], entryMap);
         // Adds the index = 1 data.
         entryMap = new HashMap<>();
-        entry = createBatteryHistEntry(
-                "package1", "label1", /*consumePower=*/ 0,
-                /*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
-                /*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
-                /*uid=*/ 1L, currentUserId,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 0L,
-                /*backgroundUsageTimeInMs=*/ 0L, /*isHidden=*/ false);
+        entry =
+                createBatteryHistEntry(
+                        "package1",
+                        "label1",
+                        /* consumePower= */ 0,
+                        /* foregroundUsageConsumePower= */ 0,
+                        /* foregroundServiceUsageConsumePower= */ 0,
+                        /* backgroundUsageConsumePower= */ 0,
+                        /* cachedUsageConsumePower= */ 0,
+                        /* uid= */ 1L,
+                        currentUserId,
+                        ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 0L,
+                        /* backgroundUsageTimeInMs= */ 0L,
+                        /* isHidden= */ false);
         entryMap.put(entry.getKey(), entry);
-        entry = createBatteryHistEntry(
-                "package2", "label2", /*consumePower=*/ 0,
-                /*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
-                /*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
-                /*uid=*/ 2L, currentUserId,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 0L,
-                /*backgroundUsageTimeInMs=*/ 0L, /*isHidden=*/ false);
+        entry =
+                createBatteryHistEntry(
+                        "package2",
+                        "label2",
+                        /* consumePower= */ 0,
+                        /* foregroundUsageConsumePower= */ 0,
+                        /* foregroundServiceUsageConsumePower= */ 0,
+                        /* backgroundUsageConsumePower= */ 0,
+                        /* cachedUsageConsumePower= */ 0,
+                        /* uid= */ 2L,
+                        currentUserId,
+                        ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 0L,
+                        /* backgroundUsageTimeInMs= */ 0L,
+                        /* isHidden= */ false);
         entryMap.put(entry.getKey(), entry);
         batteryHistoryMap.put(batteryHistoryKeys[1], entryMap);
         // Adds the index = 2 data.
         entryMap = new HashMap<>();
-        entry = createBatteryHistEntry(
-                "package1", "label1", /*consumePower=*/ 10.0,
-                /*foregroundUsageConsumePower=*/ 5, /*foregroundServiceUsageConsumePower=*/ 5,
-                /*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
-                /*uid=*/ 1L, currentUserId,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 10L,
-                /*backgroundUsageTimeInMs=*/ 20L, /*isHidden=*/ false);
+        entry =
+                createBatteryHistEntry(
+                        "package1",
+                        "label1",
+                        /* consumePower= */ 10.0,
+                        /* foregroundUsageConsumePower= */ 5,
+                        /* foregroundServiceUsageConsumePower= */ 5,
+                        /* backgroundUsageConsumePower= */ 0,
+                        /* cachedUsageConsumePower= */ 0,
+                        /* uid= */ 1L,
+                        currentUserId,
+                        ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 10L,
+                        /* backgroundUsageTimeInMs= */ 20L,
+                        /* isHidden= */ false);
         entryMap.put(entry.getKey(), entry);
-        entry = createBatteryHistEntry(
-                "package2", "label2", /*consumePower=*/ 10.0,
-                /*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
-                /*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5,
-                /*uid=*/ 2L, currentUserId,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*foregroundUsageTimeInMs=*/ 10L,
-                /*backgroundUsageTimeInMs=*/ 20L, /*isHidden=*/ false);
+        entry =
+                createBatteryHistEntry(
+                        "package2",
+                        "label2",
+                        /* consumePower= */ 10.0,
+                        /* foregroundUsageConsumePower= */ 0,
+                        /* foregroundServiceUsageConsumePower= */ 0,
+                        /* backgroundUsageConsumePower= */ 5,
+                        /* cachedUsageConsumePower= */ 5,
+                        /* uid= */ 2L,
+                        currentUserId,
+                        ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 10L,
+                        /* backgroundUsageTimeInMs= */ 20L,
+                        /* isHidden= */ false);
         entryMap.put(entry.getKey(), entry);
         batteryHistoryMap.put(batteryHistoryKeys[2], entryMap);
         final BatteryLevelData batteryLevelData = generateBatteryLevelData(batteryHistoryKeys);
@@ -1381,9 +1849,13 @@
         final Map<Integer, Map<Integer, BatteryDiffData>> resultMap =
                 DataProcessor.generateBatteryUsageMap(
                         mContext,
-                        DataProcessor.getBatteryDiffDataMap(mContext,
-                                batteryLevelData.getHourlyBatteryLevelsPerDay(), batteryHistoryMap,
-                                /*appUsagePeriodMap=*/ null, Set.of(), Set.of()),
+                        DataProcessor.getBatteryDiffDataMap(
+                                mContext,
+                                batteryLevelData.getHourlyBatteryLevelsPerDay(),
+                                batteryHistoryMap,
+                                /* appUsagePeriodMap= */ null,
+                                Set.of(),
+                                Set.of()),
                         batteryLevelData);
 
         final BatteryDiffData resultDiffData =
@@ -1397,12 +1869,16 @@
     }
 
     @Test
-    public void generateBatteryDiffData_emptyBatteryEntryList_returnNull() {
-        assertThat(DataProcessor.generateBatteryDiffData(mContext,
-                System.currentTimeMillis(),
-                DataProcessor.convertToBatteryHistEntry(null, mBatteryUsageStats),
-                /* systemAppsPackageNames= */ Set.of(),
-                /* systemAppsUids= */ Set.of())).isNull();
+    public void generateBatteryDiffData_emptyBatteryEntryList_returnEmptyBatteryDiffData() {
+        final BatteryDiffData batteryDiffData =
+                DataProcessor.generateBatteryDiffData(
+                        mContext,
+                        System.currentTimeMillis(),
+                        DataProcessor.convertToBatteryHistEntry(null, mBatteryUsageStats),
+                        /* systemAppsPackageNames= */ Set.of(),
+                        /* systemAppsUids= */ Set.of());
+        assertThat(batteryDiffData.getAppDiffEntryList()).isEmpty();
+        assertThat(batteryDiffData.getSystemDiffEntryList()).isEmpty();
     }
 
     @Test
@@ -1448,37 +1924,60 @@
         doReturn(10L).when(mMockBatteryEntry4).getTimeInBackgroundMs();
         doReturn(4).when(mMockBatteryEntry4).getUid();
         doReturn(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY)
-                .when(mMockBatteryEntry4).getConsumerType();
+                .when(mMockBatteryEntry4)
+                .getConsumerType();
         doReturn(BatteryConsumer.POWER_COMPONENT_CAMERA)
-                .when(mMockBatteryEntry4).getPowerComponentId();
+                .when(mMockBatteryEntry4)
+                .getPowerComponentId();
 
-        final BatteryDiffData batteryDiffData = DataProcessor.generateBatteryDiffData(mContext,
-                System.currentTimeMillis(),
-                DataProcessor.convertToBatteryHistEntry(batteryEntryList, mBatteryUsageStats),
-                /* systemAppsPackageNames= */ Set.of(),
-                /* systemAppsUids= */ Set.of());
+        final BatteryDiffData batteryDiffData =
+                DataProcessor.generateBatteryDiffData(
+                        mContext,
+                        System.currentTimeMillis(),
+                        DataProcessor.convertToBatteryHistEntry(
+                                batteryEntryList, mBatteryUsageStats),
+                        /* systemAppsPackageNames= */ Set.of(),
+                        /* systemAppsUids= */ Set.of());
 
         assertBatteryDiffEntry(
-                batteryDiffData.getAppDiffEntryList().get(0), 0, /*uid=*/ 2L,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 100.0,
-                /*foregroundUsageConsumePower=*/ 0.5, /*foregroundServiceUsageConsumePower=*/ 0,
-                /*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
-                /*foregroundUsageTimeInMs=*/ 20, /*backgroundUsageTimeInMs=*/ 20,
-                /*screenOnTimeInMs=*/ 0);
+                batteryDiffData.getAppDiffEntryList().get(0),
+                0,
+                /* uid= */ 2L,
+                ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                /* consumePercentage= */ 100.0,
+                /* foregroundUsageConsumePower= */ 0.5,
+                /* foregroundServiceUsageConsumePower= */ 0,
+                /* backgroundUsageConsumePower= */ 0,
+                /* cachedUsageConsumePower= */ 0,
+                /* foregroundUsageTimeInMs= */ 20,
+                /* backgroundUsageTimeInMs= */ 20,
+                /* screenOnTimeInMs= */ 0);
         assertBatteryDiffEntry(
-                batteryDiffData.getAppDiffEntryList().get(1), 0, /*uid=*/ 1L,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 0.0,
-                /*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
-                /*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
-                /*foregroundUsageTimeInMs=*/ 30, /*backgroundUsageTimeInMs=*/ 40,
-                /*screenOnTimeInMs=*/ 0);
+                batteryDiffData.getAppDiffEntryList().get(1),
+                0,
+                /* uid= */ 1L,
+                ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                /* consumePercentage= */ 0.0,
+                /* foregroundUsageConsumePower= */ 0,
+                /* foregroundServiceUsageConsumePower= */ 0,
+                /* backgroundUsageConsumePower= */ 0,
+                /* cachedUsageConsumePower= */ 0,
+                /* foregroundUsageTimeInMs= */ 30,
+                /* backgroundUsageTimeInMs= */ 40,
+                /* screenOnTimeInMs= */ 0);
         assertBatteryDiffEntry(
-                batteryDiffData.getSystemDiffEntryList().get(0), 0, /*uid=*/ 4L,
-                ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY, /*consumePercentage=*/ 100.0,
-                /*foregroundUsageConsumePower=*/ 0.9, /*foregroundServiceUsageConsumePower=*/ 0.2,
-                /*backgroundUsageConsumePower=*/ 0.3, /*cachedUsageConsumePower=*/ 0.1,
-                /*foregroundUsageTimeInMs=*/ 10, /*backgroundUsageTimeInMs=*/ 10,
-                /*screenOnTimeInMs=*/ 0);
+                batteryDiffData.getSystemDiffEntryList().get(0),
+                0,
+                /* uid= */ 4L,
+                ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY,
+                /* consumePercentage= */ 100.0,
+                /* foregroundUsageConsumePower= */ 0.9,
+                /* foregroundServiceUsageConsumePower= */ 0.2,
+                /* backgroundUsageConsumePower= */ 0.3,
+                /* cachedUsageConsumePower= */ 0.1,
+                /* foregroundUsageTimeInMs= */ 10,
+                /* backgroundUsageTimeInMs= */ 10,
+                /* screenOnTimeInMs= */ 0);
     }
 
     @Test
@@ -1487,43 +1986,91 @@
         final String packageName1 = "com.android.settings1";
         final String packageName2 = "com.android.settings2";
         // Fake multiple instances in one package.
-        appUsageEvents.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_RESUMED, /*timestamp=*/ 1, /*userId=*/ 1,
-                /*instanceId=*/ 2, packageName1));
-        appUsageEvents.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_STOPPED, /*timestamp=*/ 2, /*userId=*/ 1,
-                /*instanceId=*/ 2, packageName1));
-        appUsageEvents.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_RESUMED, /*timestamp=*/ 3, /*userId=*/ 1,
-                /*instanceId=*/ 2, packageName1));
-        appUsageEvents.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_STOPPED, /*timestamp=*/ 4, /*userId=*/ 1,
-                /*instanceId=*/ 2, packageName1));
-        appUsageEvents.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_RESUMED, /*timestamp=*/ 2, /*userId=*/ 1,
-                /*instanceId=*/ 3, packageName1));
-        appUsageEvents.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_STOPPED, /*timestamp=*/ 4, /*userId=*/ 1,
-                /*instanceId=*/ 3, packageName1));
-        appUsageEvents.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_RESUMED, /*timestamp=*/ 2, /*userId=*/ 1,
-                /*instanceId=*/ 5, packageName2));
-        appUsageEvents.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_STOPPED, /*timestamp=*/ 4, /*userId=*/ 1,
-                /*instanceId=*/ 5, packageName2));
+        appUsageEvents.add(
+                buildAppUsageEvent(
+                        AppUsageEventType.ACTIVITY_RESUMED,
+                        /* timestamp= */ 1,
+                        /* userId= */ 1,
+                        /* instanceId= */ 2,
+                        packageName1));
+        appUsageEvents.add(
+                buildAppUsageEvent(
+                        AppUsageEventType.ACTIVITY_STOPPED,
+                        /* timestamp= */ 2,
+                        /* userId= */ 1,
+                        /* instanceId= */ 2,
+                        packageName1));
+        appUsageEvents.add(
+                buildAppUsageEvent(
+                        AppUsageEventType.ACTIVITY_RESUMED,
+                        /* timestamp= */ 3,
+                        /* userId= */ 1,
+                        /* instanceId= */ 2,
+                        packageName1));
+        appUsageEvents.add(
+                buildAppUsageEvent(
+                        AppUsageEventType.ACTIVITY_STOPPED,
+                        /* timestamp= */ 4,
+                        /* userId= */ 1,
+                        /* instanceId= */ 2,
+                        packageName1));
+        appUsageEvents.add(
+                buildAppUsageEvent(
+                        AppUsageEventType.ACTIVITY_RESUMED,
+                        /* timestamp= */ 2,
+                        /* userId= */ 1,
+                        /* instanceId= */ 3,
+                        packageName1));
+        appUsageEvents.add(
+                buildAppUsageEvent(
+                        AppUsageEventType.ACTIVITY_STOPPED,
+                        /* timestamp= */ 4,
+                        /* userId= */ 1,
+                        /* instanceId= */ 3,
+                        packageName1));
+        appUsageEvents.add(
+                buildAppUsageEvent(
+                        AppUsageEventType.ACTIVITY_RESUMED,
+                        /* timestamp= */ 2,
+                        /* userId= */ 1,
+                        /* instanceId= */ 5,
+                        packageName2));
+        appUsageEvents.add(
+                buildAppUsageEvent(
+                        AppUsageEventType.ACTIVITY_STOPPED,
+                        /* timestamp= */ 4,
+                        /* userId= */ 1,
+                        /* instanceId= */ 5,
+                        packageName2));
         // Fake one instance in one package.
-        appUsageEvents.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_RESUMED, /*timestamp=*/ 1, /*userId=*/ 2,
-                /*instanceId=*/ 4, packageName2));
-        appUsageEvents.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_STOPPED, /*timestamp=*/ 2, /*userId=*/ 2,
-                /*instanceId=*/ 4, packageName2));
-        appUsageEvents.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_RESUMED, /*timestamp=*/ 3, /*userId=*/ 2,
-                /*instanceId=*/ 4, packageName2));
-        appUsageEvents.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_STOPPED, /*timestamp=*/ 4, /*userId=*/ 2,
-                /*instanceId=*/ 4, packageName2));
+        appUsageEvents.add(
+                buildAppUsageEvent(
+                        AppUsageEventType.ACTIVITY_RESUMED,
+                        /* timestamp= */ 1,
+                        /* userId= */ 2,
+                        /* instanceId= */ 4,
+                        packageName2));
+        appUsageEvents.add(
+                buildAppUsageEvent(
+                        AppUsageEventType.ACTIVITY_STOPPED,
+                        /* timestamp= */ 2,
+                        /* userId= */ 2,
+                        /* instanceId= */ 4,
+                        packageName2));
+        appUsageEvents.add(
+                buildAppUsageEvent(
+                        AppUsageEventType.ACTIVITY_RESUMED,
+                        /* timestamp= */ 3,
+                        /* userId= */ 2,
+                        /* instanceId= */ 4,
+                        packageName2));
+        appUsageEvents.add(
+                buildAppUsageEvent(
+                        AppUsageEventType.ACTIVITY_STOPPED,
+                        /* timestamp= */ 4,
+                        /* userId= */ 2,
+                        /* instanceId= */ 4,
+                        packageName2));
 
         final Map<Long, Map<String, List<AppUsagePeriod>>> appUsagePeriodMap =
                 DataProcessor.buildAppUsagePeriodList(
@@ -1550,65 +2097,69 @@
 
     @Test
     public void buildAppUsagePeriodList_emptyEventList_returnNull() {
-        assertThat(DataProcessor.buildAppUsagePeriodList(
-                mContext, new ArrayList<>(), new ArrayList<>(), 0, 1)).isNull();
+        assertThat(
+                        DataProcessor.buildAppUsagePeriodList(
+                                mContext, new ArrayList<>(), new ArrayList<>(), 0, 1))
+                .isNull();
     }
 
     @Test
     public void buildAppUsagePeriodList_emptyActivityList_returnNull() {
         final List<AppUsageEvent> appUsageEvents = new ArrayList<>();
-        appUsageEvents.add(buildAppUsageEvent(
-                AppUsageEventType.DEVICE_SHUTDOWN, /*timestamp=*/ 1));
-        appUsageEvents.add(buildAppUsageEvent(
-                AppUsageEventType.DEVICE_SHUTDOWN, /*timestamp=*/ 2));
+        appUsageEvents.add(
+                buildAppUsageEvent(AppUsageEventType.DEVICE_SHUTDOWN, /* timestamp= */ 1));
+        appUsageEvents.add(
+                buildAppUsageEvent(AppUsageEventType.DEVICE_SHUTDOWN, /* timestamp= */ 2));
 
-        assertThat(DataProcessor.buildAppUsagePeriodList(
-                mContext, appUsageEvents, new ArrayList<>(), 0, 3)).isNull();
+        assertThat(
+                        DataProcessor.buildAppUsagePeriodList(
+                                mContext, appUsageEvents, new ArrayList<>(), 0, 3))
+                .isNull();
     }
 
     @Test
     public void buildAppUsagePeriodListPerInstance_returnExpectedResult() {
         final List<AppUsageEvent> appUsageEvents = new ArrayList<>();
         // Fake data earlier than time range.
-        appUsageEvents.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_RESUMED, /*timestamp=*/ 1));
-        appUsageEvents.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_STOPPED, /*timestamp=*/ 2));
+        appUsageEvents.add(
+                buildAppUsageEvent(AppUsageEventType.ACTIVITY_RESUMED, /* timestamp= */ 1));
+        appUsageEvents.add(
+                buildAppUsageEvent(AppUsageEventType.ACTIVITY_STOPPED, /* timestamp= */ 2));
         // Fake resume event earlier than time range.
-        appUsageEvents.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_RESUMED, /*timestamp=*/ 3));
-        appUsageEvents.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_STOPPED, /*timestamp=*/ 120000));
+        appUsageEvents.add(
+                buildAppUsageEvent(AppUsageEventType.ACTIVITY_RESUMED, /* timestamp= */ 3));
+        appUsageEvents.add(
+                buildAppUsageEvent(AppUsageEventType.ACTIVITY_STOPPED, /* timestamp= */ 120000));
         // Fake normal data.
-        appUsageEvents.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_RESUMED, /*timestamp=*/ 150000));
-        appUsageEvents.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_STOPPED, /*timestamp=*/ 200000));
+        appUsageEvents.add(
+                buildAppUsageEvent(AppUsageEventType.ACTIVITY_RESUMED, /* timestamp= */ 150000));
+        appUsageEvents.add(
+                buildAppUsageEvent(AppUsageEventType.ACTIVITY_STOPPED, /* timestamp= */ 200000));
         // Fake two adjacent resume events.
-        appUsageEvents.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_RESUMED, /*timestamp=*/ 300000));
-        appUsageEvents.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_RESUMED, /*timestamp=*/ 400000));
-        appUsageEvents.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_STOPPED, /*timestamp=*/ 500000));
+        appUsageEvents.add(
+                buildAppUsageEvent(AppUsageEventType.ACTIVITY_RESUMED, /* timestamp= */ 300000));
+        appUsageEvents.add(
+                buildAppUsageEvent(AppUsageEventType.ACTIVITY_RESUMED, /* timestamp= */ 400000));
+        appUsageEvents.add(
+                buildAppUsageEvent(AppUsageEventType.ACTIVITY_STOPPED, /* timestamp= */ 500000));
         // Fake no start event when stop event happens.
-        appUsageEvents.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_STOPPED, /*timestamp=*/ 600000));
+        appUsageEvents.add(
+                buildAppUsageEvent(AppUsageEventType.ACTIVITY_STOPPED, /* timestamp= */ 600000));
         // There exists start event when device shutdown event happens. Shutdown is later than
         // default complete time.
-        appUsageEvents.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_RESUMED, /*timestamp=*/ 700000));
-        appUsageEvents.add(buildAppUsageEvent(
-                AppUsageEventType.DEVICE_SHUTDOWN, /*timestamp=*/ 800000));
+        appUsageEvents.add(
+                buildAppUsageEvent(AppUsageEventType.ACTIVITY_RESUMED, /* timestamp= */ 700000));
+        appUsageEvents.add(
+                buildAppUsageEvent(AppUsageEventType.DEVICE_SHUTDOWN, /* timestamp= */ 800000));
         // There exists start event when device shutdown event happens. Shutdown is earlier than
         // default complete time.
-        appUsageEvents.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_RESUMED, /*timestamp=*/ 900000));
-        appUsageEvents.add(buildAppUsageEvent(
-                AppUsageEventType.DEVICE_SHUTDOWN, /*timestamp=*/ 910000));
+        appUsageEvents.add(
+                buildAppUsageEvent(AppUsageEventType.ACTIVITY_RESUMED, /* timestamp= */ 900000));
+        appUsageEvents.add(
+                buildAppUsageEvent(AppUsageEventType.DEVICE_SHUTDOWN, /* timestamp= */ 910000));
         // There exists start event when the period ends.
-        appUsageEvents.add(buildAppUsageEvent(
-                AppUsageEventType.ACTIVITY_RESUMED, /*timestamp=*/ 1000000));
+        appUsageEvents.add(
+                buildAppUsageEvent(AppUsageEventType.ACTIVITY_RESUMED, /* timestamp= */ 1000000));
 
         final List<AppUsagePeriod> appUsagePeriodList =
                 DataProcessor.buildAppUsagePeriodListPerInstance(appUsageEvents, 100000, 1100000);
@@ -1625,17 +2176,26 @@
 
     @Test
     public void excludePowerConnectedTime_startEndNotCharging_returnExpectedResult() {
-        final List<AppUsagePeriod> appUsagePeriodList = List.of(
-                AppUsagePeriod.newBuilder().setStartTime(100).setEndTime(200).build());
-        final List<BatteryEvent> batteryEventList = List.of(
-                BatteryEvent.newBuilder().setTimestamp(50).setType(
-                        BatteryEventType.POWER_DISCONNECTED).build(),
-                BatteryEvent.newBuilder().setTimestamp(166).setType(
-                        BatteryEventType.POWER_CONNECTED).build(),
-                BatteryEvent.newBuilder().setTimestamp(188).setType(
-                        BatteryEventType.POWER_DISCONNECTED).build(),
-                BatteryEvent.newBuilder().setTimestamp(280).setType(
-                        BatteryEventType.POWER_CONNECTED).build());
+        final List<AppUsagePeriod> appUsagePeriodList =
+                List.of(AppUsagePeriod.newBuilder().setStartTime(100).setEndTime(200).build());
+        final List<BatteryEvent> batteryEventList =
+                List.of(
+                        BatteryEvent.newBuilder()
+                                .setTimestamp(50)
+                                .setType(BatteryEventType.POWER_DISCONNECTED)
+                                .build(),
+                        BatteryEvent.newBuilder()
+                                .setTimestamp(166)
+                                .setType(BatteryEventType.POWER_CONNECTED)
+                                .build(),
+                        BatteryEvent.newBuilder()
+                                .setTimestamp(188)
+                                .setType(BatteryEventType.POWER_DISCONNECTED)
+                                .build(),
+                        BatteryEvent.newBuilder()
+                                .setTimestamp(280)
+                                .setType(BatteryEventType.POWER_CONNECTED)
+                                .build());
 
         final List<AppUsagePeriod> resultList =
                 DataProcessor.excludePowerConnectedTimeFromAppUsagePeriodList(
@@ -1648,21 +2208,34 @@
 
     @Test
     public void excludePowerConnectedTime_startEndInCharging_returnExpectedResult() {
-        final List<AppUsagePeriod> appUsagePeriodList = List.of(
-                AppUsagePeriod.newBuilder().setStartTime(100).setEndTime(200).build());
-        final List<BatteryEvent> batteryEventList = List.of(
-                BatteryEvent.newBuilder().setTimestamp(50).setType(
-                        BatteryEventType.POWER_DISCONNECTED).build(),
-                BatteryEvent.newBuilder().setTimestamp(80).setType(
-                        BatteryEventType.POWER_CONNECTED).build(),
-                BatteryEvent.newBuilder().setTimestamp(120).setType(
-                        BatteryEventType.POWER_DISCONNECTED).build(),
-                BatteryEvent.newBuilder().setTimestamp(150).setType(
-                        BatteryEventType.POWER_CONNECTED).build(),
-                BatteryEvent.newBuilder().setTimestamp(160).setType(
-                        BatteryEventType.POWER_DISCONNECTED).build(),
-                BatteryEvent.newBuilder().setTimestamp(180).setType(
-                        BatteryEventType.POWER_CONNECTED).build());
+        final List<AppUsagePeriod> appUsagePeriodList =
+                List.of(AppUsagePeriod.newBuilder().setStartTime(100).setEndTime(200).build());
+        final List<BatteryEvent> batteryEventList =
+                List.of(
+                        BatteryEvent.newBuilder()
+                                .setTimestamp(50)
+                                .setType(BatteryEventType.POWER_DISCONNECTED)
+                                .build(),
+                        BatteryEvent.newBuilder()
+                                .setTimestamp(80)
+                                .setType(BatteryEventType.POWER_CONNECTED)
+                                .build(),
+                        BatteryEvent.newBuilder()
+                                .setTimestamp(120)
+                                .setType(BatteryEventType.POWER_DISCONNECTED)
+                                .build(),
+                        BatteryEvent.newBuilder()
+                                .setTimestamp(150)
+                                .setType(BatteryEventType.POWER_CONNECTED)
+                                .build(),
+                        BatteryEvent.newBuilder()
+                                .setTimestamp(160)
+                                .setType(BatteryEventType.POWER_DISCONNECTED)
+                                .build(),
+                        BatteryEvent.newBuilder()
+                                .setTimestamp(180)
+                                .setType(BatteryEventType.POWER_CONNECTED)
+                                .build());
 
         final List<AppUsagePeriod> resultList =
                 DataProcessor.excludePowerConnectedTimeFromAppUsagePeriodList(
@@ -1675,13 +2248,18 @@
 
     @Test
     public void excludePowerConnectedTime_wholePeriodNotCharging_returnExpectedResult() {
-        final List<AppUsagePeriod> appUsagePeriodList = List.of(
-                AppUsagePeriod.newBuilder().setStartTime(100).setEndTime(200).build());
-        final List<BatteryEvent> batteryEventList = List.of(
-                BatteryEvent.newBuilder().setTimestamp(50).setType(
-                        BatteryEventType.POWER_DISCONNECTED).build(),
-                BatteryEvent.newBuilder().setTimestamp(80).setType(
-                        BatteryEventType.POWER_CONNECTED).build());
+        final List<AppUsagePeriod> appUsagePeriodList =
+                List.of(AppUsagePeriod.newBuilder().setStartTime(100).setEndTime(200).build());
+        final List<BatteryEvent> batteryEventList =
+                List.of(
+                        BatteryEvent.newBuilder()
+                                .setTimestamp(50)
+                                .setType(BatteryEventType.POWER_DISCONNECTED)
+                                .build(),
+                        BatteryEvent.newBuilder()
+                                .setTimestamp(80)
+                                .setType(BatteryEventType.POWER_CONNECTED)
+                                .build());
 
         final List<AppUsagePeriod> resultList =
                 DataProcessor.excludePowerConnectedTimeFromAppUsagePeriodList(
@@ -1692,11 +2270,14 @@
 
     @Test
     public void excludePowerConnectedTime_wholePeriodInCharging_returnExpectedResult() {
-        final List<AppUsagePeriod> appUsagePeriodList = List.of(
-                AppUsagePeriod.newBuilder().setStartTime(100).setEndTime(200).build());
-        final List<BatteryEvent> batteryEventList = List.of(
-                BatteryEvent.newBuilder().setTimestamp(50).setType(
-                        BatteryEventType.POWER_DISCONNECTED).build());
+        final List<AppUsagePeriod> appUsagePeriodList =
+                List.of(AppUsagePeriod.newBuilder().setStartTime(100).setEndTime(200).build());
+        final List<BatteryEvent> batteryEventList =
+                List.of(
+                        BatteryEvent.newBuilder()
+                                .setTimestamp(50)
+                                .setType(BatteryEventType.POWER_DISCONNECTED)
+                                .build());
 
         final List<AppUsagePeriod> resultList =
                 DataProcessor.excludePowerConnectedTimeFromAppUsagePeriodList(
@@ -1760,32 +2341,32 @@
     private static ContentValues getContentValuesWithBatteryLevel(final int level) {
         final ContentValues values = new ContentValues();
         final DeviceBatteryState deviceBatteryState =
-                DeviceBatteryState
-                        .newBuilder()
-                        .setBatteryLevel(level)
-                        .build();
+                DeviceBatteryState.newBuilder().setBatteryLevel(level).build();
         final BatteryInformation batteryInformation =
-                BatteryInformation
-                        .newBuilder()
-                        .setDeviceBatteryState(deviceBatteryState)
-                        .build();
-        values.put(BatteryHistEntry.KEY_BATTERY_INFORMATION,
+                BatteryInformation.newBuilder().setDeviceBatteryState(deviceBatteryState).build();
+        values.put(
+                BatteryHistEntry.KEY_BATTERY_INFORMATION,
                 ConvertUtils.convertBatteryInformationToString(batteryInformation));
         return values;
     }
 
     private static BatteryHistEntry createBatteryHistEntry(
-            final String packageName, final String appLabel, final double consumePower,
+            final String packageName,
+            final String appLabel,
+            final double consumePower,
             final double foregroundUsageConsumePower,
             final double foregroundServiceUsageConsumePower,
-            final double backgroundUsageConsumePower, final double cachedUsageConsumePower,
-            final long uid, final long userId, final int consumerType,
-            final long foregroundUsageTimeInMs, final long backgroundUsageTimeInMs,
+            final double backgroundUsageConsumePower,
+            final double cachedUsageConsumePower,
+            final long uid,
+            final long userId,
+            final int consumerType,
+            final long foregroundUsageTimeInMs,
+            final long backgroundUsageTimeInMs,
             final boolean isHidden) {
         // Only insert required fields.
         final BatteryInformation batteryInformation =
-                BatteryInformation
-                        .newBuilder()
+                BatteryInformation.newBuilder()
                         .setAppLabel(appLabel)
                         .setConsumePower(consumePower)
                         .setForegroundUsageConsumePower(foregroundUsageConsumePower)
@@ -1801,7 +2382,8 @@
         values.put(BatteryHistEntry.KEY_UID, uid);
         values.put(BatteryHistEntry.KEY_USER_ID, userId);
         values.put(BatteryHistEntry.KEY_CONSUMER_TYPE, consumerType);
-        values.put(BatteryHistEntry.KEY_BATTERY_INFORMATION,
+        values.put(
+                BatteryHistEntry.KEY_BATTERY_INFORMATION,
                 ConvertUtils.convertBatteryInformationToString(batteryInformation));
         return new BatteryHistEntry(values);
     }
@@ -1815,8 +2397,7 @@
         return UsageEvents.CREATOR.createFromParcel(parcel);
     }
 
-    private Event getUsageEvent(
-            final int eventType, final long timestamp) {
+    private Event getUsageEvent(final int eventType, final long timestamp) {
         final Event event = new Event();
         event.mEventType = eventType;
         event.mPackage = "package";
@@ -1826,8 +2407,7 @@
 
     private AppUsageEvent buildAppUsageEvent(final AppUsageEventType type, final long timestamp) {
         return buildAppUsageEvent(
-                type, timestamp, /*userId=*/ 1,  /*instanceId=*/ 2,
-                "com.android.settings");
+                type, timestamp, /* userId= */ 1, /* instanceId= */ 2, "com.android.settings");
     }
 
     private AppUsageEvent buildAppUsageEvent(
@@ -1846,10 +2426,7 @@
     }
 
     private AppUsagePeriod buildAppUsagePeriod(final long start, final long end) {
-        return AppUsagePeriod.newBuilder()
-                .setStartTime(start)
-                .setEndTime(end)
-                .build();
+        return AppUsagePeriod.newBuilder().setStartTime(start).setEndTime(end).build();
     }
 
     private void assertAppUsageEvent(
@@ -1916,12 +2493,17 @@
     }
 
     private static void assertBatteryDiffEntry(
-            final BatteryDiffEntry entry, final long userId, final long uid,
-            final int consumerType, final double consumePercentage,
+            final BatteryDiffEntry entry,
+            final long userId,
+            final long uid,
+            final int consumerType,
+            final double consumePercentage,
             final double foregroundUsageConsumePower,
             final double foregroundServiceUsageConsumePower,
-            final double backgroundUsageConsumePower, final double cachedUsageConsumePower,
-            final long foregroundUsageTimeInMs, final long backgroundUsageTimeInMs,
+            final double backgroundUsageConsumePower,
+            final double cachedUsageConsumePower,
+            final long foregroundUsageTimeInMs,
+            final long backgroundUsageTimeInMs,
             final long screenOnTimeInMs) {
         assertThat(entry.mUserId).isEqualTo(userId);
         assertThat(entry.mUid).isEqualTo(uid);
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 12bd457..c31a2b6 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtilsTest.java
@@ -117,9 +117,7 @@
                         .setType(AppUsageEventType.ACTIVITY_STOPPED)
                         .build();
         final AppUsageEvent appUsageEvent3 =
-                AppUsageEvent.newBuilder()
-                        .setType(AppUsageEventType.DEVICE_SHUTDOWN)
-                        .build();
+                AppUsageEvent.newBuilder().setType(AppUsageEventType.DEVICE_SHUTDOWN).build();
         appUsageEventList.add(appUsageEvent1);
         appUsageEventList.add(appUsageEvent2);
         appUsageEventList.add(appUsageEvent3);
@@ -135,10 +133,9 @@
         // Verifies the inserted ContentValues into content provider.
         final ContentValues[] valuesArray =
                 new ContentValues[] {valuesList.get(0), valuesList.get(1)};
-        verify(mMockContentResolver).bulkInsert(
-                DatabaseUtils.APP_USAGE_EVENT_URI, valuesArray);
-        verify(mMockContentResolver).notifyChange(
-                DatabaseUtils.APP_USAGE_EVENT_URI, /*observer=*/ null);
+        verify(mMockContentResolver).bulkInsert(DatabaseUtils.APP_USAGE_EVENT_URI, valuesArray);
+        verify(mMockContentResolver)
+                .notifyChange(DatabaseUtils.APP_USAGE_EVENT_URI, /* observer= */ null);
     }
 
     @Test
@@ -161,12 +158,10 @@
         final ContentValues contentValues =
                 DatabaseUtils.sendBatteryEventData(mContext, batteryEvent);
 
-        assertThat(contentValues.getAsInteger(BatteryEventEntity.KEY_TIMESTAMP))
-                .isEqualTo(10001L);
+        assertThat(contentValues.getAsInteger(BatteryEventEntity.KEY_TIMESTAMP)).isEqualTo(10001L);
         assertThat(contentValues.getAsInteger(BatteryEventEntity.KEY_BATTERY_EVENT_TYPE))
                 .isEqualTo(BatteryEventType.POWER_CONNECTED.getNumber());
-        assertThat(contentValues.getAsInteger(BatteryEventEntity.KEY_BATTERY_LEVEL))
-                .isEqualTo(66);
+        assertThat(contentValues.getAsInteger(BatteryEventEntity.KEY_BATTERY_LEVEL)).isEqualTo(66);
         // Verifies the inserted ContentValues into content provider.
         verify(mMockContentResolver).insert(DatabaseUtils.BATTERY_EVENT_URI, contentValues);
     }
@@ -175,9 +170,12 @@
     public void sendBatteryEntryData_nullBatteryIntent_returnsNullValue() {
         doReturn(null).when(mContext).registerReceiver(any(), any());
         assertThat(
-                DatabaseUtils.sendBatteryEntryData(
-                        mContext, System.currentTimeMillis(), /*batteryEntryList=*/ null,
-                        mBatteryUsageStats, /*isFullChargeStart=*/ false))
+                        DatabaseUtils.sendBatteryEntryData(
+                                mContext,
+                                System.currentTimeMillis(),
+                                /* batteryEntryList= */ null,
+                                mBatteryUsageStats,
+                                /* isFullChargeStart= */ false))
                 .isNull();
     }
 
@@ -200,7 +198,7 @@
                         System.currentTimeMillis(),
                         batteryEntryList,
                         mBatteryUsageStats,
-                        /*isFullChargeStart=*/ false);
+                        /* isFullChargeStart= */ false);
 
         assertThat(valuesList).hasSize(2);
         // Verifies the ContentValues content.
@@ -209,10 +207,9 @@
         // Verifies the inserted ContentValues into content provider.
         final ContentValues[] valuesArray =
                 new ContentValues[] {valuesList.get(0), valuesList.get(1)};
-        verify(mMockContentResolver).bulkInsert(
-                DatabaseUtils.BATTERY_CONTENT_URI, valuesArray);
-        verify(mMockContentResolver).notifyChange(
-                DatabaseUtils.BATTERY_CONTENT_URI, /*observer=*/ null);
+        verify(mMockContentResolver).bulkInsert(DatabaseUtils.BATTERY_CONTENT_URI, valuesArray);
+        verify(mMockContentResolver)
+                .notifyChange(DatabaseUtils.BATTERY_CONTENT_URI, /* observer= */ null);
     }
 
     @Test
@@ -225,14 +222,14 @@
                         System.currentTimeMillis(),
                         new ArrayList<>(),
                         mBatteryUsageStats,
-                        /*isFullChargeStart=*/ false);
+                        /* isFullChargeStart= */ false);
 
         assertThat(valuesList).hasSize(1);
         verifyFakeBatteryEntryContentValues(valuesList.get(0));
         // Verifies the inserted ContentValues into content provider.
         verify(mMockContentResolver).insert(any(), any());
-        verify(mMockContentResolver).notifyChange(
-                DatabaseUtils.BATTERY_CONTENT_URI, /*observer=*/ null);
+        verify(mMockContentResolver)
+                .notifyChange(DatabaseUtils.BATTERY_CONTENT_URI, /* observer= */ null);
     }
 
     @Test
@@ -243,16 +240,16 @@
                 DatabaseUtils.sendBatteryEntryData(
                         mContext,
                         System.currentTimeMillis(),
-                        /*batteryEntryList=*/ null,
+                        /* batteryEntryList= */ null,
                         mBatteryUsageStats,
-                        /*isFullChargeStart=*/ false);
+                        /* isFullChargeStart= */ false);
 
         assertThat(valuesList).hasSize(1);
         verifyFakeBatteryEntryContentValues(valuesList.get(0));
         // Verifies the inserted ContentValues into content provider.
         verify(mMockContentResolver).insert(any(), any());
-        verify(mMockContentResolver).notifyChange(
-                DatabaseUtils.BATTERY_CONTENT_URI, /*observer=*/ null);
+        verify(mMockContentResolver)
+                .notifyChange(DatabaseUtils.BATTERY_CONTENT_URI, /* observer= */ null);
     }
 
     @Test
@@ -263,16 +260,16 @@
                 DatabaseUtils.sendBatteryEntryData(
                         mContext,
                         System.currentTimeMillis(),
-                        /*batteryEntryList=*/ null,
-                        /*batteryUsageStats=*/ null,
-                        /*isFullChargeStart=*/ false);
+                        /* batteryEntryList= */ null,
+                        /* batteryUsageStats= */ null,
+                        /* isFullChargeStart= */ false);
 
         assertThat(valuesList).hasSize(1);
         verifyFakeBatteryEntryContentValues(valuesList.get(0));
         // Verifies the inserted ContentValues into content provider.
         verify(mMockContentResolver).insert(any(), any());
-        verify(mMockContentResolver).notifyChange(
-                DatabaseUtils.BATTERY_CONTENT_URI, /*observer=*/ null);
+        verify(mMockContentResolver)
+                .notifyChange(DatabaseUtils.BATTERY_CONTENT_URI, /* observer= */ null);
     }
 
     @Test
@@ -282,16 +279,20 @@
         DatabaseUtils.sFakeSupplier = () -> cursor;
 
         final long earliestTimestamp = 10001L;
-        assertThat(DatabaseUtils.getAppUsageStartTimestampOfUser(
-                mContext, /*userId=*/ 0, earliestTimestamp)).isEqualTo(earliestTimestamp);
+        assertThat(
+                        DatabaseUtils.getAppUsageStartTimestampOfUser(
+                                mContext, /* userId= */ 0, earliestTimestamp))
+                .isEqualTo(earliestTimestamp);
     }
 
     @Test
     public void getAppUsageStartTimestampOfUser_nullCursor_returnEarliestTimestamp() {
         DatabaseUtils.sFakeSupplier = () -> null;
         final long earliestTimestamp = 10001L;
-        assertThat(DatabaseUtils.getAppUsageStartTimestampOfUser(
-                mContext, /*userId=*/ 0, earliestTimestamp)).isEqualTo(earliestTimestamp);
+        assertThat(
+                        DatabaseUtils.getAppUsageStartTimestampOfUser(
+                                mContext, /* userId= */ 0, earliestTimestamp))
+                .isEqualTo(earliestTimestamp);
     }
 
     @Test
@@ -304,50 +305,62 @@
         DatabaseUtils.sFakeSupplier = () -> cursor;
 
         final long earliestTimestamp1 = 1001L;
-        assertThat(DatabaseUtils.getAppUsageStartTimestampOfUser(
-                mContext, /*userId=*/ 0, earliestTimestamp1)).isEqualTo(returnedTimestamp + 1);
+        assertThat(
+                        DatabaseUtils.getAppUsageStartTimestampOfUser(
+                                mContext, /* userId= */ 0, earliestTimestamp1))
+                .isEqualTo(returnedTimestamp + 1);
         final long earliestTimestamp2 = 100001L;
-        assertThat(DatabaseUtils.getAppUsageStartTimestampOfUser(
-                mContext, /*userId=*/ 0, earliestTimestamp2)).isEqualTo(earliestTimestamp2);
+        assertThat(
+                        DatabaseUtils.getAppUsageStartTimestampOfUser(
+                                mContext, /* userId= */ 0, earliestTimestamp2))
+                .isEqualTo(earliestTimestamp2);
     }
 
     @Test
     public void getAppUsageEventForUsers_emptyCursorContent_returnEmptyMap() {
-        final MatrixCursor cursor = new MatrixCursor(
-                new String[]{
-                        AppUsageEventEntity.KEY_UID,
-                        AppUsageEventEntity.KEY_USER_ID,
-                        AppUsageEventEntity.KEY_PACKAGE_NAME,
-                        AppUsageEventEntity.KEY_TIMESTAMP,
-                        AppUsageEventEntity.KEY_APP_USAGE_EVENT_TYPE});
+        final MatrixCursor cursor =
+                new MatrixCursor(
+                        new String[] {
+                            AppUsageEventEntity.KEY_UID,
+                            AppUsageEventEntity.KEY_USER_ID,
+                            AppUsageEventEntity.KEY_PACKAGE_NAME,
+                            AppUsageEventEntity.KEY_TIMESTAMP,
+                            AppUsageEventEntity.KEY_APP_USAGE_EVENT_TYPE
+                        });
         DatabaseUtils.sFakeSupplier = () -> cursor;
 
-        assertThat(DatabaseUtils.getAppUsageEventForUsers(
-                mContext,
-                /*calendar=*/ null,
-                /*userIds=*/ new ArrayList<>(),
-                /*startTimestampOfLevelData=*/ 0)).isEmpty();
+        assertThat(
+                        DatabaseUtils.getAppUsageEventForUsers(
+                                mContext,
+                                /* calendar= */ null,
+                                /* userIds= */ new ArrayList<>(),
+                                /* startTimestampOfLevelData= */ 0))
+                .isEmpty();
     }
 
     @Test
     public void getAppUsageEventForUsers_nullCursor_returnEmptyMap() {
         DatabaseUtils.sFakeSupplier = () -> null;
-        assertThat(DatabaseUtils.getAppUsageEventForUsers(
-                mContext,
-                /*calendar=*/ null,
-                /*userIds=*/ new ArrayList<>(),
-                /*startTimestampOfLevelData=*/ 0)).isEmpty();
+        assertThat(
+                        DatabaseUtils.getAppUsageEventForUsers(
+                                mContext,
+                                /* calendar= */ null,
+                                /* userIds= */ new ArrayList<>(),
+                                /* startTimestampOfLevelData= */ 0))
+                .isEmpty();
     }
 
     @Test
     public void getAppUsageEventForUsers_returnExpectedMap() {
         final Long timestamp1 = 1001L;
         final Long timestamp2 = 1002L;
-        final MatrixCursor cursor = new MatrixCursor(
-                new String[]{
-                        AppUsageEventEntity.KEY_UID,
-                        AppUsageEventEntity.KEY_PACKAGE_NAME,
-                        AppUsageEventEntity.KEY_TIMESTAMP});
+        final MatrixCursor cursor =
+                new MatrixCursor(
+                        new String[] {
+                            AppUsageEventEntity.KEY_UID,
+                            AppUsageEventEntity.KEY_PACKAGE_NAME,
+                            AppUsageEventEntity.KEY_TIMESTAMP
+                        });
         // Adds fake data into the cursor.
         cursor.addRow(new Object[] {101L, "app name1", timestamp1});
         cursor.addRow(new Object[] {101L, "app name2", timestamp2});
@@ -355,11 +368,12 @@
         cursor.addRow(new Object[] {101L, "app name4", timestamp2});
         DatabaseUtils.sFakeSupplier = () -> cursor;
 
-        final List<AppUsageEvent> appUsageEventList = DatabaseUtils.getAppUsageEventForUsers(
-                mContext,
-                /*calendar=*/ null,
-                /*userIds=*/ new ArrayList<>(),
-                /*startTimestampOfLevelData=*/ 0);
+        final List<AppUsageEvent> appUsageEventList =
+                DatabaseUtils.getAppUsageEventForUsers(
+                        mContext,
+                        /* calendar= */ null,
+                        /* userIds= */ new ArrayList<>(),
+                        /* startTimestampOfLevelData= */ 0);
 
         assertThat(appUsageEventList.get(0).getPackageName()).isEqualTo("app name1");
         assertThat(appUsageEventList.get(1).getPackageName()).isEqualTo("app name2");
@@ -369,11 +383,13 @@
 
     @Test
     public void getHistoryMap_emptyCursorContent_returnEmptyMap() {
-        final MatrixCursor cursor = new MatrixCursor(
-                new String[] {
-                        BatteryHistEntry.KEY_UID,
-                        BatteryHistEntry.KEY_USER_ID,
-                        BatteryHistEntry.KEY_TIMESTAMP});
+        final MatrixCursor cursor =
+                new MatrixCursor(
+                        new String[] {
+                            BatteryHistEntry.KEY_UID,
+                            BatteryHistEntry.KEY_USER_ID,
+                            BatteryHistEntry.KEY_TIMESTAMP
+                        });
         DatabaseUtils.sFakeSupplier = () -> cursor;
 
         assertThat(DatabaseUtils.getHistoryMapSinceQueryTimestamp(mContext, 0)).isEmpty();
@@ -391,14 +407,22 @@
         final Long timestamp2 = Long.valueOf(1002L);
         final MatrixCursor cursor = getMatrixCursor();
         // Adds fake data into the cursor.
-        cursor.addRow(new Object[] {
-                "app name1", timestamp1, 1, ConvertUtils.CONSUMER_TYPE_UID_BATTERY, true});
-        cursor.addRow(new Object[] {
-                "app name2", timestamp2, 2, ConvertUtils.CONSUMER_TYPE_UID_BATTERY, false});
-        cursor.addRow(new Object[] {
-                "app name3", timestamp2, 3, ConvertUtils.CONSUMER_TYPE_UID_BATTERY, false});
-        cursor.addRow(new Object[] {
-                "app name4", timestamp2, 4, ConvertUtils.CONSUMER_TYPE_UID_BATTERY, false});
+        cursor.addRow(
+                new Object[] {
+                    "app name1", timestamp1, 1, ConvertUtils.CONSUMER_TYPE_UID_BATTERY, true
+                });
+        cursor.addRow(
+                new Object[] {
+                    "app name2", timestamp2, 2, ConvertUtils.CONSUMER_TYPE_UID_BATTERY, false
+                });
+        cursor.addRow(
+                new Object[] {
+                    "app name3", timestamp2, 3, ConvertUtils.CONSUMER_TYPE_UID_BATTERY, false
+                });
+        cursor.addRow(
+                new Object[] {
+                    "app name4", timestamp2, 4, ConvertUtils.CONSUMER_TYPE_UID_BATTERY, false
+                });
         DatabaseUtils.sFakeSupplier = () -> cursor;
 
         final Map<Long, Map<String, BatteryHistEntry>> batteryHistMap =
@@ -421,8 +445,9 @@
     public void getHistoryMap_withWorkProfile_returnExpectedMap()
             throws PackageManager.NameNotFoundException {
         doReturn("com.fake.package").when(mContext).getPackageName();
-        doReturn(mMockContext).when(mContext).createPackageContextAsUser(
-                "com.fake.package", /*flags=*/ 0, UserHandle.OWNER);
+        doReturn(mMockContext)
+                .when(mContext)
+                .createPackageContextAsUser("com.fake.package", /* flags= */ 0, UserHandle.OWNER);
         doReturn(UserHandle.CURRENT).when(mContext).getUser();
         doReturn(mUserManager).when(mContext).getSystemService(UserManager.class);
         doReturn(true).when(mUserManager).isManagedProfile();
@@ -440,9 +465,8 @@
     public void removeUsageSource_hasNoData() {
         DatabaseUtils.removeUsageSource(mContext);
         assertThat(
-                DatabaseUtils
-                        .getSharedPreferences(mContext)
-                        .contains(DatabaseUtils.KEY_LAST_USAGE_SOURCE))
+                        DatabaseUtils.getSharedPreferences(mContext)
+                                .contains(DatabaseUtils.KEY_LAST_USAGE_SOURCE))
                 .isFalse();
     }
 
@@ -457,9 +481,8 @@
         DatabaseUtils.removeUsageSource(mContext);
 
         assertThat(
-                DatabaseUtils
-                        .getSharedPreferences(mContext)
-                        .contains(DatabaseUtils.KEY_LAST_USAGE_SOURCE))
+                        DatabaseUtils.getSharedPreferences(mContext)
+                                .contains(DatabaseUtils.KEY_LAST_USAGE_SOURCE))
                 .isFalse();
     }
 
@@ -482,9 +505,10 @@
         assertThat(DatabaseUtils.getUsageSource(mContext, mUsageStatsManager))
                 .isEqualTo(USAGE_SOURCE_TASK_ROOT_ACTIVITY);
         assertThat(
-                DatabaseUtils
-                        .getSharedPreferences(mContext)
-                        .getInt(DatabaseUtils.KEY_LAST_USAGE_SOURCE, USAGE_SOURCE_CURRENT_ACTIVITY))
+                        DatabaseUtils.getSharedPreferences(mContext)
+                                .getInt(
+                                        DatabaseUtils.KEY_LAST_USAGE_SOURCE,
+                                        USAGE_SOURCE_CURRENT_ACTIVITY))
                 .isEqualTo(USAGE_SOURCE_TASK_ROOT_ACTIVITY);
     }
 
@@ -495,9 +519,10 @@
         assertThat(DatabaseUtils.getUsageSource(mContext, mUsageStatsManager))
                 .isEqualTo(USAGE_SOURCE_CURRENT_ACTIVITY);
         assertThat(
-                DatabaseUtils
-                        .getSharedPreferences(mContext)
-                        .getInt(DatabaseUtils.KEY_LAST_USAGE_SOURCE, USAGE_SOURCE_CURRENT_ACTIVITY))
+                        DatabaseUtils.getSharedPreferences(mContext)
+                                .getInt(
+                                        DatabaseUtils.KEY_LAST_USAGE_SOURCE,
+                                        USAGE_SOURCE_CURRENT_ACTIVITY))
                 .isEqualTo(USAGE_SOURCE_CURRENT_ACTIVITY);
     }
 
@@ -506,20 +531,16 @@
         final String preferenceKey = "test_preference_key";
         DatabaseUtils.recordDateTime(mContext, preferenceKey);
 
-        assertThat(DatabaseUtils.getSharedPreferences(mContext).contains(preferenceKey))
-                .isTrue();
+        assertThat(DatabaseUtils.getSharedPreferences(mContext).contains(preferenceKey)).isTrue();
     }
 
     @Test
     public void dump_dumpExpectedData() {
-        DatabaseUtils.recordDateTime(mContext,
-                Intent.ACTION_BATTERY_LEVEL_CHANGED);
-        DatabaseUtils.recordDateTime(mContext,
-                BatteryUsageBroadcastReceiver.ACTION_BATTERY_UNPLUGGING);
-        DatabaseUtils.recordDateTime(mContext,
-                DatabaseUtils.KEY_LAST_LOAD_FULL_CHARGE_TIME);
-        DatabaseUtils.recordDateTime(mContext,
-                DatabaseUtils.KEY_LAST_UPLOAD_FULL_CHARGE_TIME);
+        DatabaseUtils.recordDateTime(mContext, Intent.ACTION_BATTERY_LEVEL_CHANGED);
+        DatabaseUtils.recordDateTime(
+                mContext, BatteryUsageBroadcastReceiver.ACTION_BATTERY_UNPLUGGING);
+        DatabaseUtils.recordDateTime(mContext, DatabaseUtils.KEY_LAST_LOAD_FULL_CHARGE_TIME);
+        DatabaseUtils.recordDateTime(mContext, DatabaseUtils.KEY_LAST_UPLOAD_FULL_CHARGE_TIME);
         final StringWriter stringWriter = new StringWriter();
         final PrintWriter printWriter = new PrintWriter(stringWriter);
 
@@ -570,8 +591,7 @@
                 .isEqualTo(BatteryManager.BATTERY_STATUS_FULL);
         assertThat(deviceBatteryState.getBatteryHealth())
                 .isEqualTo(BatteryManager.BATTERY_HEALTH_COLD);
-        assertThat(values.getAsString("packageName"))
-                .isEqualTo(ConvertUtils.FAKE_PACKAGE_NAME);
+        assertThat(values.getAsString("packageName")).isEqualTo(ConvertUtils.FAKE_PACKAGE_NAME);
     }
 
     private static Intent getBatteryIntent() {
@@ -586,10 +606,11 @@
     private static MatrixCursor getMatrixCursor() {
         return new MatrixCursor(
                 new String[] {
-                        BatteryHistEntry.KEY_PACKAGE_NAME,
-                        BatteryHistEntry.KEY_TIMESTAMP,
-                        BatteryHistEntry.KEY_UID,
-                        BatteryHistEntry.KEY_CONSUMER_TYPE,
-                        BatteryHistEntry.KEY_IS_FULL_CHARGE_CYCLE_START});
+                    BatteryHistEntry.KEY_PACKAGE_NAME,
+                    BatteryHistEntry.KEY_TIMESTAMP,
+                    BatteryHistEntry.KEY_UID,
+                    BatteryHistEntry.KEY_CONSUMER_TYPE,
+                    BatteryHistEntry.KEY_IS_FULL_CHARGE_CYCLE_START
+                });
     }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobManagerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobManagerTest.java
index efbce12..6990535 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobManagerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobManagerTest.java
@@ -57,7 +57,7 @@
 
     @Test
     public void refreshJob_refreshesAlarmJob() {
-        mPeriodicJobManager.refreshJob(/*fromBoot=*/ false);
+        mPeriodicJobManager.refreshJob(/* fromBoot= */ false);
 
         final ShadowAlarmManager.ScheduledAlarm alarm =
                 mShadowAlarmManager.peekNextScheduledAlarm();
@@ -71,12 +71,13 @@
     public void getTriggerAtMillis_withoutOffset_returnsExpectedResult() {
         long timeSlotUnit = PeriodicJobManager.DATA_FETCH_INTERVAL_MINUTE;
         // Sets the current time.
-        Duration currentTimeDuration =
-                Duration.ofMinutes(timeSlotUnit * 2);
+        Duration currentTimeDuration = Duration.ofMinutes(timeSlotUnit * 2);
         FakeClock fakeClock = new FakeClock();
         fakeClock.setCurrentTime(currentTimeDuration);
 
-        assertThat(PeriodicJobManager.getTriggerAtMillis(mContext, fakeClock, /*fromBoot=*/ false))
+        assertThat(
+                        PeriodicJobManager.getTriggerAtMillis(
+                                mContext, fakeClock, /* fromBoot= */ false))
                 .isEqualTo(currentTimeDuration.plusMinutes(timeSlotUnit).toMillis());
     }
 
@@ -86,10 +87,9 @@
         // Sets the current time.
         Duration currentTimeDuration = Duration.ofMinutes(timeSlotUnit * 2);
         FakeClock fakeClock = new FakeClock();
-        fakeClock.setCurrentTime(
-                currentTimeDuration.plusMinutes(1L).plusMillis(51L));
+        fakeClock.setCurrentTime(currentTimeDuration.plusMinutes(1L).plusMillis(51L));
 
-        assertThat(PeriodicJobManager.getTriggerAtMillis(mContext, fakeClock, /*fromBoot=*/ true))
+        assertThat(PeriodicJobManager.getTriggerAtMillis(mContext, fakeClock, /* fromBoot= */ true))
                 .isEqualTo(currentTimeDuration.plusMinutes(timeSlotUnit).toMillis());
     }
 }
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 c9a3e64..d111de2 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiverTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiverTest.java
@@ -86,14 +86,14 @@
 
     @Test
     public void onReceive_nullIntent_notRefreshesJob() {
-        mReceiver.onReceive(mContext, /*intent=*/ null);
+        mReceiver.onReceive(mContext, /* intent= */ null);
         assertThat(mShadowAlarmManager.peekNextScheduledAlarm()).isNull();
     }
 
     @Test
     public void onReceive_containsExpiredData_clearsExpiredDataFromDatabase()
             throws InterruptedException {
-        insertExpiredData(/*shiftDay=*/ DatabaseUtils.DATA_RETENTION_INTERVAL_DAY);
+        insertExpiredData(/* shiftDay= */ DatabaseUtils.DATA_RETENTION_INTERVAL_DAY);
 
         mReceiver.onReceive(mContext, JOB_UPDATE_INTENT);
 
@@ -104,7 +104,7 @@
     @Test
     public void onReceive_withoutExpiredData_notClearsExpiredDataFromDatabase()
             throws InterruptedException {
-        insertExpiredData(/*shiftDay=*/ DatabaseUtils.DATA_RETENTION_INTERVAL_DAY - 1);
+        insertExpiredData(/* shiftDay= */ DatabaseUtils.DATA_RETENTION_INTERVAL_DAY - 1);
 
         mReceiver.onReceive(mContext, JOB_UPDATE_INTENT);
 
@@ -129,5 +129,4 @@
         // Ensures the testing environment is correct.
         assertThat(mDao.getAllAfter(0)).hasSize(3);
     }
-
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerGaugePreferenceTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerGaugePreferenceTest.java
index 22509de..ef4460b 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerGaugePreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerGaugePreferenceTest.java
@@ -53,8 +53,12 @@
         MockitoAnnotations.initMocks(this);
 
         mContext = RuntimeEnvironment.application;
-        mRootView = LayoutInflater.from(mContext)
-                .inflate(com.android.settingslib.widget.preference.app.R.layout.preference_app, null);
+        mRootView =
+                LayoutInflater.from(mContext)
+                        .inflate(
+                                com.android.settingslib.widget.preference.app.R.layout
+                                        .preference_app,
+                                null);
         mWidgetView =
                 LayoutInflater.from(mContext).inflate(R.layout.preference_widget_summary, null);
         final LinearLayout widgetFrame = mRootView.findViewById(android.R.id.widget_frame);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvancedTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvancedTest.java
index 9753bd2..6c09e78 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvancedTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvancedTest.java
@@ -55,14 +55,10 @@
     private Predicate<PowerAnomalyEvent> mCardFilterPredicate;
     private Predicate<PowerAnomalyEvent> mSlotFilterPredicate;
 
-    @Mock
-    private BatteryTipsController mBatteryTipsController;
-    @Mock
-    private BatteryChartPreferenceController mBatteryChartPreferenceController;
-    @Mock
-    private ScreenOnTimeController mScreenOnTimeController;
-    @Mock
-    private BatteryUsageBreakdownController mBatteryUsageBreakdownController;
+    @Mock private BatteryTipsController mBatteryTipsController;
+    @Mock private BatteryChartPreferenceController mBatteryChartPreferenceController;
+    @Mock private ScreenOnTimeController mScreenOnTimeController;
+    @Mock private BatteryUsageBreakdownController mBatteryUsageBreakdownController;
 
     @Before
     public void setUp() {
@@ -75,10 +71,13 @@
         mPowerUsageAdvanced.mBatteryChartPreferenceController = mBatteryChartPreferenceController;
         mPowerUsageAdvanced.mScreenOnTimeController = mScreenOnTimeController;
         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
+        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(mContext).when(mPowerUsageAdvanced).getContext();
         mSlotFilterPredicate = PowerAnomalyEvent::hasWarningItemInfo;
     }
@@ -86,15 +85,17 @@
     @Test
     public void getFilterAnomalyEvent_withEmptyOrNullList_getNull() {
         prepareCardFilterPredicate(null);
-        assertThat(PowerUsageAdvanced
-                .getAnomalyEvent(null, mCardFilterPredicate)).isNull();
-        assertThat(PowerUsageAdvanced
-                .getAnomalyEvent(null, mSlotFilterPredicate)).isNull();
-        assertThat(PowerUsageAdvanced.getAnomalyEvent(
-                BatteryTestUtils.createEmptyPowerAnomalyEventList(), mCardFilterPredicate))
+        assertThat(PowerUsageAdvanced.getAnomalyEvent(null, mCardFilterPredicate)).isNull();
+        assertThat(PowerUsageAdvanced.getAnomalyEvent(null, mSlotFilterPredicate)).isNull();
+        assertThat(
+                        PowerUsageAdvanced.getAnomalyEvent(
+                                BatteryTestUtils.createEmptyPowerAnomalyEventList(),
+                                mCardFilterPredicate))
                 .isNull();
-        assertThat(PowerUsageAdvanced.getAnomalyEvent(
-                BatteryTestUtils.createEmptyPowerAnomalyEventList(), mSlotFilterPredicate))
+        assertThat(
+                        PowerUsageAdvanced.getAnomalyEvent(
+                                BatteryTestUtils.createEmptyPowerAnomalyEventList(),
+                                mSlotFilterPredicate))
                 .isNull();
     }
 
@@ -104,12 +105,10 @@
                 BatteryTestUtils.createNonEmptyPowerAnomalyEventList();
 
         final PowerAnomalyEvent slotEvent =
-                PowerUsageAdvanced.getAnomalyEvent(powerAnomalyEventList,
-                        mSlotFilterPredicate);
+                PowerUsageAdvanced.getAnomalyEvent(powerAnomalyEventList, mSlotFilterPredicate);
         prepareCardFilterPredicate(slotEvent);
         final PowerAnomalyEvent cardEvent =
-                PowerUsageAdvanced.getAnomalyEvent(powerAnomalyEventList,
-                        mCardFilterPredicate);
+                PowerUsageAdvanced.getAnomalyEvent(powerAnomalyEventList, mCardFilterPredicate);
 
         assertThat(cardEvent).isEqualTo(BatteryTestUtils.createAdaptiveBrightnessAnomalyEvent());
         assertThat(slotEvent).isNull();
@@ -123,12 +122,10 @@
         DatabaseUtils.setDismissedPowerAnomalyKeys(mContext, PowerAnomalyKey.KEY_BRIGHTNESS.name());
 
         final PowerAnomalyEvent slotEvent =
-                PowerUsageAdvanced.getAnomalyEvent(powerAnomalyEventList,
-                        mSlotFilterPredicate);
+                PowerUsageAdvanced.getAnomalyEvent(powerAnomalyEventList, mSlotFilterPredicate);
         prepareCardFilterPredicate(slotEvent);
         final PowerAnomalyEvent cardEvent =
-                PowerUsageAdvanced.getAnomalyEvent(powerAnomalyEventList,
-                        mCardFilterPredicate);
+                PowerUsageAdvanced.getAnomalyEvent(powerAnomalyEventList, mCardFilterPredicate);
 
         assertThat(cardEvent).isEqualTo(BatteryTestUtils.createScreenTimeoutAnomalyEvent());
         assertThat(slotEvent).isNull();
@@ -144,12 +141,10 @@
         }
 
         final PowerAnomalyEvent slotEvent =
-                PowerUsageAdvanced.getAnomalyEvent(powerAnomalyEventList,
-                        mSlotFilterPredicate);
+                PowerUsageAdvanced.getAnomalyEvent(powerAnomalyEventList, mSlotFilterPredicate);
         prepareCardFilterPredicate(slotEvent);
         final PowerAnomalyEvent cardEvent =
-                PowerUsageAdvanced.getAnomalyEvent(powerAnomalyEventList,
-                        mCardFilterPredicate);
+                PowerUsageAdvanced.getAnomalyEvent(powerAnomalyEventList, mCardFilterPredicate);
 
         assertThat(cardEvent).isNull();
         assertThat(slotEvent).isNull();
@@ -165,9 +160,10 @@
                 .isEqualTo(event.getEventId());
         verify(mPowerUsageAdvanced.mBatteryTipsController).setOnAnomalyConfirmListener(isNull());
         verify(mPowerUsageAdvanced.mBatteryTipsController).setOnAnomalyRejectListener(isNull());
-        verify(mPowerUsageAdvanced.mBatteryChartPreferenceController).onHighlightSlotIndexUpdate(
-                eq(BatteryChartViewModel.SELECTED_INDEX_INVALID),
-                eq(BatteryChartViewModel.SELECTED_INDEX_INVALID));
+        verify(mPowerUsageAdvanced.mBatteryChartPreferenceController)
+                .onHighlightSlotIndexUpdate(
+                        eq(BatteryChartViewModel.SELECTED_INDEX_INVALID),
+                        eq(BatteryChartViewModel.SELECTED_INDEX_INVALID));
     }
 
     @Test
@@ -180,10 +176,14 @@
                 .isEqualTo(event.getEventId());
         verify(mBatteryTipsController).setOnAnomalyConfirmListener(isNull());
         verify(mBatteryTipsController).setOnAnomalyRejectListener(isNull());
-        assertThat(mPowerUsageAdvanced.mBatteryLevelData.get().getIndexByTimestamps(
-                event.getWarningItemInfo().getStartTimestamp(),
-                event.getWarningItemInfo().getEndTimestamp()
-        )).isEqualTo(Pair.create(1, 0));
+        assertThat(
+                        mPowerUsageAdvanced
+                                .mBatteryLevelData
+                                .get()
+                                .getIndexByTimestamps(
+                                        event.getWarningItemInfo().getStartTimestamp(),
+                                        event.getWarningItemInfo().getEndTimestamp()))
+                .isEqualTo(Pair.create(1, 0));
         verify(mBatteryChartPreferenceController).onHighlightSlotIndexUpdate(eq(1), eq(0));
         verify(mBatteryTipsController).setOnAnomalyConfirmListener(notNull());
     }
@@ -192,8 +192,7 @@
     public void onDisplayAnomalyEventUpdated_withSettingsCardAndAppsSlotEvent_showExpected() {
         final PowerAnomalyEvent settingsEvent =
                 BatteryTestUtils.createAdaptiveBrightnessAnomalyEvent();
-        final PowerAnomalyEvent appsEvent =
-                BatteryTestUtils.createAppAnomalyEvent();
+        final PowerAnomalyEvent appsEvent = BatteryTestUtils.createAppAnomalyEvent();
 
         mPowerUsageAdvanced.onDisplayAnomalyEventUpdated(settingsEvent, appsEvent);
 
@@ -207,8 +206,9 @@
     private void prepareCardFilterPredicate(PowerAnomalyEvent slotEvent) {
         final Set<String> dismissedPowerAnomalyKeys =
                 DatabaseUtils.getDismissedPowerAnomalyKeys(mContext);
-        mCardFilterPredicate = event -> !dismissedPowerAnomalyKeys.contains(
-                event.getDismissRecordKey())
-                && (event.equals(slotEvent) || !event.hasWarningItemInfo());
+        mCardFilterPredicate =
+                event ->
+                        !dismissedPowerAnomalyKeys.contains(event.getDismissRecordKey())
+                                && (event.equals(slotEvent) || !event.hasWarningItemInfo());
     }
-}
\ No newline at end of file
+}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageBaseTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageBaseTest.java
index 68766e6..399101b 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageBaseTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageBaseTest.java
@@ -52,10 +52,8 @@
 @Config(shadows = ShadowDashboardFragment.class)
 public class PowerUsageBaseTest {
 
-    @Mock
-    private LoaderManager mLoaderManager;
-    @Mock
-    private Loader<BatteryUsageStats> mBatteryUsageStatsLoader;
+    @Mock private LoaderManager mLoaderManager;
+    @Mock private Loader<BatteryUsageStats> mBatteryUsageStatsLoader;
     private TestFragment mFragment;
 
     @Before
@@ -77,16 +75,19 @@
         final Bundle bundle = new Bundle();
         bundle.putInt(KEY_REFRESH_TYPE, BatteryBroadcastReceiver.BatteryUpdateType.BATTERY_STATUS);
         bundle.putBoolean(KEY_INCLUDE_HISTORY, false);
-        doReturn(mBatteryUsageStatsLoader).when(mLoaderManager).getLoader(
-                PowerUsageBase.LoaderIndex.BATTERY_USAGE_STATS_LOADER);
+        doReturn(mBatteryUsageStatsLoader)
+                .when(mLoaderManager)
+                .getLoader(PowerUsageBase.LoaderIndex.BATTERY_USAGE_STATS_LOADER);
         doReturn(false).when(mBatteryUsageStatsLoader).isReset();
 
         mFragment.restartBatteryStatsLoader(
                 BatteryBroadcastReceiver.BatteryUpdateType.BATTERY_STATUS);
 
         verify(mLoaderManager)
-                .restartLoader(eq(PowerUsageBase.LoaderIndex.BATTERY_USAGE_STATS_LOADER),
-                        refEq(bundle), any());
+                .restartLoader(
+                        eq(PowerUsageBase.LoaderIndex.BATTERY_USAGE_STATS_LOADER),
+                        refEq(bundle),
+                        any());
     }
 
     @Test
@@ -94,16 +95,19 @@
         final Bundle bundle = new Bundle();
         bundle.putInt(KEY_REFRESH_TYPE, BatteryBroadcastReceiver.BatteryUpdateType.BATTERY_STATUS);
         bundle.putBoolean(KEY_INCLUDE_HISTORY, false);
-        doReturn(mBatteryUsageStatsLoader).when(mLoaderManager).getLoader(
-                PowerUsageBase.LoaderIndex.BATTERY_USAGE_STATS_LOADER);
+        doReturn(mBatteryUsageStatsLoader)
+                .when(mLoaderManager)
+                .getLoader(PowerUsageBase.LoaderIndex.BATTERY_USAGE_STATS_LOADER);
         doReturn(true).when(mBatteryUsageStatsLoader).isReset();
 
         mFragment.restartBatteryStatsLoader(
                 BatteryBroadcastReceiver.BatteryUpdateType.BATTERY_STATUS);
 
         verify(mLoaderManager)
-                .initLoader(eq(PowerUsageBase.LoaderIndex.BATTERY_USAGE_STATS_LOADER),
-                        refEq(bundle), any());
+                .initLoader(
+                        eq(PowerUsageBase.LoaderIndex.BATTERY_USAGE_STATS_LOADER),
+                        refEq(bundle),
+                        any());
     }
 
     @Test
@@ -111,14 +115,18 @@
         final Bundle bundle = new Bundle();
         bundle.putInt(KEY_REFRESH_TYPE, BatteryBroadcastReceiver.BatteryUpdateType.BATTERY_STATUS);
         bundle.putBoolean(KEY_INCLUDE_HISTORY, false);
-        doReturn(null).when(mLoaderManager).getLoader(
-                PowerUsageBase.LoaderIndex.BATTERY_USAGE_STATS_LOADER);
+        doReturn(null)
+                .when(mLoaderManager)
+                .getLoader(PowerUsageBase.LoaderIndex.BATTERY_USAGE_STATS_LOADER);
 
         mFragment.restartBatteryStatsLoader(
                 BatteryBroadcastReceiver.BatteryUpdateType.BATTERY_STATUS);
 
-        verify(mLoaderManager).initLoader(eq(PowerUsageBase.LoaderIndex.BATTERY_USAGE_STATS_LOADER),
-                refEq(bundle), any());
+        verify(mLoaderManager)
+                .initLoader(
+                        eq(PowerUsageBase.LoaderIndex.BATTERY_USAGE_STATS_LOADER),
+                        refEq(bundle),
+                        any());
     }
 
     private static class TestFragment extends PowerUsageBase {
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummaryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummaryTest.java
index 579d4a9..19d5e59 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummaryTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummaryTest.java
@@ -70,9 +70,10 @@
 
 // TODO: Improve this test class so that it starts up the real activity and fragment.
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = {
-        com.android.settings.testutils.shadow.ShadowFragment.class,
-})
+@Config(
+        shadows = {
+            com.android.settings.testutils.shadow.ShadowFragment.class,
+        })
 public class PowerUsageSummaryTest {
     private static Intent sAdditionalBatteryInfoIntent;
 
@@ -81,26 +82,16 @@
         sAdditionalBatteryInfoIntent = new Intent("com.example.app.ADDITIONAL_BATTERY_INFO");
     }
 
-    @Mock
-    private SettingsActivity mSettingsActivity;
-    @Mock
-    private LoaderManager mLoaderManager;
-    @Mock
-    private Loader<BatteryTip> mBatteryTipLoader;
-    @Mock
-    private Loader<BatteryInfo> mBatteryInfoLoader;
-    @Mock
-    private ContentResolver mContentResolver;
-    @Mock
-    private BatteryBroadcastReceiver mBatteryBroadcastReceiver;
-    @Mock
-    private VisibilityLoggerMixin mVisibilityLoggerMixin;
-    @Mock
-    private PreferenceScreen mPreferenceScreen;
-    @Mock
-    private Preference mBatteryUsagePreference;
-    @Mock
-    private Preference mHelpPreference;
+    @Mock private SettingsActivity mSettingsActivity;
+    @Mock private LoaderManager mLoaderManager;
+    @Mock private Loader<BatteryTip> mBatteryTipLoader;
+    @Mock private Loader<BatteryInfo> mBatteryInfoLoader;
+    @Mock private ContentResolver mContentResolver;
+    @Mock private BatteryBroadcastReceiver mBatteryBroadcastReceiver;
+    @Mock private VisibilityLoggerMixin mVisibilityLoggerMixin;
+    @Mock private PreferenceScreen mPreferenceScreen;
+    @Mock private Preference mBatteryUsagePreference;
+    @Mock private Preference mHelpPreference;
 
     private Context mRealContext;
     private TestFragment mFragment;
@@ -120,8 +111,8 @@
                 .thenReturn(sAdditionalBatteryInfoIntent);
         mFragment.mBatteryUtils = Mockito.spy(new BatteryUtils(mRealContext));
         ReflectionHelpers.setField(mFragment, "mVisibilityLoggerMixin", mVisibilityLoggerMixin);
-        ReflectionHelpers.setField(mFragment, "mBatteryBroadcastReceiver",
-                mBatteryBroadcastReceiver);
+        ReflectionHelpers.setField(
+                mFragment, "mBatteryBroadcastReceiver", mBatteryBroadcastReceiver);
         doReturn(mPreferenceScreen).when(mFragment).getPreferenceScreen();
         when(mFragment.getContentResolver()).thenReturn(mContentResolver);
         when(mFragment.findPreference(KEY_BATTERY_USAGE)).thenReturn(mBatteryUsagePreference);
@@ -157,42 +148,46 @@
 
     @Test
     public void restartBatteryTipLoader() {
-        //TODO: add policy logic here when BatteryTipPolicy is implemented
-        doReturn(mBatteryTipLoader).when(mLoaderManager).getLoader(
-                PowerUsageBase.LoaderIndex.BATTERY_TIP_LOADER);
+        // TODO: add policy logic here when BatteryTipPolicy is implemented
+        doReturn(mBatteryTipLoader)
+                .when(mLoaderManager)
+                .getLoader(PowerUsageBase.LoaderIndex.BATTERY_TIP_LOADER);
         doReturn(false).when(mBatteryTipLoader).isReset();
 
         mFragment.restartBatteryTipLoader();
 
-        verify(mLoaderManager).restartLoader(eq(PowerUsageBase.LoaderIndex.BATTERY_TIP_LOADER),
-                eq(Bundle.EMPTY), any());
+        verify(mLoaderManager)
+                .restartLoader(
+                        eq(PowerUsageBase.LoaderIndex.BATTERY_TIP_LOADER), eq(Bundle.EMPTY), any());
     }
 
     @Test
     public void restartBatteryTipLoader_nullLoader_initLoader() {
-        doReturn(null).when(mLoaderManager).getLoader(
-                PowerUsageBase.LoaderIndex.BATTERY_TIP_LOADER);
+        doReturn(null)
+                .when(mLoaderManager)
+                .getLoader(PowerUsageBase.LoaderIndex.BATTERY_TIP_LOADER);
 
         mFragment.restartBatteryTipLoader();
 
-        verify(mLoaderManager).initLoader(eq(PowerUsageBase.LoaderIndex.BATTERY_TIP_LOADER),
-                eq(Bundle.EMPTY), any());
+        verify(mLoaderManager)
+                .initLoader(
+                        eq(PowerUsageBase.LoaderIndex.BATTERY_TIP_LOADER), eq(Bundle.EMPTY), any());
     }
 
     @Test
     public void restartBatteryTipLoader_loaderReset_initLoader() {
-        doReturn(mBatteryTipLoader).when(mLoaderManager).getLoader(
-                PowerUsageBase.LoaderIndex.BATTERY_TIP_LOADER);
+        doReturn(mBatteryTipLoader)
+                .when(mLoaderManager)
+                .getLoader(PowerUsageBase.LoaderIndex.BATTERY_TIP_LOADER);
         doReturn(true).when(mBatteryTipLoader).isReset();
 
         mFragment.restartBatteryTipLoader();
 
-
-        verify(mLoaderManager).initLoader(eq(PowerUsageBase.LoaderIndex.BATTERY_TIP_LOADER),
-                eq(Bundle.EMPTY), any());
+        verify(mLoaderManager)
+                .initLoader(
+                        eq(PowerUsageBase.LoaderIndex.BATTERY_TIP_LOADER), eq(Bundle.EMPTY), any());
     }
 
-
     @Test
     public void refreshUi_contextNull_doNothing() {
         doReturn(null).when(mFragment).getContext();
@@ -256,18 +251,19 @@
     public void onResume_registerContentObserver() {
         mFragment.onResume();
 
-        verify(mContentResolver).registerContentObserver(
-                Settings.Global.getUriFor(Settings.Global.BATTERY_ESTIMATES_LAST_UPDATE_TIME),
-                false,
-                mFragment.mSettingsObserver);
+        verify(mContentResolver)
+                .registerContentObserver(
+                        Settings.Global.getUriFor(
+                                Settings.Global.BATTERY_ESTIMATES_LAST_UPDATE_TIME),
+                        false,
+                        mFragment.mSettingsObserver);
     }
 
     @Test
     public void onPause_unregisterContentObserver() {
         mFragment.onPause();
 
-        verify(mContentResolver).unregisterContentObserver(
-                mFragment.mSettingsObserver);
+        verify(mContentResolver).unregisterContentObserver(mFragment.mSettingsObserver);
     }
 
     @Test
@@ -276,9 +272,11 @@
 
         mFragment.restartBatteryInfoLoader();
 
-        verify(mLoaderManager, never()).restartLoader(
-                PowerUsageBase.LoaderIndex.BATTERY_INFO_LOADER, Bundle.EMPTY,
-                mFragment.mBatteryInfoLoaderCallbacks);
+        verify(mLoaderManager, never())
+                .restartLoader(
+                        PowerUsageBase.LoaderIndex.BATTERY_INFO_LOADER,
+                        Bundle.EMPTY,
+                        mFragment.mBatteryInfoLoaderCallbacks);
     }
 
     @Test
@@ -287,45 +285,59 @@
 
         mFragment.restartBatteryInfoLoader();
 
-        verify(mLoaderManager, never()).restartLoader(
-                PowerUsageBase.LoaderIndex.BATTERY_INFO_LOADER, Bundle.EMPTY,
-                mFragment.mBatteryInfoLoaderCallbacks);
+        verify(mLoaderManager, never())
+                .restartLoader(
+                        PowerUsageBase.LoaderIndex.BATTERY_INFO_LOADER,
+                        Bundle.EMPTY,
+                        mFragment.mBatteryInfoLoaderCallbacks);
     }
 
     @Test
     public void restartBatteryInfoLoader() {
-        doReturn(mBatteryInfoLoader).when(mLoaderManager).getLoader(
-                PowerUsageBase.LoaderIndex.BATTERY_INFO_LOADER);
+        doReturn(mBatteryInfoLoader)
+                .when(mLoaderManager)
+                .getLoader(PowerUsageBase.LoaderIndex.BATTERY_INFO_LOADER);
         doReturn(false).when(mBatteryTipLoader).isReset();
 
         mFragment.restartBatteryInfoLoader();
 
-        verify(mLoaderManager).restartLoader(eq(PowerUsageBase.LoaderIndex.BATTERY_INFO_LOADER),
-                eq(Bundle.EMPTY), any());
+        verify(mLoaderManager)
+                .restartLoader(
+                        eq(PowerUsageBase.LoaderIndex.BATTERY_INFO_LOADER),
+                        eq(Bundle.EMPTY),
+                        any());
     }
 
     @Test
     public void restartBatteryInfoLoader_nullLoader_initLoader() {
-        doReturn(null).when(mLoaderManager).getLoader(
-                PowerUsageBase.LoaderIndex.BATTERY_INFO_LOADER);
+        doReturn(null)
+                .when(mLoaderManager)
+                .getLoader(PowerUsageBase.LoaderIndex.BATTERY_INFO_LOADER);
 
         mFragment.restartBatteryInfoLoader();
 
-        verify(mLoaderManager).initLoader(eq(PowerUsageBase.LoaderIndex.BATTERY_INFO_LOADER),
-                eq(Bundle.EMPTY), any());
+        verify(mLoaderManager)
+                .initLoader(
+                        eq(PowerUsageBase.LoaderIndex.BATTERY_INFO_LOADER),
+                        eq(Bundle.EMPTY),
+                        any());
     }
 
     @Test
     public void restartBatteryInfoLoader_loaderReset_initLoader() {
         mFragment.setIsBatteryPresent(true);
-        doReturn(mBatteryInfoLoader).when(mLoaderManager).getLoader(
-                PowerUsageBase.LoaderIndex.BATTERY_INFO_LOADER);
+        doReturn(mBatteryInfoLoader)
+                .when(mLoaderManager)
+                .getLoader(PowerUsageBase.LoaderIndex.BATTERY_INFO_LOADER);
         doReturn(true).when(mBatteryInfoLoader).isReset();
 
         mFragment.restartBatteryInfoLoader();
 
-        verify(mLoaderManager).initLoader(eq(PowerUsageBase.LoaderIndex.BATTERY_INFO_LOADER),
-                eq(Bundle.EMPTY), any());
+        verify(mLoaderManager)
+                .initLoader(
+                        eq(PowerUsageBase.LoaderIndex.BATTERY_INFO_LOADER),
+                        eq(Bundle.EMPTY),
+                        any());
     }
 
     private static class TestFragment extends PowerUsageSummary {
@@ -357,5 +369,4 @@
             return mLoaderManager;
         }
     }
-
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/ScreenOnTimeControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/ScreenOnTimeControllerTest.java
index acf4a2e..282ec9e 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/ScreenOnTimeControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/ScreenOnTimeControllerTest.java
@@ -46,10 +46,8 @@
     private Context mContext;
     private ScreenOnTimeController mScreenOnTimeController;
 
-    @Mock
-    private PreferenceCategory mRootPreference;
-    @Mock
-    private TextViewPreference mScreenOnTimeTextPreference;
+    @Mock private PreferenceCategory mRootPreference;
+    @Mock private TextViewPreference mScreenOnTimeTextPreference;
 
     @Before
     public void setUp() {
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/SpinnerPreferenceTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/SpinnerPreferenceTest.java
index 4c2192c..8050984 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/SpinnerPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/SpinnerPreferenceTest.java
@@ -42,14 +42,13 @@
     private Context mContext;
     private SpinnerPreference mSpinnerPreference;
 
-    @Mock
-    private Spinner mMockSpinner;
+    @Mock private Spinner mMockSpinner;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = spy(RuntimeEnvironment.application);
-        mSpinnerPreference = new SpinnerPreference(mContext, /*attrs=*/ null);
+        mSpinnerPreference = new SpinnerPreference(mContext, /* attrs= */ null);
     }
 
     @Test
@@ -59,7 +58,7 @@
 
     @Test
     public void initializeSpinner_returnExpectedResult() {
-        final String[] items = new String[]{"item1", "item2"};
+        final String[] items = new String[] {"item1", "item2"};
         mSpinnerPreference.initializeSpinner(items, null);
         assertThat(mSpinnerPreference.mItems).isEqualTo(items);
     }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/TextViewPreferenceTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/TextViewPreferenceTest.java
index ca7e9dd..caccc87 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/TextViewPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/TextViewPreferenceTest.java
@@ -41,13 +41,13 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = spy(RuntimeEnvironment.application);
-        mTextViewPreference = new TextViewPreference(mContext, /*attrs=*/ null);
+        mTextViewPreference = new TextViewPreference(mContext, /* attrs= */ null);
     }
 
     @Test
     public void constructor_returnExpectedResult() {
-        assertThat(mTextViewPreference.getLayoutResource()).isEqualTo(
-                R.layout.preference_text_view);
+        assertThat(mTextViewPreference.getLayoutResource())
+                .isEqualTo(R.layout.preference_text_view);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/TimestampUtilsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/TimestampUtilsTest.java
index 23787c7..1aae61c 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/TimestampUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/TimestampUtilsTest.java
@@ -36,11 +36,9 @@
     @Test
     public void getNextHourTimestamp_returnExpectedResult() {
         // 2021-02-28 06:00:00 => 2021-02-28 07:00:00
-        assertThat(TimestampUtils.getNextHourTimestamp(1614463200000L))
-                .isEqualTo(1614466800000L);
+        assertThat(TimestampUtils.getNextHourTimestamp(1614463200000L)).isEqualTo(1614466800000L);
         // 2021-12-31 23:59:59 => 2022-01-01 00:00:00
-        assertThat(TimestampUtils.getNextHourTimestamp(16409663999999L))
-                .isEqualTo(16409664000000L);
+        assertThat(TimestampUtils.getNextHourTimestamp(16409663999999L)).isEqualTo(16409664000000L);
     }
 
     @Test
@@ -66,11 +64,9 @@
     @Test
     public void getTimestampOfNextDay_returnExpectedResult() {
         // 2021-02-28 06:00:00 => 2021-03-01 00:00:00
-        assertThat(TimestampUtils.getNextDayTimestamp(1614463200000L))
-                .isEqualTo(1614528000000L);
+        assertThat(TimestampUtils.getNextDayTimestamp(1614463200000L)).isEqualTo(1614528000000L);
         // 2021-12-31 16:00:00 => 2022-01-01 00:00:00
-        assertThat(TimestampUtils.getNextDayTimestamp(1640937600000L))
-                .isEqualTo(1640966400000L);
+        assertThat(TimestampUtils.getNextDayTimestamp(1640937600000L)).isEqualTo(1640966400000L);
     }
 
     @Test
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 45d4065..d998106 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
@@ -52,7 +52,7 @@
         mPrintWriter = new PrintWriter(mStringWriter);
         mContext = ApplicationProvider.getApplicationContext();
         mBugReportContentProvider = new BugReportContentProvider();
-        mBugReportContentProvider.attachInfo(mContext, /*info=*/ null);
+        mBugReportContentProvider.attachInfo(mContext, /* info= */ null);
         // Inserts fake data into database for testing.
         BatteryTestUtils.setUpBatteryStateDatabase(mContext);
         BatteryTestUtils.insertDataToBatteryStateTable(
@@ -60,15 +60,15 @@
         BatteryTestUtils.insertDataToBatteryStateTable(
                 mContext, System.currentTimeMillis(), PACKAGE_NAME2);
         BatteryTestUtils.insertDataToAppUsageEventTable(
-                mContext, /*userId=*/ 1, System.currentTimeMillis(), PACKAGE_NAME3);
+                mContext, /* userId= */ 1, System.currentTimeMillis(), PACKAGE_NAME3);
         BatteryTestUtils.insertDataToAppUsageEventTable(
-                mContext, /*userId=*/ 1, System.currentTimeMillis(), PACKAGE_NAME4);
+                mContext, /* userId= */ 1, System.currentTimeMillis(), PACKAGE_NAME4);
     }
 
     @Test
     public void dump_nullContext_notDumpsBatteryUsageData() {
         mBugReportContentProvider = new BugReportContentProvider();
-        mBugReportContentProvider.attachInfo(/*context=*/ null, /*info=*/ null);
+        mBugReportContentProvider.attachInfo(/* context= */ null, /* info= */ null);
 
         mBugReportContentProvider.dump(FileDescriptor.out, mPrintWriter, new String[] {});
 
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/AppUsageEventDaoTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/AppUsageEventDaoTest.java
index 4883d4f..219120e 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/AppUsageEventDaoTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/AppUsageEventDaoTest.java
@@ -61,13 +61,13 @@
         BatteryTestUtils.insertDataToAppUsageEventTable(
                 mContext, USER_ID2, TIMESTAMP2, PACKAGE_NAME2);
         BatteryTestUtils.insertDataToAppUsageEventTable(
-                mContext, USER_ID1, TIMESTAMP1, PACKAGE_NAME1, /*multiple=*/ true);
+                mContext, USER_ID1, TIMESTAMP1, PACKAGE_NAME1, /* multiple= */ true);
     }
 
     @After
     public void closeDb() {
         mDatabase.close();
-        BatteryStateDatabase.setBatteryStateDatabase(/*database=*/ null);
+        BatteryStateDatabase.setBatteryStateDatabase(/* database= */ null);
     }
 
     @Test
@@ -147,7 +147,7 @@
 
     @Test
     public void getInstance_createNewInstance() throws Exception {
-        BatteryStateDatabase.setBatteryStateDatabase(/*database=*/ null);
+        BatteryStateDatabase.setBatteryStateDatabase(/* database= */ null);
         assertThat(BatteryStateDatabase.getInstance(mContext)).isNotNull();
     }
 
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/AppUsageEventEntityTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/AppUsageEventEntityTest.java
index 3cbf845..eb72b96 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/AppUsageEventEntityTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/AppUsageEventEntityTest.java
@@ -35,16 +35,16 @@
         final int instanceId = 100001;
         final String taskRootPackageName = "com.android.settings2";
 
-        AppUsageEventEntity entity = AppUsageEventEntity
-                .newBuilder()
-                .setUid(uid)
-                .setUserId(userId)
-                .setTimestamp(timestamp)
-                .setAppUsageEventType(appUsageEventType)
-                .setPackageName(packageName)
-                .setInstanceId(instanceId)
-                .setTaskRootPackageName(taskRootPackageName)
-                .build();
+        AppUsageEventEntity entity =
+                AppUsageEventEntity.newBuilder()
+                        .setUid(uid)
+                        .setUserId(userId)
+                        .setTimestamp(timestamp)
+                        .setAppUsageEventType(appUsageEventType)
+                        .setPackageName(packageName)
+                        .setInstanceId(instanceId)
+                        .setTaskRootPackageName(taskRootPackageName)
+                        .build();
 
         // Verifies the app relative information.
         assertThat(entity.uid).isEqualTo(uid);
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 8462867..d36f2b5 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
@@ -57,22 +57,23 @@
     @After
     public void closeDb() {
         mDatabase.close();
-        BatteryStateDatabase.setBatteryStateDatabase(/*database=*/ null);
+        BatteryStateDatabase.setBatteryStateDatabase(/* database= */ null);
     }
 
-
     @Test
     public void getLastFullChargeTimestamp_normalFlow_expectedBehavior() throws Exception {
-        mBatteryEventDao.insert(BatteryEventEntity.newBuilder()
-                .setTimestamp(TIMESTAMP1)
-                .setBatteryEventType(3)
-                .setBatteryLevel(100)
-                .build());
-        mBatteryEventDao.insert(BatteryEventEntity.newBuilder()
-                .setTimestamp(TIMESTAMP2)
-                .setBatteryEventType(4)
-                .setBatteryLevel(96)
-                .build());
+        mBatteryEventDao.insert(
+                BatteryEventEntity.newBuilder()
+                        .setTimestamp(TIMESTAMP1)
+                        .setBatteryEventType(3)
+                        .setBatteryLevel(100)
+                        .build());
+        mBatteryEventDao.insert(
+                BatteryEventEntity.newBuilder()
+                        .setTimestamp(TIMESTAMP2)
+                        .setBatteryEventType(4)
+                        .setBatteryLevel(96)
+                        .build());
 
         final Cursor cursor = mBatteryEventDao.getLastFullChargeTimestamp();
         assertThat(cursor.getCount()).isEqualTo(1);
@@ -83,11 +84,12 @@
     @Test
     public void getLastFullChargeTimestamp_noLastFullChargeTime_returns0() throws Exception {
         mBatteryEventDao.clearAll();
-        mBatteryEventDao.insert(BatteryEventEntity.newBuilder()
-                .setTimestamp(TIMESTAMP2)
-                .setBatteryEventType(4)
-                .setBatteryLevel(96)
-                .build());
+        mBatteryEventDao.insert(
+                BatteryEventEntity.newBuilder()
+                        .setTimestamp(TIMESTAMP2)
+                        .setBatteryEventType(4)
+                        .setBatteryLevel(96)
+                        .build());
 
         final Cursor cursor = mBatteryEventDao.getLastFullChargeTimestamp();
 
@@ -98,26 +100,25 @@
 
     @Test
     public void getAllAfter_normalFlow_returnExpectedResult() {
-        mBatteryEventDao.insert(BatteryEventEntity.newBuilder()
-                .setTimestamp(100L)
-                .setBatteryEventType(1)
-                .setBatteryLevel(66)
-                .build());
-        mBatteryEventDao.insert(BatteryEventEntity.newBuilder()
-                .setTimestamp(200L)
-                .setBatteryEventType(2)
-                .setBatteryLevel(88)
-                .build());
+        mBatteryEventDao.insert(
+                BatteryEventEntity.newBuilder()
+                        .setTimestamp(100L)
+                        .setBatteryEventType(1)
+                        .setBatteryLevel(66)
+                        .build());
+        mBatteryEventDao.insert(
+                BatteryEventEntity.newBuilder()
+                        .setTimestamp(200L)
+                        .setBatteryEventType(2)
+                        .setBatteryLevel(88)
+                        .build());
 
         final Cursor cursor = mBatteryEventDao.getAllAfter(160L, List.of(1, 2));
         assertThat(cursor.getCount()).isEqualTo(1);
         cursor.moveToFirst();
-        assertThat(cursor.getLong(cursor.getColumnIndex(KEY_TIMESTAMP)))
-                .isEqualTo(200L);
-        assertThat(cursor.getInt(cursor.getColumnIndex(KEY_BATTERY_EVENT_TYPE)))
-                .isEqualTo(2);
-        assertThat(cursor.getInt(cursor.getColumnIndex(KEY_BATTERY_LEVEL)))
-                .isEqualTo(88);
+        assertThat(cursor.getLong(cursor.getColumnIndex(KEY_TIMESTAMP))).isEqualTo(200L);
+        assertThat(cursor.getInt(cursor.getColumnIndex(KEY_BATTERY_EVENT_TYPE))).isEqualTo(2);
+        assertThat(cursor.getInt(cursor.getColumnIndex(KEY_BATTERY_LEVEL))).isEqualTo(88);
 
         mBatteryEventDao.clearAll();
         assertThat(mBatteryEventDao.getAll()).isEmpty();
@@ -125,26 +126,51 @@
 
     @Test
     public void getAllAfter_filterBatteryTypes_returnExpectedResult() {
-        mBatteryEventDao.insert(BatteryEventEntity.newBuilder()
-                .setTimestamp(100L)
-                .setBatteryEventType(1)
-                .setBatteryLevel(66)
-                .build());
-        mBatteryEventDao.insert(BatteryEventEntity.newBuilder()
-                .setTimestamp(200L)
-                .setBatteryEventType(2)
-                .setBatteryLevel(88)
-                .build());
+        mBatteryEventDao.insert(
+                BatteryEventEntity.newBuilder()
+                        .setTimestamp(100L)
+                        .setBatteryEventType(1)
+                        .setBatteryLevel(66)
+                        .build());
+        mBatteryEventDao.insert(
+                BatteryEventEntity.newBuilder()
+                        .setTimestamp(200L)
+                        .setBatteryEventType(2)
+                        .setBatteryLevel(88)
+                        .build());
 
         final Cursor cursor = mBatteryEventDao.getAllAfter(0L, List.of(1));
         assertThat(cursor.getCount()).isEqualTo(1);
         cursor.moveToFirst();
-        assertThat(cursor.getLong(cursor.getColumnIndex(KEY_TIMESTAMP)))
-                .isEqualTo(100L);
-        assertThat(cursor.getInt(cursor.getColumnIndex(KEY_BATTERY_EVENT_TYPE)))
-                .isEqualTo(1);
-        assertThat(cursor.getInt(cursor.getColumnIndex(KEY_BATTERY_LEVEL)))
-                .isEqualTo(66);
+        assertThat(cursor.getLong(cursor.getColumnIndex(KEY_TIMESTAMP))).isEqualTo(100L);
+        assertThat(cursor.getInt(cursor.getColumnIndex(KEY_BATTERY_EVENT_TYPE))).isEqualTo(1);
+        assertThat(cursor.getInt(cursor.getColumnIndex(KEY_BATTERY_LEVEL))).isEqualTo(66);
+
+        mBatteryEventDao.clearAll();
+        assertThat(mBatteryEventDao.getAll()).isEmpty();
+    }
+
+    @Test
+    public void getAllAfter_filterTimestamp_returnExpectedResult() {
+        mBatteryEventDao.insert(
+                BatteryEventEntity.newBuilder()
+                        .setTimestamp(100L)
+                        .setBatteryEventType(1)
+                        .setBatteryLevel(66)
+                        .build());
+        mBatteryEventDao.insert(
+                BatteryEventEntity.newBuilder()
+                        .setTimestamp(200L)
+                        .setBatteryEventType(1)
+                        .setBatteryLevel(88)
+                        .build());
+
+        final Cursor cursor = mBatteryEventDao.getAllAfter(200L, List.of(1));
+        assertThat(cursor.getCount()).isEqualTo(1);
+        cursor.moveToFirst();
+        assertThat(cursor.getLong(cursor.getColumnIndex(KEY_TIMESTAMP))).isEqualTo(200L);
+        assertThat(cursor.getInt(cursor.getColumnIndex(KEY_BATTERY_EVENT_TYPE))).isEqualTo(1);
+        assertThat(cursor.getInt(cursor.getColumnIndex(KEY_BATTERY_LEVEL))).isEqualTo(88);
 
         mBatteryEventDao.clearAll();
         assertThat(mBatteryEventDao.getAll()).isEmpty();
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventEntityTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventEntityTest.java
index a34d651..6aa7157 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventEntityTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventEntityTest.java
@@ -32,12 +32,12 @@
         final int batteryEventType = 1;
         final int batteryLevel = 66;
 
-        BatteryEventEntity entity = BatteryEventEntity
-                .newBuilder()
-                .setTimestamp(timestamp)
-                .setBatteryEventType(batteryEventType)
-                .setBatteryLevel(batteryLevel)
-                .build();
+        BatteryEventEntity entity =
+                BatteryEventEntity.newBuilder()
+                        .setTimestamp(timestamp)
+                        .setBatteryEventType(batteryEventType)
+                        .setBatteryLevel(batteryLevel)
+                        .build();
 
         // Verifies the app relative information.
         assertThat(entity.timestamp).isEqualTo(timestamp);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDaoTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDaoTest.java
index b3dba4e..cc1d7b4 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDaoTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDaoTest.java
@@ -57,14 +57,17 @@
         BatteryTestUtils.insertDataToBatteryStateTable(mContext, TIMESTAMP3, PACKAGE_NAME3);
         BatteryTestUtils.insertDataToBatteryStateTable(mContext, TIMESTAMP2, PACKAGE_NAME2);
         BatteryTestUtils.insertDataToBatteryStateTable(
-                mContext, TIMESTAMP1, PACKAGE_NAME1, /*multiple=*/ true,
-                /*isFullChargeStart=*/ true);
+                mContext,
+                TIMESTAMP1,
+                PACKAGE_NAME1,
+                /* multiple= */ true,
+                /* isFullChargeStart= */ true);
     }
 
     @After
     public void closeDb() {
         mDatabase.close();
-        BatteryStateDatabase.setBatteryStateDatabase(/*database=*/ null);
+        BatteryStateDatabase.setBatteryStateDatabase(/* database= */ null);
     }
 
     @Test
@@ -136,29 +139,25 @@
 
     @Test
     public void getInstance_createNewInstance_returnsExpectedResult() throws Exception {
-        BatteryStateDatabase.setBatteryStateDatabase(/*database=*/ null);
+        BatteryStateDatabase.setBatteryStateDatabase(/* database= */ null);
         assertThat(BatteryStateDatabase.getInstance(mContext)).isNotNull();
     }
 
     @Test
     public void getDistinctTimestampCount_normalFlow_returnsExpectedResult() {
-        assertThat(mBatteryStateDao.getDistinctTimestampCount(/*timestamp=*/ 0))
-                .isEqualTo(3);
-        assertThat(mBatteryStateDao.getDistinctTimestampCount(TIMESTAMP1))
-                .isEqualTo(2);
+        assertThat(mBatteryStateDao.getDistinctTimestampCount(/* timestamp= */ 0)).isEqualTo(3);
+        assertThat(mBatteryStateDao.getDistinctTimestampCount(TIMESTAMP1)).isEqualTo(2);
     }
 
     @Test
     public void getDistinctTimestamps_normalFlow_returnsExpectedResult() {
-        final List<Long> timestamps =
-                mBatteryStateDao.getDistinctTimestamps(/*timestamp=*/ 0);
+        final List<Long> timestamps = mBatteryStateDao.getDistinctTimestamps(/* timestamp= */ 0);
 
         assertThat(timestamps).hasSize(3);
         assertThat(timestamps).containsExactly(TIMESTAMP1, TIMESTAMP2, TIMESTAMP3);
     }
 
-    private static void assertBatteryState(
-            BatteryState state, long timestamp, String packageName) {
+    private static void assertBatteryState(BatteryState state, long timestamp, String packageName) {
         assertThat(state.timestamp).isEqualTo(timestamp);
         assertThat(state.packageName).isEqualTo(packageName);
     }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateTest.java
index 9b9003e..e48f250 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateTest.java
@@ -41,15 +41,13 @@
     @Before
     public void setUp() {
         final DeviceBatteryState deviceBatteryState =
-                DeviceBatteryState
-                        .newBuilder()
+                DeviceBatteryState.newBuilder()
                         .setBatteryLevel(BATTERY_LEVEL)
                         .setBatteryStatus(BATTERY_STATUS)
                         .setBatteryHealth(BATTERY_HEALTH)
                         .build();
         mBatteryInformation =
-                BatteryInformation
-                        .newBuilder()
+                BatteryInformation.newBuilder()
                         .setDeviceBatteryState(deviceBatteryState)
                         .setBootTimestamp(101L)
                         .setIsHidden(true)
@@ -78,8 +76,8 @@
         assertThat(state.timestamp).isEqualTo(100001L);
         assertThat(state.consumerType).isEqualTo(2);
         assertThat(state.isFullChargeCycleStart).isTrue();
-        assertThat(state.batteryInformation).isEqualTo(
-                ConvertUtils.convertBatteryInformationToString(mBatteryInformation));
+        assertThat(state.batteryInformation)
+                .isEqualTo(ConvertUtils.convertBatteryInformationToString(mBatteryInformation));
     }
 
     private static BatteryState create(BatteryInformation batteryInformation) {
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotDaoTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotDaoTest.java
index 6f73954..1501bbd 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotDaoTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotDaoTest.java
@@ -61,7 +61,7 @@
     @After
     public void closeDb() {
         mDatabase.close();
-        BatteryStateDatabase.setBatteryStateDatabase(/*database=*/ null);
+        BatteryStateDatabase.setBatteryStateDatabase(/* database= */ null);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotEntityTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotEntityTest.java
index ef276eb..4c037b9 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotEntityTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotEntityTest.java
@@ -31,11 +31,11 @@
         final long timestamp = 10001L;
         final String batteryUsageSlotString = "batteryUsageSlotString";
 
-        BatteryUsageSlotEntity entity = BatteryUsageSlotEntity
-                .newBuilder()
-                .setTimestamp(timestamp)
-                .setBatteryUsageSlot(batteryUsageSlotString)
-                .build();
+        BatteryUsageSlotEntity entity =
+                BatteryUsageSlotEntity.newBuilder()
+                        .setTimestamp(timestamp)
+                        .setBatteryUsageSlot(batteryUsageSlotString)
+                        .build();
 
         // Verifies the app relative information.
         assertThat(entity.timestamp).isEqualTo(timestamp);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/datasaver/DynamicDenylistManagerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/datasaver/DynamicDenylistManagerTest.java
new file mode 100644
index 0000000..3202610
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/fuelgauge/datasaver/DynamicDenylistManagerTest.java
@@ -0,0 +1,384 @@
+/*
+ * 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.datasaver;
+
+import static android.net.NetworkPolicyManager.POLICY_NONE;
+import static android.net.NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND;
+
+import static com.android.settings.Utils.SETTINGS_PACKAGE_NAME;
+import static com.android.settings.fuelgauge.datasaver.DynamicDenylistManager.PREF_KEY_MANUAL_DENYLIST_SYNCED;
+
+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.ArgumentMatchers.eq;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.net.NetworkPolicyManager;
+import android.util.ArraySet;
+
+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 java.util.Collections;
+import java.util.List;
+import java.util.Set;
+
+@RunWith(RobolectricTestRunner.class)
+public class DynamicDenylistManagerTest {
+
+    private static final int[] EMPTY_ARRAY = new int[] {};
+    private static final String FAKE_UID_1 = "1001";
+    private static final String FAKE_UID_2 = "1002";
+    private static final int FAKE_UID_1_INT = Integer.parseInt(FAKE_UID_1);
+    private static final int FAKE_UID_2_INT = Integer.parseInt(FAKE_UID_2);
+
+    private SharedPreferences mManualDenyListPref;
+    private SharedPreferences mDynamicDenyListPref;
+    private DynamicDenylistManager mDynamicDenylistManager;
+
+    @Mock
+    private NetworkPolicyManager mNetworkPolicyManager;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+    }
+
+    @After
+    public void tearDown() {
+        mDynamicDenylistManager.clearSharedPreferences();
+    }
+
+    @Test
+    public void init_withoutExistedRejectPolicy_createWithExpectedValue() {
+        initDynamicDenylistManager(EMPTY_ARRAY);
+
+        assertThat(mManualDenyListPref.getAll()).hasSize(1);
+        assertTrue(mManualDenyListPref.contains(PREF_KEY_MANUAL_DENYLIST_SYNCED));
+    }
+
+    @Test
+    public void init_withExistedRejectPolicy_createWithExpectedValue() {
+        initDynamicDenylistManager(new int[] {FAKE_UID_1_INT, FAKE_UID_2_INT});
+
+        assertThat(mManualDenyListPref.getAll()).hasSize(3);
+        assertTrue(mManualDenyListPref.contains(PREF_KEY_MANUAL_DENYLIST_SYNCED));
+        assertTrue(mManualDenyListPref.contains(FAKE_UID_1));
+        assertTrue(mManualDenyListPref.contains(FAKE_UID_2));
+    }
+
+    @Test
+    public void getManualDenylistPref_initiated_containsExpectedValue() {
+        initDynamicDenylistManager(EMPTY_ARRAY);
+
+        setupPreference(mManualDenyListPref, FAKE_UID_1);
+
+        assertTrue(mManualDenyListPref.contains(FAKE_UID_1));
+    }
+
+    @Test
+    public void getDynamicDenylistPref_initiated_containsExpectedValue() {
+        initDynamicDenylistManager(EMPTY_ARRAY);
+
+        setupPreference(mDynamicDenyListPref, FAKE_UID_1);
+
+        assertTrue(mDynamicDenyListPref.contains(FAKE_UID_1));
+    }
+
+    @Test
+    public void updateManualDenylist_policyReject_addsUid() {
+        initDynamicDenylistManager(EMPTY_ARRAY);
+
+        mDynamicDenylistManager.updateDenylistPref(FAKE_UID_1_INT,
+                POLICY_REJECT_METERED_BACKGROUND);
+
+        assertTrue(mManualDenyListPref.contains(FAKE_UID_1));
+    }
+
+    @Test
+    public void updateManualDenylist_policyNone_removesUid() {
+        initDynamicDenylistManager(EMPTY_ARRAY);
+        setupPreference(mManualDenyListPref, FAKE_UID_1);
+        assertTrue(mManualDenyListPref.contains(FAKE_UID_1));
+
+        mDynamicDenylistManager.updateDenylistPref(FAKE_UID_1_INT, POLICY_NONE);
+
+        assertFalse(mManualDenyListPref.contains(FAKE_UID_1));
+    }
+
+    @Test
+    public void updateManualDenylist_samePolicy_doNothing() {
+        initDynamicDenylistManager(EMPTY_ARRAY);
+        setupPreference(mManualDenyListPref, FAKE_UID_1);
+        assertTrue(mManualDenyListPref.contains(FAKE_UID_1));
+        assertThat(mManualDenyListPref.getAll()).hasSize(2);
+
+        mDynamicDenylistManager.updateDenylistPref(FAKE_UID_1_INT,
+                POLICY_REJECT_METERED_BACKGROUND);
+
+        assertThat(mManualDenyListPref.getAll()).hasSize(2);
+    }
+
+    @Test
+    public void setUidPolicyLocked_invokeSetUidPolicy() {
+        initDynamicDenylistManager(EMPTY_ARRAY);
+
+        mDynamicDenylistManager.setUidPolicyLocked(FAKE_UID_1_INT,
+                POLICY_REJECT_METERED_BACKGROUND);
+
+        assertTrue(mManualDenyListPref.contains(FAKE_UID_1));
+        verify(mNetworkPolicyManager).setUidPolicy(eq(FAKE_UID_1_INT),
+                eq(POLICY_REJECT_METERED_BACKGROUND));
+    }
+
+    @Test
+    public void setDenylist_emptyListAndNoData_doNothing() {
+        initDynamicDenylistManager(EMPTY_ARRAY);
+
+        setDenylist(Collections.emptySet());
+
+        verify(mNetworkPolicyManager, never()).setUidPolicy(anyInt(), anyInt());
+    }
+
+    @Test
+    public void setDenylist_uidDeniedAlready_doNothing() {
+        initDynamicDenylistManager(new int[] {FAKE_UID_1_INT});
+
+        setDenylist(new ArraySet<>(List.of(FAKE_UID_1_INT)));
+
+        verify(mNetworkPolicyManager, never()).setUidPolicy(anyInt(), anyInt());
+    }
+
+    @Test
+    public void setDenylist_sameList_doNothing() {
+        initDynamicDenylistManager(EMPTY_ARRAY);
+        setupPreference(mDynamicDenyListPref, FAKE_UID_2, FAKE_UID_1);
+
+        setDenylist(new ArraySet<>(List.of(FAKE_UID_1_INT, FAKE_UID_2_INT)));
+
+        verify(mNetworkPolicyManager, never()).setUidPolicy(anyInt(), anyInt());
+    }
+
+    @Test
+    public void setDenylist_newListWithOldData_modifyPolicyNoneAndReject() {
+        initDynamicDenylistManager(EMPTY_ARRAY);
+        setupPreference(mDynamicDenyListPref, FAKE_UID_2);
+
+        setDenylist(new ArraySet<>(List.of(FAKE_UID_1_INT)));
+
+        verify(mNetworkPolicyManager).setUidPolicy(FAKE_UID_2_INT, POLICY_NONE);
+        verify(mNetworkPolicyManager).setUidPolicy(FAKE_UID_1_INT,
+                POLICY_REJECT_METERED_BACKGROUND);
+        assertThat(mDynamicDenyListPref.getAll()).hasSize(1);
+        assertTrue(mDynamicDenyListPref.contains(FAKE_UID_1));
+    }
+
+    @Test
+    public void setDenylist_newListWithoutOldData_modifyPolicyReject() {
+        initDynamicDenylistManager(EMPTY_ARRAY);
+
+        setDenylist(new ArraySet<>(List.of(FAKE_UID_1_INT)));
+
+        verify(mNetworkPolicyManager, never()).setUidPolicy(anyInt(), eq(POLICY_NONE));
+        verify(mNetworkPolicyManager).setUidPolicy(FAKE_UID_1_INT,
+                POLICY_REJECT_METERED_BACKGROUND);
+        assertThat(mDynamicDenyListPref.getAll()).hasSize(1);
+        assertTrue(mDynamicDenyListPref.contains(FAKE_UID_1));
+    }
+
+    @Test
+    public void setDenylist_emptyListWithOldData_modifyPolicyNone() {
+        initDynamicDenylistManager(EMPTY_ARRAY);
+        setupPreference(mDynamicDenyListPref, FAKE_UID_2);
+
+        setDenylist(Collections.emptySet());
+
+        verify(mNetworkPolicyManager).setUidPolicy(FAKE_UID_2_INT, POLICY_NONE);
+        verify(mNetworkPolicyManager, never()).setUidPolicy(anyInt(),
+                eq(POLICY_REJECT_METERED_BACKGROUND));
+        assertThat(mDynamicDenyListPref.getAll()).isEmpty();
+    }
+
+    @Test
+    public void isInManualDenylist_returnsFalse() {
+        initDynamicDenylistManager(EMPTY_ARRAY);
+
+        assertFalse(mDynamicDenylistManager.isInManualDenylist(FAKE_UID_1_INT));
+    }
+
+    @Test
+    public void isInManualDenylist_incorrectUid_returnsFalse() {
+        initDynamicDenylistManager(EMPTY_ARRAY);
+
+        mManualDenyListPref.edit().putInt(FAKE_UID_2, POLICY_REJECT_METERED_BACKGROUND).apply();
+
+        assertFalse(mDynamicDenylistManager.isInManualDenylist(FAKE_UID_1_INT));
+    }
+
+    @Test
+    public void isInManualDenylist_initiated_returnsTrue() {
+        initDynamicDenylistManager(EMPTY_ARRAY);
+
+        mManualDenyListPref.edit().putInt(FAKE_UID_1, POLICY_REJECT_METERED_BACKGROUND).apply();
+
+        assertTrue(mDynamicDenylistManager.isInManualDenylist(FAKE_UID_1_INT));
+    }
+
+    @Test
+    public void resetDenylistIfNeeded_nullPackageName_doNothing() {
+        initDynamicDenylistManager(new int[0], new int[] {FAKE_UID_1_INT, FAKE_UID_2_INT});
+
+        mDynamicDenylistManager.resetDenylistIfNeeded(null, false);
+
+        assertThat(mManualDenyListPref.getAll()).hasSize(1);
+        verify(mNetworkPolicyManager, never()).setUidPolicy(anyInt(), eq(POLICY_NONE));
+    }
+
+    @Test
+    public void resetDenylistIfNeeded_invalidPackageName_doNothing() {
+        initDynamicDenylistManager(new int[0], new int[] {FAKE_UID_1_INT, FAKE_UID_2_INT});
+
+        mDynamicDenylistManager.resetDenylistIfNeeded("invalid_package_name", false);
+
+        assertThat(mManualDenyListPref.getAll()).hasSize(1);
+        verify(mNetworkPolicyManager, never()).setUidPolicy(anyInt(), eq(POLICY_NONE));
+    }
+
+    @Test
+    public void resetDenylistIfNeeded_denylistUnchanged_doNothingWithPolicy() {
+        initDynamicDenylistManager(new int[] {FAKE_UID_1_INT, FAKE_UID_2_INT});
+
+        mDynamicDenylistManager.resetDenylistIfNeeded(SETTINGS_PACKAGE_NAME, false);
+
+        verify(mNetworkPolicyManager, never()).setUidPolicy(anyInt(), eq(POLICY_NONE));
+    }
+
+    @Test
+    public void resetDenylistIfNeeded_denylistChanged_resetAndClear() {
+        initDynamicDenylistManager(new int[0], new int[] {FAKE_UID_1_INT, FAKE_UID_2_INT});
+
+        mDynamicDenylistManager.resetDenylistIfNeeded(SETTINGS_PACKAGE_NAME, false);
+
+        assertThat(mManualDenyListPref.getAll()).isEmpty();
+        verify(mNetworkPolicyManager, times(2)).setUidPolicy(anyInt(), eq(POLICY_NONE));
+    }
+
+    @Test
+    public void resetDenylistIfNeeded_forceResetWithNullPackageName_resetAndClear() {
+        initDynamicDenylistManager(new int[0], new int[] {FAKE_UID_2_INT});
+
+        mDynamicDenylistManager.resetDenylistIfNeeded(null, true);
+
+        assertThat(mManualDenyListPref.getAll()).isEmpty();
+        verify(mNetworkPolicyManager).setUidPolicy(eq(FAKE_UID_2_INT), eq(POLICY_NONE));
+    }
+
+    @Test
+    public void resetDenylistIfNeeded_forceResetWithInvalidPackageName_resetAndClear() {
+        initDynamicDenylistManager(new int[0], new int[] {FAKE_UID_1_INT, FAKE_UID_2_INT});
+
+        mDynamicDenylistManager.resetDenylistIfNeeded("invalid_package_name", true);
+
+        assertThat(mManualDenyListPref.getAll()).isEmpty();
+        verify(mNetworkPolicyManager, times(2)).setUidPolicy(anyInt(), eq(POLICY_NONE));
+    }
+
+    @Test
+    public void resetDenylistIfNeeded_forceResetButDenylistUnchanged_doNothingWithPolicy() {
+        initDynamicDenylistManager(new int[] {FAKE_UID_1_INT});
+
+        mDynamicDenylistManager.resetDenylistIfNeeded(SETTINGS_PACKAGE_NAME, true);
+
+        assertThat(mManualDenyListPref.getAll()).isEmpty();
+        verify(mNetworkPolicyManager, never()).setUidPolicy(anyInt(), eq(POLICY_NONE));
+    }
+
+    @Test
+    public void resetDenylistIfNeeded_forceResetWithDenylistChanged_resetAndClear() {
+        initDynamicDenylistManager(new int[0], new int[] {FAKE_UID_1_INT, FAKE_UID_2_INT});
+
+        mDynamicDenylistManager.resetDenylistIfNeeded(SETTINGS_PACKAGE_NAME, true);
+
+        assertThat(mManualDenyListPref.getAll()).isEmpty();
+        verify(mNetworkPolicyManager, times(2)).setUidPolicy(anyInt(), eq(POLICY_NONE));
+    }
+
+    @Test
+    public void clearSharedPreferences_manualDenyListPrefIsEmpty() {
+        initDynamicDenylistManager(EMPTY_ARRAY);
+        mManualDenyListPref.edit().putInt(FAKE_UID_1, POLICY_REJECT_METERED_BACKGROUND).apply();
+        assertThat(mManualDenyListPref.getAll()).hasSize(2);
+        assertTrue(mManualDenyListPref.contains(FAKE_UID_1));
+        assertTrue(mManualDenyListPref.contains(PREF_KEY_MANUAL_DENYLIST_SYNCED));
+
+        mDynamicDenylistManager.clearSharedPreferences();
+
+        assertThat(mManualDenyListPref.getAll()).isEmpty();
+    }
+
+    @Test
+    public void clearSharedPreferences_dynamicDenyListPrefIsEmpty() {
+        initDynamicDenylistManager(EMPTY_ARRAY);
+        mDynamicDenyListPref.edit().putInt(FAKE_UID_1, POLICY_REJECT_METERED_BACKGROUND).apply();
+        assertThat(mDynamicDenyListPref.getAll()).hasSize(1);
+        assertTrue(mDynamicDenyListPref.contains(FAKE_UID_1));
+
+        mDynamicDenylistManager.clearSharedPreferences();
+
+        assertThat(mDynamicDenyListPref.getAll()).isEmpty();
+    }
+
+    private void initDynamicDenylistManager(int[] preload) {
+        initDynamicDenylistManager(preload, preload);
+    }
+
+    private void initDynamicDenylistManager(int[] preload1, int[] preload2) {
+        final Context context = spy(RuntimeEnvironment.application.getApplicationContext());
+        when(mNetworkPolicyManager.getUidsWithPolicy(anyInt()))
+                .thenReturn(preload1).thenReturn(preload2);
+        mDynamicDenylistManager = new DynamicDenylistManager(context, mNetworkPolicyManager);
+        mManualDenyListPref = mDynamicDenylistManager.getManualDenylistPref();
+        mDynamicDenyListPref = mDynamicDenylistManager.getDynamicDenylistPref();
+    }
+
+    private void setDenylist(Set<Integer> packageNameList) {
+        mDynamicDenylistManager.setDenylist(packageNameList);
+    }
+
+    private void setupPreference(SharedPreferences sharedPreferences, String... uids) {
+        final SharedPreferences.Editor editor = sharedPreferences.edit();
+        for (String uid : uids) {
+            editor.putInt(uid, POLICY_REJECT_METERED_BACKGROUND);
+        }
+        editor.apply();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/gestures/PreventRingingSwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/PreventRingingSwitchPreferenceControllerTest.java
index 5f25759..67618c8 100644
--- a/tests/robotests/src/com/android/settings/gestures/PreventRingingSwitchPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/PreventRingingSwitchPreferenceControllerTest.java
@@ -116,7 +116,7 @@
         Settings.Secure.putInt(mContext.getContentResolver(), Settings.Secure.VOLUME_HUSH_GESTURE,
                 VOLUME_HUSH_OFF);
 
-        mController.onSwitchChanged(null, true);
+        mController.onCheckedChanged(null, true);
 
         assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
                 Settings.Secure.VOLUME_HUSH_GESTURE, UNKNOWN)).isEqualTo(VOLUME_HUSH_VIBRATE);
@@ -127,7 +127,7 @@
         Settings.Secure.putInt(mContext.getContentResolver(), Settings.Secure.VOLUME_HUSH_GESTURE,
                 VOLUME_HUSH_MUTE);
 
-        mController.onSwitchChanged(null, false);
+        mController.onCheckedChanged(null, false);
 
         assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
                 Settings.Secure.VOLUME_HUSH_GESTURE, UNKNOWN)).isEqualTo(VOLUME_HUSH_OFF);
@@ -139,7 +139,7 @@
         Settings.Secure.putInt(mContext.getContentResolver(), Settings.Secure.VOLUME_HUSH_GESTURE,
                 VOLUME_HUSH_MUTE);
 
-        mController.onSwitchChanged(null, true);
+        mController.onCheckedChanged(null, true);
 
         assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
                 Settings.Secure.VOLUME_HUSH_GESTURE, UNKNOWN)).isEqualTo(VOLUME_HUSH_MUTE);
@@ -151,7 +151,7 @@
         Settings.Secure.putInt(mContext.getContentResolver(), Settings.Secure.VOLUME_HUSH_GESTURE,
                 VOLUME_HUSH_VIBRATE);
 
-        mController.onSwitchChanged(null, true);
+        mController.onCheckedChanged(null, true);
 
         assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
                 Settings.Secure.VOLUME_HUSH_GESTURE, UNKNOWN)).isEqualTo(VOLUME_HUSH_VIBRATE);
diff --git a/tests/robotests/src/com/android/settings/inputmethod/KeyboardSettingsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/KeyboardSettingsPreferenceControllerTest.java
index 4806b8a..b8070d3 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/KeyboardSettingsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/KeyboardSettingsPreferenceControllerTest.java
@@ -56,6 +56,9 @@
 })
 public class KeyboardSettingsPreferenceControllerTest {
 
+    private static final int VENDOR_ID = 123;
+    private static final int PRODUCT_ID = 456;
+
     @Rule
     public MockitoRule mMockitoRule = MockitoJUnit.rule();
 
@@ -88,7 +91,9 @@
                         "TEST_DEVICE",
                         mInputDeviceIdentifier,
                         "TEST_DEVICE_LABEL",
-                        address);
+                        address,
+                        VENDOR_ID,
+                        PRODUCT_ID);
         List<HardKeyboardDeviceInfo> keyboards = new ArrayList<>();
         keyboards.add(deviceInfo);
         when(mController.getHardKeyboardList()).thenReturn(keyboards);
diff --git a/tests/robotests/src/com/android/settings/inputmethod/PhysicalKeyboardPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/PhysicalKeyboardPreferenceControllerTest.java
index df05203..9ddfd5b 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/PhysicalKeyboardPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/PhysicalKeyboardPreferenceControllerTest.java
@@ -52,6 +52,8 @@
     private static final String DEVICE_NAME = "deviceName";
     private static final String LAYOUT_LABEL = "deviceLayutLabel";
     private static final String BLUETOOTHADDRESS = "deviceBluetoothAddress";
+    private static final int VENDOR_ID = 123;
+    private static final int PRODUCT_ID = 456;
 
     @Mock
     private Context mContext;
@@ -84,7 +86,9 @@
                 DEVICE_NAME,
                 mIdentifier,
                 LAYOUT_LABEL,
-                BLUETOOTHADDRESS));
+                BLUETOOTHADDRESS,
+                VENDOR_ID,
+                PRODUCT_ID));
         mController = spy(new PhysicalKeyboardPreferenceController(context, null));
         when(mController.getKeyboards()).thenReturn(keyboards);
 
diff --git a/tests/robotests/src/com/android/settings/inputmethod/TrackpadBottomPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/TrackpadBottomPreferenceControllerTest.java
index bf2d8b0..fa73768 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/TrackpadBottomPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/TrackpadBottomPreferenceControllerTest.java
@@ -18,6 +18,11 @@
 
 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.verify;
+
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.os.UserHandle;
 import android.provider.Settings;
@@ -26,10 +31,14 @@
 
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
+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.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.annotation.Config;
 
@@ -39,16 +48,20 @@
         com.android.settings.testutils.shadow.ShadowSystemSettings.class,
 })
 public class TrackpadBottomPreferenceControllerTest {
+    @Rule
+    public MockitoRule rule = MockitoJUnit.rule();
 
     private static final String PREFERENCE_KEY = "trackpad_bottom_right_tap";
     private static final String SETTING_KEY = Settings.System.TOUCHPAD_RIGHT_CLICK_ZONE;
 
     private Context mContext;
     private TrackpadBottomPreferenceController mController;
+    private FakeFeatureFactory mFeatureFactory;
 
     @Before
     public void setUp() {
         mContext = ApplicationProvider.getApplicationContext();
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
         mController = new TrackpadBottomPreferenceController(mContext, PREFERENCE_KEY);
     }
 
@@ -74,6 +87,10 @@
                 UserHandle.USER_CURRENT);
 
         assertThat(result).isEqualTo(1);
+        verify(mFeatureFactory.metricsFeatureProvider).action(
+                any(),
+                eq(SettingsEnums.ACTION_GESTURE_BOTTOM_RIGHT_TAP_CHANGED),
+                eq(true));
     }
 
     @Test
@@ -87,6 +104,10 @@
                 UserHandle.USER_CURRENT);
 
         assertThat(result).isEqualTo(0);
+        verify(mFeatureFactory.metricsFeatureProvider).action(
+                any(),
+                eq(SettingsEnums.ACTION_GESTURE_BOTTOM_RIGHT_TAP_CHANGED),
+                eq(false));
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/inputmethod/TrackpadGoBackPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/TrackpadGoBackPreferenceControllerTest.java
index 0e1705e..85d56ef 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/TrackpadGoBackPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/TrackpadGoBackPreferenceControllerTest.java
@@ -18,6 +18,11 @@
 
 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.verify;
+
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.provider.Settings;
 
@@ -25,25 +30,33 @@
 
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
+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.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
 
 /** Tests for {@link TrackpadGoBackPreferenceController} */
 @RunWith(RobolectricTestRunner.class)
 public class TrackpadGoBackPreferenceControllerTest {
+    @Rule
+    public MockitoRule rule = MockitoJUnit.rule();
 
     private static final String PREFERENCE_KEY = "gesture_go_back";
     private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_BACK_ENABLED;
 
     private Context mContext;
     private TrackpadGoBackPreferenceController mController;
+    private FakeFeatureFactory mFeatureFactory;
 
     @Before
     public void setUp() {
         mContext = ApplicationProvider.getApplicationContext();
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
         mController = new TrackpadGoBackPreferenceController(mContext, PREFERENCE_KEY);
     }
 
@@ -65,6 +78,10 @@
         int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1);
 
         assertThat(result).isEqualTo(1);
+        verify(mFeatureFactory.metricsFeatureProvider).action(
+                any(),
+                eq(SettingsEnums.ACTION_GESTURE_GO_BACK_CHANGED),
+                eq(true));
     }
 
     @Test
@@ -74,6 +91,10 @@
         int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1);
 
         assertThat(result).isEqualTo(0);
+        verify(mFeatureFactory.metricsFeatureProvider).action(
+                any(),
+                eq(SettingsEnums.ACTION_GESTURE_GO_BACK_CHANGED),
+                eq(false));
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/inputmethod/TrackpadGoHomePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/TrackpadGoHomePreferenceControllerTest.java
index 3289bcc..6b3b3f5 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/TrackpadGoHomePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/TrackpadGoHomePreferenceControllerTest.java
@@ -18,6 +18,11 @@
 
 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.verify;
+
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.provider.Settings;
 
@@ -25,25 +30,33 @@
 
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
+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.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
 
 /** Tests for {@link TrackpadGoHomePreferenceController} */
 @RunWith(RobolectricTestRunner.class)
 public class TrackpadGoHomePreferenceControllerTest {
+    @Rule
+    public MockitoRule rule = MockitoJUnit.rule();
 
     private static final String PREFERENCE_KEY = "gesture_go_home";
     private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_HOME_ENABLED;
 
     private Context mContext;
     private TrackpadGoHomePreferenceController mController;
+    private FakeFeatureFactory mFeatureFactory;
 
     @Before
     public void setUp() {
         mContext = ApplicationProvider.getApplicationContext();
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
         mController = new TrackpadGoHomePreferenceController(mContext, PREFERENCE_KEY);
     }
 
@@ -65,6 +78,10 @@
         int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1);
 
         assertThat(result).isEqualTo(1);
+        verify(mFeatureFactory.metricsFeatureProvider).action(
+                any(),
+                eq(SettingsEnums.ACTION_GESTURE_GO_HOME_CHANGED),
+                eq(true));
     }
 
     @Test
@@ -74,6 +91,10 @@
         int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1);
 
         assertThat(result).isEqualTo(0);
+        verify(mFeatureFactory.metricsFeatureProvider).action(
+                any(),
+                eq(SettingsEnums.ACTION_GESTURE_GO_HOME_CHANGED),
+                eq(false));
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/inputmethod/TrackpadNotificationsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/TrackpadNotificationsPreferenceControllerTest.java
index 3df1627..005bc9f 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/TrackpadNotificationsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/TrackpadNotificationsPreferenceControllerTest.java
@@ -18,6 +18,11 @@
 
 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.verify;
+
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.provider.Settings;
 
@@ -25,25 +30,33 @@
 
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
+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.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
 
 /** Tests for {@link TrackpadNotificationsPreferenceController} */
 @RunWith(RobolectricTestRunner.class)
 public class TrackpadNotificationsPreferenceControllerTest {
+    @Rule
+    public MockitoRule rule = MockitoJUnit.rule();
 
     private static final String PREFERENCE_KEY = "gesture_notifications";
     private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_NOTIFICATION_ENABLED;
 
     private Context mContext;
     private TrackpadNotificationsPreferenceController mController;
+    private FakeFeatureFactory mFeatureFactory;
 
     @Before
     public void setUp() {
         mContext = ApplicationProvider.getApplicationContext();
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
         mController = new TrackpadNotificationsPreferenceController(mContext, PREFERENCE_KEY);
     }
 
@@ -65,6 +78,10 @@
         int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1);
 
         assertThat(result).isEqualTo(1);
+        verify(mFeatureFactory.metricsFeatureProvider).action(
+                any(),
+                eq(SettingsEnums.ACTION_GESTURE_NOTIFICATION_CHANGED),
+                eq(true));
     }
 
     @Test
@@ -74,6 +91,10 @@
         int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1);
 
         assertThat(result).isEqualTo(0);
+        verify(mFeatureFactory.metricsFeatureProvider).action(
+                any(),
+                eq(SettingsEnums.ACTION_GESTURE_NOTIFICATION_CHANGED),
+                eq(false));
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/inputmethod/TrackpadPointerSpeedPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/TrackpadPointerSpeedPreferenceControllerTest.java
index 25fd962..8449dba 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/TrackpadPointerSpeedPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/TrackpadPointerSpeedPreferenceControllerTest.java
@@ -18,6 +18,11 @@
 
 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.verify;
+
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.hardware.input.InputSettings;
 import android.os.UserHandle;
@@ -26,10 +31,14 @@
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.core.BasePreferenceController;
+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.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.annotation.Config;
 
@@ -39,6 +48,8 @@
         com.android.settings.testutils.shadow.ShadowSystemSettings.class,
 })
 public class TrackpadPointerSpeedPreferenceControllerTest {
+    @Rule
+    public MockitoRule rule = MockitoJUnit.rule();
 
     private static final String PREFERENCE_KEY = "trackpad_pointer_speed";
     private static final String SETTING_KEY = Settings.System.TOUCHPAD_POINTER_SPEED;
@@ -46,10 +57,12 @@
     private Context mContext;
     private TrackpadPointerSpeedPreferenceController mController;
     private int mDefaultSpeed;
+    private FakeFeatureFactory mFeatureFactory;
 
     @Before
     public void setUp() {
         mContext = ApplicationProvider.getApplicationContext();
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
         mController = new TrackpadPointerSpeedPreferenceController(mContext, PREFERENCE_KEY);
         mDefaultSpeed = Settings.System.getIntForUser(
                 mContext.getContentResolver(),
@@ -89,6 +102,10 @@
 
         assertThat(result).isTrue();
         assertThat(mController.getSliderPosition()).isEqualTo(inputSpeed);
+        verify(mFeatureFactory.metricsFeatureProvider).action(
+                any(),
+                eq(SettingsEnums.ACTION_GESTURE_POINTER_SPEED_CHANGED),
+                eq(1));
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/inputmethod/TrackpadRecentAppsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/TrackpadRecentAppsPreferenceControllerTest.java
index dbed542..2ef53a6 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/TrackpadRecentAppsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/TrackpadRecentAppsPreferenceControllerTest.java
@@ -18,6 +18,11 @@
 
 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.verify;
+
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.provider.Settings;
 
@@ -25,25 +30,33 @@
 
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
+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.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
 
 /** Tests for {@link TrackpadRecentAppsPreferenceController} */
 @RunWith(RobolectricTestRunner.class)
 public class TrackpadRecentAppsPreferenceControllerTest {
+    @Rule
+    public MockitoRule rule = MockitoJUnit.rule();
 
     private static final String PREFERENCE_KEY = "gesture_recent_apps";
     private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_OVERVIEW_ENABLED;
 
     private Context mContext;
     private TrackpadRecentAppsPreferenceController mController;
+    private FakeFeatureFactory mFeatureFactory;
 
     @Before
     public void setUp() {
         mContext = ApplicationProvider.getApplicationContext();
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
         mController = new TrackpadRecentAppsPreferenceController(mContext, PREFERENCE_KEY);
     }
 
@@ -65,6 +78,10 @@
         int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1);
 
         assertThat(result).isEqualTo(1);
+        verify(mFeatureFactory.metricsFeatureProvider).action(
+                any(),
+                eq(SettingsEnums.ACTION_GESTURE_RECENT_APPS_CHANGED),
+                eq(true));
     }
 
     @Test
@@ -74,6 +91,10 @@
         int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1);
 
         assertThat(result).isEqualTo(0);
+        verify(mFeatureFactory.metricsFeatureProvider).action(
+                any(),
+                eq(SettingsEnums.ACTION_GESTURE_RECENT_APPS_CHANGED),
+                eq(false));
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/inputmethod/TrackpadReverseScrollingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/TrackpadReverseScrollingPreferenceControllerTest.java
index fbe7407..f545c38 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/TrackpadReverseScrollingPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/TrackpadReverseScrollingPreferenceControllerTest.java
@@ -18,6 +18,11 @@
 
 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.verify;
+
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.os.UserHandle;
 import android.provider.Settings;
@@ -26,10 +31,14 @@
 
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
+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.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.annotation.Config;
 
@@ -39,16 +48,20 @@
         com.android.settings.testutils.shadow.ShadowSystemSettings.class,
 })
 public class TrackpadReverseScrollingPreferenceControllerTest {
+    @Rule
+    public MockitoRule rule = MockitoJUnit.rule();
 
     private static final String PREFERENCE_KEY = "trackpad_reverse_scrolling";
     private static final String SETTING_KEY = Settings.System.TOUCHPAD_NATURAL_SCROLLING;
 
     private Context mContext;
     private TrackpadReverseScrollingPreferenceController mController;
+    private FakeFeatureFactory mFeatureFactory;
 
     @Before
     public void setUp() {
         mContext = ApplicationProvider.getApplicationContext();
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
         mController = new TrackpadReverseScrollingPreferenceController(mContext, PREFERENCE_KEY);
     }
 
@@ -74,6 +87,10 @@
                 UserHandle.USER_CURRENT);
 
         assertThat(result).isEqualTo(0);
+        verify(mFeatureFactory.metricsFeatureProvider).action(
+                any(),
+                eq(SettingsEnums.ACTION_GESTURE_REVERSE_SCROLLING_CHANGED),
+                eq(true));
     }
 
     @Test
@@ -87,6 +104,10 @@
                 UserHandle.USER_CURRENT);
 
         assertThat(result).isEqualTo(1);
+        verify(mFeatureFactory.metricsFeatureProvider).action(
+                any(),
+                eq(SettingsEnums.ACTION_GESTURE_REVERSE_SCROLLING_CHANGED),
+                eq(false));
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/inputmethod/TrackpadSwitchAppsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/TrackpadSwitchAppsPreferenceControllerTest.java
index 3f16025..5e354d2 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/TrackpadSwitchAppsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/TrackpadSwitchAppsPreferenceControllerTest.java
@@ -18,6 +18,11 @@
 
 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.verify;
+
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.provider.Settings;
 
@@ -25,25 +30,33 @@
 
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
+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.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
 
 /** Tests for {@link TrackpadSwitchAppsPreferenceController} */
 @RunWith(RobolectricTestRunner.class)
 public class TrackpadSwitchAppsPreferenceControllerTest {
+    @Rule
+    public MockitoRule rule = MockitoJUnit.rule();
 
     private static final String PREFERENCE_KEY = "gesture_switch_apps";
     private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_QUICK_SWITCH_ENABLED;
 
     private Context mContext;
     private TrackpadSwitchAppsPreferenceController mController;
+    private FakeFeatureFactory mFeatureFactory;
 
     @Before
     public void setUp() {
         mContext = ApplicationProvider.getApplicationContext();
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
         mController = new TrackpadSwitchAppsPreferenceController(mContext, PREFERENCE_KEY);
     }
 
@@ -65,6 +78,10 @@
         int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1);
 
         assertThat(result).isEqualTo(1);
+        verify(mFeatureFactory.metricsFeatureProvider).action(
+                any(),
+                eq(SettingsEnums.ACTION_GESTURE_SWITCH_APPS_CHANGED),
+                eq(true));
     }
 
     @Test
@@ -74,6 +91,10 @@
         int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1);
 
         assertThat(result).isEqualTo(0);
+        verify(mFeatureFactory.metricsFeatureProvider).action(
+                any(),
+                eq(SettingsEnums.ACTION_GESTURE_SWITCH_APPS_CHANGED),
+                eq(false));
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/inputmethod/TrackpadTapToClickPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/TrackpadTapToClickPreferenceControllerTest.java
index 241e3df..8e9d026 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/TrackpadTapToClickPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/TrackpadTapToClickPreferenceControllerTest.java
@@ -18,6 +18,11 @@
 
 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.verify;
+
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.os.UserHandle;
 import android.provider.Settings;
@@ -26,10 +31,14 @@
 
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
+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.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.annotation.Config;
 
@@ -39,16 +48,20 @@
         com.android.settings.testutils.shadow.ShadowSystemSettings.class,
 })
 public class TrackpadTapToClickPreferenceControllerTest {
+    @Rule
+    public MockitoRule rule = MockitoJUnit.rule();
 
     private static final String PREFERENCE_KEY = "trackpad_tap_to_click";
     private static final String SETTING_KEY = Settings.System.TOUCHPAD_TAP_TO_CLICK;
 
     private Context mContext;
     private TrackpadTapToClickPreferenceController mController;
+    private FakeFeatureFactory mFeatureFactory;
 
     @Before
     public void setUp() {
         mContext = ApplicationProvider.getApplicationContext();
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
         mController = new TrackpadTapToClickPreferenceController(mContext, PREFERENCE_KEY);
     }
 
@@ -74,6 +87,10 @@
                 UserHandle.USER_CURRENT);
 
         assertThat(result).isEqualTo(1);
+        verify(mFeatureFactory.metricsFeatureProvider).action(
+                any(),
+                eq(SettingsEnums.ACTION_GESTURE_TAP_TO_CLICK_CHANGED),
+                eq(true));
     }
 
     @Test
@@ -87,6 +104,10 @@
                 UserHandle.USER_CURRENT);
 
         assertThat(result).isEqualTo(0);
+        verify(mFeatureFactory.metricsFeatureProvider).action(
+                any(),
+                eq(SettingsEnums.ACTION_GESTURE_TAP_TO_CLICK_CHANGED),
+                eq(false));
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/localepicker/AppLocalePickerActivityTest.java b/tests/robotests/src/com/android/settings/localepicker/AppLocalePickerActivityTest.java
index 72b01f8..817df4c 100644
--- a/tests/robotests/src/com/android/settings/localepicker/AppLocalePickerActivityTest.java
+++ b/tests/robotests/src/com/android/settings/localepicker/AppLocalePickerActivityTest.java
@@ -18,6 +18,8 @@
 
 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.spy;
 import static org.mockito.Mockito.times;
@@ -27,6 +29,7 @@
 import android.app.Activity;
 import android.app.ApplicationPackageManager;
 import android.app.LocaleConfig;
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.ApplicationInfo;
@@ -51,6 +54,7 @@
 import com.android.settings.applications.AppInfoBase;
 import com.android.settings.applications.AppLocaleUtil;
 import com.android.settings.flags.Flags;
+import com.android.settings.testutils.FakeFeatureFactory;
 
 import org.junit.After;
 import org.junit.Before;
@@ -91,6 +95,7 @@
     private static final String EN_US = "en-US";
     private static int sUid;
 
+    private FakeFeatureFactory mFeatureFactory;
     private LocaleNotificationDataManager mDataManager;
     private AppLocalePickerActivity mActivity;
 
@@ -117,6 +122,7 @@
         when(mLocaleConfig.getSupportedLocales()).thenReturn(LocaleList.forLanguageTags("en-US"));
         ReflectionHelpers.setStaticField(AppLocaleUtil.class, "sLocaleConfig", mLocaleConfig);
         sUid = Process.myUid();
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
     }
 
     @After
@@ -229,6 +235,37 @@
     }
 
     @Test
+    public void onLocaleSelected_logLocaleSource() {
+        ActivityController<TestAppLocalePickerActivity> controller =
+                initActivityController(true);
+        LocaleList.setDefault(LocaleList.forLanguageTags("ja-JP,en-CA,en-US"));
+        Locale locale = new Locale("en", "US");
+        when(mLocaleInfo.getLocale()).thenReturn(locale);
+        when(mLocaleInfo.isSystemLocale()).thenReturn(false);
+        when(mLocaleInfo.isSuggested()).thenReturn(true);
+        when(mLocaleInfo.isSuggestionOfType(LocaleStore.LocaleInfo.SUGGESTION_TYPE_SIM)).thenReturn(
+                true);
+        when(mLocaleInfo.isSuggestionOfType(
+                LocaleStore.LocaleInfo.SUGGESTION_TYPE_SYSTEM_AVAILABLE_LANGUAGE)).thenReturn(
+                true);
+        when(mLocaleInfo.isSuggestionOfType(
+                LocaleStore.LocaleInfo.SUGGESTION_TYPE_OTHER_APP_LANGUAGE)).thenReturn(
+                true);
+        when(mLocaleInfo.isSuggestionOfType(
+                LocaleStore.LocaleInfo.SUGGESTION_TYPE_IME_LANGUAGE)).thenReturn(
+                true);
+
+        controller.create();
+        AppLocalePickerActivity mActivity = controller.get();
+        mActivity.onLocaleSelected(mLocaleInfo);
+
+        int localeSource = 15; // SIM_LOCALE | SYSTEM_LOCALE |IME_LOCALE|APP_LOCALE
+        verify(mFeatureFactory.metricsFeatureProvider).action(
+                any(), eq(SettingsEnums.ACTION_CHANGE_APP_LANGUAGE_FROM_SUGGESTED),
+                eq(localeSource));
+    }
+
+    @Test
     @RequiresFlagsEnabled(Flags.FLAG_LOCALE_NOTIFICATION_ENABLED)
     public void onLocaleSelected_evaluateNotification_simpleLocaleUpdate_localeCreatedWithUid()
             throws Exception {
diff --git a/tests/robotests/src/com/android/settings/location/LocationSwitchBarControllerTest.java b/tests/robotests/src/com/android/settings/location/LocationSwitchBarControllerTest.java
index 50f618f..1f20d59 100644
--- a/tests/robotests/src/com/android/settings/location/LocationSwitchBarControllerTest.java
+++ b/tests/robotests/src/com/android/settings/location/LocationSwitchBarControllerTest.java
@@ -85,14 +85,14 @@
 
     @Test
     public void onSwitchChanged_switchChecked_shouldSetLocationEnabled() {
-        mController.onSwitchChanged(mSwitch, true);
+        mController.onCheckedChanged(mSwitch, true);
 
         verify(mEnabler).setLocationEnabled(true);
     }
 
     @Test
     public void onSwitchChanged_switchUnchecked_shouldSetLocationDisabled() {
-        mController.onSwitchChanged(mSwitch, false);
+        mController.onCheckedChanged(mSwitch, false);
 
         verify(mEnabler).setLocationEnabled(false);
     }
diff --git a/tests/robotests/src/com/android/settings/network/BluetoothWiFiResetPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/BluetoothWiFiResetPreferenceControllerTest.java
deleted file mode 100644
index 3aea4a8..0000000
--- a/tests/robotests/src/com/android/settings/network/BluetoothWiFiResetPreferenceControllerTest.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.network;
-
-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.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.net.ConnectivityManager;
-import android.os.UserManager;
-import android.telephony.TelephonyManager;
-
-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;
-import org.robolectric.shadows.ShadowToast;
-
-@RunWith(RobolectricTestRunner.class)
-public class BluetoothWiFiResetPreferenceControllerTest {
-
-    private static final String PREFERENCE_KEY = "network_reset_bluetooth_wifi_pref";
-
-    @Mock
-    private UserManager mUserManager;
-    @Mock
-    private Resources mResources;
-    @Mock
-    private ConnectivityManager mConnectivityManager;
-    @Mock
-    private TelephonyManager mTelephonyManager;
-
-    private Context mContext;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application);
-        when(mContext.getResources()).thenReturn(mResources);
-
-        mockService(Context.CONNECTIVITY_SERVICE, ConnectivityManager.class,
-                mConnectivityManager);
-        mockService(Context.TELEPHONY_SERVICE, TelephonyManager.class, mTelephonyManager);
-    }
-
-    @Test
-    public void getAvailabilityStatus_returnAvailable_asOwnerUser() {
-        mockService(Context.USER_SERVICE, UserManager.class, mUserManager);
-        doReturn(true).when(mUserManager).isAdminUser();
-
-        BluetoothWiFiResetPreferenceController target =
-                new BluetoothWiFiResetPreferenceController(mContext, PREFERENCE_KEY);
-
-        assertThat(target.getAvailabilityStatus()).isEqualTo(
-                BluetoothWiFiResetPreferenceController.AVAILABLE);
-    }
-
-    @Test
-    public void resetOperation_notResetConnectivity_onDeviceWithSimVisible() {
-        mockService(Context.CONNECTIVITY_SERVICE, ConnectivityManager.class,
-                mConnectivityManager);
-        when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
-
-        BluetoothWiFiResetPreferenceController target =
-                new BluetoothWiFiResetPreferenceController(mContext, PREFERENCE_KEY);
-
-        try {
-            target.resetOperation().run();
-        } catch (Exception exception) {}
-        verify(mConnectivityManager, never()).factoryReset();
-    }
-
-    @Test
-    public void endOfReset_toastMessage_whenSuccess() {
-        String testText = "reset_bluetooth_wifi_complete_toast";
-        when(mResources.getString(R.string.reset_bluetooth_wifi_complete_toast)).thenReturn(testText);
-        BluetoothWiFiResetPreferenceController target =
-                new BluetoothWiFiResetPreferenceController(mContext, PREFERENCE_KEY);
-
-        target.endOfReset(null);
-
-        assertThat(ShadowToast.getTextOfLatestToast()).isEqualTo(testText);
-    }
-
-    private <T> void mockService(String serviceName, Class<T> serviceClass, T service) {
-        when(mContext.getSystemServiceName(serviceClass)).thenReturn(serviceName);
-        when(mContext.getSystemService(serviceName)).thenReturn(service);
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/network/MobileNetworkListFragmentTest.java b/tests/robotests/src/com/android/settings/network/MobileNetworkListFragmentTest.java
deleted file mode 100644
index 2e04ea7..0000000
--- a/tests/robotests/src/com/android/settings/network/MobileNetworkListFragmentTest.java
+++ /dev/null
@@ -1,88 +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;
-
-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.os.UserManager;
-
-import com.android.settings.R;
-import com.android.settings.search.BaseSearchIndexProvider;
-
-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.util.ReflectionHelpers;
-
-@RunWith(RobolectricTestRunner.class)
-public class MobileNetworkListFragmentTest {
-    @Mock
-    private Context mContext;
-    @Mock
-    private Resources mResources;
-    @Mock
-    private UserManager mUserManager;
-
-    private MobileNetworkListFragment mFragment;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mFragment = new MobileNetworkListFragment();
-    }
-
-    @Test
-    public void isPageSearchEnabled_adminUser_shouldReturnTrue() {
-        when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
-        when(mUserManager.isAdminUser()).thenReturn(true);
-        final BaseSearchIndexProvider provider =
-                (BaseSearchIndexProvider) mFragment.SEARCH_INDEX_DATA_PROVIDER;
-
-        when(mContext.getResources()).thenReturn(mResources);
-        when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
-
-        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() {
-        when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
-        when(mUserManager.isAdminUser()).thenReturn(false);
-        final BaseSearchIndexProvider provider =
-                (BaseSearchIndexProvider) mFragment.SEARCH_INDEX_DATA_PROVIDER;
-
-        when(mContext.getResources()).thenReturn(mResources);
-        when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
-
-        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/network/NetworkProviderSettingsTest.java b/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
index a91af12..b1bd41d 100644
--- a/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
@@ -286,7 +286,8 @@
 
     private void setUpForOnCreate() {
         final FragmentActivity activity = mock(FragmentActivity.class);
-        when(mNetworkProviderSettings.getActivity()).thenReturn(activity);
+        doReturn(activity).when(mNetworkProviderSettings).requireActivity();
+        doReturn(activity).when(mNetworkProviderSettings).getActivity();
         final Resources.Theme theme = mContext.getTheme();
         when(activity.getTheme()).thenReturn(theme);
         UserManager userManager = mock(UserManager.class);
@@ -484,59 +485,95 @@
         when(controller.getConfig()).thenReturn(config);
         WifiDialog2.WifiDialog2Listener listener = mock(WifiDialog2.WifiDialog2Listener.class);
         final WifiDialog2 wifiDialog2 = spy(new WifiDialog2(mContext, listener, mWifiEntry, mode));
-        when(wifiDialog2.getController()).thenReturn(controller);
+        doReturn(controller).when(wifiDialog2).getController();
         return wifiDialog2;
     }
 
-    @Test
-    public void onCreateOptionsMenu_isGuest_neverAddFixConnectivityMenu() {
-        mNetworkProviderSettings.mIsGuest = true;
+    private void mockMenuConditions(boolean isGuest, boolean isAirplaneModeOn, boolean isWifiOn) {
+        mNetworkProviderSettings.mIsGuest = isGuest;
+        doReturn(isAirplaneModeOn).when(mAirplaneModeEnabler).isAirplaneModeOn();
+        when(mMockWifiPickerTracker.getWifiState()).thenReturn(
+                isWifiOn ? WifiManager.WIFI_STATE_ENABLED : WifiManager.WIFI_STATE_DISABLED);
 
-        mNetworkProviderSettings.onCreateOptionsMenu(mMenu, null /* inflater */);
+        doReturn(mMenuItem).when(mMenu).findItem(MENU_FIX_CONNECTIVITY);
+        mNetworkProviderSettings.mAirplaneModeEnabler = mAirplaneModeEnabler;
+        mNetworkProviderSettings.mWifiPickerTracker = mMockWifiPickerTracker;
 
-        verify(mMenu, never()).add(anyInt(), eq(MENU_FIX_CONNECTIVITY), anyInt(), anyInt());
     }
 
     @Test
-    public void onCreateOptionsMenu_isNotGuest_addFixConnectivityMenu() {
-        mNetworkProviderSettings.mIsGuest = false;
+    public void onCreateOptionsMenu_isGuest_hideFixConnectivityMenu() {
+        setUpForOnCreate();
+        mNetworkProviderSettings.onCreate(null);
+        mockMenuConditions(/*isGuest=*/ true, /*isAirplaneModeOn=*/ false, /*isWifiOn=*/ true);
 
-        mNetworkProviderSettings.onCreateOptionsMenu(mMenu, null /* inflater */);
+        mNetworkProviderSettings.mMenuProvider.onPrepareMenu(mMenu);
 
-        verify(mMenu).add(anyInt(), eq(MENU_FIX_CONNECTIVITY), anyInt(), anyInt());
+        verify(mMenuItem).setVisible(false);
+
     }
 
     @Test
-    public void onCreateOptionsMenu_isAirplaneModeOn_neverAddFixConnectivityMenu() {
-        doReturn(true).when(mAirplaneModeEnabler).isAirplaneModeOn();
+    public void onCreateOptionsMenu_isNotGuest_showFixConnectivityMenu() {
+        setUpForOnCreate();
+        mNetworkProviderSettings.onCreate(null);
+        mockMenuConditions(/*isGuest=*/ false, /*isAirplaneModeOn=*/ false, /*isWifiOn=*/ true);
 
-        mNetworkProviderSettings.onCreateOptionsMenu(mMenu, null /* inflater */);
+        mNetworkProviderSettings.mMenuProvider.onPrepareMenu(mMenu);
 
-        verify(mMenu, never()).add(anyInt(), eq(MENU_FIX_CONNECTIVITY), anyInt(), anyInt());
+        verify(mMenuItem).setVisible(true);
+
     }
 
     @Test
-    public void onCreateOptionsMenu_isNotAirplaneModeOn_addFixConnectivityMenu() {
-        doReturn(false).when(mAirplaneModeEnabler).isAirplaneModeOn();
+    public void onCreateOptionsMenu_isAirplaneModeOnAndWifiOff_hideFixConnectivityMenu() {
+        setUpForOnCreate();
+        mNetworkProviderSettings.onCreate(null);
+        mockMenuConditions(/*isGuest=*/ false, /*isAirplaneModeOn=*/ true, /*isWifiOn=*/ false);
 
-        mNetworkProviderSettings.onCreateOptionsMenu(mMenu, null /* inflater */);
+        mNetworkProviderSettings.mMenuProvider.onPrepareMenu(mMenu);
 
-        verify(mMenu).add(anyInt(), eq(MENU_FIX_CONNECTIVITY), anyInt(), anyInt());
+        verify(mMenuItem).setVisible(false);
+    }
+
+    @Test
+    public void onCreateOptionsMenu_isAirplaneModeOnAndWifiOn_showFixConnectivityMenu() {
+        setUpForOnCreate();
+        mNetworkProviderSettings.onCreate(null);
+        mockMenuConditions(/*isGuest=*/ false, /*isAirplaneModeOn=*/ true, /*isWifiOn=*/ true);
+
+        mNetworkProviderSettings.mMenuProvider.onPrepareMenu(mMenu);
+
+        verify(mMenuItem).setVisible(true);
+    }
+
+    @Test
+    public void onCreateOptionsMenu_isNotAirplaneModeOn_showFixConnectivityMenu() {
+        setUpForOnCreate();
+        mNetworkProviderSettings.onCreate(null);
+        mockMenuConditions(/*isGuest=*/ false, /*isAirplaneModeOn=*/ false, /*isWifiOn=*/ true);
+
+        mNetworkProviderSettings.mMenuProvider.onPrepareMenu(mMenu);
+
+        verify(mMenuItem).setVisible(true);
     }
 
     @Test
     public void onOptionsItemSelected_fixConnectivity_restartInternet() {
-        mNetworkProviderSettings.mInternetResetHelper = mInternetResetHelper;
+        setUpForOnCreate();
         doReturn(false).when(mNetworkProviderSettings).isPhoneOnCall();
-        doReturn(NetworkProviderSettings.MENU_FIX_CONNECTIVITY).when(mMenuItem).getItemId();
+        doReturn(MENU_FIX_CONNECTIVITY).when(mMenuItem).getItemId();
+        mNetworkProviderSettings.onCreate(null);
+        mNetworkProviderSettings.mInternetResetHelper = mInternetResetHelper;
 
-        mNetworkProviderSettings.onOptionsItemSelected(mMenuItem);
+        mNetworkProviderSettings.mMenuProvider.onMenuItemSelected(mMenuItem);
 
         verify(mInternetResetHelper).restart();
     }
 
     @Test
     public void onAirplaneModeChanged_apmIsOn_showApmMsg() {
+        setUpForOnCreate();
         mNetworkProviderSettings.onAirplaneModeChanged(true);
 
         verify(mAirplaneModeMsgPreference).setVisible(true);
@@ -544,6 +581,7 @@
 
     @Test
     public void onAirplaneModeChanged_apmIsOff_hideApmMsg() {
+        setUpForOnCreate();
         mNetworkProviderSettings.onAirplaneModeChanged(false);
 
         verify(mAirplaneModeMsgPreference).setVisible(false);
diff --git a/tests/robotests/src/com/android/settings/network/TetherEnablerTest.java b/tests/robotests/src/com/android/settings/network/TetherEnablerTest.java
index bb4b0c4..e7a31ce 100644
--- a/tests/robotests/src/com/android/settings/network/TetherEnablerTest.java
+++ b/tests/robotests/src/com/android/settings/network/TetherEnablerTest.java
@@ -33,6 +33,7 @@
 import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.clearInvocations;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
@@ -51,8 +52,6 @@
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.network.TetherEnabler.OnTetherStateUpdateListener;
-import com.android.settings.widget.SwitchBar;
-import com.android.settings.widget.SwitchBarController;
 import com.android.settings.widget.SwitchWidgetController;
 
 import org.junit.Before;
@@ -82,8 +81,8 @@
     @Mock
     private BluetoothAdapter mBluetoothAdapter;
 
-    private SwitchBar mSwitchBar;
     private TetherEnabler mEnabler;
+    @Mock
     private SwitchWidgetController mSwitchWidgetController;
     private static final String[] USB_TETHERED = {"usb"};
 
@@ -93,8 +92,6 @@
 
         Context context = spy(ApplicationProvider.getApplicationContext());
         AtomicReference<BluetoothPan> panReference = spy(AtomicReference.class);
-        mSwitchBar = spy(new SwitchBar(context));
-        mSwitchWidgetController = spy(new SwitchBarController(mSwitchBar));
         when(context.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager);
         when(context.getSystemService(Context.CONNECTIVITY_SERVICE)).thenReturn(
                 mConnectivityManager);
@@ -115,7 +112,8 @@
         when(mTetheringManager.getTetherableUsbRegexs()).thenReturn(USB_TETHERED);
 
         mEnabler.onStart();
-        assertThat(mSwitchBar.isChecked()).isTrue();
+
+        verify(mSwitchWidgetController).setChecked(true);
     }
 
     @Test
@@ -150,26 +148,29 @@
         mEnabler.onStart();
         mEnabler.startTethering(TetheringManager.TETHERING_WIFI);
 
+        clearInvocations(mSwitchWidgetController);
         when(mTetheringManager.getTetheredIfaces()).thenReturn(new String[0]);
         mEnabler.mOnStartTetheringCallback.onTetheringFailed();
 
-        assertThat(mSwitchBar.isChecked()).isFalse();
-        assertThat(mSwitchBar.isEnabled()).isTrue();
+        verify(mSwitchWidgetController).setEnabled(true);
+        verify(mSwitchWidgetController).setChecked(false);
     }
 
     @Test
     public void onDataSaverChanged_setsEnabledCorrectly() {
-        mSwitchBar.setEnabled(true);
+        mSwitchWidgetController.setEnabled(true);
 
         // try to turn data saver on
+        clearInvocations(mSwitchWidgetController);
         when(mNetworkPolicyManager.getRestrictBackground()).thenReturn(true);
         mEnabler.onDataSaverChanged(true);
-        assertThat(mSwitchBar.isEnabled()).isFalse();
+        verify(mSwitchWidgetController).setEnabled(false);
 
         // lets turn data saver off again
+        clearInvocations(mSwitchWidgetController);
         when(mNetworkPolicyManager.getRestrictBackground()).thenReturn(false);
         mEnabler.onDataSaverChanged(false);
-        assertThat(mSwitchBar.isEnabled()).isTrue();
+        verify(mSwitchWidgetController).setEnabled(true);
     }
 
     @Test
@@ -250,7 +251,7 @@
 
         ReflectionHelpers.setField(mEnabler, "mDataSaverEnabled", false);
         mEnabler.updateState(null/*tethered*/);
-        verify(mSwitchBar).setEnabled(true);
+        verify(mSwitchWidgetController).setEnabled(true);
     }
 
     @Test
@@ -263,7 +264,7 @@
 
         ReflectionHelpers.setField(mEnabler, "mDataSaverEnabled", false);
         mEnabler.updateState(null/*tethered*/);
-        verify(mSwitchBar).setEnabled(true);
+        verify(mSwitchWidgetController).setEnabled(true);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/nfc/AndroidBeamPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/nfc/AndroidBeamPreferenceControllerTest.java
deleted file mode 100644
index 7e15618..0000000
--- a/tests/robotests/src/com/android/settings/nfc/AndroidBeamPreferenceControllerTest.java
+++ /dev/null
@@ -1,175 +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.nfc;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.content.pm.PackageManager;
-import android.nfc.NfcAdapter;
-import android.nfc.NfcManager;
-import android.os.UserHandle;
-import android.os.UserManager;
-import android.provider.Settings;
-
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.testutils.shadow.ShadowNfcAdapter;
-import com.android.settingslib.RestrictedLockUtilsInternal;
-import com.android.settingslib.RestrictedPreference;
-
-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;
-import org.robolectric.shadow.api.Shadow;
-import org.robolectric.util.ReflectionHelpers;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowNfcAdapter.class)
-public class AndroidBeamPreferenceControllerTest {
-
-    Context mContext;
-    @Mock
-    NfcManager mNfcManager;
-    @Mock
-    private UserManager mUserManager;
-    @Mock
-    private PreferenceScreen mScreen;
-    @Mock
-    private PackageManager mPackageManager;
-
-    private RestrictedPreference mAndroidBeamPreference;
-    private AndroidBeamPreferenceController mAndroidBeamController;
-    private ShadowNfcAdapter mShadowNfcAdapter;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application);
-        mShadowNfcAdapter = Shadow.extract(NfcAdapter.getDefaultAdapter(mContext));
-
-        when(mContext.getApplicationContext()).thenReturn(mContext);
-        when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
-        when(mContext.getSystemService(Context.NFC_SERVICE)).thenReturn(mNfcManager);
-        when(RestrictedLockUtilsInternal.hasBaseUserRestriction(mContext,
-                UserManager.DISALLOW_OUTGOING_BEAM, UserHandle.myUserId())).thenReturn(false);
-
-        mAndroidBeamController = new AndroidBeamPreferenceController(mContext,
-                AndroidBeamPreferenceController.KEY_ANDROID_BEAM_SETTINGS);
-        mAndroidBeamPreference = new RestrictedPreference(RuntimeEnvironment.application);
-        when(mScreen.findPreference(mAndroidBeamController.getPreferenceKey())).thenReturn(
-                mAndroidBeamPreference);
-        when(mContext.getPackageManager()).thenReturn(mPackageManager);
-        when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_NFC_BEAM)).thenReturn(true);
-
-        Settings.Global.putString(mContext.getContentResolver(),
-                Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS,
-                Settings.Global.RADIO_NFC);
-        Settings.Global.putInt(mContext.getContentResolver(),
-                Settings.Global.AIRPLANE_MODE_ON,
-                0);
-        mAndroidBeamController.displayPreference(mScreen);
-    }
-
-    @Test
-    public void isAvailable_hasNfc_shouldReturnTrue() {
-        mShadowNfcAdapter.setEnabled(true);
-        assertThat(mAndroidBeamController.isAvailable()).isTrue();
-    }
-
-    @Test
-    public void isAvailable_noNfcFeature_shouldReturnFalse() {
-        mShadowNfcAdapter.setEnabled(true);
-        when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_NFC_BEAM)).thenReturn(false);
-        assertThat(mAndroidBeamController.isAvailable()).isFalse();
-    }
-
-    @Test
-    public void isAvailable_noNfcAdapter_shouldReturnFalse() {
-        ReflectionHelpers.setField(mAndroidBeamController, "mNfcAdapter", null);
-        assertThat(mAndroidBeamController.isAvailable()).isFalse();
-    }
-
-    @Test
-    public void isBeamEnable_disAllowBeam_shouldReturnFalse() {
-        mShadowNfcAdapter.setAdapterState(NfcAdapter.STATE_OFF);
-
-        when(RestrictedLockUtilsInternal.hasBaseUserRestriction(mContext,
-                UserManager.DISALLOW_OUTGOING_BEAM, UserHandle.myUserId())).thenReturn(true);
-        mAndroidBeamController.displayPreference(mScreen);
-
-        assertThat(mAndroidBeamPreference.isEnabled()).isFalse();
-    }
-
-    @Test
-    public void isBeamEnable_nfcStateOn_shouldReturnTrue() {
-        mShadowNfcAdapter.setAdapterState(NfcAdapter.STATE_ON);
-        try {
-            mAndroidBeamController.onResume();
-        } catch (NullPointerException e) {
-            // skip because it's just test
-            // it will meet NullPointerException in checkRestrictionAndSetDisabled
-        }
-        assertThat(mAndroidBeamPreference.isEnabled()).isTrue();
-    }
-
-    @Test
-    public void isBeamEnable_nfcStateNotOn_shouldReturnFalse() {
-        mShadowNfcAdapter.setAdapterState(NfcAdapter.STATE_OFF);
-        mAndroidBeamController.onResume();
-        assertThat(mAndroidBeamPreference.isEnabled()).isFalse();
-
-        mShadowNfcAdapter.setAdapterState(NfcAdapter.STATE_TURNING_ON);
-        mAndroidBeamController.onResume();
-        assertThat(mAndroidBeamPreference.isEnabled()).isFalse();
-
-        mShadowNfcAdapter.setAdapterState(NfcAdapter.STATE_TURNING_OFF);
-        mAndroidBeamController.onResume();
-        assertThat(mAndroidBeamPreference.isEnabled()).isFalse();
-    }
-
-    @Test
-    public void updateNonIndexableKeys_available_shouldNotUpdate() {
-        mShadowNfcAdapter.setEnabled(true);
-        final List<String> keys = new ArrayList<>();
-
-        mAndroidBeamController.updateNonIndexableKeys(keys);
-
-        assertThat(keys).isEmpty();
-    }
-
-    @Test
-    public void updateNonIndexableKeys_notAvailable_shouldUpdate() {
-        ReflectionHelpers.setField(mAndroidBeamController, "mNfcAdapter", null);
-        final List<String> keys = new ArrayList<>();
-
-        mAndroidBeamController.updateNonIndexableKeys(keys);
-
-        assertThat(keys).hasSize(1);
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/notification/BubbleNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/BubbleNotificationPreferenceControllerTest.java
index b346b01..b275976 100644
--- a/tests/robotests/src/com/android/settings/notification/BubbleNotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/BubbleNotificationPreferenceControllerTest.java
@@ -112,7 +112,7 @@
     public void onSwitchChanged_true_settingIsOff_flagShouldOn() {
         Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, OFF);
 
-        mController.onSwitchChanged(mSwitch, true);
+        mController.onCheckedChanged(mSwitch, true);
 
         assertThat(Settings.Global.getInt(mContext.getContentResolver(),
                 NOTIFICATION_BUBBLES, OFF)).isEqualTo(ON);
@@ -122,7 +122,7 @@
     public void onSwitchChanged_false_settingIsOn_flagShouldOff() {
         Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, ON);
 
-        mController.onSwitchChanged(mSwitch, false);
+        mController.onCheckedChanged(mSwitch, false);
 
         assertThat(Settings.Global.getInt(mContext.getContentResolver(),
                 NOTIFICATION_BUBBLES, ON)).isEqualTo(OFF);
diff --git a/tests/robotests/src/com/android/settings/notification/NotificationAssistantPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/NotificationAssistantPreferenceControllerTest.java
index 54a6bd4..7606057 100644
--- a/tests/robotests/src/com/android/settings/notification/NotificationAssistantPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/NotificationAssistantPreferenceControllerTest.java
@@ -16,18 +16,12 @@
 
 package com.android.settings.notification;
 
-import static android.service.notification.NotificationAssistantService.ACTION_NOTIFICATION_ASSISTANT_DETAIL_SETTINGS;
-
-import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 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.atLeastOnce;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
@@ -35,24 +29,19 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
-import android.app.Application;
 import android.content.ComponentName;
 import android.content.Context;
-import android.content.Intent;
-import android.content.pm.ActivityInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.os.UserManager;
 import android.provider.Settings;
 
 import androidx.fragment.app.FragmentManager;
 import androidx.fragment.app.FragmentTransaction;
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
+import androidx.preference.SwitchPreferenceCompat;
+import androidx.preference.TwoStatePreference;
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.testutils.shadow.ShadowSecureSettings;
-import com.android.settingslib.PrimarySwitchPreference;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -61,12 +50,7 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
-import org.robolectric.shadows.ShadowApplication;
-
-import java.util.ArrayList;
-import java.util.List;
 
 
 @RunWith(RobolectricTestRunner.class)
@@ -86,27 +70,19 @@
     private FragmentTransaction mFragmentTransaction;
     @Mock
     private NotificationBackend mBackend;
-    @Mock
-    private UserManager mUserManager;
-    @Mock
-    private PackageManager mPackageManager;
     private NotificationAssistantPreferenceController mPreferenceController;
     ComponentName mNASComponent = new ComponentName("pkgname", "clsname");
-    private PrimarySwitchPreference mPreference;
-    private ShadowApplication mShadowApplication;
+    private TwoStatePreference mPreference;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = spy(ApplicationProvider.getApplicationContext());
-        mPreference = spy(new PrimarySwitchPreference(mContext));
-        mShadowApplication = ShadowApplication.getInstance();
-        mShadowApplication.setSystemService(Context.USER_SERVICE, mUserManager);
+        mPreference = spy(new SwitchPreferenceCompat(mContext));
         doReturn(mContext).when(mFragment).getContext();
         when(mFragment.getFragmentManager()).thenReturn(mFragmentManager);
         when(mFragmentManager.beginTransaction()).thenReturn(mFragmentTransaction);
         when(mBackend.getDefaultNotificationAssistant()).thenReturn(mNASComponent);
-        when(mContext.getPackageManager()).thenReturn(mPackageManager);
         mPreferenceController = new NotificationAssistantPreferenceController(mContext);
         mPreferenceController.setBackend(mBackend);
         mPreferenceController.setFragment(mFragment);
@@ -117,19 +93,6 @@
         mPreference.setKey(NotificationAssistantPreferenceController.KEY_NAS);
         screen.addPreference(mPreference);
         mPreferenceController.displayPreference(screen);
-
-        when(mUserManager.getProfileIds(eq(0), anyBoolean())).thenReturn(new int[] {0, 10});
-        when(mUserManager.getProfileIds(eq(20), anyBoolean())).thenReturn(new int[] {20});
-
-        ActivityInfo activityInfo1 = new ActivityInfo();
-        activityInfo1.packageName = "pkgname";
-        activityInfo1.name = "name";
-        ResolveInfo resolveInfo1 = new ResolveInfo();
-        resolveInfo1.activityInfo = activityInfo1;
-        List<ResolveInfo> resolvers1 = new ArrayList<>();
-        resolvers1.add(resolveInfo1);
-        when(mPackageManager.queryIntentActivities(any(Intent.class), any()))
-                .thenReturn(resolvers1);
     }
 
     @Test
@@ -155,34 +118,6 @@
     }
 
     @Test
-    public void testUpdateState_SettingActivityAvailable() throws Exception {
-        mPreferenceController.updateState(mPreference);
-        assertNotNull(mPreference.getIntent());
-
-        mPreference.performClick();
-        Intent nextIntent = Shadows.shadowOf(
-                (Application) ApplicationProvider.getApplicationContext()).getNextStartedActivity();
-        assertEquals(nextIntent.getAction(), ACTION_NOTIFICATION_ASSISTANT_DETAIL_SETTINGS);
-    }
-
-    @Test
-    public void testUpdateState_SettingActivityUnavailable() throws Exception {
-        when(mPackageManager.queryIntentActivities(any(Intent.class), any()))
-                .thenReturn(null);
-        mPreferenceController.updateState(mPreference);
-        assertNull(mPreference.getIntent());
-
-        mPreference.performClick();
-        Intent nextIntent = Shadows.shadowOf(
-                (Application) ApplicationProvider.getApplicationContext()).getNextStartedActivity();
-        assertNull(nextIntent);
-        // Verify a dialog is shown
-        verify(mFragmentTransaction).add(
-                any(NotificationAssistantDialogFragment.class), anyString());
-        verify(mBackend, times(0)).setNotificationAssistantGranted(any());
-    }
-
-    @Test
     @Config(shadows = ShadowSecureSettings.class)
     public void testMigrationFromSetting_userEnable_multiProfile() throws Exception {
         Settings.Secure.putIntForUser(mContext.getContentResolver(),
@@ -229,14 +164,4 @@
         verify(mBackend, never())
                 .setNASMigrationDoneAndResetDefault(eq(10), anyBoolean());
     }
-
-    @Test
-    public void testNASUnavailable_settingDisabled() throws Exception {
-        when(mBackend.getDefaultNotificationAssistant()).thenReturn(null);
-        mPreferenceController.getDefaultNASIntent();
-        mPreferenceController.updateState(mPreference);
-
-        verify(mPreference, atLeastOnce()).setSwitchEnabled(eq(false));
-        assertFalse(mPreference.isEnabled());
-    }
 }
diff --git a/tests/robotests/src/com/android/settings/notification/PoliteNotifVibrateUnlockedToggleControllerTest.java b/tests/robotests/src/com/android/settings/notification/PoliteNotifVibrateUnlockedToggleControllerTest.java
new file mode 100644
index 0000000..f92ed25
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/PoliteNotifVibrateUnlockedToggleControllerTest.java
@@ -0,0 +1,123 @@
+/*
+ * 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;
+
+import static com.android.settings.accessibility.AccessibilityUtil.State.OFF;
+import static com.android.settings.accessibility.AccessibilityUtil.State.ON;
+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.Vibrator;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.provider.Settings;
+
+import com.android.server.notification.Flags;
+import com.android.settings.core.BasePreferenceController;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class PoliteNotifVibrateUnlockedToggleControllerTest {
+
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+    private static final String PREFERENCE_KEY = "preference_key";
+
+    private PoliteNotifVibrateUnlockedToggleController mController;
+    private Context mContext;
+    @Mock
+    private Vibrator mVibrator;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = spy(RuntimeEnvironment.application);
+        mController = new PoliteNotifVibrateUnlockedToggleController(mContext, PREFERENCE_KEY);
+        when(mContext.getSystemService(Vibrator.class)).thenReturn(mVibrator);
+    }
+
+    @Test
+    public void isAvailable_flagEnabled_vibrationSupported_shouldReturnTrue() {
+        // TODO: b/291907312 - remove feature flags
+        mSetFlagsRule.enableFlags(Flags.FLAG_POLITE_NOTIFICATIONS);
+        when(mVibrator.hasVibrator()).thenReturn(true);
+        assertThat(mController.isAvailable()).isTrue();
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(
+                BasePreferenceController.AVAILABLE);
+    }
+
+    @Test
+    public void isAvailable_flagEnabled_vibrationNotSupported_shouldReturnFalse() {
+        // TODO: b/291907312 - remove feature flags
+        mSetFlagsRule.enableFlags(Flags.FLAG_POLITE_NOTIFICATIONS);
+        when(mVibrator.hasVibrator()).thenReturn(false);
+        assertThat(mController.isAvailable()).isFalse();
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(
+                BasePreferenceController.UNSUPPORTED_ON_DEVICE);
+    }
+
+    @Test
+    public void isAvailable_flagDisabled_shouldReturnFalse() {
+        // TODO: b/291907312 - remove feature flags
+        mSetFlagsRule.disableFlags(Flags.FLAG_POLITE_NOTIFICATIONS);
+        assertThat(mController.isAvailable()).isFalse();
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(
+                BasePreferenceController.CONDITIONALLY_UNAVAILABLE);
+    }
+
+    @Test
+    public void isChecked_vibrateEnabled_shouldReturnTrue() {
+        Settings.System.putInt(mContext.getContentResolver(),
+                Settings.System.NOTIFICATION_COOLDOWN_VIBRATE_UNLOCKED, ON);
+        assertThat(mController.isChecked()).isTrue();
+    }
+
+    @Test
+    public void isChecked_vibrateDisabled_shouldReturnFalse() {
+        Settings.System.putInt(mContext.getContentResolver(),
+                Settings.System.NOTIFICATION_COOLDOWN_VIBRATE_UNLOCKED, OFF);
+        assertThat(mController.isChecked()).isFalse();
+    }
+
+    @Test
+    public void setChecked_setTrue_shouldEnableVibrateSetting() {
+        Settings.System.putInt(mContext.getContentResolver(),
+                Settings.System.NOTIFICATION_COOLDOWN_VIBRATE_UNLOCKED, OFF);
+        mController.setChecked(true);
+        assertThat(Settings.System.getInt(mContext.getContentResolver(),
+                Settings.System.NOTIFICATION_COOLDOWN_VIBRATE_UNLOCKED, OFF)).isEqualTo(ON);
+    }
+
+    @Test
+    public void setChecked_setFalse_shouldDisableVibrateSetting() {
+        Settings.System.putInt(mContext.getContentResolver(),
+                Settings.System.NOTIFICATION_COOLDOWN_VIBRATE_UNLOCKED, ON);
+        mController.setChecked(false);
+        assertThat(Settings.System.getInt(mContext.getContentResolver(),
+                Settings.System.NOTIFICATION_COOLDOWN_VIBRATE_UNLOCKED, ON)).isEqualTo(OFF);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/PoliteNotifWorkProfileToggleControllerTest.java b/tests/robotests/src/com/android/settings/notification/PoliteNotifWorkProfileToggleControllerTest.java
new file mode 100644
index 0000000..5cda1ea
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/PoliteNotifWorkProfileToggleControllerTest.java
@@ -0,0 +1,136 @@
+/*
+ * 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;
+
+import static com.android.settings.accessibility.AccessibilityUtil.State.OFF;
+import static com.android.settings.accessibility.AccessibilityUtil.State.ON;
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.os.UserHandle;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.provider.Settings;
+
+import com.android.server.notification.Flags;
+import com.android.settings.core.BasePreferenceController;
+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)
+public class PoliteNotifWorkProfileToggleControllerTest {
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+    private static final String PREFERENCE_KEY = "preference_key";
+
+    private Context mContext;
+    PoliteNotifWorkProfileToggleController mController;
+    @Mock
+    private AudioHelper mAudioHelper;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
+        when(mAudioHelper.getManagedProfileId(any())).thenReturn(UserHandle.MIN_SECONDARY_USER_ID);
+        mController = new PoliteNotifWorkProfileToggleController(mContext, PREFERENCE_KEY,
+                mAudioHelper);
+    }
+
+    @Test
+    public void isAvailable_flagEnabled_workProfileExists_shouldReturnTrue() {
+        // TODO: b/291907312 - remove feature flags
+        mSetFlagsRule.enableFlags(Flags.FLAG_POLITE_NOTIFICATIONS);
+        assertThat(mController.isAvailable()).isTrue();
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(
+                BasePreferenceController.AVAILABLE);
+    }
+
+    @Test
+    public void isAvailable_flagEnabled_workProfileMissing_shouldReturnFalse() {
+        // TODO: b/291907312 - remove feature flags
+        mSetFlagsRule.enableFlags(Flags.FLAG_POLITE_NOTIFICATIONS);
+        when(mAudioHelper.getManagedProfileId(any())).thenReturn(UserHandle.USER_NULL);
+        mController = new PoliteNotifWorkProfileToggleController(mContext, PREFERENCE_KEY,
+                mAudioHelper);
+        assertThat(mController.isAvailable()).isFalse();
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(
+                BasePreferenceController.DISABLED_FOR_USER);
+    }
+
+    @Test
+    public void isAvailable_flagDisabled_shouldReturnFalse() {
+        // TODO: b/291907312 - remove feature flags
+        mSetFlagsRule.disableFlags(Flags.FLAG_POLITE_NOTIFICATIONS);
+        assertThat(mController.isAvailable()).isFalse();
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(
+                BasePreferenceController.CONDITIONALLY_UNAVAILABLE);
+    }
+
+    @Test
+    @Config(shadows = ShadowSystemSettings.class)
+    public void isChecked_enabledForWorkProfile_shouldReturnTrue() {
+        Settings.System.putIntForUser(mContext.getContentResolver(),
+                Settings.System.NOTIFICATION_COOLDOWN_ENABLED, ON,
+                UserHandle.MIN_SECONDARY_USER_ID);
+        assertThat(mController.isChecked()).isTrue();
+    }
+
+    @Test
+    @Config(shadows = ShadowSystemSettings.class)
+    public void isChecked_disabledForWorkProfile_shouldReturnFalse() {
+        Settings.System.putIntForUser(mContext.getContentResolver(),
+                Settings.System.NOTIFICATION_COOLDOWN_ENABLED, OFF,
+                UserHandle.MIN_SECONDARY_USER_ID);
+        assertThat(mController.isChecked()).isFalse();
+    }
+
+    @Test
+    @Config(shadows = ShadowSystemSettings.class)
+    public void setChecked_setTrue_shouldEnablePoliteNotifForWorkProfile() {
+        Settings.System.putIntForUser(mContext.getContentResolver(),
+                Settings.System.NOTIFICATION_COOLDOWN_ENABLED, OFF,
+                UserHandle.MIN_SECONDARY_USER_ID);
+        mController.setChecked(true);
+        assertThat(Settings.System.getIntForUser(mContext.getContentResolver(),
+                Settings.System.NOTIFICATION_COOLDOWN_ENABLED, ON,
+                UserHandle.MIN_SECONDARY_USER_ID)).isEqualTo(ON);
+    }
+
+    @Test
+    @Config(shadows = ShadowSystemSettings.class)
+    public void setChecked_setFalse_shouldDisablePoliteNotifForWorkProfile() {
+        Settings.System.putIntForUser(mContext.getContentResolver(),
+                Settings.System.NOTIFICATION_COOLDOWN_ENABLED, ON,
+                UserHandle.MIN_SECONDARY_USER_ID);
+        mController.setChecked(false);
+        assertThat(Settings.System.getIntForUser(mContext.getContentResolver(),
+                Settings.System.NOTIFICATION_COOLDOWN_ENABLED, ON,
+                UserHandle.MIN_SECONDARY_USER_ID)).isEqualTo(OFF);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/PoliteNotificationFilterControllerTest.java b/tests/robotests/src/com/android/settings/notification/PoliteNotificationFilterControllerTest.java
new file mode 100644
index 0000000..646e927
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/PoliteNotificationFilterControllerTest.java
@@ -0,0 +1,165 @@
+/*
+ * 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;
+
+import static com.android.settings.accessibility.AccessibilityUtil.State.OFF;
+import static com.android.settings.accessibility.AccessibilityUtil.State.ON;
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.provider.Settings;
+
+import androidx.preference.ListPreference;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.server.notification.Flags;
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class PoliteNotificationFilterControllerTest {
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+    private static final String PREFERENCE_KEY = "preference_key";
+    private static final int POLITE_NOTIFICATIONS_ALL = 0;
+    private static final int POLITE_NOTIFICATIONS_CONVERSATIONS = 1;
+    private static final int POLITE_NOTIFICATIONS_DISABLED = 2;
+
+    @Mock
+    private PreferenceScreen mScreen;
+
+    private PoliteNotificationFilterController mController;
+    private Preference mPreference;
+    private Context mContext;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = spy(RuntimeEnvironment.application);
+
+        mController = new PoliteNotificationFilterController(mContext, PREFERENCE_KEY);
+        mPreference = new Preference(mContext);
+        mPreference.setKey(mController.getPreferenceKey());
+        when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
+    }
+
+    @Test
+    public void isAvailable_flagEnabled_shouldReturnTrue() {
+        // TODO: b/291907312 - remove feature flags
+        mSetFlagsRule.enableFlags(Flags.FLAG_POLITE_NOTIFICATIONS);
+        assertThat(mController.isAvailable()).isTrue();
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(
+                BasePreferenceController.AVAILABLE);
+    }
+
+    @Test
+    public void isAvailable_flagDisabled_shouldReturnFalse() {
+        // TODO: b/291907312 - remove feature flags
+        mSetFlagsRule.disableFlags(Flags.FLAG_POLITE_NOTIFICATIONS);
+        assertThat(mController.isAvailable()).isFalse();
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(
+                BasePreferenceController.CONDITIONALLY_UNAVAILABLE);
+    }
+
+    @Test
+    public void updateState_politeNotificationDisabled() {
+        final ListPreference preference = mock(ListPreference.class);
+        Settings.System.putInt(mContext.getContentResolver(),
+                Settings.System.NOTIFICATION_COOLDOWN_ENABLED, OFF);
+        mController.updateState(preference);
+
+        verify(preference).setValue(Integer.toString(POLITE_NOTIFICATIONS_DISABLED));
+        assertThat(mController.getSummary().toString()).isEqualTo(
+                mContext.getString(R.string.notification_polite_disabled_summary));
+    }
+
+    @Test
+    public void updateState_politeNotificationEnabled_applyAllApps() {
+        final ListPreference preference = mock(ListPreference.class);
+        Settings.System.putInt(mContext.getContentResolver(),
+                Settings.System.NOTIFICATION_COOLDOWN_ENABLED, ON);
+        Settings.System.putInt(mContext.getContentResolver(),
+                Settings.System.NOTIFICATION_COOLDOWN_ALL, ON);
+        mController.updateState(preference);
+
+        verify(preference).setValue(Integer.toString(POLITE_NOTIFICATIONS_ALL));
+        assertThat(mController.getSummary().toString()).isEqualTo(
+                mContext.getString(R.string.notification_polite_all_apps_summary));
+    }
+
+    @Test
+    public void updateState_politeNotificationEnabled_applyOnlyConversations() {
+        final ListPreference preference = mock(ListPreference.class);
+        Settings.System.putInt(mContext.getContentResolver(),
+                Settings.System.NOTIFICATION_COOLDOWN_ENABLED, ON);
+        Settings.System.putInt(mContext.getContentResolver(),
+                Settings.System.NOTIFICATION_COOLDOWN_ALL, OFF);
+        mController.updateState(preference);
+
+        verify(preference).setValue(Integer.toString(POLITE_NOTIFICATIONS_CONVERSATIONS));
+        assertThat(mController.getSummary().toString()).isEqualTo(
+                mContext.getString(R.string.notification_polite_conversations_summary));
+    }
+
+    @Test
+    public void onPreferenceChanged_firstItemSelected_shouldEnableForAll() {
+        mController.displayPreference(mScreen);
+        mController.onPreferenceChange(mPreference, "0");
+
+        assertThat(Settings.System.getInt(mContext.getContentResolver(),
+                Settings.System.NOTIFICATION_COOLDOWN_ENABLED, OFF)).isEqualTo(ON);
+        assertThat(Settings.System.getInt(mContext.getContentResolver(),
+                Settings.System.NOTIFICATION_COOLDOWN_ALL, OFF)).isEqualTo(ON);
+    }
+
+    @Test
+    public void onPreferenceChanged_secondItemSelected_shouldEnableForConversationsOnly() {
+        mController.displayPreference(mScreen);
+        mController.onPreferenceChange(mPreference, "1");
+
+        assertThat(Settings.System.getInt(mContext.getContentResolver(),
+                Settings.System.NOTIFICATION_COOLDOWN_ENABLED, OFF)).isEqualTo(ON);
+        assertThat(Settings.System.getInt(mContext.getContentResolver(),
+                Settings.System.NOTIFICATION_COOLDOWN_ALL, OFF)).isEqualTo(OFF);
+    }
+
+    @Test
+    public void onPreferenceChanged_thirdItemSelected_shouldDisable() {
+        mController.displayPreference(mScreen);
+        mController.onPreferenceChange(mPreference, "2");
+
+        assertThat(Settings.System.getInt(mContext.getContentResolver(),
+                Settings.System.NOTIFICATION_COOLDOWN_ENABLED, OFF)).isEqualTo(OFF);
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/notification/PoliteNotificationsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/PoliteNotificationsPreferenceControllerTest.java
new file mode 100644
index 0000000..f6c5e16
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/PoliteNotificationsPreferenceControllerTest.java
@@ -0,0 +1,69 @@
+/*
+ * 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;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.platform.test.flag.junit.SetFlagsRule;
+
+import com.android.server.notification.Flags;
+import com.android.settings.core.BasePreferenceController;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class PoliteNotificationsPreferenceControllerTest {
+
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+    private static final String PREFERENCE_KEY = "preference_key";
+
+    private PoliteNotificationsPreferenceController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mController = new PoliteNotificationsPreferenceController(RuntimeEnvironment.application,
+                PREFERENCE_KEY);
+    }
+
+    @Test
+    public void isAvailable_flagEnabled_shouldReturnTrue() {
+        // TODO: b/291907312 - remove feature flags
+        mSetFlagsRule.enableFlags(Flags.FLAG_POLITE_NOTIFICATIONS);
+        assertThat(mController.isAvailable()).isTrue();
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(
+                BasePreferenceController.AVAILABLE);
+    }
+
+    @Test
+    public void isAvailable_flagDisabled_shouldReturnFalse() {
+        // TODO: b/291907312 - remove feature flags
+        mSetFlagsRule.disableFlags(Flags.FLAG_POLITE_NOTIFICATIONS);
+        assertThat(mController.isAvailable()).isFalse();
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(
+                BasePreferenceController.CONDITIONALLY_UNAVAILABLE);
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/notification/app/AppChannelsBypassingDndPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/app/AppChannelsBypassingDndPreferenceControllerTest.java
index 13528b4..053b352 100644
--- a/tests/robotests/src/com/android/settings/notification/app/AppChannelsBypassingDndPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/app/AppChannelsBypassingDndPreferenceControllerTest.java
@@ -26,16 +26,19 @@
 import android.app.NotificationManager;
 import android.content.Context;
 import android.content.pm.ParceledListSlice;
+import android.platform.test.flag.junit.SetFlagsRule;
 
 import androidx.preference.PreferenceCategory;
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
 import androidx.test.core.app.ApplicationProvider;
 
+import com.android.settings.flags.Flags;
 import com.android.settings.notification.NotificationBackend;
 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.Mock;
@@ -51,6 +54,9 @@
 @LooperMode(LooperMode.Mode.LEGACY)
 public class AppChannelsBypassingDndPreferenceControllerTest {
 
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
     @Mock
     private NotificationBackend mBackend;
 
@@ -150,4 +156,44 @@
         }
         return new ParceledListSlice<>(Collections.singletonList(group));
     }
+
+    @Test
+    public void displayPreference_duplicateChannelName_AddsGroupNameAsSummary() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_DEDUPE_DND_SETTINGS_CHANNELS);
+        NotificationChannelGroup group1 = new NotificationChannelGroup("group1_id", "Group1");
+        NotificationChannelGroup group2 = new NotificationChannelGroup("group2_id", "Group2");
+
+        group1.addChannel(new NotificationChannel("mail_group1_id", "Mail",
+                NotificationManager.IMPORTANCE_DEFAULT));
+        group1.addChannel(new NotificationChannel("other_group1_id", "Other",
+                NotificationManager.IMPORTANCE_DEFAULT));
+
+        group2.addChannel(new NotificationChannel("music_group2_id", "Music",
+                NotificationManager.IMPORTANCE_DEFAULT));
+        // This channel has the same name as a channel in group1.
+        group2.addChannel(new NotificationChannel("mail_group2_id", "Mail",
+                NotificationManager.IMPORTANCE_DEFAULT));
+
+        ParceledListSlice<NotificationChannelGroup> groups = new ParceledListSlice<>(
+                new ArrayList<NotificationChannelGroup>() {
+                    {
+                        add(group1);
+                        add(group2);
+                    }
+                }
+        );
+
+        when(mBackend.getGroups(eq(mAppRow.pkg), eq(mAppRow.uid))).thenReturn(groups);
+        mController.displayPreference(mPreferenceScreen);
+        ShadowApplication.runBackgroundTasks();
+        // Check that we've added the group name as a summary to channels that have identical names.
+        // Channels are also alphabetized.
+        assertThat(mCategory.getPreference(1).getTitle().toString()).isEqualTo("Mail");
+        assertThat(mCategory.getPreference(1).getSummary().toString()).isEqualTo("Group1");
+        assertThat(mCategory.getPreference(2).getTitle().toString()).isEqualTo("Mail");
+        assertThat(mCategory.getPreference(2).getSummary().toString()).isEqualTo("Group2");
+        assertThat(mCategory.getPreference(3).getTitle().toString()).isEqualTo("Music");
+        assertThat(mCategory.getPreference(4).getTitle().toString()).isEqualTo("Other");
+
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/notification/app/BlockPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/app/BlockPreferenceControllerTest.java
index 9e9e655..abcf2de 100644
--- a/tests/robotests/src/com/android/settings/notification/app/BlockPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/app/BlockPreferenceControllerTest.java
@@ -101,7 +101,7 @@
     @Test
     public void testNoCrashIfNoOnResume() {
         mController.isAvailable();
-        mController.onSwitchChanged(null, false);
+        mController.onCheckedChanged(null, false);
     }
 
     @Test
@@ -355,11 +355,11 @@
         mController.onResume(appRow, channel, null, null, null, null, null);
         mController.updateState(mPreference);
 
-        mController.onSwitchChanged(null, false);
+        mController.onCheckedChanged(null, false);
         assertEquals(IMPORTANCE_NONE, channel.getImportance());
         assertTrue(appRow.banned);
 
-        mController.onSwitchChanged(null, true);
+        mController.onCheckedChanged(null, true);
         assertEquals(IMPORTANCE_UNSPECIFIED, channel.getImportance());
         assertFalse(appRow.banned);
 
@@ -377,10 +377,10 @@
         mController.onResume(appRow, channel, null, null, null, null, null);
         mController.updateState(mPreference);
 
-        mController.onSwitchChanged(null, false);
+        mController.onCheckedChanged(null, false);
         assertEquals(IMPORTANCE_NONE, channel.getImportance());
 
-        mController.onSwitchChanged(null, true);
+        mController.onCheckedChanged(null, true);
         assertEquals(IMPORTANCE_HIGH, channel.getImportance());
 
         verify(mBackend, times(2)).updateChannel(any(), anyInt(), any());
diff --git a/tests/robotests/src/com/android/settings/panel/VolumePanelTest.java b/tests/robotests/src/com/android/settings/panel/VolumePanelTest.java
index 74998c9..d30ef3e 100644
--- a/tests/robotests/src/com/android/settings/panel/VolumePanelTest.java
+++ b/tests/robotests/src/com/android/settings/panel/VolumePanelTest.java
@@ -62,7 +62,6 @@
                 CustomSliceRegistry.VOLUME_CALL_URI,
                 CustomSliceRegistry.VOLUME_MEDIA_URI,
                 CustomSliceRegistry.MEDIA_OUTPUT_INDICATOR_SLICE_URI,
-                CustomSliceRegistry.VOLUME_RINGER_URI,
                 CustomSliceRegistry.VOLUME_SEPARATE_RING_URI,
                 CustomSliceRegistry.VOLUME_NOTIFICATION_URI,
                 CustomSliceRegistry.VOLUME_ALARM_URI);
diff --git a/tests/robotests/src/com/android/settings/security/ContentProtectionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/ContentProtectionPreferenceControllerTest.java
new file mode 100644
index 0000000..cd2e266
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/security/ContentProtectionPreferenceControllerTest.java
@@ -0,0 +1,93 @@
+/*
+ * 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.security;
+
+import static com.android.internal.R.string.config_defaultContentProtectionService;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.provider.DeviceConfig;
+import android.view.contentcapture.ContentCaptureManager;
+
+import com.android.settings.testutils.shadow.ShadowDeviceConfig;
+
+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;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(
+        shadows = {
+            ShadowDeviceConfig.class,
+        })
+public class ContentProtectionPreferenceControllerTest {
+
+    private static final String PACKAGE_NAME = "com.test.package";
+
+    private static final ComponentName COMPONENT_NAME =
+            new ComponentName(PACKAGE_NAME, "TestClass");
+
+    @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+    private Context mContext;
+
+    private String mConfigDefaultContentProtectionService = COMPONENT_NAME.flattenToString();
+
+    private ContentProtectionPreferenceController mController;
+
+    @Before
+    public void setUp() {
+        mContext = spy(RuntimeEnvironment.application);
+        mController = new ContentProtectionPreferenceController(mContext, "key");
+    }
+
+    @After
+    public void tearDown() {
+        ShadowDeviceConfig.reset();
+    }
+
+    @Test
+    public void isAvailable_isFalse() {
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    public void isAvailable_isTrue() {
+        doReturn(COMPONENT_NAME.flattenToString())
+                .when(mContext)
+                .getString(config_defaultContentProtectionService);
+
+        DeviceConfig.setProperty(
+                DeviceConfig.NAMESPACE_CONTENT_CAPTURE,
+                ContentCaptureManager.DEVICE_CONFIG_PROPERTY_ENABLE_CONTENT_PROTECTION_RECEIVER,
+                "true",
+                /* makeDefault= */ false);
+
+        assertThat(mController.isAvailable()).isTrue();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/security/ContentProtectionPreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/security/ContentProtectionPreferenceFragmentTest.java
new file mode 100644
index 0000000..d394582
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/security/ContentProtectionPreferenceFragmentTest.java
@@ -0,0 +1,179 @@
+/*
+ * 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.security;
+
+import static android.app.settings.SettingsEnums.CONTENT_PROTECTION_PREFERENCE;
+
+import static com.android.internal.R.string.config_defaultContentProtectionService;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.provider.DeviceConfig;
+import android.provider.SearchIndexableResource;
+import android.view.contentcapture.ContentCaptureManager;
+
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.testutils.XmlTestUtils;
+import com.android.settings.testutils.shadow.ShadowDashboardFragment;
+import com.android.settings.testutils.shadow.ShadowDeviceConfig;
+import com.android.settings.testutils.shadow.ShadowUtils;
+
+import org.junit.After;
+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 org.robolectric.annotation.Config;
+
+import java.util.List;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(
+        shadows = {
+            ShadowDashboardFragment.class,
+            ShadowUtils.class,
+            ShadowDeviceConfig.class,
+        })
+public class ContentProtectionPreferenceFragmentTest {
+    private static final String PACKAGE_NAME = "com.test.package";
+
+    private static final ComponentName COMPONENT_NAME =
+            new ComponentName(PACKAGE_NAME, "TestClass");
+
+    private String mConfigDefaultContentProtectionService = COMPONENT_NAME.flattenToString();
+    private ContentProtectionPreferenceFragment mFragment;
+    private Context mContext;
+    private PreferenceScreen mScreen;
+
+    @Before
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+
+        mContext = spy(RuntimeEnvironment.application);
+        mFragment = spy(new ContentProtectionPreferenceFragment());
+        mScreen = spy(new PreferenceScreen(mContext, /* attrs= */ null));
+
+        doReturn(mContext).when(mFragment).getContext();
+        doReturn(mScreen).when(mFragment).getPreferenceScreen();
+    }
+
+    @After
+    public void tearDown() {
+        ShadowDeviceConfig.reset();
+    }
+
+    @Test
+    public void getMetricsCategory() {
+        assertThat(mFragment.getMetricsCategory()).isEqualTo(CONTENT_PROTECTION_PREFERENCE);
+    }
+
+    @Test
+    public void getPreferenceScreenResId() {
+        assertThat(mFragment.getPreferenceScreenResId())
+                .isEqualTo(R.layout.content_protection_preference_fragment);
+    }
+
+    @Test
+    public void getNonIndexableKeys_uiEnabled_existInXmlLayout() {
+        DeviceConfig.setProperty(
+                DeviceConfig.NAMESPACE_CONTENT_CAPTURE,
+                ContentCaptureManager.DEVICE_CONFIG_PROPERTY_ENABLE_CONTENT_PROTECTION_RECEIVER,
+                "true",
+                /* makeDefault= */ false);
+        doReturn(mConfigDefaultContentProtectionService)
+                .when(mContext)
+                .getString(config_defaultContentProtectionService);
+
+        final List<String> nonIndexableKeys =
+                ContentProtectionPreferenceFragment.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(
+                        mContext);
+        final List<String> allKeys =
+                XmlTestUtils.getKeysFromPreferenceXml(
+                        mContext, R.layout.content_protection_preference_fragment);
+        final List<String> nonIndexableKeysExpected =
+                List.of(
+                        "content_protection_preference_top_intro",
+                        "content_protection_preference_subpage_illustration",
+                        "content_protection_preference_user_consent_work_profile_switch");
+
+        assertThat(allKeys).containsAtLeastElementsIn(nonIndexableKeys);
+        assertThat(nonIndexableKeys).isEqualTo(nonIndexableKeysExpected);
+    }
+
+    @Test
+    public void getNonIndexableKeys_uiDisabled_notExisted() {
+        DeviceConfig.setProperty(
+                DeviceConfig.NAMESPACE_CONTENT_CAPTURE,
+                ContentCaptureManager.DEVICE_CONFIG_PROPERTY_ENABLE_CONTENT_PROTECTION_RECEIVER,
+                "false",
+                /* makeDefault= */ false);
+
+        final List<String> nonIndexableKeys =
+                ContentProtectionPreferenceFragment.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(
+                        mContext);
+        final List<String> allKeys =
+                XmlTestUtils.getKeysFromPreferenceXml(
+                        mContext, R.layout.content_protection_preference_fragment);
+
+        assertThat(nonIndexableKeys).isEqualTo(allKeys);
+    }
+
+    @Test
+    public void searchIndexProvider_shouldIndexResource() {
+        final List<SearchIndexableResource> indexRes =
+                ContentProtectionPreferenceFragment.SEARCH_INDEX_DATA_PROVIDER
+                        .getXmlResourcesToIndex(mContext, /* enabled= */ true);
+
+        assertThat(indexRes).isNotNull();
+        assertThat(indexRes).isNotEmpty();
+        assertThat(indexRes.get(0).xmlResId).isEqualTo(mFragment.getPreferenceScreenResId());
+    }
+
+    @Test
+    public void isPageSearchEnabled_uiDisabled_returnsFalse() {
+        boolean isSearchEnabled =
+                mFragment.SEARCH_INDEX_DATA_PROVIDER.isPageSearchEnabled(mContext);
+
+        assertThat(isSearchEnabled).isFalse();
+    }
+
+    @Test
+    public void isPageSearchEnabled_uiEnabled_returnsTrue() {
+        DeviceConfig.setProperty(
+                DeviceConfig.NAMESPACE_CONTENT_CAPTURE,
+                ContentCaptureManager.DEVICE_CONFIG_PROPERTY_ENABLE_CONTENT_PROTECTION_RECEIVER,
+                "true",
+                /* makeDefault= */ false);
+        doReturn(mConfigDefaultContentProtectionService)
+                .when(mContext)
+                .getString(config_defaultContentProtectionService);
+
+        boolean isSearchEnabled =
+                mFragment.SEARCH_INDEX_DATA_PROVIDER.isPageSearchEnabled(mContext);
+
+        assertThat(isSearchEnabled).isTrue();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/security/ContentProtectionPreferenceUtilsTest.java b/tests/robotests/src/com/android/settings/security/ContentProtectionPreferenceUtilsTest.java
new file mode 100644
index 0000000..9b49434
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/security/ContentProtectionPreferenceUtilsTest.java
@@ -0,0 +1,148 @@
+/*
+ * 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.security;
+
+import static com.android.internal.R.string.config_defaultContentProtectionService;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.when;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.provider.DeviceConfig;
+import android.view.contentcapture.ContentCaptureManager;
+
+import com.android.settings.testutils.shadow.ShadowDeviceConfig;
+
+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.annotation.Config;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(
+        shadows = {
+            ShadowDeviceConfig.class,
+        })
+public class ContentProtectionPreferenceUtilsTest {
+    private static final String PACKAGE_NAME = "com.test.package";
+
+    private static final ComponentName COMPONENT_NAME =
+            new ComponentName(PACKAGE_NAME, "TestClass");
+
+    private String mConfigDefaultContentProtectionService = COMPONENT_NAME.flattenToString();
+
+    @Mock private Context mMockContext;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+    }
+
+    @After
+    public void tearDown() {
+        ShadowDeviceConfig.reset();
+    }
+
+    @Test
+    public void isAvailable_bothEnabled_true() {
+        DeviceConfig.setProperty(
+                DeviceConfig.NAMESPACE_CONTENT_CAPTURE,
+                ContentCaptureManager.DEVICE_CONFIG_PROPERTY_ENABLE_CONTENT_PROTECTION_RECEIVER,
+                "true",
+                /* makeDefault= */ false);
+        when(mMockContext.getString(config_defaultContentProtectionService))
+                .thenReturn(mConfigDefaultContentProtectionService);
+
+        assertThat(ContentProtectionPreferenceUtils.isAvailable(mMockContext)).isTrue();
+    }
+
+    @Test
+    public void isAvailable_onlyUiEnabled_false() {
+        DeviceConfig.setProperty(
+                DeviceConfig.NAMESPACE_CONTENT_CAPTURE,
+                ContentCaptureManager.DEVICE_CONFIG_PROPERTY_ENABLE_CONTENT_PROTECTION_RECEIVER,
+                "true",
+                /* makeDefault= */ false);
+
+        assertThat(ContentProtectionPreferenceUtils.isAvailable(mMockContext)).isFalse();
+    }
+
+    @Test
+    public void isAvailable_onlyServiceEnabled_false() {
+        when(mMockContext.getString(config_defaultContentProtectionService))
+                .thenReturn(mConfigDefaultContentProtectionService);
+        DeviceConfig.setProperty(
+                DeviceConfig.NAMESPACE_CONTENT_CAPTURE,
+                ContentCaptureManager.DEVICE_CONFIG_PROPERTY_ENABLE_CONTENT_PROTECTION_RECEIVER,
+                "false",
+                /* makeDefault= */ false);
+
+        assertThat(ContentProtectionPreferenceUtils.isAvailable(mMockContext)).isFalse();
+    }
+
+    @Test
+    public void isAvailable_emptyComponentName_false() {
+        when(mMockContext.getString(config_defaultContentProtectionService))
+                .thenReturn("");
+        DeviceConfig.setProperty(
+                DeviceConfig.NAMESPACE_CONTENT_CAPTURE,
+                ContentCaptureManager.DEVICE_CONFIG_PROPERTY_ENABLE_CONTENT_PROTECTION_RECEIVER,
+                "true",
+                /* makeDefault= */ false);
+
+        assertThat(ContentProtectionPreferenceUtils.isAvailable(mMockContext)).isFalse();
+    }
+
+    @Test
+    public void isAvailable_blankComponentName_false() {
+	when(mMockContext.getString(config_defaultContentProtectionService))
+                .thenReturn("   ");
+        DeviceConfig.setProperty(
+                DeviceConfig.NAMESPACE_CONTENT_CAPTURE,
+                ContentCaptureManager.DEVICE_CONFIG_PROPERTY_ENABLE_CONTENT_PROTECTION_RECEIVER,
+                "true",
+                /* makeDefault= */ false);
+
+        assertThat(ContentProtectionPreferenceUtils.isAvailable(mMockContext)).isFalse();
+    }
+
+    @Test
+    public void isAvailable_invalidComponentName_false() {
+        when(mMockContext.getString(config_defaultContentProtectionService))
+                .thenReturn("invalid");
+
+        assertThat(ContentProtectionPreferenceUtils.isAvailable(mMockContext)).isFalse();
+    }
+
+
+    @Test
+    public void isAvailable_bothDisabled_false() {
+        DeviceConfig.setProperty(
+                DeviceConfig.NAMESPACE_CONTENT_CAPTURE,
+                ContentCaptureManager.DEVICE_CONFIG_PROPERTY_ENABLE_CONTENT_PROTECTION_RECEIVER,
+                "false",
+                /* makeDefault= */ false);
+
+        assertThat(ContentProtectionPreferenceUtils.isAvailable(mMockContext)).isFalse();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/security/ContentProtectionTogglePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/ContentProtectionTogglePreferenceControllerTest.java
new file mode 100644
index 0000000..63b6c3e
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/security/ContentProtectionTogglePreferenceControllerTest.java
@@ -0,0 +1,146 @@
+/*
+ * 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.security;
+
+import static com.android.settings.security.ContentProtectionTogglePreferenceController.KEY_CONTENT_PROTECTION_PREFERENCE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.when;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.provider.Settings;
+
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.testutils.shadow.ShadowUtils;
+import com.android.settings.widget.SettingsMainSwitchPreference;
+
+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.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(
+        shadows = {
+            ShadowUtils.class,
+        })
+public class ContentProtectionTogglePreferenceControllerTest {
+
+    @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+    @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+
+    @Mock private PreferenceScreen mScreen;
+
+    private SettingsMainSwitchPreference mSwitchPreference;
+    private final Context mContext = ApplicationProvider.getApplicationContext();
+    private ContentProtectionTogglePreferenceController mController;
+    private int mSettingBackupValue;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mController = new ContentProtectionTogglePreferenceController(mContext, "key");
+        mSwitchPreference = new SettingsMainSwitchPreference(mContext);
+        when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mSwitchPreference);
+        mSettingBackupValue = getContentProtectionGlobalSetting();
+        Settings.Global.putInt(mContext.getContentResolver(), KEY_CONTENT_PROTECTION_PREFERENCE, 0);
+    }
+
+    @After
+    public void tearDown() {
+        Settings.Global.putInt(
+                mContext.getContentResolver(),
+                KEY_CONTENT_PROTECTION_PREFERENCE,
+                mSettingBackupValue);
+    }
+
+    @Test
+    public void isAvailable_alwaysAvailable() {
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    public void isChecked_settingTurnOn() {
+        Settings.Global.putInt(mContext.getContentResolver(), KEY_CONTENT_PROTECTION_PREFERENCE, 1);
+
+        assertThat(mController.isChecked()).isTrue();
+    }
+
+    @Test
+    public void isChecked_fullyManagedMode_settingTurnOff() {
+        final ComponentName componentName =
+                ComponentName.unflattenFromString("com.android.test/.DeviceAdminReceiver");
+        ShadowUtils.setDeviceOwnerComponent(componentName);
+        Settings.Global.putInt(mContext.getContentResolver(), KEY_CONTENT_PROTECTION_PREFERENCE, 1);
+
+        ContentProtectionTogglePreferenceController controller =
+                new ContentProtectionTogglePreferenceController(mContext, "key");
+
+        assertThat(controller.isChecked()).isFalse();
+    }
+
+    @Test
+    public void isChecked_settingTurnOff() {
+        Settings.Global.putInt(
+                mContext.getContentResolver(), KEY_CONTENT_PROTECTION_PREFERENCE, -1);
+
+        assertThat(mController.isChecked()).isFalse();
+        assertThat(getContentProtectionGlobalSetting()).isEqualTo(-1);
+    }
+
+    @Test
+    public void isChecked_settingDefaultOn() {
+        assertThat(mController.isChecked()).isTrue();
+        assertThat(getContentProtectionGlobalSetting()).isEqualTo(0);
+    }
+
+    @Test
+    public void onSwitchChanged_switchChecked_manuallyEnabled() {
+        mController.displayPreference(mScreen);
+        mController.setChecked(false);
+
+        mController.onCheckedChanged(/* switchView= */ null, /* isChecked= */ true);
+
+        assertThat(getContentProtectionGlobalSetting()).isEqualTo(1);
+    }
+
+    @Test
+    public void onSwitchChanged_switchUnchecked_manuallyDisabled() {
+        mController.displayPreference(mScreen);
+
+        mController.onCheckedChanged(/* switchView= */ null, /* isChecked= */ false);
+
+        assertThat(getContentProtectionGlobalSetting()).isEqualTo(-1);
+    }
+
+    private int getContentProtectionGlobalSetting() {
+        return Settings.Global.getInt(
+                mContext.getContentResolver(), KEY_CONTENT_PROTECTION_PREFERENCE, 0);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/security/ContentProtectionWorkSwitchControllerTest.java b/tests/robotests/src/com/android/settings/security/ContentProtectionWorkSwitchControllerTest.java
new file mode 100644
index 0000000..8d35e4d
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/security/ContentProtectionWorkSwitchControllerTest.java
@@ -0,0 +1,163 @@
+/*
+ * 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.security;
+
+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.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.os.UserHandle;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.RestrictedSwitchPreference;
+
+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 ContentProtectionWorkSwitchControllerTest {
+    private static final UserHandle TEST_USER_HANDLE = UserHandle.of(10);
+
+    private final Context mContext = ApplicationProvider.getApplicationContext();
+
+    @Mock private PreferenceScreen mMockPreferenceScreen;
+    private ContentProtectionWorkSwitchController mController;
+    private UserHandle mManagedProfileUserHandle;
+    private RestrictedLockUtils.EnforcedAdmin mEnforcedAdmin;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mController = new TestContentProtectionWorkSwitchController();
+    }
+
+    @Test
+    public void isAvailable_managedProfile_available() {
+        mManagedProfileUserHandle = TEST_USER_HANDLE;
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    public void isAvailable_noManagedProfile_notAvailable() {
+        mManagedProfileUserHandle = null;
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    public void isChecked_noManagedProfile_alwaysOff() {
+        mManagedProfileUserHandle = null;
+
+        assertThat(mController.isChecked()).isFalse();
+    }
+
+    @Test
+    public void isChecked_managedProfile_alwaysOff() {
+        mManagedProfileUserHandle = TEST_USER_HANDLE;
+
+        assertThat(mController.isChecked()).isFalse();
+    }
+
+    @Test
+    public void setChecked_alwaysFalse() {
+        assertThat(mController.setChecked(true)).isFalse();
+        assertThat(mController.setChecked(false)).isFalse();
+    }
+
+    @Test
+    public void displayPreference_managedProfile_disabled() {
+        mManagedProfileUserHandle = TEST_USER_HANDLE;
+        mEnforcedAdmin = new RestrictedLockUtils.EnforcedAdmin();
+        RestrictedSwitchPreference mockSwitchPreference = mock(RestrictedSwitchPreference.class);
+        when(mMockPreferenceScreen.findPreference(any())).thenReturn(mockSwitchPreference);
+        when(mockSwitchPreference.getKey()).thenReturn(mController.getPreferenceKey());
+
+        mController.displayPreference(mMockPreferenceScreen);
+
+        assertThat(mController.isAvailable()).isTrue();
+        verify(mockSwitchPreference).setDisabledByAdmin(mEnforcedAdmin);
+    }
+
+    @Test
+    public void displayPreference_noManagedProfile_notDisabled() {
+        mManagedProfileUserHandle = null;
+        mEnforcedAdmin = new RestrictedLockUtils.EnforcedAdmin();
+        RestrictedSwitchPreference mockSwitchPreference = mock(RestrictedSwitchPreference.class);
+        when(mMockPreferenceScreen.findPreference(any())).thenReturn(mockSwitchPreference);
+        when(mockSwitchPreference.getKey()).thenReturn(mController.getPreferenceKey());
+
+        mController.displayPreference(mMockPreferenceScreen);
+
+        assertThat(mController.isAvailable()).isFalse();
+        verify(mockSwitchPreference, never()).setDisabledByAdmin(any());
+    }
+
+    @Test
+    public void displayPreference_noEnforcedAdmin_notDisabled() {
+        mManagedProfileUserHandle = null;
+        mEnforcedAdmin = null;
+        RestrictedSwitchPreference mockSwitchPreference = mock(RestrictedSwitchPreference.class);
+        when(mMockPreferenceScreen.findPreference(any())).thenReturn(mockSwitchPreference);
+        when(mockSwitchPreference.getKey()).thenReturn(mController.getPreferenceKey());
+
+        mController.displayPreference(mMockPreferenceScreen);
+
+        assertThat(mController.isAvailable()).isFalse();
+        verify(mockSwitchPreference, never()).setDisabledByAdmin(any());
+    }
+
+    private class TestContentProtectionWorkSwitchController
+            extends ContentProtectionWorkSwitchController {
+
+        TestContentProtectionWorkSwitchController() {
+            super(ContentProtectionWorkSwitchControllerTest.this.mContext, "key");
+        }
+
+        @Override
+        @Nullable
+        protected UserHandle getManagedProfile() {
+            return mManagedProfileUserHandle;
+        }
+
+        @Override
+        @Nullable
+        protected RestrictedLockUtils.EnforcedAdmin getEnforcedAdmin(
+                @NonNull UserHandle managedProfile) {
+            return mEnforcedAdmin;
+        }
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/security/MemtagPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/MemtagPreferenceControllerTest.java
index e3fc3cc..7d2c6dd 100644
--- a/tests/robotests/src/com/android/settings/security/MemtagPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/security/MemtagPreferenceControllerTest.java
@@ -24,11 +24,9 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import android.content.Context;
-import android.os.Bundle;
 
-import androidx.fragment.app.FragmentActivity;
-import androidx.fragment.app.FragmentContainerView;
-import androidx.test.rule.ActivityTestRule;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.rules.ActivityScenarioRule;
 
 import com.android.settings.R;
 import com.android.settings.testutils.shadow.ShadowDeviceConfig;
@@ -37,11 +35,11 @@
 import com.android.settingslib.testutils.shadow.ShadowInteractionJankMonitor;
 
 import org.junit.Before;
+import org.junit.Ignore;
 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 org.robolectric.shadows.ShadowSystemProperties;
 
@@ -57,8 +55,8 @@
     private final String mMemtagSupportedProperty = "ro.arm64.memtag.bootctl_supported";
 
     @Rule
-    public ActivityTestRule<TestActivity> mActivityTestRule =
-            new ActivityTestRule<>(TestActivity.class);
+    public ActivityScenarioRule<TestActivity> mActivityScenario =
+                        new ActivityScenarioRule<>(TestActivity.class);
 
     private MemtagPage mMemtagPage;
     private MemtagPreferenceController mController;
@@ -70,17 +68,18 @@
     @Before
     public void setUp() {
         ShadowSystemProperties.override(mMemtagSupportedProperty, "true");
-
-        mContext = RuntimeEnvironment.application;
+        mContext = ApplicationProvider.getApplicationContext();
         mMemtagPage = new MemtagPage();
-        mActivity = mActivityTestRule.getActivity();
-        mActivity
-                .getSupportFragmentManager()
-                .beginTransaction()
-                .add(TestActivity.CONTAINER_VIEW_ID, mMemtagPage)
-                .commit();
-        mController = new MemtagPreferenceController(mContext, FRAGMENT_TAG);
-        mController.setFragment(mMemtagPage);
+        System.out.println("Activity: " + mActivity);
+        mActivityScenario.getScenario().onActivity(a -> {
+            a.getSupportFragmentManager()
+                    .beginTransaction()
+                    .add(TestActivity.CONTAINER_VIEW_ID, mMemtagPage)
+                    .commitNow();
+            mController = new MemtagPreferenceController(a, FRAGMENT_TAG);
+            mController.setFragment(mMemtagPage);
+        });
+        System.out.println("Committed");
     }
 
     @Test
@@ -135,6 +134,7 @@
     }
 
     @Test
+    @Ignore
     public void setChecked_isChecked_doesNotShowDialog() {
         ZygoteShadow.setSupportsMemoryTagging(false);
         mController.setChecked(false);
@@ -142,6 +142,7 @@
     }
 
     @Test
+    @Ignore
     public void setChecked_isUnchecked_doesNotShowDialog() {
         ZygoteShadow.setSupportsMemoryTagging(true);
         mController.setChecked(true);
@@ -155,18 +156,4 @@
         mController.updateState(preference);
         assertThat(preference.isDisabledByAdmin()).isTrue();
     }
-
-    private static final class TestActivity extends FragmentActivity {
-
-        private static final int CONTAINER_VIEW_ID = 1234;
-
-        @Override
-        protected void onCreate(Bundle bundle) {
-            super.onCreate(bundle);
-
-            FragmentContainerView contentView = new FragmentContainerView(this);
-            contentView.setId(CONTAINER_VIEW_ID);
-            setContentView(contentView);
-        }
-    }
 }
diff --git a/tests/robotests/src/com/android/settings/security/TestActivity.java b/tests/robotests/src/com/android/settings/security/TestActivity.java
new file mode 100644
index 0000000..70b5cf5
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/security/TestActivity.java
@@ -0,0 +1,36 @@
+/*
+ * 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.security;
+
+import android.os.Bundle;
+
+import androidx.fragment.app.FragmentActivity;
+import androidx.fragment.app.FragmentContainerView;
+
+public final class TestActivity extends FragmentActivity {
+
+    static final int CONTAINER_VIEW_ID = 1234;
+
+    @Override
+    protected void onCreate(Bundle bundle) {
+        super.onCreate(bundle);
+
+        FragmentContainerView contentView = new FragmentContainerView(this);
+        contentView.setId(CONTAINER_VIEW_ID);
+        setContentView(contentView);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/BatteryTestUtils.java b/tests/robotests/src/com/android/settings/testutils/BatteryTestUtils.java
index e98ea1b..745fca7 100644
--- a/tests/robotests/src/com/android/settings/testutils/BatteryTestUtils.java
+++ b/tests/robotests/src/com/android/settings/testutils/BatteryTestUtils.java
@@ -219,7 +219,7 @@
         when(mockUsbPort.supportsComplianceWarnings()).thenReturn(true);
         when(mockUsbPortStatus.isConnected()).thenReturn(true);
         when(mockUsbPortStatus.getComplianceWarnings())
-                .thenReturn(new int[]{UsbPortStatus.COMPLIANCE_WARNING_OTHER});
+                .thenReturn(new int[]{UsbPortStatus.COMPLIANCE_WARNING_DEBUG_ACCESSORY});
     }
 
     /**
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowApplicationPackageManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowApplicationPackageManager.java
index 7ff2e5d..e6b0307 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowApplicationPackageManager.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowApplicationPackageManager.java
@@ -16,9 +16,12 @@
 
 package com.android.settings.testutils.shadow;
 
+import android.annotation.NonNull;
 import android.app.ApplicationPackageManager;
 import android.content.pm.PackageInfo;
+import android.os.IRemoteCallback;
 
+import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
 
 import java.util.ArrayList;
@@ -49,4 +52,10 @@
         }
         return packages;
     }
+
+    @Implementation
+    public void registerPackageMonitorCallback(@NonNull IRemoteCallback callback, int userId) {}
+
+    @Implementation
+    public void unregisterPackageMonitorCallback(@NonNull IRemoteCallback callback) {}
 }
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDataUsageUtils.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDataUsageUtils.java
index 9973a2d..dd09b3c 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDataUsageUtils.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDataUsageUtils.java
@@ -13,7 +13,6 @@
 
     public static boolean IS_MOBILE_DATA_SUPPORTED = true;
     public static boolean IS_WIFI_SUPPORTED = true;
-    public static boolean HAS_SIM = true;
     public static int DEFAULT_SUBSCRIPTION_ID = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
 
     @Implementation
@@ -32,10 +31,5 @@
     }
 
     @Implementation
-    protected static boolean hasSim(Context context) {
-        return HAS_SIM;
-    }
-
-    @Implementation
     protected static boolean hasEthernet(Context context) { return false; }
 }
diff --git a/tests/robotests/src/com/android/settings/tts/TtsEnginePreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/tts/TtsEnginePreferenceFragmentTest.java
index 00b8e86..1cb188c 100644
--- a/tests/robotests/src/com/android/settings/tts/TtsEnginePreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/tts/TtsEnginePreferenceFragmentTest.java
@@ -24,6 +24,7 @@
 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;
@@ -31,6 +32,7 @@
 import android.content.pm.ResolveInfo;
 import android.content.pm.ServiceInfo;
 import android.os.Bundle;
+import android.os.Looper;
 import android.speech.tts.TextToSpeech;
 import android.speech.tts.TtsEngines;
 
@@ -43,6 +45,7 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
+import org.robolectric.annotation.Implements;
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowPackageManager;
 import org.robolectric.shadows.androidx.fragment.FragmentController;
@@ -50,12 +53,15 @@
 @RunWith(RobolectricTestRunner.class)
 public class TtsEnginePreferenceFragmentTest {
 
+    @Implements(TextToSpeech.class)
+    public static class NoOpShadowTextToSpeech {}
+
     private Context mContext;
     private TtsEnginePreferenceFragment mTtsEnginePreferenceFragment;
 
     @Before
     public void setUp() {
-        mContext = RuntimeEnvironment.application;
+        mContext = RuntimeEnvironment.systemContext;
 
         final ResolveInfo info = new ResolveInfo();
         final ServiceInfo serviceInfo = spy(new ServiceInfo());
@@ -76,17 +82,19 @@
     }
 
     @Test
+    @Config(shadows = {NoOpShadowTextToSpeech.class})
     public void getCandidates_AddEngines_returnCorrectEngines() {
         mTtsEnginePreferenceFragment = FragmentController.of(new TtsEnginePreferenceFragment(),
                 new Bundle())
                 .create()
                 .get();
+        shadowOf(Looper.getMainLooper()).idle();
 
         assertThat(mTtsEnginePreferenceFragment.getCandidates().size()).isEqualTo(1);
     }
 
     @Test
-    @Config(shadows = {ShadowTtsEngines.class})
+    @Config(shadows = {ShadowTtsEngines.class, NoOpShadowTextToSpeech.class})
     public void getDefaultKey_validKey_returnCorrectKey() {
         final String TEST_ENGINE = "test_engine";
         final TtsEngines engine = mock(TtsEngines.class);
@@ -95,13 +103,14 @@
                 new Bundle())
                 .create()
                 .get();
+        shadowOf(Looper.getMainLooper()).idle();
         when(engine.getDefaultEngine()).thenReturn(TEST_ENGINE);
 
         assertThat(mTtsEnginePreferenceFragment.getDefaultKey()).isEqualTo(TEST_ENGINE);
     }
 
     @Test
-    @Config(shadows = {ShadowTtsEngines.class})
+    @Config(shadows = {ShadowTtsEngines.class, NoOpShadowTextToSpeech.class})
     public void setDefaultKey_validKey_callingTtsEngineFunction() {
         final TtsEngines engine = mock(TtsEngines.class);
         ShadowTtsEngines.setInstance(engine);
@@ -109,6 +118,7 @@
                 new Bundle())
                 .create()
                 .get();
+        shadowOf(Looper.getMainLooper()).idle();
 
         mTtsEnginePreferenceFragment.setDefaultKey(mContext.getPackageName());
 
@@ -116,14 +126,17 @@
     }
 
     @Test
+    @Config(shadows = {NoOpShadowTextToSpeech.class})
     public void setDefaultKey_validKey_updateCheckedState() {
-        mTtsEnginePreferenceFragment = spy(FragmentController.of(new TtsEnginePreferenceFragment(),
+        mTtsEnginePreferenceFragment = FragmentController.of(new TtsEnginePreferenceFragment(),
                 new Bundle())
                 .create()
-                .get());
+                .get();
+        shadowOf(Looper.getMainLooper()).idle();
+        TtsEnginePreferenceFragment fragmentSpy = spy(mTtsEnginePreferenceFragment);
 
-        mTtsEnginePreferenceFragment.setDefaultKey(mContext.getPackageName());
+        fragmentSpy.setDefaultKey(mContext.getPackageName());
 
-        verify(mTtsEnginePreferenceFragment).updateCheckedState(mContext.getPackageName());
+        verify(fragmentSpy).updateCheckedState(mContext.getPackageName());
     }
 }
diff --git a/tests/robotests/src/com/android/settings/users/MultiUserSwitchBarControllerTest.java b/tests/robotests/src/com/android/settings/users/MultiUserSwitchBarControllerTest.java
index 718e01b..1cfb3f6 100644
--- a/tests/robotests/src/com/android/settings/users/MultiUserSwitchBarControllerTest.java
+++ b/tests/robotests/src/com/android/settings/users/MultiUserSwitchBarControllerTest.java
@@ -17,8 +17,8 @@
 package com.android.settings.users;
 
 import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 
 import android.content.Context;
@@ -26,8 +26,7 @@
 import android.os.UserManager;
 
 import com.android.settings.testutils.shadow.ShadowUserManager;
-import com.android.settings.widget.SwitchBar;
-import com.android.settings.widget.SwitchBarController;
+import com.android.settings.widget.SwitchWidgetController;
 
 import org.junit.After;
 import org.junit.Before;
@@ -43,14 +42,14 @@
 
     private Context mContext;
     private ShadowUserManager mUserManager;
-    private SwitchBarController mSwitchBarController;
+    private SwitchWidgetController mSwitchWidgetController;
 
 
     @Before
     public void setUp() {
         mContext = RuntimeEnvironment.application;
         mUserManager = ShadowUserManager.getShadow();
-        mSwitchBarController = spy(new SwitchBarController(new SwitchBar(mContext)));
+        mSwitchWidgetController = mock(SwitchWidgetController.class);
         mUserManager.setSupportsMultipleUsers(true);
     }
 
@@ -65,9 +64,9 @@
                 UserManager.DISALLOW_USER_SWITCH, true);
 
         final MultiUserSwitchBarController controller = new MultiUserSwitchBarController(mContext,
-                mSwitchBarController, null);
+                mSwitchWidgetController, null);
 
-        verify(mSwitchBarController).setDisabledByAdmin(any());
+        verify(mSwitchWidgetController).setDisabledByAdmin(any());
     }
 
     @Test
@@ -76,8 +75,8 @@
                 UserManager.DISALLOW_USER_SWITCH, false);
 
         final MultiUserSwitchBarController controller = new MultiUserSwitchBarController(mContext,
-                mSwitchBarController, null);
+                mSwitchWidgetController, null);
 
-        verify(mSwitchBarController, never()).setDisabledByAdmin(any());
+        verify(mSwitchWidgetController, never()).setDisabledByAdmin(any());
     }
 }
diff --git a/tests/robotests/src/com/android/settings/widget/SettingsMainSwitchBarTest.java b/tests/robotests/src/com/android/settings/widget/SettingsMainSwitchBarTest.java
index 49b7840..2b7f462 100644
--- a/tests/robotests/src/com/android/settings/widget/SettingsMainSwitchBarTest.java
+++ b/tests/robotests/src/com/android/settings/widget/SettingsMainSwitchBarTest.java
@@ -19,45 +19,42 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import android.content.Context;
+import android.widget.CompoundButton;
 import android.widget.TextView;
 
-import com.android.settings.R;
-import com.android.settingslib.RestrictedLockUtils;
+import androidx.test.core.app.ApplicationProvider;
 
-import org.junit.Before;
+import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.widget.mainswitch.R;
+
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
 
 @RunWith(RobolectricTestRunner.class)
 public class SettingsMainSwitchBarTest {
 
-    private SettingsMainSwitchBar mMainSwitchBar;
+    private final Context mContext = ApplicationProvider.getApplicationContext();
+    private final SettingsMainSwitchBar mMainSwitchBar = new SettingsMainSwitchBar(mContext);
 
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        final Context context = RuntimeEnvironment.application;
-        mMainSwitchBar = new SettingsMainSwitchBar(context);
-    }
+    private final TextView mTitle = mMainSwitchBar.findViewById(R.id.switch_text);
+
+    private final CompoundButton mSwitchWidget =
+            mMainSwitchBar.findViewById(android.R.id.switch_widget);
 
     @Test
     public void disabledByAdmin_shouldBeDisabled() {
         mMainSwitchBar.setDisabledByAdmin(new RestrictedLockUtils.EnforcedAdmin());
 
-        TextView title = (TextView) mMainSwitchBar.findViewById(R.id.switch_text);
-        assertThat(title.isEnabled()).isFalse();
-        assertThat(mMainSwitchBar.getSwitch().isEnabled()).isFalse();
+        assertThat(mTitle.isEnabled()).isFalse();
+        assertThat(mSwitchWidget.isEnabled()).isFalse();
     }
 
     @Test
     public void disabledByAdmin_setNull_shouldBeEnabled() {
         mMainSwitchBar.setDisabledByAdmin(null);
 
-        TextView title = (TextView) mMainSwitchBar.findViewById(R.id.switch_text);
-        assertThat(title.isEnabled()).isTrue();
-        assertThat(mMainSwitchBar.getSwitch().isEnabled()).isTrue();
+        assertThat(mTitle.isEnabled()).isTrue();
+        assertThat(mSwitchWidget.isEnabled()).isTrue();
     }
 }
diff --git a/tests/robotests/src/com/android/settings/widget/SwitchBarTest.java b/tests/robotests/src/com/android/settings/widget/SwitchBarTest.java
deleted file mode 100644
index 0c297f4..0000000
--- a/tests/robotests/src/com/android/settings/widget/SwitchBarTest.java
+++ /dev/null
@@ -1,123 +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.widget;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.robolectric.RuntimeEnvironment.application;
-
-import android.content.Context;
-import android.graphics.drawable.ColorDrawable;
-import android.widget.TextView;
-
-import com.android.settings.R;
-import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.Robolectric;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-@RunWith(RobolectricTestRunner.class)
-public class SwitchBarTest {
-
-    private static final int COLOR_BACKGROUND = 1;
-    private static final int COLOR_BACKGROUND_ACTIVATED = 2;
-
-    private Context mContext;
-    private SwitchBar mBar;
-
-    @Before
-    public void setUp() {
-        mContext = RuntimeEnvironment.application;
-        mBar = new SwitchBar(application, Robolectric.buildAttributeSet()
-                .addAttribute(R.attr.switchBarBackgroundColor, String.valueOf(COLOR_BACKGROUND))
-                .addAttribute(R.attr.switchBarBackgroundActivatedColor,
-                        String.valueOf(COLOR_BACKGROUND_ACTIVATED))
-                .build());
-    }
-
-    @Test
-    public void cycleChecked_defaultLabel_shouldUpdateTextAndBackground() {
-        final int defaultOnText = R.string.switch_on_text;
-        final int defaultOffText = R.string.switch_off_text;
-
-        assertThat(((TextView) mBar.findViewById(R.id.switch_text)).getText())
-                .isEqualTo(mContext.getString(defaultOffText));
-
-        mBar.setChecked(true);
-
-        assertThat(mBar.getBackground()).isInstanceOf(ColorDrawable.class);
-        assertThat(((TextView) mBar.findViewById(R.id.switch_text)).getText())
-                .isEqualTo(mContext.getString(defaultOnText));
-    }
-
-    @Test
-    public void cycleChecked_customLabel_shouldUpdateTextAndBackground() {
-        final int onText = R.string.main_clear_progress_text;
-        final int offText = R.string.clear_user_data_text;
-
-        mBar.setSwitchBarText(onText, offText);
-        assertThat(((TextView) mBar.findViewById(R.id.switch_text)).getText())
-                .isEqualTo(mContext.getString(offText));
-
-        mBar.setChecked(true);
-        assertThat(mBar.getBackground()).isInstanceOf(ColorDrawable.class);
-
-        assertThat(((TextView) mBar.findViewById(R.id.switch_text)).getText())
-                .isEqualTo(mContext.getString(onText));
-    }
-
-    @Test
-    public void setCheck_customLabelWithStringType_shouldUpdateTextAndBackground() {
-        final String onText = mContext.getString(
-                R.string.accessibility_service_primary_switch_title);
-        final String offText = mContext.getString(
-                R.string.accessibility_service_primary_switch_title);
-        final TextView switchBarTextView = ((TextView) mBar.findViewById(R.id.switch_text));
-
-        mBar.setSwitchBarText(onText, offText);
-
-        assertThat(switchBarTextView.getText()).isEqualTo(offText);
-
-        mBar.setChecked(true);
-
-        assertThat(mBar.getBackground()).isInstanceOf(ColorDrawable.class);
-        assertThat(switchBarTextView.getText()).isEqualTo(onText);
-    }
-
-    @Test
-    public void disabledByAdmin_shouldDelegateToRestrictedIcon() {
-        mBar.setDisabledByAdmin(new EnforcedAdmin());
-        assertThat(mBar.getDelegatingView().getId()).isEqualTo(R.id.restricted_icon);
-    }
-
-    @Test
-    public void notDisabledByAdmin_shouldDelegateToSwitch() {
-        mBar.setDisabledByAdmin(null);
-        assertThat(mBar.getDelegatingView().getId()).isEqualTo(R.id.switch_widget);
-    }
-
-    @Test
-    public void performClick_shouldIsCheckedValueChange() {
-        boolean isChecked = mBar.isChecked();
-        mBar.performClick();
-        assertThat(mBar.isChecked()).isEqualTo(!isChecked);
-    }
-}
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 1faa611..2e6189e 100644
--- a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java
@@ -292,7 +292,7 @@
     public void onSwitchChanged_enableSetting_shouldLaunchWfcDisclaimerFragment() {
         final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
 
-        mFragment.onSwitchChanged(null, true);
+        mFragment.onCheckedChanged(null, true);
 
         // Check the WFC disclaimer fragment is launched.
         verify(mFragment).startActivityForResult(intentCaptor.capture(),
@@ -337,7 +337,7 @@
 
     @Test
     public void onSwitchChanged_disableSetting_shouldNotLaunchWfcDisclaimerFragment() {
-        mFragment.onSwitchChanged(null, false);
+        mFragment.onCheckedChanged(null, false);
 
         // Check the WFC disclaimer fragment is not launched.
         verify(mFragment, never()).startActivityForResult(any(Intent.class), anyInt());
diff --git a/tests/robotests/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2Test.java b/tests/robotests/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2Test.java
deleted file mode 100644
index d3244fa..0000000
--- a/tests/robotests/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2Test.java
+++ /dev/null
@@ -1,124 +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.wifi.details2;
-
-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.content.Context;
-
-import androidx.preference.DropDownPreference;
-
-import com.android.settings.R;
-import com.android.wifitrackerlib.WifiEntry;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-@RunWith(RobolectricTestRunner.class)
-public class WifiPrivacyPreferenceController2Test {
-
-    private static final int PRIVACY_RANDOMIZED = WifiEntry.PRIVACY_RANDOMIZED_MAC;
-    private static final int PRIVACY_TRUSTED = WifiEntry.PRIVACY_DEVICE_MAC;
-
-    @Mock private WifiEntry mMockWifiEntry;
-
-    private WifiPrivacyPreferenceController2 mPreferenceController;
-    private Context mContext;
-    private DropDownPreference mDropDownPreference;
-    private String[] mPerferenceStrings;
-
-    @Before
-    public void setUp() {
-        mContext = RuntimeEnvironment.application;
-
-        mMockWifiEntry = mock(WifiEntry.class);
-        WifiPrivacyPreferenceController2 preferenceController =
-                new WifiPrivacyPreferenceController2(mContext);
-        preferenceController.setWifiEntry(mMockWifiEntry);
-        mPreferenceController = spy(preferenceController);
-        mDropDownPreference = new DropDownPreference(mContext);
-        mDropDownPreference.setEntries(R.array.wifi_privacy_entries);
-        mDropDownPreference.setEntryValues(R.array.wifi_privacy_values);
-
-        mPerferenceStrings = mContext.getResources().getStringArray(R.array.wifi_privacy_entries);
-    }
-
-    @Test
-    public void testUpdateState_wifiPrivacy_setCorrectValue() {
-        doReturn(PRIVACY_TRUSTED).when(mPreferenceController).getRandomizationValue();
-
-        mPreferenceController.updateState(mDropDownPreference);
-
-        int prefValue = mPreferenceController.translateMacRandomizedValueToPrefValue(
-                PRIVACY_TRUSTED);
-        assertThat(mDropDownPreference.getEntry()).isEqualTo(mPerferenceStrings[prefValue]);
-    }
-
-    @Test
-    public void testUpdateState_wifiNotMetered_setCorrectValue() {
-        doReturn(PRIVACY_RANDOMIZED).when(mPreferenceController).getRandomizationValue();
-
-        mPreferenceController.updateState(mDropDownPreference);
-
-        int prefValue = mPreferenceController.translateMacRandomizedValueToPrefValue(
-                PRIVACY_RANDOMIZED);
-        assertThat(mDropDownPreference.getEntry()).isEqualTo(mPerferenceStrings[prefValue]);
-    }
-
-    @Test
-    public void testUpdateState_canSetPrivacyInNextUpdate_shouldBeSelectable() {
-        // Return false in WifiEntry#canSetPrivacy to make preference un-selectable first.
-        when(mMockWifiEntry.canSetPrivacy()).thenReturn(false);
-
-        mPreferenceController.updateState(mDropDownPreference);
-
-        assertThat(mDropDownPreference.isSelectable()).isFalse();
-
-        // Return true in WifiEntry#canSetPrivacy to verify preference back to selectable.
-        when(mMockWifiEntry.canSetPrivacy()).thenReturn(true);
-
-        mPreferenceController.updateState(mDropDownPreference);
-
-        assertThat(mDropDownPreference.isSelectable()).isTrue();
-    }
-
-    @Test
-    public void testUpdateState_canNotSetPrivacyInNextUpdate_shouldNotBeSelectable() {
-        // Return true in WifiEntry#canSetPrivacy to make preference selectable first.
-        when(mMockWifiEntry.canSetPrivacy()).thenReturn(true);
-
-        mPreferenceController.updateState(mDropDownPreference);
-
-        assertThat(mDropDownPreference.isSelectable()).isTrue();
-
-        // Return false in WifiEntry#canSetPrivacy to verify preference back to un-selectable.
-        when(mMockWifiEntry.canSetPrivacy()).thenReturn(false);
-
-        mPreferenceController.updateState(mDropDownPreference);
-
-        assertThat(mDropDownPreference.isSelectable()).isFalse();
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSwitchBarControllerTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSwitchBarControllerTest.java
index ca0247f..0982f26 100644
--- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSwitchBarControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSwitchBarControllerTest.java
@@ -150,7 +150,7 @@
     public void onSwitchChanged_switchNotEnabled_doNothingForTethering() {
         when(mSwitch.isEnabled()).thenReturn(false);
 
-        mController.onSwitchChanged(mSwitch, mSwitch.isChecked());
+        mController.onCheckedChanged(mSwitch, true);
 
         verify(mConnectivityManager, never()).startTethering(anyInt(), anyBoolean(), any(), any());
         verify(mConnectivityManager, never()).stopTethering(anyInt());
@@ -158,9 +158,7 @@
 
     @Test
     public void onSwitchChanged_isChecked_startTethering() {
-        when(mSwitch.isChecked()).thenReturn(true);
-
-        mController.onSwitchChanged(mSwitch, mSwitch.isChecked());
+        mController.onCheckedChanged(mSwitch, true);
 
         verify(mConnectivityManager).startTethering(anyInt(), anyBoolean(), any(), any());
     }
@@ -168,9 +166,7 @@
     @Test
     public void onSwitchChanged_isNotChecked_stopTethering() {
         when(mWifiManager.getWifiApState()).thenReturn(WIFI_AP_STATE_ENABLED);
-        when(mSwitch.isChecked()).thenReturn(false);
-
-        mController.onSwitchChanged(mSwitch, mSwitch.isChecked());
+        mController.onCheckedChanged(mSwitch, false);
 
         verify(mConnectivityManager).stopTethering(anyInt());
     }
diff --git a/tests/robotests/testutils/com/android/settings/testutils/FakeFeatureFactory.java b/tests/robotests/testutils/com/android/settings/testutils/FakeFeatureFactory.java
index 52a5f24..5a5008c 100644
--- a/tests/robotests/testutils/com/android/settings/testutils/FakeFeatureFactory.java
+++ b/tests/robotests/testutils/com/android/settings/testutils/FakeFeatureFactory.java
@@ -24,6 +24,7 @@
 import com.android.settings.accounts.AccountFeatureProvider;
 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;
@@ -45,6 +46,7 @@
 import com.android.settings.overlay.SupportFeatureProvider;
 import com.android.settings.overlay.SurveyFeatureProvider;
 import com.android.settings.panel.PanelFeatureProvider;
+import com.android.settings.privatespace.PrivateSpaceLoginFeatureProvider;
 import com.android.settings.search.SearchFeatureProvider;
 import com.android.settings.security.SecurityFeatureProvider;
 import com.android.settings.security.SecuritySettingsFeatureProvider;
@@ -80,6 +82,7 @@
     public final AccountFeatureProvider mAccountFeatureProvider;
     public final BluetoothFeatureProvider mBluetoothFeatureProvider;
     public final FaceFeatureProvider mFaceFeatureProvider;
+    public final FingerprintFeatureProvider mFingerprintFeatureProvider;
     public final BiometricsRepositoryProvider mBiometricsRepositoryProvider;
 
     public PanelFeatureProvider panelFeatureProvider;
@@ -97,6 +100,7 @@
     public StylusFeatureProvider mStylusFeatureProvider;
     public OnboardingFeatureProvider mOnboardingFeatureProvider;
     public FastPairFeatureProvider mFastPairFeatureProvider;
+    public PrivateSpaceLoginFeatureProvider mPrivateSpaceLoginFeatureProvider;
 
     /**
      * Call this in {@code @Before} method of the test class to use fake factory.
@@ -132,6 +136,7 @@
         panelFeatureProvider = mock(PanelFeatureProvider.class);
         mBluetoothFeatureProvider = mock(BluetoothFeatureProvider.class);
         mFaceFeatureProvider = mock(FaceFeatureProvider.class);
+        mFingerprintFeatureProvider = mock(FingerprintFeatureProvider.class);
         mBiometricsRepositoryProvider = mock(BiometricsRepositoryProvider.class);
         wifiTrackerLibProvider = mock(WifiTrackerLibProvider.class);
         securitySettingsFeatureProvider = mock(SecuritySettingsFeatureProvider.class);
@@ -143,6 +148,7 @@
         mStylusFeatureProvider = mock(StylusFeatureProvider.class);
         mOnboardingFeatureProvider = mock(OnboardingFeatureProvider.class);
         mFastPairFeatureProvider = mock(FastPairFeatureProvider.class);
+        mPrivateSpaceLoginFeatureProvider =  mock(PrivateSpaceLoginFeatureProvider.class);
     }
 
     @Override
@@ -257,6 +263,11 @@
     }
 
     @Override
+    public FingerprintFeatureProvider getFingerprintFeatureProvider() {
+        return mFingerprintFeatureProvider;
+    }
+
+    @Override
     public BiometricsRepositoryProvider getBiometricsRepositoryProvider() {
         return mBiometricsRepositoryProvider;
     }
@@ -315,5 +326,10 @@
     public FastPairFeatureProvider getFastPairFeatureProvider() {
         return mFastPairFeatureProvider;
     }
+
+    @Override
+    public PrivateSpaceLoginFeatureProvider getPrivateSpaceLoginFeatureProvider() {
+        return mPrivateSpaceLoginFeatureProvider;
+    }
 }
 
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 c8d2866..ce6dc6a 100644
--- a/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowUserManager.java
+++ b/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowUserManager.java
@@ -17,6 +17,7 @@
 package com.android.settings.testutils.shadow;
 
 import static android.os.Build.VERSION_CODES.LOLLIPOP;
+import static android.os.UserManager.USER_TYPE_PROFILE_PRIVATE;
 
 import android.annotation.UserIdInt;
 import android.content.pm.UserInfo;
@@ -223,6 +224,10 @@
         mManagedProfiles.addAll(profileIds);
     }
 
+    public void setPrivateProfile(int id, String name, int flags) {
+        mUserProfileInfos.add(new UserInfo(id, name, null, flags, USER_TYPE_PROFILE_PRIVATE));
+    }
+
     public void setUserSwitcherEnabled(boolean userSwitchEnabled) {
         mUserSwitchEnabled = userSwitchEnabled;
     }
diff --git a/tests/screenshot/Android.bp b/tests/screenshot/Android.bp
new file mode 100644
index 0000000..e20b5d3
--- /dev/null
+++ b/tests/screenshot/Android.bp
@@ -0,0 +1,70 @@
+//
+// 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.
+
+android_app {
+    name: "ScreenshotTestStub",
+    defaults: [
+        "SettingsLibDefaults",
+    ],
+    platform_apis: true,
+    certificate: "platform",
+    privileged: true,
+    use_resource_processor: true,
+
+    static_libs: [
+        "Settings-core",
+        "androidx.fragment_fragment-testing",
+        "androidx.fragment_fragment",
+        "androidx.test.runner",
+        "androidx.test.core",
+    ],
+    uses_libs: ["org.apache.http.legacy"],
+
+    aaptflags: ["--extra-packages com.android.settings"],
+    manifest: "AndroidManifest.xml",
+}
+
+android_test {
+    name: "SettingsScreenshotTests",
+    platform_apis: true,
+    certificate: "platform",
+    test_suites: ["device-tests"],
+    srcs: [
+        "src/**/*.kt",
+    ],
+    static_libs: [
+        "androidx.fragment_fragment-testing",
+        "androidx.fragment_fragment",
+        "androidx.test.rules",
+        "androidx.test.ext.junit",
+        "platform-screenshot-diff-core",
+        "Settings-testutils2",
+        "androidx.test.core",
+        "androidx.test.espresso.core",
+        "kotlinx-coroutines-android",
+        "androidx.lifecycle_lifecycle-runtime-testing",
+        "kotlinx_coroutines_test",
+        "Settings-core",
+        "androidx.test.runner",
+    ],
+    uses_libs: ["org.apache.http.legacy"],
+    compile_multilib: "both",
+    manifest: "AndroidManifest.xml",
+    test_config: "AndroidTest.xml",
+    use_embedded_native_libs: false,
+    asset_dirs: ["assets"],
+    instrumentation_for: "ScreenshotTestStub",
+    data: [":ScreenshotTestStub"],
+}
diff --git a/tests/screenshot/AndroidManifest.xml b/tests/screenshot/AndroidManifest.xml
new file mode 100644
index 0000000..9cbc882
--- /dev/null
+++ b/tests/screenshot/AndroidManifest.xml
@@ -0,0 +1,47 @@
+<?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.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    package="com.android.settings.tests.screenshot"
+    >
+
+    <application android:debuggable="true">
+        <provider
+            android:name="com.android.settings.slices.SettingsSliceProvider"
+            android:authorities="com.android.settings.tests.screenshot.disabled"
+            android:enabled="false"
+            tools:node="remove"
+            tools:replace="android:authorities" />
+
+    </application>
+
+    <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" />
+    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
+    <uses-permission android:name="android.permission.READ_LOGS" />
+    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
+    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
+    <uses-permission android:name="android.permission.READ_DEVICE_CONFIG" />
+
+    <instrumentation
+        android:name="androidx.test.runner.AndroidJUnitRunner"
+        android:label="Android Settings Screenshot tests"
+        android:targetPackage="com.android.settings.tests.screenshot" />
+
+</manifest>
diff --git a/tests/screenshot/AndroidTest.xml b/tests/screenshot/AndroidTest.xml
new file mode 100644
index 0000000..7496ffd
--- /dev/null
+++ b/tests/screenshot/AndroidTest.xml
@@ -0,0 +1,36 @@
+<!--
+  ~ 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.
+  -->
+
+<configuration description="Runs settings screendiff tests.">
+    <option name="test-suite-tag" value="apct-instrumentation" />
+    <option name="test-suite-tag" value="apct" />
+    <target_preparer class="com.android.tradefed.targetprep.DeviceSetup">
+        <option name="optimized-property-setting" value="true" />
+    </target_preparer>
+    <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
+        <option name="cleanup-apks" value="true" />
+        <option name="test-file-name" value="SettingsScreenshotTests.apk" />
+    </target_preparer>
+    <metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector">
+        <option name="directory-keys"
+            value="/data/user/0/com.android.settings.tests.screenshot/" />
+        <option name="collect-on-run-ended-only" value="true" />
+    </metrics_collector>
+    <test class="com.android.tradefed.testtype.AndroidJUnitTest">
+        <option name="package" value="com.android.settings.tests.screenshot" />
+        <option name="runner" value="androidx.test.runner.AndroidJUnitRunner" />
+    </test>
+</configuration>
diff --git "a/tests/screenshot/assets/pixel_4a_\0505g\051/fp_enroll_intro.png" "b/tests/screenshot/assets/pixel_4a_\0505g\051/fp_enroll_intro.png"
new file mode 100644
index 0000000..1129250
--- /dev/null
+++ "b/tests/screenshot/assets/pixel_4a_\0505g\051/fp_enroll_intro.png"
Binary files differ
diff --git a/tests/screenshot/src/com/android/settings/tests/screenshot/BasicScreenshotTest.kt b/tests/screenshot/src/com/android/settings/tests/screenshot/BasicScreenshotTest.kt
new file mode 100644
index 0000000..bf28b54
--- /dev/null
+++ b/tests/screenshot/src/com/android/settings/tests/screenshot/BasicScreenshotTest.kt
@@ -0,0 +1,147 @@
+/*
+ * 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.tests.screenshot
+
+import android.content.Context
+import android.graphics.Bitmap
+import android.graphics.Canvas
+import android.graphics.Color
+import android.os.Bundle
+import android.view.View
+import androidx.fragment.app.testing.FragmentScenario
+import androidx.fragment.app.testing.launchFragmentInContainer
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.ViewModelProvider
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.platform.app.InstrumentationRegistry
+import com.android.settings.R
+import com.android.settings.biometrics.fingerprint2.shared.model.Default
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment.FingerprintEnrollIntroV2Fragment
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollNavigationViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintGatekeeperViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintScrollViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.GatekeeperInfo
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.NavState
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Start
+import com.android.settings.testutils2.FakeFingerprintManagerInteractor
+import kotlinx.coroutines.test.StandardTestDispatcher
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import platform.test.screenshot.GoldenImagePathManager
+import platform.test.screenshot.ScreenshotTestRule
+import platform.test.screenshot.matchers.MSSIMMatcher
+
+@RunWith(AndroidJUnit4::class)
+class BasicScreenshotTest {
+  @Rule
+  @JvmField
+  var rule: ScreenshotTestRule =
+    ScreenshotTestRule(
+      GoldenImagePathManager(
+        InstrumentationRegistry.getInstrumentation().getContext(),
+        InstrumentationRegistry.getInstrumentation()
+          .getTargetContext()
+          .getFilesDir()
+          .getAbsolutePath() + "/settings_screenshots"
+      )
+    )
+
+  private var context: Context = ApplicationProvider.getApplicationContext()
+  private var interactor = FakeFingerprintManagerInteractor()
+
+  private val gatekeeperViewModel =
+    FingerprintGatekeeperViewModel(
+      GatekeeperInfo.GatekeeperPasswordInfo(byteArrayOf(1, 2, 3), 100L),
+      interactor
+    )
+
+  private val backgroundDispatcher = StandardTestDispatcher()
+  private lateinit var fragmentScenario: FragmentScenario<FingerprintEnrollIntroV2Fragment>
+  val navState = NavState(true)
+
+  private val navigationViewModel = FingerprintEnrollNavigationViewModel(
+      backgroundDispatcher,
+      interactor,
+      gatekeeperViewModel,
+      Start.next(navState),
+      navState,
+      Default,
+    )
+  private var fingerprintViewModel = FingerprintEnrollViewModel(
+      interactor, gatekeeperViewModel, navigationViewModel,
+    )
+  private var fingerprintScrollViewModel = FingerprintScrollViewModel()
+
+  @Before
+  fun setup() {
+    val factory =
+      object : ViewModelProvider.Factory {
+        @Suppress("UNCHECKED_CAST")
+        override fun <T : ViewModel> create(
+          modelClass: Class<T>,
+        ): T {
+          return when (modelClass) {
+            FingerprintEnrollViewModel::class.java -> fingerprintViewModel
+            FingerprintScrollViewModel::class.java -> fingerprintScrollViewModel
+            FingerprintEnrollNavigationViewModel::class.java -> navigationViewModel
+            FingerprintGatekeeperViewModel::class.java -> gatekeeperViewModel
+            else -> null
+          }
+            as T
+        }
+      }
+
+    fragmentScenario =
+      launchFragmentInContainer(Bundle(), R.style.SudThemeGlif) {
+        FingerprintEnrollIntroV2Fragment(factory)
+      }
+  }
+
+  /** Renders a [view] into a [Bitmap]. */
+  private fun viewToBitmap(view: View): Bitmap {
+    val bitmap =
+      Bitmap.createBitmap(
+        view.measuredWidth,
+        view.measuredHeight,
+        Bitmap.Config.ARGB_8888,
+      )
+    val canvas = Canvas(bitmap)
+    view.draw(canvas)
+    return bitmap
+  }
+
+  @Test
+  fun testEnrollIntro() {
+    fragmentScenario.onFragment { fragment ->
+      val view = fragment.requireView().findViewById<View>(R.id.enroll_intro_content_view)!!
+      view.setBackgroundColor(Color.BLACK)
+    }
+    fragmentScenario.onFragment { fragment ->
+      val view = fragment.requireView().findViewById<View>(R.id.enroll_intro_content_view)!!
+      rule.assertBitmapAgainstGolden(
+        viewToBitmap(view),
+        "fp_enroll_intro",
+        MSSIMMatcher()
+      )
+    }
+
+  }
+}
diff --git a/tests/shared/src/com/android/settings/testutils2/FakeFingerprintManagerInteractor.kt b/tests/shared/src/com/android/settings/testutils2/FakeFingerprintManagerInteractor.kt
index ad943f2..dd8658c 100644
--- a/tests/shared/src/com/android/settings/testutils2/FakeFingerprintManagerInteractor.kt
+++ b/tests/shared/src/com/android/settings/testutils2/FakeFingerprintManagerInteractor.kt
@@ -18,9 +18,9 @@
 
 import com.android.settings.biometrics.fingerprint2.shared.domain.interactor.FingerprintManagerInteractor
 import com.android.settings.biometrics.fingerprint2.shared.model.EnrollReason
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollStateViewModel
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptViewModel
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollState
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
 import com.android.systemui.biometrics.shared.model.FingerprintSensor
 import com.android.systemui.biometrics.shared.model.FingerprintSensorType
 import com.android.systemui.biometrics.shared.model.SensorStrength
@@ -32,10 +32,11 @@
 class FakeFingerprintManagerInteractor : FingerprintManagerInteractor {
 
   var enrollableFingerprints: Int = 5
-  var enrolledFingerprintsInternal: MutableList<FingerprintViewModel> = mutableListOf()
+  var enrolledFingerprintsInternal: MutableList<FingerprintData> = mutableListOf()
   var challengeToGenerate: Pair<Long, ByteArray> = Pair(-1L, byteArrayOf())
-  var authenticateAttempt = FingerprintAuthAttemptViewModel.Success(1)
-  val enrollStateViewModel = FingerEnrollStateViewModel.EnrollProgress(1)
+  var authenticateAttempt = FingerprintAuthAttemptModel.Success(1)
+  var enrollStateViewModel: List<FingerEnrollState> =
+    listOf(FingerEnrollState.EnrollProgress(5, 5))
   var pressToAuthEnabled = true
 
   var sensorProp =
@@ -46,7 +47,7 @@
       FingerprintSensorType.POWER_BUTTON
     )
 
-  override suspend fun authenticate(): FingerprintAuthAttemptViewModel {
+  override suspend fun authenticate(): FingerprintAuthAttemptModel {
     return authenticateAttempt
   }
 
@@ -54,7 +55,7 @@
     return challengeToGenerate
   }
 
-  override val enrolledFingerprints: Flow<List<FingerprintViewModel>> = flow {
+  override val enrolledFingerprints: Flow<List<FingerprintData>> = flow {
     emit(enrolledFingerprintsInternal)
   }
 
@@ -62,24 +63,22 @@
     emit(enrolledFingerprintsInternal.size < enrollableFingerprints)
   }
 
-  override val sensorPropertiesInternal: Flow<FingerprintSensor?> = flow {
-    emit(sensorProp)
-  }
+  override val sensorPropertiesInternal: Flow<FingerprintSensor?> = flow { emit(sensorProp) }
 
   override val maxEnrollableFingerprints: Flow<Int> = flow { emit(enrollableFingerprints) }
 
   override suspend fun enroll(
     hardwareAuthToken: ByteArray?,
     enrollReason: EnrollReason
-  ): Flow<FingerEnrollStateViewModel> = flowOf(enrollStateViewModel)
+  ): Flow<FingerEnrollState> = flowOf(*enrollStateViewModel.toTypedArray())
 
-  override suspend fun removeFingerprint(fp: FingerprintViewModel): Boolean {
+  override suspend fun removeFingerprint(fp: FingerprintData): Boolean {
     return enrolledFingerprintsInternal.remove(fp)
   }
 
-  override suspend fun renameFingerprint(fp: FingerprintViewModel, newName: String) {
+  override suspend fun renameFingerprint(fp: FingerprintData, newName: String) {
     if (enrolledFingerprintsInternal.remove(fp)) {
-      enrolledFingerprintsInternal.add(FingerprintViewModel(newName, fp.fingerId, fp.deviceId))
+      enrolledFingerprintsInternal.add(FingerprintData(newName, fp.fingerId, fp.deviceId))
     }
   }
 
diff --git a/tests/spa_unit/Android.bp b/tests/spa_unit/Android.bp
index 28a2667..c3e99f7 100644
--- a/tests/spa_unit/Android.bp
+++ b/tests/spa_unit/Android.bp
@@ -34,6 +34,7 @@
         "androidx.compose.runtime_runtime",
         "androidx.test.ext.junit",
         "androidx.test.runner",
+        "flag-junit",
         "mockito-target-extended-minus-junit4",
     ],
     jni_libs: [
diff --git a/tests/spa_unit/src/com/android/settings/activityembedding/EmbeddedDeepLinkUtilsTest.kt b/tests/spa_unit/src/com/android/settings/activityembedding/EmbeddedDeepLinkUtilsTest.kt
new file mode 100644
index 0000000..9a638b2
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/activityembedding/EmbeddedDeepLinkUtilsTest.kt
@@ -0,0 +1,61 @@
+/*
+ * 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.activityembedding
+
+import android.content.Context
+import android.content.Intent
+import android.net.Uri
+import android.provider.Settings
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.activityembedding.EmbeddedDeepLinkUtils.getTrampolineIntent
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class EmbeddedDeepLinkUtilsTest {
+
+    private val context: Context = ApplicationProvider.getApplicationContext()
+
+    @Test
+    fun getTrampolineIntent_intentSelector_shouldNotChangeIntentAction() {
+        val targetIntent = Intent().setClassName(
+            "android",
+            "com.android.internal.app.PlatLogoActivity"
+        )
+        val intent = Intent(Settings.ACTION_DISPLAY_SETTINGS).apply {
+            setComponent(resolveActivity(context.packageManager))
+            setSelector(
+                Intent().setData(
+                    Uri.fromParts(
+                        targetIntent.toUri(Intent.URI_INTENT_SCHEME),
+                        /* ssp= */ "",
+                        /* fragment= */ null,
+                    )
+                )
+            )
+        }
+
+        val resultIntent = getTrampolineIntent(intent, "menu_key")
+
+        val intentUriString =
+            resultIntent.getStringExtra(Settings.EXTRA_SETTINGS_EMBEDDED_DEEP_LINK_INTENT_URI)
+        val parsedIntent = Intent.parseUri(intentUriString, Intent.URI_INTENT_SCHEME)
+        assertThat(parsedIntent.action).isEqualTo(intent.action)
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/datausage/AppDataUsageAppSettingsControllerTest.kt b/tests/spa_unit/src/com/android/settings/datausage/AppDataUsageAppSettingsControllerTest.kt
new file mode 100644
index 0000000..220c970
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/datausage/AppDataUsageAppSettingsControllerTest.kt
@@ -0,0 +1,98 @@
+/*
+ * 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.datausage
+
+import android.content.Context
+import android.content.Intent
+import android.content.pm.PackageManager
+import android.content.pm.ResolveInfo
+import androidx.lifecycle.testing.TestLifecycleOwner
+import androidx.preference.PreferenceCategory
+import androidx.preference.PreferenceManager
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.delay
+import kotlinx.coroutines.runBlocking
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.argThat
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.eq
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.stub
+
+@RunWith(AndroidJUnit4::class)
+class AppDataUsageAppSettingsControllerTest {
+    private val packageManager = mock<PackageManager>()
+
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        on { packageManager } doReturn packageManager
+    }
+
+    private val controller = AppDataUsageAppSettingsController(context, KEY)
+
+    private val preference = PreferenceCategory(context).apply { key = KEY }
+
+    private val preferenceScreen = PreferenceManager(context).createPreferenceScreen(context)
+
+    @Before
+    fun setUp() {
+        preferenceScreen.addPreference(preference)
+    }
+
+    @Test
+    fun onViewCreated_noSettingsActivity_hidePreference(): Unit = runBlocking {
+        controller.init(listOf(PACKAGE_NAME), USER_ID)
+        controller.displayPreference(preferenceScreen)
+
+        controller.onViewCreated(TestLifecycleOwner())
+        delay(100)
+
+        assertThat(preference.isVisible).isFalse()
+    }
+
+    @Test
+    fun onViewCreated_hasSettingsActivity_showPreference(): Unit = runBlocking {
+        packageManager.stub {
+            on {
+                resolveActivityAsUser(
+                    argThat {
+                        action == Intent.ACTION_MANAGE_NETWORK_USAGE && getPackage() == PACKAGE_NAME
+                    },
+                    eq(0),
+                    eq(USER_ID),
+                )
+            } doReturn ResolveInfo()
+        }
+        controller.init(listOf(PACKAGE_NAME), USER_ID)
+        controller.displayPreference(preferenceScreen)
+
+        controller.onViewCreated(TestLifecycleOwner())
+        delay(100)
+
+        assertThat(preference.isVisible).isTrue()
+    }
+
+    private companion object {
+        const val KEY = "test_key"
+        const val PACKAGE_NAME = "package.name"
+        const val USER_ID = 0
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/datausage/AppDataUsageCycleControllerTest.kt b/tests/spa_unit/src/com/android/settings/datausage/AppDataUsageCycleControllerTest.kt
new file mode 100644
index 0000000..fe35259
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/datausage/AppDataUsageCycleControllerTest.kt
@@ -0,0 +1,107 @@
+/*
+ * 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.datausage
+
+import android.content.Context
+import android.util.Range
+import androidx.lifecycle.testing.TestLifecycleOwner
+import androidx.preference.PreferenceManager
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.datausage.lib.IAppDataUsageDetailsRepository
+import com.android.settings.datausage.lib.NetworkUsageDetailsData
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.delay
+import kotlinx.coroutines.runBlocking
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.verify
+
+@RunWith(AndroidJUnit4::class)
+class AppDataUsageCycleControllerTest {
+    private val context: Context = ApplicationProvider.getApplicationContext()
+
+    private val preference = spy(SpinnerPreference(context, null).apply { key = KEY })
+
+    private val preferenceScreen = PreferenceManager(context).createPreferenceScreen(context)
+
+    private val controller = AppDataUsageCycleController(context, KEY)
+
+    @Before
+    fun setUp() {
+        preferenceScreen.addPreference(preference)
+    }
+
+    @Test
+    fun onViewCreated_noUsage_hidePreference(): Unit = runBlocking {
+        val repository = object : IAppDataUsageDetailsRepository {
+            override suspend fun queryDetailsForCycles() = emptyList<NetworkUsageDetailsData>()
+        }
+        controller.displayPreference(preferenceScreen)
+        controller.init(repository) {}
+
+        controller.onViewCreated(TestLifecycleOwner())
+        delay(100)
+
+        assertThat(preference.isVisible).isFalse()
+    }
+
+    @Test
+    fun onViewCreated_hasUsage_showPreference(): Unit = runBlocking {
+        val detailsData = NetworkUsageDetailsData(
+            range = Range(1, 2),
+            totalUsage = 11,
+            foregroundUsage = 1,
+            backgroundUsage = 10,
+        )
+        val repository = object : IAppDataUsageDetailsRepository {
+            override suspend fun queryDetailsForCycles() = listOf(detailsData)
+        }
+        controller.displayPreference(preferenceScreen)
+        controller.init(repository) {}
+
+        controller.onViewCreated(TestLifecycleOwner())
+        delay(100)
+
+        assertThat(preference.isVisible).isTrue()
+    }
+
+    @Test
+    fun setInitialCycles() {
+        val repository = object : IAppDataUsageDetailsRepository {
+            override suspend fun queryDetailsForCycles() = emptyList<NetworkUsageDetailsData>()
+        }
+        controller.displayPreference(preferenceScreen)
+        controller.init(repository) {}
+
+        controller.setInitialCycles(
+            initialCycles = listOf(CYCLE2_END_TIME, CYCLE1_END_TIME, CYCLE1_START_TIME),
+            initialSelectedEndTime = CYCLE1_END_TIME,
+        )
+
+        verify(preference).setSelection(1)
+    }
+
+    private companion object {
+        const val KEY = "test_key"
+        const val CYCLE1_START_TIME = 1694444444000L
+        const val CYCLE1_END_TIME = 1695555555000L
+        const val CYCLE2_END_TIME = 1695566666000L
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/datausage/AppDataUsageListControllerTest.kt b/tests/spa_unit/src/com/android/settings/datausage/AppDataUsageListControllerTest.kt
new file mode 100644
index 0000000..4575a8d
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/datausage/AppDataUsageListControllerTest.kt
@@ -0,0 +1,91 @@
+/*
+ * 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.datausage
+
+import android.content.Context
+import androidx.lifecycle.testing.TestLifecycleOwner
+import androidx.preference.Preference
+import androidx.preference.PreferenceCategory
+import androidx.preference.PreferenceManager
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.datausage.lib.AppPreferenceRepository
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.delay
+import kotlinx.coroutines.runBlocking
+import org.junit.Before
+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 AppDataUsageListControllerTest {
+    private val context: Context = ApplicationProvider.getApplicationContext()
+
+    private val repository = mock<AppPreferenceRepository> {
+        on { loadAppPreferences(any()) } doAnswer {
+            val uids = it.arguments[0] as List<*>
+            uids.map { Preference(context) }
+        }
+    }
+
+    private val controller = AppDataUsageListController(
+        context = context,
+        preferenceKey = KEY,
+        repository = repository,
+    )
+
+    private val preference = PreferenceCategory(context).apply { key = KEY }
+
+    private val preferenceScreen = PreferenceManager(context).createPreferenceScreen(context)
+
+    @Before
+    fun setUp() {
+        preferenceScreen.addPreference(preference)
+    }
+
+    @Test
+    fun onViewCreated_singleUid_hidePreference(): Unit = runBlocking {
+        controller.init(listOf(UID_0))
+        controller.displayPreference(preferenceScreen)
+
+        controller.onViewCreated(TestLifecycleOwner())
+        delay(100)
+
+        assertThat(preference.isVisible).isFalse()
+    }
+
+    @Test
+    fun onViewCreated_twoUid_showPreference(): Unit = runBlocking {
+        controller.init(listOf(UID_0, UID_1))
+        controller.displayPreference(preferenceScreen)
+
+        controller.onViewCreated(TestLifecycleOwner())
+        delay(100)
+
+        assertThat(preference.isVisible).isTrue()
+        assertThat(preference.preferenceCount).isEqualTo(2)
+    }
+
+    private companion object {
+        const val KEY = "test_key"
+        const val UID_0 = 10000
+        const val UID_1 = 10001
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/datausage/BillingCyclePreferenceTest.kt b/tests/spa_unit/src/com/android/settings/datausage/BillingCyclePreferenceTest.kt
index 2e2620b..4bf3851 100644
--- a/tests/spa_unit/src/com/android/settings/datausage/BillingCyclePreferenceTest.kt
+++ b/tests/spa_unit/src/com/android/settings/datausage/BillingCyclePreferenceTest.kt
@@ -18,40 +18,69 @@
 
 import android.content.Context
 import android.net.NetworkTemplate
+import androidx.compose.ui.test.assertIsDisplayed
+import androidx.compose.ui.test.assertIsEnabled
+import androidx.compose.ui.test.assertIsNotEnabled
+import androidx.compose.ui.test.junit4.createComposeRule
+import androidx.compose.ui.test.onNodeWithText
 import androidx.test.core.app.ApplicationProvider
 import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.R
 import com.android.settings.datausage.lib.BillingCycleRepository
-import com.google.common.truth.Truth.assertThat
+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 BillingCyclePreferenceTest {
+    @get:Rule
+    val composeTestRule = createComposeRule()
 
-    private val mockBillingCycleRepository = mock<BillingCycleRepository> {
-        on { isModifiable(SUB_ID) } doReturn false
-    }
+    private val mockBillingCycleRepository = mock<BillingCycleRepository>()
 
     private val context: Context = ApplicationProvider.getApplicationContext()
 
     private val preference = BillingCyclePreference(context, null, mockBillingCycleRepository)
 
     @Test
-    fun isEnabled_initialState() {
-        val enabled = preference.isEnabled
+    fun setTemplate_titleDisplayed() {
+        setTemplate()
 
-        assertThat(enabled).isTrue()
+        composeTestRule.onNodeWithText(context.getString(R.string.billing_cycle))
+            .assertIsDisplayed()
     }
 
     @Test
-    fun isEnabled_afterSetTemplate_updated() {
+    fun setTemplate_modifiable_enabled() {
+        mockBillingCycleRepository.stub {
+            on { isModifiable(SUB_ID) } doReturn true
+        }
+
+        setTemplate()
+
+        composeTestRule.onNodeWithText(context.getString(R.string.billing_cycle)).assertIsEnabled()
+    }
+
+    @Test
+    fun setTemplate_notModifiable_notEnabled() {
+        mockBillingCycleRepository.stub {
+            on { isModifiable(SUB_ID) } doReturn false
+        }
+
+        setTemplate()
+
+        composeTestRule.onNodeWithText(context.getString(R.string.billing_cycle))
+            .assertIsNotEnabled()
+    }
+
+    private fun setTemplate() {
         preference.setTemplate(mock<NetworkTemplate>(), SUB_ID)
-
-        val enabled = preference.isEnabled
-
-        assertThat(enabled).isFalse()
+        composeTestRule.setContent {
+            preference.Content()
+        }
     }
 
     private companion object {
diff --git a/tests/spa_unit/src/com/android/settings/datausage/ChartDataUsagePreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/datausage/ChartDataUsagePreferenceControllerTest.kt
index 1748f07..ae09ef9 100644
--- a/tests/spa_unit/src/com/android/settings/datausage/ChartDataUsagePreferenceControllerTest.kt
+++ b/tests/spa_unit/src/com/android/settings/datausage/ChartDataUsagePreferenceControllerTest.kt
@@ -17,6 +17,7 @@
 package com.android.settings.datausage
 
 import android.content.Context
+import android.util.Range
 import androidx.lifecycle.testing.TestLifecycleOwner
 import androidx.preference.PreferenceScreen
 import androidx.test.core.app.ApplicationProvider
@@ -39,10 +40,10 @@
 
     private val repository = object : INetworkCycleDataRepository {
         override suspend fun loadCycles() = emptyList<NetworkUsageData>()
-
+        override fun getCycles() = emptyList<Range<Long>>()
         override fun getPolicy() = null
 
-        override suspend fun querySummary(startTime: Long, endTime: Long) = when {
+        override suspend fun queryChartData(startTime: Long, endTime: Long) = when {
             startTime == START_TIME && endTime == END_TIME -> CycleChartDate
             else -> null
         }
diff --git a/tests/spa_unit/src/com/android/settings/datausage/DataUsageListHeaderControllerTest.kt b/tests/spa_unit/src/com/android/settings/datausage/DataUsageListHeaderControllerTest.kt
index 35b70d6..6d5be6b 100644
--- a/tests/spa_unit/src/com/android/settings/datausage/DataUsageListHeaderControllerTest.kt
+++ b/tests/spa_unit/src/com/android/settings/datausage/DataUsageListHeaderControllerTest.kt
@@ -18,6 +18,7 @@
 
 import android.content.Context
 import android.net.NetworkTemplate
+import android.util.Range
 import android.view.LayoutInflater
 import android.view.View
 import android.widget.Spinner
@@ -48,10 +49,9 @@
 
     private val repository = object : INetworkCycleDataRepository {
         override suspend fun loadCycles() = emptyList<NetworkUsageData>()
-
+        override fun getCycles() = emptyList<Range<Long>>()
         override fun getPolicy() = null
-
-        override suspend fun querySummary(startTime: Long, endTime: Long) = null
+        override suspend fun queryChartData(startTime: Long, endTime: Long) = null
     }
 
     private val header =
@@ -69,7 +69,7 @@
         sourceMetricsCategory = 0,
         viewLifecycleOwner = testLifecycleOwner,
         onCyclesLoad = {},
-        onItemSelected = {},
+        updateSelectedCycle = {},
         repository = repository,
     )
 
diff --git a/tests/spa_unit/src/com/android/settings/datausage/lib/AppDataUsageDetailsRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/datausage/lib/AppDataUsageDetailsRepositoryTest.kt
new file mode 100644
index 0000000..85431a4
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/datausage/lib/AppDataUsageDetailsRepositoryTest.kt
@@ -0,0 +1,129 @@
+/*
+ * 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.datausage.lib
+
+import android.app.usage.NetworkStats
+import android.content.Context
+import android.net.NetworkTemplate
+import android.util.Range
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.google.common.truth.Truth.assertThat
+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
+import com.android.settings.datausage.lib.NetworkStatsRepository.Companion.Bucket
+
+@RunWith(AndroidJUnit4::class)
+class AppDataUsageDetailsRepositoryTest {
+    private val context: Context = ApplicationProvider.getApplicationContext()
+
+    private val template = mock<NetworkTemplate>()
+
+    private val networkCycleDataRepository = mock<INetworkCycleDataRepository> {
+        on { getCycles() } doReturn listOf(Range(CYCLE1_END_TIME, CYCLE2_END_TIME))
+    }
+
+    private val networkStatsRepository = mock<NetworkStatsRepository>()
+
+    @Test
+    fun queryDetailsForCycles_hasCycles(): Unit = runBlocking {
+        networkStatsRepository.stub {
+            on { queryBuckets(CYCLE1_START_TIME, CYCLE1_END_TIME) } doReturn listOf(
+                Bucket(
+                    uid = UID,
+                    state = NetworkStats.Bucket.STATE_DEFAULT,
+                    bytes = BACKGROUND_USAGE,
+                ),
+                Bucket(
+                    uid = UID,
+                    state = NetworkStats.Bucket.STATE_FOREGROUND,
+                    bytes = FOREGROUND_USAGE,
+                ),
+            )
+        }
+        val repository = AppDataUsageDetailsRepository(
+            context = context,
+            cycles = listOf(CYCLE1_END_TIME, CYCLE1_START_TIME),
+            template = template,
+            uids = listOf(UID),
+            networkCycleDataRepository = networkCycleDataRepository,
+            networkStatsRepository = networkStatsRepository,
+        )
+
+        val detailsForCycles = repository.queryDetailsForCycles()
+
+        assertThat(detailsForCycles).containsExactly(
+            NetworkUsageDetailsData(
+                range = Range(CYCLE1_START_TIME, CYCLE1_END_TIME),
+                totalUsage = BACKGROUND_USAGE + FOREGROUND_USAGE,
+                foregroundUsage = FOREGROUND_USAGE,
+                backgroundUsage = BACKGROUND_USAGE,
+            )
+        )
+    }
+
+    @Test
+    fun queryDetailsForCycles_defaultCycles(): Unit = runBlocking {
+        networkStatsRepository.stub {
+            on { queryBuckets(CYCLE1_END_TIME, CYCLE2_END_TIME) } doReturn listOf(
+                Bucket(
+                    uid = UID,
+                    state = NetworkStats.Bucket.STATE_DEFAULT,
+                    bytes = BACKGROUND_USAGE,
+                ),
+                Bucket(
+                    uid = UID,
+                    state = NetworkStats.Bucket.STATE_FOREGROUND,
+                    bytes = FOREGROUND_USAGE,
+                ),
+            )
+        }
+        val repository = AppDataUsageDetailsRepository(
+            context = context,
+            cycles = null,
+            template = template,
+            uids = listOf(UID),
+            networkCycleDataRepository = networkCycleDataRepository,
+            networkStatsRepository = networkStatsRepository,
+        )
+
+        val detailsForCycles = repository.queryDetailsForCycles()
+
+        assertThat(detailsForCycles).containsExactly(
+            NetworkUsageDetailsData(
+                range = Range(CYCLE1_END_TIME, CYCLE2_END_TIME),
+                totalUsage = BACKGROUND_USAGE + FOREGROUND_USAGE,
+                foregroundUsage = FOREGROUND_USAGE,
+                backgroundUsage = BACKGROUND_USAGE,
+            )
+        )
+    }
+
+    private companion object {
+        const val CYCLE1_START_TIME = 1694444444000L
+        const val CYCLE1_END_TIME = 1695555555000L
+        const val CYCLE2_END_TIME = 1695566666000L
+        const val UID = 10000
+
+        const val BACKGROUND_USAGE = 8L
+        const val FOREGROUND_USAGE = 2L
+    }
+}
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 531e6e7..f2bf524 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
@@ -26,7 +26,7 @@
 import androidx.test.core.app.ApplicationProvider
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import com.android.settings.R
-import com.android.settings.datausage.lib.AppDataUsageRepository.Companion.Bucket
+import com.android.settings.datausage.lib.NetworkStatsRepository.Companion.Bucket
 import com.android.settingslib.AppItem
 import com.android.settingslib.spaprivileged.framework.common.userManager
 import com.google.common.truth.Truth.assertThat
diff --git a/tests/spa_unit/src/com/android/settings/datausage/lib/AppDataUsageSummaryRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/datausage/lib/AppDataUsageSummaryRepositoryTest.kt
new file mode 100644
index 0000000..0557d7f
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/datausage/lib/AppDataUsageSummaryRepositoryTest.kt
@@ -0,0 +1,74 @@
+/*
+ * 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.datausage.lib
+
+import android.content.Context
+import android.net.NetworkTemplate
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.runBlocking
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+
+@RunWith(AndroidJUnit4::class)
+class AppDataUsageSummaryRepositoryTest {
+
+    private val context: Context = ApplicationProvider.getApplicationContext()
+
+    private val template = mock<NetworkTemplate>()
+
+    private val networkStatsRepository = mock<NetworkStatsRepository> {
+        on {
+            queryAggregateForUid(range = NetworkStatsRepository.AllTimeRange, uid = APP_UID)
+        } doReturn NetworkUsageData(APP_START_TIME, APP_END_TIME, APP_USAGE)
+
+        on {
+            queryAggregateForUid(range = NetworkStatsRepository.AllTimeRange, uid = SDK_SANDBOX_UID)
+        } doReturn NetworkUsageData(SDK_SANDBOX_START_TIME, SDK_SANDBOX_END_TIME, SDK_SANDBOX_USAGE)
+    }
+
+    private val repository =
+        AppDataUsageSummaryRepository(context, template, networkStatsRepository)
+
+    @Test
+    fun querySummary(): Unit = runBlocking {
+        val networkUsageData = repository.querySummary(APP_UID)
+
+        assertThat(networkUsageData).isEqualTo(
+            NetworkUsageData(
+                startTime = APP_START_TIME,
+                endTime = SDK_SANDBOX_END_TIME,
+                usage = APP_USAGE + SDK_SANDBOX_USAGE,
+            )
+        )
+    }
+
+    private companion object {
+        const val APP_UID = 10000
+        const val APP_START_TIME = 10L
+        const val APP_END_TIME = 30L
+        const val APP_USAGE = 3L
+
+        const val SDK_SANDBOX_UID = 20000
+        const val SDK_SANDBOX_START_TIME = 20L
+        const val SDK_SANDBOX_END_TIME = 40L
+        const val SDK_SANDBOX_USAGE = 5L
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/datausage/lib/AppPreferenceRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/datausage/lib/AppPreferenceRepositoryTest.kt
new file mode 100644
index 0000000..c7371ee
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/datausage/lib/AppPreferenceRepositoryTest.kt
@@ -0,0 +1,89 @@
+/*
+ * 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.datausage.lib
+
+import android.content.Context
+import android.content.pm.ApplicationInfo
+import android.content.pm.PackageManager
+import android.graphics.drawable.Drawable
+import android.os.UserHandle
+import androidx.test.core.app.ApplicationProvider
+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.any
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.doThrow
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.stub
+
+@RunWith(AndroidJUnit4::class)
+class AppPreferenceRepositoryTest {
+    private val packageManager = mock<PackageManager> {
+        on { getPackagesForUid(UID) } doReturn arrayOf(PACKAGE_NAME)
+    }
+
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        on { packageManager } doReturn packageManager
+    }
+
+    private val repository = AppPreferenceRepository(context)
+
+    @Test
+    fun loadAppPreferences_packageNotFound_returnEmpty() {
+        packageManager.stub {
+            on {
+                getApplicationInfoAsUser(PACKAGE_NAME, 0, UserHandle.getUserId(UID))
+            } doThrow PackageManager.NameNotFoundException()
+        }
+
+        val preferences = repository.loadAppPreferences(listOf(UID))
+
+        assertThat(preferences).isEmpty()
+    }
+
+    @Test
+    fun loadAppPreferences_packageFound_returnPreference() {
+        val app = mock<ApplicationInfo> {
+            on { loadUnbadgedIcon(any()) } doReturn UNBADGED_ICON
+            on { loadLabel(any()) } doReturn LABEL
+        }
+        packageManager.stub {
+            on {
+                getApplicationInfoAsUser(PACKAGE_NAME, 0, UserHandle.getUserId(UID))
+            } doReturn app
+        }
+
+        val preferences = repository.loadAppPreferences(listOf(UID))
+
+        assertThat(preferences).hasSize(1)
+        preferences[0].apply {
+            assertThat(title).isEqualTo(LABEL)
+            assertThat(icon).isNotNull()
+            assertThat(isSelectable).isFalse()
+        }
+    }
+
+    private companion object {
+        const val UID = 10000
+        const val PACKAGE_NAME = "package.name"
+        const val LABEL = "Label"
+        val UNBADGED_ICON = mock<Drawable>()
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/datausage/lib/NetworkCycleDataRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/datausage/lib/NetworkCycleDataRepositoryTest.kt
index fb5e820..5678503 100644
--- a/tests/spa_unit/src/com/android/settings/datausage/lib/NetworkCycleDataRepositoryTest.kt
+++ b/tests/spa_unit/src/com/android/settings/datausage/lib/NetworkCycleDataRepositoryTest.kt
@@ -16,8 +16,6 @@
 
 package com.android.settings.datausage.lib
 
-import android.app.usage.NetworkStats.Bucket
-import android.app.usage.NetworkStatsManager
 import android.content.Context
 import android.net.NetworkPolicy
 import android.net.NetworkTemplate
@@ -32,44 +30,37 @@
 import kotlinx.coroutines.test.runTest
 import org.junit.Test
 import org.junit.runner.RunWith
-import org.mockito.kotlin.any
 import org.mockito.kotlin.doReturn
-import org.mockito.kotlin.eq
 import org.mockito.kotlin.mock
 import org.mockito.kotlin.spy
+import org.mockito.kotlin.stub
 import org.mockito.kotlin.whenever
 
 @RunWith(AndroidJUnit4::class)
 class NetworkCycleDataRepositoryTest {
-    private val mockNetworkStatsManager = mock<NetworkStatsManager> {
-        on { querySummaryForDevice(any(), eq(CYCLE1_START_TIME), eq(CYCLE1_END_TIME)) } doReturn
-            CYCLE1_BUCKET
+    private val mockNetworkStatsRepository = mock<NetworkStatsRepository> {
+        on { querySummaryForDevice(CYCLE1_START_TIME, CYCLE1_END_TIME) } doReturn CYCLE1_BYTES
 
         on {
             querySummaryForDevice(
-                any(),
-                eq(CYCLE2_END_TIME - DateUtils.WEEK_IN_MILLIS * 4),
-                eq(CYCLE2_END_TIME),
+                startTime = CYCLE2_END_TIME - DateUtils.WEEK_IN_MILLIS * 4,
+                endTime = CYCLE2_END_TIME,
             )
-        } doReturn CYCLE2_BUCKET
+        } doReturn CYCLE2_BYTES
 
-        on { querySummaryForDevice(any(), eq(CYCLE3_START_TIME), eq(CYCLE4_END_TIME)) } doReturn
-            CYCLE3_AND_4_BUCKET
+        on { querySummaryForDevice(CYCLE3_START_TIME, CYCLE4_END_TIME) } doReturn
+            CYCLE3_BYTES + CYCLE4_BYTES
 
-        on { querySummaryForDevice(any(), eq(CYCLE3_START_TIME), eq(CYCLE3_END_TIME)) } doReturn
-            CYCLE3_BUCKET
-
-        on { querySummaryForDevice(any(), eq(CYCLE4_START_TIME), eq(CYCLE4_END_TIME)) } doReturn
-            CYCLE4_BUCKET
+        on { querySummaryForDevice(CYCLE3_START_TIME, CYCLE3_END_TIME) } doReturn CYCLE3_BYTES
+        on { querySummaryForDevice(CYCLE4_START_TIME, CYCLE4_END_TIME) } doReturn CYCLE4_BYTES
     }
 
-    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
-        on { getSystemService(NetworkStatsManager::class.java) } doReturn mockNetworkStatsManager
-    }
+    private val context: Context = ApplicationProvider.getApplicationContext()
 
     private val template = mock<NetworkTemplate>()
 
-    private val repository = spy(NetworkCycleDataRepository(context, template))
+    private val repository =
+        spy(NetworkCycleDataRepository(context, template, mockNetworkStatsRepository))
 
     @Test
     fun loadCycles_byPolicy() = runTest {
@@ -82,13 +73,17 @@
 
         val cycles = repository.loadCycles()
 
-        assertThat(cycles).containsExactly(NetworkUsageData(startTime = 1, endTime = 2, usage = 11))
+        assertThat(cycles).containsExactly(
+            NetworkUsageData(startTime = 1, endTime = 2, usage = CYCLE1_BYTES),
+        )
     }
 
     @Test
     fun loadCycles_asFourWeeks() = runTest {
         doReturn(null).whenever(repository).getPolicy()
-        doReturn(Range(CYCLE2_START_TIME, CYCLE2_END_TIME)).whenever(repository).getTimeRange()
+        mockNetworkStatsRepository.stub {
+            on { getTimeRange() } doReturn Range(CYCLE2_START_TIME, CYCLE2_END_TIME)
+        }
 
         val cycles = repository.loadCycles()
 
@@ -96,32 +91,32 @@
             NetworkUsageData(
                 startTime = CYCLE2_END_TIME - DateUtils.WEEK_IN_MILLIS * 4,
                 endTime = CYCLE2_END_TIME,
-                usage = 22,
+                usage = CYCLE2_BYTES,
             ),
         )
     }
 
     @Test
     fun querySummary() = runTest {
-        val summary = repository.querySummary(CYCLE3_START_TIME, CYCLE4_END_TIME)
+        val summary = repository.queryChartData(CYCLE3_START_TIME, CYCLE4_END_TIME)
 
         assertThat(summary).isEqualTo(
             NetworkCycleChartData(
                 total = NetworkUsageData(
                     startTime = CYCLE3_START_TIME,
                     endTime = CYCLE4_END_TIME,
-                    usage = 77,
+                    usage = CYCLE3_BYTES + CYCLE4_BYTES,
                 ),
                 dailyUsage = listOf(
                     NetworkUsageData(
                         startTime = CYCLE3_START_TIME,
                         endTime = CYCLE3_END_TIME,
-                        usage = 33,
+                        usage = CYCLE3_BYTES,
                     ),
                     NetworkUsageData(
                         startTime = CYCLE4_START_TIME,
                         endTime = CYCLE4_END_TIME,
-                        usage = 44,
+                        usage = CYCLE4_BYTES,
                     ),
                 ),
             )
@@ -134,35 +129,18 @@
     private companion object {
         const val CYCLE1_START_TIME = 1L
         const val CYCLE1_END_TIME = 2L
-        val CYCLE1_BUCKET = mock<Bucket> {
-            on { rxBytes } doReturn 1
-            on { txBytes } doReturn 10
-        }
+        const val CYCLE1_BYTES = 11L
 
         const val CYCLE2_START_TIME = 1695555555000L
         const val CYCLE2_END_TIME = 1695566666000L
-        val CYCLE2_BUCKET = mock<Bucket> {
-            on { rxBytes } doReturn 2
-            on { txBytes } doReturn 20
-        }
+        const val CYCLE2_BYTES = 22L
 
         const val CYCLE3_START_TIME = 1695555555000L
         const val CYCLE3_END_TIME = CYCLE3_START_TIME + DateUtils.DAY_IN_MILLIS
-        val CYCLE3_BUCKET = mock<Bucket> {
-            on { rxBytes } doReturn 3
-            on { txBytes } doReturn 30
-        }
+        const val CYCLE3_BYTES = 33L
 
         const val CYCLE4_START_TIME = CYCLE3_END_TIME
         const val CYCLE4_END_TIME = CYCLE4_START_TIME + DateUtils.DAY_IN_MILLIS
-        val CYCLE4_BUCKET = mock<Bucket> {
-            on { rxBytes } doReturn 4
-            on { txBytes } doReturn 40
-        }
-
-        val CYCLE3_AND_4_BUCKET = mock<Bucket> {
-            on { rxBytes } doReturn 7
-            on { txBytes } doReturn 70
-        }
+        const val CYCLE4_BYTES = 44L
     }
 }
diff --git a/tests/spa_unit/src/com/android/settings/datausage/lib/NetworkStatsRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/datausage/lib/NetworkStatsRepositoryTest.kt
new file mode 100644
index 0000000..aa4c5ca
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/datausage/lib/NetworkStatsRepositoryTest.kt
@@ -0,0 +1,62 @@
+/*
+ * 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.datausage.lib
+
+import android.app.usage.NetworkStats
+import android.app.usage.NetworkStatsManager
+import android.content.Context
+import android.net.NetworkTemplate
+import androidx.test.core.app.ApplicationProvider
+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.spy
+
+@RunWith(AndroidJUnit4::class)
+class NetworkStatsRepositoryTest {
+    private val template = mock<NetworkTemplate>()
+
+    private val mockNetworkStatsManager = mock<NetworkStatsManager> {
+        on { querySummaryForDevice(template, START_TIME, END_TIME) } doReturn BUCKET
+    }
+
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        on { getSystemService(NetworkStatsManager::class.java) } doReturn mockNetworkStatsManager
+    }
+
+    private val repository = NetworkStatsRepository(context, template)
+
+    @Test
+    fun querySummaryForDevice() {
+        val bytes = repository.querySummaryForDevice(START_TIME, END_TIME)
+
+        assertThat(bytes).isEqualTo(11)
+    }
+
+    private companion object {
+        const val START_TIME = 1L
+        const val END_TIME = 2L
+
+        val BUCKET = mock<NetworkStats.Bucket> {
+            on { rxBytes } doReturn 1
+            on { txBytes } doReturn 10
+        }
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/deviceinfo/simstatus/SimEidPreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/deviceinfo/simstatus/SimEidPreferenceControllerTest.kt
new file mode 100644
index 0000000..5d68f98
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/deviceinfo/simstatus/SimEidPreferenceControllerTest.kt
@@ -0,0 +1,77 @@
+/*
+ * 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.deviceinfo.simstatus
+
+import android.content.Context
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.dx.mockito.inline.extended.ExtendedMockito
+import com.android.settings.core.BasePreferenceController
+import com.android.settings.network.SubscriptionUtil
+import com.google.common.truth.Truth.assertThat
+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.whenever
+import org.mockito.quality.Strictness
+
+@RunWith(AndroidJUnit4::class)
+class SimEidPreferenceControllerTest {
+    private lateinit var mockSession: MockitoSession
+
+    private val context: Context = ApplicationProvider.getApplicationContext()
+
+    private val controller = SimEidPreferenceController(context, TEST_KEY)
+
+    @Before
+    fun setUp() {
+        mockSession = ExtendedMockito.mockitoSession()
+            .initMocks(this)
+            .mockStatic(SubscriptionUtil::class.java)
+            .strictness(Strictness.LENIENT)
+            .startMocking()
+    }
+
+    @After
+    fun tearDown() {
+        mockSession.finishMocking()
+    }
+
+    @Test
+    fun getAvailabilityStatus_isSimHardwareVisible() {
+        whenever(SubscriptionUtil.isSimHardwareVisible(context)).thenReturn(true)
+
+        val availabilityStatus = controller.availabilityStatus
+
+        assertThat(availabilityStatus).isEqualTo(BasePreferenceController.AVAILABLE)
+    }
+
+    @Test
+    fun getAvailabilityStatus_notSimHardwareVisible() {
+        whenever(SubscriptionUtil.isSimHardwareVisible(context)).thenReturn(false)
+
+        val availabilityStatus = controller.availabilityStatus
+
+        assertThat(availabilityStatus).isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE)
+    }
+
+    private companion object {
+        const val TEST_KEY = "test_key"
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/network/BluetoothWiFiResetPreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/network/BluetoothWiFiResetPreferenceControllerTest.kt
new file mode 100644
index 0000000..210a0c7
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/BluetoothWiFiResetPreferenceControllerTest.kt
@@ -0,0 +1,120 @@
+/*
+ * 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.bluetooth.BluetoothAdapter
+import android.bluetooth.BluetoothManager
+import android.content.Context
+import android.content.res.Resources
+import android.net.ConnectivityManager
+import android.net.NetworkPolicyManager
+import android.net.VpnManager
+import android.os.UserManager
+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 org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.never
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.stub
+import org.mockito.kotlin.verify
+
+@RunWith(AndroidJUnit4::class)
+class BluetoothWiFiResetPreferenceControllerTest {
+
+    private val mockUserManager = mock<UserManager>()
+    private val mockBluetoothAdapter = mock<BluetoothAdapter>()
+    private val mockBluetoothManager = mock<BluetoothManager> {
+        on { adapter } doReturn mockBluetoothAdapter
+    }
+    private val mockConnectivityManager = mock<ConnectivityManager>()
+    private val mockNetworkPolicyManager = mock<NetworkPolicyManager>()
+    private val mockVpnManager = mock<VpnManager>()
+    private val mockResources = mock<Resources>()
+
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        on { getSystemService(Context.USER_SERVICE) } doReturn mockUserManager
+        on { getSystemService(Context.BLUETOOTH_SERVICE) } doReturn mockBluetoothManager
+        on { getSystemService(Context.CONNECTIVITY_SERVICE) } doReturn mockConnectivityManager
+        on { getSystemService(Context.NETWORK_POLICY_SERVICE) } doReturn mockNetworkPolicyManager
+        on { getSystemService(Context.VPN_MANAGEMENT_SERVICE) } doReturn mockVpnManager
+        on { resources } doReturn mockResources
+    }
+
+    private val controller = BluetoothWiFiResetPreferenceController(context, TEST_KEY)
+
+    @Test
+    fun getAvailabilityStatus_isAdminUser_returnAvailable() {
+        mockUserManager.stub {
+            on { isAdminUser } doReturn true
+        }
+
+        val availabilityStatus = controller.getAvailabilityStatus()
+
+        assertThat(availabilityStatus).isEqualTo(AVAILABLE)
+    }
+
+    @Test
+    fun getAvailabilityStatus_notAdminUser_returnConditionallyUnavailable() {
+        mockUserManager.stub {
+            on { isAdminUser } doReturn false
+        }
+
+        val availabilityStatus = controller.getAvailabilityStatus()
+
+        assertThat(availabilityStatus).isEqualTo(CONDITIONALLY_UNAVAILABLE)
+    }
+
+    @Test
+    fun resetOperation_resetBluetooth() {
+        controller.resetOperation().run()
+
+        verify(mockBluetoothAdapter).clearBluetooth()
+    }
+
+    @Test
+    fun resetOperation_onDeviceWithSimVisible_notResetConnectivity() {
+        mockResources.stub {
+            on { getBoolean(R.bool.config_show_sim_info) } doReturn true
+        }
+
+        controller.resetOperation().run()
+
+        verify(mockConnectivityManager, never()).factoryReset()
+    }
+
+    @Test
+    fun resetOperation_onDeviceWithSimInvisible_resetVpn() {
+        mockResources.stub {
+            on { getBoolean(R.bool.config_show_sim_info) } doReturn false
+        }
+
+        controller.resetOperation().run()
+
+        verify(mockVpnManager).factoryReset()
+    }
+
+    private companion object {
+        const val TEST_KEY = "test_key"
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/network/MobileDataEnabledFlowTest.kt b/tests/spa_unit/src/com/android/settings/network/MobileDataEnabledFlowTest.kt
new file mode 100644
index 0000000..4862309
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/MobileDataEnabledFlowTest.kt
@@ -0,0 +1,91 @@
+/*
+ * 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()).hasSize(2)
+    }
+
+    private companion object {
+        const val SUB_ID = 123
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/network/MobileIconGroupExtTest.kt b/tests/spa_unit/src/com/android/settings/network/MobileIconGroupExtTest.kt
new file mode 100644
index 0000000..641051d
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/MobileIconGroupExtTest.kt
@@ -0,0 +1,45 @@
+/*
+ * 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.text.Spanned
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class MobileIconGroupExtTest {
+    @Test
+    fun maybeToHtml_withoutHtmlTag() {
+        val actual = CONNECTED_5G.maybeToHtml()
+
+        assertThat(actual).isSameInstanceAs(CONNECTED_5G)
+    }
+
+    @Test
+    fun maybeToHtml_withHtmlTag() {
+        val actual = CONNECTED_5GE.maybeToHtml()
+
+        assertThat(actual).isInstanceOf(Spanned::class.java)
+    }
+
+    private companion object {
+        private const val CONNECTED_5G = "Connected / 5G"
+        private const val CONNECTED_5GE = "Connected / <i>5G <small>E</small></i>"
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/network/MobileNetworkListFragmentTest.kt b/tests/spa_unit/src/com/android/settings/network/MobileNetworkListFragmentTest.kt
new file mode 100644
index 0000000..3ba4bac
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/MobileNetworkListFragmentTest.kt
@@ -0,0 +1,74 @@
+/*
+ * 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.content.res.Resources
+import android.os.UserManager
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.R
+import com.android.settingslib.spaprivileged.framework.common.userManager
+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.spy
+import org.mockito.kotlin.stub
+
+@RunWith(AndroidJUnit4::class)
+class MobileNetworkListFragmentTest {
+    private val mockUserManager = mock<UserManager>()
+
+    private val mockResources = mock<Resources>()
+
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        on { userManager } doReturn mockUserManager
+        on { resources } doReturn mockResources
+    }
+
+    @Test
+    fun isPageSearchEnabled_adminUser_shouldReturnTrue() {
+        mockUserManager.stub {
+            on { isAdminUser } doReturn true
+        }
+        mockResources.stub {
+            on { getBoolean(R.bool.config_show_sim_info) } doReturn true
+        }
+
+        val isEnabled =
+            MobileNetworkListFragment.SEARCH_INDEX_DATA_PROVIDER.isPageSearchEnabled(context)
+
+        assertThat(isEnabled).isTrue()
+    }
+
+    @Test
+    fun isPageSearchEnabled_nonAdminUser_shouldReturnFalse() {
+        mockUserManager.stub {
+            on { isAdminUser } doReturn false
+        }
+        mockResources.stub {
+            on { getBoolean(R.bool.config_show_sim_info) } doReturn true
+        }
+
+        val isEnabled =
+            MobileNetworkListFragment.SEARCH_INDEX_DATA_PROVIDER.isPageSearchEnabled(context)
+
+        assertThat(isEnabled).isFalse()
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/network/NetworkProviderCallsSmsControllerTest.kt b/tests/spa_unit/src/com/android/settings/network/NetworkProviderCallsSmsControllerTest.kt
new file mode 100644
index 0000000..110fd5e
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/NetworkProviderCallsSmsControllerTest.kt
@@ -0,0 +1,149 @@
+/*
+ * 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.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.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class NetworkProviderCallsSmsControllerTest {
+    private val context: Context = ApplicationProvider.getApplicationContext()
+
+    private var isInService: (Int) -> Boolean = { true }
+
+    private val controller = NetworkProviderCallsSmsController(
+        context = context,
+        preferenceKey = TEST_KEY,
+        getDisplayName = { subInfo -> subInfo.displayName },
+        isInService = { isInService(it) },
+    )
+
+    @Test
+    fun getSummary_noSim_returnNoSim() {
+        val summary = controller.getSummary(
+            activeSubscriptionInfoList = emptyList(),
+            defaultVoiceSubscriptionId = SubscriptionManager.INVALID_SUBSCRIPTION_ID,
+            defaultSmsSubscriptionId = SubscriptionManager.INVALID_SUBSCRIPTION_ID,
+        )
+
+        assertThat(summary).isEqualTo(context.getString(R.string.calls_sms_no_sim))
+    }
+
+    @Test
+    fun getSummary_invalidSubId_returnUnavailable() {
+        isInService = { false }
+
+        val summary = controller.getSummary(
+            activeSubscriptionInfoList = listOf(SUB_INFO_1),
+            defaultVoiceSubscriptionId = SubscriptionManager.INVALID_SUBSCRIPTION_ID,
+            defaultSmsSubscriptionId = SubscriptionManager.INVALID_SUBSCRIPTION_ID,
+        )
+
+        assertThat(summary).isEqualTo("Sub 1 (Temporarily unavailable)")
+    }
+
+    @Test
+    fun getSummary_oneIsInvalidSubIdTwoIsValidSubId_returnOneIsUnavailable() {
+        isInService = { it == SUB_INFO_2.subscriptionId }
+
+        val summary = controller.getSummary(
+            activeSubscriptionInfoList = listOf(SUB_INFO_1, SUB_INFO_2),
+            defaultVoiceSubscriptionId = SubscriptionManager.INVALID_SUBSCRIPTION_ID,
+            defaultSmsSubscriptionId = SubscriptionManager.INVALID_SUBSCRIPTION_ID,
+        )
+
+        assertThat(summary).isEqualTo("Sub 1 (unavailable), Sub 2")
+    }
+
+    @Test
+    fun getSummary_oneSubscription_returnDisplayName() {
+        val summary = controller.getSummary(
+            activeSubscriptionInfoList = listOf(SUB_INFO_1),
+            defaultVoiceSubscriptionId = SubscriptionManager.INVALID_SUBSCRIPTION_ID,
+            defaultSmsSubscriptionId = SubscriptionManager.INVALID_SUBSCRIPTION_ID,
+        )
+
+        assertThat(summary).isEqualTo(DISPLAY_NAME_1)
+    }
+
+    @Test
+    fun getSummary_allSubscriptionsHaveNoPreferredStatus_returnDisplayName() {
+        val summary = controller.getSummary(
+            activeSubscriptionInfoList = listOf(SUB_INFO_1, SUB_INFO_2),
+            defaultVoiceSubscriptionId = SubscriptionManager.INVALID_SUBSCRIPTION_ID,
+            defaultSmsSubscriptionId = SubscriptionManager.INVALID_SUBSCRIPTION_ID,
+        )
+
+        assertThat(summary).isEqualTo("Sub 1, Sub 2")
+    }
+
+    @Test
+    fun getSummary_oneSubscriptionsIsCallPreferredTwoIsSmsPreferred_returnStatus() {
+        val summary = controller.getSummary(
+            activeSubscriptionInfoList = listOf(SUB_INFO_1, SUB_INFO_2),
+            defaultVoiceSubscriptionId = SUB_INFO_1.subscriptionId,
+            defaultSmsSubscriptionId = SUB_INFO_2.subscriptionId,
+        )
+
+        assertThat(summary).isEqualTo("Sub 1 (preferred for calls), Sub 2 (preferred for SMS)")
+    }
+
+    @Test
+    fun getSummary_oneSubscriptionsIsSmsPreferredTwoIsCallPreferred_returnStatus() {
+        val summary = controller.getSummary(
+            activeSubscriptionInfoList = listOf(SUB_INFO_1, SUB_INFO_2),
+            defaultVoiceSubscriptionId = SUB_INFO_2.subscriptionId,
+            defaultSmsSubscriptionId = SUB_INFO_1.subscriptionId,
+        )
+
+        assertThat(summary).isEqualTo("Sub 1 (preferred for SMS), Sub 2 (preferred for calls)")
+    }
+
+    @Test
+    fun getSummary_oneSubscriptionsIsSmsPreferredAndIsCallPreferred_returnStatus() {
+        val summary = controller.getSummary(
+            activeSubscriptionInfoList = listOf(SUB_INFO_1, SUB_INFO_2),
+            defaultVoiceSubscriptionId = SUB_INFO_1.subscriptionId,
+            defaultSmsSubscriptionId = SUB_INFO_1.subscriptionId,
+        )
+
+        assertThat(summary).isEqualTo("Sub 1 (preferred), Sub 2")
+    }
+
+    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()
+    }
+}
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 d744181..20d67fc 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
@@ -17,7 +17,7 @@
 package com.android.settings.network.apn
 
 import android.content.Context
-import androidx.compose.runtime.MutableState
+import android.net.Uri
 import androidx.compose.runtime.mutableStateOf
 import androidx.compose.runtime.remember
 import androidx.compose.ui.test.assertIsDisplayed
@@ -41,6 +41,7 @@
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
+import org.mockito.kotlin.mock
 
 @RunWith(AndroidJUnit4::class)
 class ApnEditPageProviderTest {
@@ -51,38 +52,35 @@
     private val apnName = "apn_name"
     private val mmsc = "mmsc"
     private val mmsProxy = "mms_proxy"
-    private val mnc = "mnc"
     private val apnType = "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 bearer = context.resources.getString(R.string.bearer)
-    private val bearerOptions = context.resources.getStringArray(R.array.bearer_entries).toList()
+    private val networkType = context.resources.getString(R.string.network_type)
     private val passwordTitle = context.resources.getString(R.string.apn_password)
-    private val apnData = mutableStateOf(
-        ApnData(
-            name = apnName,
-            mmsc = mmsc,
-            mmsProxy = mmsProxy,
-            mnc = mnc,
-            apnType = apnType,
-            apnRoaming = apnProtocolOptions.indexOf(apnRoaming),
-            apnEnable = true
-        )
+    private val apnInit = ApnData(
+        name = apnName,
+        mmsc = mmsc,
+        mmsProxy = mmsProxy,
+        apnType = apnType,
+        apnRoaming = apnProtocolOptions.indexOf(apnRoaming),
+        apnEnable = true
     )
+    private val apnData = mutableStateOf(
+        apnInit
+    )
+    private val uri = mock<Uri> {}
 
     @Test
     fun apnEditPageProvider_name() {
-        Truth.assertThat(ApnEditPageProvider.name).isEqualTo("Apn")
+        Truth.assertThat(ApnEditPageProvider.name).isEqualTo("ApnEdit")
     }
 
     @Test
     fun title_displayed() {
         composeTestRule.setContent {
-            ApnPage(remember {
-                apnData
-            })
+            ApnPage(apnInit, remember { apnData }, uri)
         }
         composeTestRule.onNodeWithText(context.getString(R.string.apn_edit)).assertIsDisplayed()
     }
@@ -90,9 +88,7 @@
     @Test
     fun name_displayed() {
         composeTestRule.setContent {
-            ApnPage(remember {
-                apnData
-            })
+            ApnPage(apnInit, remember { apnData }, uri)
         }
         composeTestRule.onNodeWithText(apnName, true).assertIsDisplayed()
     }
@@ -100,9 +96,7 @@
     @Test
     fun mmsc_displayed() {
         composeTestRule.setContent {
-            ApnPage(remember {
-                apnData
-            })
+            ApnPage(apnInit, remember { apnData }, uri)
         }
         composeTestRule.onRoot().onChild().onChildAt(0)
             .performScrollToNode(hasText(mmsc, true))
@@ -112,9 +106,7 @@
     @Test
     fun mms_proxy_displayed() {
         composeTestRule.setContent {
-            ApnPage(remember {
-                apnData
-            })
+            ApnPage(apnInit, remember { apnData }, uri)
         }
         composeTestRule.onRoot().onChild().onChildAt(0)
             .performScrollToNode(hasText(mmsProxy, true))
@@ -122,23 +114,9 @@
     }
 
     @Test
-    fun mnc_displayed() {
-        composeTestRule.setContent {
-            ApnPage(remember {
-                apnData
-            })
-        }
-        composeTestRule.onRoot().onChild().onChildAt(0)
-            .performScrollToNode(hasText(mnc, true))
-        composeTestRule.onNodeWithText(mnc, true).assertIsDisplayed()
-    }
-
-    @Test
     fun apn_type_displayed() {
         composeTestRule.setContent {
-            ApnPage(remember {
-                apnData
-            })
+            ApnPage(apnInit, remember { apnData }, uri)
         }
         composeTestRule.onRoot().onChild().onChildAt(0)
             .performScrollToNode(hasText(apnType, true))
@@ -148,9 +126,7 @@
     @Test
     fun apn_roaming_displayed() {
         composeTestRule.setContent {
-            ApnPage(remember {
-                apnData
-            })
+            ApnPage(apnInit, remember { apnData }, uri)
         }
         composeTestRule.onRoot().onChild().onChildAt(0)
             .performScrollToNode(hasText(apnRoaming, true))
@@ -160,9 +136,7 @@
     @Test
     fun carrier_enabled_displayed() {
         composeTestRule.setContent {
-            ApnPage(remember {
-                apnData
-            })
+            ApnPage(apnInit, remember { apnData }, uri)
         }
         composeTestRule.onRoot().onChild().onChildAt(0)
             .performScrollToNode(hasText(apnEnable, true))
@@ -172,9 +146,7 @@
     @Test
     fun carrier_enabled_isChecked() {
         composeTestRule.setContent {
-            ApnPage(remember {
-                apnData
-            })
+            ApnPage(apnInit, remember { apnData }, uri)
         }
         composeTestRule.onRoot().onChild().onChildAt(0)
             .performScrollToNode(hasText(apnEnable, true))
@@ -184,9 +156,7 @@
     @Test
     fun carrier_enabled_checkChanged() {
         composeTestRule.setContent {
-            ApnPage(remember {
-                apnData
-            })
+            ApnPage(apnInit, remember { apnData }, uri)
         }
         composeTestRule.onRoot().onChild().onChildAt(0)
             .performScrollToNode(hasText(apnEnable, true))
@@ -195,63 +165,59 @@
     }
 
     @Test
-    fun bearer_displayed() {
+    fun network_type_displayed() {
         composeTestRule.setContent {
-            ApnPage(remember {
-                apnData
-            })
+            ApnPage(apnInit, remember { apnData }, uri)
         }
         composeTestRule.onRoot().onChild().onChildAt(0)
-            .performScrollToNode(hasText(bearer, true))
-        composeTestRule.onNodeWithText(bearer, true).assertIsDisplayed()
+            .performScrollToNode(hasText(networkType, true))
+        composeTestRule.onNodeWithText(networkType, true).assertIsDisplayed()
     }
 
     @Test
-    fun bearer_changed() {
-        var apnDataa: MutableState<ApnData> = apnData
+    fun network_type_changed() {
         composeTestRule.setContent {
-            apnDataa = remember {
-                apnData
-            }
-            ApnPage(apnDataa)
+            ApnPage(apnInit, remember { apnData }, uri)
         }
         composeTestRule.onRoot().onChild().onChildAt(0)
-            .performScrollToNode(hasText(bearer, true))
-        composeTestRule.onNodeWithText(bearer, true).performClick()
-        composeTestRule.onNodeWithText(bearerOptions[1], true).performClick()
-        composeTestRule.onNode(hasText(bearerOptions[0]) and isFocused(), true).assertDoesNotExist()
-        composeTestRule.onNode(hasText(bearerOptions[1]) and isFocused(), true).assertIsDisplayed()
+            .performScrollToNode(hasText(networkType, true))
+        composeTestRule.onNodeWithText(networkType, true).performClick()
+        composeTestRule.onNodeWithText(NETWORK_TYPE_LTE, true).performClick()
+        composeTestRule.onNode(hasText(NETWORK_TYPE_UNSPECIFIED) and isFocused(), true)
+            .assertDoesNotExist()
+        composeTestRule.onNode(hasText(NETWORK_TYPE_LTE) and isFocused(), true).assertIsDisplayed()
     }
 
     @Test
-    fun bearer_changed_back2Default() {
-        var apnDataa: MutableState<ApnData> = apnData
+    fun network_type_changed_back2Default() {
         composeTestRule.setContent {
-            apnDataa = remember {
-                apnData
-            }
-            ApnPage(apnDataa)
+            ApnPage(apnInit, remember { apnData }, uri)
         }
         composeTestRule.onRoot().onChild().onChildAt(0)
-            .performScrollToNode(hasText(bearer, true))
-        composeTestRule.onNodeWithText(bearer, true).performClick()
-        composeTestRule.onNodeWithText(bearerOptions[1], true).performClick()
-        composeTestRule.onNode(hasText(bearerOptions[0]) and isFocused(), true).assertDoesNotExist()
-        composeTestRule.onNode(hasText(bearerOptions[1]) and isFocused(), true).assertIsDisplayed()
-        composeTestRule.onAllNodesWithText(bearerOptions[1], true).onLast().performClick()
-        composeTestRule.onNode(hasText(bearerOptions[0]) and isFocused(), true).assertIsDisplayed()
-        composeTestRule.onNode(hasText(bearerOptions[1]) and isFocused(), true).assertDoesNotExist()
+            .performScrollToNode(hasText(networkType, true))
+        composeTestRule.onNodeWithText(networkType, true).performClick()
+        composeTestRule.onNodeWithText(NETWORK_TYPE_LTE, true).performClick()
+        composeTestRule.onNode(hasText(NETWORK_TYPE_UNSPECIFIED) and isFocused(), true)
+            .assertDoesNotExist()
+        composeTestRule.onNode(hasText(NETWORK_TYPE_LTE) and isFocused(), true).assertIsDisplayed()
+        composeTestRule.onAllNodesWithText(NETWORK_TYPE_LTE, true).onLast().performClick()
+        composeTestRule.onNode(hasText(NETWORK_TYPE_UNSPECIFIED) and isFocused(), true)
+            .assertIsDisplayed()
+        composeTestRule.onNode(hasText(NETWORK_TYPE_LTE) and isFocused(), true).assertDoesNotExist()
     }
 
     @Test
     fun password_displayed() {
         composeTestRule.setContent {
-            ApnPage(remember {
-                apnData
-            })
+            ApnPage(apnInit, remember { apnData }, uri)
         }
         composeTestRule.onRoot().onChild().onChildAt(0)
             .performScrollToNode(hasText(passwordTitle, true))
         composeTestRule.onNodeWithText(passwordTitle, true).assertIsDisplayed()
     }
+
+    private companion object {
+        const val NETWORK_TYPE_UNSPECIFIED = "Unspecified"
+        const val NETWORK_TYPE_LTE = "LTE"
+    }
 }
\ No newline at end of file
diff --git a/tests/spa_unit/src/com/android/settings/network/apn/ApnRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/network/apn/ApnRepositoryTest.kt
new file mode 100644
index 0000000..44ec926
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/apn/ApnRepositoryTest.kt
@@ -0,0 +1,71 @@
+/*
+ * 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.apn
+
+import android.content.ContentResolver
+import android.content.Context
+import android.database.MatrixCursor
+import android.net.Uri
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mockito
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.whenever
+
+@RunWith(AndroidJUnit4::class)
+class ApnRepositoryTest {
+
+    private val context: Context = ApplicationProvider.getApplicationContext()
+    private val mContentResolver = mock<ContentResolver> {}
+    private val uri = mock<Uri> {}
+
+    @Test
+    fun getApnDataFromUri() {
+        // mock out resources and the feature provider
+        val cursor = MatrixCursor(sProjection)
+        cursor.addRow(
+            arrayOf<Any?>(
+                0,
+                "name",
+                "apn",
+                "proxy",
+                "port",
+                "userName",
+                "server",
+                "passWord",
+                "mmsc",
+                "mmsProxy",
+                "mmsPort",
+                0,
+                "apnType",
+                "apnProtocol",
+                0,
+                0,
+                "apnRoaming",
+                0,
+                1,
+                0
+            )
+        )
+        val context = Mockito.spy(context)
+        whenever(context.contentResolver).thenReturn(mContentResolver)
+        whenever(mContentResolver.query(uri, sProjection, null, null, null)).thenReturn(cursor)
+        assert(getApnDataFromUri(uri, context).name == "name")
+    }
+}
\ No newline at end of file
diff --git a/tests/spa_unit/src/com/android/settings/network/apn/ApnStatusTest.kt b/tests/spa_unit/src/com/android/settings/network/apn/ApnStatusTest.kt
new file mode 100644
index 0000000..539783c
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/apn/ApnStatusTest.kt
@@ -0,0 +1,54 @@
+/*
+ * 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.apn
+
+import android.os.PersistableBundle
+import android.telephony.CarrierConfigManager
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+
+@RunWith(AndroidJUnit4::class)
+class ApnStatusTest {
+    private val apnData = mock<ApnData> {
+        on {
+            it.subId
+        } doReturn 1
+    }
+    private val configManager = mock<CarrierConfigManager> {
+        val p = PersistableBundle()
+        p.putBoolean(CarrierConfigManager.KEY_ALLOW_ADDING_APNS_BOOL, true)
+        on {
+            getConfigForSubId(
+                apnData.subId,
+                CarrierConfigManager.KEY_READ_ONLY_APN_TYPES_STRING_ARRAY,
+                CarrierConfigManager.KEY_READ_ONLY_APN_FIELDS_STRING_ARRAY,
+                CarrierConfigManager.KEY_APN_SETTINGS_DEFAULT_APN_TYPES_STRING_ARRAY,
+                CarrierConfigManager.Apn.KEY_SETTINGS_DEFAULT_PROTOCOL_STRING,
+                CarrierConfigManager.Apn.KEY_SETTINGS_DEFAULT_ROAMING_PROTOCOL_STRING,
+                CarrierConfigManager.KEY_ALLOW_ADDING_APNS_BOOL
+            )
+        } doReturn p
+    }
+
+    @Test
+    fun getCarrierCustomizedConfig_test() {
+        assert(getCarrierCustomizedConfig(apnData, configManager).isAddApnAllowed)
+    }
+}
\ No newline at end of file
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/CallStateFlowTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/CallStateFlowTest.kt
new file mode 100644
index 0000000..d353d44
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/CallStateFlowTest.kt
@@ -0,0 +1,80 @@
+/*
+ * 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.telephony
+
+import android.content.Context
+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.android.settingslib.spa.testutils.toListWithTimeout
+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
+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
+
+@RunWith(AndroidJUnit4::class)
+class CallStateFlowTest {
+    private var callStateListener: TelephonyCallback.CallStateListener? = null
+
+    private val mockTelephonyManager = mock<TelephonyManager> {
+        on { createForSubscriptionId(SUB_ID) } doReturn mock
+        on { registerTelephonyCallback(any(), any()) } doAnswer {
+            callStateListener = it.arguments[1] as TelephonyCallback.CallStateListener
+            callStateListener?.onCallStateChanged(TelephonyManager.CALL_STATE_IDLE)
+        }
+    }
+
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        on { getSystemService(TelephonyManager::class.java) } doReturn mockTelephonyManager
+    }
+
+    @Test
+    fun callStateFlow_initial_sendInitialState() = runBlocking {
+        val flow = context.callStateFlow(SUB_ID)
+
+        val state = flow.firstWithTimeoutOrNull()
+
+        assertThat(state).isEqualTo(TelephonyManager.CALL_STATE_IDLE)
+    }
+
+    @Test
+    fun callStateFlow_changed_sendChangedState() = runBlocking {
+        val listDeferred = async {
+            context.callStateFlow(SUB_ID).toListWithTimeout()
+        }
+        delay(100)
+
+        callStateListener?.onCallStateChanged(TelephonyManager.CALL_STATE_RINGING)
+
+        assertThat(listDeferred.await())
+            .containsExactly(TelephonyManager.CALL_STATE_IDLE, TelephonyManager.CALL_STATE_RINGING)
+            .inOrder()
+    }
+
+    private companion object {
+        const val SUB_ID = 1
+    }
+}
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 a6d1531..069145d 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
@@ -25,7 +25,7 @@
 import androidx.lifecycle.Lifecycle
 import androidx.lifecycle.testing.TestLifecycleOwner
 import androidx.preference.Preference
-import androidx.preference.PreferenceScreen
+import androidx.preference.PreferenceManager
 import androidx.test.core.app.ApplicationProvider
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import com.android.dx.mockito.inline.extended.ExtendedMockito
@@ -33,45 +33,46 @@
 import com.android.settings.core.BasePreferenceController.AVAILABLE_UNSEARCHABLE
 import com.android.settings.datausage.DataUsageUtils
 import com.android.settings.datausage.lib.DataUsageLib
-import com.android.settingslib.net.DataUsageController
-import com.android.settingslib.net.DataUsageController.DataUsageInfo
+import com.android.settings.datausage.lib.NetworkCycleDataRepository
+import com.android.settings.datausage.lib.NetworkUsageData
 import com.android.settingslib.spa.testutils.waitUntil
 import com.google.common.truth.Truth.assertThat
-import kotlinx.coroutines.test.runTest
+import kotlinx.coroutines.runBlocking
 import org.junit.After
 import org.junit.Before
 import org.junit.Test
 import org.junit.runner.RunWith
-import org.mockito.ArgumentCaptor
-import org.mockito.Mock
-import org.mockito.Mockito.any
-import org.mockito.Mockito.doNothing
-import org.mockito.Mockito.verify
 import org.mockito.MockitoSession
-import org.mockito.Spy
+import org.mockito.kotlin.any
+import org.mockito.kotlin.argumentCaptor
+import org.mockito.kotlin.doNothing
+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
+import org.mockito.kotlin.whenever
 import org.mockito.quality.Strictness
-import org.mockito.Mockito.`when` as whenever
 
 @RunWith(AndroidJUnit4::class)
 class DataUsagePreferenceControllerTest {
 
     private lateinit var mockSession: MockitoSession
 
-    @Spy
-    private val context: Context = ApplicationProvider.getApplicationContext()
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        doNothing().whenever(mock).startActivity(any())
+    }
 
-    private lateinit var controller: DataUsagePreferenceController
+    private val preference = Preference(context).apply { key = TEST_KEY }
+    private val preferenceScreen = PreferenceManager(context).createPreferenceScreen(context)
+    private val networkTemplate = mock<NetworkTemplate>()
+    private val repository = mock<NetworkCycleDataRepository> {
+        on { queryUsage(any()) } doReturn NetworkUsageData(START_TIME, END_TIME, 0L)
+    }
 
-    private val preference = Preference(context)
-
-    @Mock
-    private lateinit var networkTemplate: NetworkTemplate
-
-    @Mock
-    private lateinit var dataUsageController: DataUsageController
-
-    @Mock
-    private lateinit var preferenceScreen: PreferenceScreen
+    private val controller = spy(DataUsagePreferenceController(context, TEST_KEY)) {
+        doReturn(repository).whenever(mock).createNetworkCycleDataRepository()
+    }
 
     @Before
     fun setUp() {
@@ -85,17 +86,15 @@
 
         whenever(SubscriptionManager.isValidSubscriptionId(SUB_ID)).thenReturn(true)
         ExtendedMockito.doReturn(true).`when` { DataUsageUtils.hasMobileData(context) }
-        ExtendedMockito.doReturn(networkTemplate)
-            .`when` { DataUsageLib.getMobileTemplate(context, SUB_ID) }
-        preference.key = TEST_KEY
-        whenever(preferenceScreen.findPreference<Preference>(TEST_KEY)).thenReturn(preference)
+        ExtendedMockito.doReturn(networkTemplate).`when` {
+            DataUsageLib.getMobileTemplate(context, SUB_ID)
+        }
 
-        controller =
-            DataUsagePreferenceController(context, TEST_KEY).apply {
-                init(SUB_ID)
-                displayPreference(preferenceScreen)
-                dataUsageControllerFactory = { dataUsageController }
-            }
+        preferenceScreen.addPreference(preference)
+        controller.apply {
+            init(SUB_ID)
+            displayPreference(preferenceScreen)
+        }
     }
 
     @After
@@ -116,26 +115,25 @@
     }
 
     @Test
-    fun handlePreferenceTreeClick_startActivity() = runTest {
-        val usageInfo = DataUsageInfo().apply {
-            usageLevel = DataUnit.MEBIBYTES.toBytes(1)
+    fun handlePreferenceTreeClick_startActivity() = runBlocking {
+        val usageData = NetworkUsageData(START_TIME, END_TIME, 1L)
+        repository.stub {
+            on { loadFirstCycle() } doReturn usageData
         }
-        whenever(dataUsageController.getDataUsageInfo(networkTemplate)).thenReturn(usageInfo)
-        doNothing().`when`(context).startActivity(any())
         controller.onViewCreated(TestLifecycleOwner(initialState = Lifecycle.State.STARTED))
         waitUntil { preference.summary != null }
 
         controller.handlePreferenceTreeClick(preference)
 
-        val captor = ArgumentCaptor.forClass(Intent::class.java)
-        verify(context).startActivity(captor.capture())
-        val intent = captor.value
+        val intent = argumentCaptor<Intent> {
+            verify(context).startActivity(capture())
+        }.firstValue
         assertThat(intent.action).isEqualTo(Settings.ACTION_MOBILE_DATA_USAGE)
         assertThat(intent.getIntExtra(Settings.EXTRA_SUB_ID, 0)).isEqualTo(SUB_ID)
     }
 
     @Test
-    fun updateState_invalidSubId_disabled() = runTest {
+    fun updateState_invalidSubId_disabled() = runBlocking {
         controller.init(SubscriptionManager.INVALID_SUBSCRIPTION_ID)
 
         controller.onViewCreated(TestLifecycleOwner(initialState = Lifecycle.State.STARTED))
@@ -144,9 +142,11 @@
     }
 
     @Test
-    fun updateState_noUsageData_shouldDisablePreference() = runTest {
-        val usageInfo = DataUsageInfo()
-        whenever(dataUsageController.getDataUsageInfo(networkTemplate)).thenReturn(usageInfo)
+    fun updateState_noUsageData_shouldDisablePreference() = runBlocking {
+        val usageData = NetworkUsageData(START_TIME, END_TIME, 0L)
+        repository.stub {
+            on { loadFirstCycle() } doReturn usageData
+        }
 
         controller.onViewCreated(TestLifecycleOwner(initialState = Lifecycle.State.STARTED))
 
@@ -154,11 +154,11 @@
     }
 
     @Test
-    fun updateState_shouldUseIecUnit() = runTest {
-        val usageInfo = DataUsageInfo().apply {
-            usageLevel = DataUnit.MEBIBYTES.toBytes(1)
+    fun updateState_shouldUseIecUnit() = runBlocking {
+        val usageData = NetworkUsageData(START_TIME, END_TIME, DataUnit.MEBIBYTES.toBytes(1))
+        repository.stub {
+            on { loadFirstCycle() } doReturn usageData
         }
-        whenever(dataUsageController.getDataUsageInfo(networkTemplate)).thenReturn(usageInfo)
 
         controller.onViewCreated(TestLifecycleOwner(initialState = Lifecycle.State.STARTED))
 
@@ -168,5 +168,7 @@
     private companion object {
         const val TEST_KEY = "test_key"
         const val SUB_ID = 2
+        const val START_TIME = 10L
+        const val END_TIME = 30L
     }
 }
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/DeleteSimProfilePreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/DeleteSimProfilePreferenceControllerTest.kt
new file mode 100644
index 0000000..7285ff8
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/DeleteSimProfilePreferenceControllerTest.kt
@@ -0,0 +1,122 @@
+/*
+ * 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.telephony
+
+import android.content.Context
+import android.telephony.SubscriptionInfo
+import androidx.preference.Preference
+import androidx.preference.PreferenceManager
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.network.SubscriptionUtil
+import com.android.settings.security.ConfirmSimDeletionPreferenceController
+import com.android.settingslib.spaprivileged.settingsprovider.settingsGlobalBoolean
+import com.google.common.truth.Truth.assertThat
+import org.junit.After
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.any
+import org.mockito.kotlin.doNothing
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.times
+import org.mockito.kotlin.verify
+import org.mockito.kotlin.whenever
+
+@RunWith(AndroidJUnit4::class)
+class DeleteSimProfilePreferenceControllerTest {
+    private val subscriptionInfo = mock<SubscriptionInfo> {
+        on { subscriptionId } doReturn SUB_ID
+        on { isEmbedded } doReturn true
+    }
+
+    private var context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        doNothing().whenever(mock).startActivity(any())
+    }
+
+    private val preference = Preference(context).apply { key = PREF_KEY }
+    private val preferenceScreen = PreferenceManager(context).createPreferenceScreen(context)
+        .apply { addPreference(preference) }
+    private var controller = DeleteSimProfilePreferenceController(context, PREF_KEY)
+
+    @Before
+    fun setUp() {
+        SubscriptionUtil.setAvailableSubscriptionsForTesting(listOf(subscriptionInfo))
+    }
+
+    @After
+    fun tearDown() {
+        SubscriptionUtil.setAvailableSubscriptionsForTesting(null)
+    }
+
+    @Test
+    fun getAvailabilityStatus_noSubs_notAvailable() {
+        SubscriptionUtil.setAvailableSubscriptionsForTesting(emptyList())
+
+        controller.init(SUB_ID)
+
+        assertThat(controller.isAvailable()).isFalse()
+    }
+
+    @Test
+    fun getAvailabilityStatus_physicalSim_notAvailable() {
+        whenever(subscriptionInfo.isEmbedded).thenReturn(false)
+
+        controller.init(SUB_ID)
+
+        assertThat(controller.isAvailable()).isFalse()
+    }
+
+    @Test
+    fun getAvailabilityStatus_unknownSim_notAvailable() {
+        whenever(subscriptionInfo.subscriptionId).thenReturn(OTHER_ID)
+
+        controller.init(SUB_ID)
+
+        assertThat(controller.isAvailable()).isFalse()
+    }
+
+    @Test
+    fun getAvailabilityStatus_knownEsim_isAvailable() {
+        controller.init(SUB_ID)
+
+        assertThat(controller.isAvailable()).isTrue()
+    }
+
+    @Test
+    fun onPreferenceClick_startsIntent() {
+        controller.init(SUB_ID)
+        controller.displayPreference(preferenceScreen)
+        // turn off confirmation before click
+        var confirmDeletion by context.settingsGlobalBoolean(
+            name = ConfirmSimDeletionPreferenceController.KEY_CONFIRM_SIM_DELETION,
+        )
+        confirmDeletion = false
+
+        controller.handlePreferenceTreeClick(preference)
+
+        verify(context, times(1)).startActivity(any())
+    }
+
+    private companion object {
+        const val PREF_KEY = "delete_profile_key"
+        const val SUB_ID = 1234
+        const val OTHER_ID = 5678
+    }
+}
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
new file mode 100644
index 0000000..33a8575
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/MmsMessagePreferenceControllerTest.kt
@@ -0,0 +1,142 @@
+/*
+ * 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.telephony
+
+import android.content.Context
+import android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID
+import android.telephony.TelephonyManager
+import android.telephony.data.ApnSetting
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.core.BasePreferenceController.AVAILABLE
+import com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE
+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.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 MmsMessagePreferenceControllerTest {
+    private val mockTelephonyManager: TelephonyManager = mock<TelephonyManager> {
+        on { createForSubscriptionId(any()) } doReturn mock
+    }
+
+    private var context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        on { getSystemService(TelephonyManager::class.java) } doReturn mockTelephonyManager
+    }
+
+    private val controller = MmsMessagePreferenceController(context, KEY).apply {
+        init(SUB_ID)
+    }
+
+    @Test
+    fun getAvailabilityStatus_invalidSubscription_returnUnavailable() {
+        controller.init(INVALID_SUBSCRIPTION_ID)
+
+        val availabilityStatus = controller.getAvailabilityStatus(INVALID_SUBSCRIPTION_ID)
+
+        assertThat(availabilityStatus).isEqualTo(CONDITIONALLY_UNAVAILABLE)
+    }
+
+    @Test
+    fun getAvailabilityStatus_mobileDataOn_returnUnavailable() {
+        mockTelephonyManager.stub {
+            on { isDataEnabled } doReturn true
+        }
+
+        val availabilityStatus = controller.getAvailabilityStatus(SUB_ID)
+
+        assertThat(availabilityStatus).isEqualTo(CONDITIONALLY_UNAVAILABLE)
+    }
+
+    @Test
+    fun getAvailabilityStatus_meteredOff_returnUnavailable() {
+        mockTelephonyManager.stub {
+            on { isApnMetered(ApnSetting.TYPE_MMS) } doReturn false
+        }
+
+        val availabilityStatus = controller.getAvailabilityStatus(SUB_ID)
+
+        assertThat(availabilityStatus).isEqualTo(CONDITIONALLY_UNAVAILABLE)
+    }
+
+    @Test
+    fun getAvailabilityStatus_mobileDataOffWithValidSubId_returnAvailable() {
+        mockTelephonyManager.stub {
+            on { isDataEnabled } doReturn false
+            on { isApnMetered(ApnSetting.TYPE_MMS) } doReturn true
+        }
+
+        val availabilityStatus = controller.getAvailabilityStatus(SUB_ID)
+
+        assertThat(availabilityStatus).isEqualTo(AVAILABLE)
+    }
+
+    @Test
+    fun isChecked_whenMmsNotAlwaysAllowed_returnFalse() {
+        mockTelephonyManager.stub {
+            on {
+                isMobileDataPolicyEnabled(TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED)
+            } doReturn false
+        }
+
+        val isChecked = controller.isChecked()
+
+        assertThat(isChecked).isFalse()
+    }
+
+    @Test
+    fun isChecked_whenMmsAlwaysAllowed_returnTrue() {
+        mockTelephonyManager.stub {
+            on {
+                isMobileDataPolicyEnabled(TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED)
+            } doReturn true
+        }
+
+        val isChecked = controller.isChecked()
+
+        assertThat(isChecked).isTrue()
+    }
+
+    @Test
+    fun setChecked_setTrue_setDataIntoSubscriptionManager() {
+        controller.setChecked(true)
+
+        verify(mockTelephonyManager).setMobileDataPolicyEnabled(
+            TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED, true
+        )
+    }
+
+    @Test
+    fun setChecked_setFalse_setDataIntoSubscriptionManager() {
+        controller.setChecked(false)
+
+        verify(mockTelephonyManager).setMobileDataPolicyEnabled(
+            TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED, false
+        )
+    }
+
+    private companion object {
+        const val KEY = "mms_message"
+        const val SUB_ID = 2
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/spa/SpaActivityTest.kt b/tests/spa_unit/src/com/android/settings/spa/SpaActivityTest.kt
index 1b2a7b1..ec81c80 100644
--- a/tests/spa_unit/src/com/android/settings/spa/SpaActivityTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/SpaActivityTest.kt
@@ -18,13 +18,10 @@
 
 import android.content.Context
 import android.content.Intent
-import android.net.Uri
-import android.os.UserHandle
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import com.android.dx.mockito.inline.extended.ExtendedMockito
 import com.android.settings.spa.SpaActivity.Companion.isSuwAndPageBlocked
 import com.android.settings.spa.SpaActivity.Companion.startSpaActivity
-import com.android.settings.spa.SpaActivity.Companion.startSpaActivityForApp
 import com.android.settings.spa.app.AllAppListPageProvider
 import com.android.settings.spa.app.appinfo.AppInfoSettingsProvider
 import com.android.settingslib.spa.framework.util.KEY_DESTINATION
@@ -34,19 +31,18 @@
 import org.junit.Before
 import org.junit.Test
 import org.junit.runner.RunWith
-import org.mockito.ArgumentCaptor
-import org.mockito.Mock
-import org.mockito.Mockito.verify
 import org.mockito.MockitoSession
+import org.mockito.kotlin.argumentCaptor
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.verify
+import org.mockito.kotlin.whenever
 import org.mockito.quality.Strictness
-import org.mockito.Mockito.`when` as whenever
 
 @RunWith(AndroidJUnit4::class)
 class SpaActivityTest {
     private lateinit var mockSession: MockitoSession
 
-    @Mock
-    private lateinit var context: Context
+    private val context = mock<Context>()
 
     @Before
     fun setUp() {
@@ -71,7 +67,7 @@
     }
 
     @Test
-    fun isSuwAndPageBlocked_blocklistedPageInSuw_blocked() {
+    fun isSuwAndPageBlocked_suwBlockedPageInSuw_blocked() {
         whenever(WizardManagerHelper.isDeviceProvisioned(context)).thenReturn(false)
 
         val isBlocked = context.isSuwAndPageBlocked(AppInfoSettingsProvider.name)
@@ -80,7 +76,7 @@
     }
 
     @Test
-    fun isSuwAndPageBlocked_blocklistedPageNotInSuw_notBlocked() {
+    fun isSuwAndPageBlocked_SuwBlockedPageNotInSuw_notBlocked() {
         whenever(WizardManagerHelper.isDeviceProvisioned(context)).thenReturn(true)
 
         val isBlocked = context.isSuwAndPageBlocked(AppInfoSettingsProvider.name)
@@ -92,31 +88,14 @@
     fun startSpaActivity() {
         context.startSpaActivity(DESTINATION)
 
-        val intentCaptor = ArgumentCaptor.forClass(Intent::class.java)
-        verify(context).startActivity(intentCaptor.capture())
-        val intent = intentCaptor.value
+        val intent = argumentCaptor<Intent> {
+            verify(context).startActivity(capture())
+        }.firstValue
         assertThat(intent.component?.className).isEqualTo(SpaActivity::class.qualifiedName)
         assertThat(intent.getStringExtra(KEY_DESTINATION)).isEqualTo(DESTINATION)
     }
 
-    @Test
-    fun startSpaActivityForApp() {
-        val intent = Intent().apply {
-            data = Uri.parse("package:$PACKAGE_NAME")
-        }
-
-        context.startSpaActivityForApp(DESTINATION, intent)
-
-        val intentCaptor = ArgumentCaptor.forClass(Intent::class.java)
-        verify(context).startActivity(intentCaptor.capture())
-        val capturedIntent = intentCaptor.value
-        assertThat(capturedIntent.component?.className).isEqualTo(SpaActivity::class.qualifiedName)
-        assertThat(capturedIntent.getStringExtra(KEY_DESTINATION))
-            .isEqualTo("Destination/package.name/${UserHandle.myUserId()}")
-    }
-
     private companion object {
         const val DESTINATION = "Destination"
-        const val PACKAGE_NAME = "package.name"
     }
 }
diff --git a/tests/spa_unit/src/com/android/settings/spa/SpaAppBridgeActivityTest.kt b/tests/spa_unit/src/com/android/settings/spa/SpaAppBridgeActivityTest.kt
new file mode 100644
index 0000000..be2b5e0
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/spa/SpaAppBridgeActivityTest.kt
@@ -0,0 +1,54 @@
+/*
+ * 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.spa
+
+import android.content.Intent
+import android.net.Uri
+import android.os.UserHandle
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.spa.SpaAppBridgeActivity.Companion.getDestinationForApp
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class SpaAppBridgeActivityTest {
+    @Test
+    fun getDestinationForApp_hasPackageName() {
+        val intent = Intent().apply {
+            data = Uri.parse("package:${PACKAGE_NAME}")
+        }
+
+        val destination = getDestinationForApp(DESTINATION, intent)
+
+        assertThat(destination).isEqualTo("$DESTINATION/$PACKAGE_NAME/${UserHandle.myUserId()}")
+    }
+
+    @Test
+    fun getDestinationForApp_noPackageName() {
+        val intent = Intent()
+
+        val destination = getDestinationForApp(DESTINATION, intent)
+
+        assertThat(destination).isNull()
+    }
+
+    private companion object {
+        const val DESTINATION = "Destination"
+        const val PACKAGE_NAME = "package.name"
+    }
+}
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..48fa823
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/spa/SpaBridgeActivityTest.kt
@@ -0,0 +1,63 @@
+/*
+ * 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.spa
+
+import android.app.Activity
+import android.content.ComponentName
+import android.content.pm.ActivityInfo
+import android.content.pm.PackageManager
+import android.content.pm.PackageManager.ComponentInfoFlags
+import androidx.core.os.bundleOf
+import androidx.test.ext.junit.runners.AndroidJUnit4
+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.doReturn
+import org.mockito.kotlin.eq
+import org.mockito.kotlin.mock
+
+@RunWith(AndroidJUnit4::class)
+class SpaBridgeActivityTest {
+    private val mockPackageManager = mock<PackageManager> {
+        on { getActivityInfo(eq(COMPONENT_NAME), any<ComponentInfoFlags>()) } doReturn
+            ActivityInfo().apply {
+                metaData = bundleOf(META_DATA_KEY_DESTINATION to DESTINATION)
+            }
+    }
+
+    private val activity = mock<Activity> {
+        on { componentName } doReturn COMPONENT_NAME
+        on { packageManager } doReturn mockPackageManager
+    }
+
+    @Test
+    fun getDestination() {
+        val destination = activity.getDestination()
+
+        assertThat(destination).isEqualTo(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"
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/AllAppListTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/AllAppListTest.kt
index 97a5a81..1a05479 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/AllAppListTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/AllAppListTest.kt
@@ -18,8 +18,9 @@
 
 import android.content.Context
 import android.content.pm.ApplicationInfo
+import android.content.pm.PackageManager
+import android.graphics.drawable.Drawable
 import androidx.compose.runtime.SideEffect
-import androidx.compose.runtime.State
 import androidx.compose.ui.test.assertIsDisplayed
 import androidx.compose.ui.test.junit4.createComposeRule
 import androidx.compose.ui.test.onNodeWithText
@@ -38,16 +39,28 @@
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
+import org.mockito.kotlin.any
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.stub
+
 
 @RunWith(AndroidJUnit4::class)
 class AllAppListTest {
     @get:Rule
     val composeTestRule = createComposeRule()
 
-    private val context: Context = ApplicationProvider.getApplicationContext()
-
     private val fakeNavControllerWrapper = FakeNavControllerWrapper()
 
+    private val packageManager = mock<PackageManager> {
+        on { getPackagesForUid(USER_ID) } doReturn arrayOf(PACKAGE_NAME)
+    }
+
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        on { packageManager } doReturn packageManager
+    }
+
     @Test
     fun allAppListPageProvider_name() {
         assertThat(AllAppListPageProvider.name).isEqualTo("AllAppList")
@@ -132,12 +145,12 @@
     fun allAppListModel_getSummary() {
         val listModel = AllAppListModel(context) { stateOf(SUMMARY) }
 
-        lateinit var summaryState: State<String>
+        lateinit var summary: () -> String
         composeTestRule.setContent {
-            summaryState = listModel.getSummary(option = 0, record = AppRecordWithSize(app = APP))
+            summary = listModel.getSummary(option = 0, record = AppRecordWithSize(app = APP))
         }
 
-        assertThat(summaryState.value).isEqualTo(SUMMARY)
+        assertThat(summary()).isEqualTo(SUMMARY)
     }
 
     @Test
@@ -149,13 +162,13 @@
             enabled = false
         }
 
-        lateinit var summaryState: State<String>
+        lateinit var summary: () -> String
         composeTestRule.setContent {
-            summaryState =
+            summary =
                 listModel.getSummary(option = 0, record = AppRecordWithSize(app = disabledApp))
         }
 
-        assertThat(summaryState.value).isEqualTo("$SUMMARY${System.lineSeparator()}Disabled")
+        assertThat(summary()).isEqualTo("$SUMMARY${System.lineSeparator()}Disabled")
     }
 
     @Test
@@ -165,16 +178,60 @@
             packageName = PACKAGE_NAME
         }
 
-        lateinit var summaryState: State<String>
+        lateinit var summary: () -> String
         composeTestRule.setContent {
-            summaryState =
+            summary =
                 listModel.getSummary(option = 0, record = AppRecordWithSize(app = notInstalledApp))
         }
 
-        assertThat(summaryState.value)
+        assertThat(summary())
             .isEqualTo("$SUMMARY${System.lineSeparator()}Not installed for this user")
     }
 
+    @Test
+    fun allAppListModel_archivedApp() {
+        val app = mock<ApplicationInfo> {
+            on { loadUnbadgedIcon(any()) } doReturn UNBADGED_ICON
+            on { loadLabel(any()) } doReturn LABEL
+        }
+        app.isArchived = true
+        packageManager.stub {
+            on {
+                getApplicationInfoAsUser(PACKAGE_NAME, 0, USER_ID)
+            } doReturn app
+        }
+        composeTestRule.setContent {
+            fakeNavControllerWrapper.Wrapper {
+                with(AllAppListModel(context)) {
+                    AppListItemModel(
+                        record = AppRecordWithSize(app = app),
+                        label = LABEL,
+                        summary = { SUMMARY },
+                    ).AppItem()
+                }
+            }
+        }
+
+        composeTestRule.onNodeWithText(LABEL).assertIsDisplayed()
+    }
+
+    @Test
+    fun allAppListModel_getSummaryWhenArchived() {
+        val listModel = AllAppListModel(context) { stateOf(SUMMARY) }
+        val archivedApp = ApplicationInfo().apply {
+            packageName = PACKAGE_NAME
+            isArchived = true
+        }
+
+        lateinit var summary: () -> String
+        composeTestRule.setContent {
+            summary =
+                listModel.getSummary(option = 0, record = AppRecordWithSize(app = archivedApp))
+        }
+
+        assertThat(summary()).isEqualTo(SUMMARY)
+    }
+
     private fun getAppListInput(): AppListInput<AppRecordWithSize> {
         lateinit var input: AppListInput<AppRecordWithSize>
         composeTestRule.setContent {
@@ -194,7 +251,7 @@
                     AppListItemModel(
                         record = AppRecordWithSize(app = APP),
                         label = LABEL,
-                        summary = stateOf(SUMMARY),
+                        summary = { SUMMARY },
                     ).AppItem()
                 }
             }
@@ -206,6 +263,7 @@
         const val PACKAGE_NAME = "package.name"
         const val LABEL = "Label"
         const val SUMMARY = "Summary"
+        val UNBADGED_ICON = mock<Drawable>()
         val APP = ApplicationInfo().apply {
             packageName = PACKAGE_NAME
             flags = ApplicationInfo.FLAG_INSTALLED
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/WifiControlAppListModelTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/WifiControlAppListModelTest.kt
index c5c48f5..74aa861 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/WifiControlAppListModelTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/WifiControlAppListModelTest.kt
@@ -18,11 +18,8 @@
 
 import android.Manifest
 import android.app.AppOpsManager
-import android.app.AppOpsManager.MODE_ALLOWED
-import android.app.AppOpsManager.MODE_DEFAULT
 import android.content.Context
 import android.content.pm.ApplicationInfo
-import androidx.compose.runtime.State
 import androidx.compose.ui.test.junit4.createComposeRule
 import androidx.lifecycle.MutableLiveData
 import androidx.test.core.app.ApplicationProvider
@@ -40,9 +37,9 @@
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.mockito.Mock
-import org.mockito.Mockito.`when` as whenever
 import org.mockito.junit.MockitoJUnit
 import org.mockito.junit.MockitoRule
+import org.mockito.Mockito.`when` as whenever
 
 @ExperimentalCoroutinesApi
 @RunWith(AndroidJUnit4::class)
@@ -248,9 +245,9 @@
     }
 
     private fun getIsAllowed(record: AppOpPermissionRecord): Boolean? {
-        lateinit var isAllowedState: State<Boolean?>
+        lateinit var isAllowedState: () -> Boolean?
         composeTestRule.setContent { isAllowedState = listModel.isAllowed(record) }
-        return isAllowedState.value
+        return isAllowedState()
     }
 
     private companion object {
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/appcompat/UserAspectRatioAppsPageProviderTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/appcompat/UserAspectRatioAppsPageProviderTest.kt
index f550326..dfacca8 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/appcompat/UserAspectRatioAppsPageProviderTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/appcompat/UserAspectRatioAppsPageProviderTest.kt
@@ -21,7 +21,6 @@
 import android.content.pm.PackageManager.USER_MIN_ASPECT_RATIO_SPLIT_SCREEN
 import android.content.pm.PackageManager.USER_MIN_ASPECT_RATIO_UNSET
 import android.os.Build
-import androidx.compose.runtime.State
 import androidx.compose.ui.test.assertIsDisplayed
 import androidx.compose.ui.test.junit4.createComposeRule
 import androidx.compose.ui.test.onNodeWithText
@@ -29,7 +28,6 @@
 import androidx.test.core.app.ApplicationProvider
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import com.android.settings.R
-import com.android.settingslib.spa.framework.compose.stateOf
 import com.android.settingslib.spa.testutils.FakeNavControllerWrapper
 import com.android.settingslib.spa.testutils.firstWithTimeoutOrNull
 import com.android.settingslib.spaprivileged.template.app.AppListItemModel
@@ -67,7 +65,7 @@
     fun injectEntry_summary() {
         setInjectEntry()
         composeTestRule
-            .onNodeWithText(context.getString(R.string.aspect_ratio_summary, Build.MODEL))
+            .onNodeWithText(context.getString(R.string.aspect_ratio_summary_text, Build.MODEL))
             .assertIsDisplayed()
     }
 
@@ -132,7 +130,7 @@
                     AppListItemModel(
                         record = APP_RECORD_SUGGESTED,
                         label = LABEL,
-                        summary = stateOf(SUMMARY)
+                        summary = { SUMMARY }
                     ).AppItem()
                 }
             }
@@ -141,23 +139,23 @@
 
     @Test
     fun aspectRatioAppListModel_getSummaryDefault() {
-        val summaryState = setSummaryState(USER_MIN_ASPECT_RATIO_UNSET)
-        assertThat(summaryState.value)
-            .isEqualTo(context.getString(R.string.user_aspect_ratio_app_default))
+        val summary = getSummary(USER_MIN_ASPECT_RATIO_UNSET)
+
+        assertThat(summary).isEqualTo(context.getString(R.string.user_aspect_ratio_app_default))
     }
 
     @Test
     fun aspectRatioAppListModel_getSummaryWhenSplitScreen() {
-        val summaryState = setSummaryState(USER_MIN_ASPECT_RATIO_SPLIT_SCREEN)
-        assertThat(summaryState.value)
-            .isEqualTo(context.getString(R.string.user_aspect_ratio_half_screen))
+        val summary = getSummary(USER_MIN_ASPECT_RATIO_SPLIT_SCREEN)
+
+        assertThat(summary).isEqualTo(context.getString(R.string.user_aspect_ratio_half_screen))
     }
 
-    private fun setSummaryState(userOverride: Int): State<String> {
+    private fun getSummary(userOverride: Int): String {
         val listModel = UserAspectRatioAppListModel(context)
-        lateinit var summaryState: State<String>
+        lateinit var summary: () -> String
         composeTestRule.setContent {
-            summaryState = listModel.getSummary(option = 0,
+            summary = listModel.getSummary(option = 0,
                 record = UserAspectRatioAppListItemModel(
                     app = APP,
                     userOverride = userOverride,
@@ -165,7 +163,7 @@
                     canDisplay = true,
                 ))
         }
-        return summaryState
+        return summary()
     }
 
 
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppButtonsTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppButtonsTest.kt
index 8faf5c9..e2f55ef 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppButtonsTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppButtonsTest.kt
@@ -17,16 +17,21 @@
 package com.android.settings.spa.app.appinfo
 
 import android.content.Context
+import android.content.Intent
 import android.content.pm.ApplicationInfo
+import android.content.pm.FakeFeatureFlagsImpl
+import android.content.pm.Flags
 import android.content.pm.PackageInfo
 import android.content.pm.PackageManager
 import androidx.compose.ui.test.assertIsDisplayed
 import androidx.compose.ui.test.assertIsNotDisplayed
 import androidx.compose.ui.test.junit4.createComposeRule
+import androidx.compose.ui.test.onNodeWithText
 import androidx.compose.ui.test.onRoot
 import androidx.test.core.app.ApplicationProvider
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import com.android.dx.mockito.inline.extended.ExtendedMockito
+import com.android.settings.R
 import com.android.settingslib.applications.AppUtils
 import com.android.settingslib.spa.testutils.delay
 import kotlinx.coroutines.flow.MutableStateFlow
@@ -57,6 +62,8 @@
     @Mock
     private lateinit var packageManager: PackageManager
 
+    private val featureFlags = FakeFeatureFlagsImpl()
+
     @Before
     fun setUp() {
         mockSession = ExtendedMockito.mockitoSession()
@@ -69,6 +76,7 @@
         whenever(packageInfoPresenter.userPackageManager).thenReturn(packageManager)
         whenever(packageManager.getPackageInfo(PACKAGE_NAME, 0)).thenReturn(PACKAGE_INFO)
         whenever(AppUtils.isMainlineModule(packageManager, PACKAGE_NAME)).thenReturn(false)
+        featureFlags.setFlag(Flags.FLAG_ARCHIVING, true)
     }
 
     @After
@@ -92,10 +100,28 @@
         composeTestRule.onRoot().assertIsDisplayed()
     }
 
+    @Test
+    fun launchButton_displayed_archivingDisabled() {
+        whenever(packageManager.getLaunchIntentForPackage(PACKAGE_NAME)).thenReturn(Intent())
+        featureFlags.setFlag(Flags.FLAG_ARCHIVING, false)
+        setContent()
+
+        composeTestRule.onNodeWithText(context.getString(R.string.launch_instant_app)).assertIsDisplayed()
+    }
+
+    @Test
+    fun launchButton_notDisplayed_archivingEnabled() {
+        whenever(packageManager.getLaunchIntentForPackage(PACKAGE_NAME)).thenReturn(Intent())
+        featureFlags.setFlag(Flags.FLAG_ARCHIVING, true)
+        setContent()
+
+        composeTestRule.onNodeWithText(context.getString(R.string.launch_instant_app)).assertIsNotDisplayed()
+    }
+
     private fun setContent() {
         whenever(packageInfoPresenter.flow).thenReturn(MutableStateFlow(PACKAGE_INFO))
         composeTestRule.setContent {
-            AppButtons(packageInfoPresenter)
+            AppButtons(packageInfoPresenter, featureFlags)
         }
 
         composeTestRule.delay()
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppDataUsagePreferenceTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppDataUsagePreferenceTest.kt
index 019c143..f70f5d5 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppDataUsagePreferenceTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppDataUsagePreferenceTest.kt
@@ -38,8 +38,9 @@
 import com.android.settings.Utils
 import com.android.settings.applications.appinfo.AppInfoDashboardFragment
 import com.android.settings.datausage.AppDataUsage
-import com.android.settingslib.net.NetworkCycleDataForUid
-import com.android.settingslib.net.NetworkCycleDataForUidLoader
+import com.android.settings.datausage.lib.IAppDataUsageSummaryRepository
+import com.android.settings.datausage.lib.INetworkTemplates
+import com.android.settings.datausage.lib.NetworkUsageData
 import com.android.settingslib.spa.testutils.delay
 import com.android.settingslib.spa.testutils.waitUntilExists
 import org.junit.After
@@ -47,11 +48,7 @@
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
-import org.mockito.Mock
-import org.mockito.Mockito.mock
-import org.mockito.Mockito.verify
 import org.mockito.MockitoSession
-import org.mockito.Spy
 import org.mockito.quality.Strictness
 import org.mockito.Mockito.`when` as whenever
 
@@ -62,28 +59,26 @@
 
     private lateinit var mockSession: MockitoSession
 
-    @Spy
     private val context: Context = ApplicationProvider.getApplicationContext()
 
-    @Mock
-    private lateinit var builder: NetworkCycleDataForUidLoader.Builder<NetworkCycleDataForUidLoader>
+    private var networkUsageData: NetworkUsageData? = null
 
-    @Mock
-    private lateinit var loader: NetworkCycleDataForUidLoader
+    private inner class TestRepository : IAppDataUsageSummaryRepository {
+        override suspend fun querySummary(uid: Int): NetworkUsageData? = when (uid) {
+            UID -> networkUsageData
+            else -> null
+        }
+    }
 
     @Before
     fun setUp() {
         mockSession = mockitoSession()
             .initMocks(this)
             .mockStatic(Utils::class.java)
-            .mockStatic(NetworkCycleDataForUidLoader::class.java)
-            .mockStatic(NetworkTemplate::class.java)
             .mockStatic(AppInfoDashboardFragment::class.java)
             .strictness(Strictness.LENIENT)
             .startMocking()
         whenever(Utils.isBandwidthControlEnabled()).thenReturn(true)
-        whenever(NetworkCycleDataForUidLoader.builder(context)).thenReturn(builder)
-        whenever(builder.build()).thenReturn(loader)
     }
 
     @After
@@ -106,7 +101,7 @@
 
         setContent(notInstalledApp)
 
-        composeTestRule.onNodeWithText(context.getString(R.string.data_usage_app_summary_title))
+        composeTestRule.onNodeWithText(context.getString(R.string.cellular_data_usage))
             .assertIsDisplayed()
             .assertIsNotEnabled()
     }
@@ -115,22 +110,14 @@
     fun whenAppInstalled_enabled() {
         setContent(APP)
 
-        composeTestRule.onNodeWithText(context.getString(R.string.data_usage_app_summary_title))
+        composeTestRule.onNodeWithText(context.getString(R.string.cellular_data_usage))
             .assertIsDisplayed()
             .assertIsEnabled()
     }
 
     @Test
-    fun setCorrectValuesForBuilder() {
-        setContent()
-
-        verify(builder).setRetrieveDetail(false)
-        verify(builder).addUid(UID)
-    }
-
-    @Test
     fun whenNoDataUsage() {
-        whenever(loader.loadInBackground()).thenReturn(emptyList())
+        networkUsageData = null
 
         setContent()
 
@@ -139,10 +126,11 @@
 
     @Test
     fun whenHasDataUsage() {
-        val cycleData = mock(NetworkCycleDataForUid::class.java)
-        whenever(cycleData.totalUsage).thenReturn(123)
-        whenever(cycleData.startTime).thenReturn(1666666666666)
-        whenever(loader.loadInBackground()).thenReturn(listOf(cycleData))
+        networkUsageData = NetworkUsageData(
+            startTime = 1666666666666L,
+            endTime = 1666666666666L,
+            usage = 123L,
+        )
 
         setContent()
 
@@ -151,8 +139,6 @@
 
     @Test
     fun whenClick_startActivity() {
-        whenever(loader.loadInBackground()).thenReturn(emptyList())
-
         setContent()
         composeTestRule.onRoot().performClick()
 
@@ -169,14 +155,21 @@
     private fun setContent(app: ApplicationInfo = APP) {
         composeTestRule.setContent {
             CompositionLocalProvider(LocalContext provides context) {
-                AppDataUsagePreference(app)
+                AppDataUsagePreference(app, TestNetworkTemplates) { _, _ ->
+                    TestRepository()
+                }
             }
         }
         composeTestRule.delay()
     }
 
+    private object TestNetworkTemplates : INetworkTemplates {
+        override fun getDefaultTemplate(context: Context): NetworkTemplate =
+            NetworkTemplate.Builder(NetworkTemplate.MATCH_MOBILE).build()
+    }
+
     private companion object {
-        const val PACKAGE_NAME = "packageName"
+        const val PACKAGE_NAME = "package.name"
         const val UID = 123
         val APP = ApplicationInfo().apply {
             packageName = PACKAGE_NAME
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/InteractAcrossProfilesDetailsPreferenceTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/InteractAcrossProfilesDetailsPreferenceTest.kt
index f4489c6..e123389 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/InteractAcrossProfilesDetailsPreferenceTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/InteractAcrossProfilesDetailsPreferenceTest.kt
@@ -40,6 +40,7 @@
 import com.android.settingslib.spaprivileged.framework.common.crossProfileApps
 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
@@ -116,6 +117,7 @@
         composeTestRule.waitUntilExists(hasText(SUMMARY))
     }
 
+    @Ignore
     @Test
     fun whenClick_startActivity() {
         mockCanConfig(true)
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/PackageInfoPresenterTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/PackageInfoPresenterTest.kt
index 2648e08..6c5cb85 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/PackageInfoPresenterTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/PackageInfoPresenterTest.kt
@@ -20,6 +20,8 @@
 import android.app.settings.SettingsEnums
 import android.content.Context
 import android.content.Intent
+import android.content.pm.FakeFeatureFlagsImpl
+import android.content.pm.Flags
 import android.content.pm.PackageManager
 import androidx.test.core.app.ApplicationProvider
 import androidx.test.ext.junit.runners.AndroidJUnit4
@@ -155,6 +157,41 @@
         verifyAction(123)
     }
 
+    @Test
+    fun reloadPackageInfo_archivingDisabled() = runTest {
+        coroutineScope {
+            val fakeFeatureFlags = FakeFeatureFlagsImpl()
+            fakeFeatureFlags.setFlag(Flags.FLAG_ARCHIVING, false)
+            val packageInfoPresenter =
+                PackageInfoPresenter(context, PACKAGE_NAME, USER_ID, this, packageManagers, fakeFeatureFlags)
+
+            packageInfoPresenter.reloadPackageInfo()
+        }
+
+        val flags = PackageManager.MATCH_ANY_USER.toLong() or
+            PackageManager.MATCH_DISABLED_COMPONENTS.toLong() or
+            PackageManager.GET_PERMISSIONS.toLong()
+        verify(packageManagers).getPackageInfoAsUser(PACKAGE_NAME, flags, USER_ID)
+    }
+
+    @Test
+    fun reloadPackageInfo_archivingEnabled() = runTest {
+        coroutineScope {
+            val fakeFeatureFlags = FakeFeatureFlagsImpl()
+            fakeFeatureFlags.setFlag(Flags.FLAG_ARCHIVING, true)
+            val packageInfoPresenter =
+                PackageInfoPresenter(context, PACKAGE_NAME, USER_ID, this, packageManagers, fakeFeatureFlags)
+
+            packageInfoPresenter.reloadPackageInfo()
+        }
+
+        val flags = PackageManager.MATCH_ANY_USER.toLong() or
+            PackageManager.MATCH_DISABLED_COMPONENTS.toLong() or
+            PackageManager.GET_PERMISSIONS.toLong() or
+            PackageManager.MATCH_ARCHIVED_PACKAGES
+        verify(packageManagers).getPackageInfoAsUser(PACKAGE_NAME, flags, USER_ID)
+    }
+
     private fun verifyAction(category: Int) {
         verify(metricsFeatureProvider).action(context, category, PACKAGE_NAME)
     }
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/TopBarAppLaunchButtonTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/TopBarAppLaunchButtonTest.kt
new file mode 100644
index 0000000..7b54247
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/TopBarAppLaunchButtonTest.kt
@@ -0,0 +1,119 @@
+/*
+ * 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.spa.app.appinfo
+
+import android.content.Context
+import android.content.Intent
+import android.content.pm.ApplicationInfo
+import android.content.pm.PackageManager
+import androidx.compose.runtime.CompositionLocalProvider
+import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.test.hasContentDescription
+import androidx.compose.ui.test.junit4.createComposeRule
+import androidx.compose.ui.test.onNodeWithContentDescription
+import androidx.compose.ui.test.performClick
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.dx.mockito.inline.extended.ExtendedMockito
+import com.android.settings.R
+import com.android.settingslib.spa.testutils.waitUntilExists
+import com.android.settingslib.spaprivileged.model.app.userHandle
+import org.junit.After
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.ArgumentMatchers.any
+import org.mockito.ArgumentMatchers.eq
+import org.mockito.Mock
+import org.mockito.Mockito.verify
+import org.mockito.MockitoSession
+import org.mockito.Spy
+import org.mockito.quality.Strictness
+import org.mockito.Mockito.`when` as whenever
+
+@RunWith(AndroidJUnit4::class)
+class TopBarAppLaunchButtonTest {
+    @get:Rule
+    val composeTestRule = createComposeRule()
+
+    private lateinit var mockSession: MockitoSession
+
+    @Spy
+    private val context: Context = ApplicationProvider.getApplicationContext()
+
+    @Mock
+    private lateinit var packageInfoPresenter: PackageInfoPresenter
+
+    @Mock
+    private lateinit var userPackageManager: PackageManager
+
+    @Before
+    fun setUp() {
+        mockSession = ExtendedMockito.mockitoSession()
+            .initMocks(this)
+            .strictness(Strictness.LENIENT)
+            .startMocking()
+        whenever(packageInfoPresenter.context).thenReturn(context)
+        whenever(packageInfoPresenter.userPackageManager).thenReturn(userPackageManager)
+        val intent = Intent()
+        whenever(userPackageManager.getLaunchIntentForPackage(PACKAGE_NAME)).thenReturn(intent)
+    }
+
+    @After
+    fun tearDown() {
+        mockSession.finishMocking()
+    }
+
+    @Test
+    fun topBarAppLaunchButton_isDisplayed() {
+        val app = ApplicationInfo().apply {
+            packageName = PACKAGE_NAME
+        }
+
+        setContent(app)
+
+        composeTestRule.waitUntilExists(
+            hasContentDescription(context.getString(R.string.launch_instant_app))
+        )
+    }
+
+    @Test
+    fun topBarAppLaunchButton_opensApp() {
+        val app = ApplicationInfo().apply {
+            packageName = PACKAGE_NAME
+        }
+
+        setContent(app)
+        composeTestRule.onNodeWithContentDescription(context.getString(R.string.launch_instant_app))
+            .performClick()
+
+        verify(context).startActivityAsUser(any(), eq(app.userHandle))
+    }
+
+    private fun setContent(app: ApplicationInfo) {
+        composeTestRule.setContent {
+            CompositionLocalProvider(LocalContext provides context) {
+                TopBarAppLaunchButton(packageInfoPresenter, app)
+            }
+        }
+    }
+
+    private companion object {
+        const val PACKAGE_NAME = "package.name"
+    }
+}
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 ccd385f..5c65da1 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
@@ -29,7 +29,6 @@
 import androidx.test.core.app.ApplicationProvider
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import com.android.settings.R
-import com.android.settingslib.spa.framework.compose.stateOf
 import com.android.settingslib.spa.testutils.FakeNavControllerWrapper
 import com.android.settingslib.spaprivileged.template.app.AppListItemModel
 import com.google.common.truth.Truth.assertThat
@@ -244,7 +243,7 @@
                                 app = APP,
                                 dateOfInstall = TEST_FIRST_INSTALL_TIME),
                             label = TEST_LABEL,
-                            summary = stateOf(TEST_SUMMARY),
+                            summary = { TEST_SUMMARY },
                         ).AppItem()
                     }
                 }
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/specialaccess/AllFilesAccessTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/specialaccess/AllFilesAccessTest.kt
index f5d422d..4c65d90 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/specialaccess/AllFilesAccessTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/specialaccess/AllFilesAccessTest.kt
@@ -33,33 +33,12 @@
     private val listModel = AllFilesAccessListModel(context)
 
     @Test
-    fun pageTitleResId() {
+    fun modelResourceIdAndProperties() {
         assertThat(listModel.pageTitleResId).isEqualTo(R.string.manage_external_storage_title)
-    }
-
-    @Test
-    fun switchTitleResId() {
         assertThat(listModel.switchTitleResId).isEqualTo(R.string.permit_manage_external_storage)
-    }
-
-    @Test
-    fun footerResId() {
-        assertThat(listModel.footerResId)
-            .isEqualTo(R.string.allow_manage_external_storage_description)
-    }
-
-    @Test
-    fun appOp() {
+        assertThat(listModel.footerResId).isEqualTo(R.string.allow_manage_external_storage_description)
         assertThat(listModel.appOp).isEqualTo(AppOpsManager.OP_MANAGE_EXTERNAL_STORAGE)
-    }
-
-    @Test
-    fun permission() {
         assertThat(listModel.permission).isEqualTo(Manifest.permission.MANAGE_EXTERNAL_STORAGE)
-    }
-
-    @Test
-    fun setModeByUid() {
         assertThat(listModel.setModeByUid).isTrue()
     }
 }
\ No newline at end of file
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/specialaccess/LongBackgroundTasksAppsTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/specialaccess/LongBackgroundTasksAppsTest.kt
new file mode 100644
index 0000000..579c6c9
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/spa/app/specialaccess/LongBackgroundTasksAppsTest.kt
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.spa.app.specialaccess
+
+import android.Manifest
+import android.app.AppOpsManager
+import android.content.Context
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.google.common.truth.Truth.assertThat
+import com.android.settings.R
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class LongBackgroundTasksAppsTest {
+    private val context: Context = ApplicationProvider.getApplicationContext()
+
+    private val listModel = LongBackgroundTasksAppsListModel(context)
+
+    @Test
+    fun modelResourceIdAndProperties() {
+        assertThat(listModel.pageTitleResId).isEqualTo(R.string.long_background_tasks_title)
+        assertThat(listModel.switchTitleResId).isEqualTo(R.string.long_background_tasks_switch_title)
+        assertThat(listModel.footerResId).isEqualTo(R.string.long_background_tasks_footer_title)
+        assertThat(listModel.appOp).isEqualTo(AppOpsManager.OP_RUN_USER_INITIATED_JOBS)
+        assertThat(listModel.permission).isEqualTo(Manifest.permission.RUN_USER_INITIATED_JOBS)
+        assertThat(listModel.setModeByUid).isTrue()
+    }
+}
\ No newline at end of file
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/specialaccess/MediaManagementAppsTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/specialaccess/MediaManagementAppsTest.kt
index b56d997..b901043 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/specialaccess/MediaManagementAppsTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/specialaccess/MediaManagementAppsTest.kt
@@ -33,33 +33,12 @@
     private val listModel = MediaManagementAppsListModel(context)
 
     @Test
-    fun pageTitleResId() {
+    fun modelResourceIdAndProperties() {
         assertThat(listModel.pageTitleResId).isEqualTo(R.string.media_management_apps_title)
-    }
-
-    @Test
-    fun switchTitleResId() {
-        assertThat(listModel.switchTitleResId)
-            .isEqualTo(R.string.media_management_apps_toggle_label)
-    }
-
-    @Test
-    fun footerResId() {
+        assertThat(listModel.switchTitleResId).isEqualTo(R.string.media_management_apps_toggle_label)
         assertThat(listModel.footerResId).isEqualTo(R.string.media_management_apps_description)
-    }
-
-    @Test
-    fun appOp() {
         assertThat(listModel.appOp).isEqualTo(AppOpsManager.OP_MANAGE_MEDIA)
-    }
-
-    @Test
-    fun permission() {
         assertThat(listModel.permission).isEqualTo(Manifest.permission.MANAGE_MEDIA)
-    }
-
-    @Test
-    fun setModeByUid() {
         assertThat(listModel.setModeByUid).isTrue()
     }
 }
\ No newline at end of file
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/specialaccess/PictureInPictureTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/specialaccess/PictureInPictureTest.kt
index 6054bb5..4229247 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/specialaccess/PictureInPictureTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/specialaccess/PictureInPictureTest.kt
@@ -67,18 +67,9 @@
     }
 
     @Test
-    fun pageTitleResId() {
+    fun modelResourceId() {
         assertThat(listModel.pageTitleResId).isEqualTo(R.string.picture_in_picture_title)
-    }
-
-    @Test
-    fun switchTitleResId() {
-        assertThat(listModel.switchTitleResId)
-            .isEqualTo(R.string.picture_in_picture_app_detail_switch)
-    }
-
-    @Test
-    fun footerResId() {
+        assertThat(listModel.switchTitleResId).isEqualTo(R.string.picture_in_picture_app_detail_switch)
         assertThat(listModel.footerResId).isEqualTo(R.string.picture_in_picture_app_detail_summary)
     }
 
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/specialaccess/TurnScreenOnAppsTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/specialaccess/TurnScreenOnAppsTest.kt
new file mode 100644
index 0000000..9c6079d
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/spa/app/specialaccess/TurnScreenOnAppsTest.kt
@@ -0,0 +1,42 @@
+/*
+ * 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.spa.app.specialaccess
+
+import android.Manifest
+import android.app.AppOpsManager
+import android.content.Context
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class TurnScreenOnAppsTest {
+    private val context: Context = ApplicationProvider.getApplicationContext()
+
+    private val listModel = TurnScreenOnAppsListModel(context)
+
+    @Test
+    fun modelResourceIdAndProperties() {
+        assertThat(listModel.pageTitleResId).isEqualTo(com.android.settingslib.R.string.turn_screen_on_title)
+        assertThat(listModel.switchTitleResId).isEqualTo(com.android.settingslib.R.string.allow_turn_screen_on)
+        assertThat(listModel.footerResId).isEqualTo(com.android.settingslib.R.string.allow_turn_screen_on_description)
+        assertThat(listModel.appOp).isEqualTo(AppOpsManager.OP_TURN_SCREEN_ON)
+        assertThat(listModel.permission).isEqualTo(Manifest.permission.TURN_SCREEN_ON)
+        assertThat(listModel.setModeByUid).isTrue()
+    }
+}
\ No newline at end of file
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/specialaccess/VoiceActivationAppsPreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/specialaccess/VoiceActivationAppsPreferenceControllerTest.kt
new file mode 100644
index 0000000..2127497
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/spa/app/specialaccess/VoiceActivationAppsPreferenceControllerTest.kt
@@ -0,0 +1,65 @@
+package com.android.settings.spa.app.specialaccess
+
+import android.content.Context
+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 androidx.preference.Preference
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+
+import com.android.settings.flags.Flags
+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.doNothing
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.whenever
+
+@RunWith(AndroidJUnit4::class)
+class VoiceActivationAppsPreferenceControllerTest {
+
+    @get:Rule
+    val checkFlagsRule: CheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule()
+
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        doNothing().whenever(mock).startActivity(any())
+    }
+
+    private val matchedPreference = Preference(context).apply { key = preferenceKey }
+
+    private val misMatchedPreference = Preference(context).apply { key = testPreferenceKey }
+
+    private val controller = VoiceActivationAppsPreferenceController(context, preferenceKey)
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_VOICE_ACTIVATION_APPS_IN_SETTINGS)
+    fun getAvailabilityStatus_enableVoiceActivationApps_returnAvailable() {
+        assertThat(controller.isAvailable).isTrue()
+    }
+
+    @Test
+    @RequiresFlagsDisabled(Flags.FLAG_ENABLE_VOICE_ACTIVATION_APPS_IN_SETTINGS)
+    fun getAvailableStatus_disableVoiceActivationApps_returnConditionallyUnavailable() {
+        assertThat(controller.isAvailable).isFalse()
+    }
+
+    @Test
+    fun handlePreferenceTreeClick_keyMatched_returnTrue() {
+        assertThat(controller.handlePreferenceTreeClick(matchedPreference)).isTrue()
+    }
+
+    @Test
+    fun handlePreferenceTreeClick_keyMisMatched_returnFalse() {
+        assertThat(controller.handlePreferenceTreeClick(misMatchedPreference)).isFalse()
+    }
+
+    companion object {
+        private const val preferenceKey: String = "voice_activation_apps"
+        private const val testPreferenceKey: String = "test_key"
+    }
+}
\ No newline at end of file
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/specialaccess/VoiceActivationAppsTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/specialaccess/VoiceActivationAppsTest.kt
new file mode 100644
index 0000000..a2aa293
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/spa/app/specialaccess/VoiceActivationAppsTest.kt
@@ -0,0 +1,30 @@
+package com.android.settings.spa.app.specialaccess
+
+import android.Manifest
+import android.app.AppOpsManager
+import android.content.Context
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.R
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class VoiceActivationAppsTest {
+    private val context: Context = ApplicationProvider.getApplicationContext()
+
+    private val listModel = VoiceActivationAppsListModel(context)
+
+    @Test
+    fun modelResourceIdAndProperties() {
+        assertThat(listModel.pageTitleResId).isEqualTo(R.string.voice_activation_apps_title)
+        assertThat(listModel.switchTitleResId).isEqualTo(R.string.permit_voice_activation_apps)
+        assertThat(listModel.footerResId).isEqualTo(R.string.allow_voice_activation_apps_description)
+        assertThat(listModel.appOp).isEqualTo(AppOpsManager.OP_RECEIVE_SANDBOX_TRIGGER_AUDIO)
+        assertThat(listModel.permission).isEqualTo(
+            Manifest.permission.RECEIVE_SANDBOX_TRIGGER_AUDIO
+        )
+        assertThat(listModel.setModeByUid).isTrue()
+    }
+}
\ No newline at end of file
diff --git a/tests/spa_unit/src/com/android/settings/spa/development/compat/PlatformCompatAppListModelTest.kt b/tests/spa_unit/src/com/android/settings/spa/development/compat/PlatformCompatAppListModelTest.kt
index 0cfdc7d..6aee4ce 100644
--- a/tests/spa_unit/src/com/android/settings/spa/development/compat/PlatformCompatAppListModelTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/development/compat/PlatformCompatAppListModelTest.kt
@@ -20,7 +20,6 @@
 import android.content.pm.ApplicationInfo
 import android.content.pm.PackageManager
 import android.content.pm.PackageManager.PackageInfoFlags
-import androidx.compose.runtime.State
 import androidx.compose.ui.test.junit4.createComposeRule
 import androidx.test.core.app.ApplicationProvider
 import androidx.test.ext.junit.runners.AndroidJUnit4
@@ -79,20 +78,20 @@
 
     @Test
     fun getSummary() = runTest {
-        val summaryState = getSummaryState(APP)
+        val summary = getSummary(APP)
 
-        assertThat(summaryState.value).isEqualTo(PACKAGE_NAME)
+        assertThat(summary).isEqualTo(PACKAGE_NAME)
     }
 
-    private fun getSummaryState(app: ApplicationInfo): State<String> {
-        lateinit var summary: State<String>
+    private fun getSummary(app: ApplicationInfo): String {
+        lateinit var summary: () -> String
         composeTestRule.setContent {
             summary = listModel.getSummary(
                 option = 0,
                 record = PlatformCompatAppRecord(app),
             )
         }
-        return summary
+        return summary()
     }
 
     private companion object {
diff --git a/tests/spa_unit/src/com/android/settings/spa/preference/ComposePreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/spa/preference/ComposePreferenceControllerTest.kt
new file mode 100644
index 0000000..cdfa514
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/spa/preference/ComposePreferenceControllerTest.kt
@@ -0,0 +1,73 @@
+/*
+ * 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.spa.preference
+
+import android.content.Context
+import androidx.compose.material3.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.test.assertIsDisplayed
+import androidx.compose.ui.test.junit4.createComposeRule
+import androidx.compose.ui.test.onNodeWithText
+import androidx.preference.PreferenceManager
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class ComposePreferenceControllerTest {
+
+    @get:Rule
+    val composeTestRule = createComposeRule()
+
+    private val context: Context = ApplicationProvider.getApplicationContext()
+
+    private val controller = object : ComposePreferenceController(
+        context = context,
+        preferenceKey = TEST_KEY,
+    ) {
+        override fun getAvailabilityStatus() = AVAILABLE
+
+        @Composable
+        override fun Content() {
+            Text(TEXT)
+        }
+    }
+
+    private val preference = ComposePreference(context).apply {
+        key = TEST_KEY
+    }
+
+    private val preferenceScreen = PreferenceManager(context).createPreferenceScreen(context)
+        .apply { addPreference(preference) }
+
+    @Test
+    fun displayPreference() {
+        controller.displayPreference(preferenceScreen)
+
+        composeTestRule.setContent {
+            preference.Content()
+        }
+        composeTestRule.onNodeWithText(TEXT).assertIsDisplayed()
+    }
+
+    private companion object {
+        const val TEST_KEY = "test_key"
+        const val TEXT = "Text"
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/spa/preference/ComposePreferenceTest.kt b/tests/spa_unit/src/com/android/settings/spa/preference/ComposePreferenceTest.kt
new file mode 100644
index 0000000..a2fe752
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/spa/preference/ComposePreferenceTest.kt
@@ -0,0 +1,61 @@
+/*
+ * 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.spa.preference
+
+import android.content.Context
+import androidx.compose.material3.Text
+import androidx.compose.ui.platform.ComposeView
+import androidx.compose.ui.test.assertIsDisplayed
+import androidx.compose.ui.test.junit4.createComposeRule
+import androidx.compose.ui.test.onNodeWithText
+import androidx.preference.PreferenceViewHolder
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class ComposePreferenceTest {
+
+    @get:Rule
+    val composeTestRule = createComposeRule()
+
+    private val context: Context = ApplicationProvider.getApplicationContext()
+
+    private val preference = ComposePreference(context)
+
+    private val composeView = ComposeView(context)
+
+    @Test
+    fun onBindViewHolder() {
+        preference.setContent {
+            Text(TEXT)
+        }
+
+        preference.onBindViewHolder(PreferenceViewHolder.createInstanceForTests(composeView))
+
+        composeTestRule.setContent {
+            composeView.Content()
+        }
+        composeTestRule.onNodeWithText(TEXT).assertIsDisplayed()
+    }
+
+    private companion object {
+        const val TEXT = "Text"
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/system/ClientInitiatedActionRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/system/ClientInitiatedActionRepositoryTest.kt
new file mode 100644
index 0000000..f202668
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/system/ClientInitiatedActionRepositoryTest.kt
@@ -0,0 +1,78 @@
+/*
+ * 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.system
+
+import android.content.Context
+import android.content.Intent
+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.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.any
+import org.mockito.kotlin.anyVararg
+import org.mockito.kotlin.argumentCaptor
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.never
+import org.mockito.kotlin.stub
+import org.mockito.kotlin.verify
+
+@RunWith(AndroidJUnit4::class)
+class ClientInitiatedActionRepositoryTest {
+    private val mockCarrierConfigManager = mock<CarrierConfigManager>()
+
+    private val context = mock<Context> {
+        on { applicationContext } doReturn mock
+        on { getSystemService(CarrierConfigManager::class.java) } doReturn mockCarrierConfigManager
+    }
+
+    private val repository = ClientInitiatedActionRepository(context)
+
+    @Test
+    fun onSystemUpdate_notEnabled() {
+        mockCarrierConfigManager.stub {
+            on { getConfig(anyVararg()) } doReturn persistableBundleOf()
+        }
+
+        repository.onSystemUpdate()
+
+        verify(context, never()).sendBroadcast(any())
+    }
+
+    @Test
+    fun onSystemUpdate_enabled() {
+        mockCarrierConfigManager.stub {
+            on { getConfig(anyVararg()) } doReturn persistableBundleOf(
+                CarrierConfigManager.KEY_CI_ACTION_ON_SYS_UPDATE_BOOL to true,
+                CarrierConfigManager.KEY_CI_ACTION_ON_SYS_UPDATE_INTENT_STRING to ACTION,
+            )
+        }
+
+        repository.onSystemUpdate()
+
+        val intent = argumentCaptor<Intent> {
+            verify(context).sendBroadcast(capture())
+        }.firstValue
+        assertThat(intent.action).isEqualTo(ACTION)
+    }
+
+    private companion object {
+        const val ACTION = "ACTION"
+    }
+}
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 95f25ad..9b098a7 100644
--- a/tests/spa_unit/src/com/android/settings/testutils/FakeFeatureFactory.kt
+++ b/tests/spa_unit/src/com/android/settings/testutils/FakeFeatureFactory.kt
@@ -22,6 +22,7 @@
 import com.android.settings.accounts.AccountFeatureProvider
 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
@@ -40,6 +41,7 @@
 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
 import com.android.settings.security.SecurityFeatureProvider
 import com.android.settings.security.SecuritySettingsFeatureProvider
@@ -120,6 +122,8 @@
         get() = TODO("Not yet implemented")
     override val faceFeatureProvider: FaceFeatureProvider
         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
@@ -140,4 +144,6 @@
         get() = TODO("Not yet implemented")
     override val fastPairFeatureProvider: FastPairFeatureProvider
         get() = TODO("Not yet implemented")
+    override val privateSpaceLoginFeatureProvider: PrivateSpaceLoginFeatureProvider
+        get() = TODO("Not yet implemented")
 }
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
new file mode 100644
index 0000000..cb1f997
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2Test.kt
@@ -0,0 +1,143 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.wifi.details2
+
+import android.content.Context
+import androidx.preference.ListPreference
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.R
+import com.android.wifitrackerlib.WifiEntry
+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.doReturn
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.never
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.stub
+import org.mockito.kotlin.verify
+import org.mockito.kotlin.whenever
+
+@RunWith(AndroidJUnit4::class)
+class WifiPrivacyPreferenceController2Test {
+    private var mockWifiEntry = mock<WifiEntry>()
+
+    private var context: Context = ApplicationProvider.getApplicationContext()
+
+    private var controller = spy(WifiPrivacyPreferenceController2(context).apply {
+        setWifiEntry(mockWifiEntry)
+    })
+
+    private var preference = ListPreference(context).apply {
+        setEntries(R.array.wifi_privacy_entries)
+        setEntryValues(R.array.wifi_privacy_values)
+    }
+
+    private var preferenceStrings = context.resources.getStringArray(R.array.wifi_privacy_entries)
+
+    @Test
+    fun updateState_wifiPrivacy_setCorrectValue() {
+        controller.stub {
+            doReturn(WifiEntry.PRIVACY_DEVICE_MAC).whenever(mock).randomizationValue
+        }
+
+        controller.updateState(preference)
+
+        val prefValue = WifiPrivacyPreferenceController2.translateMacRandomizedValueToPrefValue(
+            WifiEntry.PRIVACY_DEVICE_MAC
+        )
+        assertThat(preference.entry).isEqualTo(preferenceStrings[prefValue])
+    }
+
+    @Test
+    fun updateState_wifiNotMetered_setCorrectValue() {
+        controller.stub {
+            doReturn(WifiEntry.PRIVACY_RANDOMIZED_MAC).whenever(mock).randomizationValue
+        }
+
+        controller.updateState(preference)
+
+        val prefValue = WifiPrivacyPreferenceController2.translateMacRandomizedValueToPrefValue(
+            WifiEntry.PRIVACY_RANDOMIZED_MAC
+        )
+        assertThat(preference.entry).isEqualTo(preferenceStrings[prefValue])
+    }
+
+    @Test
+    fun updateState_canSetPrivacyInNextUpdate_shouldBeSelectable() {
+        mockWifiEntry.stub {
+            // Return false in WifiEntry#canSetPrivacy to make preference un-selectable first.
+            on { canSetPrivacy() } doReturn false
+        }
+        controller.updateState(preference)
+        assertThat(preference.isSelectable).isFalse()
+
+        mockWifiEntry.stub {
+            // Return true in WifiEntry#canSetPrivacy to verify preference back to selectable.
+            on { canSetPrivacy() } doReturn true
+        }
+        controller.updateState(preference)
+        assertThat(preference.isSelectable).isTrue()
+    }
+
+    @Test
+    fun updateState_canNotSetPrivacyInNextUpdate_shouldNotBeSelectable() {
+        mockWifiEntry.stub {
+            // Return true in WifiEntry#canSetPrivacy to make preference selectable first.
+            on { canSetPrivacy() } doReturn true
+        }
+        controller.updateState(preference)
+        assertThat(preference.isSelectable).isTrue()
+
+        mockWifiEntry.stub {
+            // Return false in WifiEntry#canSetPrivacy to verify preference back to un-selectable.
+            on { canSetPrivacy() } doReturn false
+        }
+        controller.updateState(preference)
+        assertThat(preference.isSelectable).isFalse()
+    }
+
+    @Test
+    fun onPreferenceChange_sameNewValue_doNoting() {
+        mockWifiEntry.stub {
+            on { privacy } doReturn 0
+            on { connectedState } doReturn WifiEntry.CONNECTED_STATE_CONNECTED
+        }
+
+        controller.onPreferenceChange(preference, "0")
+
+        verify(mockWifiEntry, never()).privacy = any()
+        verify(mockWifiEntry, never()).disconnect(null)
+        verify(mockWifiEntry, never()).connect(null)
+    }
+
+    @Test
+    fun onPreferenceChange_differentNewValue_setAndReconnect() {
+        mockWifiEntry.stub {
+            on { privacy } doReturn 0
+            on { connectedState } doReturn WifiEntry.CONNECTED_STATE_CONNECTED
+        }
+
+        controller.onPreferenceChange(preference, "1")
+
+        verify(mockWifiEntry).privacy = 1
+        verify(mockWifiEntry).disconnect(null)
+        verify(mockWifiEntry).connect(null)
+    }
+}
diff --git a/tests/uitests/Android.bp b/tests/uitests/Android.bp
index 407b5ec..f3f5201 100644
--- a/tests/uitests/Android.bp
+++ b/tests/uitests/Android.bp
@@ -47,7 +47,8 @@
         "settings-helper",
         "sysui-helper",
         "timeresult-helper-lib",
-        "truth-prebuilt",
+        "truth",
+        "flag-junit",
     ],
 
     //sdk_version: "current",
diff --git a/tests/uitests/src/com/android/settings/ui/SecuritySettingsTest.kt b/tests/uitests/src/com/android/settings/ui/SecuritySettingsTest.kt
index 5339e95..b5a4fe9 100644
--- a/tests/uitests/src/com/android/settings/ui/SecuritySettingsTest.kt
+++ b/tests/uitests/src/com/android/settings/ui/SecuritySettingsTest.kt
@@ -16,6 +16,9 @@
 
 package com.android.settings.ui
 
+import android.os.Flags
+import android.platform.test.annotations.RequiresFlagsEnabled
+import android.platform.test.flag.junit.DeviceFlagsValueProvider
 import android.provider.Settings
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.platform.app.InstrumentationRegistry
@@ -23,13 +26,18 @@
 import com.android.settings.ui.testutils.SettingsTestUtils.assertHasTexts
 import com.android.settings.ui.testutils.SettingsTestUtils.startMainActivityFromHomeScreen
 import org.junit.Before
+import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
 
+
 @RunWith(AndroidJUnit4::class)
 class SecuritySettingsTest {
     private val device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
 
+    @get:Rule
+    public val mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule()
+
     @Before
     fun setUp() {
         device.startMainActivityFromHomeScreen(Settings.ACTION_SECURITY_SETTINGS)
@@ -40,6 +48,12 @@
         device.assertHasTexts(ON_SCREEN_TEXTS)
     }
 
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ALLOW_PRIVATE_PROFILE)
+    fun privateSpace_ifFlagON() {
+        device.assertHasTexts(listOf("Private Space"))
+    }
+
     private companion object {
         // Items we really want to always show
         val ON_SCREEN_TEXTS = listOf(
diff --git a/tests/uitests/src/com/android/settings/ui/privatespace/PrivateSpaceAuthenticationActivityTest.kt b/tests/uitests/src/com/android/settings/ui/privatespace/PrivateSpaceAuthenticationActivityTest.kt
new file mode 100644
index 0000000..8751471
--- /dev/null
+++ b/tests/uitests/src/com/android/settings/ui/privatespace/PrivateSpaceAuthenticationActivityTest.kt
@@ -0,0 +1,91 @@
+/*
+ * 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.ui.privatespace
+
+
+import android.os.Flags
+import android.platform.test.annotations.RequiresFlagsEnabled
+import android.platform.test.flag.junit.DeviceFlagsValueProvider
+import android.provider.Settings
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.platform.app.InstrumentationRegistry
+import androidx.test.uiautomator.By
+import androidx.test.uiautomator.UiDevice
+import com.android.settings.ui.testutils.SettingsTestUtils.assertHasTexts
+import com.android.settings.ui.testutils.SettingsTestUtils.clickObject
+import com.android.settings.ui.testutils.SettingsTestUtils.startMainActivityFromHomeScreen
+import com.android.settings.ui.testutils.SettingsTestUtils.waitObject
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+
+
+@RunWith(AndroidJUnit4::class)
+@RequiresFlagsEnabled(Flags.FLAG_ALLOW_PRIVATE_PROFILE)
+class PrivateSpaceAuthenticationActivityTest {
+    private val device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
+
+    @get:Rule
+    public val mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule()
+
+    @Before
+    fun setUp() {
+        device.startMainActivityFromHomeScreen(Settings.ACTION_SECURITY_SETTINGS)
+        device.assertHasTexts(listOf(PRIVATE_SPACE_SETTING))
+    }
+
+    @Test
+    fun showAuthenticationScreen() {
+        Thread.sleep(1000)
+        device.clickObject(By.text(PRIVATE_SPACE_SETTING))
+        device.waitObject(By.text(DIALOG_TITLE))
+        Thread.sleep(1000)
+        device.assertHasTexts(listOf("Set a screen lock","Cancel"))
+    }
+
+    @Test
+    fun onCancelLockExitSetup() {
+        Thread.sleep(1000)
+        device.clickObject(By.text(PRIVATE_SPACE_SETTING))
+        device.waitObject(By.text(DIALOG_TITLE))
+        Thread.sleep(1000)
+        device.assertHasTexts(listOf(SET_LOCK_BUTTON, CANCEL_TEXT))
+        device.clickObject(By.text(CANCEL_TEXT))
+        device.assertHasTexts(listOf(PRIVATE_SPACE_SETTING))
+    }
+
+    @Test
+    fun onSetupSetLock() {
+        Thread.sleep(1000)
+        device.clickObject(By.text(PRIVATE_SPACE_SETTING))
+        device.waitObject(By.text(DIALOG_TITLE))
+        Thread.sleep(1000)
+        device.assertHasTexts(listOf(SET_LOCK_BUTTON,CANCEL_TEXT))
+        device.clickObject(By.text(SET_LOCK_BUTTON))
+        device.assertHasTexts(listOf(LOCK_SCREEN_TITLE))
+    }
+
+    private companion object {
+        // Items we really want to always show
+        val PRIVATE_SPACE_SETTING = "Private Space"
+        const val SET_LOCK_BUTTON = "Set screen lock"
+        val CANCEL_TEXT = "Cancel"
+        val DIALOG_TITLE = "Set a screen lock"
+        val LOCK_SCREEN_TITLE = "Choose screen lock"
+    }
+}
diff --git a/tests/unit/Android.bp b/tests/unit/Android.bp
index eb38980..327b6aa 100644
--- a/tests/unit/Android.bp
+++ b/tests/unit/Android.bp
@@ -18,15 +18,17 @@
     ],
 
     static_libs: [
+        "aconfig_settings_flags_lib",
         "androidx.arch.core_core-testing",
         "androidx.test.core",
+        "androidx.test.espresso.core",
         "androidx.test.rules",
         "androidx.test.ext.junit",
         "androidx.preference_preference",
         "mockito-target-minus-junit4",
         "platform-test-annotations",
         "platform-test-rules",
-        "truth-prebuilt",
+        "truth",
         "kotlinx_coroutines_test",
         "flag-junit",
         "Settings-testutils2",
@@ -35,7 +37,7 @@
     ],
 
     errorprone: {
-        javacflags: ["-Xep:CheckReturnValue:WARN"]
+        javacflags: ["-Xep:CheckReturnValue:WARN"],
     },
     // Include all test java/kotlin files.
     srcs: [
diff --git a/tests/unit/src/com/android/settings/DefaultRingtonePreferenceTest.java b/tests/unit/src/com/android/settings/DefaultRingtonePreferenceTest.java
index 7877684..c580fc5 100644
--- a/tests/unit/src/com/android/settings/DefaultRingtonePreferenceTest.java
+++ b/tests/unit/src/com/android/settings/DefaultRingtonePreferenceTest.java
@@ -16,16 +16,20 @@
 
 package com.android.settings;
 
+import static org.mockito.ArgumentMatchers.any;
 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.content.ContentInterface;
 import android.content.ContentResolver;
 import android.content.Context;
-import android.media.RingtoneManager;
+import android.content.pm.UserProperties;
 import android.net.Uri;
+import android.os.UserHandle;
+import android.os.UserManager;
 
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
@@ -34,17 +38,22 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
+import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
 
 /** Unittest for DefaultRingtonePreference. */
 @RunWith(AndroidJUnit4.class)
 public class DefaultRingtonePreferenceTest {
 
+    private static final int OWNER_USER_ID = 1;
+    private static final int OTHER_USER_ID = 10;
+    private static final int INVALID_RINGTONE_TYPE = 0;
     private DefaultRingtonePreference mDefaultRingtonePreference;
 
     @Mock
     private ContentResolver mContentResolver;
     @Mock
+    private UserManager mUserManager;
     private Uri mRingtoneUri;
 
     @Before
@@ -52,14 +61,29 @@
         MockitoAnnotations.initMocks(this);
 
         Context context = spy(ApplicationProvider.getApplicationContext());
-        doReturn(mContentResolver).when(context).getContentResolver();
+        mContentResolver = ContentResolver.wrap(Mockito.mock(ContentInterface.class));
+        when(context.getContentResolver()).thenReturn(mContentResolver);
 
         mDefaultRingtonePreference = spy(new DefaultRingtonePreference(context, null /* attrs */));
         doReturn(context).when(mDefaultRingtonePreference).getContext();
+
+        // Use INVALID_RINGTONE_TYPE to return early in RingtoneManager.setActualDefaultRingtoneUri
         when(mDefaultRingtonePreference.getRingtoneType())
-                .thenReturn(RingtoneManager.TYPE_RINGTONE);
-        mDefaultRingtonePreference.setUserId(1);
+                .thenReturn(INVALID_RINGTONE_TYPE);
+
+        mDefaultRingtonePreference.setUserId(OWNER_USER_ID);
         mDefaultRingtonePreference.mUserContext = context;
+        when(mDefaultRingtonePreference.isDefaultRingtone(any(Uri.class))).thenReturn(false);
+
+        when(context.getSystemServiceName(UserManager.class)).thenReturn(Context.USER_SERVICE);
+        when(context.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
+
+        UserProperties userProperties = new UserProperties.Builder().setMediaSharedWithParent(false)
+                .build();
+        when(mUserManager.getUserProperties(UserHandle.of(OTHER_USER_ID))).thenReturn(
+                userProperties);
+
+        mRingtoneUri = Uri.parse("content://none");
     }
 
     @Test
@@ -79,4 +103,53 @@
 
         verify(mDefaultRingtonePreference, never()).setActualDefaultRingtoneUri(mRingtoneUri);
     }
+
+    @Test
+    public void onSaveRingtone_notManagedProfile_shouldNotSetRingtone() {
+        mRingtoneUri = Uri.parse("content://" + OTHER_USER_ID + "@ringtone");
+        when(mContentResolver.getType(mRingtoneUri)).thenReturn("audio/*");
+        when(mUserManager.isSameProfileGroup(OWNER_USER_ID, OTHER_USER_ID)).thenReturn(true);
+        when(mUserManager.getProfileParent(UserHandle.of(OTHER_USER_ID))).thenReturn(
+                UserHandle.of(OWNER_USER_ID));
+        when(mUserManager.isManagedProfile(OTHER_USER_ID)).thenReturn(false);
+
+        mDefaultRingtonePreference.onSaveRingtone(mRingtoneUri);
+
+        verify(mDefaultRingtonePreference, never()).setActualDefaultRingtoneUri(mRingtoneUri);
+    }
+
+    @Test
+    public void onSaveRingtone_notSameUser_shouldNotSetRingtone() {
+        mRingtoneUri = Uri.parse("content://" + OTHER_USER_ID + "@ringtone");
+        when(mContentResolver.getType(mRingtoneUri)).thenReturn("audio/*");
+        when(mUserManager.isSameProfileGroup(OWNER_USER_ID, OTHER_USER_ID)).thenReturn(false);
+
+        mDefaultRingtonePreference.onSaveRingtone(mRingtoneUri);
+
+        verify(mDefaultRingtonePreference, never()).setActualDefaultRingtoneUri(mRingtoneUri);
+    }
+
+    @Test
+    public void onSaveRingtone_isManagedProfile_shouldSetRingtone() {
+        mRingtoneUri = Uri.parse("content://" + OTHER_USER_ID + "@ringtone");
+        when(mContentResolver.getType(mRingtoneUri)).thenReturn("audio/*");
+        when(mUserManager.isSameProfileGroup(OWNER_USER_ID, OTHER_USER_ID)).thenReturn(true);
+        when(mUserManager.getProfileParent(UserHandle.of(OTHER_USER_ID))).thenReturn(
+                UserHandle.of(OWNER_USER_ID));
+        when(mUserManager.isManagedProfile(OTHER_USER_ID)).thenReturn(true);
+
+        mDefaultRingtonePreference.onSaveRingtone(mRingtoneUri);
+
+        verify(mDefaultRingtonePreference).setActualDefaultRingtoneUri(mRingtoneUri);
+    }
+
+    @Test
+    public void onSaveRingtone_defaultUri_shouldSetRingtone() {
+        mRingtoneUri = Uri.parse("default_ringtone");
+        when(mDefaultRingtonePreference.isDefaultRingtone(any(Uri.class))).thenReturn(true);
+
+        mDefaultRingtonePreference.onSaveRingtone(mRingtoneUri);
+
+        verify(mDefaultRingtonePreference).setActualDefaultRingtoneUri(mRingtoneUri);
+    }
 }
diff --git a/tests/unit/src/com/android/settings/MainClearTest.kt b/tests/unit/src/com/android/settings/MainClearTest.kt
new file mode 100644
index 0000000..05f06df
--- /dev/null
+++ b/tests/unit/src/com/android/settings/MainClearTest.kt
@@ -0,0 +1,68 @@
+/*
+ * 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
+
+import android.platform.test.flag.junit.SetFlagsRule
+import androidx.test.core.app.ActivityScenario
+import androidx.test.espresso.Espresso.onView
+import androidx.test.espresso.action.ViewActions.click
+import androidx.test.espresso.assertion.ViewAssertions.doesNotExist
+import androidx.test.espresso.assertion.ViewAssertions.matches
+import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
+import androidx.test.espresso.matcher.ViewMatchers.withText
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.Settings.FactoryResetActivity
+import com.android.settings.flags.Flags
+import com.google.common.truth.Truth.assertThat
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+
+/** Test [MainClear]. */
+@RunWith(AndroidJUnit4::class)
+class MainClearTest {
+    @get:Rule
+    val mSetFlagsRule = SetFlagsRule()
+
+    @Test
+    fun factoryResetCancelButton_flagDisabled_noCancelButton() {
+        mSetFlagsRule.disableFlags(Flags.FLAG_SHOW_FACTORY_RESET_CANCEL_BUTTON)
+        ActivityScenario.launch(FactoryResetActivity::class.java).use {
+            ensurePrimaryButton()
+            onView(withText(android.R.string.cancel)).check(doesNotExist())
+            it.onActivity { activity -> assertThat(activity.isFinishing).isFalse() }
+        }
+    }
+
+    @Test
+    fun factoryResetCancelButton_flagEnabled_showCancelButton() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_SHOW_FACTORY_RESET_CANCEL_BUTTON)
+        ActivityScenario.launch(FactoryResetActivity::class.java).use {
+            ensurePrimaryButton()
+            it.onActivity { activity -> assertThat(activity.isFinishing).isFalse() }
+
+            // Note: onView CANNOT be called within onActivity block, which runs in the main thread
+            onView(withText(android.R.string.cancel)).check(matches(isDisplayed())).perform(click())
+
+            it.onActivity { activity -> assertThat(activity.isFinishing).isTrue() }
+        }
+    }
+
+    private fun ensurePrimaryButton() {
+        onView(withText(R.string.main_clear_button_text)).check(matches(isDisplayed()))
+    }
+}
\ No newline at end of file
diff --git a/tests/unit/src/com/android/settings/applications/appcompat/UserAspectRatioManagerTest.java b/tests/unit/src/com/android/settings/applications/appcompat/UserAspectRatioManagerTest.java
index 61c4507..3783b8a 100644
--- a/tests/unit/src/com/android/settings/applications/appcompat/UserAspectRatioManagerTest.java
+++ b/tests/unit/src/com/android/settings/applications/appcompat/UserAspectRatioManagerTest.java
@@ -17,7 +17,9 @@
 package com.android.settings.applications.appcompat;
 
 import static android.content.pm.PackageManager.USER_MIN_ASPECT_RATIO_16_9;
+import static android.content.pm.PackageManager.USER_MIN_ASPECT_RATIO_3_2;
 import static android.content.pm.PackageManager.USER_MIN_ASPECT_RATIO_4_3;
+import static android.content.pm.PackageManager.USER_MIN_ASPECT_RATIO_DISPLAY_SIZE;
 import static android.content.pm.PackageManager.USER_MIN_ASPECT_RATIO_FULLSCREEN;
 import static android.content.pm.PackageManager.USER_MIN_ASPECT_RATIO_SPLIT_SCREEN;
 import static android.content.pm.PackageManager.USER_MIN_ASPECT_RATIO_UNSET;
@@ -30,8 +32,10 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
@@ -44,10 +48,6 @@
 import android.content.pm.LauncherApps;
 import android.content.pm.PackageManager;
 import android.content.res.Resources;
-import android.platform.test.rule.DeviceTypeRule;
-import android.platform.test.rule.FoldableOnly;
-import android.platform.test.rule.LargeScreenOnly;
-import android.platform.test.rule.TabletOnly;
 import android.provider.DeviceConfig;
 
 import androidx.test.core.app.ApplicationProvider;
@@ -58,9 +58,7 @@
 
 import org.junit.After;
 import org.junit.Before;
-import org.junit.Rule;
 import org.junit.Test;
-import org.junit.rules.TestRule;
 import org.junit.runner.RunWith;
 
 import java.util.List;
@@ -69,7 +67,6 @@
  * To run this test: atest SettingsUnitTests:UserAspectRatioManagerTest
  */
 @RunWith(AndroidJUnit4.class)
-@LargeScreenOnly
 public class UserAspectRatioManagerTest {
 
     private Context mContext;
@@ -81,23 +78,19 @@
     private LauncherApps mLauncherApps;
     private List<LauncherActivityInfo> mLauncherActivities;
 
-    @Rule
-    public TestRule mDeviceTypeRule = new DeviceTypeRule();
-
     @Before
     public void setUp() {
         mContext = spy(ApplicationProvider.getApplicationContext());
-        mResources = spy(mContext.getResources());
+        mResources = mock(Resources.class);
         mLauncherApps = mock(LauncherApps.class);
         mLauncherActivities = mock(List.class);
-        mUtils = new UserAspectRatioManager(mContext) {
-            @Override
-            LauncherApps getLauncherApps() {
-                return mLauncherApps;
-            }
-        };
 
         when(mContext.getResources()).thenReturn(mResources);
+        when(mContext.getSystemService(LauncherApps.class)).thenReturn(mLauncherApps);
+        enableAllDefaultAspectRatioOptions();
+
+        mUtils = new UserAspectRatioManager(mContext);
+
         doReturn(mLauncherActivities).when(mLauncherApps).getActivityList(anyString(), any());
 
         mOriginalSettingsFlag = DeviceConfig.getProperty(
@@ -137,7 +130,7 @@
     public void testCanDisplayAspectRatioUi_hasLauncher_propertyFalse_returnFalse()
             throws PackageManager.NameNotFoundException {
         mockProperty(PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE, false);
-        doReturn(true).when(mLauncherActivities).isEmpty();
+        doReturn(false).when(mLauncherActivities).isEmpty();
 
         final ApplicationInfo canDisplay = new ApplicationInfo();
         canDisplay.packageName = mPackageName;
@@ -229,10 +222,10 @@
     }
 
     @Test
-    @FoldableOnly
-    public void testGetUserMinAspectRatioEntry_Foldable() {
+    public void testGetUserMinAspectRatioEntry() {
+        final Context context = ApplicationProvider.getApplicationContext();
         // R.string.user_aspect_ratio_app_default
-        final String appDefault = ResourcesUtils.getResourcesString(mContext,
+        final String appDefault = ResourcesUtils.getResourcesString(context,
                 "user_aspect_ratio_app_default");
         assertThat(mUtils.getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_UNSET, mPackageName))
                 .isEqualTo(appDefault);
@@ -241,36 +234,24 @@
                 .isEqualTo(appDefault);
         // R.string.user_aspect_ratio_half_screen
         assertThat(mUtils.getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_SPLIT_SCREEN,
-                mPackageName)).isEqualTo(ResourcesUtils.getResourcesString(mContext,
+                mPackageName)).isEqualTo(ResourcesUtils.getResourcesString(context,
                         "user_aspect_ratio_half_screen"));
-        // R,string.user_aspect_ratio_4_3
-        assertThat(mUtils.getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_4_3, mPackageName))
-                .isEqualTo(ResourcesUtils.getResourcesString(mContext, "user_aspect_ratio_4_3"));
-        assertThat(mUtils.getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_FULLSCREEN,
-                mPackageName)).isEqualTo(ResourcesUtils.getResourcesString(mContext,
-                        "user_aspect_ratio_fullscreen"));
-    }
-
-    @Test
-    @TabletOnly
-    public void testGetUserMinAspectRatioEntry_Tablet() {
-        // R.string.user_aspect_ratio_app_default
-        final String appDefault = ResourcesUtils.getResourcesString(mContext,
-                "user_aspect_ratio_app_default");
-        assertThat(mUtils.getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_UNSET, mPackageName))
-                .isEqualTo(appDefault);
-        // should always return default if value does not correspond to anything
-        assertThat(mUtils.getUserMinAspectRatioEntry(-1, mPackageName))
-                .isEqualTo(appDefault);
-        // R.string.user_aspect_ratio_half_screen
-        assertThat(mUtils.getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_SPLIT_SCREEN,
-                mPackageName)).isEqualTo(ResourcesUtils.getResourcesString(mContext,
-                "user_aspect_ratio_half_screen"));
+        // R.string.user_aspect_ratio_display_size
+        assertThat(mUtils.getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_DISPLAY_SIZE,
+                mPackageName)).isEqualTo(ResourcesUtils.getResourcesString(context,
+                        "user_aspect_ratio_device_size"));
+        // R.string.user_aspect_ratio_16_9
         assertThat(mUtils.getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_16_9, mPackageName))
-                .isEqualTo(ResourcesUtils.getResourcesString(mContext, "user_aspect_ratio_16_9"));
+                .isEqualTo(ResourcesUtils.getResourcesString(context, "user_aspect_ratio_16_9"));
+        // R.string.user_aspect_ratio_4_3
+        assertThat(mUtils.getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_4_3, mPackageName))
+                .isEqualTo(ResourcesUtils.getResourcesString(context, "user_aspect_ratio_4_3"));
+        // R.string.user_aspect_ratio_3_2
+        assertThat(mUtils.getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_3_2, mPackageName))
+                .isEqualTo(ResourcesUtils.getResourcesString(context, "user_aspect_ratio_3_2"));
         // R.string.user_aspect_ratio_fullscreen
         assertThat(mUtils.getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_FULLSCREEN,
-                mPackageName)).isEqualTo(ResourcesUtils.getResourcesString(mContext,
+                mPackageName)).isEqualTo(ResourcesUtils.getResourcesString(context,
                 "user_aspect_ratio_fullscreen"));
     }
 
@@ -278,10 +259,71 @@
     public void testGetUserMinAspectRatioEntry_fullscreenDisabled_shouldReturnDefault() {
         setAspectRatioFullscreenBuildTimeFlagEnabled(false);
         assertThat(mUtils.getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_FULLSCREEN,
-                mPackageName)).isEqualTo(ResourcesUtils.getResourcesString(mContext,
+                mPackageName)).isEqualTo(ResourcesUtils.getResourcesString(
+                        ApplicationProvider.getApplicationContext(),
                         "user_aspect_ratio_app_default"));
     }
 
+    @Test
+    public void testGetUserMinAspectRatioEntry_nonDefaultString_shouldReturnNewString() {
+        final String newOptionName = "new_option_name";
+        when(mResources.getIntArray(anyInt())).thenReturn(new int[] {USER_MIN_ASPECT_RATIO_UNSET});
+        when(mResources.getStringArray(anyInt())).thenReturn(new String[] {newOptionName});
+
+        mUtils = new UserAspectRatioManager(mContext);
+
+        assertThat(mUtils.getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_UNSET, mPackageName))
+                .isEqualTo(newOptionName);
+    }
+
+
+    @Test
+    public void testGetUserMinAspectRatioMapping_noAppDefault_shouldThrowException() {
+        when(mResources.getIntArray(anyInt())).thenReturn(new int[] {USER_MIN_ASPECT_RATIO_4_3});
+        when(mResources.getStringArray(anyInt())).thenReturn(new String[] {"4:3"});
+
+        assertThrows(RuntimeException.class, () -> new UserAspectRatioManager(mContext));
+    }
+
+    @Test
+    public void testGetUserMinAspectRatioMapping_configLengthMismatch_shouldThrowException() {
+        when(mResources.getIntArray(anyInt())).thenReturn(new int[] {
+                USER_MIN_ASPECT_RATIO_UNSET,
+                USER_MIN_ASPECT_RATIO_4_3});
+        when(mResources.getStringArray(anyInt())).thenReturn(new String[] {"4:3"});
+
+        assertThrows(RuntimeException.class, () -> new UserAspectRatioManager(mContext));
+    }
+
+    private void enableAllDefaultAspectRatioOptions() {
+        final int[] aspectRatioOptions = new int[] {
+                USER_MIN_ASPECT_RATIO_UNSET,
+                USER_MIN_ASPECT_RATIO_SPLIT_SCREEN,
+                USER_MIN_ASPECT_RATIO_DISPLAY_SIZE,
+                USER_MIN_ASPECT_RATIO_4_3,
+                USER_MIN_ASPECT_RATIO_16_9,
+                USER_MIN_ASPECT_RATIO_3_2,
+                USER_MIN_ASPECT_RATIO_FULLSCREEN};
+        when(mResources.getIntArray(anyInt())).thenReturn(aspectRatioOptions);
+        // String array config overlay with @null values so default strings should be used
+        when(mResources.getStringArray(anyInt())).thenReturn(new String[aspectRatioOptions.length]);
+
+        final Context context = ApplicationProvider.getApplicationContext();
+        mockString(context, "user_aspect_ratio_app_default");
+        mockString(context, "user_aspect_ratio_half_screen");
+        mockString(context, "user_aspect_ratio_device_size");
+        mockString(context, "user_aspect_ratio_4_3");
+        mockString(context, "user_aspect_ratio_16_9");
+        mockString(context, "user_aspect_ratio_3_2");
+        mockString(context, "user_aspect_ratio_fullscreen");
+    }
+
+    private void mockString(Context context, String stringResName) {
+        final int resId = ResourcesUtils.getResourcesId(context, "string", stringResName);
+        final String string = ResourcesUtils.getResourcesString(context, stringResName);
+        when(mContext.getString(resId)).thenReturn(string);
+    }
+
     private void mockProperty(String propertyName, boolean value)
             throws PackageManager.NameNotFoundException {
         PackageManager.Property prop = new PackageManager.Property(
diff --git a/tests/unit/src/com/android/settings/datausage/AppPrefLoaderTest.java b/tests/unit/src/com/android/settings/datausage/AppPrefLoaderTest.java
deleted file mode 100644
index 902906c..0000000
--- a/tests/unit/src/com/android/settings/datausage/AppPrefLoaderTest.java
+++ /dev/null
@@ -1,83 +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.datausage;
-
-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.mock;
-import static org.mockito.Mockito.when;
-
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.PackageManager.NameNotFoundException;
-import android.graphics.drawable.Drawable;
-import android.util.ArraySet;
-
-import androidx.preference.Preference;
-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 AppPrefLoaderTest {
-
-    @Mock
-    private PackageManager mPackageManager;
-
-    private AppPrefLoader mLoader;
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-        final ArraySet<String> pkgs = new ArraySet<>(2);
-        pkgs.add("pkg0");
-        pkgs.add("pkg1");
-        mLoader = new AppPrefLoader(
-                ApplicationProvider.getApplicationContext(), pkgs, mPackageManager);
-    }
-
-    @Test
-    public void loadInBackground_packageNotFound_shouldReturnEmptySet()
-            throws NameNotFoundException {
-        when(mPackageManager.getApplicationInfo(anyString(), anyInt()))
-            .thenThrow(new NameNotFoundException());
-
-        assertThat(mLoader.loadInBackground()).isEmpty();
-    }
-
-    @Test
-    public void loadInBackground_shouldReturnPreference() throws NameNotFoundException {
-        ApplicationInfo info = mock(ApplicationInfo.class);
-        when(mPackageManager.getApplicationInfo(anyString(), anyInt())).thenReturn(info);
-        final Drawable drawable = mock(Drawable.class);
-        final String label = "Label1";
-        when(info.loadIcon(mPackageManager)).thenReturn(drawable);
-        when(info.loadLabel(mPackageManager)).thenReturn(label);
-
-        Preference preference = mLoader.loadInBackground().valueAt(0);
-        assertThat(preference.getTitle()).isEqualTo(label);
-        assertThat(preference.getIcon()).isEqualTo(drawable);
-        assertThat(preference.isSelectable()).isFalse();
-    }
-}
diff --git a/tests/unit/src/com/android/settings/development/graphicsdriver/GraphicsDriverEnableAngleAsSystemDriverControllerJUnitTest.java b/tests/unit/src/com/android/settings/development/graphicsdriver/GraphicsDriverEnableAngleAsSystemDriverControllerJUnitTest.java
index 4aa38ae..8304e5d 100644
--- a/tests/unit/src/com/android/settings/development/graphicsdriver/GraphicsDriverEnableAngleAsSystemDriverControllerJUnitTest.java
+++ b/tests/unit/src/com/android/settings/development/graphicsdriver/GraphicsDriverEnableAngleAsSystemDriverControllerJUnitTest.java
@@ -20,10 +20,11 @@
 import static com.android.settings.development.graphicsdriver.GraphicsDriverEnableAngleAsSystemDriverController.Injector;
 import static com.android.settings.development.graphicsdriver.GraphicsDriverEnableAngleAsSystemDriverController.PROPERTY_DEBUG_ANGLE_DEVELOPER_OPTION;
 import static com.android.settings.development.graphicsdriver.GraphicsDriverEnableAngleAsSystemDriverController.PROPERTY_PERSISTENT_GRAPHICS_EGL;
-import static com.android.settings.development.graphicsdriver.GraphicsDriverEnableAngleAsSystemDriverController.PROPERTY_RO_GFX_ANGLE_SUPPORTED;
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertFalse;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.ArgumentMatchers.eq;
@@ -179,31 +180,13 @@
     }
 
     @Test
-    public void updateState_angleNotSupported_PreferenceShouldDisabled() {
-        when(mSystemPropertiesMock.get(eq(PROPERTY_RO_GFX_ANGLE_SUPPORTED), any())).thenReturn("");
-        mController.updateState(mPreference);
-        assertThat(mPreference.isEnabled()).isFalse();
-    }
-
-    @Test
-    public void updateState_angleNotSupported_PreferenceShouldNotBeChecked() {
-        when(mSystemPropertiesMock.get(eq(PROPERTY_RO_GFX_ANGLE_SUPPORTED), any())).thenReturn("");
-        mController.updateState(mPreference);
-        assertThat(mPreference.isChecked()).isFalse();
-    }
-
-    @Test
-    public void updateState_angleSupported_PreferenceShouldEnabled() {
-        when(mSystemPropertiesMock.get(eq(PROPERTY_RO_GFX_ANGLE_SUPPORTED), any()))
-                .thenReturn("true");
+    public void updateState_PreferenceShouldEnabled() {
         mController.updateState(mPreference);
         assertThat(mPreference.isEnabled()).isTrue();
     }
 
     @Test
-    public void updateState_angleSupported_angleIsSystemGLESDriver_PreferenceShouldBeChecked() {
-        when(mSystemPropertiesMock.get(eq(PROPERTY_RO_GFX_ANGLE_SUPPORTED), any()))
-                .thenReturn("true");
+    public void updateState_angleIsSystemGLESDriver_PreferenceShouldBeChecked() {
         when(mSystemPropertiesMock.get(eq(PROPERTY_PERSISTENT_GRAPHICS_EGL), any()))
                 .thenReturn(ANGLE_DRIVER_SUFFIX);
         mController.updateState(mPreference);
@@ -211,10 +194,7 @@
     }
 
     @Test
-    public void
-            updateState_angleSupported_angleIsNotSystemGLESDriver_PreferenceShouldNotBeChecked() {
-        when(mSystemPropertiesMock.get(eq(PROPERTY_RO_GFX_ANGLE_SUPPORTED), any()))
-                .thenReturn("true");
+    public void updateState_angleIsNotSystemGLESDriver_PreferenceShouldNotBeChecked() {
         when(mSystemPropertiesMock.get(eq(PROPERTY_PERSISTENT_GRAPHICS_EGL), any())).thenReturn("");
         mController.updateState(mPreference);
         assertThat(mPreference.isChecked()).isFalse();
@@ -230,8 +210,6 @@
 
         // Test that onDeveloperOptionSwitchDisabled,
         // persist.graphics.egl updates to ""
-        when(mSystemPropertiesMock.get(eq(PROPERTY_RO_GFX_ANGLE_SUPPORTED), any()))
-                .thenReturn("true");
         mController.onDeveloperOptionsSwitchDisabled();
         propertyChangeSignal1.wait(100);
         final String systemEGLDriver = SystemProperties.get(PROPERTY_PERSISTENT_GRAPHICS_EGL);
@@ -243,16 +221,12 @@
 
     @Test
     public void onDeveloperOptionSwitchDisabled_PreferenceShouldNotBeChecked() {
-        when(mSystemPropertiesMock.get(eq(PROPERTY_RO_GFX_ANGLE_SUPPORTED), any()))
-                .thenReturn("true");
         mController.onDeveloperOptionsSwitchDisabled();
         assertThat(mPreference.isChecked()).isFalse();
     }
 
     @Test
     public void onDeveloperOptionSwitchDisabled_PreferenceShouldDisabled() {
-        when(mSystemPropertiesMock.get(eq(PROPERTY_RO_GFX_ANGLE_SUPPORTED), any()))
-                .thenReturn("true");
         mController.onDeveloperOptionsSwitchDisabled();
         assertThat(mPreference.isEnabled()).isFalse();
     }
@@ -472,4 +446,25 @@
         SystemProperties.removeChangeCallback(propertyChangeSignal1.getCountDownJob());
         SystemProperties.removeChangeCallback(propertyChangeSignal2.getCountDownJob());
     }
+
+    @Test
+    public void updateState_DeveloperOptionPropertyIsFalse() {
+        // Test that when debug.graphics.angle.developeroption.enable is false:
+        when(mSystemPropertiesMock.getBoolean(eq(PROPERTY_DEBUG_ANGLE_DEVELOPER_OPTION),
+                                              anyBoolean())).thenReturn(false);
+
+        // 1. "Enable ANGLE" switch is on, the switch should be enabled.
+        when(mSystemPropertiesMock.get(eq(PROPERTY_PERSISTENT_GRAPHICS_EGL), any()))
+                .thenReturn(ANGLE_DRIVER_SUFFIX);
+        mController.updateState(mPreference);
+        assertTrue(mPreference.isChecked());
+        assertTrue(mPreference.isEnabled());
+
+        // 2. "Enable ANGLE" switch is off, the switch should be disabled.
+        when(mSystemPropertiesMock.get(eq(PROPERTY_PERSISTENT_GRAPHICS_EGL), any()))
+                .thenReturn("");
+        mController.updateState(mPreference);
+        assertFalse(mPreference.isChecked());
+        assertFalse(mPreference.isEnabled());
+    }
 }
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 f0d0a0a..3440d2a 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
@@ -26,12 +26,14 @@
 import android.os.Handler
 import androidx.test.core.app.ApplicationProvider
 import com.android.settings.biometrics.GatekeeperPasswordProvider
-import com.android.settings.biometrics.fingerprint2.shared.domain.interactor.FingerprintManagerInteractor
 import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractorImpl
+import com.android.settings.biometrics.fingerprint2.shared.data.repository.PressToAuthProvider
+import com.android.settings.biometrics.fingerprint2.shared.domain.interactor.FingerprintManagerInteractor
+import com.android.settings.biometrics.fingerprint2.shared.model.Default
 import com.android.settings.biometrics.fingerprint2.shared.model.EnrollReason
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptViewModel
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollStateViewModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollState
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
 import com.android.settings.password.ChooseLockSettingsHelper
 import com.google.common.truth.Truth.assertThat
 import kotlinx.coroutines.cancelAndJoin
@@ -69,7 +71,11 @@
   @Mock private lateinit var gateKeeperPasswordProvider: GatekeeperPasswordProvider
 
   private var testScope = TestScope(backgroundDispatcher)
-  private var pressToAuthProvider = { true }
+  private var pressToAuthProvider =
+    object : PressToAuthProvider {
+      override val isEnabled: Boolean
+        get() = false
+    }
 
   @Before
   fun setup() {
@@ -80,6 +86,7 @@
         fingerprintManager,
         gateKeeperPasswordProvider,
         pressToAuthProvider,
+        Default,
       )
   }
 
@@ -164,7 +171,7 @@
   @Test
   fun testRemoveFingerprint_succeeds() =
     testScope.runTest {
-      val fingerprintViewModelToRemove = FingerprintViewModel("Finger 2", 1, 2L)
+      val fingerprintViewModelToRemove = FingerprintData("Finger 2", 1, 2L)
       val fingerprintToRemove = Fingerprint("Finger 2", 1, 2L)
 
       val removalCallback: ArgumentCaptor<FingerprintManager.RemovalCallback> = argumentCaptor()
@@ -187,7 +194,7 @@
   @Test
   fun testRemoveFingerprint_fails() =
     testScope.runTest {
-      val fingerprintViewModelToRemove = FingerprintViewModel("Finger 2", 1, 2L)
+      val fingerprintViewModelToRemove = FingerprintData("Finger 2", 1, 2L)
       val fingerprintToRemove = Fingerprint("Finger 2", 1, 2L)
 
       val removalCallback: ArgumentCaptor<FingerprintManager.RemovalCallback> = argumentCaptor()
@@ -214,7 +221,7 @@
   @Test
   fun testRenameFingerprint_succeeds() =
     testScope.runTest {
-      val fingerprintToRename = FingerprintViewModel("Finger 2", 1, 2L)
+      val fingerprintToRename = FingerprintData("Finger 2", 1, 2L)
 
       underTest.renameFingerprint(fingerprintToRename, "Woo")
 
@@ -226,7 +233,7 @@
     testScope.runTest {
       val fingerprint = Fingerprint("Woooo", 100, 101L)
 
-      var result: FingerprintAuthAttemptViewModel? = null
+      var result: FingerprintAuthAttemptModel? = null
       val job = launch { result = underTest.authenticate() }
 
       val authCallback: ArgumentCaptor<FingerprintManager.AuthenticationCallback> = argumentCaptor()
@@ -247,13 +254,13 @@
 
       runCurrent()
       job.cancelAndJoin()
-      assertThat(result).isEqualTo(FingerprintAuthAttemptViewModel.Success(fingerprint.biometricId))
+      assertThat(result).isEqualTo(FingerprintAuthAttemptModel.Success(fingerprint.biometricId))
     }
 
   @Test
   fun testAuth_lockout() =
     testScope.runTest {
-      var result: FingerprintAuthAttemptViewModel? = null
+      var result: FingerprintAuthAttemptModel? = null
       val job = launch { result = underTest.authenticate() }
 
       val authCallback: ArgumentCaptor<FingerprintManager.AuthenticationCallback> = argumentCaptor()
@@ -274,7 +281,7 @@
       job.cancelAndJoin()
       assertThat(result)
         .isEqualTo(
-          FingerprintAuthAttemptViewModel.Error(FINGERPRINT_ERROR_LOCKOUT_PERMANENT, "Lockout!!")
+          FingerprintAuthAttemptModel.Error(FINGERPRINT_ERROR_LOCKOUT_PERMANENT, "Lockout!!")
         )
     }
 
@@ -282,7 +289,7 @@
   fun testEnroll_progress() =
     testScope.runTest {
       val token = byteArrayOf(5, 3, 2)
-      var result: FingerEnrollStateViewModel? = null
+      var result: FingerEnrollState? = null
       val job = launch { underTest.enroll(token, EnrollReason.FindSensor).collect { result = it } }
       val enrollCallback: ArgumentCaptor<FingerprintManager.EnrollmentCallback> = argumentCaptor()
       runCurrent()
@@ -299,14 +306,14 @@
       runCurrent()
       job.cancelAndJoin()
 
-      assertThat(result).isEqualTo(FingerEnrollStateViewModel.EnrollProgress(1))
+      assertThat(result).isEqualTo(FingerEnrollState.EnrollProgress(1, 2))
     }
 
   @Test
   fun testEnroll_help() =
     testScope.runTest {
       val token = byteArrayOf(5, 3, 2)
-      var result: FingerEnrollStateViewModel? = null
+      var result: FingerEnrollState? = null
       val job = launch { underTest.enroll(token, EnrollReason.FindSensor).collect { result = it } }
       val enrollCallback: ArgumentCaptor<FingerprintManager.EnrollmentCallback> = argumentCaptor()
       runCurrent()
@@ -323,14 +330,14 @@
       runCurrent()
       job.cancelAndJoin()
 
-      assertThat(result).isEqualTo(FingerEnrollStateViewModel.EnrollHelp(-1, "help"))
+      assertThat(result).isEqualTo(FingerEnrollState.EnrollHelp(-1, "help"))
     }
 
   @Test
   fun testEnroll_error() =
     testScope.runTest {
       val token = byteArrayOf(5, 3, 2)
-      var result: FingerEnrollStateViewModel? = null
+      var result: FingerEnrollState? = null
       val job = launch { underTest.enroll(token, EnrollReason.FindSensor).collect { result = it } }
       val enrollCallback: ArgumentCaptor<FingerprintManager.EnrollmentCallback> = argumentCaptor()
       runCurrent()
@@ -343,17 +350,20 @@
           capture(enrollCallback),
           eq(FingerprintManager.ENROLL_FIND_SENSOR)
         )
-      enrollCallback.value.onEnrollmentError(-2, "error")
+      enrollCallback.value.onEnrollmentError(-1, "error")
       runCurrent()
       job.cancelAndJoin()
-
-      assertThat(result).isEqualTo(FingerEnrollStateViewModel.EnrollError(-2, "error"))
+      assertThat(result).isInstanceOf(FingerEnrollState.EnrollError::class.java)
     }
 
   private fun <T : Any> safeEq(value: T): T = eq(value) ?: value
+
   private fun <T> capture(argumentCaptor: ArgumentCaptor<T>): T = argumentCaptor.capture()
+
   private fun <T> any(type: Class<T>): T = Mockito.any<T>(type)
+
   private fun <T> whenever(methodCall: T): OngoingStubbing<T> = `when`(methodCall)
+
   inline fun <reified T : Any> argumentCaptor(): ArgumentCaptor<T> =
     ArgumentCaptor.forClass(T::class.java)
 }
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
new file mode 100644
index 0000000..bd94cba
--- /dev/null
+++ b/tests/unit/src/com/android/settings/fingerprint2/enrollment/viewmodel/FingerprintEnrollFindSensorViewModelV2Test.kt
@@ -0,0 +1,266 @@
+/*
+ * 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.fingerprint2.enrollment.viewmodel
+
+import android.content.Context
+import android.content.res.Configuration
+import android.view.accessibility.AccessibilityManager
+import androidx.arch.core.executor.testing.InstantTaskExecutorRule
+import androidx.test.core.app.ApplicationProvider
+import com.android.settings.biometrics.fingerprint2.shared.model.Default
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.AccessibilityViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.BackgroundViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Education
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollFindSensorViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollNavigationViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintGatekeeperViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FoldStateViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.NextStepViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.OrientationStateViewModel
+import com.android.settings.testutils2.FakeFingerprintManagerInteractor
+import com.android.systemui.biometrics.shared.model.FingerprintSensor
+import com.android.systemui.biometrics.shared.model.FingerprintSensorType
+import com.android.systemui.biometrics.shared.model.SensorStrength
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.flow.collectLatest
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.test.StandardTestDispatcher
+import kotlinx.coroutines.test.TestScope
+import kotlinx.coroutines.test.advanceUntilIdle
+import kotlinx.coroutines.test.resetMain
+import kotlinx.coroutines.test.runTest
+import kotlinx.coroutines.test.setMain
+import org.junit.After
+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.MockitoJUnitRunner
+
+/** consistent with [ScreenSizeFoldProvider.INNER_SCREEN_SMALLEST_SCREEN_WIDTH_THRESHOLD_DP] */
+private const val INNER_SCREEN_SMALLEST_SCREEN_WIDTH_THRESHOLD_DP = 600
+
+@RunWith(MockitoJUnitRunner::class)
+class FingerprintEnrollFindSensorViewModelV2Test {
+  @JvmField @Rule var rule = MockitoJUnit.rule()
+  @get:Rule val instantTaskRule = InstantTaskExecutorRule()
+
+  private var backgroundDispatcher = StandardTestDispatcher()
+  private var testScope = TestScope(backgroundDispatcher)
+  private lateinit var fakeFingerprintManagerInteractor: FakeFingerprintManagerInteractor
+  private lateinit var gatekeeperViewModel: FingerprintGatekeeperViewModel
+  private lateinit var enrollViewModel: FingerprintEnrollViewModel
+  private lateinit var navigationViewModel: FingerprintEnrollNavigationViewModel
+  private lateinit var accessibilityViewModel: AccessibilityViewModel
+  private lateinit var foldStateViewModel: FoldStateViewModel
+  private lateinit var orientationStateViewModel: OrientationStateViewModel
+  private lateinit var underTest: FingerprintEnrollFindSensorViewModel
+  private lateinit var backgroundViewModel: BackgroundViewModel
+  private val context: Context = ApplicationProvider.getApplicationContext()
+  private val accessibilityManager: AccessibilityManager =
+    context.getSystemService(AccessibilityManager::class.java)!!
+
+  @Before
+  fun setup() {
+    backgroundDispatcher = StandardTestDispatcher()
+    testScope = TestScope(backgroundDispatcher)
+    Dispatchers.setMain(backgroundDispatcher)
+
+    fakeFingerprintManagerInteractor = FakeFingerprintManagerInteractor()
+    gatekeeperViewModel =
+      FingerprintGatekeeperViewModel.FingerprintGatekeeperViewModelFactory(
+          null,
+          fakeFingerprintManagerInteractor
+        )
+        .create(FingerprintGatekeeperViewModel::class.java)
+    navigationViewModel =
+      FingerprintEnrollNavigationViewModel.FingerprintEnrollNavigationViewModelFactory(
+          backgroundDispatcher,
+          fakeFingerprintManagerInteractor,
+          gatekeeperViewModel,
+          canSkipConfirm = true,
+          Default,
+        )
+        .create(FingerprintEnrollNavigationViewModel::class.java)
+
+    backgroundViewModel =
+      BackgroundViewModel.BackgroundViewModelFactory().create(BackgroundViewModel::class.java)
+    backgroundViewModel.inForeground()
+    enrollViewModel =
+      FingerprintEnrollViewModel.FingerprintEnrollViewModelFactory(
+          fakeFingerprintManagerInteractor,
+          gatekeeperViewModel,
+          navigationViewModel,
+        )
+        .create(FingerprintEnrollViewModel::class.java)
+    accessibilityViewModel =
+      AccessibilityViewModel.AccessibilityViewModelFactory(accessibilityManager)
+        .create(AccessibilityViewModel::class.java)
+    foldStateViewModel =
+      FoldStateViewModel.FoldStateViewModelFactory(context).create(FoldStateViewModel::class.java)
+    orientationStateViewModel =
+      OrientationStateViewModel.OrientationViewModelFactory(context)
+        .create(OrientationStateViewModel::class.java)
+    underTest =
+      FingerprintEnrollFindSensorViewModel.FingerprintEnrollFindSensorViewModelFactory(
+          navigationViewModel,
+          enrollViewModel,
+          gatekeeperViewModel,
+          backgroundViewModel,
+          accessibilityViewModel,
+          foldStateViewModel,
+          orientationStateViewModel
+        )
+        .create(FingerprintEnrollFindSensorViewModel::class.java)
+
+    // Navigate to Education page
+    navigationViewModel.nextStep()
+  }
+
+  @After
+  fun tearDown() {
+    Dispatchers.resetMain()
+  }
+
+  // TODO(b/305094585): test enroll() logic
+
+  @Test
+  fun currentStepIsEducation() =
+    testScope.runTest {
+      var step: NextStepViewModel? = null
+      val job = launch {
+        navigationViewModel.navigationViewModel.collectLatest { step = it.currStep }
+      }
+      advanceUntilIdle()
+      assertThat(step).isEqualTo(Education)
+      job.cancel()
+    }
+
+  @Test
+  fun udfpsLottieInfo() =
+    testScope.runTest {
+      fakeFingerprintManagerInteractor.sensorProp =
+        FingerprintSensor(
+          0 /* sensorId */,
+          SensorStrength.STRONG,
+          5,
+          FingerprintSensorType.UDFPS_OPTICAL
+        )
+
+      var udfpsLottieInfo: Boolean? = null
+      val job = launch { underTest.udfpsLottieInfo.collect { udfpsLottieInfo = it } }
+
+      advanceUntilIdle()
+      assertThat(udfpsLottieInfo).isNotNull()
+      job.cancel()
+    }
+
+  @Test
+  fun sfpsLottieInfoWhenFolded() =
+    testScope.runTest {
+      var isFolded = false
+      var rotation: Int = -1
+      val job = launch {
+        underTest.sfpsLottieInfo.collect {
+          isFolded = it.first
+          rotation = it.second
+        }
+      }
+
+      val config = createConfiguration(isFolded = true)
+      foldStateViewModel.onConfigurationChange(config)
+      advanceUntilIdle()
+      assertThat(isFolded).isTrue()
+      assertThat(rotation).isEqualTo(context.display!!.rotation)
+      job.cancel()
+    }
+
+  @Test
+  fun sfpsLottieInfoWhenUnFolded() =
+    testScope.runTest {
+      var isFolded = false
+      var rotation: Int = -1
+      val job = launch {
+        underTest.sfpsLottieInfo.collect {
+          isFolded = it.first
+          rotation = it.second
+        }
+      }
+
+      val config = createConfiguration(isFolded = false)
+      foldStateViewModel.onConfigurationChange(config)
+      advanceUntilIdle()
+      assertThat(isFolded).isFalse()
+      assertThat(rotation).isEqualTo(context.display!!.rotation)
+      job.cancel()
+    }
+
+  @Test
+  fun rfpsAnimation() =
+    testScope.runTest {
+      fakeFingerprintManagerInteractor.sensorProp =
+        FingerprintSensor(0 /* sensorId */, SensorStrength.STRONG, 5, FingerprintSensorType.REAR)
+
+      var showRfpsAnimation: Boolean? = null
+      val job = launch { underTest.showRfpsAnimation.collect { showRfpsAnimation = it } }
+
+      advanceUntilIdle()
+      assertThat(showRfpsAnimation).isTrue()
+      job.cancel()
+    }
+
+  @Test
+  fun showPrimaryButton_ifUdfps() =
+    testScope.runTest {
+      fakeFingerprintManagerInteractor.sensorProp =
+        FingerprintSensor(
+          0 /* sensorId */,
+          SensorStrength.STRONG,
+          5,
+          FingerprintSensorType.UDFPS_OPTICAL
+        )
+
+      var showPrimaryButton: Boolean? = null
+      val job = launch { underTest.showPrimaryButton.collect { showPrimaryButton = it } }
+
+      advanceUntilIdle()
+      assertThat(showPrimaryButton).isTrue()
+      job.cancel()
+    }
+
+  @Test
+  fun doesNotShowPrimaryButton_ifNonUdfps() =
+    testScope.runTest {
+      var showPrimaryButton: Boolean? = null
+      val job = launch { underTest.showPrimaryButton.collect { showPrimaryButton = it } }
+
+      advanceUntilIdle()
+      assertThat(showPrimaryButton).isNull()
+      job.cancel()
+    }
+
+  private fun createConfiguration(isFolded: Boolean): Configuration {
+    val config = Configuration()
+    config.smallestScreenWidthDp =
+      if (isFolded) INNER_SCREEN_SMALLEST_SCREEN_WIDTH_THRESHOLD_DP - 1
+      else INNER_SCREEN_SMALLEST_SCREEN_WIDTH_THRESHOLD_DP + 1
+    return config
+  }
+}
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
new file mode 100644
index 0000000..46e883a
--- /dev/null
+++ b/tests/unit/src/com/android/settings/fingerprint2/ui/enrollment/modules/enrolling/rfps/viewmodel/RFPSIconTouchViewModelTest.kt
@@ -0,0 +1,142 @@
+/*
+ * 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.fingerprint2.ui.enrollment.modules.enrolling.rfps.viewmodel
+
+import androidx.arch.core.executor.testing.InstantTaskExecutorRule
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.modules.enrolling.rfps.ui.viewmodel.RFPSIconTouchViewModel
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.test.StandardTestDispatcher
+import kotlinx.coroutines.test.TestScope
+import kotlinx.coroutines.test.resetMain
+import kotlinx.coroutines.test.runCurrent
+import kotlinx.coroutines.test.runTest
+import kotlinx.coroutines.test.setMain
+import org.junit.After
+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.MockitoJUnitRunner
+
+@RunWith(MockitoJUnitRunner::class)
+class RFPSIconTouchViewModelTest {
+  @JvmField @Rule var rule = MockitoJUnit.rule()
+
+  @get:Rule val instantTaskRule = InstantTaskExecutorRule()
+
+  private var backgroundDispatcher = StandardTestDispatcher()
+  private var testScope = TestScope(backgroundDispatcher)
+  private lateinit var rfpsIconTouchViewModel: RFPSIconTouchViewModel
+
+  @Before
+  fun setup() {
+    Dispatchers.setMain(backgroundDispatcher)
+    testScope = TestScope(backgroundDispatcher)
+    rfpsIconTouchViewModel =
+      RFPSIconTouchViewModel()
+  }
+
+  @After
+  fun tearDown() {
+    Dispatchers.resetMain()
+  }
+
+  @Test
+  fun initShouldNotShowDialog() =
+    testScope.runTest {
+      var shouldShowDialog = false
+
+      val job = launch { rfpsIconTouchViewModel.shouldShowDialog.collect { shouldShowDialog = it } }
+
+      runCurrent()
+
+      assertThat(shouldShowDialog).isFalse()
+      job.cancel()
+    }
+
+  @Test
+  fun shouldShowDialogTest() =
+    testScope.runTest {
+      var shouldShowDialog = false
+
+      val job = launch { rfpsIconTouchViewModel.shouldShowDialog.collect { shouldShowDialog = it } }
+
+      rfpsIconTouchViewModel.userTouchedFingerprintIcon()
+      rfpsIconTouchViewModel.userTouchedFingerprintIcon()
+      rfpsIconTouchViewModel.userTouchedFingerprintIcon()
+
+      runCurrent()
+
+      assertThat(shouldShowDialog).isTrue()
+      job.cancel()
+    }
+
+  @Test
+  fun stateShouldBeFalseAfterReset() =
+    testScope.runTest {
+      var shouldShowDialog = false
+
+      val job = launch { rfpsIconTouchViewModel.shouldShowDialog.collect { shouldShowDialog = it } }
+
+      rfpsIconTouchViewModel.userTouchedFingerprintIcon()
+      rfpsIconTouchViewModel.userTouchedFingerprintIcon()
+      rfpsIconTouchViewModel.userTouchedFingerprintIcon()
+
+      runCurrent()
+
+      assertThat(shouldShowDialog).isTrue()
+
+      rfpsIconTouchViewModel.userTouchedFingerprintIcon()
+      runCurrent()
+
+      assertThat(shouldShowDialog).isFalse()
+
+      job.cancel()
+    }
+
+  @Test
+  fun toggleMultipleTimes() =
+    testScope.runTest {
+      var shouldShowDialog = false
+
+      val job = launch { rfpsIconTouchViewModel.shouldShowDialog.collect { shouldShowDialog = it } }
+
+      rfpsIconTouchViewModel.userTouchedFingerprintIcon()
+      rfpsIconTouchViewModel.userTouchedFingerprintIcon()
+      rfpsIconTouchViewModel.userTouchedFingerprintIcon()
+
+      runCurrent()
+
+      assertThat(shouldShowDialog).isTrue()
+
+      rfpsIconTouchViewModel.userTouchedFingerprintIcon()
+      runCurrent()
+
+      assertThat(shouldShowDialog).isFalse()
+
+      rfpsIconTouchViewModel.userTouchedFingerprintIcon()
+      rfpsIconTouchViewModel.userTouchedFingerprintIcon()
+
+      runCurrent()
+      assertThat(shouldShowDialog).isTrue()
+
+      job.cancel()
+    }
+}
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
new file mode 100644
index 0000000..efb4a07
--- /dev/null
+++ b/tests/unit/src/com/android/settings/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollEnrollingViewModelTest.kt
@@ -0,0 +1,153 @@
+/*
+ * 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.fingerprint2.ui.enrollment.viewmodel
+
+import androidx.arch.core.executor.testing.InstantTaskExecutorRule
+import com.android.settings.biometrics.fingerprint2.shared.model.Default
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.BackgroundViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Enrollment
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollEnrollingViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollNavigationViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintGatekeeperViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.GatekeeperInfo
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.NavState
+import com.android.settings.testutils2.FakeFingerprintManagerInteractor
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.test.StandardTestDispatcher
+import kotlinx.coroutines.test.TestScope
+import kotlinx.coroutines.test.resetMain
+import kotlinx.coroutines.test.runCurrent
+import kotlinx.coroutines.test.runTest
+import kotlinx.coroutines.test.setMain
+import org.junit.After
+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.MockitoJUnitRunner
+
+@RunWith(MockitoJUnitRunner::class)
+class FingerprintEnrollEnrollingViewModelTest {
+  @JvmField @Rule var rule = MockitoJUnit.rule()
+
+  @get:Rule val instantTaskRule = InstantTaskExecutorRule()
+
+  private var backgroundDispatcher = StandardTestDispatcher()
+  private lateinit var enrollEnrollingViewModel: FingerprintEnrollEnrollingViewModel
+  private lateinit var backgroundViewModel: BackgroundViewModel
+  private lateinit var gateKeeperViewModel: FingerprintGatekeeperViewModel
+  private lateinit var navigationViewModel: FingerprintEnrollNavigationViewModel
+  private val defaultGatekeeperInfo = GatekeeperInfo.GatekeeperPasswordInfo(byteArrayOf(1, 3), 3)
+  private var testScope = TestScope(backgroundDispatcher)
+
+  private lateinit var fakeFingerprintManagerInteractor: FakeFingerprintManagerInteractor
+
+  private fun initialize(gatekeeperInfo: GatekeeperInfo = defaultGatekeeperInfo) {
+    fakeFingerprintManagerInteractor = FakeFingerprintManagerInteractor()
+    gateKeeperViewModel =
+      FingerprintGatekeeperViewModel.FingerprintGatekeeperViewModelFactory(
+          gatekeeperInfo,
+          fakeFingerprintManagerInteractor
+        )
+        .create(FingerprintGatekeeperViewModel::class.java)
+
+    navigationViewModel =
+      FingerprintEnrollNavigationViewModel(
+        backgroundDispatcher,
+        fakeFingerprintManagerInteractor,
+        gateKeeperViewModel,
+        Enrollment,
+        NavState(true),
+        Default,
+      )
+
+    backgroundViewModel =
+      BackgroundViewModel.BackgroundViewModelFactory().create(BackgroundViewModel::class.java)
+    backgroundViewModel.inForeground()
+    val fingerprintEnrollViewModel =
+      FingerprintEnrollViewModel.FingerprintEnrollViewModelFactory(
+          fakeFingerprintManagerInteractor,
+          gateKeeperViewModel,
+          navigationViewModel,
+        )
+        .create(FingerprintEnrollViewModel::class.java)
+    enrollEnrollingViewModel =
+      FingerprintEnrollEnrollingViewModel.FingerprintEnrollEnrollingViewModelFactory(
+          fingerprintEnrollViewModel,
+          backgroundViewModel,
+        )
+        .create(FingerprintEnrollEnrollingViewModel::class.java)
+  }
+
+  @Before
+  fun setup() {
+    Dispatchers.setMain(backgroundDispatcher)
+    initialize()
+  }
+
+  @After
+  fun tearDown() {
+    Dispatchers.resetMain()
+  }
+
+  @Test
+  fun testEnrollShouldBeFalse() =
+    testScope.runTest {
+      var shouldEnroll = false
+
+      val job = launch {
+        enrollEnrollingViewModel.enrollFlowShouldBeRunning.collect { shouldEnroll = it }
+      }
+
+      assertThat(shouldEnroll).isFalse()
+      runCurrent()
+
+      enrollEnrollingViewModel.canEnroll()
+      runCurrent()
+
+      assertThat(shouldEnroll).isTrue()
+      job.cancel()
+    }
+
+  @Test
+  fun testEnrollShouldBeFalseWhenBackground() =
+    testScope.runTest {
+      var shouldEnroll = false
+
+      val job = launch {
+        enrollEnrollingViewModel.enrollFlowShouldBeRunning.collect { shouldEnroll = it }
+      }
+
+      assertThat(shouldEnroll).isFalse()
+      runCurrent()
+
+      enrollEnrollingViewModel.canEnroll()
+      runCurrent()
+
+      assertThat(shouldEnroll).isTrue()
+
+      backgroundViewModel.wentToBackground()
+      runCurrent()
+      assertThat(shouldEnroll).isFalse()
+
+      job.cancel()
+    }
+}
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 d4dbec5..064e087 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
@@ -18,7 +18,7 @@
 
 import androidx.arch.core.executor.testing.InstantTaskExecutorRule
 import com.android.settings.biometrics.BiometricEnrollBase
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
 import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.EnrollFirstFingerprint
 import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsNavigationViewModel
 import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FinishSettings
@@ -208,7 +208,7 @@
   fun enrollAdditionalFingerprints_fails() =
     testScope.runTest {
       fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
-        mutableListOf(FingerprintViewModel("a", 1, 3L))
+        mutableListOf(FingerprintData("a", 1, 3L))
       fakeFingerprintManagerInteractor.challengeToGenerate = Pair(4L, byteArrayOf(3, 3, 1))
 
       var nextStep: NextStepViewModel? = null
@@ -227,7 +227,7 @@
   fun enrollAdditional_success() =
     testScope.runTest {
       fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
-        mutableListOf(FingerprintViewModel("a", 1, 3L))
+        mutableListOf(FingerprintData("a", 1, 3L))
 
       var nextStep: NextStepViewModel? = null
       val job = launch { underTest.nextStep.collect { nextStep = it } }
@@ -245,7 +245,7 @@
   fun confirmDeviceCredential_withEnrolledFingerprint_showsSettings() =
     testScope.runTest {
       fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
-        mutableListOf(FingerprintViewModel("a", 1, 3L))
+        mutableListOf(FingerprintData("a", 1, 3L))
       fakeFingerprintManagerInteractor.challengeToGenerate = Pair(10L, byteArrayOf(1, 2, 3))
 
       var nextStep: NextStepViewModel? = null
@@ -320,7 +320,7 @@
   fun showSettings_shouldFinish() =
     testScope.runTest {
       fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
-        mutableListOf(FingerprintViewModel("a", 1, 3L))
+        mutableListOf(FingerprintData("a", 1, 3L))
 
       var nextStep: NextStepViewModel? = null
       val job = launch { underTest.nextStep.collect { nextStep = it } }
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 d25ced0..4bd9121 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
@@ -17,8 +17,8 @@
 package com.android.settings.fingerprint2.ui.settings
 
 import androidx.arch.core.executor.testing.InstantTaskExecutorRule
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptViewModel
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
 import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsNavigationViewModel
 import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsViewModel
 import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.PreferenceViewModel
@@ -103,7 +103,7 @@
           FingerprintSensorType.UDFPS_OPTICAL,
         )
       fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
-        mutableListOf(FingerprintViewModel("a", 1, 3L))
+        mutableListOf(FingerprintData("a", 1, 3L))
 
       underTest =
         FingerprintSettingsViewModel.FingerprintSettingsViewModelFactory(
@@ -114,7 +114,7 @@
           )
           .create(FingerprintSettingsViewModel::class.java)
 
-      var authAttempt: FingerprintAuthAttemptViewModel? = null
+      var authAttempt: FingerprintAuthAttemptModel? = null
       val job = launch { underTest.authFlow.take(5).collectLatest { authAttempt = it } }
 
       underTest.shouldAuthenticate(true)
@@ -139,7 +139,7 @@
           FingerprintSensorType.UDFPS_ULTRASONIC,
         )
       fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
-        mutableListOf(FingerprintViewModel("a", 1, 3L))
+        mutableListOf(FingerprintData("a", 1, 3L))
 
       underTest =
         FingerprintSettingsViewModel.FingerprintSettingsViewModelFactory(
@@ -150,7 +150,7 @@
           )
           .create(FingerprintSettingsViewModel::class.java)
 
-      var authAttempt: FingerprintAuthAttemptViewModel? = null
+      var authAttempt: FingerprintAuthAttemptModel? = null
       val job = launch { underTest.authFlow.take(5).collectLatest { authAttempt = it } }
 
       underTest.shouldAuthenticate(true)
@@ -173,8 +173,8 @@
           FingerprintSensorType.POWER_BUTTON
         )
       fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
-        mutableListOf(FingerprintViewModel("a", 1, 3L))
-      val success = FingerprintAuthAttemptViewModel.Success(1)
+        mutableListOf(FingerprintData("a", 1, 3L))
+      val success = FingerprintAuthAttemptModel.Success(1)
       fakeFingerprintManagerInteractor.authenticateAttempt = success
 
       underTest =
@@ -186,7 +186,7 @@
           )
           .create(FingerprintSettingsViewModel::class.java)
 
-      var authAttempt: FingerprintAuthAttemptViewModel? = null
+      var authAttempt: FingerprintAuthAttemptModel? = null
 
       val job = launch { underTest.authFlow.take(5).collectLatest { authAttempt = it } }
       underTest.shouldAuthenticate(true)
@@ -200,7 +200,7 @@
 
   @Test
   fun deleteDialog_showAndDismiss() = runTest {
-    val fingerprintToDelete = FingerprintViewModel("A", 1, 10L)
+    val fingerprintToDelete = FingerprintData("A", 1, 10L)
     fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
       mutableListOf(fingerprintToDelete)
 
@@ -236,7 +236,7 @@
 
   @Test
   fun renameDialog_showAndDismiss() = runTest {
-    val fingerprintToRename = FingerprintViewModel("World", 1, 10L)
+    val fingerprintToRename = FingerprintData("World", 1, 10L)
     fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
       mutableListOf(fingerprintToRename)
 
@@ -274,7 +274,7 @@
 
   @Test
   fun testTwoDialogsCannotShow_atSameTime() = runTest {
-    val fingerprintToDelete = FingerprintViewModel("A", 1, 10L)
+    val fingerprintToDelete = FingerprintData("A", 1, 10L)
     fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
       mutableListOf(fingerprintToDelete)
 
@@ -311,9 +311,9 @@
   fun authenticatePauses_whenPaused() =
     testScope.runTest {
       val fingerprints = setupAuth()
-      val success = FingerprintAuthAttemptViewModel.Success(fingerprints.first().fingerId)
+      val success = FingerprintAuthAttemptModel.Success(fingerprints.first().fingerId)
 
-      var authAttempt: FingerprintAuthAttemptViewModel? = null
+      var authAttempt: FingerprintAuthAttemptModel? = null
 
       val job = launch { underTest.authFlow.take(5).collectLatest { authAttempt = it } }
 
@@ -325,7 +325,7 @@
       assertThat(authAttempt).isEqualTo(success)
 
       fakeFingerprintManagerInteractor.authenticateAttempt =
-        FingerprintAuthAttemptViewModel.Success(10)
+        FingerprintAuthAttemptModel.Success(10)
       underTest.shouldAuthenticate(false)
       advanceTimeBy(400)
       runCurrent()
@@ -340,7 +340,7 @@
     testScope.runTest {
       val fingerprints = setupAuth()
 
-      var authAttempt: FingerprintAuthAttemptViewModel? = null
+      var authAttempt: FingerprintAuthAttemptModel? = null
       val job = launch { underTest.authFlow.take(1).collectLatest { authAttempt = it } }
       underTest.shouldAuthenticate(true)
       navigationViewModel.onConfirmDevice(true, 10L)
@@ -357,7 +357,7 @@
     testScope.runTest {
       val fingerprints = setupAuth()
 
-      var authAttempt: FingerprintAuthAttemptViewModel? = null
+      var authAttempt: FingerprintAuthAttemptModel? = null
       val job = launch { underTest.authFlow.take(1).collectLatest { authAttempt = it } }
       underTest.shouldAuthenticate(true)
       navigationViewModel.onConfirmDevice(true, 10L)
@@ -370,7 +370,7 @@
       assertThat(authAttempt).isEqualTo(null)
     }
 
-  private fun setupAuth(): MutableList<FingerprintViewModel> {
+  private fun setupAuth(): MutableList<FingerprintData> {
     fakeFingerprintManagerInteractor.sensorProp =
       FingerprintSensor(
         0 /* sensorId */,
@@ -379,9 +379,9 @@
         FingerprintSensorType.POWER_BUTTON
       )
     val fingerprints =
-      mutableListOf(FingerprintViewModel("a", 1, 3L), FingerprintViewModel("b", 2, 5L))
+      mutableListOf(FingerprintData("a", 1, 3L), FingerprintData("b", 2, 5L))
     fakeFingerprintManagerInteractor.enrolledFingerprintsInternal = fingerprints
-    val success = FingerprintAuthAttemptViewModel.Success(1)
+    val success = FingerprintAuthAttemptModel.Success(1)
     fakeFingerprintManagerInteractor.authenticateAttempt = success
 
     underTest =
diff --git a/tests/unit/src/com/android/settings/localepicker/LocaleHelperPreferenceControllerTest.java b/tests/unit/src/com/android/settings/localepicker/LocaleHelperPreferenceControllerTest.java
index 31b8e79..5ac367e 100644
--- a/tests/unit/src/com/android/settings/localepicker/LocaleHelperPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/localepicker/LocaleHelperPreferenceControllerTest.java
@@ -19,12 +19,14 @@
 import static org.mockito.Mockito.anyString;
 import static org.mockito.Mockito.verify;
 
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.os.Looper;
 
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 
+import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settingslib.widget.FooterPreference;
 
 import org.junit.Before;
@@ -37,6 +39,7 @@
 public class LocaleHelperPreferenceControllerTest {
     private Context mContext;
     private LocaleHelperPreferenceController mLocaleHelperPreferenceController;
+    private FakeFeatureFactory mFeatureFactory;
 
     @Mock
     private FooterPreference mMockFooterPreference;
@@ -49,11 +52,16 @@
         }
         mContext = ApplicationProvider.getApplicationContext();
         mLocaleHelperPreferenceController = new LocaleHelperPreferenceController(mContext);
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
     }
 
     @Test
     public void updateFooterPreference_setFooterPreference_hasClickAction() {
         mLocaleHelperPreferenceController.updateFooterPreference(mMockFooterPreference);
         verify(mMockFooterPreference).setLearnMoreText(anyString());
+        mMockFooterPreference.setLearnMoreAction(v -> {
+            verify(mFeatureFactory.metricsFeatureProvider).action(
+                    mContext, SettingsEnums.ACTION_LANGUAGES_LEARN_MORE);
+        });
     }
 }
diff --git a/tests/unit/src/com/android/settings/network/NetworkProviderCallsSmsControllerTest.java b/tests/unit/src/com/android/settings/network/NetworkProviderCallsSmsControllerTest.java
deleted file mode 100644
index 51aecc5..0000000
--- a/tests/unit/src/com/android/settings/network/NetworkProviderCallsSmsControllerTest.java
+++ /dev/null
@@ -1,360 +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;
-
-import static androidx.lifecycle.Lifecycle.Event;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.os.Looper;
-import android.telephony.SubscriptionInfo;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.text.TextUtils;
-
-import androidx.lifecycle.LifecycleOwner;
-import androidx.lifecycle.LifecycleRegistry;
-import androidx.preference.PreferenceManager;
-import androidx.preference.PreferenceScreen;
-import androidx.test.annotation.UiThreadTest;
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import com.android.settings.testutils.ResourcesUtils;
-import com.android.settingslib.RestrictedPreference;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-
-import java.util.ArrayList;
-import java.util.List;
-
-
-@RunWith(AndroidJUnit4.class)
-public class NetworkProviderCallsSmsControllerTest {
-
-    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 KEY_PREFERENCE_CALLS_SMS = "calls_and_sms";
-    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;
-    @Mock
-    private SubscriptionInfoEntity mSubInfo2;
-    @Mock
-    private Lifecycle mLifecycle;
-    @Mock
-    private LifecycleOwner mLifecycleOwner;
-
-    private LifecycleRegistry mLifecycleRegistry;
-    private MockNetworkProviderCallsSmsController mController;
-    private PreferenceManager mPreferenceManager;
-    private PreferenceScreen mPreferenceScreen;
-    private RestrictedPreference mPreference;
-    private Context mContext;
-    private List<SubscriptionInfoEntity> mSubscriptionInfoEntityList = new ArrayList<>();
-
-    /**
-     * Mock the NetworkProviderCallsSmsController that allows one to set a default voice
-     * and SMS subscription ID.
-     */
-    private class MockNetworkProviderCallsSmsController extends
-            com.android.settings.network.NetworkProviderCallsSmsController {
-        public MockNetworkProviderCallsSmsController(Context context, Lifecycle lifecycle,
-                LifecycleOwner lifecycleOwner) {
-            super(context, lifecycle, lifecycleOwner);
-        }
-
-        private List<SubscriptionInfoEntity> mSubscriptionInfoEntity;
-        private boolean mIsInService;
-        private int mDefaultVoiceSubscriptionId;
-        private int mDefaultSmsSubscriptionId;
-
-        @Override
-        protected List<SubscriptionInfoEntity> getSubscriptionInfoList() {
-            return mSubscriptionInfoEntity;
-        }
-
-        public void setSubscriptionInfoList(List<SubscriptionInfoEntity> list) {
-            mSubscriptionInfoEntity = list;
-        }
-
-        @Override
-        protected boolean isInService(int subId) {
-            return mIsInService;
-        }
-
-        public void setInService(boolean inService) {
-            mIsInService = inService;
-        }
-
-        @Override
-        protected int getDefaultVoiceSubscriptionId() {
-            return mDefaultVoiceSubscriptionId;
-        }
-
-        @Override
-        protected int getDefaultSmsSubscriptionId() {
-            return mDefaultSmsSubscriptionId;
-        }
-
-        public void setDefaultVoiceSubscriptionId(int subscriptionId) {
-            mDefaultVoiceSubscriptionId = subscriptionId;
-        }
-
-        public void setDefaultSmsSubscriptionId(int subscriptionId) {
-            mDefaultSmsSubscriptionId = subscriptionId;
-        }
-    }
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = spy(ApplicationProvider.getApplicationContext());
-
-        if (Looper.myLooper() == null) {
-            Looper.prepare();
-        }
-
-        mPreferenceManager = new PreferenceManager(mContext);
-        mPreferenceScreen = mPreferenceManager.createPreferenceScreen(mContext);
-        mPreference = new RestrictedPreference(mContext);
-        mPreference.setKey(KEY_PREFERENCE_CALLS_SMS);
-        mController = new MockNetworkProviderCallsSmsController(mContext, mLifecycle,
-                mLifecycleOwner);
-        mController.setInService(true);
-        mLifecycleRegistry = new LifecycleRegistry(mLifecycleOwner);
-        when(mLifecycleOwner.getLifecycle()).thenReturn(mLifecycleRegistry);
-    }
-
-    private void displayPreferenceWithLifecycle() {
-        mLifecycleRegistry.addObserver(mController);
-        mPreferenceScreen.addPreference(mPreference);
-        mController.displayPreference(mPreferenceScreen);
-        mLifecycleRegistry.handleLifecycleEvent(Event.ON_RESUME);
-    }
-
-    private String setSummaryResId(String resName) {
-        return ResourcesUtils.getResourcesString(mContext, resName);
-    }
-
-    @Test
-    @UiThreadTest
-    public void getSummary_noSim_returnNoSim() {
-        mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
-        displayPreferenceWithLifecycle();
-
-        assertTrue(TextUtils.equals(mController.getSummary(),
-                setSummaryResId("calls_sms_no_sim")));
-    }
-
-    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);
-    }
-
-    @Test
-    @UiThreadTest
-    public void getSummary_invalidSubId_returnUnavailable() {
-
-        mSubInfo1 = setupSubscriptionInfoEntity(INVALID_SUB_ID,
-                SubscriptionManager.INVALID_SIM_SLOT_INDEX, TelephonyManager.UNKNOWN_CARRIER_ID,
-                DISPLAY_NAME_1, SUB_MCC_1, SUB_MNC_1, SUB_COUNTRY_ISO_1,
-                TelephonyManager.UNINITIALIZED_CARD_ID, false, true, true);
-        mSubscriptionInfoEntityList.add(mSubInfo1);
-        mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
-        displayPreferenceWithLifecycle();
-
-        final StringBuilder summary = new StringBuilder();
-        summary.append(DISPLAY_NAME_1)
-                .append(" (")
-                .append(setSummaryResId("calls_sms_temp_unavailable"))
-                .append(")");
-
-        assertTrue(TextUtils.equals(mController.getSummary(), summary));
-    }
-
-    @Test
-    @UiThreadTest
-    public void getSummary_oneIsInvalidSubIdTwoIsValidSubId_returnOneIsUnavailable() {
-
-        mSubInfo1 = setupSubscriptionInfoEntity(INVALID_SUB_ID,
-                SubscriptionManager.INVALID_SIM_SLOT_INDEX, TelephonyManager.UNKNOWN_CARRIER_ID,
-                DISPLAY_NAME_1, SUB_MCC_1, SUB_MNC_1, SUB_COUNTRY_ISO_1,
-                TelephonyManager.UNINITIALIZED_CARD_ID, false, 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);
-        mSubscriptionInfoEntityList.add(mSubInfo1);
-        mSubscriptionInfoEntityList.add(mSubInfo2);
-        mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
-        displayPreferenceWithLifecycle();
-
-        final StringBuilder summary = new StringBuilder();
-        summary.append(DISPLAY_NAME_1)
-                .append(" (")
-                .append(setSummaryResId("calls_sms_unavailable"))
-                .append(")")
-                .append(", ")
-                .append(DISPLAY_NAME_2);
-
-        assertTrue(TextUtils.equals(mController.getSummary(), summary));
-    }
-
-    @Test
-    @UiThreadTest
-    public void getSummary_oneSubscription_returnDisplayName() {
-
-        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
-                SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true);
-        mSubscriptionInfoEntityList.add(mSubInfo1);
-        mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
-        displayPreferenceWithLifecycle();
-
-        assertThat(mPreference.getSummary()).isEqualTo(DISPLAY_NAME_1);
-    }
-
-    @Test
-    @UiThreadTest
-    public void getSummary_allSubscriptionsHaveNoPreferredStatus_returnDisplayName() {
-
-        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);
-        mSubscriptionInfoEntityList.add(mSubInfo1);
-        mSubscriptionInfoEntityList.add(mSubInfo2);
-        mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
-        displayPreferenceWithLifecycle();
-
-        final StringBuilder summary = new StringBuilder();
-        summary.append(DISPLAY_NAME_1).append(", ").append(DISPLAY_NAME_2);
-
-        assertTrue(TextUtils.equals(mController.getSummary(), summary));
-    }
-
-    @Test
-    @UiThreadTest
-    public void getSummary_oneSubscriptionsIsCallPreferredTwoIsSmsPreferred_returnStatus() {
-
-        mController.setDefaultVoiceSubscriptionId(Integer.parseInt(SUB_ID_1));
-        mController.setDefaultSmsSubscriptionId(Integer.parseInt(SUB_ID_2));
-
-        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);
-        mSubscriptionInfoEntityList.add(mSubInfo1);
-        mSubscriptionInfoEntityList.add(mSubInfo2);
-        mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
-        displayPreferenceWithLifecycle();
-
-        final StringBuilder summary = new StringBuilder();
-        summary.append(DISPLAY_NAME_1)
-                .append(" (")
-                .append(setSummaryResId("calls_sms_calls_preferred"))
-                .append(")")
-                .append(", ")
-                .append(DISPLAY_NAME_2)
-                .append(" (")
-                .append(setSummaryResId("calls_sms_sms_preferred"))
-                .append(")");
-
-        assertTrue(TextUtils.equals(mController.getSummary(), summary));
-    }
-
-    @Test
-    @UiThreadTest
-    public void getSummary_oneSubscriptionsIsSmsPreferredTwoIsCallPreferred_returnStatus() {
-
-        mController.setDefaultSmsSubscriptionId(Integer.parseInt(SUB_ID_1));
-        mController.setDefaultVoiceSubscriptionId(Integer.parseInt(SUB_ID_2));
-
-        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, 2, 2, DISPLAY_NAME_2, SUB_MCC_2,
-                SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true);
-        mSubscriptionInfoEntityList.add(mSubInfo1);
-        mSubscriptionInfoEntityList.add(mSubInfo2);
-        mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
-        displayPreferenceWithLifecycle();
-
-        final StringBuilder summary = new StringBuilder();
-        summary.append(DISPLAY_NAME_1)
-                .append(" (")
-                .append(setSummaryResId("calls_sms_sms_preferred"))
-                .append(")")
-                .append(", ")
-                .append(DISPLAY_NAME_2)
-                .append(" (")
-                .append(setSummaryResId("calls_sms_calls_preferred"))
-                .append(")");
-
-        assertTrue(TextUtils.equals(mController.getSummary(), summary));
-    }
-
-    @Test
-    @UiThreadTest
-    public void getSummary_oneSubscriptionsIsSmsPreferredAndIsCallPreferred_returnStatus() {
-
-        mController.setDefaultSmsSubscriptionId(Integer.parseInt(SUB_ID_1));
-        mController.setDefaultVoiceSubscriptionId(Integer.parseInt(SUB_ID_1));
-
-        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);
-        mSubscriptionInfoEntityList.add(mSubInfo1);
-        mSubscriptionInfoEntityList.add(mSubInfo2);
-        mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
-        displayPreferenceWithLifecycle();
-
-        final StringBuilder summary = new StringBuilder();
-        summary.append(DISPLAY_NAME_1)
-                .append(" (")
-                .append(setSummaryResId("calls_sms_preferred"))
-                .append(")")
-                .append(", ")
-                .append(DISPLAY_NAME_2);
-
-        assertTrue(TextUtils.equals(mController.getSummary(), summary));
-    }
-}
diff --git a/tests/unit/src/com/android/settings/network/NetworkProviderSimListControllerTest.java b/tests/unit/src/com/android/settings/network/NetworkProviderSimListControllerTest.java
index c4e0f64..a98f83b 100644
--- a/tests/unit/src/com/android/settings/network/NetworkProviderSimListControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/NetworkProviderSimListControllerTest.java
@@ -16,19 +16,16 @@
 
 package com.android.settings.network;
 
-import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
-import static com.google.common.truth.Truth.assertThat;
-
 import static androidx.lifecycle.Lifecycle.Event;
 
+import static com.google.common.truth.Truth.assertThat;
+
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.when;
 
 import android.content.Context;
-import android.graphics.drawable.Drawable;
 import android.os.Looper;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
@@ -36,18 +33,15 @@
 
 import androidx.lifecycle.LifecycleOwner;
 import androidx.lifecycle.LifecycleRegistry;
-import androidx.preference.PreferenceManager;
-import androidx.preference.Preference;
 import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
 import androidx.test.annotation.UiThreadTest;
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 
-import com.android.settings.R;
 import com.android.settings.testutils.ResourcesUtils;
 import com.android.settingslib.RestrictedPreference;
-import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
 
 import org.junit.Before;
@@ -83,8 +77,6 @@
     @Mock
     private SubscriptionManager mSubscriptionManager;
     @Mock
-    private Lifecycle mLifecycle;
-    @Mock
     private LifecycleOwner mLifecycleOwner;
     private LifecycleRegistry mLifecycleRegistry;
 
@@ -100,12 +92,10 @@
      * Mock the NetworkProviderSimListController that allows one to set a default voice,
      * SMS and mobile data subscription ID.
      */
-    @SuppressWarnings("ClassCanBeStatic")
-    private class MockNetworkProviderSimListController extends
-            com.android.settings.network.NetworkProviderSimListController {
-        public MockNetworkProviderSimListController(Context context, Lifecycle lifecycle,
-        LifecycleOwner lifecycleOwner) {
-            super(context, lifecycle, lifecycleOwner);
+    private static class MockNetworkProviderSimListController
+            extends NetworkProviderSimListController {
+        MockNetworkProviderSimListController(Context context, String preferenceKey) {
+            super(context, preferenceKey);
         }
 
         private List<SubscriptionInfoEntity> mSubscriptionInfoEntity;
@@ -136,8 +126,7 @@
         mPreference.setKey(KEY_PREFERENCE_SIM_LIST);
         mPreferenceCategory = new PreferenceCategory(mContext);
         mPreferenceCategory.setKey(KEY_PREFERENCE_CATEGORY_SIM);
-        mController = new MockNetworkProviderSimListController(mContext, mLifecycle,
-                mLifecycleOwner);
+        mController = new MockNetworkProviderSimListController(mContext, "test_key");
         mLifecycleRegistry = new LifecycleRegistry(mLifecycleOwner);
         when(mLifecycleOwner.getLifecycle()).thenReturn(mLifecycleRegistry);
     }
diff --git a/tests/unit/src/com/android/settings/network/NetworkProviderSimsCategoryControllerTest.java b/tests/unit/src/com/android/settings/network/NetworkProviderSimsCategoryControllerTest.java
deleted file mode 100644
index dc17e91..0000000
--- a/tests/unit/src/com/android/settings/network/NetworkProviderSimsCategoryControllerTest.java
+++ /dev/null
@@ -1,152 +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;
-
-import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.junit.Assert.assertEquals;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.os.Looper;
-import android.telephony.SubscriptionInfo;
-import android.telephony.SubscriptionManager;
-
-import com.android.settings.testutils.ResourcesUtils;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-
-import androidx.lifecycle.LifecycleOwner;
-import androidx.preference.PreferenceCategory;
-import androidx.preference.PreferenceManager;
-import androidx.preference.PreferenceScreen;
-import androidx.test.core.app.ApplicationProvider;
-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;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-
-//TODO: Remove NetworkProviderSimsCategoryControllerTest once it is removed in the b/244769887.
-@RunWith(AndroidJUnit4.class)
-public class NetworkProviderSimsCategoryControllerTest {
-
-    private static final String KEY_PREFERENCE_CATEGORY_SIM = "provider_model_sim_category";
-    private static final String SUB_1 = "SUB_1";
-    private static final String SUB_2 = "SUB_2";
-    private static final int SUB_ID_1 = 1;
-    private static final int SUB_ID_2 = 2;
-
-    @Mock
-    private Lifecycle mLifecycle;
-    @Mock
-    private SubscriptionInfo mSubscriptionInfo1;
-    @Mock
-    private SubscriptionInfo mSubscriptionInfo2;
-
-    private Context mContext;
-    private NetworkProviderSimsCategoryController mCategoryController;
-    private PreferenceManager mPreferenceManager;
-    private PreferenceScreen mPreferenceScreen;
-    private PreferenceCategory mPreferenceCategory;
-    private LifecycleOwner mLifecycleOwner;
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-        mContext = spy(ApplicationProvider.getApplicationContext());
-
-        if (Looper.myLooper() == null) {
-            Looper.prepare();
-        }
-
-        mLifecycleOwner = () -> mLifecycle;
-        mPreferenceManager = new PreferenceManager(mContext);
-        mPreferenceScreen = mPreferenceManager.createPreferenceScreen(mContext);
-        mPreferenceCategory = new PreferenceCategory(mContext);
-        mPreferenceCategory.setKey(KEY_PREFERENCE_CATEGORY_SIM);
-        mPreferenceScreen.addPreference(mPreferenceCategory);
-
-        mCategoryController = new NetworkProviderSimsCategoryController(
-                mContext, KEY_PREFERENCE_CATEGORY_SIM, mLifecycle, mLifecycleOwner);
-    }
-
-    @Ignore
-    @Test
-    public void getAvailabilityStatus_returnUnavailable() {
-        SubscriptionUtil.setAvailableSubscriptionsForTesting(new ArrayList<>());
-
-        assertThat(mCategoryController.getAvailabilityStatus()).isEqualTo(
-                CONDITIONALLY_UNAVAILABLE);
-    }
-
-    @Ignore
-    @Test
-    public void displayPreference_isVisible() {
-        setUpSubscriptionInfoForPhysicalSim(SUB_ID_1, SUB_1, mSubscriptionInfo1);
-        SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(mSubscriptionInfo1));
-        mCategoryController.displayPreference(mPreferenceScreen);
-
-        assertEquals(mPreferenceCategory.isVisible(), true);
-    }
-
-    @Ignore
-    @Test
-    public void updateState_setTitle_withTwoPhysicalSims_returnSims() {
-        setUpSubscriptionInfoForPhysicalSim(SUB_ID_1, SUB_1, mSubscriptionInfo1);
-        setUpSubscriptionInfoForPhysicalSim(SUB_ID_2, SUB_2, mSubscriptionInfo2);
-        SubscriptionUtil.setAvailableSubscriptionsForTesting(
-                Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2));
-
-        mCategoryController.displayPreference(mPreferenceScreen);
-        mCategoryController.updateState(mPreferenceCategory);
-
-        assertThat(mPreferenceCategory.getPreferenceCount()).isEqualTo(2);
-        assertThat(mPreferenceCategory.getTitle()).isEqualTo(
-                ResourcesUtils.getResourcesString(mContext, "provider_network_settings_title"));
-    }
-
-    @Ignore
-    @Test
-    public void updateState_setTitle_withOnePhysicalSim_returnSim() {
-        setUpSubscriptionInfoForPhysicalSim(SUB_ID_1, SUB_1, mSubscriptionInfo1);
-        SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(mSubscriptionInfo1));
-
-        mCategoryController.displayPreference(mPreferenceScreen);
-        mCategoryController.updateState(mPreferenceCategory);
-
-        assertThat(mPreferenceCategory.getPreferenceCount()).isEqualTo(1);
-        assertThat(mPreferenceCategory.getTitle()).isEqualTo(
-                ResourcesUtils.getResourcesString(mContext, "sim_category_title"));
-    }
-
-    private void setUpSubscriptionInfoForPhysicalSim(int subId, String displayName,
-            SubscriptionInfo subscriptionInfo) {
-        when(subscriptionInfo.isEmbedded()).thenReturn(false);
-        when(subscriptionInfo.getSubscriptionId()).thenReturn(subId);
-        when(subscriptionInfo.getDisplayName()).thenReturn(displayName);
-    }
-
-}
diff --git a/tests/unit/src/com/android/settings/network/ProviderModelSliceHelperTest.java b/tests/unit/src/com/android/settings/network/ProviderModelSliceHelperTest.java
index 436d37f..2d63c71 100644
--- a/tests/unit/src/com/android/settings/network/ProviderModelSliceHelperTest.java
+++ b/tests/unit/src/com/android/settings/network/ProviderModelSliceHelperTest.java
@@ -42,7 +42,6 @@
 import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
-import android.text.Html;
 
 import androidx.slice.Slice;
 import androidx.slice.builders.ListBuilder;
@@ -56,7 +55,6 @@
 import com.android.wifitrackerlib.WifiEntry;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -166,11 +164,9 @@
         assertThat(testItem).isNull();
     }
 
-    @Ignore
     @Test
     public void createCarrierRow_hasDdsAndActiveNetworkIsNotCellular_verifyTitleAndSummary() {
         String expectDisplayName = "Name1";
-        CharSequence expectedSubtitle = Html.fromHtml("5G", Html.FROM_HTML_MODE_LEGACY);
         String networkType = "5G";
         mockConnections(true, ServiceState.STATE_IN_SERVICE, expectDisplayName,
                 true, true);
@@ -180,19 +176,17 @@
                 networkType);
 
         assertThat(testRowBuild.getTitle()).isEqualTo(expectDisplayName);
-        assertThat(testRowBuild.getSubtitle()).isEqualTo(expectedSubtitle);
+        assertThat(testRowBuild.getSubtitle()).isEqualTo("5G");
     }
 
-    @Ignore
     @Test
     public void createCarrierRow_wifiOnhasDdsAndActiveNetworkIsCellular_verifyTitleAndSummary() {
         String expectDisplayName = "Name1";
         String networkType = "5G";
         String connectedText = ResourcesUtils.getResourcesString(mContext,
                 "mobile_data_connection_active");
-        CharSequence expectedSubtitle = Html.fromHtml(ResourcesUtils.getResourcesString(mContext,
-                "preference_summary_default_combination", connectedText, networkType),
-                Html.FROM_HTML_MODE_LEGACY);
+        CharSequence expectedSubtitle = ResourcesUtils.getResourcesString(mContext,
+                "preference_summary_default_combination", connectedText, networkType);
         mockConnections(true, ServiceState.STATE_IN_SERVICE, expectDisplayName,
                 true, true);
         addNetworkTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
@@ -204,13 +198,11 @@
         assertThat(testRowBuild.getSubtitle()).isEqualTo(expectedSubtitle);
     }
 
-    @Ignore
     @Test
     public void createCarrierRow_noNetworkAvailable_verifyTitleAndSummary() {
         String expectDisplayName = "Name1";
-        CharSequence expectedSubtitle = Html.fromHtml(
-                ResourcesUtils.getResourcesString(mContext, "mobile_data_no_connection"),
-                Html.FROM_HTML_MODE_LEGACY);
+        CharSequence expectedSubtitle =
+                ResourcesUtils.getResourcesString(mContext, "mobile_data_no_connection");
         String networkType = "";
 
         mockConnections(true, ServiceState.STATE_OUT_OF_SERVICE, expectDisplayName,
diff --git a/tests/unit/src/com/android/settings/network/SubscriptionsPreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/SubscriptionsPreferenceControllerTest.java
index c4abdd1..bca12c1 100644
--- a/tests/unit/src/com/android/settings/network/SubscriptionsPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/SubscriptionsPreferenceControllerTest.java
@@ -53,7 +53,6 @@
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyDisplayInfo;
 import android.telephony.TelephonyManager;
-import android.text.Html;
 
 import androidx.lifecycle.LifecycleOwner;
 import androidx.lifecycle.LifecycleRegistry;
@@ -266,8 +265,6 @@
     @Test
     @UiThreadTest
     public void displayPreference_providerAndHasMultiSimAndActive_connectedAndRat() {
-        final CharSequence expectedSummary =
-                Html.fromHtml("Connected / 5G", Html.FROM_HTML_MODE_LEGACY);
         final String networkType = "5G";
         final List<SubscriptionInfo> sub = setupMockSubscriptions(2);
         doReturn(sub.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo();
@@ -281,14 +278,12 @@
         mController.onResume();
         mController.displayPreference(mPreferenceScreen);
 
-        assertThat(mPreferenceCategory.getPreference(0).getSummary()).isEqualTo(expectedSummary);
+        assertThat(mPreferenceCategory.getPreference(0).getSummary()).isEqualTo("Connected / 5G");
     }
 
     @Test
     @UiThreadTest
     public void displayPreference_providerAndHasMultiSimAndActiveCarrierWifi_connectedAndWPlus() {
-        final CharSequence expectedSummary =
-                Html.fromHtml("Connected / W+", Html.FROM_HTML_MODE_LEGACY);
         final String networkType = "W+";
         final List<SubscriptionInfo> sub = setupMockSubscriptions(2);
         doReturn(sub.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo();
@@ -302,7 +297,7 @@
         mController.onResume();
         mController.displayPreference(mPreferenceScreen);
 
-        assertThat(mPreferenceCategory.getPreference(0).getSummary()).isEqualTo(expectedSummary);
+        assertThat(mPreferenceCategory.getPreference(0).getSummary()).isEqualTo("Connected / W+");
     }
 
     @Test
@@ -310,8 +305,6 @@
     public void displayPreference_providerAndHasMultiSimButMobileDataOff_notAutoConnect() {
         final String dataOffSummary =
                 ResourcesUtils.getResourcesString(mContext, "mobile_data_off_summary");
-        final CharSequence expectedSummary =
-                Html.fromHtml(dataOffSummary, Html.FROM_HTML_MODE_LEGACY);
         final String networkType = "5G";
         final List<SubscriptionInfo> sub = setupMockSubscriptions(2);
         doReturn(sub.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo();
@@ -324,14 +317,12 @@
         mController.onResume();
         mController.displayPreference(mPreferenceScreen);
 
-        assertThat(mPreferenceCategory.getPreference(0).getSummary())
-            .isEqualTo(expectedSummary.toString());
+        assertThat(mPreferenceCategory.getPreference(0).getSummary()).isEqualTo(dataOffSummary);
     }
 
     @Test
     @UiThreadTest
     public void displayPreference_providerAndHasMultiSimAndNotActive_showRatOnly() {
-        final CharSequence expectedSummary = Html.fromHtml("5G", Html.FROM_HTML_MODE_LEGACY);
         final String networkType = "5G";
         final List<SubscriptionInfo> sub = setupMockSubscriptions(2);
         doReturn(sub.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo();
@@ -345,7 +336,7 @@
         mController.onResume();
         mController.displayPreference(mPreferenceScreen);
 
-        assertThat(mPreferenceCategory.getPreference(0).getSummary()).isEqualTo(expectedSummary);
+        assertThat(mPreferenceCategory.getPreference(0).getSummary()).isEqualTo(networkType);
     }
 
     @Test
@@ -362,8 +353,6 @@
     @Test
     @UiThreadTest
     public void onTelephonyDisplayInfoChanged_providerAndHasMultiSimAndActive_connectedAndRat() {
-        final CharSequence expectedSummary =
-                Html.fromHtml("Connected / LTE", Html.FROM_HTML_MODE_LEGACY);
         final String networkType = "LTE";
         final List<SubscriptionInfo> sub = setupMockSubscriptions(2);
         final TelephonyDisplayInfo telephonyDisplayInfo =
@@ -383,14 +372,12 @@
         mController.onTelephonyDisplayInfoChanged(sub.get(0).getSubscriptionId(),
                 telephonyDisplayInfo);
 
-        assertThat(mPreferenceCategory.getPreference(0).getSummary()).isEqualTo(expectedSummary);
+        assertThat(mPreferenceCategory.getPreference(0).getSummary()).isEqualTo("Connected / LTE");
     }
 
     @Test
     @UiThreadTest
     public void onTelephonyDisplayInfoChanged_providerAndHasMultiSimAndNotActive_showRat() {
-        final CharSequence expectedSummary =
-                Html.fromHtml("LTE", Html.FROM_HTML_MODE_LEGACY);
         final String networkType = "LTE";
         final List<SubscriptionInfo> sub = setupMockSubscriptions(2);
         final TelephonyDisplayInfo telephonyDisplayInfo =
@@ -409,7 +396,7 @@
         mController.onTelephonyDisplayInfoChanged(sub.get(0).getSubscriptionId(),
                 telephonyDisplayInfo);
 
-        assertThat(mPreferenceCategory.getPreference(0).getSummary()).isEqualTo(expectedSummary);
+        assertThat(mPreferenceCategory.getPreference(0).getSummary()).isEqualTo(networkType);
     }
 
     @Test
@@ -417,8 +404,6 @@
     public void onTelephonyDisplayInfoChanged_providerAndHasMultiSimAndOutOfService_noConnection() {
         final String noConnectionSummary =
                 ResourcesUtils.getResourcesString(mContext, "mobile_data_no_connection");
-        final CharSequence expectedSummary =
-                Html.fromHtml(noConnectionSummary, Html.FROM_HTML_MODE_LEGACY);
         final String networkType = "LTE";
         final List<SubscriptionInfo> sub = setupMockSubscriptions(2);
         final TelephonyDisplayInfo telephonyDisplayInfo =
@@ -437,7 +422,8 @@
         mController.onTelephonyDisplayInfoChanged(sub.get(0).getSubscriptionId(),
                 telephonyDisplayInfo);
 
-        assertThat(mPreferenceCategory.getPreference(0).getSummary()).isEqualTo(expectedSummary);
+        assertThat(mPreferenceCategory.getPreference(0).getSummary())
+                .isEqualTo(noConnectionSummary);
     }
 
     @Test
diff --git a/tests/unit/src/com/android/settings/network/telephony/DeleteSimProfilePreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/DeleteSimProfilePreferenceControllerTest.java
deleted file mode 100644
index 5f0bdd6..0000000
--- a/tests/unit/src/com/android/settings/network/telephony/DeleteSimProfilePreferenceControllerTest.java
+++ /dev/null
@@ -1,139 +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.ArgumentMatchers.any;
-import static org.mockito.Mockito.doNothing;
-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.Context;
-import android.content.Intent;
-import android.os.Looper;
-import android.provider.Settings;
-import android.telephony.SubscriptionInfo;
-
-import androidx.fragment.app.Fragment;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceManager;
-import androidx.preference.PreferenceScreen;
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import com.android.settings.network.SubscriptionUtil;
-import com.android.settings.security.ConfirmSimDeletionPreferenceController;
-
-import org.junit.After;
-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 java.util.ArrayList;
-import java.util.Arrays;
-
-@RunWith(AndroidJUnit4.class)
-public class DeleteSimProfilePreferenceControllerTest {
-    private static final String PREF_KEY = "delete_profile_key";
-    private static final int REQUEST_CODE = 4321;
-    private static final int SUB_ID = 1234;
-    private static final int OTHER_ID = 5678;
-
-    @Mock
-    private Fragment mFragment;
-    @Mock
-    private SubscriptionInfo mSubscriptionInfo;
-
-    private Context mContext;
-    private PreferenceScreen mScreen;
-    private Preference mPreference;
-    private DeleteSimProfilePreferenceController mController;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = spy(ApplicationProvider.getApplicationContext());
-
-        SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(mSubscriptionInfo));
-        when(mSubscriptionInfo.getSubscriptionId()).thenReturn(SUB_ID);
-        when(mSubscriptionInfo.isEmbedded()).thenReturn(true);
-
-        if (Looper.myLooper() == null) {
-            Looper.prepare();
-        }
-        PreferenceManager preferenceManager = new PreferenceManager(mContext);
-        mScreen = preferenceManager.createPreferenceScreen(mContext);
-        mPreference = new Preference(mContext);
-        mPreference.setKey(PREF_KEY);
-        mScreen.addPreference(mPreference);
-
-        mController = new DeleteSimProfilePreferenceController(mContext, PREF_KEY);
-    }
-
-    @After
-    public void tearDown() {
-        SubscriptionUtil.setAvailableSubscriptionsForTesting(null);
-    }
-
-    @Test
-    public void getAvailabilityStatus_noSubs_notAvailable() {
-        SubscriptionUtil.setAvailableSubscriptionsForTesting(new ArrayList<>());
-        mController.init(SUB_ID, mFragment, REQUEST_CODE);
-        assertThat(mController.isAvailable()).isFalse();
-    }
-
-    @Test
-    public void getAvailabilityStatus_physicalSim_notAvailable() {
-        when(mSubscriptionInfo.isEmbedded()).thenReturn(false);
-        mController.init(SUB_ID, mFragment, REQUEST_CODE);
-        assertThat(mController.isAvailable()).isFalse();
-    }
-
-    @Test
-    public void getAvailabilityStatus_unknownSim_notAvailable() {
-        when(mSubscriptionInfo.getSubscriptionId()).thenReturn(OTHER_ID);
-        mController.init(SUB_ID, mFragment, REQUEST_CODE);
-        assertThat(mController.isAvailable()).isFalse();
-    }
-
-    @Test
-    public void getAvailabilityStatus_knownEsim_isAvailable() {
-        mController.init(SUB_ID, mFragment, REQUEST_CODE);
-        assertThat(mController.isAvailable()).isTrue();
-    }
-
-    @Test
-    public void onPreferenceClick_startsIntent() {
-        mController.init(SUB_ID, mFragment, REQUEST_CODE);
-        mController.displayPreference(mScreen);
-        // turn off confirmation before click
-        Settings.Global.putInt(mContext.getContentResolver(),
-                ConfirmSimDeletionPreferenceController.KEY_CONFIRM_SIM_DELETION, 0);
-        final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
-        doNothing().when(mContext).startActivity(intentCaptor.capture());
-
-        mController.handlePreferenceTreeClick(mPreference);
-
-        verify(mContext, times(1)).startActivity(any());
-    }
-}
diff --git a/tests/unit/src/com/android/settings/network/telephony/Enable2gPreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/Enable2gPreferenceControllerTest.java
index 22f2d3a..962a33b 100644
--- a/tests/unit/src/com/android/settings/network/telephony/Enable2gPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/telephony/Enable2gPreferenceControllerTest.java
@@ -29,19 +29,23 @@
 import android.content.Context;
 import android.os.Looper;
 import android.os.PersistableBundle;
+import android.platform.test.flag.junit.SetFlagsRule;
 import android.telephony.CarrierConfigManager;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 
+import androidx.preference.Preference;
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 
+import com.android.settings.flags.Flags;
 import com.android.settings.network.CarrierConfigCache;
 import com.android.settingslib.RestrictedSwitchPreference;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -49,6 +53,8 @@
 
 @RunWith(AndroidJUnit4.class)
 public final class Enable2gPreferenceControllerTest {
+    @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
     private static final int SUB_ID = 2;
     private static final String PREFERENCE_KEY = "TEST_2G_PREFERENCE";
 
@@ -103,30 +109,9 @@
     }
 
     @Test
-    public void getAvailabilityStatus_hideEnable2g_returnUnavailable() {
-        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_HIDE_ENABLE_2G,
-                true);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
-    }
-
-    @Test
-    public void getAvailabilityStatus_nullCarrierConfig_returnUnavailable() {
-        doReturn(true).when(mTelephonyManager).isRadioInterfaceCapabilitySupported(
-                mTelephonyManager.CAPABILITY_USES_ALLOWED_NETWORK_TYPES_BITMASK);
-        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_HIDE_ENABLE_2G,
-                false);
-        doReturn(null).when(mCarrierConfigCache).getConfigForSubId(SUB_ID);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
-    }
-
-    @Test
     public void getAvailabilityStatus_capabilityNotSupported_returnUnavailable() {
         doReturn(false).when(mTelephonyManager).isRadioInterfaceCapabilitySupported(
                 mTelephonyManager.CAPABILITY_USES_ALLOWED_NETWORK_TYPES_BITMASK);
-        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_HIDE_ENABLE_2G,
-                false);
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
     }
@@ -135,8 +120,6 @@
     public void getAvailabilityStatus_returnAvailable() {
         doReturn(true).when(mTelephonyManager).isRadioInterfaceCapabilitySupported(
                 mTelephonyManager.CAPABILITY_USES_ALLOWED_NETWORK_TYPES_BITMASK);
-        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_HIDE_ENABLE_2G,
-                false);
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
     }
@@ -160,15 +143,9 @@
     }
 
     @Test
-    public void onPreferenceChange_update() {
+    public void setChecked_disable2G() {
         when2gIsEnabledForReasonEnable2g();
 
-        // Setup state to allow disabling
-        doReturn(true).when(mTelephonyManager).isRadioInterfaceCapabilitySupported(
-                mTelephonyManager.CAPABILITY_USES_ALLOWED_NETWORK_TYPES_BITMASK);
-        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_HIDE_ENABLE_2G,
-                false);
-
         // Disable 2G
         boolean changed = mController.setChecked(false);
         assertThat(changed).isEqualTo(true);
@@ -201,6 +178,43 @@
         assertThat(mController.isChecked()).isTrue();
     }
 
+    @Test
+    public void updateState_carrierDisablementSupported_carrierHidesToggle() {
+        mSetFlagsRule.disableFlags(Flags.FLAG_REMOVE_KEY_HIDE_ENABLE_2G);
+        when2gIsDisabledByAdmin(false);
+        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_HIDE_ENABLE_2G, true);
+        mPreference.setEnabled(true);
+
+        mController.updateState((Preference) mPreference);
+
+        assertThat(mPreference.isEnabled()).isFalse();
+    }
+
+    @Test
+    public void updateState_carrierDisablementSupported_carrierShowsToggle() {
+        mSetFlagsRule.disableFlags(Flags.FLAG_REMOVE_KEY_HIDE_ENABLE_2G);
+        when2gIsDisabledByAdmin(false);
+        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_HIDE_ENABLE_2G, false);
+        mPreference.setEnabled(true);
+
+        mController.updateState((Preference) mPreference);
+
+        assertThat(mPreference.isEnabled()).isTrue();
+    }
+
+    @Test
+    public void updateState_carrierDisablementRemoved() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_REMOVE_KEY_HIDE_ENABLE_2G);
+        mPreference.setEnabled(true);
+        when2gIsDisabledByAdmin(false);
+        // Set the config, so that we can later assert it was ignored
+        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_HIDE_ENABLE_2G, true);
+
+        mController.updateState((Preference) mPreference);
+
+        assertThat(mPreference.isEnabled()).isTrue();
+    }
+
     private void when2gIsEnabledForReasonEnable2g() {
         when(mTelephonyManager.getAllowedNetworkTypesForReason(
                 TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_ENABLE_2G)).thenReturn(
diff --git a/tests/unit/src/com/android/settings/network/EnabledNetworkModePreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java
similarity index 96%
rename from tests/unit/src/com/android/settings/network/EnabledNetworkModePreferenceControllerTest.java
rename to tests/unit/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java
index 7f170b5..1b337ca 100644
--- a/tests/unit/src/com/android/settings/network/EnabledNetworkModePreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2021 The Android Open Source Project
+ * 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.
@@ -46,6 +46,7 @@
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 
+import androidx.fragment.app.FragmentManager;
 import androidx.lifecycle.LifecycleOwner;
 import androidx.preference.ListPreference;
 import androidx.preference.PreferenceManager;
@@ -64,6 +65,8 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
+import java.util.Collections;
+
 @RunWith(AndroidJUnit4.class)
 public class EnabledNetworkModePreferenceControllerTest {
     private static final int SUB_ID = 2;
@@ -80,6 +83,8 @@
     private CarrierConfigCache mCarrierConfigCache;
     @Mock
     private ServiceState mServiceState;
+    @Mock
+    private FragmentManager mFragmentManager;
 
     private PersistableBundle mPersistableBundle;
     private EnabledNetworkModePreferenceController mController;
@@ -111,7 +116,8 @@
         mController = new EnabledNetworkModePreferenceController(mContext, KEY);
         mockAllowedNetworkTypes(ALLOWED_ALL_NETWORK_TYPE);
         mockAccessFamily(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA);
-        mController.init(SUB_ID);
+        when(mFragmentManager.getFragments()).thenReturn(Collections.emptyList());
+        mController.init(SUB_ID, mFragmentManager);
         mPreference.setKey(mController.getPreferenceKey());
     }
 
@@ -205,7 +211,7 @@
     public void updateState_5gWorldPhone_GlobalHasNr() {
         mockAllowedNetworkTypes(ALLOWED_ALL_NETWORK_TYPE);
         mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
-        mController.init(SUB_ID);
+        mController.init(SUB_ID, mFragmentManager);
         mPersistableBundle.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
 
         mController.updateState(mPreference);
@@ -221,7 +227,7 @@
         mockAllowedNetworkTypes(ALLOWED_ALL_NETWORK_TYPE);
         mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
         mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
-        mController.init(SUB_ID);
+        mController.init(SUB_ID, mFragmentManager);
 
         // NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA = NR | LTE | RAF_TD_SCDMA | GSM | WCDMA
         when(mTelephonyManager.getAllowedNetworkTypesForReason(
@@ -241,7 +247,7 @@
         mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
         mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
         mockAllowedNetworkTypes(DISABLED_5G_NETWORK_TYPE);
-        mController.init(SUB_ID);
+        mController.init(SUB_ID, mFragmentManager);
 
         // NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA = NR | LTE | RAF_TD_SCDMA | GSM | WCDMA
         when(mTelephonyManager.getAllowedNetworkTypesForReason(
@@ -261,7 +267,7 @@
         mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
         mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
         mockAllowedNetworkTypes(DISABLED_5G_NETWORK_TYPE);
-        mController.init(SUB_ID);
+        mController.init(SUB_ID, mFragmentManager);
 
         // NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA = NR | LTE | RAF_TD_SCDMA | GSM | WCDMA
         when(mTelephonyManager.getAllowedNetworkTypesForReason(
@@ -281,7 +287,7 @@
         mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
         mockAllowedNetworkTypes(DISABLED_5G_NETWORK_TYPE);
 
-        mController.init(SUB_ID);
+        mController.init(SUB_ID, mFragmentManager);
 
         // NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA = LTE | CDMA | EVDO | GSM | WCDMA
         when(mTelephonyManager.getAllowedNetworkTypesForReason(
@@ -304,7 +310,7 @@
     public void updateState_GlobalDisAllowed5g_GlobalWithoutNR() {
         mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
         mockAllowedNetworkTypes(DISABLED_5G_NETWORK_TYPE);
-        mController.init(SUB_ID);
+        mController.init(SUB_ID, mFragmentManager);
         mPersistableBundle.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
 
         // NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA = NR | LTE | CDMA | EVDO | GSM | WCDMA
@@ -324,7 +330,7 @@
     public void updateState_GlobalDisAllowed5g_SelectOnGlobal() {
         mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
         mockAllowedNetworkTypes(DISABLED_5G_NETWORK_TYPE);
-        mController.init(SUB_ID);
+        mController.init(SUB_ID, mFragmentManager);
         mPersistableBundle.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
 
         // NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA = NR | LTE | CDMA | EVDO | GSM | WCDMA
@@ -497,7 +503,7 @@
             mPersistableBundle.putBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL, true);
             mPersistableBundle.putBoolean(CarrierConfigManager.KEY_LTE_ENABLED_BOOL, true);
         }
-        mController.init(SUB_ID);
+        mController.init(SUB_ID, mFragmentManager);
     }
 
     private void mockAllowedNetworkTypes(long allowedNetworkType) {
diff --git a/tests/unit/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceControllerTest.java
index b0cd780..9edbf9e 100644
--- a/tests/unit/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceControllerTest.java
@@ -28,9 +28,8 @@
 import android.telephony.CarrierConfigManager;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
-import android.telephony.ims.ProvisioningManager;
 
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 
@@ -57,13 +56,11 @@
     private SubscriptionManager mSubscriptionManager;
     @Mock
     private CarrierConfigCache mCarrierConfigCache;
-    @Mock
-    private ProvisioningManager mProvisioningManager;
 
     private MockVolteQueryImsState mQueryImsState;
 
     private Enhanced4gLtePreferenceController mController;
-    private SwitchPreference mPreference;
+    private TwoStatePreference mPreference;
     private PersistableBundle mCarrierConfig;
     private Context mContext;
 
diff --git a/tests/unit/src/com/android/settings/network/telephony/MmsMessagePreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/MmsMessagePreferenceControllerTest.java
deleted file mode 100644
index 127cdfd..0000000
--- a/tests/unit/src/com/android/settings/network/telephony/MmsMessagePreferenceControllerTest.java
+++ /dev/null
@@ -1,142 +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.spy;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.os.Looper;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.telephony.data.ApnSetting;
-
-import androidx.preference.PreferenceManager;
-import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
-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 MmsMessagePreferenceControllerTest {
-    private static final int SUB_ID = 2;
-
-    @Mock
-    private TelephonyManager mTelephonyManager;
-    @Mock
-    private SubscriptionManager mSubscriptionManager;
-
-    private MmsMessagePreferenceController mController;
-    private SwitchPreference mPreference;
-    private Context mContext;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-
-        mContext = spy(ApplicationProvider.getApplicationContext());
-        when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
-        when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
-        when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
-        when(mTelephonyManager.createForSubscriptionId(SUB_ID)).thenReturn(mTelephonyManager);
-
-        mPreference = spy(new SwitchPreference(mContext));
-        mController = new MmsMessagePreferenceController(mContext, "mms_message");
-        mController.init(SUB_ID);
-        mPreference.setKey(mController.getPreferenceKey());
-    }
-
-    @Test
-    public void getAvailabilityStatus_invalidSubscription_returnUnavailable() {
-        mController.init(SubscriptionManager.INVALID_SUBSCRIPTION_ID);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
-    }
-
-    @Test
-    public void getAvailabilityStatus_mobileDataOn_returnUnavailable() {
-        when(mTelephonyManager.isDataEnabled()).thenReturn(true);
-
-        assertThat(mController.getAvailabilityStatus(SUB_ID)).isEqualTo(CONDITIONALLY_UNAVAILABLE);
-    }
-
-    @Test
-    public void getAvailabilityStatus_meteredOff_returnUnavailable() {
-        when(mTelephonyManager.isApnMetered(ApnSetting.TYPE_MMS)).thenReturn(false);
-
-        assertThat(mController.getAvailabilityStatus(SUB_ID)).isEqualTo(CONDITIONALLY_UNAVAILABLE);
-    }
-
-    @Test
-    public void getAvailabilityStatus_mobileDataOffWithValidSubId_returnAvailable() {
-        mController.init(SUB_ID);
-        when(mTelephonyManager.isDataEnabled()).thenReturn(false);
-        when(mTelephonyManager.isApnMetered(ApnSetting.TYPE_MMS)).thenReturn(true);
-
-        assertThat(mController.getAvailabilityStatus(SUB_ID)).isEqualTo(AVAILABLE);
-    }
-
-    @Test
-    public void isChecked_returnDataFromTelephonyManager() {
-        when(mTelephonyManager.isDataEnabledForApn(ApnSetting.TYPE_MMS)).thenReturn(false);
-        assertThat(mController.isChecked()).isFalse();
-
-        when(mTelephonyManager.isDataEnabledForApn(ApnSetting.TYPE_MMS)).thenReturn(true);
-        assertThat(mController.isChecked()).isTrue();
-    }
-
-    @Test
-    public void setChecked_setDataIntoSubscriptionManager() {
-        mController.setChecked(true);
-        verify(mTelephonyManager).setMobileDataPolicyEnabled(
-                TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED, true);
-
-        mController.setChecked(false);
-        verify(mTelephonyManager).setMobileDataPolicyEnabled(
-                TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED, false);
-    }
-
-    @Test
-    public void onStart_updatePreferenceUiState() {
-        if (Looper.myLooper() == null) {
-            Looper.prepare();
-        }
-        PreferenceManager preferenceManager = new PreferenceManager(mContext);
-        PreferenceScreen preferenceScreen = preferenceManager.createPreferenceScreen(mContext);
-        preferenceScreen.addPreference(mPreference);
-        mController.displayPreference(preferenceScreen);
-
-        mController.onStart();
-
-        // First is preference initialization, and second is in onStart();
-        verify(mPreference, times(2)).setChecked(anyBoolean());
-    }
-}
diff --git a/tests/unit/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceControllerTest.java
index 053fb4d..bed8ef1 100644
--- a/tests/unit/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceControllerTest.java
@@ -29,7 +29,7 @@
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 
@@ -57,7 +57,7 @@
     private CarrierConfigCache mCarrierConfigCache;
 
     private NrAdvancedCallingPreferenceController mController;
-    private SwitchPreference mPreference;
+    private TwoStatePreference mPreference;
     private PersistableBundle mCarrierConfig;
     private Context mContext;
 
diff --git a/tests/unit/src/com/android/settings/privatespace/HidePrivateSpaceControllerTest.java b/tests/unit/src/com/android/settings/privatespace/HidePrivateSpaceControllerTest.java
index 1a1769e..0abe314 100644
--- a/tests/unit/src/com/android/settings/privatespace/HidePrivateSpaceControllerTest.java
+++ b/tests/unit/src/com/android/settings/privatespace/HidePrivateSpaceControllerTest.java
@@ -17,30 +17,59 @@
 package com.android.settings.privatespace;
 
 import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.Mockito.spy;
+
+import android.content.ContentResolver;
 import android.content.Context;
+import android.os.Flags;
+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.test.core.app.ApplicationProvider;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 
+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;
 
 @RunWith(AndroidJUnit4.class)
+@RequiresFlagsEnabled(Flags.FLAG_ALLOW_PRIVATE_PROFILE)
 public class HidePrivateSpaceControllerTest {
-    @Mock private Context mContext;
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule =
+            DeviceFlagsValueProvider.createCheckFlagsRule();
+
+    private static final String KEY = "private_space_hidden";
+    private static final String DETAIL_PAGE_KEY = "private_space_hidden_details";
+    private Context mContext;
+    private HidePrivateSpaceSummaryController mHidePrivateSpaceSummaryController;
     private HidePrivateSpaceController mHidePrivateSpaceController;
+    private ContentResolver mContentResolver;
+    private int mOriginalHiddenValue;
 
     /** Required setup before a test. */
     @Before
     public void setUp() {
-        mContext = ApplicationProvider.getApplicationContext();
-        final String preferenceKey = "private_space_hidden";
+        mContext = spy(ApplicationProvider.getApplicationContext());
+        mContentResolver = mContext.getContentResolver();
+        mHidePrivateSpaceSummaryController = new HidePrivateSpaceSummaryController(mContext, KEY);
+        mHidePrivateSpaceController =
+                new HidePrivateSpaceController(mContext, DETAIL_PAGE_KEY);
+        mOriginalHiddenValue = Settings.Secure.getInt(mContentResolver,
+                Settings.Secure.HIDE_PRIVATESPACE_ENTRY_POINT, 0);
+    }
 
-        mHidePrivateSpaceController = new HidePrivateSpaceController(mContext, preferenceKey);
+    @After
+    public void tearDown() {
+        Settings.Secure.putInt(mContentResolver, Settings.Secure.HIDE_PRIVATESPACE_ENTRY_POINT,
+                mOriginalHiddenValue);
     }
 
     /** Tests that the controller is always available. */
@@ -48,4 +77,33 @@
     public void getAvailabilityStatus_returnsAvailable() {
         assertThat(mHidePrivateSpaceController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
     }
+
+    /** Tests that hide preference summary displays On when hide toggle is enabled.*/
+    @Test
+    public void setChecked_enable_shouldDisplayOn() {
+        Settings.Secure.putInt(mContentResolver, Settings.Secure.HIDE_PRIVATESPACE_ENTRY_POINT,
+                0);
+        assertThat(mHidePrivateSpaceController.isChecked()).isFalse();
+
+        mHidePrivateSpaceController.setChecked(true);
+
+        assertThat(mHidePrivateSpaceSummaryController.getSummary().toString())
+                .isEqualTo("On");
+        assertThat(mHidePrivateSpaceController.isChecked()).isTrue();
+    }
+
+    /** Tests that hide preference summary displays Off when toggle is disabled.*/
+    @Test
+    public void setChecked_disable_shouldDisplayOff() {
+        Settings.Secure.putInt(mContentResolver, Settings.Secure.HIDE_PRIVATESPACE_ENTRY_POINT,
+                1);
+
+        assertThat(mHidePrivateSpaceController.isChecked()).isTrue();
+
+        mHidePrivateSpaceController.setChecked(false);
+
+        assertThat(mHidePrivateSpaceSummaryController.getSummary().toString())
+                .isEqualTo("Off");
+        assertThat(mHidePrivateSpaceController.isChecked()).isFalse();
+    }
 }
diff --git a/tests/unit/src/com/android/settings/privatespace/HidePrivateSpaceSummaryControllerTest.java b/tests/unit/src/com/android/settings/privatespace/HidePrivateSpaceSummaryControllerTest.java
new file mode 100644
index 0000000..39f7b9c
--- /dev/null
+++ b/tests/unit/src/com/android/settings/privatespace/HidePrivateSpaceSummaryControllerTest.java
@@ -0,0 +1,99 @@
+/*
+ * 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.privatespace;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.spy;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.os.Flags;
+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.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+@RequiresFlagsEnabled(Flags.FLAG_ALLOW_PRIVATE_PROFILE)
+public class HidePrivateSpaceSummaryControllerTest {
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule =
+            DeviceFlagsValueProvider.createCheckFlagsRule();
+    private Context mContext;
+    private HidePrivateSpaceSummaryController mHidePrivateSpaceSummaryController;
+    private ContentResolver mContentResolver;
+    private int mOriginalHiddenValue;
+
+    /** Required setup before a test. */
+    @Before
+    public void setUp() {
+        mContext = spy(ApplicationProvider.getApplicationContext());
+        mContentResolver = mContext.getContentResolver();
+        final String preferenceKey = "private_space_hidden";
+
+        mHidePrivateSpaceSummaryController =
+                new HidePrivateSpaceSummaryController(mContext, preferenceKey);
+        mOriginalHiddenValue = Settings.Secure.getInt(mContentResolver,
+                Settings.Secure.HIDE_PRIVATESPACE_ENTRY_POINT, 0);
+    }
+
+    @After
+    public void tearDown() {
+        Settings.Secure.putInt(mContentResolver, Settings.Secure.HIDE_PRIVATESPACE_ENTRY_POINT,
+                mOriginalHiddenValue);
+    }
+
+    /** Tests that the controller is always available. */
+    @Test
+    public void getAvailabilityStatus_returnsAvailable() {
+        assertThat(mHidePrivateSpaceSummaryController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+    }
+
+    /** Tests that the preference summary displays On when hide is enabled.*/
+    @Test
+    public void setEnabled_shouldDisplayOn() {
+        Settings.Secure.putInt(mContentResolver, Settings.Secure.HIDE_PRIVATESPACE_ENTRY_POINT, 1);
+
+        assertThat(Settings.Secure.getInt(mContentResolver,
+                Settings.Secure.HIDE_PRIVATESPACE_ENTRY_POINT, -1)).isEqualTo(1);
+        assertThat(mHidePrivateSpaceSummaryController.getSummary().toString())
+                .isEqualTo("On");
+    }
+
+    /** Tests that the preference summary displays Off when hide is disabled.*/
+    @Test
+    public void setDisabled_shouldDisplayOff() {
+        Settings.Secure.putInt(mContentResolver, Settings.Secure.HIDE_PRIVATESPACE_ENTRY_POINT, 0);
+
+        assertThat(Settings.Secure.getInt(mContentResolver,
+                Settings.Secure.HIDE_PRIVATESPACE_ENTRY_POINT, -1)).isEqualTo(0);
+        assertThat(mHidePrivateSpaceSummaryController.getSummary().toString())
+                .isEqualTo("Off");
+    }
+}
diff --git a/tests/unit/src/com/android/settings/privatespace/PrivateSpaceAuthenticationActivityTest.java b/tests/unit/src/com/android/settings/privatespace/PrivateSpaceAuthenticationActivityTest.java
new file mode 100644
index 0000000..4c6feea
--- /dev/null
+++ b/tests/unit/src/com/android/settings/privatespace/PrivateSpaceAuthenticationActivityTest.java
@@ -0,0 +1,101 @@
+/*
+ * 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.privatespace;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.Flags;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
+
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
+
+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;
+
+@RunWith(AndroidJUnit4.class)
+public class PrivateSpaceAuthenticationActivityTest {
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule =
+            DeviceFlagsValueProvider.createCheckFlagsRule();
+    @Mock private PrivateSpaceMaintainer mPrivateSpaceMaintainer;
+    @Mock private Context mContext;
+    private PrivateSpaceAuthenticationActivity mPrivateSpaceAuthenticationActivity;
+    private Intent mDefaultIntent;
+
+    /** Required setup before a test. */
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+
+        mContext = ApplicationProvider.getApplicationContext();
+        mDefaultIntent = new Intent();
+        mDefaultIntent.setClass(InstrumentationRegistry.getInstrumentation().getTargetContext(),
+                PrivateSpaceAuthenticationActivity.class);
+        InstrumentationRegistry.getInstrumentation().runOnMainSync(() -> {
+            try {
+                mPrivateSpaceAuthenticationActivity =
+                        spy((PrivateSpaceAuthenticationActivity) InstrumentationRegistry
+                                .getInstrumentation().newActivity(
+                                        getClass().getClassLoader(),
+                                        PrivateSpaceAuthenticationActivity.class.getName(),
+                                        mDefaultIntent));
+            } catch (Exception e) {
+                throw new RuntimeException(e); // nothing to do
+            }
+        });
+        doNothing().when(mPrivateSpaceAuthenticationActivity).startActivity(any(Intent.class));
+        PrivateSpaceAuthenticationActivity.Injector injector =
+                new PrivateSpaceAuthenticationActivity.Injector() {
+                    @Override
+                    PrivateSpaceMaintainer injectPrivateSpaceMaintainer(Context context) {
+                        return mPrivateSpaceMaintainer;
+                    }
+                };
+        mPrivateSpaceAuthenticationActivity.setPrivateSpaceMaintainer(injector);
+    }
+
+    /** Tests that when Private does not exist setup flow is started. */
+    //TODO(b/307729746) Plan to add more tests for complete setup flow
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ALLOW_PRIVATE_PROFILE)
+    public void whenPrivateProfileDoesNotExist_triggersSetupFlow() {
+        when(mPrivateSpaceMaintainer.doesPrivateSpaceExist()).thenReturn(false);
+
+        final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
+        mPrivateSpaceAuthenticationActivity.onLockAuthentication(mContext);
+        verify(mPrivateSpaceAuthenticationActivity).startActivity(intentCaptor.capture());
+        assertThat(intentCaptor.getValue().getComponent().getClassName())
+                .isEqualTo(PrivateSpaceSetupActivity.class.getName());
+    }
+}
diff --git a/tests/unit/src/com/android/settings/privatespace/PrivateSpaceLockControllerTest.java b/tests/unit/src/com/android/settings/privatespace/PrivateSpaceLockControllerTest.java
new file mode 100644
index 0000000..0d9db7e
--- /dev/null
+++ b/tests/unit/src/com/android/settings/privatespace/PrivateSpaceLockControllerTest.java
@@ -0,0 +1,138 @@
+/*
+ * 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.privatespace;
+
+import static com.android.internal.widget.LockPatternUtils.CREDENTIAL_TYPE_PASSWORD;
+import static com.android.internal.widget.LockPatternUtils.CREDENTIAL_TYPE_PATTERN;
+import static com.android.internal.widget.LockPatternUtils.CREDENTIAL_TYPE_PIN;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.os.Flags;
+import android.platform.test.flag.junit.SetFlagsRule;
+
+import androidx.preference.Preference;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import com.android.internal.widget.LockPatternUtils;
+import com.android.settings.SettingsPreferenceFragment;
+import com.android.settings.privatespace.onelock.PrivateSpaceLockController;
+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.MockitoAnnotations;
+
+@RunWith(AndroidJUnit4.class)
+public class PrivateSpaceLockControllerTest {
+    @Mock
+    private Context mContext;
+    @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+    @Mock SettingsPreferenceFragment mSettingsPreferenceFragment;
+    @Mock
+    LockPatternUtils mLockPatternUtils;
+
+    private Preference mPreference;
+    private PrivateSpaceLockController mPrivateSpaceLockController;
+
+    /** Required setup before a test. */
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = ApplicationProvider.getApplicationContext();
+        final String preferenceKey = "unlock_set_or_change_private_lock";
+
+        mPreference = new Preference(ApplicationProvider.getApplicationContext());
+        mPreference.setKey(preferenceKey);
+
+        final FakeFeatureFactory featureFactory = FakeFeatureFactory.setupForTest();
+        when(featureFactory.securityFeatureProvider.getLockPatternUtils(mContext))
+                .thenReturn(mLockPatternUtils);
+
+        mPrivateSpaceLockController = new PrivateSpaceLockController(mContext,
+                mSettingsPreferenceFragment);
+    }
+
+    /** Tests that the controller is always available. */
+    @Test
+    public void getAvailabilityStatus_returnsAvailable() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+
+        assertThat(mPrivateSpaceLockController.isAvailable()).isEqualTo(true);
+    }
+
+    /** Tests that preference is disabled and summary says same as device lock. */
+    @Test
+    public void getSummary_whenScreenLock() {
+        doReturn(false).when(mLockPatternUtils).isSeparateProfileChallengeEnabled(anyInt());
+        mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+
+        mPrivateSpaceLockController.updateState(mPreference);
+        assertThat(mPreference.isEnabled()).isFalse();
+        assertThat(mPreference.getSummary().toString()).isEqualTo("Same as device screen lock");
+    }
+
+    /** Tests that preference is enabled and summary is Pattern. */
+    @Test
+    public void getSummary_whenProfileLockPattern() {
+        doReturn(true)
+                .when(mLockPatternUtils).isSeparateProfileChallengeEnabled(anyInt());
+        doReturn(CREDENTIAL_TYPE_PATTERN)
+                .when(mLockPatternUtils).getCredentialTypeForUser(anyInt());
+        mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+
+        mPrivateSpaceLockController.updateState(mPreference);
+        assertThat(mPreference.isEnabled()).isTrue();
+        assertThat(mPreference.getSummary().toString()).isEqualTo("Pattern");
+    }
+
+    /** Tests that preference is enabled and summary is Pin. */
+    @Test
+    public void getSummary_whenProfileLockPin() {
+        doReturn(true).when(mLockPatternUtils).isSeparateProfileChallengeEnabled(anyInt());
+        doReturn(CREDENTIAL_TYPE_PIN).when(mLockPatternUtils).getCredentialTypeForUser(anyInt());
+        mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+
+        mPrivateSpaceLockController.updateState(mPreference);
+        assertThat(mPreference.isEnabled()).isTrue();
+        assertThat(mPreference.getSummary().toString()).isEqualTo("PIN");
+    }
+
+    /** Tests that preference is enabled and summary is Password. */
+    @Test
+    public void getSummary_whenProfileLockPassword() {
+        doReturn(true)
+                .when(mLockPatternUtils).isSeparateProfileChallengeEnabled(anyInt());
+        doReturn(CREDENTIAL_TYPE_PASSWORD)
+                .when(mLockPatternUtils).getCredentialTypeForUser(anyInt());
+        mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+
+        mPrivateSpaceLockController.updateState(mPreference);
+        assertThat(mPreference.isEnabled()).isTrue();
+        assertThat(mPreference.getSummary().toString()).isEqualTo("Password");
+    }
+}
diff --git a/tests/unit/src/com/android/settings/privatespace/PrivateSpaceMaintainerTest.java b/tests/unit/src/com/android/settings/privatespace/PrivateSpaceMaintainerTest.java
new file mode 100644
index 0000000..0a2f3d1
--- /dev/null
+++ b/tests/unit/src/com/android/settings/privatespace/PrivateSpaceMaintainerTest.java
@@ -0,0 +1,140 @@
+/*
+ * 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.privatespace;
+
+import static com.android.settings.privatespace.PrivateSpaceMaintainer.HIDE_PRIVATE_SPACE_ENTRY_POINT_DISABLED_VAL;
+import static com.android.settings.privatespace.PrivateSpaceMaintainer.HIDE_PRIVATE_SPACE_ENTRY_POINT_ENABLED_VAL;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.provider.Settings;
+
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import com.android.settings.privatespace.PrivateSpaceMaintainer.ErrorDeletingPrivateSpace;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.MockitoAnnotations;
+
+@RunWith(AndroidJUnit4.class)
+public class PrivateSpaceMaintainerTest {
+    private Context mContext;
+    private ContentResolver mContentResolver;
+
+    /** Required setup before a test. */
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = ApplicationProvider.getApplicationContext();
+        mContentResolver = mContext.getContentResolver();
+    }
+
+    /** Tests that {@link PrivateSpaceMaintainer#deletePrivateSpace()} deletes PS when PS exists. */
+    @Test
+    public void deletePrivateSpace_psExists_deletesPS() {
+        PrivateSpaceMaintainer privateSpaceMaintainer =
+                PrivateSpaceMaintainer.getInstance(mContext);
+        privateSpaceMaintainer.createPrivateSpace();
+        ErrorDeletingPrivateSpace errorDeletingPrivateSpace =
+                privateSpaceMaintainer.deletePrivateSpace();
+        assertThat(errorDeletingPrivateSpace)
+                .isEqualTo(ErrorDeletingPrivateSpace.DELETE_PS_ERROR_NONE);
+        assertThat(privateSpaceMaintainer.doesPrivateSpaceExist()).isFalse();
+    }
+
+    /**
+     * Tests that {@link PrivateSpaceMaintainer#deletePrivateSpace()} returns error when PS does
+     * not exist.
+     */
+    @Test
+    public void deletePrivateSpace_psDoesNotExist_returnsNoPSError() {
+        PrivateSpaceMaintainer privateSpaceMaintainer =
+                PrivateSpaceMaintainer.getInstance(mContext);
+        ErrorDeletingPrivateSpace errorDeletingPrivateSpace =
+                privateSpaceMaintainer.deletePrivateSpace();
+        assertThat(errorDeletingPrivateSpace)
+                .isEqualTo(ErrorDeletingPrivateSpace.DELETE_PS_ERROR_NO_PRIVATE_SPACE);
+        assertThat(privateSpaceMaintainer.doesPrivateSpaceExist()).isFalse();
+    }
+
+    /** Tests that {@link PrivateSpaceMaintainer#createPrivateSpace()} when PS exists creates PS. */
+    @Test
+    public void createPrivateSpace_psDoesNotExist_createsPS() {
+        PrivateSpaceMaintainer privateSpaceMaintainer =
+                PrivateSpaceMaintainer.getInstance(mContext);
+        privateSpaceMaintainer.deletePrivateSpace();
+        assertThat(privateSpaceMaintainer.createPrivateSpace()).isTrue();
+        assertThat(privateSpaceMaintainer.doesPrivateSpaceExist()).isTrue();
+    }
+
+    /**
+     * Tests that {@link PrivateSpaceMaintainer#createPrivateSpace()} when PS exists still
+     * returns true.
+     */
+    @Test
+    public void createPrivateSpace_psExists_returnsFalse() {
+        PrivateSpaceMaintainer privateSpaceMaintainer =
+                PrivateSpaceMaintainer.getInstance(mContext);
+        privateSpaceMaintainer.deletePrivateSpace();
+        assertThat(privateSpaceMaintainer.createPrivateSpace()).isTrue();
+        assertThat(privateSpaceMaintainer.doesPrivateSpaceExist()).isTrue();
+        assertThat(privateSpaceMaintainer.createPrivateSpace()).isTrue();
+    }
+
+    /**
+     * Tests that {@link PrivateSpaceMaintainer#createPrivateSpace()} when no PS exists resets PS
+     * Settings.
+     */
+    @Test
+    public void createPrivateSpace_psDoesNotExist_resetsPSSettings() {
+        PrivateSpaceMaintainer privateSpaceMaintainer =
+                PrivateSpaceMaintainer.getInstance(mContext);
+        Settings.Secure.putInt(
+                mContentResolver,
+                Settings.Secure.HIDE_PRIVATESPACE_ENTRY_POINT,
+                HIDE_PRIVATE_SPACE_ENTRY_POINT_ENABLED_VAL);
+
+        privateSpaceMaintainer.deletePrivateSpace();
+        privateSpaceMaintainer.createPrivateSpace();
+        assertThat(privateSpaceMaintainer.getHidePrivateSpaceEntryPointSetting())
+                .isEqualTo(HIDE_PRIVATE_SPACE_ENTRY_POINT_DISABLED_VAL);
+    }
+
+    /**
+     * Tests that {@link PrivateSpaceMaintainer#createPrivateSpace()} when PS exist does not reset
+     * PS Settings.
+     */
+    @Test
+    public void createPrivateSpace_psExists_doesNotResetPSSettings() {
+        PrivateSpaceMaintainer privateSpaceMaintainer =
+                PrivateSpaceMaintainer.getInstance(mContext);
+        privateSpaceMaintainer.createPrivateSpace();
+        Settings.Secure.putInt(
+                mContentResolver,
+                Settings.Secure.HIDE_PRIVATESPACE_ENTRY_POINT,
+                HIDE_PRIVATE_SPACE_ENTRY_POINT_ENABLED_VAL);
+
+        privateSpaceMaintainer.createPrivateSpace();
+        assertThat(privateSpaceMaintainer.getHidePrivateSpaceEntryPointSetting())
+                .isEqualTo(HIDE_PRIVATE_SPACE_ENTRY_POINT_ENABLED_VAL);
+    }
+}
diff --git a/tests/unit/src/com/android/settings/privatespace/PrivateSpaceSafetySourceTest.java b/tests/unit/src/com/android/settings/privatespace/PrivateSpaceSafetySourceTest.java
index ddf5287..cf9ea05 100644
--- a/tests/unit/src/com/android/settings/privatespace/PrivateSpaceSafetySourceTest.java
+++ b/tests/unit/src/com/android/settings/privatespace/PrivateSpaceSafetySourceTest.java
@@ -18,8 +18,11 @@
 
 
 import static android.safetycenter.SafetyEvent.SAFETY_EVENT_TYPE_DEVICE_REBOOTED;
+
 import static com.android.settings.privatespace.PrivateSpaceSafetySource.SAFETY_SOURCE_ID;
+
 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;
@@ -122,9 +125,9 @@
         assertThat(safetySourceStatus.isEnabled()).isTrue();
     }
 
-    /** Tests that setSafetySourceData sets the PS settings page intent. */
+    /** Tests that setSafetySourceData sets the PS settings page authenticator intent. */
     @Test
-    public void setSafetySourceData_setsPsIntent() {
+    public void setSafetySourceData_setsPsAuthenticatorIntent() {
         when(mSafetyCenterManagerWrapper.isEnabled(mContext)).thenReturn(true);
         mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE);
 
@@ -135,6 +138,8 @@
                 any(), eq(SAFETY_SOURCE_ID), captor.capture(), eq(EVENT_TYPE_DEVICE_REBOOTED));
         SafetySourceData safetySourceData = captor.getValue();
         SafetySourceStatus safetySourceStatus = safetySourceData.getStatus();
+        assertThat(safetySourceStatus.getPendingIntent().getIntent().getComponent().getClassName())
+                .isEqualTo(PrivateSpaceAuthenticationActivity.class.getName());
         assertThat(safetySourceStatus.getPendingIntent().getIntent().getIdentifier())
                 .isEqualTo(SAFETY_SOURCE_ID);
     }
diff --git a/tests/unit/src/com/android/settings/privatespace/UseOneLockControllerTest.java b/tests/unit/src/com/android/settings/privatespace/UseOneLockControllerTest.java
index e7ebb37..744a8ec 100644
--- a/tests/unit/src/com/android/settings/privatespace/UseOneLockControllerTest.java
+++ b/tests/unit/src/com/android/settings/privatespace/UseOneLockControllerTest.java
@@ -16,36 +16,105 @@
 
 package com.android.settings.privatespace;
 
+import static com.android.internal.widget.LockPatternUtils.CREDENTIAL_TYPE_PASSWORD;
+import static com.android.internal.widget.LockPatternUtils.CREDENTIAL_TYPE_PATTERN;
+import static com.android.internal.widget.LockPatternUtils.CREDENTIAL_TYPE_PIN;
 import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+
 import static com.google.common.truth.Truth.assertThat;
 
-import android.content.Context;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.when;
 
+import android.content.Context;
+import android.os.Flags;
+import android.platform.test.flag.junit.SetFlagsRule;
+
+import androidx.preference.Preference;
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 
+import com.android.internal.widget.LockPatternUtils;
+import com.android.settings.privatespace.onelock.UseOneLockController;
+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.MockitoAnnotations;
 
 @RunWith(AndroidJUnit4.class)
 public class UseOneLockControllerTest {
     @Mock private Context mContext;
+    @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
     private UseOneLockController mUseOneLockController;
+    private Preference mPreference;
+
+    @Mock
+    LockPatternUtils mLockPatternUtils;
 
     /** Required setup before a test. */
     @Before
     public void setUp() {
+        MockitoAnnotations.initMocks(this);
         mContext = ApplicationProvider.getApplicationContext();
         final String preferenceKey = "private_space_use_one_lock";
+        mPreference = new Preference(mContext);
 
+        final FakeFeatureFactory featureFactory = FakeFeatureFactory.setupForTest();
+        when(featureFactory.securityFeatureProvider.getLockPatternUtils(mContext))
+                .thenReturn(mLockPatternUtils);
         mUseOneLockController = new UseOneLockController(mContext, preferenceKey);
+
     }
 
     /** Tests that the controller is always available. */
     @Test
     public void getAvailabilityStatus_returnsAvailable() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+
         assertThat(mUseOneLockController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
     }
+
+
+    /** Tests that summary in controller is Pattern. */
+    @Test
+    public void getSummary_whenProfileLockPattern() {
+        doReturn(true)
+                .when(mLockPatternUtils).isSeparateProfileChallengeEnabled(anyInt());
+        doReturn(CREDENTIAL_TYPE_PATTERN)
+                .when(mLockPatternUtils).getCredentialTypeForUser(anyInt());
+        mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+
+        mUseOneLockController.updateState(mPreference);
+        assertThat(mUseOneLockController.getSummary().toString()).isEqualTo("Pattern");
+    }
+
+    /** Tests that summary in controller is PIN. */
+    @Test
+    public void getSummary_whenProfileLockPin() {
+        doReturn(true)
+                .when(mLockPatternUtils).isSeparateProfileChallengeEnabled(anyInt());
+        doReturn(CREDENTIAL_TYPE_PIN).when(mLockPatternUtils).getCredentialTypeForUser(anyInt());
+        mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+
+        mUseOneLockController.updateState(mPreference);
+        assertThat(mUseOneLockController.getSummary().toString()).isEqualTo("PIN");
+    }
+
+    /** Tests that summary in controller is Password. */
+    @Test
+    public void getSummary_whenProfileLockPassword() {
+        doReturn(true)
+                .when(mLockPatternUtils).isSeparateProfileChallengeEnabled(anyInt());
+        doReturn(CREDENTIAL_TYPE_PASSWORD)
+                .when(mLockPatternUtils).getCredentialTypeForUser(anyInt());
+        mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+
+        mUseOneLockController.updateState(mPreference);
+        assertThat(mUseOneLockController.getSummary().toString()).isEqualTo("Password");
+    }
 }
diff --git a/tests/unit/src/com/android/settings/regionalpreferences/NumberingSystemItemControllerTest.java b/tests/unit/src/com/android/settings/regionalpreferences/NumberingSystemItemControllerTest.java
index 0a67824..5c42ad9 100644
--- a/tests/unit/src/com/android/settings/regionalpreferences/NumberingSystemItemControllerTest.java
+++ b/tests/unit/src/com/android/settings/regionalpreferences/NumberingSystemItemControllerTest.java
@@ -24,6 +24,7 @@
 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 android.os.LocaleList;
@@ -51,6 +52,7 @@
     private NumberingPreferencesFragment mFragment;
     private PreferenceScreen mPreferenceScreen;
     private LocaleList mCacheLocale;
+    private FakeFeatureFactory mFeatureFactory;
 
     @Before
     @UiThreadTest
@@ -59,6 +61,7 @@
             Looper.prepare();
         }
         mApplicationContext = ApplicationProvider.getApplicationContext();
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
         mFragment = spy(new NumberingPreferencesFragment());
         PreferenceManager preferenceManager = new PreferenceManager(mApplicationContext);
         mPreferenceScreen = preferenceManager.createPreferenceScreen(mApplicationContext);
@@ -94,6 +97,10 @@
         }
 
         assertTrue(isCallingStartActivity);
+        verify(mFeatureFactory.metricsFeatureProvider).action(
+                mApplicationContext,
+                SettingsEnums.ACTION_CHOOSE_LANGUAGE_FOR_NUMBERS_PREFERENCES,
+                "I_am_the_key");
     }
 
     @Test
@@ -114,6 +121,9 @@
         mController.handlePreferenceTreeClick(preference);
 
         verify(mFragment).setArguments(any());
+        verify(mFeatureFactory.metricsFeatureProvider).action(
+                mApplicationContext, SettingsEnums.ACTION_SET_NUMBERS_PREFERENCES,
+                "test_key");
     }
 
     @Test
diff --git a/tests/unit/src/com/android/settings/testutils/FakeFeatureFactory.java b/tests/unit/src/com/android/settings/testutils/FakeFeatureFactory.java
index a3a92a3..bf2c84a 100644
--- a/tests/unit/src/com/android/settings/testutils/FakeFeatureFactory.java
+++ b/tests/unit/src/com/android/settings/testutils/FakeFeatureFactory.java
@@ -24,6 +24,7 @@
 import com.android.settings.accounts.AccountFeatureProvider;
 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;
@@ -45,6 +46,7 @@
 import com.android.settings.overlay.SupportFeatureProvider;
 import com.android.settings.overlay.SurveyFeatureProvider;
 import com.android.settings.panel.PanelFeatureProvider;
+import com.android.settings.privatespace.PrivateSpaceLoginFeatureProvider;
 import com.android.settings.search.SearchFeatureProvider;
 import com.android.settings.security.SecurityFeatureProvider;
 import com.android.settings.security.SecuritySettingsFeatureProvider;
@@ -79,6 +81,7 @@
     public final AccountFeatureProvider mAccountFeatureProvider;
     public final BluetoothFeatureProvider mBluetoothFeatureProvider;
     public final FaceFeatureProvider mFaceFeatureProvider;
+    public final FingerprintFeatureProvider mFingerprintFeatureProvider;
     public final BiometricsRepositoryProvider mBiometricsRepositoryProvider;
 
     public PanelFeatureProvider panelFeatureProvider;
@@ -96,6 +99,7 @@
     public StylusFeatureProvider mStylusFeatureProvider;
     public OnboardingFeatureProvider mOnboardingFeatureProvider;
     public FastPairFeatureProvider mFastPairFeatureProvider;
+    public PrivateSpaceLoginFeatureProvider mPrivateSpaceLoginFeatureProvider;
 
     /**
      * Call this in {@code @Before} method of the test class to use fake factory.
@@ -131,6 +135,7 @@
         panelFeatureProvider = mock(PanelFeatureProvider.class);
         mBluetoothFeatureProvider = mock(BluetoothFeatureProvider.class);
         mFaceFeatureProvider = mock(FaceFeatureProvider.class);
+        mFingerprintFeatureProvider = mock(FingerprintFeatureProvider.class);
         mBiometricsRepositoryProvider = mock(BiometricsRepositoryProvider.class);
         wifiTrackerLibProvider = mock(WifiTrackerLibProvider.class);
         securitySettingsFeatureProvider = mock(SecuritySettingsFeatureProvider.class);
@@ -142,6 +147,7 @@
         mStylusFeatureProvider = mock(StylusFeatureProvider.class);
         mOnboardingFeatureProvider = mock(OnboardingFeatureProvider.class);
         mFastPairFeatureProvider = mock(FastPairFeatureProvider.class);
+        mPrivateSpaceLoginFeatureProvider = mock(PrivateSpaceLoginFeatureProvider.class);
     }
 
     @Override
@@ -256,6 +262,11 @@
     }
 
     @Override
+    public FingerprintFeatureProvider getFingerprintFeatureProvider() {
+        return mFingerprintFeatureProvider;
+    }
+
+    @Override
     public BiometricsRepositoryProvider getBiometricsRepositoryProvider() {
         return mBiometricsRepositoryProvider;
     }
@@ -314,4 +325,9 @@
     public FastPairFeatureProvider getFastPairFeatureProvider() {
         return mFastPairFeatureProvider;
     }
+
+    @Override
+    public PrivateSpaceLoginFeatureProvider getPrivateSpaceLoginFeatureProvider() {
+        return mPrivateSpaceLoginFeatureProvider;
+    }
 }